https://worms2d.info/api.php?action=feedcontributions&user=Pac-Man&feedformat=atomWorms Knowledge Base - User contributions [en]2024-03-29T11:09:20ZUser contributionsMediaWiki 1.26.3https://worms2d.info/?title=Terminology&diff=32194Terminology2023-08-01T12:35:39Z<p>Pac-Man: wikitables look so much better.</p>
<hr />
<div>{{ParentArticle|[[WormNET (Worms Armageddon)]]}}<br />
<br />
In Worms community some unique terms are often used in [[WormNET (Worms Armageddon)|WormNET]], having different meanings. The purpose of this page is to list and clarify these words.<br />
<br />
{| class="sortable wikitable"<br />
|-<br />
! Term !! Associated word(s) !! Meaning<br />
|-<br />
| Zook || Bazooka || Short for [[Bazooka]].<br />
|-<br />
| Nade || Grenade || Short for [[Grenade]].<br />
|-<br />
| Chute || Parachute || Short for [[Parachute]].<br />
|-<br />
| Nana || Banana || Short for [[Banana Bomb]]<br />
|-<br />
| Tele || Teleport || Short for [[Teleport]].<br />
|-<br />
| Plop || Sink, Drown || When a worm falls on the water and sinks or drowns (an onomatopoeia).<br />
|-<br />
| Newbie || Beginner, Noob || A beginner player, who is learning the basics of the game.<br />
|-<br />
| Noob || Newbie, Beginner || A pejorative way to refer to a beginner player who usually is not very skilled.<br />
|-<br />
| Pro || Professional || A very skilled player. It is also the name of a [[Pro|scheme]] that is intrinsic to [[Worms Armageddon]] and [[Worms World Party]].<br />
|-<br />
| Quitter || Quit || ''Main section: [[Etiquette#Leaving_the_game|Leaving the game]]''. Someone who quits a match without a noble reason in the middle of a game, sometimes ruining it.<br />
|-<br />
| Fly || Flight, Air || When a worm travels in the air, usually being lauched from a weapon (commonly the [[Ninja Rope]]).<br />
|-<br />
| Pile || Crowd || ''Main section: [[Etiquette#Pile|Pile]]''. A group of worms together.<br />
|- <br />
| Leader || First, Top || The team that is at the top during the match, usually the one that is with more health (the "winning" one).<br />
|-<br />
| Surf || Skim || When a worm skims across the water.<br />
|- <br />
| Cow || Infringe(r), Violate(or) || ''Main section: [[Etiquette#KTC_-_Kill_The_Cow|Cow]]''. A move that infringed the rules of a game or as a verb: to infringe the rules of a game. Also, it can be a player who breaks, infringes or violates the rule, specially if done repeatedly.<br />
|-<br />
| PACK || Rules || ''Main secion: [[Etiquette#PACK|PACK]]''. Acronym of '''P'''ile, '''A'''BL, '''C'''BA, and '''K'''TC scheme rules.<br />
|-<br />
| Roofing || Roof, Border, Ceiling || ''Main article: [[Roofing]]''. Going above the ceiling of a cave map.<br />
|-<br />
| Shoppa || Shopper, Misspelling || ''Main talk page section: [[Talk:Shopper#The term "Shoppa"|The term "Shoppa"]]''. A misspelling originated probably from the "[[Shopper]]" pronunciation.<br />
|- <br />
| Telecide || Suicide, Teleport || ''Main section item: [[Teleport#Tactics|Telecide]]''. Commiting suicide with the [[Teleport]].<br />
|-<br />
| Granny || Old Woman, Old Lady || Alternative for [[Old Woman]]<br />
|-<br />
| Old Lady || Old Woman, Granny || Alternative for [[Old Woman]]<br />
|-<br />
| Sally || Salvation Army || Alternative for [[Salvation Army]]<br />
|-<br />
| HHG || Holy Hand Grenade, Holy || Acronym of [[Holy Hand Grenade]]<br />
|-<br />
| Holy || Holy Hand Grenade, HHG || Short for [[Holy Hand Grenade]]<br />
|-<br />
| BnG || Bazooka and Grenades, Bazooka, Grenade || Short for [[Bazooka and Grenades]]<br />
|-<br />
| RR || Rope Race || Acronym of [[Rope Race]]<br />
|-<br />
| TTRR || Time-trial Rope Race || Acronym of [[Rope Race#Time-trial Rope Race|Time-trial Rope Race]]<br />
|-<br />
| WfW || Walk for Weapons || Acronym of [[Walk for Weapons]]<br />
|-<br />
| WxW || Wall-X-Wall Shopper || Short for [[Wall-X-Wall Shopper]]<br />
|-<br />
| Proper || Roper, Pro || Alternative for [[Roper]]<br />
|-<br />
| SSR || Super Sheep Race || Acronym of [[Super Sheep Race]]<br />
|-<br />
| JPR || Jetpack Race || Acronym of [[Jetpack Race]]<br />
|-<br />
| Normal || Intermediate, Conventional gameplay, Standard Gameplay || Alternative for [[Intermediate]], but also for [[Schemes#Conventional gameplay|Conventional gameplay schemes]]<br />
|-<br />
| BnA || Bow and Arrows || Short for [[Bow and Arrows]]<br />
|-<br />
| CDRW || Comet Dodging Race Wee || Acronym of [[Comet Dodging Race Wee]]<br />
|-<br />
| CTF || Capture The Flag || Acronym of [[Capture The Flag]]<br />
|-<br />
| BnC || Bows and Clusters || Short for [[Bows and Clusters]]<br />
|-<br />
| RnC || Ropes and Crates, Crate Collector || Short for [[Shopper#Crate Collector|Ropes and Crates]]<br />
|-<br />
| AFA || Attack From Air || Short for [[Etiquette#AFA_-_Attack_From_Air|Attack From Air]]<br />
|-<br />
| SAA || Surf After Attack || Acronym of [[Etiquette#SAA_-_Surf_After_Attack|Surf After Attack]]<br />
|-<br />
| SBA || Surf Before Attack || Acronym of [[Etiquette#SBA_-_Surf_Before_Attack|Surf Before Attack]]<br />
|-<br />
| FBA || Fly Before Attack || Acronym of [[Etiquette#FBA_-_Fly_Before_Attack|Fly Before Attack]]<br />
|-<br />
| WBA || Wall(s) Before Attack || Acronym of [[Etiquette#WBA_-_Wall_Before_Attack|Wall(s) Before Attack]]<br />
|-<br />
| TS || TestStuff, Test versions || Short for [[Test versions|TestStuff]]<br />
|-<br />
| RW || RubberWorm || Short for [[RubberWorm]]<br />
|-<br />
| PX || Project X || Short for [[Project X]]<br />
|-<br />
| BTP || Blame The Pixel || Acronym for [[Blame The Pixel]]<br />
|-<br />
| TUS || The Ultimate Site || Acronym of [[The Ultimate Site]]<br />
|-<br />
| WKB || Worms Knowledge Base, worms2d.info || Acronym of [[Worms Knowledge Base]]<br />
|-<br />
| worms2d.info || Worms Knowledge Base, WKB || Alternative for [[Worms Knowledge Base]]<br />
|-<br />
| WMDB || Worms Map Database || Short for [[Worms Map Database]]<br />
|-<br />
| HB || HostingBuddy || Acronym of [[HostingBuddy]]<br />
|-<br />
| Hyst || Hysteria || Short for [[Hysteria]]<br />
|-<br />
| WSDB || Worms Scheme Database || Short for [[Worms Scheme Database]]<br />
|-<br />
| WSBDB || Worms SoundBank Database || Short for [[Worms SoundBank Database]]<br />
|-<br />
| WQDB || WormsQuoteDatabase || Short for [[WormsQuoteDatabase]]<br />
|-<br />
| CWT || Crespo's Worms Tournament || Acronym of [[Crespo's Worms Tournament]]<br />
|-<br />
| WSC || Game scheme file, Worms Scheme Contest || The [[File formats|file format]] of the [[Game scheme file]], also the acronym of [[Worms Scheme Contest]]<br />
|-<br />
| WO || Worm Olympics || Acronym of [[Worm Olympics]]<br />
|-<br />
| NNN || Normal No Noobs || Acronym of [[Normal No Noobs]]<br />
|-<br />
| S@S || Start at Start || Short for [[Etiquette#S.40S_-_Start_at_Start|Start at Start]]<br />
|-<br />
| STF || Start to Finish, S2F || Short for [[Etiquette#STF_or_S2F_-_Start_to_Finish|Start to Finish]]<br />
|-<br />
| S2F || Start to Finish, STF || Short for [[Etiquette#STF_or_S2F_-_Start_to_Finish|Start to Finish]]<br />
|-<br />
| CBA || Crate Before Attack || Acronym of [[Etiquette#CBA_-_Crate_Before_Attack|Crate Before Attack]]<br />
|-<br />
| AFR || Attack From Rope || Acronym of [[Etiquette#AFR_-_Attack_From_Rope|Attack From Rope]]<br />
|-<br />
| KTL || Kill The Leader || Acronym of [[Etiquette#KTL_-_Kill_The_Leader|Kill The Leader]]<br />
|-<br />
| AFJ || Attack From Jetpack || Short for [[Etiquette#AFJ_-_Attack_From_Jetpack|Attack From Jetpack]]<br />
|-<br />
| ABL || All But Last || Acronym of [[Etiquette#ABL_-_All_But_Last|All But Last]]<br />
|-<br />
| KTC || Kill The Cow || Acronym of [[Etiquette#KTC_-_Kill_The_Cow|Kill The Cow]]<br />
|-<br />
| DC || Deadcode || Short for [[People/Deadcode|Deadcode]]<br />
|-<br />
| CS || CyberShadow || Short for [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| WA || Worms Armageddon || Acronym of [[Worms Armageddon]]<br />
|-<br />
| WWP || Worms World Party || Acronym of [[Worms World Party]]<br />
|-<br />
| W2 || Worms 2 || Acronym of [[Worms 2]]<br />
|-<br />
| TCB || The Challenge Base || Acronym of [[The Challenge Base]]<br />
|-<br />
| Team Weapons || Special Weapons || Another way to say [[Special Weapons]]<br />
|-<br />
| Anchor Mode || Artillery Mode || Another way to say '''Artillery Mode'''<br />
|-<br />
| Postal Strike || Mail Strike || Another way to say [[Mail Strike]] <br />
|}<br />
<br />
== See also ==<br />
* [[Etiquette]]<br />
<br />
== External links ==<br />
* [https://wormscesky.cz/info_zkratky/ Glossary of abbreviations] on [[Worms Czesky]].</div>Pac-Manhttps://worms2d.info/?title=User_talk:Pac-Man&diff=30500User talk:Pac-Man2022-03-09T11:31:50Z<p>Pac-Man: /* Technical Issues Regarding the Worms 2 Server */</p>
<hr />
<div>== [[Drowning worm in air]] ==<br />
<br />
The glitch page which you created was in fact a duplicate of [[Objects touching water no longer collide with land]], and has been deleted. The replay you uploaded had no outstanding value compared to the existing replay, [[:Image:CollisionGlitch.WAgame]], and has been deleted as well. I've adapted the picture to the existing glitch article though. --[[User:CyberShadow|Vladimir]] 05:46, 18 November 2009 (UTC)<br />
<br />
== [[In-game controls]] ==<br />
<br />
[http://worms2d.info/?title=In-game_controls&diff=19192&oldid=19191 This edit] was incorrect. From the [[Worms Armageddon ReadMe (English)/Supplementary Beta Documentation#Game|ReadMe]]: <br />
* Holding '''Shift''' now causes the mouse sensitivity to be multiplied by '''4'''. Holding the middle mouse button does the same. With both combined, the multiplier becomes '''16'''. {{lowlight|(introduced in v3.6.28.0)}}<br />
--[[User:CyberShadow|Vladimir]] 17:03, 24 April 2011 (CEST)<br />
* Ok, thought it was less since it never felt like being soooo fast ;D [[User:Pac-Man|Pac-Man]] 17:37, 24 April 2011 (CEST)<br />
<br />
== WormNAT2 like plugin for Worms 2 ==<br />
<br />
I was originally going to contact you on Discord about this, but you deleted your account.<br />
<br />
Worms 2 has been proving troublesome for people to play, due to people not getting the ports forwarded correctly. Currently, im one of the few who can even host and join games correctly. As a result, it would be beyond nice to have some kind of thing like WormNAT2 for Worms 2, as otherwise, barely anyone can play the game, it seems. Can you please look into this? We at the Worms Dojo would be beyond greatful for it!<br />
<br />
~Infomaniac95<br />
: Eh, I can see if I can adjust / rewrite WormNAT2 as a Worms 2 Frontend module; I've never used it myself for W:A. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 12:46, 25 July 2020 (UTC)<br />
: I'm not sure if I'll actually get back to this short-term, it may be more productive to ask the original author(s) of WormNAT to adjust it for W2. If an IDA database of the frontend is of interest, I can upload the one where I dicked around in for the game server rewrite. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:06, 29 July 2020 (UTC)<br />
<br />
== Worms 2 Super Editor ==<br />
<br />
Hi Ray, sorry to bother you! [[User:Lex|Lex]] was asking after the Worms 2 Super Editor, as it seems to have disappeared from the internet. You're the last person to have had it as seen from [http://tim32.org/~muzer/t17-archive/forum.team17.com/archive/index.php/t-49940.html this forum post] (I'm also asking Franpa right now). Do you still have it? --[[User:Muzer|Muzer]] ([[User talk:Muzer|talk]]) 23:02, 28 July 2020 (UTC)<br />
:Yeah, I uploaded it here https://ray.syroot.com/worms/w2supereditor.zip - but I have no clue where I got it from once or which version it is, if that's important. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:02, 29 July 2020 (UTC)<br />
::[OFF] Hey! Now I know that it was you as I was suspecting... So you are Ray huh!? Hahaha!--[[User:FoxHound|FoxHound]] ([[User talk:FoxHound|talk]]) 04:50, 30 July 2020 (UTC)<br />
:::[OFF] Nah I'm just an unhelpful person trying too hard to be funny according to someone who doesn't understand being funny. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 11:41, 30 July 2020 (UTC)<br />
<br />
== Technical Issues Regarding the Worms 2 Server ==<br />
<br />
Hey Ray, we've been trying to use 1.1 of your server software for some Worms 2 action (since all of the Team17 servers are dead), but we've found you can't join games using that version, and text messages have a weird graphic error to them. 1.0 works, but seems overall more unstable. I was wondering if you might be able to help us. We have a community Discord for the game, and would much appreciate it if you could help us out here.<br />
<br />
If you want to join, our server can be found here: [https://discord.gg/NNWcw5dZ] - [[User:Infomaniac95|Infomaniac95]] ([[User talk:Infomaniac95|talk]]) 20:21, 8 November 2021 (UTC)<br />
:Please open issues for these things on the GitLab repositories. Wiki notifications apparently don't work and Discord links expire, and I don't have time to look into it now. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 11:31, 9 March 2022 (UTC)</div>Pac-Manhttps://worms2d.info/?title=User_talk:Pac-Man&diff=30499User talk:Pac-Man2022-03-09T11:29:49Z<p>Pac-Man: Signing unsigned comment from Infomaniac95</p>
<hr />
<div>== [[Drowning worm in air]] ==<br />
<br />
The glitch page which you created was in fact a duplicate of [[Objects touching water no longer collide with land]], and has been deleted. The replay you uploaded had no outstanding value compared to the existing replay, [[:Image:CollisionGlitch.WAgame]], and has been deleted as well. I've adapted the picture to the existing glitch article though. --[[User:CyberShadow|Vladimir]] 05:46, 18 November 2009 (UTC)<br />
<br />
== [[In-game controls]] ==<br />
<br />
[http://worms2d.info/?title=In-game_controls&diff=19192&oldid=19191 This edit] was incorrect. From the [[Worms Armageddon ReadMe (English)/Supplementary Beta Documentation#Game|ReadMe]]: <br />
* Holding '''Shift''' now causes the mouse sensitivity to be multiplied by '''4'''. Holding the middle mouse button does the same. With both combined, the multiplier becomes '''16'''. {{lowlight|(introduced in v3.6.28.0)}}<br />
--[[User:CyberShadow|Vladimir]] 17:03, 24 April 2011 (CEST)<br />
* Ok, thought it was less since it never felt like being soooo fast ;D [[User:Pac-Man|Pac-Man]] 17:37, 24 April 2011 (CEST)<br />
<br />
== WormNAT2 like plugin for Worms 2 ==<br />
<br />
I was originally going to contact you on Discord about this, but you deleted your account.<br />
<br />
Worms 2 has been proving troublesome for people to play, due to people not getting the ports forwarded correctly. Currently, im one of the few who can even host and join games correctly. As a result, it would be beyond nice to have some kind of thing like WormNAT2 for Worms 2, as otherwise, barely anyone can play the game, it seems. Can you please look into this? We at the Worms Dojo would be beyond greatful for it!<br />
<br />
~Infomaniac95<br />
: Eh, I can see if I can adjust / rewrite WormNAT2 as a Worms 2 Frontend module; I've never used it myself for W:A. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 12:46, 25 July 2020 (UTC)<br />
: I'm not sure if I'll actually get back to this short-term, it may be more productive to ask the original author(s) of WormNAT to adjust it for W2. If an IDA database of the frontend is of interest, I can upload the one where I dicked around in for the game server rewrite. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:06, 29 July 2020 (UTC)<br />
<br />
== Worms 2 Super Editor ==<br />
<br />
Hi Ray, sorry to bother you! [[User:Lex|Lex]] was asking after the Worms 2 Super Editor, as it seems to have disappeared from the internet. You're the last person to have had it as seen from [http://tim32.org/~muzer/t17-archive/forum.team17.com/archive/index.php/t-49940.html this forum post] (I'm also asking Franpa right now). Do you still have it? --[[User:Muzer|Muzer]] ([[User talk:Muzer|talk]]) 23:02, 28 July 2020 (UTC)<br />
:Yeah, I uploaded it here https://ray.syroot.com/worms/w2supereditor.zip - but I have no clue where I got it from once or which version it is, if that's important. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:02, 29 July 2020 (UTC)<br />
::[OFF] Hey! Now I know that it was you as I was suspecting... So you are Ray huh!? Hahaha!--[[User:FoxHound|FoxHound]] ([[User talk:FoxHound|talk]]) 04:50, 30 July 2020 (UTC)<br />
:::[OFF] Nah I'm just an unhelpful person trying too hard to be funny according to someone who doesn't understand being funny. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 11:41, 30 July 2020 (UTC)<br />
<br />
== Technical Issues Regarding the Worms 2 Server ==<br />
<br />
Hey Ray, we've been trying to use 1.1 of your server software for some Worms 2 action (since all of the Team17 servers are dead), but we've found you can't join games using that version, and text messages have a weird graphic error to them. 1.0 works, but seems overall more unstable. I was wondering if you might be able to help us. We have a community Discord for the game, and would much appreciate it if you could help us out here.<br />
<br />
If you want to join, our server can be found here: [https://discord.gg/NNWcw5dZ] - [[User:Infomaniac95|Infomaniac95]] ([[User talk:Infomaniac95|talk]]) 20:21, 8 November 2021 (UTC)</div>Pac-Manhttps://worms2d.info/?title=Network_protocol_(Worms_2)&diff=30498Network protocol (Worms 2)2022-03-09T02:12:41Z<p>Pac-Man: /* Packet contents */ wording</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
The Worms 2 servers host rooms in which users can meet to then connect to each other's PCs for playing games.<br />
<br />
== Official servers ==<br />
<br />
The following servers are hosted by Team17:<br />
<br />
{| class="wikitable"<br />
! width="170px" | Name !! IP address !! Port !! Notes<br />
|-<br />
| Worms2 Server (UK) || uk1.servers.worms2.com || 17000 || "The Team17 Server". Started to reject new connections in July 2020, shortly after some Worms enthusiasts played on it. Unclear whether the sudden activity downed it, it did not immediately break. The client will display "Unable to create new player..." when attempting to connect to it.<br />
|-<br />
| Worms2 Demo Server (UK) || uk1.servers.worms2.com || 17171 || Server for Worms 2 demo. Allows full versions to connect aswell. Did not go down in July 2020.<br />
|}<br />
<br />
== Server communication ==<br />
<br />
The server hosting the user, room, and game lists communicates with packets in the following format:<br />
<br />
=== Packet format ===<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Name !! Description<br />
|-<br />
| 0 || uint32 || 4 || Code || Determines the type of packet. Known packets are listed [[#Packet contents|below]].<br />
|-<br />
| 4 || uint32 || 4 || Flags || A bitset determining which of the following fields will be available.<br />
|-<br />
| ? || uint32 || 4 || Value 0 || If bit 0 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 1 || If bit 1 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 2 || If bit 2 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 3 || If bit 3 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 4 || If bit 4 is set in '''Flags'''. Never used other than client-side?<br />
|-<br />
| ? || uint32 || 4 || Value 10 || If bit 10 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Data Length || If bit 5 is set in '''Flags'''.<br />
|-<br />
| ? || char[DataLength] || Data Length || Data || If bit 5 is set in '''Flags''', stores Windows-1251 encoded text like an IP string or full chat message.<br />
|-<br />
| ? || uint32 || 4 || Error || If bit 7 is set in '''Flags'''. Returns a Windows error code from the server, like E_FAIL for when the name of a room to create contains a bad word.<br />
|-<br />
| ? || char[20] || 20 || Name || If bit 8 is set in '''Flags''', stores a Windows-1251 encoded session name. Unused bytes are 0.<br />
|-<br />
| ? || [[#Session info|Session info]] || 50 || Session || If bit 9 is set in '''Flags'''. Unused bytes are 0.<br />
|}<br />
<br />
==== Session info ====<br />
<br />
Several packets identify a user, room, or game with the '''Name''' and '''Session''' fields. The latter provides the following information:<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Value<br />
|-<br />
| 0 || uint32 || 4 || Always 0x17171717<br />
|-<br />
| 4 || uint32 || 4 || Always 0x02010101<br />
|-<br />
| 8 || uint8 || 1 || [[#Nation|Nation / Flag]]<br />
|-<br />
| 9 || uint8 || 1 || Game version, always 49<br />
|-<br />
| 10 || uint8 || 1 || [[#Game release|Game release]] (same as '''Game version''', 50 if CD check failed)<br />
|-<br />
| 11 || uint8 || 1 || Type (1=room, 4=game, 5=user)<br />
|-<br />
| 12 || uint8 || 1 || Access (1=public, 2=protected)<br />
|-<br />
| 13 || uint8 || 1 || Always 1<br />
|-<br />
| 14 || uint8 || 1 || Always 0<br />
|-<br />
| 15 || gap || 35 || Unused, all 0.<br />
|}<br />
<br />
Passing other or invalid combinations (protected users and rooms do not exist, only passworded games) will display a French flag with the default state or a question mark in the UI.<br />
<br />
The Worms 2 1.0.1.1 Demo uses significantly different values compared to the full version 1.0.1.5 patch, causing said question marks to appear. However, interactions with full version users still work.<br />
<br />
===== Nation / Flag =====<br />
<br />
Determines which flag is displayed with the user, room, or game. Two flags are custom (Skull and Team17) and are not normally selectable. [[Des patch]] can unlock the selection of them, and adds another entry for an "invalid" country code, creating an empty flag. Below, the flags are listed with the description displayed when hovering players.<br />
<br />
{| class="wikitable sortable mw-collapsible mw-collapsed"<br />
! Value !! Description !! Notes<br />
|-<br />
| 1 || United Kingdom ||<br />
|-<br />
| 2 || Argentina ||<br />
|-<br />
| 3 || Australia ||<br />
|-<br />
| 4 || Austria ||<br />
|-<br />
| 5 || Belgium ||<br />
|-<br />
| 6 || Brazil ||<br />
|-<br />
| 7 || Canada ||<br />
|-<br />
| 8 || Croatia ||<br />
|-<br />
| 9 || Bosnia || old flag of Bosnia and Herzegovina<br />
|-<br />
| 10 || Cyprus ||<br />
|-<br />
| 11 || Czech ||<br />
|-<br />
| 12 || Denmark ||<br />
|-<br />
| 13 || Finland ||<br />
|-<br />
| 14 || France ||<br />
|-<br />
| 15 || Georgia ||<br />
|-<br />
| 16 || Germany ||<br />
|-<br />
| 17 || Greece ||<br />
|-<br />
| 18 || Hong Kong ||<br />
|-<br />
| 19 || Hungary ||<br />
|-<br />
| 20 || Iceland ||<br />
|-<br />
| 21 || India ||<br />
|-<br />
| 22 || Indonesia ||<br />
|-<br />
| 23 || Iran ||<br />
|-<br />
| 24 || Iraq ||<br />
|-<br />
| 25 || Ireland ||<br />
|-<br />
| 26 || Israel ||<br />
|-<br />
| 27 || Italy ||<br />
|-<br />
| 28 || Japan ||<br />
|-<br />
| 29 || Liechtenstein ||<br />
|-<br />
| 30 || Luxembourg ||<br />
|-<br />
| 31 || Malaysia ||<br />
|-<br />
| 32 || Malta ||<br />
|-<br />
| 33 || Mexico ||<br />
|-<br />
| 34 || Morocco ||<br />
|-<br />
| 35 || Netherlands ||<br />
|-<br />
| 36 || New Zealand ||<br />
|-<br />
| 37 || Norway ||<br />
|-<br />
| 38 || Poland ||<br />
|-<br />
| 39 || Portugal ||<br />
|-<br />
| 40 || Puertorico ||<br />
|-<br />
| 41 || Romania ||<br />
|-<br />
| 42 || Russia ||<br />
|-<br />
| 43 || Singapore ||<br />
|-<br />
| 44 || South Africa ||<br />
|-<br />
| 45 || Spain ||<br />
|-<br />
| 46 || Sweden ||<br />
|-<br />
| 47 || Switzerland ||<br />
|-<br />
| 48 || Turkey ||<br />
|-<br />
| 49 || United States of America ||<br />
|-<br />
| 50 || Iraq || Skull flag<br />
|-<br />
| 51 || Worms2 Imperial Troopers || Team17 flag<br />
|-<br />
| other || Unknown || French flag for players, question mark for rooms<br />
|}<br />
<br />
===== Game release =====<br />
<br />
Becomes 50 if CD detection failed. The CD detection consists of the following tests:<br />
* Find CD drive, where drives A: and B: are ignored - a found drive letter is stored in the registry under HKCU\SOFTWARE\Team17SoftwareLTD\Worms2\CD. (error 2 otherwise)<br />
* Check the CD being labeled "Worms 2", "WORMS2", or - for Trymedia 1.07 versions - "Worms2_bl". (error 1 otherwise)<br />
* Check if the CD has no free space to ensure it being a CD-ROM. (error 3 otherwise)<br />
* Check if the CD stores an "autorun.inf" file. (error 4 otherwise)<br />
<br />
=== Packet contents ===<br />
<br />
As specified above, the '''Code''' of a packet determines the '''Action''' to take on either the server or client side and in effect which fields are used. Some codes are reused for multiple occassions, and some are unused in the 1.0.1.5 patch.<br />
<br />
Client query packets are also used for server notices, represented by the '''Type''' column in the following table:<br />
* Query: A client query to execute an action on the server, always getting a reply (even codes only).<br />
* Reply: A server reply to a client query, always reporting back an '''Error''' code, 0 for success (odd codes only).<br />
* Notice: Same as query, but sent by the server to update the state on the client, like when another user joins or creates a game.<br />
<br />
Note that the same ID counter is incremented for users (UID), rooms (RID), and games (GID) - if a user logs in with UID 0x1000 and immediately creates a room, the RID will be 0x1001. The counter should also start at a high enough value (0x1000 seems to work fine) to not cause duplicate chat messages appearing client-side, apparently because it is also reused as an index in some packets.<br />
<br />
{| class="wikitable sortable"<br />
! Code !! Action !! Type !! Value 0 !! Value 1 !! Value 2 !! Value 3 !! Value 4 !! Value 10 !! Data !! Name / Session<br />
|- style="background:#FFF"<br />
| 50 || ''not used'' || Query || || || || || ? || || ||<br />
|- style="background:#FFF"<br />
| 51 || ''not used'' || Reply || || || || || ? || || ||<br />
|- style="background:#FFFFCD"<br />
| 200 || List Rooms || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFFF"<br />
| 300 || ''not used'' || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 350 || List Item || Reply || || UID / RID / GID || || || || || user / creator / host IP || user / room / game<br />
|- style="background:#FFFFCD"<br />
| 351 || List End || Reply || || || || || || || ||<br />
|- style="background:#FFFFCD"<br />
| 400 || List Users || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 500 || List Games || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Query || || 0 || || || 0 || || || local user<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Notice || || remote UID || || || 0 || || || remote user<br />
|- style="background:#FFE6CD"<br />
| 601 || Login || Reply || || local UID || || || || || ||<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Query || || 0 || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Notice || || new RID || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 701 || Create Room || Reply || || new RID || || || || || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Query || || || joined RID / GID || || || local UID || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Notice || || || joined RID / GID || || || remote UID || ||<br />
|- style="background:#FFCDEF"<br />
| 801 || Join Room / Game || Reply || || || || || || || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Query || || || left RID / GID || || || local UID || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Notice || || || left RID / GID || || || remote UID || ||<br />
|- style="background:#EFCDFF"<br />
| 901 || Leave Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Query<ref name=NotUsed>Only ever sent as a notice by the server, clients disconnect without any query and awaited reply.</ref> || || || || || || local UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Notice || || || || || || remote UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1001 || Disconnect User || Reply<ref name=NotUsed/> || || || || || || || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Query || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Notice || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1101 || Close Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Query<ref name=BadIP>Since the host reports its incorrectly detected NAT IP here, [[Worms 2 Memory Changer]] has to be used to inject the actual IP address into Worms 2 before creating a room.</ref> || || 0 || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Notice || || GID || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1201 || Create Game || Reply || || GID || || || || || ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Query || local UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Notice || remote UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1301 || Room Chat || Reply<ref name=ReturnsEFail>Original server always reports E_FAIL in error code, even though messages were sent.</ref> || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1320 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1321 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1322 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1323 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1324 || ''not used'' || Query || ? || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1325 || ''not used'' || Reply || || || || || || || ? ||<br />
|- style="background:#CDFFCD"<br />
| 1326 || Connect Game || Query || GID || || || || || || ||<br />
|- style="background:#CDFFCD"<br />
| 1327 || Connect Game || Reply || || || || || || || host IP ||<br />
|}<br />
<references /><br />
<br />
== Game room communication ==<br />
<br />
The players are connected via P2P using DirectPlay. This means the ports 47624 (for the lobby connection itself) and 2300 to 2400 (for each player connection) should be forwarded in any router. The fact that each player is connected to another means that the host can leave the game at any time, the remaining players can continue playing without dropping, unlike in [[Worms Armageddon]] or [[Worms World Party]].<br />
<br />
== See also ==<br />
<br />
* [[User:Pac-Man/Worms_2_network_samples|Selected sample logs]]<br />
* [[Worms 2 Game Server]], cross-platform server implementing the above protocol.</div>Pac-Manhttps://worms2d.info/?title=FrontendKitWS&diff=30497FrontendKitWS2022-03-09T01:50:36Z<p>Pac-Man: /* Module Development */ Typo</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = FrontendKitWS<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C++<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/6a8dc0d3d238cf5a52c7184c28e4e709/wsock32.dll DLL]<br />
}}<br />
<br />
[[FrontendKitWS]] is a [[WormKitDS]]-like module loader specifically made for changing the [[Worms 2]] frontend as opposed to in-game logic.<br />
<br />
It is required for patching the frontend as it does not load the WormKitDS ''dsound.dll'' library, which is why FrontendKitWS consists of ''wsock32.dll'', a library only loaded by the frontend, giving it the "WS" suffix. This also prevents issues with WormKitDS modules unaware of having been loaded into the frontend rather than the in-game process.<br />
<br />
== Installation ==<br />
<br />
Click the DLL download link in the info box on the right, and place the downloaded ''wsock32.dll'' in your Worms 2 directory, besides ''frontend.exe''. Then, download any [[WormKit#Non-W:A modules|Worms 2 frontend related modules]] and place them there aswell.<br />
<br />
== Module Development ==<br />
<br />
Modules are created just like WormKit ones, but require an ''fk'' file name prefix. A ''FrontendKitLib'' can be statically linked to, which provides some common functionality like detecting the game version, accessing a configuration file, or patching code. The code was based on some utilities available in [[ReSolution]].<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=Monkey_Mode&diff=28028Monkey Mode2021-01-10T22:24:11Z<p>Pac-Man: Wikitable'd muahahaha</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
<br />
''Monkey Mode'' is a simple cheat for [[WormsDC]] that translates all of the weapons' names into Swedish, as well as altering the appearance, but not the function, of the [[Sheep-on-a-Rope]]. It does not have any real impact on the gameplay short of being an amusing aside. The cheat likely stems from [[Andy Davidson]]'s "hobby" of translating words into Swedish.<br />
<br />
To activates the Monkey Mode cheat, type KARTONG APA in the title screen.<ref>[http://www.lemonamiga.com/games/cheats.php?id=1187 Worms: The Director's Cut cheats], Lemon Amiga. Retrieved 2010-06-17.</ref><br />
<br />
Below is a list of each weapon in WormsDC along with its Swedish name.<br />
<br />
{|border="1" class="wikitable"<br />
!English Name!!Monkey Mode translation!!Correct translation<br />
|-<br />
|[[Bazooka]]||''Bazooka''||''Bazooka''<br />
|-<br />
|[[Homing Missile]]||''Målsökande Missil''||''Målsökande Missil''<br />
|-<br />
|[[Grenade]]||''Handgranat''||''Handgranat''<br />
|-<br />
|[[Cluster Bomb]]||''Splitterbomb''||<br />
|-<br />
|[[Grenade Launcher]]||''Granatkastare''||''Granatkastare''<br />
|-<br />
|[[Shotgun]]||''Hagelgevär''||''Hagelgevär''<br />
|-<br />
|[[Uzi]]||''Uzi''||''Uzi''<br />
|-<br />
|[[Handgun]]||''Handvapen''||''Pistol/Handvapen''<br />
|-<br />
|[[Fire Punch]]||''Eldslag''||''Eldslag''<br />
|-<br />
|[[Dragon Ball|Dragonball]]||''Drakklot''||''Drakboll/Drakklot''<br />
|-<br />
|[[Dynamite]]||''Dynamite''||''Dynamit''<br />
|-<br />
|[[Sheep]]||''Får''||''Får''<br />
|-<br />
|[[Air Strike]]||''Bombattack''||''Luftanfall''<br />
|-<br />
|[[Petrol Bomb]]||''Besinbomb''||''Bensinbomb/Brandbomb''<br />
|-<br />
|[[Teleport]]||''Teleport''||''Teleport''<br />
|-<br />
|[[Blow Torch]]||''Blåslampa''||''Blåslampa''<br />
|-<br />
|[[Pneumatic Drill]]||''Pneumatisk Borr''||''Tryckluftsborr''<br />
|-<br />
|[[Mine]]||''Mina''||''Mina''<br />
|-<br />
|[[Ninja Rope]]||''Ninjarep''||''Ninjarep''<br />
|-<br />
|[[Bungee]]||''Bungeehopp''||''Bungee''<br />
|-<br />
|[[Girder]]s||''Balkar''||''Balk(ar)''<br />
|-<br />
|[[Skip Go]]||''Hoppa Över''||''Hoppa Över Tur''<br />
|-<br />
|[[Kamikaze]]||''Kamikaze''||''Kamikaze''<br />
|-<br />
|[[Surrender]]||''Ge Upp''||''Ge Upp/Kapitulera''<br />
|-<br />
|[[Homing Pigeon]]||''Målsökande Duva''||''Målsökande Duva''<br />
|-<br />
|[[Mad Cows]]||''Galna Kor''||''Galna Kor''<br />
|-<br />
|[[Banana Bomb]]||''Bananbomb''||''Bananbomb''<br />
|-<br />
|[[Holy Hand Grenade]]||''Helig Handgranat''||''Helig Handgranat''<br />
|-<br />
|[[Minigun]]||''Minigun''||''Minigun''<br />
|-<br />
|[[Baseball Bat]]||''Slagträ''||''Basebollträ''<br />
|-<br />
|[[Super Sheep (Aqua Sheep)|Super Sheep]]||''Superfår''||''Superfår''<br />
|-<br />
|[[Sheep-on-a-Rope]]||''Kenny-på-ett-Rep''||''Får-på-ett-Rep''<br />
|-<br />
|[[Sheep Strike (French Sheep Strike)|Sheep Strike]]||''Får-Attack''||''Får-Attack''<br />
|-<br />
|[[Old Woman]]||''Gammal Kvinna''||''Gammal Kvinna''<br />
|-<br />
|[[Priceless Ming Vase]]||''Ovärderlig Mingvas''||''Ovärderlig Mingvas''<br />
|-<br />
|[[Mail Strike|Postal Strike]]||''Post-Attack''||''Post-Attack''<br />
|-<br />
|[[Nuclear Bomb (Indian Nuclear Test)|Nuke]]||''Atombomb''||''Atombomb''<br />
|-<br />
|[[Concrete Donkey]]||''Betong Åsna''||''Betong Åsna''<br />
|}<br />
<br />
<references/><br />
<br />
{{todo|Verify that the in-game translations are accurate Swedish, and provide a correct translation in a third column where necessary.}}</div>Pac-Manhttps://worms2d.info/?title=Talk:Worms_2_Plus&diff=27054Talk:Worms 2 Plus2020-08-20T15:58:07Z<p>Pac-Man: /* Remove "contributors" from "developers" box */ new section</p>
<hr />
<div>== Remove "contributors" from "developers" box ==<br />
<br />
I'm not sure why developers of the software / utilities _bundled_ in this obvious copyright violation are listed as developers - it reads like they developed towards or specifically for this copyright violation. At least I personally do not want to have anything to do with that copyright violation. Plus, they're already listed in the bulleted list in the main text of this copyright violation's page. With this logic you'd also have to list all the people having worked on the MSVC compiler etc. since they're all "developers" of this copyright violation. So I suggest just removing the names from the infobox of this copyright violation and only keeping the name of the guy creating this copyright violation. Did I say copyright violation? - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 15:58, 20 August 2020 (UTC)</div>Pac-Manhttps://worms2d.info/?title=User_talk:Pac-Man&diff=26605User talk:Pac-Man2020-07-30T11:41:29Z<p>Pac-Man: /* Worms 2 Super Editor */</p>
<hr />
<div>== [[Drowning worm in air]] ==<br />
<br />
The glitch page which you created was in fact a duplicate of [[Objects touching water no longer collide with land]], and has been deleted. The replay you uploaded had no outstanding value compared to the existing replay, [[:Image:CollisionGlitch.WAgame]], and has been deleted as well. I've adapted the picture to the existing glitch article though. --[[User:CyberShadow|Vladimir]] 05:46, 18 November 2009 (UTC)<br />
<br />
== [[In-game controls]] ==<br />
<br />
[http://worms2d.info/?title=In-game_controls&diff=19192&oldid=19191 This edit] was incorrect. From the [[Worms Armageddon ReadMe (English)/Supplementary Beta Documentation#Game|ReadMe]]: <br />
* Holding '''Shift''' now causes the mouse sensitivity to be multiplied by '''4'''. Holding the middle mouse button does the same. With both combined, the multiplier becomes '''16'''. {{lowlight|(introduced in v3.6.28.0)}}<br />
--[[User:CyberShadow|Vladimir]] 17:03, 24 April 2011 (CEST)<br />
* Ok, thought it was less since it never felt like being soooo fast ;D [[User:Pac-Man|Pac-Man]] 17:37, 24 April 2011 (CEST)<br />
<br />
== WormNAT2 like plugin for Worms 2 ==<br />
<br />
I was originally going to contact you on Discord about this, but you deleted your account.<br />
<br />
Worms 2 has been proving troublesome for people to play, due to people not getting the ports forwarded correctly. Currently, im one of the few who can even host and join games correctly. As a result, it would be beyond nice to have some kind of thing like WormNAT2 for Worms 2, as otherwise, barely anyone can play the game, it seems. Can you please look into this? We at the Worms Dojo would be beyond greatful for it!<br />
<br />
~Infomaniac95<br />
: Eh, I can see if I can adjust / rewrite WormNAT2 as a Worms 2 Frontend module; I've never used it myself for W:A. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 12:46, 25 July 2020 (UTC)<br />
: I'm not sure if I'll actually get back to this short-term, it may be more productive to ask the original author(s) of WormNAT to adjust it for W2. If an IDA database of the frontend is of interest, I can upload the one where I dicked around in for the game server rewrite. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:06, 29 July 2020 (UTC)<br />
<br />
== Worms 2 Super Editor ==<br />
<br />
Hi Ray, sorry to bother you! [[User:Lex|Lex]] was asking after the Worms 2 Super Editor, as it seems to have disappeared from the internet. You're the last person to have had it as seen from [http://tim32.org/~muzer/t17-archive/forum.team17.com/archive/index.php/t-49940.html this forum post] (I'm also asking Franpa right now). Do you still have it? --[[User:Muzer|Muzer]] ([[User talk:Muzer|talk]]) 23:02, 28 July 2020 (UTC)<br />
:Yeah, I uploaded it here https://ray.syroot.com/worms/w2supereditor.zip - but I have no clue where I got it from once or which version it is, if that's important. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:02, 29 July 2020 (UTC)<br />
::[OFF] Hey! Now I know that it was you as I was suspecting... So you are Ray huh!? Hahaha!--[[User:FoxHound|FoxHound]] ([[User talk:FoxHound|talk]]) 04:50, 30 July 2020 (UTC)<br />
:::[OFF] Nah I'm just an unhelpful person trying too hard to be funny according to someone who doesn't understand being funny. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 11:41, 30 July 2020 (UTC)</div>Pac-Manhttps://worms2d.info/?title=Worms_Armageddon&diff=26601Worms Armageddon2020-07-29T19:18:07Z<p>Pac-Man: Fix date format for GOG release</p>
<hr />
<div>{{ParentArticle|[[Worms Knowledge Base]]}}<br />
{{Languages|en|Worms Armageddon|fr|Worms Armageddon/fr|ru|Worms Armageddon/ru|de|Worms Armageddon/de|pl|Worms Armageddon/pl}}<br />
{| class="infobox" cellspacing="2" style="width: 21em; font-size: 90%; text-align: left;"<br />
! colspan="2" style="font-size: larger; text-align: center" | [[Image:WA_icon.png|32px|Worms Armageddon icon]]&nbsp;&nbsp;Worms Armageddon<br />
|-<br />
|colspan="2" style="text-align: center;"|[[Image:WA_screenshot.png|250px|Worms Armageddon title screen]]<br />
|-<br />
|Developer:||[[Team17]]<br />
|-<br />
|Maintainers:||[[Deadcode]] and [[CyberShadow]]<br />
|-<br />
|Publishers:||'''MicroProse''' (1999 - PC, PSone, Dreamcast)<br />'''Infogrames''' (1999 - N64, Game Boy Color)<br />'''Sold-Out Software''' (2002-'09, PC)<br />'''Green Pepper''' (?)<br />'''Ubisoft''' (2002, PC)<br />'''TryMedia''' (2002-'05)<br />'''Team17''' (2011-present)<br />
|-<br />
|Release dates:||29 January 1999 (UK, Scandinavia)<br />1 February 1999 (France)<br />5 February 1999 (Germany)<br />11 February 1999 (Australia)<br />24 June 1999 (USA)<br />
|-<br />
|Latest version:||{{LatestBeta}} / {{LatestBetaRelease}}<br />
|- <br />
|Website:||[http://wa.team17.com http://wa.team17.com]<br />
|- <br />
|'''Buy:'''||From [http://store.steampowered.com/app/217200 Steam], [https://www.gog.com/game/worms_armageddon GOG.com], [https://www.humblebundle.com/store/worms-armageddon Humble Store], or [https://www.amazon.com/Worms-2-Armageddon-Pc/dp/B000E23XNA Amazon] (CD edition)<br />
|-<br />
!Update:||From [ftp://ftp.team17.com/pub/t17/patches/pc/WA_update-3.7.2.1_Installer.exe Team17's FTP] or [http://worms2d.info/files/WA_update-3.7.2.1_Installer.exe Worms Knowledge Base]<br />
|}<br />
<br />
'''''Worms Armageddon''''' is a strategy game developed by UK-based company, [[Team17]]. It was originally developed as an expansion pack for [[Worms 2]], but as the project grew larger in scale, it was developed to be its own game.<br />
Released in 1999, it is widely accepted as the most successful game in the [[w:Worms (series)|Worms series]].<br />
<br />
After an update (version 3.0), Team17 seemed to lose interest in updating the game. A few years later, however, they recruited [[Deadcode]], a talented programmer who showed interest in the game, and even provided a 3rd-party solution ([[Silkworm]]) to make the game compatible with Windows 2000/XP. Deadcode has been writing software updates since then. He was later joined by [[CyberShadow]], in September 2006. <br />
<br />
Worms Armageddon was [https://store.steampowered.com/app/217200 released on Steam] for a limited time as the preorder bonus of Worms Revolution on 13 September 2012, and then re-released as a separate title on 19 March 2013.<br />
<br />
The game was [https://www.gog.com/game/worms_armageddon released on GOG.com] DRM-free on 6 October 2016.<br />
<br />
The latest version of the game is '''{{LatestBeta}}''', released on '''{{LatestBetaRelease}}'''.<br />
__NOTOC__ __NOEDITSECTION__<br />
{{Game navbox|box6=FAQs}}<br />
<br />
== External links ==<br />
<br />
* [http://wa.team17.com/ Official W:A website]<br />
* [http://en.wikipedia.org/wiki/Worms_Armageddon Worms Armageddon on Wikipedia]</div>Pac-Manhttps://worms2d.info/?title=User_talk:Pac-Man&diff=26599User talk:Pac-Man2020-07-29T19:06:47Z<p>Pac-Man: /* WormNAT2 like plugin for Worms 2 */</p>
<hr />
<div>== [[Drowning worm in air]] ==<br />
<br />
The glitch page which you created was in fact a duplicate of [[Objects touching water no longer collide with land]], and has been deleted. The replay you uploaded had no outstanding value compared to the existing replay, [[:Image:CollisionGlitch.WAgame]], and has been deleted as well. I've adapted the picture to the existing glitch article though. --[[User:CyberShadow|Vladimir]] 05:46, 18 November 2009 (UTC)<br />
<br />
== [[In-game controls]] ==<br />
<br />
[http://worms2d.info/?title=In-game_controls&diff=19192&oldid=19191 This edit] was incorrect. From the [[Worms Armageddon ReadMe (English)/Supplementary Beta Documentation#Game|ReadMe]]: <br />
* Holding '''Shift''' now causes the mouse sensitivity to be multiplied by '''4'''. Holding the middle mouse button does the same. With both combined, the multiplier becomes '''16'''. {{lowlight|(introduced in v3.6.28.0)}}<br />
--[[User:CyberShadow|Vladimir]] 17:03, 24 April 2011 (CEST)<br />
* Ok, thought it was less since it never felt like being soooo fast ;D [[User:Pac-Man|Pac-Man]] 17:37, 24 April 2011 (CEST)<br />
<br />
== WormNAT2 like plugin for Worms 2 ==<br />
<br />
I was originally going to contact you on Discord about this, but you deleted your account.<br />
<br />
Worms 2 has been proving troublesome for people to play, due to people not getting the ports forwarded correctly. Currently, im one of the few who can even host and join games correctly. As a result, it would be beyond nice to have some kind of thing like WormNAT2 for Worms 2, as otherwise, barely anyone can play the game, it seems. Can you please look into this? We at the Worms Dojo would be beyond greatful for it!<br />
<br />
~Infomaniac95<br />
: Eh, I can see if I can adjust / rewrite WormNAT2 as a Worms 2 Frontend module; I've never used it myself for W:A. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 12:46, 25 July 2020 (UTC)<br />
: I'm not sure if I'll actually get back to this short-term, it may be more productive to ask the original author(s) of WormNAT to adjust it for W2. If an IDA database of the frontend is of interest, I can upload the one where I dicked around in for the game server rewrite. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:06, 29 July 2020 (UTC)<br />
<br />
== Worms 2 Super Editor ==<br />
<br />
Hi Ray, sorry to bother you! [[User:Lex|Lex]] was asking after the Worms 2 Super Editor, as it seems to have disappeared from the internet. You're the last person to have had it as seen from [this forum post http://tim32.org/~muzer/t17-archive/forum.team17.com/archive/index.php/t-49940.html] (I'm also asking Franpa right now). Do you still have it? --[[User:Muzer|Muzer]] ([[User talk:Muzer|talk]]) 23:02, 28 July 2020 (UTC)<br />
:Yeah, I uploaded it here https://ray.syroot.com/worms/w2supereditor.zip - but I have no clue where I got it from once or which version it is, if that's important. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:02, 29 July 2020 (UTC)</div>Pac-Manhttps://worms2d.info/?title=User_talk:Pac-Man&diff=26597User talk:Pac-Man2020-07-29T19:02:44Z<p>Pac-Man: /* Worms 2 Super Editor */ Uploaded W2 Super Editor</p>
<hr />
<div>== [[Drowning worm in air]] ==<br />
<br />
The glitch page which you created was in fact a duplicate of [[Objects touching water no longer collide with land]], and has been deleted. The replay you uploaded had no outstanding value compared to the existing replay, [[:Image:CollisionGlitch.WAgame]], and has been deleted as well. I've adapted the picture to the existing glitch article though. --[[User:CyberShadow|Vladimir]] 05:46, 18 November 2009 (UTC)<br />
<br />
== [[In-game controls]] ==<br />
<br />
[http://worms2d.info/?title=In-game_controls&diff=19192&oldid=19191 This edit] was incorrect. From the [[Worms Armageddon ReadMe (English)/Supplementary Beta Documentation#Game|ReadMe]]: <br />
* Holding '''Shift''' now causes the mouse sensitivity to be multiplied by '''4'''. Holding the middle mouse button does the same. With both combined, the multiplier becomes '''16'''. {{lowlight|(introduced in v3.6.28.0)}}<br />
--[[User:CyberShadow|Vladimir]] 17:03, 24 April 2011 (CEST)<br />
* Ok, thought it was less since it never felt like being soooo fast ;D [[User:Pac-Man|Pac-Man]] 17:37, 24 April 2011 (CEST)<br />
<br />
== WormNAT2 like plugin for Worms 2 ==<br />
<br />
I was originally going to contact you on Discord about this, but you deleted your account.<br />
<br />
Worms 2 has been proving troublesome for people to play, due to people not getting the ports forwarded correctly. Currently, im one of the few who can even host and join games correctly. As a result, it would be beyond nice to have some kind of thing like WormNAT2 for Worms 2, as otherwise, barely anyone can play the game, it seems. Can you please look into this? We at the Worms Dojo would be beyond greatful for it!<br />
<br />
~Infomaniac95<br />
: Eh, I can see if I can adjust / rewrite WormNAT2 as a Worms 2 Frontend module; I've never used it myself for W:A. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 12:46, 25 July 2020 (UTC)<br />
<br />
== Worms 2 Super Editor ==<br />
<br />
Hi Ray, sorry to bother you! [[User:Lex|Lex]] was asking after the Worms 2 Super Editor, as it seems to have disappeared from the internet. You're the last person to have had it as seen from [this forum post http://tim32.org/~muzer/t17-archive/forum.team17.com/archive/index.php/t-49940.html] (I'm also asking Franpa right now). Do you still have it? --[[User:Muzer|Muzer]] ([[User talk:Muzer|talk]]) 23:02, 28 July 2020 (UTC)<br />
:Yeah, I uploaded it here https://ray.syroot.com/worms/w2supereditor.zip - but I have no clue where I got it from once or which version it is, if that's important. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 19:02, 29 July 2020 (UTC)</div>Pac-Manhttps://worms2d.info/?title=User_talk:Pac-Man&diff=26480User talk:Pac-Man2020-07-25T12:46:11Z<p>Pac-Man: /* WormNAT2 like plugin for Worms 2 */</p>
<hr />
<div>== [[Drowning worm in air]] ==<br />
<br />
The glitch page which you created was in fact a duplicate of [[Objects touching water no longer collide with land]], and has been deleted. The replay you uploaded had no outstanding value compared to the existing replay, [[:Image:CollisionGlitch.WAgame]], and has been deleted as well. I've adapted the picture to the existing glitch article though. --[[User:CyberShadow|Vladimir]] 05:46, 18 November 2009 (UTC)<br />
<br />
== [[In-game controls]] ==<br />
<br />
[http://worms2d.info/?title=In-game_controls&diff=19192&oldid=19191 This edit] was incorrect. From the [[Worms Armageddon ReadMe (English)/Supplementary Beta Documentation#Game|ReadMe]]: <br />
* Holding '''Shift''' now causes the mouse sensitivity to be multiplied by '''4'''. Holding the middle mouse button does the same. With both combined, the multiplier becomes '''16'''. {{lowlight|(introduced in v3.6.28.0)}}<br />
--[[User:CyberShadow|Vladimir]] 17:03, 24 April 2011 (CEST)<br />
* Ok, thought it was less since it never felt like being soooo fast ;D [[User:Pac-Man|Pac-Man]] 17:37, 24 April 2011 (CEST)<br />
<br />
== WormNAT2 like plugin for Worms 2 ==<br />
<br />
I was originally going to contact you on Discord about this, but you deleted your account.<br />
<br />
Worms 2 has been proving troublesome for people to play, due to people not getting the ports forwarded correctly. Currently, im one of the few who can even host and join games correctly. As a result, it would be beyond nice to have some kind of thing like WormNAT2 for Worms 2, as otherwise, barely anyone can play the game, it seems. Can you please look into this? We at the Worms Dojo would be beyond greatful for it!<br />
<br />
~Infomaniac95<br />
: Eh, I can see if I can adjust / rewrite WormNAT2 as a Worms 2 Frontend module; I've never used it myself for W:A. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 12:46, 25 July 2020 (UTC)</div>Pac-Manhttps://worms2d.info/?title=FrontendKitWS&diff=26185FrontendKitWS2020-07-16T14:12:00Z<p>Pac-Man: Add Module Development section to mention available utility library.</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = FrontendKitWS<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C++<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/6a8dc0d3d238cf5a52c7184c28e4e709/wsock32.dll DLL]<br />
}}<br />
<br />
[[FrontendKitWS]] is a [[WormKitDS]]-like module loader specifically made for changing the [[Worms 2]] frontend as opposed to in-game logic.<br />
<br />
It is required for patching the frontend as it does not load the WormKitDS ''dsound.dll'' library, which is why FrontendKitWS consists of ''wsock32.dll'', a library only loaded by the frontend, giving it the "WS" suffix. This also prevents issues with WormKitDS modules unaware of having been loaded into the frontend rather than the in-game process.<br />
<br />
== Installation ==<br />
<br />
Click the DLL download link in the info box on the right, and place the downloaded ''wsock32.dll'' in your Worms 2 directory, besides ''frontend.exe''. Then, download any [[WormKit#Non-W:A modules|Worms 2 frontend related modules]] and place them there aswell.<br />
<br />
== Module Development ==<br />
<br />
Modules are creates just like WormKit ones, but require an ''fk'' file name prefix. A ''FrontendKitLib'' can be statically linked to, which provides some common functionality like detecting the game version, accessing a configuration file, or patching code. The code was based on some utilities available in [[ReSolution]].<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=FkNetcode&diff=26184FkNetcode2020-07-16T14:05:08Z<p>Pac-Man: Update to 1.0.1</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.1 / 16 July 2020<br />
| language = C++<br />
| games = [[Worms 2|W2]] (1.05/1.07)<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/81f330506f9b2ff6da191efbe87554ba/fkNetcode.dll DLL]<br />
}}<br />
<br />
[[fkNetcode]] is a [[FrontendKitWS]] module attempting to fix issues related to playing games online in [[Worms 2]]. It is primarily meant as an automated replacement for manually patching the game through the [[Worms 2 Memory Changer]].<br />
<br />
== Features ==<br />
<br />
* Replaces the external IP detection routine with a web service returning the actual external IP rather than the NAT IP. This is required to not only host games, but also make them work in-game.<br />
* Also allows patching in a hard-coded IP as in the Worms 2 Memory Changer and ignoring the web service.<br />
* Removes useless delays when connecting to the server.<br />
{{clear}}<br />
<br />
== Configuration ==<br />
<br />
An ''fkNetcode.ini'' file is automatically created, which allows configuring the module in the following sections:<br />
<br />
=== AddressResolval ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! Name !! Type !! Default !! Description<br />
|-<br />
| FallbackIP || IPv4 || || IP which is used when the resolval via the web service fails. If none is provided, the original NAT routine is used.<br />
|-<br />
| ServiceUrl || HTTP URL || http://ip.syroot.com || Link to an HTTP resource which must return the external IP as plain text. If none is provided, '''FallbackIP''' is used as described above.<br />
|-<br />
| ShowErrors || Boolean || 1 || If enabled (1), displays errors which may have occurred during IP resolval in message boxes.<br />
|}<br />
<br />
== Changelog ==<br />
<br />
{| class="wikitable sortable"<br />
! Version !! Release Date !! Notes<br />
|-<br />
| 1.0.0 || 12 July 2020 ||<br />
* Initial release.<br />
|-<br />
| 1.0.1 || 16 July 2020 ||<br />
* Fix possible improper determination of INI file path.<br />
|}<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=Worms_2_Game_Server&diff=26176Worms 2 Game Server2020-07-14T19:07:39Z<p>Pac-Man: Updated to 1.1.0</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = Worms 2 Game Server<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.1.0 / 14 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C# (.NET Core 3)<br />
| platform = Win32, Linux, Mac OS X<br />
| license = MIT<br />
| download = [https://gitlab.com/Syroot/Worms Source code]<br />
}}<br />
<br />
[[Worms 2 Game Server]] is a small server application connecting Worms 2 players by allowing them to create rooms, chat, and list their games online, just like the original Team17 servers. It can be added to the "Address book" of Worms 2 to allow players to connect to it instead.<br />
<br />
The software was built shortly after reversing the [[Network_protocol_(Worms_2)|Worms 2 network protocol]] in reaction to the original Team17 server no longer accepting new connections in July 2020. It simulates the original server as closely as possible with the following changes:<br />
<br />
* Request validation is slightly stronger, like checking for duplicate user names on login or missing packet fields.<br />
* Immediate notification of left users, closed rooms, or closed games, instead of waiting for a timeout to prevent ghosted / duplicate users and rooms.<br />
* Rejects attempts to host games with NAT IPs and informs the user about [[fkNetcode]].<br />
<br />
It can be compiled for most modern Windows, Linux, and Mac OS X platforms as it targets .NET Core 3. The source code also comes with a proxy debug class to allow sniffing Worms 2 network traffic.<br />
<br />
== Changelog ==<br />
<br />
{| class="wikitable sortable"<br />
! Version !! Release Date !! Notes<br />
|-<br />
| 1.0.0 || 11 July 2020 ||<br />
* Initial release.<br />
|-<br />
| 1.1.0 || 14 July 2020 ||<br />
* Netcode was rewritten to be completely asynchronous (using System.IO.Pipelines).<br />
* Connections now time out after 3 seconds if not logged in, or 10 minutes if logged in.<br />
* Packet validation is now stronger and kills connections with invalid / unknown packet codes, invalid field sets, or Packet.Data larger than 0x1000 bytes.<br />
* A parameter can now be passed to the server to specify the local endpoint to listen under (either as a port only or adapter IP with port).<br />
* Logging now prints the time stamp for every message.<br />
* Logging is now colored on Linux and Mac OS X aswell, and no longer only on Windows 10.<br />
* Create Game failure message now recommends [[fkNetcode]] rather than the [[Worms 2 Memory Changer]].<br />
|}<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=Network_protocol_(Worms_2)&diff=26175Network protocol (Worms 2)2020-07-14T18:52:02Z<p>Pac-Man: /* Nation / Flag */ List them as displayed when hovering players, including the political incorrectness</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
The Worms 2 servers host rooms in which users can meet to then connect to each other's PCs for playing games.<br />
<br />
== Official servers ==<br />
<br />
The following servers are hosted by Team17:<br />
<br />
{| class="wikitable"<br />
! width="170px" | Name !! IP address !! Port !! Notes<br />
|-<br />
| Worms2 Server (UK) || uk1.servers.worms2.com || 17000 || "The Team17 Server". Started to reject new connections in July 2020, shortly after some Worms enthusiasts played on it. Unclear whether the sudden activity downed it, it did not immediately break. The client will display "Unable to create new player..." when attempting to connect to it.<br />
|-<br />
| Worms2 Demo Server (UK) || uk1.servers.worms2.com || 17171 || Server for Worms 2 demo. Allows full versions to connect aswell. Did not go down in July 2020.<br />
|}<br />
<br />
== Server communication ==<br />
<br />
The server hosting the user, room, and game lists communicates with packets in the following format:<br />
<br />
=== Packet format ===<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Name !! Description<br />
|-<br />
| 0 || uint32 || 4 || Code || Determines the type of packet. Known packets are listed [[#Packet contents|below]].<br />
|-<br />
| 4 || uint32 || 4 || Flags || A bitset determining which of the following fields will be available.<br />
|-<br />
| ? || uint32 || 4 || Value 0 || If bit 0 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 1 || If bit 1 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 2 || If bit 2 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 3 || If bit 3 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 4 || If bit 4 is set in '''Flags'''. Never used other than client-side?<br />
|-<br />
| ? || uint32 || 4 || Value 10 || If bit 10 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Data Length || If bit 5 is set in '''Flags'''.<br />
|-<br />
| ? || char[DataLength] || Data Length || Data || If bit 5 is set in '''Flags''', stores Windows-1251 encoded text like an IP string or full chat message.<br />
|-<br />
| ? || uint32 || 4 || Error || If bit 7 is set in '''Flags'''. Returns a Windows error code from the server, like E_FAIL for when the name of a room to create contains a bad word.<br />
|-<br />
| ? || char[20] || 20 || Name || If bit 8 is set in '''Flags''', stores a Windows-1251 encoded session name. Unused bytes are 0.<br />
|-<br />
| ? || [[#Session info|Session info]] || 50 || Session || If bit 9 is set in '''Flags'''. Unused bytes are 0.<br />
|}<br />
<br />
==== Session info ====<br />
<br />
Several packets identify a user, room, or game with the '''Name''' and '''Session''' fields. The latter provides the following information:<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Value<br />
|-<br />
| 0 || uint32 || 4 || Always 0x17171717<br />
|-<br />
| 4 || uint32 || 4 || Always 0x02010101<br />
|-<br />
| 8 || uint8 || 1 || [[#Nation|Nation / Flag]]<br />
|-<br />
| 9 || uint8 || 1 || Game version, always 49<br />
|-<br />
| 10 || uint8 || 1 || [[#Game release|Game release]] (same as '''Game version''', 50 if CD check failed)<br />
|-<br />
| 11 || uint8 || 1 || Type (1=room, 4=game, 5=user)<br />
|-<br />
| 12 || uint8 || 1 || Access (1=public, 2=protected)<br />
|-<br />
| 13 || uint8 || 1 || Always 1<br />
|-<br />
| 14 || uint8 || 1 || Always 0<br />
|-<br />
| 15 || gap || 35 || Unused, all 0.<br />
|}<br />
<br />
Passing other or invalid combinations (protected users and rooms do not exist, only passworded games) will display a French flag with the default state or a question mark in the UI.<br />
<br />
The Worms 2 1.0.1.1 Demo uses significantly different values compared to the full version 1.0.1.5 patch, causing said question marks to appear. However, interactions with full version users still work.<br />
<br />
===== Nation / Flag =====<br />
<br />
Determines which flag is displayed with the user, room, or game. Two flags are custom (Skull and Team17) and are not normally selectable. [[Des patch]] can unlock the selection of them, and adds another entry for an "invalid" country code, creating an empty flag. Below, the flags are listed with the description displayed when hovering players.<br />
<br />
{| class="wikitable sortable mw-collapsible mw-collapsed"<br />
! Value !! Description !! Notes<br />
|-<br />
| 1 || United Kingdom ||<br />
|-<br />
| 2 || Argentina ||<br />
|-<br />
| 3 || Australia ||<br />
|-<br />
| 4 || Austria ||<br />
|-<br />
| 5 || Belgium ||<br />
|-<br />
| 6 || Brazil ||<br />
|-<br />
| 7 || Canada ||<br />
|-<br />
| 8 || Croatia ||<br />
|-<br />
| 9 || Bosnia || old flag of Bosnia and Herzegovina<br />
|-<br />
| 10 || Cyprus ||<br />
|-<br />
| 11 || Czech ||<br />
|-<br />
| 12 || Denmark ||<br />
|-<br />
| 13 || Finland ||<br />
|-<br />
| 14 || France ||<br />
|-<br />
| 15 || Georgia ||<br />
|-<br />
| 16 || Germany ||<br />
|-<br />
| 17 || Greece ||<br />
|-<br />
| 18 || Hong Kong ||<br />
|-<br />
| 19 || Hungary ||<br />
|-<br />
| 20 || Iceland ||<br />
|-<br />
| 21 || India ||<br />
|-<br />
| 22 || Indonesia ||<br />
|-<br />
| 23 || Iran ||<br />
|-<br />
| 24 || Iraq ||<br />
|-<br />
| 25 || Ireland ||<br />
|-<br />
| 26 || Israel ||<br />
|-<br />
| 27 || Italy ||<br />
|-<br />
| 28 || Japan ||<br />
|-<br />
| 29 || Liechtenstein ||<br />
|-<br />
| 30 || Luxembourg ||<br />
|-<br />
| 31 || Malaysia ||<br />
|-<br />
| 32 || Malta ||<br />
|-<br />
| 33 || Mexico ||<br />
|-<br />
| 34 || Morocco ||<br />
|-<br />
| 35 || Netherlands ||<br />
|-<br />
| 36 || New Zealand ||<br />
|-<br />
| 37 || Norway ||<br />
|-<br />
| 38 || Poland ||<br />
|-<br />
| 39 || Portugal ||<br />
|-<br />
| 40 || Puertorico ||<br />
|-<br />
| 41 || Romania ||<br />
|-<br />
| 42 || Russia ||<br />
|-<br />
| 43 || Singapore ||<br />
|-<br />
| 44 || South Africa ||<br />
|-<br />
| 45 || Spain ||<br />
|-<br />
| 46 || Sweden ||<br />
|-<br />
| 47 || Switzerland ||<br />
|-<br />
| 48 || Turkey ||<br />
|-<br />
| 49 || United States of America ||<br />
|-<br />
| 50 || Iraq || Skull flag<br />
|-<br />
| 51 || Worms2 Imperial Troopers || Team17 flag<br />
|-<br />
| other || Unknown || French flag for players, question mark for rooms<br />
|}<br />
<br />
===== Game release =====<br />
<br />
Becomes 50 if CD detection failed. The CD detection consists of the following tests:<br />
* Find CD drive, where drives A: and B: are ignored - a found drive letter is stored in the registry under HKCU\SOFTWARE\Team17SoftwareLTD\Worms2\CD. (error 2 otherwise)<br />
* Check the CD being labeled "Worms 2", "WORMS2", or - for Trymedia 1.07 versions - "Worms2_bl". (error 1 otherwise)<br />
* Check if the CD has no free space to ensure it being a CD-ROM. (error 3 otherwise)<br />
* Check if the CD stores an "autorun.inf" file. (error 4 otherwise)<br />
<br />
=== Packet contents ===<br />
<br />
As specified above, the '''Code''' of a packet determines the '''Action''' to take on either the server or client side and in effect which fields are used. Some codes are reused for multiple occassions, and some are unused in the 1.0.1.5 patch.<br />
<br />
Client query packets are also used for server notices, represented by the '''Type''' column in the following table:<br />
* Query: A client query to execute an action on the server, always getting a reply (even codes only).<br />
* Reply: A server reply to a client query, always reporting back an '''Error''' code, 0 for success (odd codes only).<br />
* Notice: Same as query, but coming as an out-of-bound server packet to update the state on the client, like when another user joins or creates a game.<br />
<br />
Note that the same ID counter is incremented for users (UID), rooms (RID), and games (GID) - if a user logs in with UID 0x1000 and immediately creates a room, the RID will be 0x1001. The counter should also start at a high enough value (0x1000 seems to work fine) to not cause duplicate chat messages appearing client-side, apparently because it is also reused as an index in some packets.<br />
<br />
{| class="wikitable sortable"<br />
! Code !! Action !! Type !! Value 0 !! Value 1 !! Value 2 !! Value 3 !! Value 4 !! Value 10 !! Data !! Name / Session<br />
|- style="background:#FFF"<br />
| 50 || ''not used'' || Query || || || || || ? || || ||<br />
|- style="background:#FFF"<br />
| 51 || ''not used'' || Reply || || || || || ? || || ||<br />
|- style="background:#FFFFCD"<br />
| 200 || List Rooms || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFFF"<br />
| 300 || ''not used'' || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 350 || List Item || Reply || || UID / RID / GID || || || || || user / creator / host IP || user / room / game<br />
|- style="background:#FFFFCD"<br />
| 351 || List End || Reply || || || || || || || ||<br />
|- style="background:#FFFFCD"<br />
| 400 || List Users || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 500 || List Games || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Query || || 0 || || || 0 || || || local user<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Notice || || remote UID || || || 0 || || || remote user<br />
|- style="background:#FFE6CD"<br />
| 601 || Login || Reply || || local UID || || || || || ||<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Query || || 0 || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Notice || || new RID || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 701 || Create Room || Reply || || new RID || || || || || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Query || || || joined RID / GID || || || local UID || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Notice || || || joined RID / GID || || || remote UID || ||<br />
|- style="background:#FFCDEF"<br />
| 801 || Join Room / Game || Reply || || || || || || || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Query || || || left RID / GID || || || local UID || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Notice || || || left RID / GID || || || remote UID || ||<br />
|- style="background:#EFCDFF"<br />
| 901 || Leave Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Query<ref name=NotUsed>Only ever sent as a notice by the server, clients disconnect without any query and awaited reply.</ref> || || || || || || local UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Notice || || || || || || remote UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1001 || Disconnect User || Reply<ref name=NotUsed/> || || || || || || || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Query || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Notice || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1101 || Close Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Query<ref name=BadIP>Since the host reports its incorrectly detected NAT IP here, [[Worms 2 Memory Changer]] has to be used to inject the actual IP address into Worms 2 before creating a room.</ref> || || 0 || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Notice || || GID || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1201 || Create Game || Reply || || GID || || || || || ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Query || local UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Notice || remote UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1301 || Room Chat || Reply<ref name=ReturnsEFail>Original server always reports E_FAIL in error code, even though messages were sent.</ref> || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1320 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1321 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1322 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1323 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1324 || ''not used'' || Query || ? || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1325 || ''not used'' || Reply || || || || || || || ? ||<br />
|- style="background:#CDFFCD"<br />
| 1326 || Connect Game || Query || GID || || || || || || ||<br />
|- style="background:#CDFFCD"<br />
| 1327 || Connect Game || Reply || || || || || || || host IP ||<br />
|}<br />
<references /><br />
<br />
== Game room communication ==<br />
<br />
The players are connected via P2P using DirectPlay. This means the ports 47624 (for the lobby connection itself) and 2300 to 2400 (for each player connection) should be forwarded in any router. The fact that each player is connected to another means that the host can leave the game at any time, the remaining players can continue playing without dropping, unlike in [[Worms Armageddon]] or [[Worms World Party]].<br />
<br />
== See also ==<br />
<br />
* [[User:Pac-Man/Worms_2_network_samples|Selected sample logs]]<br />
* [[Worms 2 Game Server]], cross-platform server implementing the above protocol.</div>Pac-Manhttps://worms2d.info/?title=Worms_2_Game_Server&diff=26069Worms 2 Game Server2020-07-13T02:13:14Z<p>Pac-Man: I accidentally the word</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = Worms 2 Game Server<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 11 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C# (.NET Core 3)<br />
| platform = Win32, Linux, Mac OS X<br />
| license = MIT<br />
| download = [https://gitlab.com/Syroot/Worms Source code]<br />
}}<br />
<br />
[[Worms 2 Game Server]] is a small server application connecting Worms 2 players by allowing them to create rooms, chat, and list their games online, just like the original Team17 servers. It can be added to the "Address book" of Worms 2 to allow players to connect to it instead.<br />
<br />
The software was built shortly after reversing the [[Network_protocol_(Worms_2)|Worms 2 network protocol]] in reaction to the original Team17 server no longer accepting new connections in July 2020. It simulates the original server as closely as possible with the following changes:<br />
<br />
* Request validation is slightly stronger, like checking for duplicate user names on login or missing packet fields.<br />
* Immediate notification of left users, closed rooms, or closed games, instead of waiting for a timeout to prevent ghosted / duplicate users and rooms.<br />
* Rejects attempts to host games with NAT IPs and informs the user about [[Worms 2 Memory Changer|memory patching their IP]].<br />
<br />
It can be compiled for most modern Windows, Linux, and Mac OS X platforms as it targets .NET Core 3. The source code also comes with a proxy debug class to allow sniffing Worms 2 network traffic.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=User:Pac-Man&diff=26068User:Pac-Man2020-07-13T02:05:17Z<p>Pac-Man: /* Software */ Hinzufügen des Des' Des Patch patch von Des seinem patch</p>
<hr />
<div>__NOTOC__<br />
Attention, attention! I love tables. Just kidding. I love '''wikitables'''.<br />
<br />
== Contributions ==<br />
If you have questions about my content on the following pages especially, feel free to write on my talk page:<br />
* [[Online Worms]]<br />
* [[Worms World Party Aqua]]<br />
* [[Project X#File formats|Project X file format specifications]]<br />
* German translations<br />
* [[Special:Contributions/Pac-Man|All other contributions]]<br />
<br />
=== User pages ===<br />
{{Special:PrefixIndex/User:Pac-Man/|stripprefix=1}}<br />
<br />
== Game schemes ==<br />
* [[Earthquake Tower]]<br />
* [[Nanageddon]]<br />
* [[TnTower]]<br />
* [[WeaponXpress]]<br />
* [[Weird Shopper]]<br />
<br />
== Software ==<br />
* [[Des patch]] - Update 0.9.9.2 fixing one patch to be compatible with [[fkNetcode]] on Windows 7 or earlier systems.<br />
* [[fkNetcode]] - WormKit-like module loader for patching the Worms 2 Frontend.<br />
* [[FrontendKitWS]] - module loader for Worms 2 frontend patches<br />
* [[IMG Viewer]] - displays IMG level files and their details<br />
* [https://ray.syroot.com/worms/PXEditors.zip Optimized ProjectX Editors] - removed annoyances like missing close buttons or other bad UI<br />
* [https://gitlab.com/Syroot/Worms Syroot.Worms] - .NET libraries for loading and modifying file formats of Worms games<br />
* [[Worms.NET PAL Editor|PAL Editor]] - capable of viewing and editing W:A / WWP frontend color palettes<br />
* [[Worms 2 Game Server]] - host your own abandoned Worms 2 server</div>Pac-Manhttps://worms2d.info/?title=Worms_2_Memory_Changer&diff=26067Worms 2 Memory Changer2020-07-13T01:53:22Z<p>Pac-Man: Recommend fkNetcode instead (shameless, but works just fine and is maintained / FOSS over this).</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Languages|en|Worms 2 Memory Changer}}<br />
{{Software_infobox<br />
| developer = [[People/S*natch|S*natch]], [[People/Des|Des]]<br />
| version = c / 17 February 2006<br />
| language = C++<br />
| games = [[Worms 2|W2]]<br />
| license = Proprietary<br />
| download = [http://worms2d.info/files/W2MCc.zip Des Worms 2 Memory Changer version c]<br />
}}<br />
<br />
The '''Worms 2 Memory Changer''' is a tool to read and modify the memory of the Worms 2 Frontend. It was initially developed by [[People/S*natch|S*natch]], and was modified by [[People/Des|Des]] to take up less screen space. The tool is used for two purposes — to change the player's IP address in Worms 2's memory to allow for hosting and playing behind a NAT (as required by most modern network setups when playing over the internet), and to view the game's logic seed in order to determine which team will play first.<br />
<br />
For the purpose of fixing the player's IP address, using [[FrontendKitWS]] with [[fkNetcode]] is now the recommended approach as it is fully automated. The remainder of this page will concentrate on the previous approach.<br />
<br />
== Motivation ==<br />
<br />
Worms 2 queries the settings of the computer's network adapter in order to determine the player's IP address, and does not allow this to be manually overridden. While this worked in the days of single computers connecting directly to the internet through a dial-up or broadband modem, it is no longer sufficient for the modern practice of having a single router connecting to the internet, to which potentially many devices connect. Due to IPv4 address exhaustion, routers will assign connected devices private (local) IP addresses, which are meaningless to the outside world. Therefore, in order to host games online, in addition to the usual port forwarding required, players must modify Worms 2's memory to correct the IP address to the public IP as assigned by the ISP to the router, which is accessible from the outside world.<br />
<br />
== Usage ==<br />
<br />
The steps to do this are as follows:<br />
<br />
* Start Worms 2<br />
* Enter the network menu<br />
* Start W2MCc.exe<br />
* Select the correct version of the game (Worms2 Full 1.005 for 99% of use cases)<br />
* Click Refresh Information, note that the memory changer is displaying the incorrect IP address<br />
* Click the internet game button<br />
* Type your actual external IP address, and click the "Set New IP" button (you can also type a hostname and click "resolve" if you have a DNS name set up for your home internet connection, before clicking "Set New IP")<br />
* Host a game and hopefully have it work!</div>Pac-Manhttps://worms2d.info/?title=Des_patch&diff=26066Des patch2020-07-13T01:42:39Z<p>Pac-Man: /* Changelog */ Grammar to make this sentence less ambiguous</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Languages|en|Des patch}}<br />
{{Software_infobox<br />
| developer = [[People/S*natch|S*natch]], [[People/Des|Des]], [[People/StepS|StepS]], [[User:Pac-Man|Pac-Man]]<br />
| version = 0.9.9.2 / 13 July 2020<br />
| language = C++<br />
| games = [[Worms 2|W2]]<br />
| license = Proprietary<br />
| download = [http://worms2d.info/files/FullWPdes0992.zip Des patch 0.9.9.2]<br />
}}<br />
<br />
The '''Des patch''' is a result of [[People/Des|Des]]'s reverse engineering and extension of the [[S*natch patch]] for Worms 2. It provides all the functionality of the original, while adding a number of additional tweaks and improvements.<br />
<br />
Due to it storing the patches as an easily modifiable script, [[People/StepS|StepS]] and [[User:Pac-Man|Pac-Man]] modified it further to extend the available options or resolve issues which appeared through time.<br />
<br />
This patch is no longer recommended for screen resolution adjustments, as it can cause desynchronisations in online games. The current recommendation is to use [[ReSolution]].<br />
{{clear}}<br />
<br />
== Changelog ==<br />
<br />
{| class="wikitable"<br />
! style="width:180px" | Version<br />
! style="width:90px" | Release Date<br />
! Description<br />
|-<br />
| 0.9.9.1.5 || 2007-09-16<ref name=ReleaseDate2007>The "Product version" field inside the file doesn't match the file name.</ref> || The final version produced by Des.<br />
|-<br />
| 0.9.9.1.5 Fixed Font Extended || 2013-12-15 || Modification by [[People/StepS|StepS]] with more screen resolution options, tweaked Ninja Rope patches, and a more compatible non-bitmap font in the patcher itself.<br />
|-<br />
| 0.9.9.2 || 2020-07-13 || Modification by [[User:Pac-Man|Pac-Man]] adjusting the "Fix Character/Logon Restrictions and Typing Click" patch to no longer change the behavior of some WinAPI methods on Windows 7 (and possibly earlier) systems which effectively broke [[fkNetcode]]. Adds visual styles to the patcher.<br />
|}<br />
<references /></div>Pac-Manhttps://worms2d.info/?title=Des_patch&diff=26065Des patch2020-07-13T01:36:00Z<p>Pac-Man: Update to 0.9.9.2, add changelog WIKITABLE, update introductional blah blah accordingly.</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Languages|en|Des patch}}<br />
{{Software_infobox<br />
| developer = [[People/S*natch|S*natch]], [[People/Des|Des]], [[People/StepS|StepS]], [[User:Pac-Man|Pac-Man]]<br />
| version = 0.9.9.2 / 13 July 2020<br />
| language = C++<br />
| games = [[Worms 2|W2]]<br />
| license = Proprietary<br />
| download = [http://worms2d.info/files/FullWPdes0992.zip Des patch 0.9.9.2]<br />
}}<br />
<br />
The '''Des patch''' is a result of [[People/Des|Des]]'s reverse engineering and extension of the [[S*natch patch]] for Worms 2. It provides all the functionality of the original, while adding a number of additional tweaks and improvements.<br />
<br />
Due to it storing the patches as an easily modifiable script, [[People/StepS|StepS]] and [[User:Pac-Man|Pac-Man]] modified it further to extend the available options or resolve issues which appeared through time.<br />
<br />
This patch is no longer recommended for screen resolution adjustments, as it can cause desynchronisations in online games. The current recommendation is to use [[ReSolution]].<br />
{{clear}}<br />
<br />
== Changelog ==<br />
<br />
{| class="wikitable"<br />
! style="width:180px" | Version<br />
! style="width:90px" | Release Date<br />
! Description<br />
|-<br />
| 0.9.9.1.5 || 2007-09-16<ref name=ReleaseDate2007>The "Product version" field inside the file doesn't match the file name.</ref> || The final version produced by Des.<br />
|-<br />
| 0.9.9.1.5 Fixed Font Extended || 2013-12-15 || Modification by [[People/StepS|StepS]] with more screen resolution options, tweaked Ninja Rope patches, and a more compatible non-bitmap font in the patcher itself.<br />
|-<br />
| 0.9.9.2 || 2020-07-13 || Modification by [[User:Pac-Man|Pac-Man]] changing the "Fix Character/Logon Restrictions and Typing Click" patch to no longer break the behavior of some WinAPI methods on Windows 7 (and possibly earlier systems) without gaining anything, effectively breaking [[fkNetcode]]. Adds visual styles to the patcher.<br />
|}<br />
<references /></div>Pac-Manhttps://worms2d.info/?title=Network_protocol_(Worms_2)&diff=26063Network protocol (Worms 2)2020-07-13T00:21:11Z<p>Pac-Man: /* Game release */ Add Trymedia CD label, probably the only thing they changed in the whole game</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
The Worms 2 servers host rooms in which users can meet to then connect to each other's PCs for playing games.<br />
<br />
== Official servers ==<br />
<br />
The following servers are hosted by Team17:<br />
<br />
{| class="wikitable"<br />
! width="170px" | Name !! IP address !! Port !! Notes<br />
|-<br />
| Worms2 Server (UK) || uk1.servers.worms2.com || 17000 || "The Team17 Server". Started to reject new connections in July 2020, shortly after some Worms enthusiasts played on it. Unclear whether the sudden activity downed it, it did not immediately break. The client will display "Unable to create new player..." when attempting to connect to it.<br />
|-<br />
| Worms2 Demo Server (UK) || uk1.servers.worms2.com || 17171 || Server for Worms 2 demo. Allows full versions to connect aswell. Did not go down in July 2020.<br />
|}<br />
<br />
== Server communication ==<br />
<br />
The server hosting the user, room, and game lists communicates with packets in the following format:<br />
<br />
=== Packet format ===<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Name !! Description<br />
|-<br />
| 0 || uint32 || 4 || Code || Determines the type of packet. Known packets are listed [[#Packet contents|below]].<br />
|-<br />
| 4 || uint32 || 4 || Flags || A bitset determining which of the following fields will be available.<br />
|-<br />
| ? || uint32 || 4 || Value 0 || If bit 0 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 1 || If bit 1 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 2 || If bit 2 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 3 || If bit 3 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 4 || If bit 4 is set in '''Flags'''. Never used other than client-side?<br />
|-<br />
| ? || uint32 || 4 || Value 10 || If bit 10 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Data Length || If bit 5 is set in '''Flags'''.<br />
|-<br />
| ? || char[DataLength] || Data Length || Data || If bit 5 is set in '''Flags''', stores Windows-1251 encoded text like an IP string or full chat message.<br />
|-<br />
| ? || uint32 || 4 || Error || If bit 7 is set in '''Flags'''. Returns a Windows error code from the server, like E_FAIL for when the name of a room to create contains a bad word.<br />
|-<br />
| ? || char[20] || 20 || Name || If bit 8 is set in '''Flags''', stores a Windows-1251 encoded session name. Unused bytes are 0.<br />
|-<br />
| ? || [[#Session info|Session info]] || 50 || Session || If bit 9 is set in '''Flags'''. Unused bytes are 0.<br />
|}<br />
<br />
==== Session info ====<br />
<br />
Several packets identify a user, room, or game with the '''Name''' and '''Session''' fields. The latter provides the following information:<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Value<br />
|-<br />
| 0 || uint32 || 4 || Always 0x17171717<br />
|-<br />
| 4 || uint32 || 4 || Always 0x02010101<br />
|-<br />
| 8 || uint8 || 1 || [[#Nation|Nation / Flag]]<br />
|-<br />
| 9 || uint8 || 1 || Game version, always 49<br />
|-<br />
| 10 || uint8 || 1 || [[#Game release|Game release]] (same as '''Game version''', 50 if CD check failed)<br />
|-<br />
| 11 || uint8 || 1 || Type (1=room, 4=game, 5=user)<br />
|-<br />
| 12 || uint8 || 1 || Access (1=public, 2=protected)<br />
|-<br />
| 13 || uint8 || 1 || Always 1<br />
|-<br />
| 14 || uint8 || 1 || Always 0<br />
|-<br />
| 15 || gap || 35 || Unused, all 0.<br />
|}<br />
<br />
Passing other or invalid combinations (protected users and rooms do not exist, only passworded games) will display a French flag with the default state or a question mark in the UI.<br />
<br />
The Worms 2 1.0.1.1 Demo uses significantly different values compared to the full version 1.0.1.5 patch, causing said question marks to appear. However, interactions with full version users still work.<br />
<br />
===== Nation / Flag =====<br />
<br />
Determines which flag is displayed with the user, room, or game. Two flags are custom (Skull and Team17) and are not normally selectable. [[Des patch]] can unlock the selection of them, and adds another entry for an "invalid" country code, creating an empty flag.<br />
<br />
{| class="wikitable sortable mw-collapsible mw-collapsed"<br />
! Value !! Flag<br />
|-<br />
| 1 || United Kingdom<br />
|-<br />
| 2 || Argentinia<br />
|-<br />
| 3 || Australia<br />
|-<br />
| 4 || Austria<br />
|-<br />
| 5 || Beglium<br />
|-<br />
| 6 || Brazil<br />
|-<br />
| 7 || Canada<br />
|-<br />
| 8 || Croatia<br />
|-<br />
| 9 || Bosnia and Herzegovina (old flag)<br />
|-<br />
| 10 || Cyprus<br />
|-<br />
| 11 || Czech Republic<br />
|-<br />
| 12 || Denmark<br />
|-<br />
| 13 || Finland<br />
|-<br />
| 14 || France<br />
|-<br />
| 15 || Georgia<br />
|-<br />
| 16 || Germany<br />
|-<br />
| 17 || Greece<br />
|-<br />
| 18 || Hong Kong SAR<br />
|-<br />
| 19 || Hungary<br />
|-<br />
| 20 || Iceland<br />
|-<br />
| 21 || India<br />
|-<br />
| 22 || Indonesia<br />
|-<br />
| 23 || Iran<br />
|-<br />
| 24 || Iraq<br />
|-<br />
| 25 || Ireland<br />
|-<br />
| 26 || Israel<br />
|-<br />
| 27 || Italy<br />
|-<br />
| 28 || Japan<br />
|-<br />
| 29 || Liechtenstein<br />
|-<br />
| 30 || Luxembourg<br />
|-<br />
| 31 || Malaysia<br />
|-<br />
| 32 || Malta<br />
|-<br />
| 33 || Mexico<br />
|-<br />
| 34 || Morocco<br />
|-<br />
| 35 || Netherlands<br />
|-<br />
| 36 || New Zealand<br />
|-<br />
| 37 || Norway<br />
|-<br />
| 38 || Poland<br />
|-<br />
| 39 || Portugal<br />
|-<br />
| 40 || Puerto Rico<br />
|-<br />
| 41 || Romania<br />
|-<br />
| 42 || Russian Federation<br />
|-<br />
| 43 || Singapore<br />
|-<br />
| 44 || South Africa<br />
|-<br />
| 45 || Spain<br />
|-<br />
| 46 || Sweden<br />
|-<br />
| 47 || Switzerland<br />
|-<br />
| 48 || Turkey<br />
|-<br />
| 49 || United States<br />
|-<br />
| 50 || Skull image<br />
|-<br />
| 51 || Team17 logo<br />
|}<br />
<br />
===== Game release =====<br />
<br />
Becomes 50 if CD detection failed. The CD detection consists of the following tests:<br />
* Find CD drive, where drives A: and B: are ignored - a found drive letter is stored in the registry under HKCU\SOFTWARE\Team17SoftwareLTD\Worms2\CD. (error 2 otherwise)<br />
* Check the CD being labeled "Worms 2", "WORMS2", or - for Trymedia 1.07 versions - "Worms2_bl". (error 1 otherwise)<br />
* Check if the CD has no free space to ensure it being a CD-ROM. (error 3 otherwise)<br />
* Check if the CD stores an "autorun.inf" file. (error 4 otherwise)<br />
<br />
=== Packet contents ===<br />
<br />
As specified above, the '''Code''' of a packet determines the '''Action''' to take on either the server or client side and in effect which fields are used. Some codes are reused for multiple occassions, and some are unused in the 1.0.1.5 patch.<br />
<br />
Client query packets are also used for server notices, represented by the '''Type''' column in the following table:<br />
* Query: A client query to execute an action on the server, always getting a reply (even codes only).<br />
* Reply: A server reply to a client query, always reporting back an '''Error''' code, 0 for success (odd codes only).<br />
* Notice: Same as query, but coming as an out-of-bound server packet to update the state on the client, like when another user joins or creates a game.<br />
<br />
Note that the same ID counter is incremented for users (UID), rooms (RID), and games (GID) - if a user logs in with UID 0x1000 and immediately creates a room, the RID will be 0x1001. The counter should also start at a high enough value (0x1000 seems to work fine) to not cause duplicate chat messages appearing client-side, apparently because it is also reused as an index in some packets.<br />
<br />
{| class="wikitable sortable"<br />
! Code !! Action !! Type !! Value 0 !! Value 1 !! Value 2 !! Value 3 !! Value 4 !! Value 10 !! Data !! Name / Session<br />
|- style="background:#FFF"<br />
| 50 || ''not used'' || Query || || || || || ? || || ||<br />
|- style="background:#FFF"<br />
| 51 || ''not used'' || Reply || || || || || ? || || ||<br />
|- style="background:#FFFFCD"<br />
| 200 || List Rooms || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFFF"<br />
| 300 || ''not used'' || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 350 || List Item || Reply || || UID / RID / GID || || || || || user / creator / host IP || user / room / game<br />
|- style="background:#FFFFCD"<br />
| 351 || List End || Reply || || || || || || || ||<br />
|- style="background:#FFFFCD"<br />
| 400 || List Users || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 500 || List Games || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Query || || 0 || || || 0 || || || local user<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Notice || || remote UID || || || 0 || || || remote user<br />
|- style="background:#FFE6CD"<br />
| 601 || Login || Reply || || local UID || || || || || ||<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Query || || 0 || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Notice || || new RID || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 701 || Create Room || Reply || || new RID || || || || || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Query || || || joined RID / GID || || || local UID || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Notice || || || joined RID / GID || || || remote UID || ||<br />
|- style="background:#FFCDEF"<br />
| 801 || Join Room / Game || Reply || || || || || || || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Query || || || left RID / GID || || || local UID || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Notice || || || left RID / GID || || || remote UID || ||<br />
|- style="background:#EFCDFF"<br />
| 901 || Leave Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Query<ref name=NotUsed>Only ever sent as a notice by the server, clients disconnect without any query and awaited reply.</ref> || || || || || || local UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Notice || || || || || || remote UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1001 || Disconnect User || Reply<ref name=NotUsed/> || || || || || || || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Query || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Notice || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1101 || Close Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Query<ref name=BadIP>Since the host reports its incorrectly detected NAT IP here, [[Worms 2 Memory Changer]] has to be used to inject the actual IP address into Worms 2 before creating a room.</ref> || || 0 || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Notice || || GID || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1201 || Create Game || Reply || || GID || || || || || ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Query || local UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Notice || remote UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1301 || Room Chat || Reply<ref name=ReturnsEFail>Original server always reports E_FAIL in error code, even though messages were sent.</ref> || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1320 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1321 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1322 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1323 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1324 || ''not used'' || Query || ? || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1325 || ''not used'' || Reply || || || || || || || ? ||<br />
|- style="background:#CDFFCD"<br />
| 1326 || Connect Game || Query || GID || || || || || || ||<br />
|- style="background:#CDFFCD"<br />
| 1327 || Connect Game || Reply || || || || || || || host IP ||<br />
|}<br />
<references /><br />
<br />
== Game room communication ==<br />
<br />
The players are connected via P2P using DirectPlay. This means the ports 47624 (for the lobby connection itself) and 2300 to 2400 (for each player connection) should be forwarded in any router. The fact that each player is connected to another means that the host can leave the game at any time, the remaining players can continue playing without dropping, unlike in [[Worms Armageddon]] or [[Worms World Party]].<br />
<br />
== See also ==<br />
<br />
* [[User:Pac-Man/Worms_2_network_samples|Selected sample logs]]<br />
* [[Worms 2 Game Server]], cross-platform server implementing the above protocol.</div>Pac-Manhttps://worms2d.info/?title=Software&diff=26048Software2020-07-12T19:35:56Z<p>Pac-Man: Add FrontendKitWS</p>
<hr />
<div>{{ParentArticle|[[Worms 2]], [[Worms Armageddon]] or [[Worms World Party]]}}<br />
{{Languages|en|Software|fr|Logiciels}}<br />
This page lists additional software related to the 2D Worms series.<br />
__NOTOC__ __NOEDITSECTION__<br />
== 2nd generation ==<br />
{| border="0" width="100%" |-<br />
|width="50%" style="vertical-align: top"|<br />
=== Add-ons ===<br />
* {{software|w2|wa|wwp}} [[WormKitDS]]<br />
* {{software|w2|wa|wwp}} [[Advanced WormKit]]<br />
* {{software|w2|wa|wwp}} [[DDShot]]<br />
{{gap}}<br />
* {{software|w2}} [[Des patch]]<br />
* {{software|w2}} [[FrontendKitWS]]<br />
* {{software|w2}} [[High-res patch]]<br />
* {{software|w2}} [[S*natch patch]]<br />
* {{software|w2|wwp}} [[ReSolution]]<br />
{{gap}}<br />
* {{software|wa}} [[The Fiddler]]<br />
* {{software|wa}} [[Silkworm]]<br />
* {{software|wa}} [[WormKit]]<br />
* {{software|wa}} [[RubberWorm]]<br />
* {{software|wa}} [[Project X]]<br />
{{gap}}<br />
* {{software|wwp}} [[CutWorm]]<br />
* {{software|wwp}} [[CutWormLE]]<br />
<br />
=== Backup software ===<br />
* {{software|wa}} [[WA Team Backup]]<br />
* {{software|wa}} [[WormsBackup]]<br />
<br />
=== Graphics editors ===<br />
* {{software|w2|wa|wwp}} [[IMG Viewer]]<br />
* {{software|w2|wa|wwp}} [[SpriteEddy]]<br />
* {{software|wa}} [[WA directory editor]] (a.k.a. Sprite Editor)<br />
* {{software|wa}} [[Water color editor]]<br />
* {{software|wa|wwp}} [[Worms PAL Editor]]<br />
<br />
=== Installers ===<br />
* {{software|wa}} [[Automatic Installer]]<br />
<br />
===Linux software===<br />
<!-- This category is for Linux-specific software only. If a program merely works under Linux as well as Windows, list it elsewhere. --><br />
* {{software|wa}} [[Play Worms Armageddon on Linux]]<br />
<br />
=== Map editors/generators ===<br />
* {{software|wa}} [[bnagen]]<br />
* {{software|wa}} [[RR-Gen.com]]<br />
* {{software|wa}} [[MapGEN]]<br />
* {{software|wa|wwp}} [[The Architect]]<br />
* {{software|wa}} [[WormMM]]<br />
<br />
=== Map stealers ===<br />
* {{software|w2}} [[X-Terrain]]<br />
* {{software|wa|wwp}} [[Map Theif]]<br />
<br />
=== Map viewers/decoders ===<br />
* {{software|wa|wwp}} [[BIT Monkey]]<br />
* {{software|wa|wwp}} [[BitUnencoder]]<br />
* {{software|wa}} [[Thumbnail Shell Extension]]<br />
* {{software|wwp}} [[MapFix]]<br />
<br />
=== Misc ===<br />
* {{software|wwp}} [[WWP Mission Editor]]<br />
* {{software|wa}} [[WA Mission Editor]]<br />
* {{software|w2|wa|wwp}} [[SoundBank Editor]]<br />
* {{software|w2|wa|wwp}} [[SoundEddy]]<br />
* {{software|w2|wa|wwp}} [[The Tapometer]]<br />
* {{software|w2}} [[Worms 2 Memory Changer]]<br />
* {{software|wa}} [[WA Localizer]]<br />
* {{software|wa}} [[The Worminizer]]<br />
* {{software|wa}} [[Worm Edit 2000]]<br />
* {{software|wa}} [[Screen Lag]]<br />
* {{software|wa}} [[BRSolver]]<br />
* {{software|wa}} [[Constipated Silkworm]]<br />
* {{software|wwp}} [[Anzas Minimizer]]<br />
* {{software|wa|wwp}} [[WAsP|W:AsP]]<br />
* {{software|wa}} [[LaserFixChanger]]<br />
* {{software|wa|wwp}} [[WAFR|The Finger Roll]]<br />
|style="vertical-align: top"|<br />
=== Replay managers/viewers/recorders ===<br />
* {{software|wa}} [[Armageddon Recorder]]<br />
* {{software|wa}} [[ChatCleaner]]<br />
* {{software|wa}} [[ChatSnatch]]<br />
* {{software|wa}} [[ReplayEater]]<br />
* {{software|wa}} [[ReplayShark]]<br />
* {{software|wa}} [[WAgame.chat]]<br />
* {{software|wa}} [[Worms Autogaming]]<br />
* {{software|wa}} [[Worms Armageddon Recorded Game Organiser]]<br />
<br />
=== Scheme/option editors ===<br />
* {{software|w2}} [[Worms2 Option Editor]]<br />
* {{software|w2}} [[Worms 2 Super Editor]]<br />
{{gap}}<br />
* {{software|wa}} [[Another Random Scheme Editor]]<br />
* {{software|wa}} [[Armageditor]]<br />
* {{software|wa}} [[Heavy Edit]]<br />
* {{software|wa}} [[LeTotalKiller's Scheme Editor]]<br />
* {{software|wa}} [[RubberWormConfig]]<br />
* {{software|wa}} [[SchemeEd]]<br />
* {{software|wa|wwp}} [[Scheme Works]]<br />
* {{software|wa|wwp}} [[SchemeEddy]]<br />
* {{software|wa}} [[schemed]]<br />
* {{software|wa}} [[Worms Armageddon Randomizer]] (WA:R)<br />
* {{software|wwp}} [[Worms World Party Scheme Editor]]<br />
* {{software|wwp}} [[WWP Edit]]<br />
<br />
=== Team editors ===<br />
* {{software|wa|wwp}} [[TeamED]]<br />
* {{software|wa}} [[Full Wormage Unlocker]]<br />
* {{software|wa}} [[Worms Armageddon Cheat Enabler]] (WACE)<br />
* {{software|wa}} [[Animated Grave Machine (W:A)]]<br />
* {{software|wwp}} [[Animated Grave Machine (WWP)]]<br />
* {{software|wwp}} [[WWP Trainer]]<br />
<br />
=== Tournament assistant ===<br />
* {{software|w2|wa|wwp}} [[Global Tournament Moderator]]<br />
<br />
=== Weapons editors ===<br />
* {{software|w2}} [[Worms 2 SuperConfig]]<br />
* {{software|w2}} [[Wedit95]]<br />
* {{software|w2}} [[The Vigro's Weapon Editor]]<br />
<br />
=== WormNET proxies ===<br />
* {{software|wa}} [[LeetF*ck]]<br />
* {{software|wwp}} [[WWPPipe]]<br />
<br />
=== WormNET server software ===<br />
* {{software|w2}} [[Worms 2 Game Server]]<br />
* {{software|wa|wwp}} [[MyWormNET]]<br />
* {{software|wa}} [[MyWormNET2]]<br />
* {{software|wa}} [[JayWormNET]]<br />
* {{software|wa}} [[HostingBuddy]]<br />
* {{software|wwp}} [[WWP Server X]] (WWPSX) <!-- hosted by Cowbanger in Toronto, Ontario, Canada starting at some point before 2003-03-14 20:23 (according to file date on ZloiAdun's ServerList.htm in the wwppipe archive); WWPSX itself possibly written by Annelid (unsure; needs confirmation) --><br />
<br />
=== WormNET snoopers ===<br />
* {{software|w2}} [[KChat]]<br />
* {{software|wa}} [[Caecilian]]<br />
* {{software|wa}} [[Great Snooper]]<br />
* {{software|wa}} [[ProSnooper]]<br />
* {{software|wa}} [[Solixa Worms]]<br />
* {{software|wa}} [[Super Snooper]]<br />
* {{software|wa}} [[Team17's official WormNET Snooper]]<br />
* {{software|wa}} [[The Wheat Snooper]]<br />
* {{software|wa}} [[TINS]]<br />
* {{software|wa}} [[Toto's WormNET Snooper]]<br />
* {{software|wa}} [[Web Snooper]]<br />
* {{software|wa}} [[WSnooper]]<br />
|}</div>Pac-Manhttps://worms2d.info/?title=FkNetcode&diff=26047FkNetcode2020-07-12T19:34:55Z<p>Pac-Man: Grammar</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| language = C++<br />
| games = [[Worms 2|W2]] (1.05/1.07)<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/31e8c4288f81ee735557569c4966ee3d/fkNetcode.dll DLL]<br />
}}<br />
<br />
[[fkNetcode]] is a [[FrontendKitWS]] module attempting to fix issues related to playing games online in [[Worms 2]]. It is primarily meant as an automated replacement for manually patching the game through the [[Worms 2 Memory Changer]].<br />
<br />
== Features ==<br />
<br />
* Replaces the external IP detection routine with a web service returning the actual external IP rather than the NAT IP. This is required to not only host games, but also make them work in-game.<br />
* Also allows patching in a hard-coded IP as in the Worms 2 Memory Changer and ignoring the web service.<br />
* Removes useless delays when connecting to the server.<br />
{{clear}}<br />
<br />
== Configuration ==<br />
<br />
An ''fkNetcode.ini'' file is automatically created, which allows configuring the module in the following sections:<br />
<br />
=== AddressResolval ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! Name !! Type !! Default !! Description<br />
|-<br />
| FallbackIP || IPv4 || || IP which is used when the resolval via the web service fails. If none is provided, the original NAT routine is used.<br />
|-<br />
| ServiceUrl || HTTP URL || http://ip.syroot.com || Link to an HTTP resource which must return the external IP as plain text. If none is provided, '''FallbackIP''' is used as described above.<br />
|-<br />
| ShowErrors || Boolean || 1 || If enabled (1), displays errors which may have occurred during IP resolval in message boxes.<br />
|}<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=User:Pac-Man&diff=26043User:Pac-Man2020-07-12T18:46:06Z<p>Pac-Man: Add fk (I waited 10 years to write this)</p>
<hr />
<div>__NOTOC__<br />
Attention, attention! I love tables. Just kidding. I love '''wikitables'''.<br />
<br />
== Contributions ==<br />
If you have questions about my content on the following pages especially, feel free to write on my talk page:<br />
* [[Online Worms]]<br />
* [[Worms World Party Aqua]]<br />
* [[Project X#File formats|Project X file format specifications]]<br />
* German translations<br />
* [[Special:Contributions/Pac-Man|All other contributions]]<br />
<br />
=== User pages ===<br />
{{Special:PrefixIndex/User:Pac-Man/|stripprefix=1}}<br />
<br />
== Game schemes ==<br />
* [[Earthquake Tower]]<br />
* [[Nanageddon]]<br />
* [[TnTower]]<br />
* [[WeaponXpress]]<br />
* [[Weird Shopper]]<br />
<br />
== Software ==<br />
* [[fkNetcode]] - WormKit-like module loader for patching the Worms 2 Frontend.<br />
* [[FrontendKitWS]] - module loader for Worms 2 frontend patches<br />
* [[IMG Viewer]] - displays IMG level files and their details<br />
* [https://ray.syroot.com/worms/PXEditors.zip Optimized ProjectX Editors] - removed annoyances like missing close buttons or other bad UI<br />
* [https://gitlab.com/Syroot/Worms Syroot.Worms] - .NET libraries for loading and modifying file formats of Worms games<br />
* [[Worms.NET PAL Editor|PAL Editor]] - capable of viewing and editing W:A / WWP frontend color palettes<br />
* [[Worms 2 Game Server]] - host your own abandoned Worms 2 server</div>Pac-Manhttps://worms2d.info/?title=FkNetcode&diff=26042FkNetcode2020-07-12T18:34:04Z<p>Pac-Man: Add OSS tag</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| language = C++<br />
| games = [[Worms 2|W2]] (1.05/1.07)<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/31e8c4288f81ee735557569c4966ee3d/fkNetcode.dll DLL]<br />
}}<br />
<br />
[[fkNetcode]] is a [[FrontendKitWS]] module attempting to fix issues related for playing games online in [[Worms 2]]. It is primarily meant as an automated replacement for manually patching the game through the [[Worms 2 Memory Changer]].<br />
<br />
== Features ==<br />
<br />
* Replaces the external IP detection routine with a web service returning the actual external IP rather than the NAT IP. This is required to not only host games, but also make them work in-game.<br />
* Also allows patching in a hard-coded IP as in the Worms 2 Memory Changer and ignoring the web service.<br />
* Removes useless delays when connecting to the server.<br />
{{clear}}<br />
<br />
== Configuration ==<br />
<br />
An ''fkNetcode.ini'' file is automatically created, which allows configuring the module in the following sections:<br />
<br />
=== AddressResolval ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! Name !! Type !! Default !! Description<br />
|-<br />
| FallbackIP || IPv4 || || IP which is used when the resolval via the web service fails. If none is provided, the original NAT routine is used.<br />
|-<br />
| ServiceUrl || HTTP URL || http://ip.syroot.com || Link to an HTTP resource which must return the external IP as plain text. If none is provided, '''FallbackIP''' is used as described above.<br />
|-<br />
| ShowErrors || Boolean || 1 || If enabled (1), displays errors which may have occurred during IP resolval in message boxes.<br />
|}<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=FkNetcode&diff=26041FkNetcode2020-07-12T18:33:22Z<p>Pac-Man: Create page.</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| language = C++<br />
| games = [[Worms 2|W2]] (1.05/1.07)<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/31e8c4288f81ee735557569c4966ee3d/fkNetcode.dll DLL]<br />
}}<br />
<br />
[[fkNetcode]] is a [[FrontendKitWS]] module attempting to fix issues related for playing games online in [[Worms 2]]. It is primarily meant as an automated replacement for manually patching the game through the [[Worms 2 Memory Changer]].<br />
<br />
== Features ==<br />
<br />
* Replaces the external IP detection routine with a web service returning the actual external IP rather than the NAT IP. This is required to not only host games, but also make them work in-game.<br />
* Also allows patching in a hard-coded IP as in the Worms 2 Memory Changer and ignoring the web service.<br />
* Removes useless delays when connecting to the server.<br />
{{clear}}<br />
<br />
== Configuration ==<br />
<br />
An ''fkNetcode.ini'' file is automatically created, which allows configuring the module in the following sections:<br />
<br />
=== AddressResolval ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! Name !! Type !! Default !! Description<br />
|-<br />
| FallbackIP || IPv4 || || IP which is used when the resolval via the web service fails. If none is provided, the original NAT routine is used.<br />
|-<br />
| ServiceUrl || HTTP URL || http://ip.syroot.com || Link to an HTTP resource which must return the external IP as plain text. If none is provided, '''FallbackIP''' is used as described above.<br />
|-<br />
| ShowErrors || Boolean || 1 || If enabled (1), displays errors which may have occurred during IP resolval in message boxes.<br />
|}</div>Pac-Manhttps://worms2d.info/?title=FrontendKitWS&diff=26040FrontendKitWS2020-07-12T16:50:45Z<p>Pac-Man: The DS / WS stuff becomes confusing...</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = FrontendKitWS<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C++<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/6a8dc0d3d238cf5a52c7184c28e4e709/wsock32.dll DLL]<br />
}}<br />
<br />
[[FrontendKitWS]] is a [[WormKitDS]]-like module loader specifically made for changing the [[Worms 2]] frontend as opposed to in-game logic.<br />
<br />
It is required for patching the frontend as it does not load the WormKitDS ''dsound.dll'' library, which is why FrontendKitWS consists of ''wsock32.dll'', a library only loaded by the frontend, giving it the "WS" suffix. This also prevents issues with WormKitDS modules unaware of having been loaded into the frontend rather than the in-game process.<br />
<br />
FrontendKitWS modules use an ''fk'' file name prefix.<br />
<br />
== Installation ==<br />
<br />
Click the DLL download link in the info box on the right, and place the downloaded ''wsock32.dll'' in your Worms 2 directory, besides ''frontend.exe''. Then, download any [[WormKit#Non-W:A modules|Worms 2 frontend related modules]] and place them there aswell.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=FrontendKitWS&diff=26039FrontendKitWS2020-07-12T16:50:16Z<p>Pac-Man: woops</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = FrontendKitWS<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C++<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/6a8dc0d3d238cf5a52c7184c28e4e709/wsock32.dll DLL]<br />
}}<br />
<br />
[[FrontendKitWS]] is a [[WormKitDS]]-like module loader specifically made for changing the [[Worms 2]] frontend as opposed to in-game logic.<br />
<br />
It is required for patching the frontend as it does not load the WormKitDS ''dsound.dll'' library, which is why FrontendKitWS consists of ''wsock32.dll'', a library only loaded by the frontend, giving it the "WS" suffix. This also prevents issues with WormKitDS modules unaware of having been loaded into the frontend rather than the in-game process.<br />
<br />
FrontendKitDS modules use an ''fk'' file name prefix.<br />
<br />
== Installation ==<br />
<br />
Click the DLL download link in the info box on the right, and place the downloaded ''wsock32.dll'' in your Worms 2 directory, besides ''frontend.exe''. Then, download any [[WormKit#Non-W:A modules|Worms 2 frontend related modules]] and place them there aswell.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=FrontendKitWS&diff=26038FrontendKitWS2020-07-12T16:36:35Z<p>Pac-Man: Move source code link to website in info box</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = FrontendKitWS<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C++<br />
| license = MIT<br />
| website = [https://gitlab.com/Syroot/Worms GitLab repository]<br />
| download = [https://gitlab.com/Syroot/Worms/uploads/6a8dc0d3d238cf5a52c7184c28e4e709/wsock32.dll DLL]<br />
}}<br />
<br />
[[FrontendKitDS]] is a [[WormKitDS]]-like module loader specifically made for changing the [[Worms 2]] frontend as opposed to in-game logic.<br />
<br />
It is required for patching the frontend as it does not load the WormKitDS ''dsound.dll'' library, which is why FrontendKitWS consists of ''wsock32.dll'', a library only loaded by the frontend, giving it the "WS" suffix. This also prevents issues with WormKitDS modules unaware of having been loaded into the frontend rather than the in-game process.<br />
<br />
FrontendKitDS modules use an ''fk'' file name prefix.<br />
<br />
== Installation ==<br />
<br />
Click the DLL download link in the info box on the right, and place the downloaded ''wsock32.dll'' in your Worms 2 directory, besides ''frontend.exe''. Then, download any [[WormKit#Non-W:A modules|Worms 2 frontend related modules]] and place them there aswell.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=ReSolution&diff=26037ReSolution2020-07-12T16:34:05Z<p>Pac-Man: Add WormKit parent article link</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Languages|en|ReSolution|ru|ReSolution/ru}}<br />
{{Software_infobox<br />
| developer = [[People/StepS|StepS]]<br />
| version = 0.4.1 / 3 October 2014<br />
| language = C++<br />
| games = [[Worms 2|W2]], [[WWP]]<br />
| license = Open-source<br />
| website = [https://github.com/StepS-/wkReSolution GitHub]<br />
| download = {{gap}}<br />
* [http://worms2d.info/files/wkReSolution_0.4.1_wndmode.zip ReSolution 0.4.1 + windowed mode] - '''recommended'''<br />
* [http://worms2d.info/files/wkReSolution_0.4.1.zip ReSolution 0.4.1] - regular version (poor performance on Windows 8.x/10, no zoom/resize)<br />
}}<br />
<br />
'''ReSolution''' is a new [[WormKit]] module for [[Worms World Party]] and [[Worms 2]] to change the in-game screen resolution to any value. Its key features are simplicity (don't need to patch the executable) and automatic detection of island and cavern-type landscapes, and is thus preferred over the hardcoded patches.<br />
<br />
'''ReSolution v0.2''' and newer (also known as "ReSolutionDD") add ability to '''resize''' (shrink or extend) the game window so that it actually resizes the free screen space available in the game (and doesn't perform bitmap stretching). An additional windowed mode wrapper (wndmode.dll) is needed for this to work: get the windowed bundle.<br />
<br />
'''ReSolution v0.3''' and newer add ability to '''zoom''' (in and out) the game environment using your mouse wheel or keyboard so that you can either expand the view or look more closely at the objects that you see. '''Alt+Enter''' is also introduced in v0.3, giving the ability to switch from and to borderless fullscreen windowed representation. An additional windowed mode wrapper (wndmode.dll) is needed for this to work: get the windowed bundle.<br />
<br />
'''ReSolution v0.4''' and newer (also known as "ReSolution HD") add '''WWP support''' (1.01 and 1.00) and finally introduce the automatic screen confining technique on waterrise in enclosed environments (removing the old workaround), also fixing the proper letterboxed dimensions in caverns. A new option called '''UseTouchscreenZoom''' has also been added, which allows to utilize the touch pinch zoom gesture in order to zoom the game in and out, when Zooming is enabled. The settings file is now '''ReSolution.ini''', fitting both games. Various other internal improvements as well.<br />
<br />
== Installation ==<br />
The installation is very simple:<br />
* Download the archive containing the module.<br />
* Extract the archive's contents to the directory where your copy of Worms World Party or Worms 2 is installed.<br />
* Optional: if you want to get the advanced window resizing or zooming features, install the windowed mode wrapper as well, by downloading the respective bundle.<br />
* Run the game: the desktop resolution will be autodetected and enabled. You can also change this using the ReSolution.ini file to any value you want.<br />
<br />
== Features ==<br />
* Can change resolution (and thus, window size) to any value using the ReSolution.ini file<br />
* In conjunction with windowed mode (only), allows to '''resize''' the game window so that it actually resizes the real screen estate of the game.<br />
** Enable the "Enable" setting from [Resizing] in the ini file to activate this.<br />
** '''Worms 2 only''': Enabling the "ProgressiveUpdate" (experimental) setting from [Resizing] will immediately redraw the window as you resize it, making the scenery resize very lively and smoothly.<br />
** As usual with windowed mode, make sure that the ScreenWidth and ScreenHeight are set to values lower than the screen resolution of your primary monitor. However, v0.3 and later add a new key combination: Alt+Enter, which allows you to switch between these two modes directly in the game. Enable the "AltEnter" setting from [Resizing] in the ini file to activate this.<br />
** In windowed mode, pressing Ctrl+G will show the cursor and allow you to move it above the game's window, to resize the window.<br />
* In conjunction with windowed mode (only), allows to '''zoom''' the game environment in and out using either mouse wheel or keyboard.<br />
** Enable the "Enable" setting from [Zooming] in the ini file to activate this.<br />
** Enabling "UseMouseWheel" will let you zoom the game using your mouse wheel: roll it back and forth. Pressing the middle mouse button will reset your zooming level to the native default.<br />
** Enabling "UseKeyboardZoom" will let you zoom the game using your Numpad + and - keys. Zooming in this mode will be performed on a frame-by-frame basis, rather than delta like with mouse wheel. Pressing the End button will reset your zooming level to the native default.<br />
** Enabling "UseTouchscreenZoom" will let you zoom the game using your touchscreen. The pinch gesture will allow to zoom the game in and out.<br />
* Works flawlessly on open-island maps<br />
* Adds letterboxing support for resolutions larger than 6012x2902 (on islands) and 1916x854 (in caverns)<br />
* Does everything in memory without touching your executable<br />
* Compatible with both Worms 2 and Worms World Party (as of v0.4). Supported versions:<br />
** Worms 2 - 1.05 (CD/GOG)<br />
** Worms World Party - 1.00 (Europe)<br />
** Worms World Party - 1.01 (Europe)<br />
<br />
== TODO ==<br />
* Worms 2: Adjust or provide a way to disable the televisor brackets while watching an instant replay.<br />
* Chat panel quirks with zooming/resizing (unlikely to be resolved completely)<br />
* WWP: Fix the crash upon Nuclear Test usage on some systems.<br />
* WWP: Handling of fallback resolution changes on failures<br />
<br />
== Why does this not work with W:A? ==<br />
Because the zooming and resizing features do not work well online, as the chat panel may become unusable due to its design. However, this module's features may be integrated in a future update of the game.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=FrontendKitWS&diff=26036FrontendKitWS2020-07-12T16:33:27Z<p>Pac-Man: Create page.</p>
<hr />
<div>{{ParentArticle|[[Software]], [[WormKit]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = FrontendKitWS<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 12 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C++<br />
| license = MIT<br />
| download = Choose one<br />
* [https://gitlab.com/Syroot/Worms/uploads/6a8dc0d3d238cf5a52c7184c28e4e709/wsock32.dll FrontendKitWS DLL]<br />
* [https://gitlab.com/Syroot/Worms Source code]<br />
}}<br />
<br />
[[FrontendKitDS]] is a [[WormKitDS]]-like module loader specifically made for changing the [[Worms 2]] frontend as opposed to in-game logic.<br />
<br />
It is required for patching the frontend as it does not load the WormKitDS ''dsound.dll'' library, which is why FrontendKitWS consists of ''wsock32.dll'', a library only loaded by the frontend, giving it the "WS" suffix. This also prevents issues with WormKitDS modules unaware of having been loaded into the frontend rather than the in-game process.<br />
<br />
FrontendKitDS modules use an ''fk'' file name prefix.<br />
<br />
== Installation ==<br />
<br />
Click the DLL download link in the info box on the right, and place the downloaded ''wsock32.dll'' in your Worms 2 directory, besides ''frontend.exe''. Then, download any [[WormKit#Non-W:A modules|Worms 2 frontend related modules]] and place them there aswell.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=WormKit&diff=26035WormKit2020-07-12T16:10:47Z<p>Pac-Man: Add FrontendKitWS, fkNetcode, fix width of developer column to be unique in each table, add links to alternative loaders at the bottom</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = WormKit_icon.png<br />
| name = WormKit<br />
| developer = [[People/CyberShadow|CyberShadow]]<br />
| games = [[Worms Armageddon|W:A]]<br />
| waver = All versions<br />
| language = Delphi<br />
| license = Open-source<ref name="cybershadow-github"/><br />
}}<br />
<br />
'''WormKit''' was an extension framework for [[Worms Armageddon]]. The distribution contained a module loader (whose only purpose is to load WormKit modules), and a set of default modules, each providing specific functionality.<br />
<br />
By convention, a WormKit module is a DLL file, the filename of which begins with the prefix "wk". There is no API or further integration, however some DLLs can provide common functionality for other modules to share (such as wkPackets).<br />
<br />
Starting with W:A version 3.7.0.0, the ability to load WormKit modules is included as a game option, which makes the loader itself obsolete.<br />
<br />
== Modules ==<br />
<br />
=== Original modules ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="width:100px" | Developer<br />
|-<br />
| '''[http://worms.thecybershadow.net/wormkit/wkAntiKeyboardHook.zip AntiKeyboardHook]'''<ref name="cybershadow-github" /><br />
| Stop MS Windows (2000 - 8.1) from disabling Alt+Tab / Win+... keyboard combinations for wa.exe.<ref name="loader-only">This module will not work with the game's "Load WormKit modules" option. A loader (WormKit.exe or [[WormKitDS]]) must be used instead.</ref><ref name="akh-obsolete">This module is now obsolete on Windows 10 (because the root cause has been fixed by Microsoft), as well as Steam and GOG editions of the game.</ref><br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[http://worms.thecybershadow.net/wormkit/wkFileOverride.zip FileOverride]'''<ref name="cybershadow-github">Source code for WormKit and default modules can be found on [https://github.com/CyberShadow/WormKit GitHub].</ref><br />
| Override files from the CD-ROM with your versions.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[http://worms.thecybershadow.net/wormkit/wkSoundCardSelect.zip SoundCardSelect]'''<ref name="cybershadow-github" /><br />
| Choose the soundcard W:A should use for sound output.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[[WormNAT2]]'''<br />
| Allows hosting games even if you're behind a router or firewall.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.6.28.0+<br />
| [[People/CyberShadow|CyberShadow]]<br />
|}<br />
<br />
=== Current modules by community ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="width:100px" | Developer<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkAntiLag.dll AntiLag]'''<br />
| A simple module to fix screen lags in-game by increasing the WA.exe process priority.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkBindKeys|BindKeys]]'''<br />
| A key mapper which works independently of the game's code and has a toggle key option.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Drey08|drey08]]<br />
|-<br />
| '''[[D3D9Wnd]]'''<br />
| A Direct3D 9-based windowed mode, which works natively and includes some cool features.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7+<br />
| [[People/Kawoosh|Kawoosh]], [[People/StepS|StepS]]<br />
|-<br />
| '''[[FkeyRearrange]]'''<br />
| Allows the user to redefine the order and content of weapons for each F hotkey.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.2 {{and lower}}<br />
| [[People/boobl|boobl]], [[People/StepS|StepS]]<br />
|-<br />
| '''[[wkIndiMask|IndiMask]]'''<br />
| It allows maps to have both destructible and indy areas by embedding data in the palette.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Plutonic|Plutonic]]<br />
|-<br />
| '''[[wkKawooshKick|KawooshKick]]'''<br />
| An in-game kicking module, fully compatible with v3.7.2.1, supports kicking reasons.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkLobbyCmd|LobbyCmd]]'''<br />
| Allows to change the in-game resolution from a network game lobby to any value.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[MapGEN]]'''<br />
| Allows to generate random PNG maps from the map editor.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Plutonic|Plutonic]]<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkNV3Doff.dll NV3Doff]'''<br />
| Prevents the NVIDIA 3DVision from becoming active when using Direct3D 9.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkRehost|Rehost]]'''<br />
| Allows reopening games when using a snooper to host.<br />
| {{WA editions|cd}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkRemapKeys|RemapKeys]]'''<br />
| A W:A-specific key remapper which doesn't affect chatting and works in-game only.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7+<br />
| [[People/Kawoosh|Kawoosh]], [[People/StepS|StepS]]<br />
|-<br />
| '''[[ReplayShark]]'''<br />
| Allows to build a catalog of nice moments by pressing a button when something cool happens.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Glide|Glide]]<br />
|-<br />
| '''[[RubberWorm]]'''<br />
| Extends the W:A physics engine with new options.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Pisto|Pisto]], [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkSnow.zip Snow]'''<br />
| A module to enable, customize and/or disable snow anytime, doesn't affect map generation.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[[SuperFrontendHD]]'''<br />
| Allows to run the frontend at any resolution and helps people without 640x480 support.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7+<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[http://www.tus-wa.com/?topic=29504 Terrain]'''<br />
| Allows to specify custom terrains for use with the map generator.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1<br />
| [[People/xKoweKx|xKoweKx]]<br />
|-<br />
| '''[[TrackMeBetter]]'''<br />
| Allows to tune the in-game camera tracking rectangle for object motion.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.1<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[[wkUseDesktopWindow|UseDesktopWindow]]'''<br />
| A module which in future will help to run WWP and older W:A on Wine.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Muzer|Muzer]]<br />
|-<br />
| '''[[wkWMDB]]'''<br />
| Allows the downloading of maps randomly from the WMDB site from within the editor, based on schemes and map size.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Plutonic|Plutonic]]<br />
|-<br />
| '''[http://beta.team17.com/showthread.php?t=57737 wndmode]'''<br />
| DirectDraw windowed mode running in a wrapper.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/menopem|menopem]], [[People/VEG|VEG]],<br>[[People/Kawoosh|Kawoosh]], [[People/StepS|StepS]]<br />
|-<br />
| '''[https://www.tus-wa.com/forums/worms-armageddon/wormkit-module-for-ingame-music-32542 wkNewWave]'''<br />
| Play custom music instead of the original in-game music.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/terion|terion]]<br />
|}<br />
<br />
=== Developer modules, SDKs, debuggers ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="width:100px" | Developer<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkDetectFocusLoss.dll DetectFocusLoss]'''<br />
| Helpful to find what process(es) steal focus from the game (causing e.g. unwanted minimizations)<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[https://dump.thecybershadow.net/8405f07d0cfca4498c9d9bcc6075b860/wkMinidumpOnCtrlBreak.dll MinidumpOnCtrlBreak]'''<br />
| Helpful to find reasons of certain freezes. Creates dump by pressing Ctrl+Break.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[[wkPointerScan|PointerScan]]'''<br />
| A pointer scan made specifically for W:A. Helpful in the development of new WormKit modules.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0 {{and lower}}<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkVersionCheck.zip VersionCheck]'''<br />
| An example on C++ to verify the W:A version before hooking code.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkSample]]'''<br />
| The example open source module, which shows the development of WormKit modules.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/TheSCS|The SCS]]<br />
|}<br />
<br />
=== Obsolete or incompatible modules ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="width:100px" | Developer<br />
|-<br />
| '''[http://beta.team17.com/showthread.php?t=38762 ColorFix]'''<br />
| Fixes the color bug on Vista and Windows 7 by suspending the "explorer.exe" process.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[[wkPathOverride|PathOverride]]'''<br />
| Modifies the registry to use WormKit.exe for URLs (like "wa://") and replay files.<br />
| {{WA editions|cd}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkRandomMap|RandomMap]]'''<br />
| Allows you to download random maps from [[WMDB]] directly from the map editor.<br />
| {{WA editions|cd}}<br />
| Undefined<ref name="bad">After the 3.7.0.0 update, wkRandomMap has stopped working on some systems, but it is unknown what makes it malfunction on any particular system. This module is now deprecated; wkWMDB is preferable.</ref><br />
| [http://shadowtheage.narod.ru ShadowTheAge]<br />
|-<br />
| '''[[wkPrivateCfg|PrivateCfg]]'''<br />
| Allows you to store all the W:A settings in an INI file instead of registry.<br />
| {{WA editions|cd}}<br />
| 3.7.0.0 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[WA_Localizer|Localizer]]'''<br />
| Allows you to translate W:A fully (frontend, ingame, etc), goes with an editor.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[Project X]]'''<br />
| Extends W:A with scripting, custom weapons and DirectX 9 rendering.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0<br />
| [http://px.worms2d.info Entuser]<br />
|-<br />
| '''[http://myfiles.my1.ru/wa/wk/wkPXColorPwnage.dll PXColorPwnage]'''<br />
| Fixes the Darker team colour scheme when PX is enabled.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[http://worms.cinus.org/wkcinuskick CinusKick]'''<br />
| An analog to wKick module for W:A update 3.6.29.0.<br />
| {{WA editions|cd}}<br />
| 3.6.29.0<br />
| [http://worms.cinus.org Cinus]<br />
|-<br />
| '''[[JetFix]]'''<br />
| Provides a workaround for the jetpack bug when using [[BattyRope]] or [[TestStuff]].<br />
| {{WA editions|cd}}<br />
| 3.6.29.0<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[[LaserFix]]'''<br />
| A fix for the [[Laser Sight]] desynchronization bug in v3.6.29.0, and some nice features.<br />
| {{WA editions|cd}}<br />
| 3.6.29.0<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[http://forum.team17.com/showthread.php?t=35805 wKick]'''<br />
| Allows you to kick people in-game by typing a command in the chat. Works only on 3.6.28.0.<br />
| {{WA editions|cd}}<br />
| 3.6.28.0<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[[wkMagic]]'''<br />
| First proof-of-concept module that allowed game logic code modification in online games.<br />
| {{WA editions|cd}}<br />
| 3.6.26.5<br />
| [[People/CyberShadow|CyberShadow]]<br />
|}<br />
<br />
=== Non-W:A modules ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | Version<br />
! style="width:100px" | Developer<br />
|-<br />
| '''[[ReSolution]]'''<br />
| Allows to change the in-game resolution in Worms 2 and Worms World Party to any value, as well as zoom and resize the game environment.<br />
| {{software|W2|WWP}}<br />
| 1.05 (W2)<br>1.0x (WWP)<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[[DDShot]]'''<br />
| Allows to take screenshots in DirectDraw games (via the Pause key) or dump shots of all surfaces (via Alt+Pause).<br />
| {{software|W2|WWP|WA}}<br />
| All<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[[fkNetcode]]'''<br />
| Fixes netcode related issues in the Worms 2 frontend, primarily resolving a proper external IP address for hosting games.<br />
| {{software|W2}}<br />
| 1.05/1.07 (Frontend)<br />
| [[User:Pac-Man|Pac-Man]]<br />
|-<br />
| '''[http://www.gog.com/forum/worms_series/plugin_windowed_mode_for_worms_2_improve_windows_8_performance W2 Windowed Mode]'''<br />
| Allows to run Worms 2 in a window and fixes Windows 8+ performance issues.<br />
| {{software|W2}}<br />
| All<br />
| See "wndmode"<br />
|-<br />
| '''[http://www.tus-wa.com/?topic=21030 WWP Windowed Mode]'''<br />
| Fixes compatibility with all modern systems and drivers and allows to use windowed mode.<br />
| {{software|WWP}}<br />
| All<br />
| See "wndmode"<br />
|}<br />
<br />
== History ==<br />
<br />
WormKit was first released on April 5, 2006. Since its release, no significant changes or additions were made to the framework itself. Although there was some work on additional default modules, including an anti-cheating system (wkWormisign) and a Fiddler-like scripted game engine add-on ([[wkMagic]]), none reached a development phase mature enough to be released, and thus the ideas were dropped.<br />
<br />
In July 2011, [[WormKitDS]] was released. WormKitDS is an alternative module loader which removes the need of a launcher program. WormKitDS made managing WormKit-requiring replays easier, and worked under Linux and for the Steam edition of the game, whereas the original WormKit did not.<br />
<br />
In December 2012, W:A 3.7.0.0 was released, with the addition of an option to load WormKit modules on startup. The new option made the loaders mostly obsolete.<br />
<br />
In February 2013, the original WormKit homepage (previously located at http://worms.thecybershadow.net/wormkit/) was shut down and turned into a redirect to this page. The default modules have been made available as separate downloads. The old (obsolete) distribution can still be downloaded [http://worms.thecybershadow.net/wormkit/wormkit.zip here].<br />
<br />
In July 2020, [[FrontendKitWS]] was created to patch issues specifically related to the [[Worms 2]] frontend, as it does not support loading modules through WormKitDS.<br />
<br />
== See also ==<br />
* [[WormKitDS]] loads modules for Worms 2 (in-game), W:A (pre-3.7), and Worms World Party<br />
* [[FrontendKitWS]] loads modules for Worms 2 (frontend)<br />
<br />
== Notes ==<br />
<references/><br />
__NOTOC__</div>Pac-Manhttps://worms2d.info/?title=WormKit&diff=26034WormKit2020-07-12T15:55:08Z<p>Pac-Man: /* Modules */ Sortable wikitables and rename "W:A version" column in non-W:A modules table to just "Version"</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = WormKit_icon.png<br />
| name = WormKit<br />
| developer = [[People/CyberShadow|CyberShadow]]<br />
| games = [[Worms Armageddon|W:A]]<br />
| waver = All versions<br />
| language = Delphi<br />
| license = Open-source<ref name="cybershadow-github"/><br />
}}<br />
<br />
'''WormKit''' was an extension framework for [[Worms Armageddon]]. The distribution contained a module loader (whose only purpose is to load WormKit modules), and a set of default modules, each providing specific functionality.<br />
<br />
By convention, a WormKit module is a DLL file, the filename of which begins with the prefix "wk". There is no API or further integration, however some DLLs can provide common functionality for other modules to share (such as wkPackets).<br />
<br />
Starting with W:A version 3.7.0.0, the ability to load WormKit modules is included as a game option, which makes the loader itself obsolete.<br />
<br />
== Modules ==<br />
<br />
=== Original modules ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="none" | Developer<br />
|-<br />
| '''[http://worms.thecybershadow.net/wormkit/wkAntiKeyboardHook.zip AntiKeyboardHook]'''<ref name="cybershadow-github" /><br />
| Stop MS Windows (2000 - 8.1) from disabling Alt+Tab / Win+... keyboard combinations for wa.exe.<ref name="loader-only">This module will not work with the game's "Load WormKit modules" option. A loader (WormKit.exe or [[WormKitDS]]) must be used instead.</ref><ref name="akh-obsolete">This module is now obsolete on Windows 10 (because the root cause has been fixed by Microsoft), as well as Steam and GOG editions of the game.</ref><br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[http://worms.thecybershadow.net/wormkit/wkFileOverride.zip FileOverride]'''<ref name="cybershadow-github">Source code for WormKit and default modules can be found on [https://github.com/CyberShadow/WormKit GitHub].</ref><br />
| Override files from the CD-ROM with your versions.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[http://worms.thecybershadow.net/wormkit/wkSoundCardSelect.zip SoundCardSelect]'''<ref name="cybershadow-github" /><br />
| Choose the soundcard W:A should use for sound output.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[[WormNAT2]]'''<br />
| Allows hosting games even if you're behind a router or firewall.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.6.28.0+<br />
| [[People/CyberShadow|CyberShadow]]<br />
|}<br />
<br />
=== Current modules by community ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="none" | Developer<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkAntiLag.dll AntiLag]'''<br />
| A simple module to fix screen lags in-game by increasing the WA.exe process priority.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkBindKeys|BindKeys]]'''<br />
| A key mapper which works independently of the game's code and has a toggle key option.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Drey08|drey08]]<br />
|-<br />
| '''[[D3D9Wnd]]'''<br />
| A Direct3D 9-based windowed mode, which works natively and includes some cool features.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7+<br />
| [[People/Kawoosh|Kawoosh]], [[People/StepS|StepS]]<br />
|-<br />
| '''[[FkeyRearrange]]'''<br />
| Allows the user to redefine the order and content of weapons for each F hotkey.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.2 {{and lower}}<br />
| [[People/boobl|boobl]], [[People/StepS|StepS]]<br />
|-<br />
| '''[[wkIndiMask|IndiMask]]'''<br />
| It allows maps to have both destructible and indy areas by embedding data in the palette.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Plutonic|Plutonic]]<br />
|-<br />
| '''[[wkKawooshKick|KawooshKick]]'''<br />
| An in-game kicking module, fully compatible with v3.7.2.1, supports kicking reasons.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkLobbyCmd|LobbyCmd]]'''<br />
| Allows to change the in-game resolution from a network game lobby to any value.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[MapGEN]]'''<br />
| Allows to generate random PNG maps from the map editor.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Plutonic|Plutonic]]<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkNV3Doff.dll NV3Doff]'''<br />
| Prevents the NVIDIA 3DVision from becoming active when using Direct3D 9.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkRehost|Rehost]]'''<br />
| Allows reopening games when using a snooper to host.<br />
| {{WA editions|cd}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkRemapKeys|RemapKeys]]'''<br />
| A W:A-specific key remapper which doesn't affect chatting and works in-game only.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7+<br />
| [[People/Kawoosh|Kawoosh]], [[People/StepS|StepS]]<br />
|-<br />
| '''[[ReplayShark]]'''<br />
| Allows to build a catalog of nice moments by pressing a button when something cool happens.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Glide|Glide]]<br />
|-<br />
| '''[[RubberWorm]]'''<br />
| Extends the W:A physics engine with new options.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/Pisto|Pisto]], [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkSnow.zip Snow]'''<br />
| A module to enable, customize and/or disable snow anytime, doesn't affect map generation.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1 {{and lower}}<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[[SuperFrontendHD]]'''<br />
| Allows to run the frontend at any resolution and helps people without 640x480 support.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7+<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[http://www.tus-wa.com/?topic=29504 Terrain]'''<br />
| Allows to specify custom terrains for use with the map generator.<br />
| {{WA editions|cd|steam}}<br />
| 3.7.2.1<br />
| [[People/xKoweKx|xKoweKx]]<br />
|-<br />
| '''[[TrackMeBetter]]'''<br />
| Allows to tune the in-game camera tracking rectangle for object motion.<br />
| {{WA editions|cd|steam|gog}}<br />
| 3.7.2.1<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[[wkUseDesktopWindow|UseDesktopWindow]]'''<br />
| A module which in future will help to run WWP and older W:A on Wine.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Muzer|Muzer]]<br />
|-<br />
| '''[[wkWMDB]]'''<br />
| Allows the downloading of maps randomly from the WMDB site from within the editor, based on schemes and map size.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Plutonic|Plutonic]]<br />
|-<br />
| '''[http://beta.team17.com/showthread.php?t=57737 wndmode]'''<br />
| DirectDraw windowed mode running in a wrapper.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/menopem|menopem]], [[People/VEG|VEG]],<br>[[People/Kawoosh|Kawoosh]], [[People/StepS|StepS]]<br />
|-<br />
| '''[https://www.tus-wa.com/forums/worms-armageddon/wormkit-module-for-ingame-music-32542 wkNewWave]'''<br />
| Play custom music instead of the original in-game music.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/terion|terion]]<br />
|}<br />
<br />
=== Developer modules, SDKs, debuggers ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="none" | Developer<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkDetectFocusLoss.dll DetectFocusLoss]'''<br />
| Helpful to find what process(es) steal focus from the game (causing e.g. unwanted minimizations)<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[https://dump.thecybershadow.net/8405f07d0cfca4498c9d9bcc6075b860/wkMinidumpOnCtrlBreak.dll MinidumpOnCtrlBreak]'''<br />
| Helpful to find reasons of certain freezes. Creates dump by pressing Ctrl+Break.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[[wkPointerScan|PointerScan]]'''<br />
| A pointer scan made specifically for W:A. Helpful in the development of new WormKit modules.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0 {{and lower}}<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[http://files.steps.club/wa/wk/wkVersionCheck.zip VersionCheck]'''<br />
| An example on C++ to verify the W:A version before hooking code.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkSample]]'''<br />
| The example open source module, which shows the development of WormKit modules.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/TheSCS|The SCS]]<br />
|}<br />
<br />
=== Obsolete or incompatible modules ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | W:A version<br />
! style="none" | Developer<br />
|-<br />
| '''[http://beta.team17.com/showthread.php?t=38762 ColorFix]'''<br />
| Fixes the color bug on Vista and Windows 7 by suspending the "explorer.exe" process.<br />
| {{WA editions|cd|steam|gog}}<br />
| All<br />
| [[People/CyberShadow|CyberShadow]]<br />
|-<br />
| '''[[wkPathOverride|PathOverride]]'''<br />
| Modifies the registry to use WormKit.exe for URLs (like "wa://") and replay files.<br />
| {{WA editions|cd}}<br />
| All<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[wkRandomMap|RandomMap]]'''<br />
| Allows you to download random maps from [[WMDB]] directly from the map editor.<br />
| {{WA editions|cd}}<br />
| Undefined<ref name="bad">After the 3.7.0.0 update, wkRandomMap has stopped working on some systems, but it is unknown what makes it malfunction on any particular system. This module is now deprecated; wkWMDB is preferable.</ref><br />
| [http://shadowtheage.narod.ru ShadowTheAge]<br />
|-<br />
| '''[[wkPrivateCfg|PrivateCfg]]'''<br />
| Allows you to store all the W:A settings in an INI file instead of registry.<br />
| {{WA editions|cd}}<br />
| 3.7.0.0 {{and lower}}<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[WA_Localizer|Localizer]]'''<br />
| Allows you to translate W:A fully (frontend, ingame, etc), goes with an editor.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[[Project X]]'''<br />
| Extends W:A with scripting, custom weapons and DirectX 9 rendering.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0<br />
| [http://px.worms2d.info Entuser]<br />
|-<br />
| '''[http://myfiles.my1.ru/wa/wk/wkPXColorPwnage.dll PXColorPwnage]'''<br />
| Fixes the Darker team colour scheme when PX is enabled.<br />
| {{WA editions|cd}}<br />
| 3.6.31.0<br />
| [[People/Kawoosh|Kawoosh]]<br />
|-<br />
| '''[http://worms.cinus.org/wkcinuskick CinusKick]'''<br />
| An analog to wKick module for W:A update 3.6.29.0.<br />
| {{WA editions|cd}}<br />
| 3.6.29.0<br />
| [http://worms.cinus.org Cinus]<br />
|-<br />
| '''[[JetFix]]'''<br />
| Provides a workaround for the jetpack bug when using [[BattyRope]] or [[TestStuff]].<br />
| {{WA editions|cd}}<br />
| 3.6.29.0<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[[LaserFix]]'''<br />
| A fix for the [[Laser Sight]] desynchronization bug in v3.6.29.0, and some nice features.<br />
| {{WA editions|cd}}<br />
| 3.6.29.0<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[http://forum.team17.com/showthread.php?t=35805 wKick]'''<br />
| Allows you to kick people in-game by typing a command in the chat. Works only on 3.6.28.0.<br />
| {{WA editions|cd}}<br />
| 3.6.28.0<br />
| [[People/Pisto|Pisto]]<br />
|-<br />
| '''[[wkMagic]]'''<br />
| First proof-of-concept module that allowed game logic code modification in online games.<br />
| {{WA editions|cd}}<br />
| 3.6.26.5<br />
| [[People/CyberShadow|CyberShadow]]<br />
|}<br />
<br />
=== Non-W:A modules ===<br />
<br />
{| class="wikitable sortable"<br />
|-<br />
! style="width:164px" | Name<br />
! style="none" | Short description<br />
! style="width:68px" | Compat.<br />
! style="width:100px" | Version<br />
! style="none" | Developer<br />
|-<br />
| '''[[ReSolution]]'''<br />
| Allows to change the in-game resolution in Worms 2 and Worms World Party to any value, as well as zoom and resize the game environment.<br />
| {{software|W2|WWP}}<br />
| 1.05 (W2)<br>1.0x (WWP)<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[[DDShot]]'''<br />
| Allows to take screenshots in DirectDraw games (via the Pause key) or dump shots of all surfaces (via Alt+Pause).<br />
| {{software|W2|WWP|WA}}<br />
| All<br />
| [[People/StepS|StepS]]<br />
|-<br />
| '''[http://www.gog.com/forum/worms_series/plugin_windowed_mode_for_worms_2_improve_windows_8_performance W2 Windowed Mode]'''<br />
| Allows to run Worms 2 in a window and fixes Windows 8+ performance issues.<br />
| {{software|W2}}<br />
| All<br />
| See "wndmode"<br />
|-<br />
| '''[http://www.tus-wa.com/?topic=21030 WWP Windowed Mode]'''<br />
| Fixes compatibility with all modern systems and drivers and allows to use windowed mode.<br />
| {{software|WWP}}<br />
| All<br />
| See "wndmode"<br />
|}<br />
<br />
== History ==<br />
<br />
WormKit was first released on April 5, 2006. Since its release, no significant changes or additions were made to the framework itself. Although there was some work on additional default modules, including an anti-cheating system (wkWormisign) and a Fiddler-like scripted game engine add-on ([[wkMagic]]), none reached a development phase mature enough to be released, and thus the ideas were dropped.<br />
<br />
In July 2011, [[WormKitDS]] was released. WormKitDS is an alternative module loader which removes the need of a launcher program. WormKitDS made managing WormKit-requiring replays easier, and worked under Linux and for the Steam edition of the game, whereas the original WormKit did not.<br />
<br />
In December 2012, W:A 3.7.0.0 was released, with the addition of an option to load WormKit modules on startup. The new option made the loaders mostly obsolete.<br />
<br />
In February 2013, the original WormKit homepage (previously located at http://worms.thecybershadow.net/wormkit/) was shut down and turned into a redirect to this page. The default modules have been made available as separate downloads. The old (obsolete) distribution can still be downloaded [http://worms.thecybershadow.net/wormkit/wormkit.zip here].<br />
<br />
== Notes ==<br />
<br />
<references/><br />
__NOTOC__</div>Pac-Manhttps://worms2d.info/?title=Network_protocol_(Worms_2)&diff=26001Network protocol (Worms 2)2020-07-11T02:00:32Z<p>Pac-Man: Replace repository link with wiki link to server software page</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
The Worms 2 servers host rooms in which users can meet to then connect to each other's PCs for playing games.<br />
<br />
== Official servers ==<br />
<br />
The following servers are hosted by Team17:<br />
<br />
{| class="wikitable"<br />
! width="170px" | Name !! IP address !! Port !! Notes<br />
|-<br />
| Worms2 Server (UK) || uk1.servers.worms2.com || 17000 || "The Team17 Server". Started to reject new connections in July 2020, shortly after some Worms enthusiasts played on it. Unclear whether the sudden activity downed it, it did not immediately break. The client will display "Unable to create new player..." when attempting to connect to it.<br />
|-<br />
| Worms2 Demo Server (UK) || uk1.servers.worms2.com || 17171 || Server for Worms 2 demo. Allows full versions to connect aswell. Did not go down in July 2020.<br />
|}<br />
<br />
== Server communication ==<br />
<br />
The server hosting the user, room, and game lists communicates with packets in the following format:<br />
<br />
=== Packet format ===<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Name !! Description<br />
|-<br />
| 0 || uint32 || 4 || Code || Determines the type of packet. Known packets are listed [[#Packet contents|below]].<br />
|-<br />
| 4 || uint32 || 4 || Flags || A bitset determining which of the following fields will be available.<br />
|-<br />
| ? || uint32 || 4 || Value 0 || If bit 0 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 1 || If bit 1 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 2 || If bit 2 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 3 || If bit 3 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 4 || If bit 4 is set in '''Flags'''. Never used other than client-side?<br />
|-<br />
| ? || uint32 || 4 || Value 10 || If bit 10 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Data Length || If bit 5 is set in '''Flags'''.<br />
|-<br />
| ? || char[DataLength] || Data Length || Data || If bit 5 is set in '''Flags''', stores Windows-1251 encoded text like an IP string or full chat message.<br />
|-<br />
| ? || uint32 || 4 || Error || If bit 7 is set in '''Flags'''. Returns a Windows error code from the server, like E_FAIL for when the name of a room to create contains a bad word.<br />
|-<br />
| ? || char[20] || 20 || Name || If bit 8 is set in '''Flags''', stores a Windows-1251 encoded session name. Unused bytes are 0.<br />
|-<br />
| ? || [[#Session info|Session info]] || 50 || Session || If bit 9 is set in '''Flags'''. Unused bytes are 0.<br />
|}<br />
<br />
==== Session info ====<br />
<br />
Several packets identify a user, room, or game with the '''Name''' and '''Session''' fields. The latter provides the following information:<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Value<br />
|-<br />
| 0 || uint32 || 4 || Always 0x17171717<br />
|-<br />
| 4 || uint32 || 4 || Always 0x02010101<br />
|-<br />
| 8 || uint8 || 1 || [[#Nation|Nation / Flag]]<br />
|-<br />
| 9 || uint8 || 1 || Game version, always 49<br />
|-<br />
| 10 || uint8 || 1 || [[#Game release|Game release]] (same as '''Game version''', 50 if CD check failed)<br />
|-<br />
| 11 || uint8 || 1 || Type (1=room, 4=game, 5=user)<br />
|-<br />
| 12 || uint8 || 1 || Access (1=public, 2=protected)<br />
|-<br />
| 13 || uint8 || 1 || Always 1<br />
|-<br />
| 14 || uint8 || 1 || Always 0<br />
|-<br />
| 15 || gap || 35 || Unused, all 0.<br />
|}<br />
<br />
Passing other or invalid combinations (protected users and rooms do not exist, only passworded games) will display a French flag with the default state or a question mark in the UI.<br />
<br />
The Worms 2 1.0.1.1 Demo uses significantly different values compared to the full version 1.0.1.5 patch, causing said question marks to appear. However, interactions with full version users still work.<br />
<br />
===== Nation / Flag =====<br />
<br />
Determines which flag is displayed with the user, room, or game. Two flags are custom (Skull and Team17) and are not normally selectable. [[Des patch]] can unlock the selection of them, and adds another entry for an "invalid" country code, creating an empty flag.<br />
<br />
{| class="wikitable sortable mw-collapsible mw-collapsed"<br />
! Value !! Flag<br />
|-<br />
| 1 || United Kingdom<br />
|-<br />
| 2 || Argentinia<br />
|-<br />
| 3 || Australia<br />
|-<br />
| 4 || Austria<br />
|-<br />
| 5 || Beglium<br />
|-<br />
| 6 || Brazil<br />
|-<br />
| 7 || Canada<br />
|-<br />
| 8 || Croatia<br />
|-<br />
| 9 || Bosnia and Herzegovina (old flag)<br />
|-<br />
| 10 || Cyprus<br />
|-<br />
| 11 || Czech Republic<br />
|-<br />
| 12 || Denmark<br />
|-<br />
| 13 || Finland<br />
|-<br />
| 14 || France<br />
|-<br />
| 15 || Georgia<br />
|-<br />
| 16 || Germany<br />
|-<br />
| 17 || Greece<br />
|-<br />
| 18 || Hong Kong SAR<br />
|-<br />
| 19 || Hungary<br />
|-<br />
| 20 || Iceland<br />
|-<br />
| 21 || India<br />
|-<br />
| 22 || Indonesia<br />
|-<br />
| 23 || Iran<br />
|-<br />
| 24 || Iraq<br />
|-<br />
| 25 || Ireland<br />
|-<br />
| 26 || Israel<br />
|-<br />
| 27 || Italy<br />
|-<br />
| 28 || Japan<br />
|-<br />
| 29 || Liechtenstein<br />
|-<br />
| 30 || Luxembourg<br />
|-<br />
| 31 || Malaysia<br />
|-<br />
| 32 || Malta<br />
|-<br />
| 33 || Mexico<br />
|-<br />
| 34 || Morocco<br />
|-<br />
| 35 || Netherlands<br />
|-<br />
| 36 || New Zealand<br />
|-<br />
| 37 || Norway<br />
|-<br />
| 38 || Poland<br />
|-<br />
| 39 || Portugal<br />
|-<br />
| 40 || Puerto Rico<br />
|-<br />
| 41 || Romania<br />
|-<br />
| 42 || Russian Federation<br />
|-<br />
| 43 || Singapore<br />
|-<br />
| 44 || South Africa<br />
|-<br />
| 45 || Spain<br />
|-<br />
| 46 || Sweden<br />
|-<br />
| 47 || Switzerland<br />
|-<br />
| 48 || Turkey<br />
|-<br />
| 49 || United States<br />
|-<br />
| 50 || Skull image<br />
|-<br />
| 51 || Team17 logo<br />
|}<br />
<br />
===== Game release =====<br />
<br />
Becomes 50 if CD detection failed. The CD detection consists of the following tests:<br />
* Find CD drive, where drives A: and B: are ignored - a found drive letter is stored in the registry under HKCU\SOFTWARE\Team17SoftwareLTD\Worms2\CD. (error 2 otherwise)<br />
* Check the CD being "Worms 2" or "WORMS2". (error 1 otherwise)<br />
* Check if the CD has no free space to ensure it being a CD-ROM. (error 3 otherwise)<br />
* Check if the CD stores an "autorun.inf" file. (error 4 otherwise)<br />
<br />
=== Packet contents ===<br />
<br />
As specified above, the '''Code''' of a packet determines the '''Action''' to take on either the server or client side and in effect which fields are used. Some codes are reused for multiple occassions, and some are unused in the 1.0.1.5 patch.<br />
<br />
Client query packets are also used for server notices, represented by the '''Type''' column in the following table:<br />
* Query: A client query to execute an action on the server, always getting a reply (even codes only).<br />
* Reply: A server reply to a client query, always reporting back an '''Error''' code, 0 for success (odd codes only).<br />
* Notice: Same as query, but coming as an out-of-bound server packet to update the state on the client, like when another user joins or creates a game.<br />
<br />
Note that the same ID counter is incremented for users (UID), rooms (RID), and games (GID) - if a user logs in with UID 0x1000 and immediately creates a room, the RID will be 0x1001. The counter should also start at a high enough value (0x1000 seems to work fine) to not cause duplicate chat messages appearing client-side, apparently because it is also reused as an index in some packets.<br />
<br />
{| class="wikitable sortable"<br />
! Code !! Action !! Type !! Value 0 !! Value 1 !! Value 2 !! Value 3 !! Value 4 !! Value 10 !! Data !! Name / Session<br />
|- style="background:#FFF"<br />
| 50 || ''not used'' || Query || || || || || ? || || ||<br />
|- style="background:#FFF"<br />
| 51 || ''not used'' || Reply || || || || || ? || || ||<br />
|- style="background:#FFFFCD"<br />
| 200 || List Rooms || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFFF"<br />
| 300 || ''not used'' || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 350 || List Item || Reply || || UID / RID / GID || || || || || user / creator / host IP || user / room / game<br />
|- style="background:#FFFFCD"<br />
| 351 || List End || Reply || || || || || || || ||<br />
|- style="background:#FFFFCD"<br />
| 400 || List Users || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 500 || List Games || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Query || || 0 || || || 0 || || || local user<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Notice || || remote UID || || || 0 || || || remote user<br />
|- style="background:#FFE6CD"<br />
| 601 || Login || Reply || || local UID || || || || || ||<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Query || || 0 || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Notice || || new RID || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 701 || Create Room || Reply || || new RID || || || || || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Query || || || joined RID / GID || || || local UID || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Notice || || || joined RID / GID || || || remote UID || ||<br />
|- style="background:#FFCDEF"<br />
| 801 || Join Room / Game || Reply || || || || || || || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Query || || || left RID / GID || || || local UID || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Notice || || || left RID / GID || || || remote UID || ||<br />
|- style="background:#EFCDFF"<br />
| 901 || Leave Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Query<ref name=NotUsed>Only ever sent as a notice by the server, clients disconnect without any query and awaited reply.</ref> || || || || || || local UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Notice || || || || || || remote UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1001 || Disconnect User || Reply<ref name=NotUsed/> || || || || || || || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Query || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Notice || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1101 || Close Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Query<ref name=BadIP>Since the host reports its incorrectly detected NAT IP here, [[Worms 2 Memory Changer]] has to be used to inject the actual IP address into Worms 2 before creating a room.</ref> || || 0 || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Notice || || GID || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1201 || Create Game || Reply || || GID || || || || || ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Query || local UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Notice || remote UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1301 || Room Chat || Reply<ref name=ReturnsEFail>Original server always reports E_FAIL in error code, even though messages were sent.</ref> || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1320 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1321 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1322 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1323 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1324 || ''not used'' || Query || ? || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1325 || ''not used'' || Reply || || || || || || || ? ||<br />
|- style="background:#CDFFCD"<br />
| 1326 || Connect Game || Query || GID || || || || || || ||<br />
|- style="background:#CDFFCD"<br />
| 1327 || Connect Game || Reply || || || || || || || host IP ||<br />
|}<br />
<references /><br />
<br />
== Game room communication ==<br />
<br />
The players are connected via P2P using DirectPlay. This means the ports 47624 (for the lobby connection itself) and 2300 to 2400 (for each player connection) should be forwarded in any router. The fact that each player is connected to another means that the host can leave the game at any time, the remaining players can continue playing without dropping, unlike in [[Worms Armageddon]] or [[Worms World Party]].<br />
<br />
== See also ==<br />
<br />
* [[User:Pac-Man/Worms_2_network_samples|Selected sample logs]]<br />
* [[Worms 2 Game Server]], cross-platform server implementing the above protocol.</div>Pac-Manhttps://worms2d.info/?title=Worms.NET_PAL_Editor&diff=26000Worms.NET PAL Editor2020-07-11T01:35:58Z<p>Pac-Man: Add to OSS category</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = WormsPALEditor_Icon.png<br />
| name = Worms.NET PAL Editor<br />
| screenshot = WormsPALEditor.png<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.1.0 / 23 September, 2013<br />
| games = [[Worms Armageddon|W:A]], [[Worms World Party|WWP]]<br />
| language = C# (.NET 4)<br />
| license = Ms-PL<br />
| download = [https://gitlab.com/Syroot/Worms/tags/Worms.NET Source code]<br />
}}<br />
<br />
'''Worms.NET PAL Editor''' is a small tool which is capable of loading and saving the PAL palette files used in the frontend of W:A and WWP.<br />
It allows the user to change the files and modify them with a small set of predefined manipulations like inverting them or switching their color channels.<br />
A technical demonstration has been posted on the Team17 forum, the W:A frontend has been tinted into red colors.<br />
<br />
== Main Features ==<br />
* Displaying PAL palette colors<br />
* Selecting more than one color at once by holding down the Ctrl key<br />
* Manipulating the colors manually or with predefined manipulation functions via a right click context menu<br />
* Saving manipulated PAL palettes<br />
* A small and simple-to-find easteregg<br />
<br />
== Project State ==<br />
The Worms.NET CodePlex project from which this tool originates has been deleted, the tools themselves were migrated to the new [https://gitlab.com/Syroot/Worms Syroot.Worms] .NET library on GitLab. However, the tools are not under development anymore and might be recreated in the future, on top of the new library.<br />
<br />
== See also ==<br />
* [[Palette file]] (including the generalized versions of the load and save routines used in this program)<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=User:Pac-Man&diff=25999User:Pac-Man2020-07-11T01:35:38Z<p>Pac-Man: /* Software */ Add W2 game server</p>
<hr />
<div>__NOTOC__<br />
Attention, attention! Unimportant stuff following.<br />
<br />
== Contributions ==<br />
<br />
If you have questions about my content on the following pages especially, feel free to write on my talk page:<br />
<br />
* [[Online Worms]]<br />
* [[Worms World Party Aqua]]<br />
* [[Project X#File formats|Project X file format specifications]]<br />
* German translations<br />
* [[Special:Contributions/Pac-Man|All other contributions]]<br />
<br />
=== User pages ===<br />
{{Special:PrefixIndex/User:Pac-Man/|stripprefix=1}}<br />
<br />
== Game schemes ==<br />
* [[Earthquake Tower]]<br />
* [[Nanageddon]]<br />
* [[TnTower]]<br />
* [[WeaponXpress]]<br />
* [[Weird Shopper]]<br />
<br />
== Software ==<br />
<br />
* [[IMG Viewer]] - displays IMG level files and their details<br />
* [[Worms.NET PAL Editor|PAL Editor]] - capable of viewing and editing W:A / WWP frontend color palettes<br />
* [[Worms 2 Game Server]] - host your own abandoned Worms 2 server<br />
* [https://gitlab.com/Syroot/Worms Syroot.Worms] - .NET libraries for loading and modifying file formats of Worms games<br />
* [https://ray.syroot.com/worms/PXEditors.zip Optimized ProjectX Editors] - removed annoyances like missing close buttons or other bad UI</div>Pac-Manhttps://worms2d.info/?title=IMG_Viewer&diff=25998IMG Viewer2020-07-11T01:33:28Z<p>Pac-Man: Add to OSS category</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = IMGViewer_Icon.png<br />
| name = IMG Viewer<br />
| screenshot = imgviewer.png<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.2.0 / 23 September, 2013<br />
| games = [[Worms 2|W2]] (implemented, but untested), [[Worms Armageddon|W:A]], [[Worms World Party|WWP]]<br />
| language = C# (.NET 4.0)<br />
| license = Ms-PL<br />
| download = [https://gitlab.com/Syroot/Worms/tags/Worms.NET Source code]<br />
}}<br />
<br />
'''IMG Viewer''' is a small tool which is capable of displaying the IMG files of W:A, WWP and W2 (W2 has not been tested, but the code for handling W2 images has been written).<br />
It was programmed by using only the file format information given on this wiki, especially the decompressing algorithm written by [[Pisto]]. The related articles are linked at the bottom.<br />
<br />
== Main Features ==<br />
* Displaying IMG files and their settings including the palette<br />
* Converting IMG files to more common file formats like BMP, PNG and JPEG<br />
A shell integration for picture previews in the Windows Explorer was available in 1.1.5.0 but has been cut from 1.1.6.0 because it didn't work correctly on most computers.<br />
<br />
== Project State ==<br />
The Worms.NET CodePlex project from which this tool originates has been deleted, the tools themselves were migrated to the new [https://gitlab.com/Syroot/Worms Syroot.Worms] .NET library on GitLab. However, the tools are not under development anymore and might be recreated in the future, on top of the new library.<br />
<br />
== See also ==<br />
* [[Image file]]<br />
* [[Team17 compression]]<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=Worms_2_Game_Server&diff=25997Worms 2 Game Server2020-07-11T01:25:06Z<p>Pac-Man: Add exact license and target .NET core version</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = Worms 2 Game Server<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 11 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C# (.NET Core 3)<br />
| platform = Win32, Linux, Mac OS X<br />
| license = MIT<br />
| download = [https://gitlab.com/Syroot/Worms Source code]<br />
}}<br />
<br />
[[Worms 2 Game Server]] is a small server application connecting Worms 2 players by allowing them to create rooms, chat, and list their games online, just like the original Team17 servers. It can be added to the "Address book" of Worms 2 to allow players to connect to it instead.<br />
<br />
The software was built shortly after reversing the [[Network_protocol_(Worms_2)|Worms 2 network protocol]] in reaction to the original Worms 2 no longer accepting new connections in July 2020. It simulates the original server as closely as possible with the following changes:<br />
<br />
* Request validation is slightly stronger, like checking for duplicate user names on login or missing packet fields.<br />
* Immediate notification of left users, closed rooms, or closed games, instead of waiting for a timeout to prevent ghosted / duplicate users and rooms.<br />
* Rejects attempts to host games with NAT IPs and informs the user about [[Worms 2 Memory Changer|memory patching their IP]].<br />
<br />
It can be compiled for most modern Windows, Linux, and Mac OS X platforms as it targets .NET Core 3. The source code also comes with a proxy debug class to allow sniffing Worms 2 network traffic.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=Software&diff=25995Software2020-07-11T00:54:24Z<p>Pac-Man: Add Worms 2 Game Server</p>
<hr />
<div>{{ParentArticle|[[Worms 2]], [[Worms Armageddon]] or [[Worms World Party]]}}<br />
{{Languages|en|Software|fr|Logiciels}}<br />
This page lists additional software related to the 2D Worms series.<br />
__NOTOC__ __NOEDITSECTION__<br />
== 2nd generation ==<br />
{| border="0" width="100%" |-<br />
|width="50%" style="vertical-align: top"|<br />
=== Add-ons ===<br />
* {{software|w2|wa|wwp}} [[WormKitDS]]<br />
* {{software|w2|wa|wwp}} [[Advanced WormKit]]<br />
* {{software|w2|wa|wwp}} [[DDShot]]<br />
{{gap}}<br />
* {{software|w2}} [[Des patch]]<br />
* {{software|w2}} [[High-res patch]]<br />
* {{software|w2}} [[S*natch patch]]<br />
* {{software|w2|wwp}} [[ReSolution]]<br />
{{gap}}<br />
* {{software|wa}} [[The Fiddler]]<br />
* {{software|wa}} [[Silkworm]]<br />
* {{software|wa}} [[WormKit]]<br />
* {{software|wa}} [[RubberWorm]]<br />
* {{software|wa}} [[Project X]]<br />
{{gap}}<br />
* {{software|wwp}} [[CutWorm]]<br />
* {{software|wwp}} [[CutWormLE]]<br />
<br />
=== Backup software ===<br />
* {{software|wa}} [[WA Team Backup]]<br />
* {{software|wa}} [[WormsBackup]]<br />
<br />
=== Graphics editors ===<br />
* {{software|w2|wa|wwp}} [[IMG Viewer]]<br />
* {{software|w2|wa|wwp}} [[SpriteEddy]]<br />
* {{software|wa}} [[WA directory editor]] (a.k.a. Sprite Editor)<br />
* {{software|wa}} [[Water color editor]]<br />
* {{software|wa|wwp}} [[Worms PAL Editor]]<br />
<br />
=== Installers ===<br />
* {{software|wa}} [[Automatic Installer]]<br />
<br />
===Linux software===<br />
<!-- This category is for Linux-specific software only. If a program merely works under Linux as well as Windows, list it elsewhere. --><br />
* {{software|wa}} [[Play Worms Armageddon on Linux]]<br />
<br />
=== Map editors/generators ===<br />
* {{software|wa}} [[bnagen]]<br />
* {{software|wa}} [[RR-Gen.com]]<br />
* {{software|wa}} [[MapGEN]]<br />
* {{software|wa|wwp}} [[The Architect]]<br />
* {{software|wa}} [[WormMM]]<br />
<br />
=== Map stealers ===<br />
* {{software|w2}} [[X-Terrain]]<br />
* {{software|wa|wwp}} [[Map Theif]]<br />
<br />
=== Map viewers/decoders ===<br />
* {{software|wa|wwp}} [[BIT Monkey]]<br />
* {{software|wa|wwp}} [[BitUnencoder]]<br />
* {{software|wa}} [[Thumbnail Shell Extension]]<br />
* {{software|wwp}} [[MapFix]]<br />
<br />
=== Misc ===<br />
* {{software|wwp}} [[WWP Mission Editor]]<br />
* {{software|wa}} [[WA Mission Editor]]<br />
* {{software|w2|wa|wwp}} [[SoundBank Editor]]<br />
* {{software|w2|wa|wwp}} [[SoundEddy]]<br />
* {{software|w2|wa|wwp}} [[The Tapometer]]<br />
* {{software|w2}} [[Worms 2 Memory Changer]]<br />
* {{software|wa}} [[WA Localizer]]<br />
* {{software|wa}} [[The Worminizer]]<br />
* {{software|wa}} [[Worm Edit 2000]]<br />
* {{software|wa}} [[Screen Lag]]<br />
* {{software|wa}} [[BRSolver]]<br />
* {{software|wa}} [[Constipated Silkworm]]<br />
* {{software|wwp}} [[Anzas Minimizer]]<br />
* {{software|wa|wwp}} [[WAsP|W:AsP]]<br />
* {{software|wa}} [[LaserFixChanger]]<br />
* {{software|wa|wwp}} [[WAFR|The Finger Roll]]<br />
|style="vertical-align: top"|<br />
=== Replay managers/viewers/recorders ===<br />
* {{software|wa}} [[Armageddon Recorder]]<br />
* {{software|wa}} [[ChatCleaner]]<br />
* {{software|wa}} [[ChatSnatch]]<br />
* {{software|wa}} [[ReplayEater]]<br />
* {{software|wa}} [[ReplayShark]]<br />
* {{software|wa}} [[WAgame.chat]]<br />
* {{software|wa}} [[Worms Autogaming]]<br />
* {{software|wa}} [[Worms Armageddon Recorded Game Organiser]]<br />
<br />
=== Scheme/option editors ===<br />
* {{software|w2}} [[Worms2 Option Editor]]<br />
* {{software|w2}} [[Worms 2 Super Editor]]<br />
{{gap}}<br />
* {{software|wa}} [[Another Random Scheme Editor]]<br />
* {{software|wa}} [[Armageditor]]<br />
* {{software|wa}} [[Heavy Edit]]<br />
* {{software|wa}} [[LeTotalKiller's Scheme Editor]]<br />
* {{software|wa}} [[RubberWormConfig]]<br />
* {{software|wa}} [[SchemeEd]]<br />
* {{software|wa|wwp}} [[Scheme Works]]<br />
* {{software|wa|wwp}} [[SchemeEddy]]<br />
* {{software|wa}} [[schemed]]<br />
* {{software|wa}} [[Worms Armageddon Randomizer]] (WA:R)<br />
* {{software|wwp}} [[Worms World Party Scheme Editor]]<br />
* {{software|wwp}} [[WWP Edit]]<br />
<br />
=== Team editors ===<br />
* {{software|wa|wwp}} [[TeamED]]<br />
* {{software|wa}} [[Full Wormage Unlocker]]<br />
* {{software|wa}} [[Worms Armageddon Cheat Enabler]] (WACE)<br />
* {{software|wa}} [[Animated Grave Machine (W:A)]]<br />
* {{software|wwp}} [[Animated Grave Machine (WWP)]]<br />
* {{software|wwp}} [[WWP Trainer]]<br />
<br />
=== Tournament assistant ===<br />
* {{software|w2|wa|wwp}} [[Global Tournament Moderator]]<br />
<br />
=== Weapons editors ===<br />
* {{software|w2}} [[Worms 2 SuperConfig]]<br />
* {{software|w2}} [[Wedit95]]<br />
* {{software|w2}} [[The Vigro's Weapon Editor]]<br />
<br />
=== WormNET proxies ===<br />
* {{software|wa}} [[LeetF*ck]]<br />
* {{software|wwp}} [[WWPPipe]]<br />
<br />
=== WormNET server software ===<br />
* {{software|w2}} [[Worms 2 Game Server]]<br />
* {{software|wa|wwp}} [[MyWormNET]]<br />
* {{software|wa}} [[MyWormNET2]]<br />
* {{software|wa}} [[JayWormNET]]<br />
* {{software|wa}} [[HostingBuddy]]<br />
* {{software|wwp}} [[WWP Server X]] (WWPSX) <!-- hosted by Cowbanger in Toronto, Ontario, Canada starting at some point before 2003-03-14 20:23 (according to file date on ZloiAdun's ServerList.htm in the wwppipe archive); WWPSX itself possibly written by Annelid (unsure; needs confirmation) --><br />
<br />
=== WormNET snoopers ===<br />
* {{software|w2}} [[KChat]]<br />
* {{software|wa}} [[Caecilian]]<br />
* {{software|wa}} [[Great Snooper]]<br />
* {{software|wa}} [[ProSnooper]]<br />
* {{software|wa}} [[Solixa Worms]]<br />
* {{software|wa}} [[Super Snooper]]<br />
* {{software|wa}} [[Team17's official WormNET Snooper]]<br />
* {{software|wa}} [[The Wheat Snooper]]<br />
* {{software|wa}} [[TINS]]<br />
* {{software|wa}} [[Toto's WormNET Snooper]]<br />
* {{software|wa}} [[Web Snooper]]<br />
* {{software|wa}} [[WSnooper]]<br />
|}</div>Pac-Manhttps://worms2d.info/?title=Worms_2_Game_Server&diff=25994Worms 2 Game Server2020-07-11T00:54:15Z<p>Pac-Man: Create page</p>
<hr />
<div>{{ParentArticle|[[Software]]}}<br />
{{Software_infobox<br />
| icon = SyrootWormsLogo.png<br />
| name = Worms 2 Game Server<br />
| developer = [[User:Pac-Man|Pac-Man]]<br />
| version = 1.0.0 / 11 July 2020<br />
| games = [[Worms 2|W2]]<br />
| language = C#<br />
| platform = Win32, Linux, Mac OS X<br />
| license = Open-source<br />
| website = [https://gitlab.com/Syroot/Worms Syroot.Worms on GitLab]<br />
}}<br />
<br />
[[Worms 2 Game Server]] is a small server application connecting Worms 2 players by allowing them to create rooms, chat, and list their games online, just like the original Team17 servers. It can be added to the "Address book" of Worms 2 to allow players to connect to it instead.<br />
<br />
The software was built shortly after reversing the [[Network_protocol_(Worms_2)|Worms 2 network protocol]] in reaction to the original Worms 2 no longer accepting new connections in July 2020. It simulates the original server as close as possible with the following changes:<br />
<br />
* Request validation is slightly stronger, like checking for duplicate user names on login or missing packet fields.<br />
* Immediate notification of left users, closed rooms, or closed games, instead of waiting for a timeout to prevent ghosted / duplicate users and rooms.<br />
* Rejects attempts to host games with NAT IPs and informs the user about [[Worms 2 Memory Changer|memory patching their IP]].<br />
<br />
It can be compiled for most modern Windows, Linux, and Mac OS X platforms as it is targeting .NET Standard 2.0. The source code also comes with a proxy debug class to allow sniffing Worms 2 network traffic.<br />
<br />
{{OSS}}</div>Pac-Manhttps://worms2d.info/?title=File:SyrootWormsLogo.png&diff=25993File:SyrootWormsLogo.png2020-07-11T00:51:03Z<p>Pac-Man: Icon of projects using my [https://gitlab.com/Syroot/Worms Syroot.Worms] library.</p>
<hr />
<div>Icon of projects using my [https://gitlab.com/Syroot/Worms Syroot.Worms] library.</div>Pac-Manhttps://worms2d.info/?title=Network_protocol_(Worms_2)&diff=25992Network protocol (Worms 2)2020-07-10T21:10:03Z<p>Pac-Man: /* See also */ Add link to server implementation</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
The Worms 2 servers host rooms in which users can meet to then connect to each other's PCs for playing games.<br />
<br />
== Official servers ==<br />
<br />
The following servers are hosted by Team17:<br />
<br />
{| class="wikitable"<br />
! width="170px" | Name !! IP address !! Port !! Notes<br />
|-<br />
| Worms2 Server (UK) || uk1.servers.worms2.com || 17000 || "The Team17 Server". Started to reject new connections in July 2020, shortly after some Worms enthusiasts played on it. Unclear whether the sudden activity downed it, it did not immediately break. The client will display "Unable to create new player..." when attempting to connect to it.<br />
|-<br />
| Worms2 Demo Server (UK) || uk1.servers.worms2.com || 17171 || Server for Worms 2 demo. Allows full versions to connect aswell. Did not go down in July 2020.<br />
|}<br />
<br />
== Server communication ==<br />
<br />
The server hosting the user, room, and game lists communicates with packets in the following format:<br />
<br />
=== Packet format ===<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Name !! Description<br />
|-<br />
| 0 || uint32 || 4 || Code || Determines the type of packet. Known packets are listed [[#Packet contents|below]].<br />
|-<br />
| 4 || uint32 || 4 || Flags || A bitset determining which of the following fields will be available.<br />
|-<br />
| ? || uint32 || 4 || Value 0 || If bit 0 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 1 || If bit 1 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 2 || If bit 2 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 3 || If bit 3 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 4 || If bit 4 is set in '''Flags'''. Never used other than client-side?<br />
|-<br />
| ? || uint32 || 4 || Value 10 || If bit 10 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Data Length || If bit 5 is set in '''Flags'''.<br />
|-<br />
| ? || char[DataLength] || Data Length || Data || If bit 5 is set in '''Flags''', stores Windows-1251 encoded text like an IP string or full chat message.<br />
|-<br />
| ? || uint32 || 4 || Error || If bit 7 is set in '''Flags'''. Returns a Windows error code from the server, like E_FAIL for when the name of a room to create contains a bad word.<br />
|-<br />
| ? || char[20] || 20 || Name || If bit 8 is set in '''Flags''', stores a Windows-1251 encoded session name. Unused bytes are 0.<br />
|-<br />
| ? || [[#Session info|Session info]] || 50 || Session || If bit 9 is set in '''Flags'''. Unused bytes are 0.<br />
|}<br />
<br />
==== Session info ====<br />
<br />
Several packets identify a user, room, or game with the '''Name''' and '''Session''' fields. The latter provides the following information:<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Value<br />
|-<br />
| 0 || uint32 || 4 || Always 0x17171717<br />
|-<br />
| 4 || uint32 || 4 || Always 0x02010101<br />
|-<br />
| 8 || uint8 || 1 || [[#Nation|Nation / Flag]]<br />
|-<br />
| 9 || uint8 || 1 || Game version, always 49<br />
|-<br />
| 10 || uint8 || 1 || [[#Game release|Game release]] (same as '''Game version''', 50 if CD check failed)<br />
|-<br />
| 11 || uint8 || 1 || Type (1=room, 4=game, 5=user)<br />
|-<br />
| 12 || uint8 || 1 || Access (1=public, 2=protected)<br />
|-<br />
| 13 || uint8 || 1 || Always 1<br />
|-<br />
| 14 || uint8 || 1 || Always 0<br />
|-<br />
| 15 || gap || 35 || Unused, all 0.<br />
|}<br />
<br />
Passing other or invalid combinations (protected users and rooms do not exist, only passworded games) will display a French flag with the default state or a question mark in the UI.<br />
<br />
The Worms 2 1.0.1.1 Demo uses significantly different values compared to the full version 1.0.1.5 patch, causing said question marks to appear. However, interactions with full version users still work.<br />
<br />
===== Nation / Flag =====<br />
<br />
Determines which flag is displayed with the user, room, or game. Two flags are custom (Skull and Team17) and are not normally selectable. [[Des patch]] can unlock the selection of them, and adds another entry for an "invalid" country code, creating an empty flag.<br />
<br />
{| class="wikitable sortable mw-collapsible mw-collapsed"<br />
! Value !! Flag<br />
|-<br />
| 1 || United Kingdom<br />
|-<br />
| 2 || Argentinia<br />
|-<br />
| 3 || Australia<br />
|-<br />
| 4 || Austria<br />
|-<br />
| 5 || Beglium<br />
|-<br />
| 6 || Brazil<br />
|-<br />
| 7 || Canada<br />
|-<br />
| 8 || Croatia<br />
|-<br />
| 9 || Bosnia and Herzegovina (old flag)<br />
|-<br />
| 10 || Cyprus<br />
|-<br />
| 11 || Czech Republic<br />
|-<br />
| 12 || Denmark<br />
|-<br />
| 13 || Finland<br />
|-<br />
| 14 || France<br />
|-<br />
| 15 || Georgia<br />
|-<br />
| 16 || Germany<br />
|-<br />
| 17 || Greece<br />
|-<br />
| 18 || Hong Kong SAR<br />
|-<br />
| 19 || Hungary<br />
|-<br />
| 20 || Iceland<br />
|-<br />
| 21 || India<br />
|-<br />
| 22 || Indonesia<br />
|-<br />
| 23 || Iran<br />
|-<br />
| 24 || Iraq<br />
|-<br />
| 25 || Ireland<br />
|-<br />
| 26 || Israel<br />
|-<br />
| 27 || Italy<br />
|-<br />
| 28 || Japan<br />
|-<br />
| 29 || Liechtenstein<br />
|-<br />
| 30 || Luxembourg<br />
|-<br />
| 31 || Malaysia<br />
|-<br />
| 32 || Malta<br />
|-<br />
| 33 || Mexico<br />
|-<br />
| 34 || Morocco<br />
|-<br />
| 35 || Netherlands<br />
|-<br />
| 36 || New Zealand<br />
|-<br />
| 37 || Norway<br />
|-<br />
| 38 || Poland<br />
|-<br />
| 39 || Portugal<br />
|-<br />
| 40 || Puerto Rico<br />
|-<br />
| 41 || Romania<br />
|-<br />
| 42 || Russian Federation<br />
|-<br />
| 43 || Singapore<br />
|-<br />
| 44 || South Africa<br />
|-<br />
| 45 || Spain<br />
|-<br />
| 46 || Sweden<br />
|-<br />
| 47 || Switzerland<br />
|-<br />
| 48 || Turkey<br />
|-<br />
| 49 || United States<br />
|-<br />
| 50 || Skull image<br />
|-<br />
| 51 || Team17 logo<br />
|}<br />
<br />
===== Game release =====<br />
<br />
Becomes 50 if CD detection failed. The CD detection consists of the following tests:<br />
* Find CD drive, where drives A: and B: are ignored - a found drive letter is stored in the registry under HKCU\SOFTWARE\Team17SoftwareLTD\Worms2\CD. (error 2 otherwise)<br />
* Check the CD being "Worms 2" or "WORMS2". (error 1 otherwise)<br />
* Check if the CD has no free space to ensure it being a CD-ROM. (error 3 otherwise)<br />
* Check if the CD stores an "autorun.inf" file. (error 4 otherwise)<br />
<br />
=== Packet contents ===<br />
<br />
As specified above, the '''Code''' of a packet determines the '''Action''' to take on either the server or client side and in effect which fields are used. Some codes are reused for multiple occassions, and some are unused in the 1.0.1.5 patch.<br />
<br />
Client query packets are also used for server notices, represented by the '''Type''' column in the following table:<br />
* Query: A client query to execute an action on the server, always getting a reply (even codes only).<br />
* Reply: A server reply to a client query, always reporting back an '''Error''' code, 0 for success (odd codes only).<br />
* Notice: Same as query, but coming as an out-of-bound server packet to update the state on the client, like when another user joins or creates a game.<br />
<br />
Note that the same ID counter is incremented for users (UID), rooms (RID), and games (GID) - if a user logs in with UID 0x1000 and immediately creates a room, the RID will be 0x1001. The counter should also start at a high enough value (0x1000 seems to work fine) to not cause duplicate chat messages appearing client-side, apparently because it is also reused as an index in some packets.<br />
<br />
{| class="wikitable sortable"<br />
! Code !! Action !! Type !! Value 0 !! Value 1 !! Value 2 !! Value 3 !! Value 4 !! Value 10 !! Data !! Name / Session<br />
|- style="background:#FFF"<br />
| 50 || ''not used'' || Query || || || || || ? || || ||<br />
|- style="background:#FFF"<br />
| 51 || ''not used'' || Reply || || || || || ? || || ||<br />
|- style="background:#FFFFCD"<br />
| 200 || List Rooms || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFFF"<br />
| 300 || ''not used'' || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 350 || List Item || Reply || || UID / RID / GID || || || || || user / creator / host IP || user / room / game<br />
|- style="background:#FFFFCD"<br />
| 351 || List End || Reply || || || || || || || ||<br />
|- style="background:#FFFFCD"<br />
| 400 || List Users || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 500 || List Games || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Query || || 0 || || || 0 || || || local user<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Notice || || remote UID || || || 0 || || || remote user<br />
|- style="background:#FFE6CD"<br />
| 601 || Login || Reply || || local UID || || || || || ||<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Query || || 0 || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Notice || || new RID || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 701 || Create Room || Reply || || new RID || || || || || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Query || || || joined RID / GID || || || local UID || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Notice || || || joined RID / GID || || || remote UID || ||<br />
|- style="background:#FFCDEF"<br />
| 801 || Join Room / Game || Reply || || || || || || || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Query || || || left RID / GID || || || local UID || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Notice || || || left RID / GID || || || remote UID || ||<br />
|- style="background:#EFCDFF"<br />
| 901 || Leave Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Query<ref name=NotUsed>Only ever sent as a notice by the server, clients disconnect without any query and awaited reply.</ref> || || || || || || local UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Notice || || || || || || remote UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1001 || Disconnect User || Reply<ref name=NotUsed/> || || || || || || || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Query || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Notice || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1101 || Close Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Query<ref name=BadIP>Since the host reports its incorrectly detected NAT IP here, [[Worms 2 Memory Changer]] has to be used to inject the actual IP address into Worms 2 before creating a room.</ref> || || 0 || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Notice || || GID || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1201 || Create Game || Reply || || GID || || || || || ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Query || local UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Notice || remote UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1301 || Room Chat || Reply<ref name=ReturnsEFail>Original server always reports E_FAIL in error code, even though messages were sent.</ref> || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1320 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1321 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1322 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1323 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1324 || ''not used'' || Query || ? || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1325 || ''not used'' || Reply || || || || || || || ? ||<br />
|- style="background:#CDFFCD"<br />
| 1326 || Connect Game || Query || GID || || || || || || ||<br />
|- style="background:#CDFFCD"<br />
| 1327 || Connect Game || Reply || || || || || || || host IP ||<br />
|}<br />
<references /><br />
<br />
== Game room communication ==<br />
<br />
The players are connected via P2P using DirectPlay. This means the ports 47624 (for the lobby connection itself) and 2300 to 2400 (for each player connection) should be forwarded in any router. The fact that each player is connected to another means that the host can leave the game at any time, the remaining players can continue playing without dropping, unlike in [[Worms Armageddon]] or [[Worms World Party]].<br />
<br />
== See also ==<br />
<br />
* [[User:Pac-Man/Worms_2_network_samples|Selected sample logs]]<br />
* [https://gitlab.com/Syroot/Worms/-/blob/master/src/tool/Syroot.Worms.Worms2.GameServer/Server.cs Simple C# server implementation] in the Syroot.Worms repository</div>Pac-Manhttps://worms2d.info/?title=Network_protocol_(Worms_2)&diff=25991Network protocol (Worms 2)2020-07-10T21:00:00Z<p>Pac-Man: /* Packet contents */ Fix fields in Create / Connect Game packets</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
The Worms 2 servers host rooms in which users can meet to then connect to each other's PCs for playing games.<br />
<br />
== Official servers ==<br />
<br />
The following servers are hosted by Team17:<br />
<br />
{| class="wikitable"<br />
! width="170px" | Name !! IP address !! Port !! Notes<br />
|-<br />
| Worms2 Server (UK) || uk1.servers.worms2.com || 17000 || "The Team17 Server". Started to reject new connections in July 2020, shortly after some Worms enthusiasts played on it. Unclear whether the sudden activity downed it, it did not immediately break. The client will display "Unable to create new player..." when attempting to connect to it.<br />
|-<br />
| Worms2 Demo Server (UK) || uk1.servers.worms2.com || 17171 || Server for Worms 2 demo. Allows full versions to connect aswell. Did not go down in July 2020.<br />
|}<br />
<br />
== Server communication ==<br />
<br />
The server hosting the user, room, and game lists communicates with packets in the following format:<br />
<br />
=== Packet format ===<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Name !! Description<br />
|-<br />
| 0 || uint32 || 4 || Code || Determines the type of packet. Known packets are listed [[#Packet contents|below]].<br />
|-<br />
| 4 || uint32 || 4 || Flags || A bitset determining which of the following fields will be available.<br />
|-<br />
| ? || uint32 || 4 || Value 0 || If bit 0 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 1 || If bit 1 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 2 || If bit 2 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 3 || If bit 3 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 4 || If bit 4 is set in '''Flags'''. Never used other than client-side?<br />
|-<br />
| ? || uint32 || 4 || Value 10 || If bit 10 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Data Length || If bit 5 is set in '''Flags'''.<br />
|-<br />
| ? || char[DataLength] || Data Length || Data || If bit 5 is set in '''Flags''', stores Windows-1251 encoded text like an IP string or full chat message.<br />
|-<br />
| ? || uint32 || 4 || Error || If bit 7 is set in '''Flags'''. Returns a Windows error code from the server, like E_FAIL for when the name of a room to create contains a bad word.<br />
|-<br />
| ? || char[20] || 20 || Name || If bit 8 is set in '''Flags''', stores a Windows-1251 encoded session name. Unused bytes are 0.<br />
|-<br />
| ? || [[#Session info|Session info]] || 50 || Session || If bit 9 is set in '''Flags'''. Unused bytes are 0.<br />
|}<br />
<br />
==== Session info ====<br />
<br />
Several packets identify a user, room, or game with the '''Name''' and '''Session''' fields. The latter provides the following information:<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Value<br />
|-<br />
| 0 || uint32 || 4 || Always 0x17171717<br />
|-<br />
| 4 || uint32 || 4 || Always 0x02010101<br />
|-<br />
| 8 || uint8 || 1 || [[#Nation|Nation / Flag]]<br />
|-<br />
| 9 || uint8 || 1 || Game version, always 49<br />
|-<br />
| 10 || uint8 || 1 || [[#Game release|Game release]] (same as '''Game version''', 50 if CD check failed)<br />
|-<br />
| 11 || uint8 || 1 || Type (1=room, 4=game, 5=user)<br />
|-<br />
| 12 || uint8 || 1 || Access (1=public, 2=protected)<br />
|-<br />
| 13 || uint8 || 1 || Always 1<br />
|-<br />
| 14 || uint8 || 1 || Always 0<br />
|-<br />
| 15 || gap || 35 || Unused, all 0.<br />
|}<br />
<br />
Passing other or invalid combinations (protected users and rooms do not exist, only passworded games) will display a French flag with the default state or a question mark in the UI.<br />
<br />
The Worms 2 1.0.1.1 Demo uses significantly different values compared to the full version 1.0.1.5 patch, causing said question marks to appear. However, interactions with full version users still work.<br />
<br />
===== Nation / Flag =====<br />
<br />
Determines which flag is displayed with the user, room, or game. Two flags are custom (Skull and Team17) and are not normally selectable. [[Des patch]] can unlock the selection of them, and adds another entry for an "invalid" country code, creating an empty flag.<br />
<br />
{| class="wikitable sortable mw-collapsible mw-collapsed"<br />
! Value !! Flag<br />
|-<br />
| 1 || United Kingdom<br />
|-<br />
| 2 || Argentinia<br />
|-<br />
| 3 || Australia<br />
|-<br />
| 4 || Austria<br />
|-<br />
| 5 || Beglium<br />
|-<br />
| 6 || Brazil<br />
|-<br />
| 7 || Canada<br />
|-<br />
| 8 || Croatia<br />
|-<br />
| 9 || Bosnia and Herzegovina (old flag)<br />
|-<br />
| 10 || Cyprus<br />
|-<br />
| 11 || Czech Republic<br />
|-<br />
| 12 || Denmark<br />
|-<br />
| 13 || Finland<br />
|-<br />
| 14 || France<br />
|-<br />
| 15 || Georgia<br />
|-<br />
| 16 || Germany<br />
|-<br />
| 17 || Greece<br />
|-<br />
| 18 || Hong Kong SAR<br />
|-<br />
| 19 || Hungary<br />
|-<br />
| 20 || Iceland<br />
|-<br />
| 21 || India<br />
|-<br />
| 22 || Indonesia<br />
|-<br />
| 23 || Iran<br />
|-<br />
| 24 || Iraq<br />
|-<br />
| 25 || Ireland<br />
|-<br />
| 26 || Israel<br />
|-<br />
| 27 || Italy<br />
|-<br />
| 28 || Japan<br />
|-<br />
| 29 || Liechtenstein<br />
|-<br />
| 30 || Luxembourg<br />
|-<br />
| 31 || Malaysia<br />
|-<br />
| 32 || Malta<br />
|-<br />
| 33 || Mexico<br />
|-<br />
| 34 || Morocco<br />
|-<br />
| 35 || Netherlands<br />
|-<br />
| 36 || New Zealand<br />
|-<br />
| 37 || Norway<br />
|-<br />
| 38 || Poland<br />
|-<br />
| 39 || Portugal<br />
|-<br />
| 40 || Puerto Rico<br />
|-<br />
| 41 || Romania<br />
|-<br />
| 42 || Russian Federation<br />
|-<br />
| 43 || Singapore<br />
|-<br />
| 44 || South Africa<br />
|-<br />
| 45 || Spain<br />
|-<br />
| 46 || Sweden<br />
|-<br />
| 47 || Switzerland<br />
|-<br />
| 48 || Turkey<br />
|-<br />
| 49 || United States<br />
|-<br />
| 50 || Skull image<br />
|-<br />
| 51 || Team17 logo<br />
|}<br />
<br />
===== Game release =====<br />
<br />
Becomes 50 if CD detection failed. The CD detection consists of the following tests:<br />
* Find CD drive, where drives A: and B: are ignored - a found drive letter is stored in the registry under HKCU\SOFTWARE\Team17SoftwareLTD\Worms2\CD. (error 2 otherwise)<br />
* Check the CD being "Worms 2" or "WORMS2". (error 1 otherwise)<br />
* Check if the CD has no free space to ensure it being a CD-ROM. (error 3 otherwise)<br />
* Check if the CD stores an "autorun.inf" file. (error 4 otherwise)<br />
<br />
=== Packet contents ===<br />
<br />
As specified above, the '''Code''' of a packet determines the '''Action''' to take on either the server or client side and in effect which fields are used. Some codes are reused for multiple occassions, and some are unused in the 1.0.1.5 patch.<br />
<br />
Client query packets are also used for server notices, represented by the '''Type''' column in the following table:<br />
* Query: A client query to execute an action on the server, always getting a reply (even codes only).<br />
* Reply: A server reply to a client query, always reporting back an '''Error''' code, 0 for success (odd codes only).<br />
* Notice: Same as query, but coming as an out-of-bound server packet to update the state on the client, like when another user joins or creates a game.<br />
<br />
Note that the same ID counter is incremented for users (UID), rooms (RID), and games (GID) - if a user logs in with UID 0x1000 and immediately creates a room, the RID will be 0x1001. The counter should also start at a high enough value (0x1000 seems to work fine) to not cause duplicate chat messages appearing client-side, apparently because it is also reused as an index in some packets.<br />
<br />
{| class="wikitable sortable"<br />
! Code !! Action !! Type !! Value 0 !! Value 1 !! Value 2 !! Value 3 !! Value 4 !! Value 10 !! Data !! Name / Session<br />
|- style="background:#FFF"<br />
| 50 || ''not used'' || Query || || || || || ? || || ||<br />
|- style="background:#FFF"<br />
| 51 || ''not used'' || Reply || || || || || ? || || ||<br />
|- style="background:#FFFFCD"<br />
| 200 || List Rooms || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFFF"<br />
| 300 || ''not used'' || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 350 || List Item || Reply || || UID / RID / GID || || || || || user / creator / host IP || user / room / game<br />
|- style="background:#FFFFCD"<br />
| 351 || List End || Reply || || || || || || || ||<br />
|- style="background:#FFFFCD"<br />
| 400 || List Users || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 500 || List Games || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Query || || 0 || || || 0 || || || local user<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Notice || || remote UID || || || 0 || || || remote user<br />
|- style="background:#FFE6CD"<br />
| 601 || Login || Reply || || local UID || || || || || ||<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Query || || 0 || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Notice || || new RID || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 701 || Create Room || Reply || || new RID || || || || || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Query || || || joined RID / GID || || || local UID || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Notice || || || joined RID / GID || || || remote UID || ||<br />
|- style="background:#FFCDEF"<br />
| 801 || Join Room / Game || Reply || || || || || || || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Query || || || left RID / GID || || || local UID || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Notice || || || left RID / GID || || || remote UID || ||<br />
|- style="background:#EFCDFF"<br />
| 901 || Leave Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Query<ref name=NotUsed>Only ever sent as a notice by the server, clients disconnect without any query and awaited reply.</ref> || || || || || || local UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Notice || || || || || || remote UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1001 || Disconnect User || Reply<ref name=NotUsed/> || || || || || || || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Query || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Notice || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1101 || Close Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Query<ref name=BadIP>Since the host reports its incorrectly detected NAT IP here, [[Worms 2 Memory Changer]] has to be used to inject the actual IP address into Worms 2 before creating a room.</ref> || || 0 || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Notice || || GID || RID || || 0x800 || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1201 || Create Game || Reply || || GID || || || || || ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Query || local UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Notice || remote UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1301 || Room Chat || Reply<ref name=ReturnsEFail>Original server always reports E_FAIL in error code, even though messages were sent.</ref> || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1320 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1321 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1322 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1323 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1324 || ''not used'' || Query || ? || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1325 || ''not used'' || Reply || || || || || || || ? ||<br />
|- style="background:#CDFFCD"<br />
| 1326 || Connect Game || Query || GID || || || || || || ||<br />
|- style="background:#CDFFCD"<br />
| 1327 || Connect Game || Reply || || || || || || || host IP ||<br />
|}<br />
<references /><br />
<br />
== Game room communication ==<br />
<br />
The players are connected via P2P using DirectPlay. This means the ports 47624 (for the lobby connection itself) and 2300 to 2400 (for each player connection) should be forwarded in any router. The fact that each player is connected to another means that the host can leave the game at any time, the remaining players can continue playing without dropping, unlike in [[Worms Armageddon]] or [[Worms World Party]].<br />
<br />
== See also ==<br />
<br />
* [[User:Pac-Man/Worms_2_network_samples|Selected sample logs]]</div>Pac-Manhttps://worms2d.info/?title=Network_protocol_(Worms_2)&diff=25990Network protocol (Worms 2)2020-07-10T18:19:23Z<p>Pac-Man: /* Packet contents */ List Users / Games sends RID, not UID, Leave / Close Room is also used for games</p>
<hr />
<div>{{ParentArticle|[[Game logic]]}}<br />
The Worms 2 servers host rooms in which users can meet to then connect to each other's PCs for playing games.<br />
<br />
== Official servers ==<br />
<br />
The following servers are hosted by Team17:<br />
<br />
{| class="wikitable"<br />
! width="170px" | Name !! IP address !! Port !! Notes<br />
|-<br />
| Worms2 Server (UK) || uk1.servers.worms2.com || 17000 || "The Team17 Server". Started to reject new connections in July 2020, shortly after some Worms enthusiasts played on it. Unclear whether the sudden activity downed it, it did not immediately break. The client will display "Unable to create new player..." when attempting to connect to it.<br />
|-<br />
| Worms2 Demo Server (UK) || uk1.servers.worms2.com || 17171 || Server for Worms 2 demo. Allows full versions to connect aswell. Did not go down in July 2020.<br />
|}<br />
<br />
== Server communication ==<br />
<br />
The server hosting the user, room, and game lists communicates with packets in the following format:<br />
<br />
=== Packet format ===<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Name !! Description<br />
|-<br />
| 0 || uint32 || 4 || Code || Determines the type of packet. Known packets are listed [[#Packet contents|below]].<br />
|-<br />
| 4 || uint32 || 4 || Flags || A bitset determining which of the following fields will be available.<br />
|-<br />
| ? || uint32 || 4 || Value 0 || If bit 0 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 1 || If bit 1 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 2 || If bit 2 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 3 || If bit 3 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Value 4 || If bit 4 is set in '''Flags'''. Never used other than client-side?<br />
|-<br />
| ? || uint32 || 4 || Value 10 || If bit 10 is set in '''Flags'''.<br />
|-<br />
| ? || uint32 || 4 || Data Length || If bit 5 is set in '''Flags'''.<br />
|-<br />
| ? || char[DataLength] || Data Length || Data || If bit 5 is set in '''Flags''', stores Windows-1251 encoded text like an IP string or full chat message.<br />
|-<br />
| ? || uint32 || 4 || Error || If bit 7 is set in '''Flags'''. Returns a Windows error code from the server, like E_FAIL for when the name of a room to create contains a bad word.<br />
|-<br />
| ? || char[20] || 20 || Name || If bit 8 is set in '''Flags''', stores a Windows-1251 encoded session name. Unused bytes are 0.<br />
|-<br />
| ? || [[#Session info|Session info]] || 50 || Session || If bit 9 is set in '''Flags'''. Unused bytes are 0.<br />
|}<br />
<br />
==== Session info ====<br />
<br />
Several packets identify a user, room, or game with the '''Name''' and '''Session''' fields. The latter provides the following information:<br />
<br />
{| class="wikitable"<br />
! Offset !! Type !! Size !! Value<br />
|-<br />
| 0 || uint32 || 4 || Always 0x17171717<br />
|-<br />
| 4 || uint32 || 4 || Always 0x02010101<br />
|-<br />
| 8 || uint8 || 1 || [[#Nation|Nation / Flag]]<br />
|-<br />
| 9 || uint8 || 1 || Game version, always 49<br />
|-<br />
| 10 || uint8 || 1 || [[#Game release|Game release]] (same as '''Game version''', 50 if CD check failed)<br />
|-<br />
| 11 || uint8 || 1 || Type (1=room, 4=game, 5=user)<br />
|-<br />
| 12 || uint8 || 1 || Access (1=public, 2=protected)<br />
|-<br />
| 13 || uint8 || 1 || Always 1<br />
|-<br />
| 14 || uint8 || 1 || Always 0<br />
|-<br />
| 15 || gap || 35 || Unused, all 0.<br />
|}<br />
<br />
Passing other or invalid combinations (protected users and rooms do not exist, only passworded games) will display a French flag with the default state or a question mark in the UI.<br />
<br />
The Worms 2 1.0.1.1 Demo uses significantly different values compared to the full version 1.0.1.5 patch, causing said question marks to appear. However, interactions with full version users still work.<br />
<br />
===== Nation / Flag =====<br />
<br />
Determines which flag is displayed with the user, room, or game. Two flags are custom (Skull and Team17) and are not normally selectable. [[Des patch]] can unlock the selection of them, and adds another entry for an "invalid" country code, creating an empty flag.<br />
<br />
{| class="wikitable sortable mw-collapsible mw-collapsed"<br />
! Value !! Flag<br />
|-<br />
| 1 || United Kingdom<br />
|-<br />
| 2 || Argentinia<br />
|-<br />
| 3 || Australia<br />
|-<br />
| 4 || Austria<br />
|-<br />
| 5 || Beglium<br />
|-<br />
| 6 || Brazil<br />
|-<br />
| 7 || Canada<br />
|-<br />
| 8 || Croatia<br />
|-<br />
| 9 || Bosnia and Herzegovina (old flag)<br />
|-<br />
| 10 || Cyprus<br />
|-<br />
| 11 || Czech Republic<br />
|-<br />
| 12 || Denmark<br />
|-<br />
| 13 || Finland<br />
|-<br />
| 14 || France<br />
|-<br />
| 15 || Georgia<br />
|-<br />
| 16 || Germany<br />
|-<br />
| 17 || Greece<br />
|-<br />
| 18 || Hong Kong SAR<br />
|-<br />
| 19 || Hungary<br />
|-<br />
| 20 || Iceland<br />
|-<br />
| 21 || India<br />
|-<br />
| 22 || Indonesia<br />
|-<br />
| 23 || Iran<br />
|-<br />
| 24 || Iraq<br />
|-<br />
| 25 || Ireland<br />
|-<br />
| 26 || Israel<br />
|-<br />
| 27 || Italy<br />
|-<br />
| 28 || Japan<br />
|-<br />
| 29 || Liechtenstein<br />
|-<br />
| 30 || Luxembourg<br />
|-<br />
| 31 || Malaysia<br />
|-<br />
| 32 || Malta<br />
|-<br />
| 33 || Mexico<br />
|-<br />
| 34 || Morocco<br />
|-<br />
| 35 || Netherlands<br />
|-<br />
| 36 || New Zealand<br />
|-<br />
| 37 || Norway<br />
|-<br />
| 38 || Poland<br />
|-<br />
| 39 || Portugal<br />
|-<br />
| 40 || Puerto Rico<br />
|-<br />
| 41 || Romania<br />
|-<br />
| 42 || Russian Federation<br />
|-<br />
| 43 || Singapore<br />
|-<br />
| 44 || South Africa<br />
|-<br />
| 45 || Spain<br />
|-<br />
| 46 || Sweden<br />
|-<br />
| 47 || Switzerland<br />
|-<br />
| 48 || Turkey<br />
|-<br />
| 49 || United States<br />
|-<br />
| 50 || Skull image<br />
|-<br />
| 51 || Team17 logo<br />
|}<br />
<br />
===== Game release =====<br />
<br />
Becomes 50 if CD detection failed. The CD detection consists of the following tests:<br />
* Find CD drive, where drives A: and B: are ignored - a found drive letter is stored in the registry under HKCU\SOFTWARE\Team17SoftwareLTD\Worms2\CD. (error 2 otherwise)<br />
* Check the CD being "Worms 2" or "WORMS2". (error 1 otherwise)<br />
* Check if the CD has no free space to ensure it being a CD-ROM. (error 3 otherwise)<br />
* Check if the CD stores an "autorun.inf" file. (error 4 otherwise)<br />
<br />
=== Packet contents ===<br />
<br />
As specified above, the '''Code''' of a packet determines the '''Action''' to take on either the server or client side and in effect which fields are used. Some codes are reused for multiple occassions, and some are unused in the 1.0.1.5 patch.<br />
<br />
Client query packets are also used for server notices, represented by the '''Type''' column in the following table:<br />
* Query: A client query to execute an action on the server, always getting a reply (even codes only).<br />
* Reply: A server reply to a client query, always reporting back an '''Error''' code, 0 for success (odd codes only).<br />
* Notice: Same as query, but coming as an out-of-bound server packet to update the state on the client, like when another user joins or creates a game.<br />
<br />
Note that the same ID counter is incremented for users (UID), rooms (RID), and games (GID) - if a user logs in with UID 0x1000 and immediately creates a room, the RID will be 0x1001. The counter should also start at a high enough value (0x1000 seems to work fine) to not cause duplicate chat messages appearing client-side, apparently because it is also reused as an index in some packets.<br />
<br />
{| class="wikitable sortable"<br />
! Code !! Action !! Type !! Value 0 !! Value 1 !! Value 2 !! Value 3 !! Value 4 !! Value 10 !! Data !! Name / Session<br />
|- style="background:#FFF"<br />
| 50 || ''not used'' || Query || || || || || ? || || ||<br />
|- style="background:#FFF"<br />
| 51 || ''not used'' || Reply || || || || || ? || || ||<br />
|- style="background:#FFFFCD"<br />
| 200 || List Rooms || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFFF"<br />
| 300 || ''not used'' || Query || || || || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 350 || List Item || Reply || || UID / RID / GID || || || || || user / creator / host IP || user / room / game<br />
|- style="background:#FFFFCD"<br />
| 351 || List End || Reply || || || || || || || ||<br />
|- style="background:#FFFFCD"<br />
| 400 || List Users || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFFFCD"<br />
| 500 || List Games || Query || || || RID || || 0 || || ||<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Query || || 0 || || || 0 || || || local user<br />
|- style="background:#FFE6CD"<br />
| 600 || Login || Notice || || remote UID || || || 0 || || || remote user<br />
|- style="background:#FFE6CD"<br />
| 601 || Login || Reply || || local UID || || || || || ||<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Query || || 0 || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 700 || Create Room || Notice || || new RID || || || 0 || || creator IP || room<br />
|- style="background:#FFCDCD"<br />
| 701 || Create Room || Reply || || new RID || || || || || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Query || || || joined RID / GID || || || local UID || ||<br />
|- style="background:#FFCDEF"<br />
| 800 || Join Room / Game || Notice || || || joined RID / GID || || || remote UID || ||<br />
|- style="background:#FFCDEF"<br />
| 801 || Join Room / Game || Reply || || || || || || || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Query || || || left RID / GID || || || local UID || ||<br />
|- style="background:#EFCDFF"<br />
| 900 || Leave Room / Game || Notice || || || left RID / GID || || || remote UID || ||<br />
|- style="background:#EFCDFF"<br />
| 901 || Leave Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Query<ref name=NotUsed>Only ever sent as a notice by the server, clients disconnect without any query and awaited reply.</ref> || || || || || || local UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1000 || Disconnect User || Notice || || || || || || remote UID || ||<br />
|- style="background:#CDCDFF"<br />
| 1001 || Disconnect User || Reply<ref name=NotUsed/> || || || || || || || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Query || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1100 || Close Room / Game || Notice || || || || || || RID / GID || ||<br />
|- style="background:#CDD6FF"<br />
| 1101 || Close Room / Game || Reply || || || || || || || ||<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Query<ref name=BadIP>Since the host reports its incorrectly detected NAT IP here, [[Worms 2 Memory Changer]] has to be used to inject the actual IP address into Worms 2 before creating a room.</ref> || || || RID || || GID? || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1200 || Create Game || Notice || || || RID || || GID? || || host IP || host<br />
|- style="background:#CDEFFF"<br />
| 1201 || Create Game || Reply || || GID || || || || || ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Query || local UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1300 || Room Chat || Notice || remote UID || || || receiver RID / UID || || || "GRP:[ UserName ] &nbsp;Message" / "PRV:[ UserName ] &nbsp;Message" ||<br />
|- style="background:#CDFFEF"<br />
| 1301 || Room Chat || Reply<ref name=ReturnsEFail>Original server always reports E_FAIL in error code, even though messages were sent.</ref> || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1320 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1321 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1322 || ''not used'' || Query || ? || || || || || || ? ||<br />
|- style="background:#FFFFFF"<br />
| 1323 || ''not used'' || Reply || || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1324 || ''not used'' || Query || ? || || || || || || ||<br />
|- style="background:#FFFFFF"<br />
| 1325 || ''not used'' || Reply || || || || || || || ? ||<br />
|- style="background:#CDFFCD"<br />
| 1326 || Connect Game || Query || GID || || || || || || ||<br />
|- style="background:#CDFFCD"<br />
| 1327 || Connect Game || Reply || || || || || || || host IP ||<br />
|}<br />
<references /><br />
<br />
== Game room communication ==<br />
<br />
The players are connected via P2P using DirectPlay. This means the ports 47624 (for the lobby connection itself) and 2300 to 2400 (for each player connection) should be forwarded in any router. The fact that each player is connected to another means that the host can leave the game at any time, the remaining players can continue playing without dropping, unlike in [[Worms Armageddon]] or [[Worms World Party]].<br />
<br />
== See also ==<br />
<br />
* [[User:Pac-Man/Worms_2_network_samples|Selected sample logs]]</div>Pac-Manhttps://worms2d.info/?title=User_talk:Lex&diff=25989User talk:Lex2020-07-10T17:26:10Z<p>Pac-Man: /* Textual format of dates */ Applied British date format to main game pages</p>
<hr />
<div>== Incorrect edit about team names ==<br />
<br />
Your [https://worms2d.info/?title=List_of_random_team_member_names&curid=5445&oldid=25957 edit] on [[List of random team member names]] is incorrect. Team names are picked from the exact same pool of names as worm names, there is only one name resource list in the game executables. If you have some team names not listed on that page, please let me know the name and game version, and I will search where it comes from.<br />
Also I think that names like "Snidel Fighter" and "Weener" having been removed is a very clear indication of removal of touchy names. And the duplicate removal is also very clear. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 23:53, 9 July 2020 (UTC)<br />
:Thanks for letting me know this! I didn't know the random team name button uses the same list. I tested your claim in all 3 games, and it's correct. I've edited the article to include that, and I plan to make redirects to make sure the page title is correct. About your other concern, I want us to always strive for a [[w:Wikipedia:Neutral_point_of_view|neutral point of view]] in every article, to the maximum available potential. I prefer readers to draw their own conclusions from the facts, and I prefer the facts to not be muddied by speculation, even if it seems obvious. If it's obvious to you, then it may also be obvious to the reader. I don't see the value in asserting an assumption without a source. Sure, if there's a Team17 post that explains why they removed particular names from the list, then that info can be included in the article. As players, we don't know the intentions without an official statement or an assumption. -[[User:Lex|Lex]] ([[User talk:Lex|talk]]) 00:14, 10 July 2020 (UTC)<br />
:: I agree on that, I then may revisit several other articles on this wiki in the future on which I remember to have seen a lot of speculation, and remove it. I always lend my writing style from other articles since I'm not sure which one is preferred, and am sure seeing speculative phrases as allowed comes from somwhere... :P - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 13:25, 10 July 2020 (UTC)<br />
:::I think it comes from my personal laziness since this wiki started. When it was just starting, I'd had this idea that I would write almost every article at first, and then I stopped shortly after I started. There aren't even articles for some of the most amazing websites in WA's history, such as WACL, CL2k, and WormsLeague. I regret how little effort I've put into this wiki compared to how much I'd imagined at the start, with it as a dumping ground for my bottled-up experience. Heck, there isn't even a [[Dice]] article, and that was one of my favorite schemes to play, and now someone's removed it from the list of schemes instead of filling it out. Such a shame. I appreciate the effort you've been putting in over the years. Thank you. -[[User:Lex|Lex]] ([[User talk:Lex|talk]]) 15:59, 10 July 2020 (UTC)<br />
<br />
== Textual format of dates ==<br />
<br />
Is there a preferred format for textual dates? You recently modified mine on [[Worms World Party Aqua]], I barely copied the style used in one of the dates on [[Worms Armageddon]] being "15 March, 2013". I updated the article again to use the other format used in majority on the same article, being "September 26, 2018". At least it no longer introduces yet another format. It should probably be fixed on the W:A page, and the info box may use a different format too. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 00:06, 10 July 2020 (UTC)<br />
:If we're using the same style as WA itself it should nominally be British English, at which point it should be "20 January 2020". I'm not sure anyone has seriously thought about date formats on this Wiki before though. --[[User:Muzer|Muzer]] ([[User talk:Muzer|talk]]) 00:18, 10 July 2020 (UTC)<br />
:I admit, I made my edit in haste without considering the broader implication of changing the date formats, just because I personally never use and rarely see that weird date format in my life outside this wiki. [[User:Muzer|Muzer]] has a great point here, and you do too! I agree that having a consistent date format among articles is best. I am not personally a fan of the "10 July 2020" date format that'll be used for this post, but since that's what this wiki has been using for all comment tags and as Muzer said, the game's from the UK, it's probably good to use it for now. If we want to change it later, we can change it all at once more easily if they're all in the same format anyway. -[[User:Lex|Lex]] ([[User talk:Lex|talk]]) 00:23, 10 July 2020 (UTC)<br />
:: Makes me wonder if there is a Template around somewhere to auto-change all formats later on. I'll check my articles about date formats and ensure they use the (weird to me aswell) "13 February, 2013" format. - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 13:25, 10 July 2020 (UTC)<br />
:::Without the comma, I think, [[User:Pac-Man|Pac-Man]]. --[[User:Muzer|Muzer]] ([[User talk:Muzer|talk]]) 14:59, 10 July 2020 (UTC)<br />
::::Okay, I applied that to the main game pages now, I hope I didn't miss anything, it's so hard to see, or I'm just old... - [[User:Pac-Man|Pac-Man]] ([[User talk:Pac-Man|talk]]) 17:26, 10 July 2020 (UTC)</div>Pac-Manhttps://worms2d.info/?title=Worms:_The_Director%27s_Cut&diff=25988Worms: The Director's Cut2020-07-10T17:25:06Z<p>Pac-Man: Use British date style as discussed on User talk:Lex#Textual format of dates</p>
<hr />
<div>{{ParentArticle|[[Worms Knowledge Base]]}}<br />
{| class="infobox" cellspacing="2" style="width: 21em; font-size: 90%; text-align: left;"<br />
! colspan="2" style="font-size: larger; text-align: center" | [[Image:WDC_icon.png|32px|Worms: The Directors Cut icon]]&nbsp;&nbsp;Worms: The Directors Cut<br />
|-<br />
|colspan="2" style="text-align: center;"|[[Image:Wormsdc_screenshot.png|250px|Worms The Directors Cut title screen]]<br />
|-<br />
|Developer:||[[Team17]]/[[Andy Davidson]]<br />
|-<br />
|Maintainer:||[[Andy Davidson]]<br />
|-<br />
|Publishers:||'''Ocean Software''' (1997)<br />'''Guildhall Leisure''' (1997)<br />
|-<br />
|Release year:||1997<br />
|-<br />
|Latest version:||1.05 / 17 October 1997<br />1.5 Alpha / 2 May 2018 ''(unreleased)''<br />
|- <br />
|Website:||''Defunct''<br />
|- <br />
!Update:||[http://dream17.abime.net/softography.php?id=34&s=downloads On Dream17]<br />
|}<br />
<br />
'''''Worms: The Directors Cut''''' (developed under a number of working titles of ''WormsAGA'', ''Worms+'', ''Worms 1.5'', ''Worms: Mad Cow Edition'', ''Worms '97'', and ''Worms: The Next Generation'', but most commonly shortened to '''''WormsDC''''') is a strategy game developed by UK-based company, [[Team17]]. It was the last game the company released for the Amiga home computer system, as the games market for the computer had begun to dry up by the time this game was released in 1997. Adding new elements and weapons to the ''Worms'' gameplay, this is generally considered to be the finest entry in the first generation of ''Worms'' games.<br />
<br />
Built largely around the game engine for the original Amiga version of ''Worms'', series creator Andy Davidson added a slew of new features and weapons to the game. Most of these weapons and features were carried over to later installments in the game save for one weapon, the [[Sheep-on-a-Rope]], and the enhanced customization features, which were severely parred down for future releases. Davidson produced this version of the game as a testing bed for new features, and to convince [[Team17]] to make improvements to ''[[Worms 2]]'' which, at the time, was simply going to be an updated version of the original game.<br />
<br />
On 1 June 2018, Andy Davidson posted a screenshot on his Instagram showing the ''WormsDC'' title screen and a new version number of 1.5 alpha and a build date of 2 May 2018. No release for this updated version has been announced as yet.<ref>[https://www.instagram.com/p/BjgLKTnFjxN/?taken-by=rockandrollmachine rockandrollmachine on Instagram] - retrieved June 1, 2018</ref><br />
<br />
__NOTOC__<br />
{{Game navbox|param3=First generation|box2=WDC_Customisation|box4=WDC_Emulation}}<br />
<br />
==References==<br />
{{Reflist}}</div>Pac-Manhttps://worms2d.info/?title=Worms&diff=25987Worms2020-07-10T17:23:49Z<p>Pac-Man: Use British date style as discussed on User talk:Lex#Textual format of dates</p>
<hr />
<div>{{ParentArticle|[[Worms Knowledge Base]]}}<br />
{{Languages|en|Worms|ru|Worms/ru}}<br />
{| class="infobox" cellspacing="2" style="width: 21em; font-size: 90%; text-align: left;"<br />
! colspan="2" style="font-size: larger; text-align: center" | [[Image:Icon_worms.gif|32px|Worms icon (Amiga)]]&nbsp;&nbsp;Worms<br />
|-<br />
|colspan="2" style="text-align: center;"|[[Image:Screenshot_wormsamiga.png|250px|Worms title screen on Amiga]]<br />
|-<br />
|Developer:||[[Team17]]/[[Andy Davidson]]<br />
|-<br />
|Maintainer:||None<br />
|-<br />
|Publishers:||'''Ocean Software''' (1995-'96, all platforms)<br />'''The Hit Squad''' (1996, Amiga)<br />'''Guildhall Leisure''' (1997, Amiga)<br />'''EuroPress''' (?)<br />'''MicroProse''' (1996-'97)<br />'''Sold-Out Software''' (2002-'08)<br />'''Team17''' (2011-present, PC digital)<br />
|-<br />
|Release date:||30 October 1995<br />
|-<br />
|Latest version:||?<br />
|- <br />
|Website:||[http://store.steampowered.com/app/70640/]<br />
|- <br />
!Buy:||[http://store.steampowered.com/app/70640/ Steam]<br />[http://www.gog.com/en/gamecard/worms_united GoG.com]<br />
|}<br />
'''''Worms''''' is a strategy game developed by UK-based company, [[Team17]]. It was the company's first release across multiple formats, having been released for practically every prevalent platform at the time.<br />
<br />
In 1996 an expansion called ''[[Worms Reinforcements]]'' was released for the PC MS-DOS version of the game, and they were later released together on one CD as ''[[Worms United|Worms and Reinforcements: United]]'', also referred to simple as ''Worms United''.<br />
<br />
On 19 October 2011, the MS-DOS CD-ROM version of ''Worms'' was released on [[w:Steam_(software)|Steam]]. In January 2012 the game was made available on [[w:Good_Old_Games|GOG.com]]. Both versions are based on ''Worms United'' (though only the GOG.com release is listed as such) and include an emulator to allow the game to run on modern Windows-based PCs.<br />
<br />
<br />
__NOTOC__<br />
== Releases ==<br />
=== Only Worms ===<br />
* [[European Ocean release (Worms)|European Ocean release]]<br />
* [[American Ocean release (Worms)|American Ocean release]]<br />
* [[The Hit Squad Amiga budget release]]<br />
* [[Sold-Out Software release (Worms)|Sold-Out Software release]]<br />
<br />
=== Compilations including Worms ===<br />
* [[Civilization + Worms ]]<br />
* [[Total Animals]]<br />
* [[Worms and Reinforcements: United]] (a.k.a. "Worms United")<br />
* [[Worms Crazy Golf Fun Pack]] [http://store.steampowered.com/sub/11913/]<br />
* [[Steam release (Worms)|Steam release]]<br />
* [[GOG.com release (Worms)|GOG.com release]]<br />
<br />
== The game technology ==<br />
* [[Game logic]]<br />
* [[File formats]]<br />
<br />
== Expansions ==<br />
* [[Oh Yes... More Worms!]] (Amiga) - ''Unofficial expansion''<br />
* [[Worms Reinforcements]] (PC MS-DOS)<br />
<br />
== 3rd-party programs ==<br />
<br />
=== Misc ===<br />
* [[WormsShell]] (Amiga version)<br />
<br />
== Websites ==<br />
* [[Team17 forums]]<br />
* [[Dream17]]<br />
<br />
== External links ==<br />
{{Wormopedia|Total_Wormage!|Total Wormage!}}</div>Pac-Manhttps://worms2d.info/?title=Worms_World_Party&diff=25986Worms World Party2020-07-10T17:23:11Z<p>Pac-Man: Use British date style as discussed on User talk:Lex#Textual format of dates</p>
<hr />
<div>{{ParentArticle|[[Worms Knowledge Base]]}}<br />
{{Languages|en|Worms World Party|fr|Worms World Party/fr|de|Worms World Party/de}}<br />
{| class="infobox" cellspacing="2" style="width: 21em; font-size: 90%; text-align: left;"<br />
! colspan="2" style="font-size: larger; text-align: center" | [[Image:WWP_icon.png|32px|Worms World Party icon]]&nbsp;&nbsp;Worms World Party<br />
|-<br />
|colspan="2" style="text-align: center;"|[[Image:WWP_screenshot.png|250px|Worms World Party's title screen]]<br />
|-<br />
|Developer:||[[Team17]]<br />
|-<br />
|Publishers:||'''Titus/Virgin Interactive''' (2001 - PC, Dreamcast)<br />'''Sold-Out Software''' (2005-'09)<br />'''Green Pepper''' (?)<br />'''Ubisoft''' (2001 - PSone / 2002, PC)<br />'''TryMedia''' (2002-'04, PC digital)<br />'''CD Projekt''' (?)<br />'''Team17''' (2015, PC digital)<br />
|-<br />
|Release dates:||6 April 2001 (Europe)<br />30 May 2001 (North America)<br />
|-<br />
|Latest version:||1.01 (vanilla) - released on 30 May 2001<br>1.134 (Remastered) - released on 20 October 2015<br />
|- <br />
|Website:||http://wwp.team17.com/<br />
|- <br />
!Buy:||From [https://www.gog.com/game/worms_world_party_remastered GOG], [https://store.steampowered.com/app/270910 Steam]<br />
|-<br />
|Update:||[http://wwp.team17.com/main.html?page=comm&area=_down_patc On Team17's WWP site] (CD edition only)<br />
|}<br />
<br />
'''''Worms World Party''''' is a strategy game developed by UK-based company, [[Team17]]. Based on [[Worms Armageddon]], it was originally designed for the Sega Dreamcast console to make use of its online capabilities, but was also released for the PC with new missions, a mission editor, and some extra customisability.<br />
<br />
WWP has been released for more systems than any other second-generation Worms title, and is the only Worms game available for the Game Boy Advance, Gizmondo, and NGage platforms.<br />
<br />
On 10 June 2015, Team17 [https://twitter.com/WormsTeam17/status/608695396366336000 announced] [[Worms World Party Remastered]], which features Steam achievements and various new features such as controller support and support for high resolutions in-game. The updated game was released on 16 July 2015 in GOG and Steam online distribution services.<br />
<br />
__NOTOC__<br />
{{Game navbox|box6=Wormopaedia}}<br />
<br />
== External links ==<br />
<br />
* [http://en.wikipedia.org/wiki/Worms_World_Party Worms World Party on Wikipedia]</div>Pac-Manhttps://worms2d.info/?title=Worms_World_Party_Aqua&diff=25985Worms World Party Aqua2020-07-10T17:22:12Z<p>Pac-Man: Use British date style as discussed on User talk:Lex#Textual format of dates</p>
<hr />
<div>{{ParentArticle|[[Worms Knowledge Base]]}}<br />
{| class="infobox" cellspacing="2" style="width: 21em; font-size: 90%; text-align: left;"<br />
! colspan="2" style="font-size: larger; text-align: center" | [[Image:WWPA_icon.png|32px|Worms World Party Aqua icon]]&nbsp;&nbsp;Worms World Party Aqua<br />
|-<br />
|colspan="2" style="text-align: center;"|[[Image:WWPA_screenshot.png|250px|Worms World Party Aqua title screen]]<br />
|-<br />
|Developer:||[[Mgame]]<br />
|-<br />
|Publishers:||'''[[Mgame]]''' (2003-'06)<br />
|-<br />
|Release dates:||2003-'06 (South Korea)<br />
|- <br />
|Website:||[http://www.mgame.com http://www.mgame.com]<br />
|}<br />
<br />
'''''Worms World Party Aqua''''' was a licensed South Korean [[Worms 2]] modification, developed by [[Mgame]]. It is based on their predecessor [[Online Worms]], modifying it to make the game play feel closer to that of [[Worms World Party]].<br />
<br />
The development team posted their agenda to update Online Worms as ''Worms World Party (Online)'' on 24 December 2002. They planned to add worm customization, but after an extended development time, only male and female worm sprites were added depending on the player's gender, featuring hats or colorful hair respectively.<br />
<br />
The launch of the game was planned for February 2003 and further postponed to July, now being named ''Worms Plus Aqua'', focusing the use of underwater graphics to "beat the summer heat of 2003". Team17 eventually declined the new name, concerning it could be mistaken as a new entry in the Western Worms series, and the game was renamed to ''Worms World Party Aqua''.<br />
<br />
Closed Beta testing ran between 25 July and 30 July, and the Open Beta started on 1 August 2003.<br />
<br />
The game featured 16-bit graphics instead of 256 colors. Many of the weapon changes between Worms 2 and Worms World Party were ported, and additional weapons exclusive to this game match the undersea theme. Training missions and an item shop were added, allowing to purchase specific weapons. Another new feature is a weapon-only drown level which sinks only weapons, but not worms, replacing the water sprites with sand-looking ones.<br />
<br />
The servers were eventually shut down on 28 November 2006.<br />
__NOTOC____NOEDITSECTION__<br />
{| border="0"<br />
| [[File:Gears.png|64px|link=Game logic|Game technology]]<br />
| <span style="font-size: 132%;">'''Game technology'''</span><br />
* [[Game logic]]<br />
* [[Tricks and glitches ({{{1|Second generation}}})|Tricks and glitches]]<br />
* [[File formats]]<br />
|}<br />
<br />
== External links ==<br />
* [https://namu.wiki/w/%EC%9B%9C%EC%A6%88%20%EC%9B%94%EB%93%9C%ED%8C%8C%ED%8B%B0%20%EC%95%84%EC%BF%A0%EC%95%84 Worms World Party Aqua on namuwiki] (Korean, [[User:Pac-Man/Worms World Party Namuwiki|translated]]), from which most of the information on this page is taken.</div>Pac-Man