<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.eduke32.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DeeperThought</id>
	<title>EDukeWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eduke32.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DeeperThought"/>
	<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/wiki/Special:Contributions/DeeperThought"/>
	<updated>2026-05-14T12:32:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-alpha</generator>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Whilevarn&amp;diff=9980</id>
		<title>Whilevarn</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Whilevarn&amp;diff=9980"/>
		<updated>2011-10-01T19:28:52Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;whilevarn&#039;&#039;&#039; &amp;lt;[[gamevar]]&amp;gt; &amp;lt;value&amp;gt; { code to execute }&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;whilevarvarn&#039;&#039;&#039; &amp;lt;[[gamevar]]&amp;gt; &amp;lt;[[gamevar]]&amp;gt; { code to execute }&lt;br /&gt;
&lt;br /&gt;
Executes the code in the curly braces as long as &amp;lt;gamevar&amp;gt; does not equal &amp;lt;value&amp;gt;. This is a simple while loop.&lt;br /&gt;
&lt;br /&gt;
Caution: Poor execution or endless loops will cause your game to close without error or simply stall and crash!&lt;br /&gt;
&lt;br /&gt;
This example will set up the palette of the floor from all sectors on the map:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gamevar TEMP 0 0&lt;br /&gt;
onevent EVENT_LOADACTOR&lt;br /&gt;
  setvar TEMP 0&lt;br /&gt;
  whilevarvarn TEMP NUMSECTORS&lt;br /&gt;
  {&lt;br /&gt;
    setsector[TEMP].floorpal 1&lt;br /&gt;
    addvar TEMP 1&lt;br /&gt;
  }&lt;br /&gt;
endevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There&#039;s no variable keeping the number of sprites in the map. The sprites may be randomly arranged throughout the array with a maximum of 16384 entries. An example of a correct per-sprite loop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setvar sectnum 0&lt;br /&gt;
whilevarvarn sectnum NUMSECTORS&lt;br /&gt;
{&lt;br /&gt;
  headspritesect I sectnum&lt;br /&gt;
  setvarvar HEAD I&lt;br /&gt;
  whilevarn I -1 {&lt;br /&gt;
    // LOOP CODE&lt;br /&gt;
    nextspritesect I I&lt;br /&gt;
    ifvarvare I HEAD setvar I -1 // Break the loop&lt;br /&gt;
  }&lt;br /&gt;
  addvar sectnum 1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{varsuffix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Constantly_updated_gamevars&amp;diff=9979</id>
		<title>Constantly updated gamevars</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Constantly_updated_gamevars&amp;diff=9979"/>
		<updated>2011-10-01T19:24:06Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are [[gamevar]]s which are defined as direct pointers to internal variables in the game.  While some will change frequently, others will remain static for the whole game.  Please note that the values of most of these variables will be different on each peer, so you must not rely on them for anything that could possibly have an effect on sync.  As such, these variables are &#039;&#039;only&#039;&#039; for use within local events such as those which allow you to display tiles on the screen. See also [[Pre-defined gamevars]].&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Current actor or player&amp;quot; group of variables point to the current actor/player. The other ones point to internal and usually global variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Do not attempt to redefine these unless you know what you are doing or you will have problems.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-right: none; padding: 0.6em;&amp;quot; |&lt;br /&gt;
Map&lt;br /&gt;
*[[RESPAWN_MONSTERS]]&lt;br /&gt;
*[[RESPAWN_ITEMS]]&lt;br /&gt;
*[[RESPAWN_INVENTORY]]&lt;br /&gt;
*[[MONSTERS_OFF]]&lt;br /&gt;
*[[MARKER]]&lt;br /&gt;
*[[FFIRE]]&lt;br /&gt;
*[[LEVEL]]&lt;br /&gt;
*[[VOLUME]]&lt;br /&gt;
*[[NUMWALLS]]&lt;br /&gt;
*[[NUMSECTORS]]&lt;br /&gt;
&lt;br /&gt;
Multiplayer&lt;br /&gt;
*[[COOP]]&lt;br /&gt;
*[[MULTIMODE]]&lt;br /&gt;
&lt;br /&gt;
Current actor or player&lt;br /&gt;
*[[WEAPON]]&lt;br /&gt;
*[[WORKSLIKE]]&lt;br /&gt;
*[[RETURN]]&lt;br /&gt;
*[[ZRANGE]]&lt;br /&gt;
*[[ANGRANGE]]&lt;br /&gt;
*[[AUTOAIMANGLE]]&lt;br /&gt;
*[[LOTAG]]&lt;br /&gt;
*[[HITAG]]&lt;br /&gt;
*[[TEXTURE]]&lt;br /&gt;
*[[THISACTOR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-right: none; border-left: none; padding: 0.6em;&amp;quot; |&lt;br /&gt;
Screen drawing&lt;br /&gt;
*[[gs]]&lt;br /&gt;
*[[gun_pos]]&lt;br /&gt;
*[[looking_angSR1]]&lt;br /&gt;
*[[looking_arc]]&lt;br /&gt;
*[[weapon_xoffset]]&lt;br /&gt;
*[[weaponcount]]&lt;br /&gt;
*[[windowx1]]&lt;br /&gt;
*[[windowx2]]&lt;br /&gt;
*[[windowy1]]&lt;br /&gt;
*[[windowy2]]&lt;br /&gt;
*[[xdim]]&lt;br /&gt;
*[[ydim]]&lt;br /&gt;
*[[yxaspect]]&lt;br /&gt;
&lt;br /&gt;
Renderer&lt;br /&gt;
*[[framerate]]&lt;br /&gt;
*[[rendmode]]&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
*[[current_menu]]&lt;br /&gt;
*[[currentweapon]]&lt;br /&gt;
*[[display_mirror]]&lt;br /&gt;
*[[gametype_flags]]&lt;br /&gt;
*[[gravitationalconstant]]&lt;br /&gt;
*[[lastvisinc]]&lt;br /&gt;
*[[myconnectindex]]&lt;br /&gt;
*[[numplayers]]&lt;br /&gt;
*[[NUMSECTORS]]&lt;br /&gt;
*[[randomseed]]&lt;br /&gt;
*[[screenpeek]]&lt;br /&gt;
*[[totalclock]]&lt;br /&gt;
*[[viewingrange]]&lt;br /&gt;
*[[lastsavepos]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-left: none; padding: 0.6em;&amp;quot; |&lt;br /&gt;
Camera&lt;br /&gt;
*[[camerax]]&lt;br /&gt;
*[[cameray]]&lt;br /&gt;
*[[cameraz]]&lt;br /&gt;
*[[cameraang]]&lt;br /&gt;
*[[camerahoriz]]&lt;br /&gt;
*[[camerasect]]&lt;br /&gt;
*[[cameradist]]&lt;br /&gt;
*[[cameraclock]]&lt;br /&gt;
&lt;br /&gt;
Player position&lt;br /&gt;
*[[myx]]&lt;br /&gt;
*[[myy]]&lt;br /&gt;
*[[myz]]&lt;br /&gt;
*[[omyx]]&lt;br /&gt;
*[[omyy]]&lt;br /&gt;
*[[omyz]]&lt;br /&gt;
*[[myxvel]]&lt;br /&gt;
*[[myyvel]]&lt;br /&gt;
*[[myzvel]]&lt;br /&gt;
&lt;br /&gt;
Player properties&lt;br /&gt;
*[[myang]]&lt;br /&gt;
*[[mycursectnum]]&lt;br /&gt;
*[[myhardlanding]]&lt;br /&gt;
*[[myhoriz]]&lt;br /&gt;
*[[myhorizoff]]&lt;br /&gt;
*[[myjumpingcounter]]&lt;br /&gt;
*[[myjumpingtoggle]]&lt;br /&gt;
*[[myonground]]&lt;br /&gt;
*[[myreturntocenter]]&lt;br /&gt;
*[[omyang]]&lt;br /&gt;
*[[omyhoriz]]&lt;br /&gt;
*[[omyhorizoff]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Gamevar manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=9880</id>
		<title>EDuke32 Modifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=9880"/>
		<updated>2011-07-30T01:29:14Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table width =&amp;quot;100%&amp;quot; style=&amp;quot;border:1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;Title&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;Type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;Status&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;25%&amp;quot;&amp;gt;Creator(s) &amp;amp; Developer(s)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://fissile.duke4.net/fissile_dukeplus.html Duke Plus]&lt;br /&gt;
|Gameplay enhancement&lt;br /&gt;
|Released, in development&amp;lt;br&amp;gt;(Latest Release: &#039;&#039;&#039;2.21&#039;&#039;&#039;)&lt;br /&gt;
|[[User:DeeperThought|DeeperThought]]&lt;br /&gt;
|[[Image:DP1.jpg|200px]][[Image:DP2.jpg|200px]]&lt;br /&gt;
|Enhanced Engine Design Capabilities, including: Transparent Water; Giving Monsters Special Flags; Climbable Ladders; Mantling/Grappling on ledges; Bot-Allies; Footstep Sounds; Rain and Snow-based weather effects; Quake3-Style Jump Pads; Slippery Floors; etc. [http://www.picturepush.com/public/652573 Gravity gun footage]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://hendricks266.duke4.net/vaca_plus.php Duke Caribbean: Life&#039;s A Beach Plus]&lt;br /&gt;
|Total Conversion/enhancement&lt;br /&gt;
|Released, in development&amp;lt;br&amp;gt; (Latest Version: &#039;&#039;&#039;v2.0&#039;&#039;&#039;)&lt;br /&gt;
|[[User:Hendricks 266|Hendricks266]] and the Duke community&lt;br /&gt;
|[[Image:2492_vaca.png|200px]][[Image:3281_vaca.png|200px]]&lt;br /&gt;
|Duke takes a vacation to the Caribbean and discovers that the aliens are using the tropical climate to breed.  The classic Duke 3D add-on gets a modern facelift, and additional enhancements.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://hendricks266.duke4.net/nw_plus.php Duke: Nuclear Winter Plus]&lt;br /&gt;
|Total Conversion/enhancement&lt;br /&gt;
|Released, in development&amp;lt;br&amp;gt; (Latest Version: &#039;&#039;&#039;v2.0&#039;&#039;&#039;)&lt;br /&gt;
|[[User:Hendricks 266|Hendricks266]] and the Duke community&lt;br /&gt;
|[[Image:2492_nw.png|200px]][[Image:3240_3245.png|200px]]&lt;br /&gt;
|Duke receives a telegram that the aliens have brainwashed Santa and are trying to steal Christmas!  The HRP of the classic Duke add-on, Nuclear Winter, adds many new EDuke32-based elements to the game, and fixes most, if not all of the original bugs.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://www.resurgence.dukenukem.com.br/ Duke Nukem 64: Resurgence]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|In Development&lt;br /&gt;
|Fox, Nukey, SomeThingEvil, Hellfire&lt;br /&gt;
|[[Image:Duke64_1.png|200px]][[Image:Duke64_2.png|200px]]&lt;br /&gt;
|Duke Nukem 64: Resurgence intends to bring this Nintendo experience from 1997 to your PC.&lt;br /&gt;
&lt;br /&gt;
There will be customization options, such as removing Nintendo&#039;s censoring.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://naferia.duke4.net Naferia&#039;s Reign: Invasion of the Dark Mistress]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Released, in development&amp;lt;br&amp;gt; (Latest Version: &#039;&#039;&#039;5.20.06112010&#039;&#039;&#039;)&lt;br /&gt;
|[[User:LordMisfit|Lord Misfit]], TheSeriousCacodemon, Davidos, Vero-chan&lt;br /&gt;
|[[Image:NRIOTDM-1.png|200px]][[Image:NRIOTDM-2.png|200px]]&lt;br /&gt;
|What will come to be an alternate-universe Duke Nukem story revolving around a pivotal point in the history of Duke Nukem and the Aliens he has faced since the original Duke Nukem 3D. Duke is no longer working alone in his quest, as his enemies ramp up their power and allegiances substantially, as well as their intelligence to a point. Play as up to 15 different characters, with the ability to use multiple characters in the same party, unlike in Hexen (and more like a real RPG). Monsters are more interactive and to a point more intelligent, able to grab items like health and armor, get damaged by slime and other hazards, and even pick up power-ups to make them deadlier in combat. Find money laying around or get it out of your characters&#039; ATM accounts, and use it to buy new items from shops or other NPCs. Voice Acting is also present.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://www.moddb.com/mods/9541/duke-nukem-weapon-of-mass-destruction Duke Nukem: Weapon of Mass Destruction]&lt;br /&gt;
|Gameplay enhancement&lt;br /&gt;
|Released&amp;lt;br&amp;gt;(Latest Release: &#039;&#039;&#039;1.52 [beta]&#039;&#039;&#039;)&lt;br /&gt;
|[[User:DeeperThought|DeeperThought]]&lt;br /&gt;
|[[Image:Dnwmd1.jpg|200px]][[Image:Dnwmd2.jpg|200px]]&lt;br /&gt;
|Duke Nukem: Weapon of Mass Destruction is a gameplay mod for Duke Nukem 3D. It has tons of new weapon modes, enemies, and player abilities, such as UT style dodge moves, spinning hook kicks, and a Duke bot companion who fights by your side. In some levels you can even get in your skycar and fly it, doing bombing runs on enemies.  In DNWMD, Duke collects glowing coins from slain enemies which are used to purchase various upgrades via a mouse controlled menu. In addition, each of Duke&#039;s weapons has its own experience level which increases with use.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
| [{{3DR}}32161 HellDuke TC!]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Released, in development&amp;lt;br&amp;gt;(Latest Release: &#039;&#039;&#039;1.3&#039;&#039;&#039;)&lt;br /&gt;
|XTHX2, Quakis (Inactive), Broiler1985, Rolls, Fantinaikos, SuperGoofy&lt;br /&gt;
|[[Image:scr1.jpg|200px]][[Image:scr2.jpg|200px]]&lt;br /&gt;
|HellDukeTC! will make your doom become alive, as the thread name calls it. My main purpose is to create Doom with a different angle and of course my secret recipe. As well as aiming to have a doom theme, we will also introduce you what hell actually means. It is still under development, however it is playable enough with it&#039;s satisfying levels, new enemies, new additions, new WEAPONS!, new HUD, CON scripted EVENTS, and much more. And last but not least, extra information can be found at hellreadme.txt. If you have any questions, you can ask me, XTHX2, and contact me. If you like Doom, and if you like challenges, this TC is just what you are in need of!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://files.filefront.com/Nuclear+Showdown+v11zip/;12148372;/fileinfo.html Nuclear Showdown v1.1]&lt;br /&gt;
|Gameplay enhancement&lt;br /&gt;
|Released&lt;br /&gt;
|[[User:Jblade|James Stanfield]]&lt;br /&gt;
|[[Image:NS01.jpg|200px]][[Image:NS02.jpg|200px]]&lt;br /&gt;
|Nuclear showdown is a gameplay mod for Duke Nukem that adds many features such as new weapons, enemies, effects to the default game as well as usermaps - it is built so you can play your favourite usermaps with, even ones that use custom art. You can also play through Duke It Out In D.C. if you have it. The TC also includes several features for mappers like more keycards, items such as the spacesuit and toolkit, and more textures to work with.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[{{3DR}}25830 The AWOL Project Source]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Released, discontinued&lt;br /&gt;
|[[User:Reaper_Man|Reaper_Man]], Hudson, Mblackwell, and the entire AWOL TC Team&lt;br /&gt;
|[[Image:AWOL1.jpg|200px]][[Image:AWOL2.jpg|200px]]&lt;br /&gt;
|The AWOL Project Source is the release of the source files for the once highly anticipated mod, The AWOL Project. After several years of sitting idly on the hard drives of the creators, Reaper_Man and Hudson decided to release all of the content for the TC to those who might find it useful. The release includes a few demo maps showing off various effects and AI, as well as all 3 of the drivable vehicles. Most of the code is complete but very few of the maps are. There is an Official 1.0 Patch as well as the AWOL Map Pack available for download also.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://hosted.filefront.com/kenia43 Duke Nukem Army]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Official final Release&lt;br /&gt;
|[[User:Kenia|Kenia]]&lt;br /&gt;
|[[Image:Teaser2.jpg|200px]][[Image:Teaser3.jpg|200px]]&lt;br /&gt;
|A TC that changes Duke Nukem 3D into an exaggerated army-style shooter with various multiplayer additions (CTF, Hill Defend, Assault). Main focus is multi-player (though 1 playable single-player episode is included) and the massive unrealistic use of gore elements to turn the TC in kind of a &amp;quot;splatter game&amp;quot;. [{{YouTube}}xl1E9BtOe9U Gameplay footage]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[{{3DR}}30761 WG Medieval Mod]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|William Gee, [[User:DeeperThought|DeeperThought]], Hellbound&lt;br /&gt;
|[[Image:WG1.jpg|200px]][[Image:WG2.jpg|200px]]&lt;br /&gt;
|Medieval mod with melee combat, magic bows, skeleton knights, dragons and demons. [http://www.picturepush.com/public/590728 Gameplay footage]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[{{3DR}}25350 Symphony of Orekia (AKA The Mansion)]&lt;br /&gt;
|Total Conversion (single level)&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|Quakis&lt;br /&gt;
|[[Image:Mansion1.jpg|200px]][[Image:Mansion2.jpg|200px]]&lt;br /&gt;
|Resident Evil-style TC with Demons and creepy interiors. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[{{3DR}}9670 Decay]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|Hudson, MBlackWell, Hellbound, Cage, others&lt;br /&gt;
|[[Image:Decay1.jpg|200px]][[Image:Decay2.jpg|200px]]&lt;br /&gt;
|Survival-horror TC with zombies! &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[{{3DR}}30962 Blood TC]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|[[User:M210|M210]]&lt;br /&gt;
|[[Image:Blood1.jpg|200px]][[Image:Blood2.jpg|200px]]&lt;br /&gt;
|BloodTC is a recreation of Blood (by Monolith Productions) for EDuke32 to bring all the fun and action of Blood to the EDuke32 port. This mod will be more powerful in the future, considering EDuke32 keeps getting better and better.&lt;br /&gt;
&#039;&#039;&#039;Big thanks:&#039;&#039;&#039; The Lezing, DeeperThought, DefaultDan(97), Zykov Eddy, --DarkSoL--, Yura_evil, KLIMaka, XTHX2, Ilovefoxes, Sanek, LipSheZ, Possessed-by-zeal. &lt;br /&gt;
&#039;&#039;&#039;Some videos&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;[{{YouTube}}3thhSyIGPZQ BloodTC Beta Video E1M1]&lt;br /&gt;
&amp;lt;br&amp;gt;[{{YouTube}}rhNNtd0Sp9w Animation of weapon test and some effects]&lt;br /&gt;
&amp;lt;br&amp;gt;[{{YouTube}}2r2qj5pTAJs Second weapon-test Video]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[{{AMC}}7591.0 AMC TC]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|James Stanfield and AMC&lt;br /&gt;
|[[Image:AMCTC1.jpg|200px]][[Image:AMCTC2.jpg|200px]]&lt;br /&gt;
|The AMC TC is a multi-character TC and gameplay modification. There are 8 characters to choose between, each with different weapon sets and items. Fight through the solar system against Duke&#039;s old enemies as well as other dark forces that each plan something unpleasant for Earth and Mars. A initial gameplay release with the finished characters, intro map, and Duke user map episode is planned with actual story based releases later.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|Duke Nukem: Return of the King&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|[[User:Captain Awesome|Captain Awesome]]&lt;br /&gt;
|[[Image:DukeROTK.gif|200px]][[Image:DukeROTK2.gif|200px]]&lt;br /&gt;
|Duke Nukem: Return of the King plans to centralize Duke&#039;s universe. The game will fix numerous bugs, graphical glitches, logical fallacies, and other problems with Duke3D. The mod will boast an impressive amount of new weapons, and a few alt-fire modes. It will also feature quite a few new enemies or variants, with improved coding over the originals. There is a new thought out approach to the traditional episodes, along with new missions for you to play. It plans to bring a completely fresh experience to the old game, while still being familiar and simple. This mod is 8bit exclusive, and completely incompatible with the HRP. Retains compatibility with &#039;&#039;most&#039;&#039; user-maps for replay value.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://hendricks266.duke4.net/dmdr.php Duke Meets DOOM Rebirth]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased as Rebirth, in development&lt;br /&gt;
|[[User:Hendricks 266|Hendricks266]]&lt;br /&gt;
|[[Image:DMDR_001.gif|200px]][[Image:DMDR_002.jpg|200px]]&lt;br /&gt;
|Duke Meets DOOM Rebirth is an upgrade of the original vanilla TC &amp;quot;Duke Meets Doom&amp;quot;.  The basis for this mod is that the original maps are good, but the coding and artwork were sloppy.  There are three different art modes available.  The first is Classic, which consists of the artwork converted to the Duke palette.  The second is Faithful, which has the original artwork displayed as high-resolution textures, so that it won&#039;t be hindered by the differences of the DOOM, Duke, and Shadow Warrior palettes.  The third is Updated, which introduces high-resolution content from the jDRP and related packages.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[{{3DR}}31983 Cradle to Grave]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|Daedalus, Dimebog, Daedolon, Tekedon&lt;br /&gt;
|[[Image:Screen00.PNG|200px]][[Image:Screen01.png|200px]]&lt;br /&gt;
|Cradle to Grave is a hyper-mod aiming to bring the frantic pace and hugely enjoyable gameplay of Blood (by Monolith Productions) into a new medium and with our new granted freedom we&#039;ll even be able to implement some of the ideas which didn&#039;t quite make it into the original, not limited to new and never released weaponry, enemies, gameplay modes and perhaps even magic. This product exists only as our homage to Blood&#039;s spirit and, if successful, it could help bring Blood&#039;s glory to new heights.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[[Duke Theft Auto]]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Beta Released, On Hold&lt;br /&gt;
|[[User:The Commander|The Commander]]&lt;br /&gt;
|[[Image:DTA0000.jpg|200px]][[Image:DTA0001.jpg|200px]]&lt;br /&gt;
|Duke Theft Auto is based upon the classic DMA/Rockstar game, &amp;quot;Grand Theft Auto&amp;quot; Run, Shoot, Kill, Car Jack your way through many cities on your way of becoming the number one criminal! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [http://www.moddb.com/games/duke-theft-auto Beta Released]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mod_table &lt;br /&gt;
|[http://totalduke.narod.ru RailSingle TC]&lt;br /&gt;
|Total Conversion&lt;br /&gt;
|Unreleased, in development&lt;br /&gt;
|[[User:LipSheZ|LipSheZ]]&lt;br /&gt;
|[[Image:RS1.jpg|200px]][[Image:RS2.jpg|200px]]&lt;br /&gt;
|Rail Single is a mod based on early version of Duke Plus and includes some amazing features such as 22 weapon types (each weapon has 2 fire modes), approx 30 different voxel ammo pickups and 20 inventory items. Most of RS levels are king-size, but in the spirit of the original Duke Nukem: Atomic Edition. Some level segments made with LEBuild Map Editor.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Cstat&amp;diff=9705</id>
		<title>Cstat</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Cstat&amp;diff=9705"/>
		<updated>2011-04-14T21:14:05Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;cstat&#039;&#039;&#039; &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A [[bitfield]] for how to draw an actor, as well as a few flags for interaction.  Add all together all wanted flag values, and use that as &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Cstat is available for [[sprite]] structs and for [[Members of the wall structure|wall]] structs.  See [[cstat(wall)]].&lt;br /&gt;
&lt;br /&gt;
Flag values for sprite cstat are:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;1&#039;&#039;&#039; - Make sprite blockable&lt;br /&gt;
:&#039;&#039;&#039;2&#039;&#039;&#039; - Make sprite transparent&lt;br /&gt;
:&#039;&#039;&#039;4&#039;&#039;&#039; - Flip sprite around x-axis&lt;br /&gt;
:&#039;&#039;&#039;8&#039;&#039;&#039; - Flip sprite around y-axis&lt;br /&gt;
:&#039;&#039;&#039;16&#039;&#039;&#039; - Draw sprite as vertically flat (wall aligned)&lt;br /&gt;
:&#039;&#039;&#039;32&#039;&#039;&#039; - Draw sprite as horizontally flat (floor aligned)&lt;br /&gt;
:&#039;&#039;&#039;64&#039;&#039;&#039; - Make sprite one sided&lt;br /&gt;
:&#039;&#039;&#039;128&#039;&#039;&#039; - Half submerged&lt;br /&gt;
:&#039;&#039;&#039;256&#039;&#039;&#039; - Make sprite able to be hit by weapons&lt;br /&gt;
:&#039;&#039;&#039;512&#039;&#039;&#039; - Second transparency level (combine with cstat 2)&lt;br /&gt;
:&#039;&#039;&#039;2048&#039;&#039;&#039;- Sprite will not be forced to take shade of sector&lt;br /&gt;
:&#039;&#039;&#039;8192&#039;&#039;&#039; - Sprite will not cast a Polymer shadow&lt;br /&gt;
:&#039;&#039;&#039;16384&#039;&#039;&#039; - Sprite will be invisible but will still cast a Polymer shadow&lt;br /&gt;
:&#039;&#039;&#039;32768&#039;&#039;&#039; - Invisible&lt;br /&gt;
&lt;br /&gt;
Also see [[cstator]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Bitfields]]&lt;br /&gt;
[[Category:Duke3D 1.3/1.5 commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Prevspritestat&amp;diff=9427</id>
		<title>Prevspritestat</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Prevspritestat&amp;diff=9427"/>
		<updated>2011-03-01T01:40:16Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;nextspritestat&amp;#039;&amp;#039;&amp;#039; &amp;lt;PrevSpriteID&amp;gt; &amp;lt;CurrentSpriteID&amp;gt;  Finds the previous sprite in the linked list of sprites having the same statnum. See headspritestat for more informatio...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;nextspritestat&#039;&#039;&#039; &amp;lt;PrevSpriteID&amp;gt; &amp;lt;CurrentSpriteID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finds the previous sprite in the linked list of sprites having the same statnum. See [[headspritestat]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Nextspritestat&amp;diff=9426</id>
		<title>Nextspritestat</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Nextspritestat&amp;diff=9426"/>
		<updated>2011-03-01T01:37:23Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;nextspritestat&amp;#039;&amp;#039;&amp;#039; &amp;lt;NextSpriteID&amp;gt; &amp;lt;CurrentSpriteID&amp;gt;  Finds the next sprite in the linked list of sprites having the same statnum. See headspritestat for more information.  ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;nextspritestat&#039;&#039;&#039; &amp;lt;NextSpriteID&amp;gt; &amp;lt;CurrentSpriteID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finds the next sprite in the linked list of sprites having the same statnum. See [[headspritestat]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Actor&amp;diff=9425</id>
		<title>Actor</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Actor&amp;diff=9425"/>
		<updated>2011-03-01T01:16:58Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;actor&#039;&#039;&#039; &amp;lt;name&amp;gt; &amp;lt;strength&amp;gt; &amp;lt;action&amp;gt; &amp;lt;move&amp;gt; &amp;lt;ai&amp;gt; { actor code } [[enda]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;name&amp;gt; is the name/tile of the actor. You can either input a [[define]]d name, or the tile number directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strength&amp;gt; is the health of the actor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action&amp;gt; is the intial [[action]] an actor uses (optional).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;move&amp;gt; is the initial [[move]] of the actor (optional).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ai&amp;gt; is the actor&#039;s initial [[ai]] routine (optional).&lt;br /&gt;
&lt;br /&gt;
{ actor code } is the code for the actor.&lt;br /&gt;
&lt;br /&gt;
[[enda]] ends an actor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Loosely speaking, actors are sprites that run code in game, such as enemies and breakable props.  More precisely, an actor is a sprite with a statnum of 1.  Sprites with that statnum will execute their actor code once every game tic.  Prior to version 1.4, only the tile numbers hardcoded to be actors could be actors.  In the GAME.CON script file, they were designated by the [[actor]] command.&lt;br /&gt;
&lt;br /&gt;
Version 1.4 introduced the [[useractor]] syntax which allows use of any tile number as an actor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example actor:&lt;br /&gt;
 define SOMEACTOR 3585&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;&#039;actor&#039;&#039;&#039; SOMEACTOR 0&lt;br /&gt;
 ifpdistl 1024 &lt;br /&gt;
 { &lt;br /&gt;
     palfrom 32 0 16 0 &lt;br /&gt;
 }&lt;br /&gt;
 enda&lt;br /&gt;
&lt;br /&gt;
[[Category:Duke3D 1.3/1.5 commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Stopactorsound&amp;diff=8996</id>
		<title>Stopactorsound</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Stopactorsound&amp;diff=8996"/>
		<updated>2010-07-09T05:14:23Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;#039;&amp;#039;&amp;#039;&amp;#039;stopactorsound&amp;#039;&amp;#039;&amp;#039; &amp;lt;sprite ID&amp;gt; &amp;lt;sound#&amp;gt;  Causes the specified actor to stop playing the specified sound.  Unlike stopsound, it will only stop a sound coming from one actor....&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;stopactorsound&#039;&#039;&#039; &amp;lt;sprite ID&amp;gt; &amp;lt;sound#&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Causes the specified actor to stop playing the specified sound.  Unlike [[stopsound]], it will only stop a sound coming from one actor.  This is useful, for example, if one of the player&#039;s weapons makes a looping sound, and you want the sound to stop as soon as the player changes weapons, but allow other instances of the sound (e.g. from other players) to continue.&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Sound manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Spritenoshade&amp;diff=8967</id>
		<title>Spritenoshade</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Spritenoshade&amp;diff=8967"/>
		<updated>2010-06-10T18:47:17Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;spritenoshade&#039;&#039;&#039; &amp;lt;tilenum&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Causes [[sprite]] &amp;lt;tilenum&amp;gt; to be unaffected by the [[shade]] of the [[sector]] it is in.  This command should be used outside of actors, states or events (like a definition).&lt;br /&gt;
&lt;br /&gt;
If you want an [[actor]] to glow like some projectiles in the game, use this together with [[setactor]]&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[THISACTOR]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;.[[shade]] -127 and/or the [[flash]] parameter.&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Canseespr&amp;diff=8749</id>
		<title>Canseespr</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Canseespr&amp;diff=8749"/>
		<updated>2009-12-05T17:09:25Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;canseespr&#039;&#039;&#039; &amp;lt;spriteID1&amp;gt; &amp;lt;spriteID2&amp;gt; &amp;lt;returnvar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The three parameters are [[gamevar]]s.&lt;br /&gt;
&lt;br /&gt;
canseespr sets &amp;lt;returnvar&amp;gt; to 1 if the sprite with ID &amp;lt;spriteID1&amp;gt; has a line of sight with the sprite with ID &amp;lt;spriteID2&amp;gt;, otherwise &amp;lt;returnvar&amp;gt; is set to 0.&lt;br /&gt;
&lt;br /&gt;
Visibility is checked from the bases of the sprites.  It is as if there were cameras on the bottoms of the sprites&#039; feet and they were trying to see each other with those cameras.  As a result, the visibility check will usually come back negative on uneven ground and in other situations where the sprites should be able to see each other.  To remedy this, you can move one or both of the sprites to a higher position right before the canseespr check, then move them back down again before the move has any unwanted effects.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
  getactor[THISACTOR].z ZPOSITION // assuming there is already a declared variable ZPOSITION&lt;br /&gt;
  subvar ZPOSITION 8192&lt;br /&gt;
  setactor[THISACTOR].z ZPOSITION&lt;br /&gt;
  canseespr THISACTOR TARGET RETURN&lt;br /&gt;
  addvar ZPOSITION 8192&lt;br /&gt;
  setactor[THISACTOR].z ZPOSITION&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Gamevar manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Cstat&amp;diff=8688</id>
		<title>Cstat</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Cstat&amp;diff=8688"/>
		<updated>2009-11-09T20:01:38Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;cstat&#039;&#039;&#039; &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets flags for how to draw an actor, as well as a few flags for interaction.  Add all together all wanted flag values, and use that as &amp;lt;number&amp;gt;.  This is because cstat is a bitfield.&lt;br /&gt;
&lt;br /&gt;
Cstat is available for [[sprite]] structs and for [[Members of the wall structure|wall]] structs.  See [[cstat(wall)]].&lt;br /&gt;
&lt;br /&gt;
Flag values for sprite cstat are:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;1&#039;&#039;&#039; - Make sprite blockable&lt;br /&gt;
:&#039;&#039;&#039;2&#039;&#039;&#039; - Make sprite transparent&lt;br /&gt;
:&#039;&#039;&#039;4&#039;&#039;&#039; - Flip sprite around x-axis&lt;br /&gt;
:&#039;&#039;&#039;8&#039;&#039;&#039; - Flip sprite around y-axis&lt;br /&gt;
:&#039;&#039;&#039;16&#039;&#039;&#039; - Draw sprite as vertically flat (wall aligned)&lt;br /&gt;
:&#039;&#039;&#039;32&#039;&#039;&#039; - Draw sprite as horizontally flat (floor aligned)&lt;br /&gt;
:&#039;&#039;&#039;64&#039;&#039;&#039; - Make sprite one sided&lt;br /&gt;
:&#039;&#039;&#039;128&#039;&#039;&#039; - Half submerged&lt;br /&gt;
:&#039;&#039;&#039;256&#039;&#039;&#039; - Make sprite able to be hit by weapons&lt;br /&gt;
:&#039;&#039;&#039;512&#039;&#039;&#039; - Second transparency level (combine with cstat 2)&lt;br /&gt;
:&#039;&#039;&#039;8192&#039;&#039;&#039; - Sprite will not cast a Polymer shadow&lt;br /&gt;
:&#039;&#039;&#039;16384&#039;&#039;&#039; - Sprite will be invisible but will still cast a Polymer shadow&lt;br /&gt;
:&#039;&#039;&#039;32768&#039;&#039;&#039; - Invisible&lt;br /&gt;
&lt;br /&gt;
Also see [[cstator]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Duke3D 1.3/1.5 commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Lockplayer&amp;diff=8681</id>
		<title>Lockplayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Lockplayer&amp;diff=8681"/>
		<updated>2009-11-08T10:26:46Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;lockplayer&#039;&#039;&#039; &amp;lt;gamevar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stops player movement (except the ability to look up/down with the mouse) for the amount of time denoted by the [[gamevar]] &amp;lt;gamevar&amp;gt;. Each unit is 1/26 of a second.&lt;br /&gt;
&lt;br /&gt;
Caution:  If this command is used while the player is under water (in a lotag 2 sector), the player will not be able to surface.&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke commands]]&lt;br /&gt;
[[Category:Player manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Clearmapstate&amp;diff=8671</id>
		<title>Clearmapstate</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Clearmapstate&amp;diff=8671"/>
		<updated>2009-11-03T15:48:48Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;#039;&amp;#039;&amp;#039;&amp;#039;clearmapstate&amp;#039;&amp;#039;&amp;#039; &amp;lt;level&amp;gt;  Clears the specified map from the map cache.  Used in conjunction with savemapstate.&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;clearmapstate&#039;&#039;&#039; &amp;lt;level&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clears the specified map from the map cache.  Used in conjunction with [[savemapstate]].&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Loadmapstate&amp;diff=8670</id>
		<title>Loadmapstate</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Loadmapstate&amp;diff=8670"/>
		<updated>2009-11-03T15:46:02Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;loadmapstate&#039;&#039;&#039; restores the current map to the state it was in when the [[savemapstate]] command was last used in that map.  Thus, all the sprites will be in the positions they were in at that time, any sectors that were activated will still be activated, variables will be restored to the values they had at that time (unless the variables were declared with the flag for preventing this), etc.  If there is no cached copy of the map (either because [[savemapstate]] was not used in the map or the state was cleared using [[clearmapstate]]) then &#039;&#039;&#039;loadmapstate&#039;&#039;&#039; does nothing.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Loadmapstate&amp;diff=8669</id>
		<title>Loadmapstate</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Loadmapstate&amp;diff=8669"/>
		<updated>2009-11-03T15:45:05Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;#039;&amp;#039;&amp;#039;&amp;#039;loadmapstate&amp;#039;&amp;#039;&amp;#039; restores the current map to the state it was in when the savemapstate command was last used in that map.  Thus, all the sprites will be in the positions th...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;loadmapstate&#039;&#039;&#039; restores the current map to the state it was in when the [[savemapstate]] command was last used in that map.  Thus, all the sprites will be in the positions they were in at that time, any sectors that were activated will still be activated, variables will be restored to the values they had at that time (unless the variables were declared with the flag for preventing this), etc.  If there is no cached copy of the map (either because [[savemapstate]] was not used in the map or the state was cleared using [[clearmapstate]], then &#039;&#039;&#039;loadmapstate&#039;&#039;&#039; does nothing.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Savemapstate&amp;diff=8668</id>
		<title>Savemapstate</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Savemapstate&amp;diff=8668"/>
		<updated>2009-11-03T15:38:28Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;#039;&amp;#039;&amp;#039;&amp;#039;savemapstate&amp;#039;&amp;#039;&amp;#039; saves the state of the current map so that it may be restored later using loadmapstate.  Typically, &amp;#039;&amp;#039;&amp;#039;savemapstate&amp;#039;&amp;#039;&amp;#039; would be used immediately before exi...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;savemapstate&#039;&#039;&#039; saves the state of the current map so that it may be restored later using [[loadmapstate]].  Typically, &#039;&#039;&#039;savemapstate&#039;&#039;&#039; would be used immediately before exiting a level, so that if the player returns to the map, it can be restored to the state it was in when the player left it.  &#039;&#039;&#039;savemapstate&#039;&#039;&#039; will increase the size of saved game files, depending on the number of different maps that are cached.  See also [[clearmapstate]].&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Confaq42&amp;diff=8431</id>
		<title>Confaq42</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Confaq42&amp;diff=8431"/>
		<updated>2009-09-20T03:32:28Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;NOTE: All of the information on this page is from around 1999.  Some of it is outdated, some of it is just plain incorrect -- this page exists merely to get you started with the very basics of CONs and does not cover any of the additional features introduced in EDuke and EDuke32.  In the original DOS Duke 3D, the CON scripting language was relatively limited, and was mainly used to code simple AI routines for monsters and manipulate the player&#039;s inventory amounts.  Most aspects of the game, such as weapon firing rates, camera positioning, and physics, could not be altered.  By contrast, in EDuke32 virtually all aspects of the game can be accessed and manipulated via events, structures and variables, none of which are covered in this document.  Nevertheless, this document still serves as a useful introduction to CON coding.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;floatleft&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==A GENERAL CON OVERVIEW==&lt;br /&gt;
===Con File Editing - An Introduction===&lt;br /&gt;
&lt;br /&gt;
Con file editing is one of the coolest aspects of Duke Nukem 3D, and can be very productive in making Total Conversions and other game add-ons.  Although it can look very difficult at first, editing con files is very easy and a fun way to make one of the coolest games in history even cooler.&lt;br /&gt;
&lt;br /&gt;
How does one edit con files you ask?  Any text editor will do.  I personally use Microsoft Wordpad (not Word) to edit con files (this program comes with Windows 95), but you can use any text editor you wish.  The Microsoft Notepad program is not large enough to edit con files (the files are too big for notepad to handle), but the DOS editing program works quite well.  Simply open up your favorite text editor and open the con file that you wish to edit.&lt;br /&gt;
&lt;br /&gt;
OK - You&#039;ve opened a con file, but what do I do now?  Well, if you&#039;re really serious about con file programming, you need to read through this FAQ.  Even if you&#039;re not so serious about editing con files, quickly skim through this FAQ to find out how to edit some of the easiest parameters and settings in Duke Nukem 3D.  You can do some very cool stuff with con files, so stick with it if you don&#039;t get it right away.  If you have ever done any programming, you will instantly be able to edit con files.&lt;br /&gt;
&lt;br /&gt;
The most important instruction, however, for editing con files is simply - Have fun!  This stuff shouldn&#039;t make you frustrated - if you aren&#039;t getting something, take a look through this FAQ, or visit the editing and hacking forum at Dukeworld.  I personally hope you enjoy your con editing experience.&lt;br /&gt;
&lt;br /&gt;
===DEFS.CON===&lt;br /&gt;
&lt;br /&gt;
This con file is the file where all basic definitions are made.  Definitions for sounds, actors (sprites), and some other miscellaneous items can be found in this file.  This file is included by the game.con at compile time (when the game is run).&lt;br /&gt;
&lt;br /&gt;
===USER.CON===&lt;br /&gt;
&lt;br /&gt;
This con file is one of the easiest to edit.  Parameters such as weapon strengths, health values, ammo values, level names, quotes, names of sounds, names of episodes (version 1.4 and 1.5 only), names of difficulty levels (version 1.4 and 1.5 only), and more exist in this con file.  This is a fun con to edit, especially if you never wish to get deeply involved into con editing and hacking.  This file is also included by the game.con at compile time (when the game is run).&lt;br /&gt;
&lt;br /&gt;
===GAME.CON===&lt;br /&gt;
&lt;br /&gt;
This con file is the largest and the most complicated con file to edit.  This file holds all the code for most actors in the game (some of the actors are hard coded).  Most of the primitives available are used in this con file, and things can get quite complicated if you don&#039;t know where to start.  This file gets compiled first at compile time, and includes (#include) the other two con files provided by 3D Realms.  This is the con file to work with if you seriously want to get into con editing and hacking.&lt;br /&gt;
&lt;br /&gt;
==CON BUILDING BLOCKS==&lt;br /&gt;
&lt;br /&gt;
===What is an action?===&lt;br /&gt;
&lt;br /&gt;
An action is used to give a group of sprites, usually which are animated (as in an enemy movement or other such animated examples), a name.  The structure for this primitive is:&lt;br /&gt;
&lt;br /&gt;
action &amp;lt;name&amp;gt; &amp;lt;startframe&amp;gt; &amp;lt;frames&amp;gt; &amp;lt;viewtype&amp;gt; &amp;lt;incvalue&amp;gt; &amp;lt;delay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the name of the action. This is simply a string which can be up to 64 characters in length.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;startframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the relative starting frame number (relative to the main sprite of the action that is).  For example, if you want the Pigcop to look like the atomic health, you need to give the starting frame a number of -1900 since the Pigcop sprite is located at 2000 and the atomic health sprite is located at 100 (100 minus 2000, is -1900).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;frames&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This value is the total number of frames in the action.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;viewtype&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This value determines whether the sprite is one sided (it looks the same no matter what angle you see it from) or 3-Dimensional.  Legal values for this parameter are:&lt;br /&gt;
&lt;br /&gt;
* 0: Single image - It always faces the player no matter where they look from.&lt;br /&gt;
&lt;br /&gt;
* 5: Five images - The first image is looking from the front, the second is 45 degrees from the front, the third is from the side, the fourth is 45 degrees from the rear (135 degrees from the front), and the fifth value is looking from the rear.  The second, third, and fourth are used for either side of the image.&lt;br /&gt;
&lt;br /&gt;
* 7: Seven images - Same as 5, except there are seven images, with images 2, 3, 4, 5 and 6 are on both sides.  Image 4 is the side images, 1 and 7 are the front and rear respectively.  These increment every 30 degrees.&lt;br /&gt;
&lt;br /&gt;
* 8: Eight images - The first image is looking from the front, the second is 45 degrees from the front to the left, the third is from the left side, the fourth is 135 degrees from the front to the left, the last/fifth value is looking from the rear, the sixth is 135 degrees from the front to the right, the third is from the right side and the fourth is 45 from the front to the right.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;incvalue&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter specifies the &amp;quot;direction&amp;quot; of the animated frames.  A value of 1 causes the animation to go forwards (Example: The animation starts at tile #20, goes to #21, then to #22, etc.).  A value of -1 causes the animation to go backwards (Example: The animation starts at tile #20, goes to #19, then to #18, etc.). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;delay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This determines how long each frame of the animation lasts. Bigger values allow each frame to last longer.&lt;br /&gt;
&lt;br /&gt;
===What is an actor?===&lt;br /&gt;
&lt;br /&gt;
An actor is a sprite that will perform some function (spawn another sprite, give the player ammo, etc.) by performing several lines of code.&lt;br /&gt;
&lt;br /&gt;
The structure for this primitive is:&lt;br /&gt;
&lt;br /&gt;
actor &amp;lt;name&amp;gt; &amp;lt;strength&amp;gt; &amp;lt;action&amp;gt; &amp;lt;speed&amp;gt; &amp;lt;aifunction&amp;gt; {actor code} enda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is usually a string (such as PIGCOP) that is used to set the initial sprite of the actor.  If you look in DEFS.CON, you will see that PIGCOP is defined to be 2000, meaning that the initial sprite for the PIGCOP actor is sprite #2000.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strength&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the &amp;quot;health&amp;quot; value of the actor.  If a value of 0 is used, the actor cannot be destroyed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is the action that the actor is to use initially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;speed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the rate of movement of the current actor.  A value of 0 means that the actor cannot move.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;aifunction&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actor&#039;s initial ai routine.  This is really only used with monsters.&lt;br /&gt;
&lt;br /&gt;
{actor code}&lt;br /&gt;
&lt;br /&gt;
Now that we have defined our actor, we have to write its code.  Each time the actor being referenced is called (and this happens every frame for most animated actors), the code here is executed.  This can be many lines of code, since you are grouping them together with the curly braces.&lt;br /&gt;
&lt;br /&gt;
enda&lt;br /&gt;
&lt;br /&gt;
This parameter signals the end of the actor definition.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
In version 1.3D of Duke Nukem 3D, new actors cannot be added.  The name of an existing actor, its corresponding code, and the artwork itself can be changed to add new actors (if you want to go to all of this trouble).&lt;br /&gt;
&lt;br /&gt;
In versions 1.4 or 1.5, however, you can create your own actors (without having to replace existing ones).  See the section on &amp;quot;useractor&amp;quot; for more information on this.&lt;br /&gt;
&lt;br /&gt;
===What is an ai?===&lt;br /&gt;
&lt;br /&gt;
An ai is an &amp;quot;artificial intelligence&amp;quot; routine.  This is basically a set of code that an actor follows when said actor is instructed to do so.  The structure for this primitive is:&lt;br /&gt;
&lt;br /&gt;
ai &amp;lt;name&amp;gt; &amp;lt;action&amp;gt; &amp;lt;speed&amp;gt; &amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a name to identify this ai routine later on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This value is the name of the action that the actor will cycle through when he uses this ai function (i.e. - the animation it will use).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;speed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rate of movement of the character when using this ai function.  Negative values are allowed in this parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Determines the type of ai routine.  The ai types are already programmed into the game so you can&#039;t change these.  Some of the legal types are:&lt;br /&gt;
&lt;br /&gt;
* faceplayer: Actor faces the player&#039;s current position.&lt;br /&gt;
&lt;br /&gt;
* geth: Actor travels in a horizontal direction.&lt;br /&gt;
&lt;br /&gt;
* getv: Actor travels in a vertical direction.&lt;br /&gt;
&lt;br /&gt;
* randomangle: Actor will change to a random angle when it touches a wall or when the actor is currently being shot at by the player.  Only seems to work when the actor is a monster.&lt;br /&gt;
&lt;br /&gt;
* faceplayerslow: Actor faces the player&#039;s current position but slower than the regular faceplayer command.&lt;br /&gt;
&lt;br /&gt;
* spin: Actor spins in circles.&lt;br /&gt;
&lt;br /&gt;
* faceplayersmart: The actor will face slightly ahead of the player&#039;s current position, making it possible for monsters to &amp;quot;lead&amp;quot; you a little bit.&lt;br /&gt;
&lt;br /&gt;
* fleeenemy: Actor faces directly away from the player.&lt;br /&gt;
&lt;br /&gt;
* jumptoplayer: Actor attempts to jump.&lt;br /&gt;
&lt;br /&gt;
* seekplayer: Actor tries to find and move to the nearest player.&lt;br /&gt;
&lt;br /&gt;
* furthestdir: Actor faces the furthest distance from the closest player.&lt;br /&gt;
&lt;br /&gt;
* dodgebullet: Actor attempts to avoid all shots directed at him.&lt;br /&gt;
&lt;br /&gt;
You can use more than one ai at the same time by listing them in order in the code that you write.  For example: randomangle dodgebullet fleeenemy&lt;br /&gt;
&lt;br /&gt;
===What is a state?===&lt;br /&gt;
&lt;br /&gt;
A state is a set of code that you will use several times (this is very useful in that you don&#039;t have to write the same code over and over).  The usage for this primitive is as follows:&lt;br /&gt;
&lt;br /&gt;
state &amp;lt;name&amp;gt; {code} ends&lt;br /&gt;
&lt;br /&gt;
&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the name of your state function.  Can be any string.&lt;br /&gt;
&lt;br /&gt;
{code}&lt;br /&gt;
&lt;br /&gt;
This is simply the lines of code that you want to have executed when the state is called.  This can be any number of lines you want.&lt;br /&gt;
&lt;br /&gt;
ends&lt;br /&gt;
&lt;br /&gt;
This parameter signals the end of the state definition.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a state:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
state findgoldenapple   // Start and name the state itself.&lt;br /&gt;
{&lt;br /&gt;
  quote 150             // This is the code to execute...&lt;br /&gt;
  addphealth 10&lt;br /&gt;
}&lt;br /&gt;
ends                    // End of state.  Now returns to its caller.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To call a state from your code, simply type the following:&lt;br /&gt;
&lt;br /&gt;
state &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;name&amp;gt; parameter is simply the state that you want to call.&lt;br /&gt;
&lt;br /&gt;
===What is a useractor?===&lt;br /&gt;
&lt;br /&gt;
[This function only works with versions 1.4 and 1.5]&lt;br /&gt;
&lt;br /&gt;
The useractor command is a new addition to versions 1.4 and 1.5.  It allows people to create their own actors without having to replace old ones.  It&#039;s usage is almost exactly like regular actors.&lt;br /&gt;
&lt;br /&gt;
The structure of the useractor command is as follows:&lt;br /&gt;
&lt;br /&gt;
useractor &amp;lt;type&amp;gt; &amp;lt;name&amp;gt; &amp;lt;strength&amp;gt; {actor code}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is the type of actor that you want to create.  The legal values are as follows:&lt;br /&gt;
&lt;br /&gt;
* enemy : The actor&#039;s code will not be executed until approximately 1 second after the player has spotted the actor.&lt;br /&gt;
&lt;br /&gt;
* notenemy : The actor&#039;s code will not be executed until the player has spotted the actor.&lt;br /&gt;
&lt;br /&gt;
* enemystayput : The actor will not leave the current sector when the player goes out of sight (i.e. - the actor can no longer &amp;quot;see&amp;quot; the player).  This is most useful in custom enemy creation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is usually a string (such as PIGCOP) that is used to set the initial sprite of the actor.  If you look in DEFS.CON, you will see that PIGCOP is defined to be 2000, meaning that the initial sprite for the PIGCOP actor is sprite #2000.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strength&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the &amp;quot;health&amp;quot; value of the actor.  If a value of 0 is used, the actor cannot be destroyed.&lt;br /&gt;
&lt;br /&gt;
{actor code}&lt;br /&gt;
&lt;br /&gt;
This is the code that the actor will run.  This code includes the following items:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;action&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is the action that the actor is to use initially.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;speed&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the rate of movement of the current actor.  A value of 0 means that the actor cannot move.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;aifunction&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actor&#039;s initial ai routine.  This is really only used with monsters.&lt;br /&gt;
&lt;br /&gt;
===What is an if construction?===&lt;br /&gt;
&lt;br /&gt;
If statements are perhaps the most powerful aspect of CON file editing.  If statements evaluate the specified condition, and run code based on the returned value of the evaluation.&lt;br /&gt;
&lt;br /&gt;
Here is an example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifphealthl MAXPLAYERHEALTH&lt;br /&gt;
    addphealth MAXPLAYERHEALTH&lt;br /&gt;
else&lt;br /&gt;
    quote 999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This simple example simply says this:&lt;br /&gt;
&lt;br /&gt;
If the player&#039;s health is less than MAXPLAYERHEALTH (which by default is 100), add MAXPLAYERHEALTH to the player&#039;s current health.&lt;br /&gt;
Else, if the player&#039;s health is not less than MAXPLAYERHEALTH, print quote number 999&lt;br /&gt;
&lt;br /&gt;
==A COMPLETE PRIMITIVE LISTING==&lt;br /&gt;
===The Complete Primitive List===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Note by TerminX: this list is outdated and obsolete.  See [[full_command_list|this page]] for the current list of primitives.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following is a complete listing of all the &amp;quot;primitives&amp;quot; that can be placed into Duke Nukem 3D CON files.  Primitives are simply commands and syntax in code that can control and test the items in the game.&lt;br /&gt;
&lt;br /&gt;
If you find any errors in this section, e-mail me at: jonahb@3dportal.com&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
This is used (just like in C\C++) to denote comments.  Everything after this comment mark is ignored by the compiler.  A space must follow this comment mark, or the compiler will generate an error.&lt;br /&gt;
&lt;br /&gt;
/* and */&lt;br /&gt;
&lt;br /&gt;
These two marks are used to create comment blocks (just like in C\C++).  Place the /* at the beginning of the area you wish to ignore, and the */ at the end of the area you wish to ignore.  This is a handy way to create large comments or to ignore an entire section of code.&lt;br /&gt;
&lt;br /&gt;
{ and }&lt;br /&gt;
&lt;br /&gt;
These symbols are used to group several lines of code into one block of code (also called a function).  Used just like C\C++.&lt;br /&gt;
&lt;br /&gt;
[[action]] &amp;lt;name&amp;gt; &amp;lt;startframe&amp;gt; &amp;lt;frames&amp;gt; &amp;lt;viewtype&amp;gt; &amp;lt;incvalue&amp;gt; &amp;lt;delay&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See section 2.1 for an in-depth look at this primitive.&lt;br /&gt;
&lt;br /&gt;
action &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starts the action specified by &amp;lt;name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[actor]] &amp;lt;name&amp;gt; &amp;lt;strength&amp;gt; &amp;lt;action&amp;gt; &amp;lt;speed&amp;gt; &amp;lt;aifunction&amp;gt; {actor code} enda&lt;br /&gt;
&lt;br /&gt;
See section 2.2 for an in-depth look at this primitive.&lt;br /&gt;
&lt;br /&gt;
[[addammo]] &amp;lt;weapon&amp;gt; &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adds the &amp;lt;amount&amp;gt; of ammunition to the current or closest player&#039;s value for the appropriate &amp;lt;weapon&amp;gt;.  Legal values for &amp;lt;weapon&amp;gt; can be found in section 4.1.&lt;br /&gt;
&lt;br /&gt;
[[addinventory]] &amp;lt;item&amp;gt; &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adds &amp;lt;amount&amp;gt; to the current or closest player&#039;s value for the appropriate &amp;lt;item&amp;gt;.  Legal values for &amp;lt;item&amp;gt; can be found in section 4.2.&lt;br /&gt;
&lt;br /&gt;
[[addkills]] &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adds &amp;lt;amount&amp;gt; to the current or closest player&#039;s kill count.&lt;br /&gt;
&lt;br /&gt;
[[addphealth]] &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adds the value &amp;lt;amount&amp;gt; to the current or closest player&#039;s health.  Only the atomic health actor can boost the player&#039;s health value over the MAXPLAYERHEALTH value.&lt;br /&gt;
&lt;br /&gt;
[[addstrength]] &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adds &amp;lt;value&amp;gt; to the strength (health) of the current actor.&lt;br /&gt;
&lt;br /&gt;
[[addweapon]] &amp;lt;weapon&amp;gt; &amp;lt;ammo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gives the current or closes player the specified &amp;lt;weapon&amp;gt; with an initial amount of ammunition equal to &amp;lt;ammo&amp;gt;.  Legal values for &amp;lt;weapon&amp;gt; can be found in section 4.3.&lt;br /&gt;
&lt;br /&gt;
[[ai]] &amp;lt;name&amp;gt; &amp;lt;action&amp;gt; &amp;lt;speed&amp;gt; &amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See section 2.3 for an in-depth look at this primitive.&lt;br /&gt;
&lt;br /&gt;
ai &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Makes the ai function &amp;lt;name&amp;gt;, the current actor&#039;s current ai routine.&lt;br /&gt;
&lt;br /&gt;
[[break]]&lt;br /&gt;
&lt;br /&gt;
Immediately leave the current state or actor code.&lt;br /&gt;
&lt;br /&gt;
[[cactor]] &amp;lt;actor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change from the code of the current actor to the code of the actor identified by &amp;lt;actor&amp;gt;.  All initialization values of the specified &amp;lt;actor&amp;gt; are ignored when this primitive is used.&lt;br /&gt;
&lt;br /&gt;
[[clipdist]] &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;value&amp;gt; parameter can be any value from 0 to 255.  When a sprite or actor is blocked (by setting blocking with the [B] key in Build or through the use of the cstat primitive in GAME.CON), a &amp;quot;force field&amp;quot; (for lack of a better term) is set up around the sprite.  The clipdist value determines how close an actor can get to the sprite before being blocked by that invisible &amp;quot;force field&amp;quot;.  The lower the value, the closer the player or an actor can get.  A clipdist of 255 equals the distance of the largest grid size in Build which equals 1024 Build units.  The default for &amp;lt;value&amp;gt; seems to be 32.  The same effect can also be achieved in Build by placing the cursor on the sprite (in 3D mode) and pressing the [ALT]+[D] key combination.  Also, it would appear that this only works on a sprite that rotates with the player.  If (in Build&#039;s 3D mode) you press the [R] key to align the sprite to the grid or to the floor, altering the clipdist primitive has no effect.  In addition, this attribute does not work on all sprites.  At this time there is no explanation for why this primitive should either work or not work.&lt;br /&gt;
&lt;br /&gt;
[[count]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the current actor&#039;s count to &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[cstat]] &amp;lt;mask&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive manually sets some various flags for an actor (a sprite).  All previous settings are lost when this function is used.  The legal values for &amp;lt;mask&amp;gt; can be found in section 4.4.&lt;br /&gt;
&lt;br /&gt;
[[cstator]] &amp;lt;mask&amp;gt; (Used in Versions 1.4 and 1.5 Only)&lt;br /&gt;
&lt;br /&gt;
This primitive manually sets some various flags for an actor (a sprite).  All previous settings are not lost when this function is used; they are simply added together.  This is a little like the &amp;quot;or&amp;quot; in C\C++.  The legal values for &amp;lt;mask&amp;gt; can be found in section 4.4.&lt;br /&gt;
&lt;br /&gt;
[[debris]] &amp;lt;type&amp;gt; &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive causes debris to fly around the actor.  The &amp;lt;type&amp;gt; parameter is the sprite group used for the debris.  Legal values are: SCRAP1, SCRAP2, SCRAP3, SCRAP4, SCRAP5, and SCRAP6.  The higher the &amp;lt;amount&amp;gt; value, the more debris.&lt;br /&gt;
&lt;br /&gt;
[[debug]] &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prints the value of &amp;lt;parameter&amp;gt; to the current output buffer.  If a standard game is loaded, with the default output buffer being used, it will print the value to the screen.  If the output buffer is changed (for example: &amp;quot;duke3d.exe -map test.map /q8 &amp;gt; test.log&amp;quot;), the standard output will be printed to the output buffer &amp;quot;test.log&amp;quot;.  You then can open this file later to look at the values that were printed out.&lt;br /&gt;
&lt;br /&gt;
[[define]] &amp;lt;string&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive makes &amp;lt;string&amp;gt; equal &amp;lt;value&amp;gt;.  This allows you to use the string (which is a lot easier to remember) in your coding.  The following example sets the string MAXPLAYERHEALTH to the value of 100.&lt;br /&gt;
&lt;br /&gt;
EXAMPLE: define MAXPLAYERHEALTH 100&lt;br /&gt;
&lt;br /&gt;
[[definelevelname]] &amp;lt;eps&amp;gt; &amp;lt;lvl&amp;gt; &amp;lt;mapname&amp;gt; &amp;lt;par time&amp;gt; &amp;lt;3drealms&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defines a level name where the episode number is &amp;lt;eps&amp;gt;, the level number is &amp;lt;lvl&amp;gt;, the map name (a string) is &amp;lt;mapname&amp;gt;, the par time is &amp;lt;par time&amp;gt;, and the 3D Realms time is &amp;lt;3drealms&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[definequote]] &amp;lt;value&amp;gt; &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets &amp;lt;string&amp;gt; equal to &amp;lt;value&amp;gt;.  This is used when printing quotes at the top of the screen while in the game (it saves you from having to type the quote over and over).&lt;br /&gt;
&lt;br /&gt;
[[defineskillname]] &amp;lt;skill&amp;gt; &amp;lt;string&amp;gt; (Used in Versions 1.4 and 1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Makes &amp;lt;string&amp;gt; equal the desired difficulty level (which is &amp;lt;value&amp;gt;).  Legal values for &amp;lt;skill&amp;gt; are: 0, 1, 2, and 3.  The higher the number, the harder the skill level.  This is only used for setting the text of the skill levels on the skill level selection screen.&lt;br /&gt;
&lt;br /&gt;
[[definesound]] &amp;lt;value&amp;gt; &amp;lt;file&amp;gt; &amp;lt;pitch1&amp;gt; &amp;lt;pitch2&amp;gt; &amp;lt;priority&amp;gt; &amp;lt;type&amp;gt; &amp;lt;volume&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;value&amp;gt; parameter is the name of the sound (you make this up).  The &amp;lt;file&amp;gt; parameter is the .voc or the .wav file that the game will try to find to use for this sound.  The &amp;lt;pitch1&amp;gt; and &amp;lt;pitch2&amp;gt; are random pitch variations (these can be both negative and positive).  The &amp;lt;priority&amp;gt; is the importance of the sound (telling the game that this sound has priority over other sounds).  Values of 0 to 255 inclusive are acceptable for &amp;lt;priority&amp;gt;, with larger numbers being more important.  The &amp;lt;type&amp;gt; is the type of sound in the game. Legal values for &amp;lt;type&amp;gt; are:  The &amp;lt;volume&amp;gt; is the volume of the sound, ranging from -32,767 to 32,767.  Negative values are louder and positive values are softer.&lt;br /&gt;
&lt;br /&gt;
[[definevolumename]] &amp;lt;episode&amp;gt; &amp;lt;name&amp;gt; (Used in Versions 1.4 and 1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Defines title for each episode where &amp;lt;episode&amp;gt; is the episode number and &amp;lt;name&amp;gt; is the name it will get.&lt;br /&gt;
&lt;br /&gt;
[[else]]&lt;br /&gt;
&lt;br /&gt;
This is used in &amp;quot;if-else&amp;quot; statements.  This returns true if the last function returned false.&lt;br /&gt;
&lt;br /&gt;
[[enda]]&lt;br /&gt;
&lt;br /&gt;
Closes an actor or useractor function.&lt;br /&gt;
&lt;br /&gt;
[[endofgame]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ends the game after &amp;lt;number&amp;gt; counts.  For example, a value of 180 would end the game after approximately 6 seconds (30 = 1 second).  A value of 52 is used to end each episode.  This primitive obviously appears to exist as a &amp;quot;sleep&amp;quot; function of sorts.  I believe that this is used to allow the death sequence of the boss to be completely viewed by the player, but this is only one suggestion as to its proper use.&lt;br /&gt;
&lt;br /&gt;
[[ends]]&lt;br /&gt;
&lt;br /&gt;
Closes a state function.&lt;br /&gt;
&lt;br /&gt;
[[fall]]&lt;br /&gt;
&lt;br /&gt;
Let the current actor fall until it hits a surface.&lt;br /&gt;
&lt;br /&gt;
[[gamestartup]]&lt;br /&gt;
&lt;br /&gt;
This is the main function which &amp;quot;starts&amp;quot; the game.  It gets all the hard coded values passed as parameters.  The values that get passed can not be changed during gameplay.  There are too many parameters for this primitive to list here, so take a look at the user.con file.&lt;br /&gt;
&lt;br /&gt;
[[getlastpal]]&lt;br /&gt;
&lt;br /&gt;
Sets the palette of the current actor back to the color before the last change.&lt;br /&gt;
&lt;br /&gt;
[[globalsound]] &amp;lt;sound&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Play sound that can be heard everywhere in the map.  The &amp;lt;sound&amp;gt; value is the name of the sound to play (not the filename of the sound).&lt;br /&gt;
&lt;br /&gt;
[[guts]] &amp;lt;type&amp;gt; &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same as debris but then for body parts. Legal values for &amp;lt;type&amp;gt; can be found in section 4.5.  The &amp;lt;amount&amp;gt; value determines the amount of guts to make fly.&lt;br /&gt;
&lt;br /&gt;
[[hitradius]] &amp;lt;radius&amp;gt; &amp;lt;1&amp;gt; &amp;lt;2&amp;gt; &amp;lt;3&amp;gt; &amp;lt;4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make an explosion (not the actual animation but just the damage).  The &amp;lt;radius&amp;gt; value is the radius, &amp;lt;4&amp;gt; is how much damage is done in first quarter of circle (right near the center of the circle), &amp;lt;3&amp;gt; is how much damage is done in second quarter of circle, etc.&lt;br /&gt;
&lt;br /&gt;
[[ifaction]] &amp;lt;action&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test if the current actor is executing the giving &amp;lt;action&amp;gt;. The &amp;lt;action&amp;gt; parameter is defined by the action primitive (see section 2.1).&lt;br /&gt;
&lt;br /&gt;
[[ifactioncount]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if the actor has displayed a set &amp;lt;number&amp;gt; of frames since the last call to resetactioncount.&lt;br /&gt;
&lt;br /&gt;
[[ifactor]] &amp;lt;actorid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor is equal to &amp;lt;actorid&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifactornotstayput]]&lt;br /&gt;
&lt;br /&gt;
Test if the current actor already &amp;lt;activated&amp;gt;, where &amp;lt;activated&amp;gt; means spotted by a player or he has spotted the player.  It seems that an actors code isn&#039;t executed at all until one of the above events occur.  You can notice this in the game.  If you  create a map where an actor (i.e. health) is lifted into the sky, he doesn&#039;t fall down to the ground until you spot it!  (I&#039;m not 100% sure about this one).&lt;br /&gt;
&lt;br /&gt;
[[ifai]] &amp;lt;ainame&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if the current actor is using the ai function &amp;lt;ainame&amp;gt; which was defined with the ai primitive (see section 2.3).&lt;br /&gt;
&lt;br /&gt;
[[ifangdiffl]] &amp;lt;angle&amp;gt; (Used in Versions 1.4 and 1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Returns true if the angle between the current actor and the player is less than &amp;lt;angle&amp;gt;.  360 degrees is a value of 2048.&lt;br /&gt;
&lt;br /&gt;
[[ifawayfromwall]]&lt;br /&gt;
&lt;br /&gt;
Returns true when an actor is away from all walls (including sector divisions (red lines)) in the game.&lt;br /&gt;
&lt;br /&gt;
[[ifbulletnear]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor is being shot at (bullets are coming close to the actor).&lt;br /&gt;
&lt;br /&gt;
[[ifcansee]]&lt;br /&gt;
&lt;br /&gt;
Tests if the current actor can see the player.  It also seems to have another function.  It seems as if you need to call this function to give an actor a new position to walk to when using the seekenemy and some other ai functions.  If you don&#039;t call this when using that ai function he will just walk up to your previous position and just stop there!&lt;br /&gt;
&lt;br /&gt;
[[ifcanseetarget]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor can see the player.&lt;br /&gt;
&lt;br /&gt;
[[ifcanshoottarget]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor can shoot the player (which seems to be the only target the actor has).&lt;br /&gt;
&lt;br /&gt;
[[ifceilingdistl]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the distance between the current actor&#039;s center and the ceiling is less than &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifcount]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor&#039;s local counter has reached &amp;lt;number&amp;gt; counts.&lt;br /&gt;
&lt;br /&gt;
[[ifdead]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor has no strength (health) left.  The actor must have had health at some point for this to return true.&lt;br /&gt;
&lt;br /&gt;
[[iffloordistl]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the distance between the current actor&#039;s center and the floor is less than &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifgapzl]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if the distance between the floor and the ceiling at the actor&#039;s location is less than &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifgotweaponce]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;number&amp;gt; is set to 0, in multiplayer games of either cooperative or dukematch with the no spawn option turned on, the player can only get the weapon if they don&#039;t already have it.  If &amp;lt;number&amp;gt; is set to 1, in multiplayer games of either cooperative or Dukematch with the no spawn option turned on, the player cannot get the weapon at all.&lt;br /&gt;
&lt;br /&gt;
[[ifhitspace]]&lt;br /&gt;
&lt;br /&gt;
Tests to see if the player is pressing the use key (which is the spacebar by default).&lt;br /&gt;
&lt;br /&gt;
[[ifhitweapon]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor has been hit by a weapon.&lt;br /&gt;
&lt;br /&gt;
[[ifinouterspace]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the following parameters are true: &amp;quot;ifinspace&amp;quot; is true and the ceiling (or floor) palette on the BigSpace texture is 0.  This primitive is basically useless, since it is called a split second before the player dies from the vacuum of space.&lt;br /&gt;
&lt;br /&gt;
[[ifinspace]]&lt;br /&gt;
&lt;br /&gt;
Checks if current player is in space.  &amp;quot;Space&amp;quot; means when the floor or ceiling is parallaxed and the texture is one of the space textures.&lt;br /&gt;
&lt;br /&gt;
[[ifinwater]]&lt;br /&gt;
&lt;br /&gt;
Tests if the current actor is in a sector with a lotag of 2 (underwater sectors).&lt;br /&gt;
&lt;br /&gt;
[[ifmove]] &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor is using the movement defined by &amp;lt;name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifmultiplayer]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current game is a cooperative game.&lt;br /&gt;
&lt;br /&gt;
[[ifnosounds]]&lt;br /&gt;
&lt;br /&gt;
Tests if the current actor is not playing any sound effects.&lt;br /&gt;
&lt;br /&gt;
[[ifnotmoving]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor has stopped moving.  This is used to test if an actor is &amp;quot;stuck&amp;quot; against a wall (usually a monster stuck near a door) - at which point the &amp;quot;operate&amp;quot; primitive can be used to allow the stuck actor to try and free himself.&lt;br /&gt;
&lt;br /&gt;
[[ifonwater]]&lt;br /&gt;
&lt;br /&gt;
Returns true if the current actor is in a sector with a lotag of 1 (above water sector) and is on or near the surface.&lt;br /&gt;
&lt;br /&gt;
[[ifoutside]]&lt;br /&gt;
&lt;br /&gt;
Tests if player is outside.  A player is outside when he is in a room with parallaxing on.&lt;br /&gt;
&lt;br /&gt;
[[ifp]]  &amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the current &amp;lt;type&amp;gt; is true.  Legal values for the &amp;lt;type&amp;gt; parameter can be found in section 4.6.&lt;br /&gt;
&lt;br /&gt;
[[ifpdistg]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if the current or closest player&#039;s distance is greater than &amp;lt;number&amp;gt;. A value of 1024 is equivalent to the largest grid size in Build.&lt;br /&gt;
&lt;br /&gt;
[[ifpdistl]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if the current or closest player&#039;s distance is less than &amp;lt;number&amp;gt;.  A value of 1024 is equivalent to the largest grid size in Build.&lt;br /&gt;
&lt;br /&gt;
[[ifphealthl]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if the player&#039;s health is less than &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifpinventory]] &amp;lt;item&amp;gt; &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;item&amp;gt; value is the inventory item to be tested.  The &amp;lt;amount&amp;gt; value is the amount to test for.  This function will return true when the &amp;lt;item&amp;gt; is not equal to the &amp;lt;amount&amp;gt; value.  Legal values for &amp;lt;item&amp;gt; can be found in section 4.2.&lt;br /&gt;
&lt;br /&gt;
[[ifrespawn]]&lt;br /&gt;
&lt;br /&gt;
For monsters, tests if monster respawn mode is turned on.  For items, tests if item (weapons, ammo, etc.) respawn mode is on.&lt;br /&gt;
&lt;br /&gt;
[[ifrnd]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generates a random probability of something happening.  The &amp;lt;number&amp;gt; value divided by 256 is the chance that something will happen.  So a value of 256 would happen all the time (256/256 = 1 = 100%).&lt;br /&gt;
&lt;br /&gt;
[[ifspawnedby]] &amp;lt;actor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Checks if the current actor was spawned by &amp;lt;actor&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifspritepal]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if the palette of the current actor is equal to &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[ifsquished]]&lt;br /&gt;
&lt;br /&gt;
Tests if the current actor has been squished.  This can be caused by the actor being shrunken and stepped on, or squished by a falling sector (i.e. - the ceiling height of the sector at one point or another is the same height at the floor height of the sector).&lt;br /&gt;
&lt;br /&gt;
[[ifstrength]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests if current actor has &amp;lt;number&amp;gt; strength (health) left.&lt;br /&gt;
&lt;br /&gt;
[[ifwasweapon]] &amp;lt;weapon&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tests what weapon the actor has been hit by.  This primitive appears only to work after the &amp;quot;ifhitweapon&amp;quot; primitive is called.  The legal values for &amp;lt;weapon&amp;gt; can be found in section 4.7.&lt;br /&gt;
&lt;br /&gt;
[[include]] &amp;lt;filename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Includes &amp;lt;filename&amp;gt; in the compiling process.&lt;br /&gt;
&lt;br /&gt;
[[killit]]&lt;br /&gt;
&lt;br /&gt;
Removes the current actor from the map.&lt;br /&gt;
&lt;br /&gt;
[[lotsofglass]] &amp;lt;amount&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spawns glass shards, much like when a window has broken.  The &amp;lt;amount&amp;gt; parameter determines the number of glass shards to spawn.&lt;br /&gt;
&lt;br /&gt;
[[mail]] &amp;lt;number&amp;gt; (Used in Versions 1.4 and 1.5 Only)&lt;br /&gt;
&lt;br /&gt;
This primitive spawns some envelope sprites.  The &amp;lt;number&amp;gt; value is the amount of mail to spawn.&lt;br /&gt;
&lt;br /&gt;
[[mikesnd]]&lt;br /&gt;
&lt;br /&gt;
Plays the sound assigned to the microphone sprite in Build (the microphone sprite&#039;s hitag is the sound number to be played).  This might be available for use on other sprites (other than the microphone that is).  I&#039;m not 100% sure.&lt;br /&gt;
&lt;br /&gt;
[[money]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive is used to spawn a specified &amp;lt;number&amp;gt; of dollar bill sprites.&lt;br /&gt;
&lt;br /&gt;
[[move]] &amp;lt;name&amp;gt; &amp;lt;horizontal&amp;gt; &amp;lt;vertical&amp;gt; &amp;lt;directions&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assigns &amp;lt;name&amp;gt; to a &amp;lt;horizontal&amp;gt; and &amp;lt;vertical&amp;gt; velocity, with optional &amp;lt;directions&amp;gt;.  See section 4.10 for a listing of valid &amp;lt;directions&amp;gt;.  Also used to tell an actor to move with the desired velocities and directions.&lt;br /&gt;
&lt;br /&gt;
[[music]] &amp;lt;episode&amp;gt; &amp;lt;m1&amp;gt; &amp;lt;m2&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
Defines the music used for each level in each episode.  The &amp;lt;episode&amp;gt; parameter is the episode number, with the individual music files following the episode number.  This is usually defined in user.con.&lt;br /&gt;
&lt;br /&gt;
[[nullop]]&lt;br /&gt;
&lt;br /&gt;
The nullop primitive is another way to signify empty braces - {}.&lt;br /&gt;
&lt;br /&gt;
[[operate]]&lt;br /&gt;
&lt;br /&gt;
This primitive is used to allow the current actor to operate, which simply means that the current actor can open a door if one is nearby.  The actor should not constantly operate, because the door will close again if the actor operates immediately after operating the first time.&lt;br /&gt;
&lt;br /&gt;
[[palfrom]] &amp;lt;intensity&amp;gt; &amp;lt;red&amp;gt; &amp;lt;green&amp;gt; &amp;lt;blue&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive is used to flash a specified color (set by mixing the &amp;lt;red&amp;gt;, &amp;lt;green&amp;gt;, and &amp;lt;blue&amp;gt; parameters) on the screen with a specified &amp;lt;intensity&amp;gt; amount.  The values for the any of the parameters can be anything between 0 and 64.&lt;br /&gt;
&lt;br /&gt;
[[paper]] &amp;lt;number&amp;gt; (Used in Versions 1.4 and 1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Spawns some paper sprites, which then float down to the ground.  The &amp;lt;number&amp;gt; parameter is the amount of paper to spawn.&lt;br /&gt;
&lt;br /&gt;
[[pkick]]&lt;br /&gt;
&lt;br /&gt;
The current or closest player will perform a &amp;quot;quick kick&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[pstomp]]&lt;br /&gt;
&lt;br /&gt;
The current or closest player will look down and step on the nearest actor (if one is near).&lt;br /&gt;
&lt;br /&gt;
[[quote]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive prints quote &amp;lt;number&amp;gt; at the top of the screen.  All game quotes can be found and are defined in user.con.&lt;br /&gt;
&lt;br /&gt;
[[resetactioncount]]&lt;br /&gt;
&lt;br /&gt;
Sets the action counter to 0.  This counter counts the number of frames of animation that the current actor has displayed.&lt;br /&gt;
&lt;br /&gt;
[[resetcount]]&lt;br /&gt;
&lt;br /&gt;
Set the current actor&#039;s local counter to 0.&lt;br /&gt;
&lt;br /&gt;
[[resetplayer]]&lt;br /&gt;
&lt;br /&gt;
In a multiplayer game, this primitive spawns the player at one of the multiplayer starting positions, with the default amount of ammo, armor, and health.  In a single player game, this primitive simply restarts the current level.&lt;br /&gt;
&lt;br /&gt;
[[respawnhitag]]&lt;br /&gt;
&lt;br /&gt;
This primitive activates up to 9 respawn actors who have the same lotag as the current actor&#039;s hitag.&lt;br /&gt;
&lt;br /&gt;
[[shoot]] &amp;lt;weapon&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allows the current actor to shoot - eject - fire the specified &amp;lt;weapon&amp;gt;.  Legal values for &amp;lt;weapon&amp;gt; can be found in section 4.8.  The direction that the &amp;lt;weapon&amp;gt; is fired depends on the AI function of the actor.&lt;br /&gt;
&lt;br /&gt;
[[sizeat]] &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; (Used in Versions 1.4 and 1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Immediately resizes the current actor to &amp;lt;x&amp;gt; width and &amp;lt;y&amp;gt; height.&lt;br /&gt;
&lt;br /&gt;
[[sizeto]] &amp;lt;x&amp;gt; &amp;lt;y&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gradually resizes the current actor to &amp;lt;x&amp;gt; width and &amp;lt;y&amp;gt; height.&lt;br /&gt;
&lt;br /&gt;
[[sleeptime]] &amp;lt;time&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive makes the current actor sleep for &amp;lt;time&amp;gt; counts.  The current actor is not &amp;quot;activated&amp;quot; again until it &amp;quot;sees&amp;quot; the player.&lt;br /&gt;
&lt;br /&gt;
[[sound]] &amp;lt;sound&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive plays a specified &amp;lt;sound&amp;gt;.  The &amp;lt;sound&amp;gt; parameter is the name of the sound to be played (these can be found in user.con).&lt;br /&gt;
&lt;br /&gt;
[[soundonce]] &amp;lt;sound&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive plays a specified &amp;lt;sound&amp;gt;.  The sound cannot be activated again until it has completely finished playing.&lt;br /&gt;
&lt;br /&gt;
[[spawn]] &amp;lt;actor&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creates a new actor (defined by &amp;lt;actor&amp;gt;) in the map.  Some special actors can be spawned to create some neat effects.  See section 3.4 for more information on which actors are special to the spawn primitive.&lt;br /&gt;
&lt;br /&gt;
[[spritepal]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes the current actor&#039;s palette to &amp;lt;number&amp;gt;.  Legal values for &amp;lt;number&amp;gt; can be found in section 4.9.&lt;br /&gt;
&lt;br /&gt;
[[state]] &amp;lt;statename&amp;gt; {code} ends&lt;br /&gt;
&lt;br /&gt;
This is used to construct a state function.  See section 2.4 for a more detailed description of what this does.&lt;br /&gt;
&lt;br /&gt;
state &amp;lt;statename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive calls a state function with &amp;lt;statename&amp;gt; being the name of the state function.  The state function must be above where this line is called.&lt;br /&gt;
&lt;br /&gt;
[[stopsound]] &amp;lt;sound&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stops the currently playing &amp;lt;sound&amp;gt; from playing.&lt;br /&gt;
&lt;br /&gt;
[[strength]] &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This primitive changes the strength (health) of the current actor to &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[tip]]&lt;br /&gt;
&lt;br /&gt;
Starts the current or closest player&#039;s &amp;quot;tipping&amp;quot; routine.&lt;br /&gt;
&lt;br /&gt;
[[tossweapon]]&lt;br /&gt;
&lt;br /&gt;
This primitive spawns the player&#039;s currently selected weapon when the player dies in the game.&lt;br /&gt;
&lt;br /&gt;
[[wackplayer]]&lt;br /&gt;
&lt;br /&gt;
This primitive tilts the screen to one side when called.&lt;br /&gt;
&lt;br /&gt;
===Predefined State Functions===&lt;br /&gt;
&lt;br /&gt;
The following is a listing of (most) state functions that already exist in the GAME.CON file.  You can alter these to your liking, but the default functions are described here.  The states are listed in order of appearance (at least in the 1.4/1.5 CON files).&lt;br /&gt;
&lt;br /&gt;
state jib_sounds&lt;br /&gt;
&lt;br /&gt;
Plays one of those nice sounds like &amp;quot;What a mess&amp;quot; or &amp;quot;Let God sort em&#039; out&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
state standard_jibs&lt;br /&gt;
&lt;br /&gt;
Spawns some random body parts.&lt;br /&gt;
&lt;br /&gt;
state genericshrunkcode&lt;br /&gt;
&lt;br /&gt;
Shrink an actor and stomp on it if you are within the correct distance.&lt;br /&gt;
&lt;br /&gt;
state genericgrowcode (Versions 1.4/1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Make the current actor grow and then explode.&lt;br /&gt;
&lt;br /&gt;
state blimphitstate&lt;br /&gt;
&lt;br /&gt;
Spawn an explosion and debris, kill the actor, and some other stuff...&lt;br /&gt;
&lt;br /&gt;
state rats&lt;br /&gt;
&lt;br /&gt;
Spawn some rats.&lt;br /&gt;
&lt;br /&gt;
state toughgalspeech (Versions 1.4/1.5 Only)&lt;br /&gt;
&lt;br /&gt;
The sounds to play when the tough girl talks.&lt;br /&gt;
&lt;br /&gt;
state jibfood (Versions 1.4/1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Make food disappear when shot and spawn some gross jibs.&lt;br /&gt;
&lt;br /&gt;
state breakobject (Versions 1.4/1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Code that makes all the breakable objects in versions 1.4 and 1.5 break when shot by the player.&lt;br /&gt;
&lt;br /&gt;
state headhitstate&lt;br /&gt;
&lt;br /&gt;
Gets called when player is hurt badly.  The screen tilts when the player gets hit and his health is very low.&lt;br /&gt;
&lt;br /&gt;
state burningstate&lt;br /&gt;
&lt;br /&gt;
Set the current actor on fire.&lt;br /&gt;
&lt;br /&gt;
state steamcode&lt;br /&gt;
&lt;br /&gt;
Update steam sprite, subtract health from player who is near, etc.&lt;br /&gt;
&lt;br /&gt;
state random_ooz (Versions 1.4/1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Spawns some ooze.&lt;br /&gt;
&lt;br /&gt;
state burningbarrelcode&lt;br /&gt;
&lt;br /&gt;
Code for a burning barrel.&lt;br /&gt;
&lt;br /&gt;
state getcode&lt;br /&gt;
&lt;br /&gt;
Gets an item and prepares it for respawn (if necessary).&lt;br /&gt;
&lt;br /&gt;
state randgetweapsnds&lt;br /&gt;
&lt;br /&gt;
Plays a random sound when a weapon is picked up by the player.  Examples are &amp;quot;Groovy&amp;quot; or &amp;quot;Come get some!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
state getweaponcode&lt;br /&gt;
&lt;br /&gt;
Gets the current weapon and prepares it for respawn if necessary.&lt;br /&gt;
&lt;br /&gt;
state respawnit&lt;br /&gt;
&lt;br /&gt;
Respawn items in a multiplayer game.&lt;br /&gt;
&lt;br /&gt;
state quikget&lt;br /&gt;
&lt;br /&gt;
Get code for the atomic health or other items.  Does not cause the sprite to respawn.&lt;br /&gt;
&lt;br /&gt;
state quikweaponget&lt;br /&gt;
&lt;br /&gt;
Get code for weapons.&lt;br /&gt;
&lt;br /&gt;
state firestate&lt;br /&gt;
&lt;br /&gt;
Updates flames, checks to see if Duke is burning himself, etc.&lt;br /&gt;
&lt;br /&gt;
state drop_ammo&lt;br /&gt;
&lt;br /&gt;
Drops ammo if the odds for dropping it are right.&lt;br /&gt;
&lt;br /&gt;
state drop_battery&lt;br /&gt;
&lt;br /&gt;
Drops chaingun ammo if the odds for dropping it are right.&lt;br /&gt;
&lt;br /&gt;
state drop_sgshells&lt;br /&gt;
&lt;br /&gt;
Drops shotgun ammo if the odds for dropping it are right.&lt;br /&gt;
&lt;br /&gt;
state drop_shotgun&lt;br /&gt;
&lt;br /&gt;
Drops shotgun if the odds for dropping it are right.&lt;br /&gt;
&lt;br /&gt;
state drop_chaingun&lt;br /&gt;
&lt;br /&gt;
Drops chaingun if the odds for dropping it are right.&lt;br /&gt;
&lt;br /&gt;
state random_wall_jibs&lt;br /&gt;
&lt;br /&gt;
Spawns blood on the walls when an enemy is shot and near a wall.&lt;br /&gt;
&lt;br /&gt;
state femcode&lt;br /&gt;
&lt;br /&gt;
Takes care of the female actors in the game.&lt;br /&gt;
&lt;br /&gt;
state killme&lt;br /&gt;
&lt;br /&gt;
Lets some women say &amp;quot;kill me&amp;quot; when the player presses the space bar near her.&lt;br /&gt;
&lt;br /&gt;
state tipme&lt;br /&gt;
&lt;br /&gt;
Lets Duke give some women a dollar bill and say &amp;quot;Wanna dance&amp;quot; or &amp;quot;Shake it baby&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
state toughgaltalk (Versions 1.4/1.5 Only)&lt;br /&gt;
&lt;br /&gt;
Make the tough girl talk when the player presses [SPACE].&lt;br /&gt;
&lt;br /&gt;
state troop_body_jibs&lt;br /&gt;
&lt;br /&gt;
Spawns some trooper body parts.&lt;br /&gt;
&lt;br /&gt;
state liz_body_jibs&lt;br /&gt;
&lt;br /&gt;
Spawns some lizard body parts.&lt;br /&gt;
&lt;br /&gt;
state standard_pjibs&lt;br /&gt;
&lt;br /&gt;
Spawns some Duke body parts.&lt;br /&gt;
&lt;br /&gt;
state handle_dead_dukes&lt;br /&gt;
&lt;br /&gt;
The code for making blood pools, etc. when Duke dies. Also handles the disappearing for Duke&#039;s body in multiplayer.&lt;br /&gt;
&lt;br /&gt;
state check p_standard&lt;br /&gt;
&lt;br /&gt;
Makes the animations of Duke walking when walking, jumping when jumping, etc.&lt;br /&gt;
&lt;br /&gt;
state rf&lt;br /&gt;
&lt;br /&gt;
Changes the cstat to 4 ifrnd 128, else it makes the cstat 0. This is used in flipping corpse sprites so they don&#039;t all look the same.&lt;br /&gt;
&lt;br /&gt;
There are too many enemy states to put here, but they all cover the basic artificial intelligence routines for each enemy.&lt;br /&gt;
&lt;br /&gt;
===Known Bugs and Problems===&lt;br /&gt;
&lt;br /&gt;
* Bug #1: Calling an ai routine (from an actor or state) that is already running, will cancel the ai routine, leaving the actor or state frozen in its code execution.  The only known workaround for this bug is to make sure that the ai routine you want to call isn&#039;t already running.&lt;br /&gt;
&lt;br /&gt;
* Bug #2: Sometimes con files don&#039;t want to compile properly, especially when user code or actors is added.  The fix for this is extremely simple: A blank line must appear at the end of every con file that you edit.  Some problems can occur with this bug, so it is recommended to check this before compiling your con files.&lt;br /&gt;
&lt;br /&gt;
===Special Notes===&lt;br /&gt;
&lt;br /&gt;
* Note #1: There are several special actors that can be used with the spawn primitive.  These special actors are as follows:&lt;br /&gt;
&lt;br /&gt;
* EXPLOSION2 - When this actor is called for the first time, it will create light, which can be used to create some minor lighting effects. &#039;&#039;&#039;NOTE: You can do the same thing in EDuke32 with the [[flash]] parameter.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* FRAMEEFFECT1 - When this actor is spawned, a blurring effect is caused on the affected actor.  This is used to make the blurring effect when monsters in the game are shrunk with the shrink ray weapon. If you are using steroids, then your view of yourself (and other players in multiplayer) will be blurred.&lt;br /&gt;
&lt;br /&gt;
* Note #2: It appears that the &amp;quot;ifhitweapon&amp;quot; primitive must be executed if a weapon is to damage an actor.  If it is not, the actor cannot be destroyed.&lt;br /&gt;
&lt;br /&gt;
* Note #3: The &amp;quot;move&amp;quot; primitive seems to cancel any running commands when called.  I&#039;m currently not 100% about this fact, but I have heard this rumor several places.&lt;br /&gt;
&lt;br /&gt;
* Note #4: The BLIMP actor uses the &amp;quot;debris&amp;quot; primitive, but it spawns ammunition, inventory items, and weapons instead.&lt;br /&gt;
&lt;br /&gt;
* Note #5: The ATOMICHEALTH actor is the only actor capable of raising the player&#039;s health value above MAXPLAYERHEALTH.&lt;br /&gt;
&lt;br /&gt;
* Note #6: Removing an actor&#039;s image from the .art files prevents them from being spawned in the game.  Tile number 0 (the ugly, brown, brick wall) will be spawned in their place.&lt;br /&gt;
&lt;br /&gt;
==LEGAL VALUES==&lt;br /&gt;
&lt;br /&gt;
===Values for addammo===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    KNEE_WEAPON&lt;br /&gt;
    PISTOL_WEAPON&lt;br /&gt;
    SHOTGUN_WEAPON&lt;br /&gt;
    CHAINGUN_WEAPON&lt;br /&gt;
    RPG_WEAPON&lt;br /&gt;
    HANDBOMB_WEAPON&lt;br /&gt;
    SHRINKER_WEAPON&lt;br /&gt;
    TRIPBOMB_WEAPON&lt;br /&gt;
    DEVISTATOR_WEAPON&lt;br /&gt;
    FREEZE_WEAPON&lt;br /&gt;
    HANDREMOTE_WEAPON&lt;br /&gt;
    GROW_WEAPON [Versions 1.4 and 1.5 Only]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Values for addinventory and ifpinventory===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    GET_STEROIDS&lt;br /&gt;
    GET_HEATS&lt;br /&gt;
    GET_BOOTS&lt;br /&gt;
    GET_SHIELD&lt;br /&gt;
    GET_SCUBA&lt;br /&gt;
    GET_HOLODUKE&lt;br /&gt;
    GET_JETPACK&lt;br /&gt;
    GET_FIRSTAID&lt;br /&gt;
    GET_ACCESS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Values for addweapon===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    PISTOL_WEAPON&lt;br /&gt;
    SHOTGUN_WEAPON&lt;br /&gt;
    CHAINGUN_WEAPON&lt;br /&gt;
    RPG_WEAPON&lt;br /&gt;
    HANDBOMB_WEAPON&lt;br /&gt;
    SHRINKER_WEAPON&lt;br /&gt;
    TRIPBOMB_WEAPON&lt;br /&gt;
    DEVISTATOR_WEAPON&lt;br /&gt;
    FREEZE_WEAPON&lt;br /&gt;
    GROW_WEAPON [Versions 1.4 and 1.5 Only]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Values for cstat and cstator===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1 = Make sprite blockable (&amp;quot;B&amp;quot; in BUILD)&lt;br /&gt;
    2 = Make sprite &#039;see-through&#039;&lt;br /&gt;
    4 = Flip sprite around x-axis&lt;br /&gt;
    8 = Flip sprite around y-axis&lt;br /&gt;
    16 = Draw sprite as wall texture (vertically flat)&lt;br /&gt;
    32 = Draw him as floor texture (horizontally flat)&lt;br /&gt;
    64 = Make sprite one sided&lt;br /&gt;
    128 = Half submerged&lt;br /&gt;
    256 = Make sprite solid (&amp;quot;H&amp;quot; in BUILD)&lt;br /&gt;
    32768 = Invisible&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: To use more than one setting add the values together (264 = solid (256) + upside-down (8).  256 + 8 = 264).&lt;br /&gt;
&lt;br /&gt;
===Values for guts===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    JIBS1&lt;br /&gt;
    JIBS2&lt;br /&gt;
    JIBS3&lt;br /&gt;
    JIBS4&lt;br /&gt;
    JIBS5&lt;br /&gt;
    JIBS6&lt;br /&gt;
    HEADJIB/LEGJIB/ARMJIB  (trooper parts)&lt;br /&gt;
    LIZMANHEAD1/LIZMANARM1/LIZMANLEG1  (lizman\newbeast parts) (Note: NEWBEAST spawns these with a spritepal of 6.)&lt;br /&gt;
    DUKETORSO/DUKELEG/DUKEGUN (duke parts)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Values for ifp===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    pstanding    = Duke is standing&lt;br /&gt;
    pwalking     = Duke is walking&lt;br /&gt;
    prunning     = Duke is running&lt;br /&gt;
    pducking     = Duke is ducking&lt;br /&gt;
    pfalling     = Duke is falling&lt;br /&gt;
    pjumping     = Duke is jumping&lt;br /&gt;
    phigher      = Duke is higher than the current actor (?)&lt;br /&gt;
    pshrunk      = Duke is has been shrunk&lt;br /&gt;
    pjetpack     = Duke is flying with the jetpack&lt;br /&gt;
    ponsteroids  = Duke is using his steroids&lt;br /&gt;
    ponground    = Duke has his both feet on the ground&lt;br /&gt;
    palive       = Duke hasn&#039;t died yet&lt;br /&gt;
    pdead        = Duke has been killed&lt;br /&gt;
    pfacing      = Duke is facing the current actor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Values for ifwasweapon===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    KNEE&lt;br /&gt;
    SHOTSPARK1 (Pistol, Chaingun, or Shotgun)&lt;br /&gt;
    RPG&lt;br /&gt;
    SHRINKSPARK&lt;br /&gt;
    FREEZEBLAST&lt;br /&gt;
    FIRELASER&lt;br /&gt;
    SPIT&lt;br /&gt;
    RADIUSEXPLOSION (All hitradii)&lt;br /&gt;
    COOLEXPLOSION1&lt;br /&gt;
    FIREEXT&lt;br /&gt;
    GROWSPARK [Versions 1.4 and 1.5 Only]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Values for shoot===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    KNEE&lt;br /&gt;
    SHOTSPARK1 (The Pistol)&lt;br /&gt;
    SHOTGUN&lt;br /&gt;
    CHAINGUN&lt;br /&gt;
    RPG&lt;br /&gt;
    SHRINKER&lt;br /&gt;
    FREEZEBLAST&lt;br /&gt;
    FIRELASER&lt;br /&gt;
    SPIT&lt;br /&gt;
    BOUNCEMINE&lt;br /&gt;
    MORTER&lt;br /&gt;
    COOLEXPLOSION1&lt;br /&gt;
    BLOODSPLAT1&lt;br /&gt;
    BLOODSPLAT2&lt;br /&gt;
    BLOODSPLAT3&lt;br /&gt;
    BLOODSPLAT4&lt;br /&gt;
    GROWSPARK [Versions 1.4 and 1.5 Only]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Values for spritepal===&lt;br /&gt;
&lt;br /&gt;
The following is a listing of all the legal values for the spritepal primitive.  Palettes can effect 3 different &#039;layers&#039; of a tile.  The easiest way to understand these 3 different &#039;layers&#039; is by using the stripper sprite.  The 3 &#039;layers&#039; are: Background (her skin), Foreground (her clothes), and Minor Foreground (money, accessories, etc).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    0 = Normal&lt;br /&gt;
    1 = All colors become blue&lt;br /&gt;
    2 = All colors become red&lt;br /&gt;
    3 = Normal, exactly 0. Is used to actor some effects that needs a pallete that is not 0 (like parallex, that shots doesn&#039;t dissapers on it if using a pallete)&lt;br /&gt;
    4 = All colors become a single black (#000)&lt;br /&gt;
    5 = Red become brown.&lt;br /&gt;
    6 = All colors become green with inverted brightness (Night Vision green)&lt;br /&gt;
    7 = All colors become yellow&lt;br /&gt;
    8 = All colors become green&lt;br /&gt;
    10 = All blue become dark red&lt;br /&gt;
    11 = All blue become green (same as 22, 22 is used by Assault Trooper)&lt;br /&gt;
    12 = All blue become gray (same as 18)&lt;br /&gt;
    13 = All blue become dark gray&lt;br /&gt;
    14 = All blue become dark green (used by Nuke Button)&lt;br /&gt;
    15 = All blue become brown&lt;br /&gt;
    16 = All blue become dark blue&lt;br /&gt;
    17 = All brown become blue and all blue becomes green&lt;br /&gt;
    18 = All blue become gray (same as 12)&lt;br /&gt;
    19 = All brown become red and all blue becomes gray&lt;br /&gt;
    20 = All brown become blue and all blue becomes gray&lt;br /&gt;
    21 = All Blue become red (used by Assault Captain and mini Battlelord)&lt;br /&gt;
    22 = All blue become green (this is used by Assault Trooper, same as 11)&lt;br /&gt;
    23 = All blue become yellow&lt;br /&gt;
    24 = All gray become red and all red become gray&lt;br /&gt;
    25 = All green become red&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Legal Direction Values===&lt;br /&gt;
&lt;br /&gt;
* faceplayer: Actor faces the player&#039;s current position.&lt;br /&gt;
* geth: Actor travels in a horizontal direction.&lt;br /&gt;
* getv: Actor travels in a vertical direction.&lt;br /&gt;
* randomangle: Actor will change to a random angle when it touches a wall or when the actor is currently being shot at by the player.  This direction value can be used with the move command to change the direction of any actor.  To do this, use the following in your actor code: move 0 randomangle&lt;br /&gt;
* faceplayerslow: Actor faces the player&#039;s current position but slower than the regular faceplayer command.&lt;br /&gt;
* spin: The actor&#039;s angle changes in a clockwise fashion (i.e. - the actor spins clockwise).&lt;br /&gt;
* faceplayersmart: The actor will face slightly ahead of the player&#039;s current position, making it possible for monsters to &amp;quot;lead&amp;quot; you a little bit.&lt;br /&gt;
* fleeenemy: Actor faces directly away from the player.&lt;br /&gt;
* jumptoplayer: Actor attempts to jump.&lt;br /&gt;
* seekplayer: Actor tries to find and move to the nearest player.&lt;br /&gt;
* furthestdir: Actor faces the furthest distance from the closest player.&lt;br /&gt;
* dodgebullet: Actor attempts to avoid all shots directed at him.&lt;br /&gt;
&lt;br /&gt;
==EXAMPLES==&lt;br /&gt;
&lt;br /&gt;
===Example 1: Increase Duke Nukem&#039;s Health===&lt;br /&gt;
&lt;br /&gt;
Difficulty Level: Easy&lt;br /&gt;
&lt;br /&gt;
To start out on the CON editing path, let&#039;s do something extremely easy.  We are going to increase Duke Nukem&#039;s maximum health from 100 to 200.  We also need to increase his Atomic Health (we&#039;ll take it to 400) so that picking up Atomic Health actually does something!&lt;br /&gt;
&lt;br /&gt;
First, open up the user.con file, and scroll down until you see the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define MAXPLAYERHEALTH 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now change that number, so that the line looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define MAXPLAYERHEALTH 200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now look for the line that looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define MAXPLAYERATOMICHEALTH 200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And change it to this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define MAXPLAYERATOMICHEALTH 400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you are finished!  Easy huh?  Well, we&#039;ll now move on to something a little more difficult.&lt;br /&gt;
&lt;br /&gt;
===Example 2: Rubber Trash Cans Spawn Health When Destroyed===&lt;br /&gt;
&lt;br /&gt;
Difficulty Level: Easy&lt;br /&gt;
&lt;br /&gt;
In this example, we will make the rubber trash can spawn health, but only 50% of the time, when it is destroyed by an explosion.&lt;br /&gt;
&lt;br /&gt;
Open the game.con file and scroll down to these lines of code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
actor RUBBERCAN WEAK&lt;br /&gt;
    ifaction RUBCANDENT&lt;br /&gt;
    {&lt;br /&gt;
      ifactioncount 16&lt;br /&gt;
      { &lt;br /&gt;
        strength 0&lt;br /&gt;
        action RUBCAN&lt;br /&gt;
        break&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    else ifhitweapon&lt;br /&gt;
    {&lt;br /&gt;
      ifwasweapon RADIUSEXPLOSION&lt;br /&gt;
      {&lt;br /&gt;
        state rats&lt;br /&gt;
        ifrnd 48&lt;br /&gt;
          spawn BURNING&lt;br /&gt;
        debris SCRAP3 12&lt;br /&gt;
        killit&lt;br /&gt;
      }&lt;br /&gt;
      else action RUBCANDENT&lt;br /&gt;
    }&lt;br /&gt;
enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We need to add the following lines to the code in order to make the health spawn 50% of the time (instead of the rats).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifrnd 128  // 50% of the time...&lt;br /&gt;
{&lt;br /&gt;
  spawn COLA  // ... spawn the +10% health ...&lt;br /&gt;
  killit // ... then delete the trashcan from the map.&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  (Here we put the rest of the code)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
But where do we put this set of code?  Well, we first have to find where the code checks to see if the trash can has been hit by an explosion.  You see that line that says ifwasweapon?  That line of code checks to see if the trashcan was hit by the weapon stated there; the RADIUSEXPLOSION.  So we need to place the weapon right in that section of code.  The finished product will look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
actor RUBBERCAN WEAK&lt;br /&gt;
    ifaction RUBCANDENT&lt;br /&gt;
    {&lt;br /&gt;
      ifactioncount 16&lt;br /&gt;
      { &lt;br /&gt;
        strength 0&lt;br /&gt;
        action RUBCAN&lt;br /&gt;
        break&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    else ifhitweapon&lt;br /&gt;
    {&lt;br /&gt;
      ifwasweapon RADIUSEXPLOSION&lt;br /&gt;
      {&lt;br /&gt;
        ifrnd 128&lt;br /&gt;
        {&lt;br /&gt;
          spawn COLA&lt;br /&gt;
          killit&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
          state rats&lt;br /&gt;
          ifrnd 128  // See note #1.&lt;br /&gt;
            spawn BURNING&lt;br /&gt;
          debris SCRAP3 12&lt;br /&gt;
          killit&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      else action RUBCANDENT&lt;br /&gt;
    }&lt;br /&gt;
enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE #1: Notice that we changed the ifrnd statement from 48 to 128.  Why did we do that?  Well, when you stack ifrnd statements up like they are, the chances of something happening are very small.  For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifrnd 128&lt;br /&gt;
  ifrnd 128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This statement tells the sub-code to happen only 25% of the time.  How did I get that number?  Well, the value of 256 is 100%, so the value of 128 is 50%.  Then 50% of 50% is 25%.  If it sounds confusing, just work through it again and you should pick it up.&lt;br /&gt;
&lt;br /&gt;
===Example 3: Booby-trapped Ammunition===&lt;br /&gt;
&lt;br /&gt;
Difficulty Level: Intermediate&lt;br /&gt;
&lt;br /&gt;
In this example, we will make chaingun ammo turn deadly - but only for 25% of the time.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the chaingun ammo code, which can be found in the GAME.CON file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
actor BATTERYAMMO&lt;br /&gt;
    fall&lt;br /&gt;
    ifmove RESPAWN_ACTOR_FLAG&lt;br /&gt;
      state respawnit&lt;br /&gt;
    else ifp pshrunk &lt;br /&gt;
      {&lt;br /&gt;
&lt;br /&gt;
      } &lt;br /&gt;
    else ifp palive&lt;br /&gt;
      ifpdistl RETRIEVEDISTANCE&lt;br /&gt;
        ifcount 6&lt;br /&gt;
          ifcanseetarget&lt;br /&gt;
           {&lt;br /&gt;
             addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT&lt;br /&gt;
             quote 63&lt;br /&gt;
             ifspawnedby BATTERYAMMO&lt;br /&gt;
               state getcode&lt;br /&gt;
             else&lt;br /&gt;
               state quikget&lt;br /&gt;
           }&lt;br /&gt;
enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You see all those if statements there under the second else?  That is the area that we want to add our code to.  We need to add the following lines to the code, so that 25% of the time, the chaingun ammo explodes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifrnd 64   // 25% of the time, the following code should be executed.&lt;br /&gt;
{&lt;br /&gt;
  hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH  // define the damage&lt;br /&gt;
  spawn EXPLOSION2&lt;br /&gt;
  debris SCRAP2 2&lt;br /&gt;
  sound PIPEBOMB_EXPLODE&lt;br /&gt;
  killit&lt;br /&gt;
}&lt;br /&gt;
else  // in other cases, add the ammo amount to the player.&lt;br /&gt;
{&lt;br /&gt;
  addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT&lt;br /&gt;
  quote 63&lt;br /&gt;
  ifspawnedby BATTERYAMMO&lt;br /&gt;
    state getcode&lt;br /&gt;
  else&lt;br /&gt;
    state quikget&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So let&#039;s add our code to the ammunition.  This is what the final product will look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
actor BATTERYAMMO&lt;br /&gt;
    fall&lt;br /&gt;
    ifmove RESPAWN_ACTOR_FLAG&lt;br /&gt;
      state respawnit&lt;br /&gt;
    else ifp pshrunk &lt;br /&gt;
      {&lt;br /&gt;
      } &lt;br /&gt;
    else ifp palive&lt;br /&gt;
      ifpdistl RETRIEVEDISTANCE&lt;br /&gt;
        ifcount 6&lt;br /&gt;
          ifcanseetarget&lt;br /&gt;
            ifrnd 64&lt;br /&gt;
            {&lt;br /&gt;
              hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH&lt;br /&gt;
              spawn EXPLOSION2&lt;br /&gt;
              debris SCRAP2 2&lt;br /&gt;
              sound PIPEBOMB_EXPLODE&lt;br /&gt;
              killit&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
              addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT&lt;br /&gt;
              quote 63&lt;br /&gt;
              ifspawnedby BATTERYAMMO&lt;br /&gt;
                state getcode&lt;br /&gt;
              else&lt;br /&gt;
                state quikget&lt;br /&gt;
            }&lt;br /&gt;
enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, when you go into the game, every 25% (or roughly) of the time you should get hurt by an explosion.  Cool way to make booby-traps, huh?&lt;br /&gt;
&lt;br /&gt;
===Example 4: Break the &amp;quot;Unbreakable&amp;quot; Plate (Versions 1.4/1.5 Only)===&lt;br /&gt;
&lt;br /&gt;
Difficulty Level: Intermediate&lt;br /&gt;
&lt;br /&gt;
If you have ever played through Duke Nukem, you should hopefully have noticed the &amp;quot;unbreakable&amp;quot; plate in the sushi bar (episode 3, level 1).  There is one plate the 3D Realms forgot about coding, and so it cannot be broken like the others can.  What better a mistake for us to fix!&lt;br /&gt;
&lt;br /&gt;
This coding session will only work with versions 1.4 or 1.5 of Duke Nukem 3D, because we will need to make use of the &amp;quot;useractor&amp;quot; function.&lt;br /&gt;
&lt;br /&gt;
The plate that is in question is in slot #851 (you can take a look at it in Build or Editart).  To make this slot an actor, we first need to define it in the defs.con file.  Open up the defs.con file, and place the following line somewhere in this file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define SUSHIPLATE99 851&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I prefer putting these types of lines in order of appearance by tile number, much like 3D Realms did.  Scroll down to the lines that say:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define MASKWALL13 830&lt;br /&gt;
define HURTRAIL 859&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and put our define statement between the two lines that are there (because 851 is between 830 and 859).&lt;br /&gt;
&lt;br /&gt;
Now save your work and close this file.&lt;br /&gt;
&lt;br /&gt;
Now open the game.con file and place the following lines of code anywhere in the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
useractor notenemy SUSHIPLATE99 WEAK  // define it as a useractor&lt;br /&gt;
  ifhitweapon&lt;br /&gt;
  {&lt;br /&gt;
    lotsofglass 7&lt;br /&gt;
    sound GLASS_BREAKING &lt;br /&gt;
    killit&lt;br /&gt;
  }&lt;br /&gt;
enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, when you enter into the game, you can shoot the plate and it will break!  Yay!  We just fixed a bug in Duke Nukem 3D!&lt;br /&gt;
&lt;br /&gt;
===Example 5: Make Duke eat some food (Versions 1.4/1.5 only)===&lt;br /&gt;
&lt;br /&gt;
Difficulty Level: Intermediate&lt;br /&gt;
&lt;br /&gt;
In this example, we are going to make use of the food that appears in a few of the levels in Episode 4 (Versions 1.4 and 1.5 only).  We will make Duke eat the food when he is near enough to it, and we will add 10 health points to his health when he eats it.  We also will make him say &amp;quot;Ooh, I needed that!&amp;quot; when his health is below 20.&lt;br /&gt;
&lt;br /&gt;
First, open up the user.con file, and scroll down to the line that says:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
definequote 124       MAP HAS A DIFFERENT NUMBER OF PLAYERS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is the last quote defined by 3D Realms, so we will make 2 new quotes to print.  Add these lines right below the definequote 124:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
definequote 125       YOU EAT SOME FOOD: +10 HEALTH!&lt;br /&gt;
definequote 126       YOU AREN&#039;T HUNGRY NOW...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We will use these quotes when we add code to the game.con file.  Save your work and close user.con.&lt;br /&gt;
&lt;br /&gt;
First we need to make a state function.  Open the game.con file and put the following lines of code at the top of the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
state eatfood&lt;br /&gt;
  ifp pfacing&lt;br /&gt;
    ifpdistl 1280&lt;br /&gt;
      ifhitspace&lt;br /&gt;
      {&lt;br /&gt;
        ifphealthl 20&lt;br /&gt;
        {&lt;br /&gt;
          addphealth 10&lt;br /&gt;
          globalsound DUKE_NEED&lt;br /&gt;
          quote 125&lt;br /&gt;
          killit&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
          ifphealthl MAXPLAYERHEALTH&lt;br /&gt;
          {&lt;br /&gt;
            addphealth 10&lt;br /&gt;
            quote 125&lt;br /&gt;
            globalsound DUKE_GET&lt;br /&gt;
            killit&lt;br /&gt;
          }&lt;br /&gt;
          else&lt;br /&gt;
          {&lt;br /&gt;
            quote 126&lt;br /&gt;
            break&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
ends&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to find where the actors are located.  Scroll down to the line that says:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
useractor notenemy FOODOBJECT11 WEAK state breakobject enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and change it to look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
useractor notenemy FOODOBJECT11 WEAK&lt;br /&gt;
  state breakobject&lt;br /&gt;
  state eatfood&lt;br /&gt;
enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This now allows our state function to work on FOODOBJECT11.  But we want to change 12 through 20 as well.  So just make each useractor that we want to change look just like the useractor above.  Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
useractor notenemy FOODOBJECT12 WEAK  // We change # 12 now...&lt;br /&gt;
  state breakobject&lt;br /&gt;
  state eatfood&lt;br /&gt;
enda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save your work, and when you go into the game, you will find that you can now press space near the food and you will gain 10 health points if you are below 100!&lt;br /&gt;
&lt;br /&gt;
==FAQ INFORMATION==&lt;br /&gt;
&lt;br /&gt;
===About the Authors and General Information===&lt;br /&gt;
&lt;br /&gt;
This FAQ was written by Joris Weimar, an avid Duke Nukem 3D FAQ, and a talented con file programmer.  Also working on this FAQ is myself, Jonah Bishop.  I also run the Map Editing FAQ for Duke Nukem 3D and Shadow Warrior.  If you have any questions, tips, corrections or comments about con files or this FAQ, visit the Duke Nukem 3D Editing and Hacking forum at Dukeworld.&lt;br /&gt;
&lt;br /&gt;
Dukeworld --- http://www.dukeworld.com&lt;br /&gt;
&lt;br /&gt;
===Credits and Contributors===&lt;br /&gt;
&lt;br /&gt;
This FAQ would not be what it is today without the following people (who made suggestions and pointed out various errors):&lt;br /&gt;
&lt;br /&gt;
- James Tan (ctan@xtra.co.nz)&lt;br /&gt;
&lt;br /&gt;
Provided most of the new and updated information for version 4.2.&lt;br /&gt;
&lt;br /&gt;
- TerminX (terminx@theoffspring.net)&lt;br /&gt;
&lt;br /&gt;
For providing the updated information on the &amp;quot;endofgame&amp;quot; primitive&lt;br /&gt;
&lt;br /&gt;
- The Reaper (lrdmecha@yahoo.com)&lt;br /&gt;
&lt;br /&gt;
For clearing up all of the version validity problems with the predefined state functions.&lt;br /&gt;
&lt;br /&gt;
- Snowblind (snowblind@brasnet.org)&lt;br /&gt;
&lt;br /&gt;
For letting me know about the missing palette values&lt;br /&gt;
&lt;br /&gt;
- Garry Cobbum (gcobbum@sbinet.com)&lt;br /&gt;
&lt;br /&gt;
For finding several errors and for giving several suggestions&lt;br /&gt;
&lt;br /&gt;
- James Ferry (sweepy@playful.com)&lt;br /&gt;
&lt;br /&gt;
For the tons of information he allowed me to use. Visit his site at http://members.xoom.com/HCAD&lt;br /&gt;
&lt;br /&gt;
- Joe Barta (jbarta@apk.net)&lt;br /&gt;
&lt;br /&gt;
For finding more errors than can be named&lt;br /&gt;
&lt;br /&gt;
- Matthew Hill (gambit@proteus.globalnet.co.uk)&lt;br /&gt;
&lt;br /&gt;
For donating the correct &amp;quot;palfrom&amp;quot; primitive parameters&lt;br /&gt;
&lt;br /&gt;
- Gavin Lambert (uecasm@geocities.com)&lt;br /&gt;
&lt;br /&gt;
For finding an error in the &amp;quot;mikesnd&amp;quot; primitive and for clearing up the usage of the &amp;quot;ifinouterspace&amp;quot; primitive&lt;br /&gt;
&lt;br /&gt;
- Reptile (reptile@worldaccess.nl)&lt;br /&gt;
&lt;br /&gt;
- Linkers (linkers@dds.nl)&lt;br /&gt;
&lt;br /&gt;
[[Category:Duke3D 1.3/1.5 commands|*]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=WEAPONx_WORKSLIKE&amp;diff=8341</id>
		<title>WEAPONx WORKSLIKE</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=WEAPONx_WORKSLIKE&amp;diff=8341"/>
		<updated>2009-07-14T16:04:39Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;#039;This determines which tiles are displayed in the HUD when the weapon is used.  It would be more aptly named &amp;quot;LOOKSLIKE&amp;quot; than &amp;quot;WORKSLIKE&amp;quot;.  Set this to 1 and the weapon will displ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This determines which tiles are displayed in the HUD when the weapon is used.  It would be more aptly named &amp;quot;LOOKSLIKE&amp;quot; than &amp;quot;WORKSLIKE&amp;quot;.  Set this to 1 and the weapon will display the pistol art, 2 for shotgun, etc.  It is completely useless if you are using your own HUD code.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Weaponswitch&amp;diff=8238</id>
		<title>Weaponswitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Weaponswitch&amp;diff=8238"/>
		<updated>2009-05-17T00:05:59Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bitfield (add values together)&lt;br /&gt;
&lt;br /&gt;
1 = switch to weapon on pickup&lt;br /&gt;
&lt;br /&gt;
2 = switch away when out of ammo&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Weaponswitch&amp;diff=8237</id>
		<title>Weaponswitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Weaponswitch&amp;diff=8237"/>
		<updated>2009-05-17T00:05:32Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bitfield (add values together)&lt;br /&gt;
&lt;br /&gt;
1 = switch to weapon on pickup&lt;br /&gt;
2 = switch away when out of ammo&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Starttrackvar&amp;diff=8216</id>
		<title>Starttrackvar</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Starttrackvar&amp;diff=8216"/>
		<updated>2009-05-05T23:15:47Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;starttrackvar&#039;&#039;&#039; &amp;lt;track#&amp;gt;&lt;br /&gt;
&lt;br /&gt;
starttrackvar sets the background music to &amp;lt;track#&amp;gt;, as defined for the current episode with the [[music]] command. It works like [[starttrack]], but the parameter can be a variable instead of a constant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example: this code will cause the music to cycle through the first ten tracks defined for the current episode when the player presses the open key.  (Replace the line &amp;quot;actor APLAYER...&amp;quot; with the code below)&lt;br /&gt;
&lt;br /&gt;
 gamevar TRACK 9 0&lt;br /&gt;
 &lt;br /&gt;
 actor APLAYER MAXPLAYERHEALTH PSTAND 0 0&lt;br /&gt;
&lt;br /&gt;
 ifhitspace ifcount 26&lt;br /&gt;
 {&lt;br /&gt;
   resetcount&lt;br /&gt;
   addvar TRACK 1&lt;br /&gt;
   ifvarg TRACK 9 setvar TRACK 0&lt;br /&gt;
   starttrackvar TRACK&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Sound manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Htflags&amp;diff=8205</id>
		<title>Htflags</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Htflags&amp;diff=8205"/>
		<updated>2009-05-05T00:41:35Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: Created page with &amp;#039;Controls special flags for sprites. The values are:  &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;  - Generates a shadow. See spriteshadow.&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;  - Turns palette 6 whenever night vision gog…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Controls special flags for sprites. The values are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1&#039;&#039;&#039;  - Generates a shadow. See [[spriteshadow]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;2&#039;&#039;&#039;  - Turns [[spritepal|palette]] 6 whenever night vision goggles are used. See [[spritenvg]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;4&#039;&#039;&#039;  - The sprite&#039;s shade is unaffected by the shade of its sector. See [[spritenoshade]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;8&#039;&#039;&#039;  - Is a [[defineprojectile|projectile]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;16&#039;&#039;&#039; - Prevents teleporting. The sprite is not entered into the [[decal deletion queue]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;32&#039;&#039;&#039; - Is an enemy. See [[useractor]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;64&#039;&#039;&#039; - Sprite will be insusceptible to floor palette of sector containing this sprite. See [[spritenopal]].&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is a bitfield, so add together the values you want and then set htflags to the sum.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Getincangle&amp;diff=7773</id>
		<title>Getincangle</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Getincangle&amp;diff=7773"/>
		<updated>2009-04-21T02:51:34Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;getincangle &amp;lt;return&amp;gt; &amp;lt;angle1&amp;gt; &amp;lt;angle2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gets the difference in degrees between angles &amp;lt;angle1&amp;gt; and &amp;lt;angle2&amp;gt; and stores the result in the &amp;lt;return&amp;gt; variable.  Note that &amp;lt;return&amp;gt; can be either positive or negative, depending on whether the shortest turn from &amp;lt;angle1&amp;gt; to &amp;lt;angle2&amp;gt; is clockwise or counter-clockwise.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=WEAPONx_FLAGS&amp;diff=7769</id>
		<title>WEAPONx FLAGS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=WEAPONx_FLAGS&amp;diff=7769"/>
		<updated>2009-04-20T16:48:25Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WEAPONx_FLAGS is a [[gamevar]] that has the power to change several different things about weapons (not projectiles).&lt;br /&gt;
&lt;br /&gt;
The flag values for WEAPONx_FLAGS are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Name!!Number!!Description!!&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_HOLSTER_CLEARS_CLIP&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
|Holstering clears clip&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_GLOWS&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
|Glows&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_AUTOMATIC&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
|Automatic&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_FIREEVERYOTHER&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
|Fire every other frame&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_FIREEVERYTHIRD&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
|Fire every third frame&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_RANDOMRESTART&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;32&#039;&#039;&#039;&lt;br /&gt;
|Random restart on automatic&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_AMMOPERSHOT&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;64&#039;&#039;&#039;&lt;br /&gt;
|Use ammo per burst (like the Devastator)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_BOMB_TRIGGER&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;128&#039;&#039;&#039;&lt;br /&gt;
|Is a bomb trigger (Pipebomb Detonator)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_NOVISIBLE&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;256&#039;&#039;&#039;&lt;br /&gt;
|Using does NOT cause player to flash the level (clear visibility)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_THROWIT&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;512&#039;&#039;&#039;&lt;br /&gt;
|Use &#039;throws&#039; the &#039;shoots&#039; item&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_CHECKATRELOAD&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;1024&#039;&#039;&#039;&lt;br /&gt;
|Check weapon availability at &#039;reload&#039; time&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_STANDSTILL&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;2048&#039;&#039;&#039;&lt;br /&gt;
|player should stop jumping&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_SPAWNTYPE1&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
|Spawn Type 1 (Pistol shells)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_SPAWNTYPE2&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;4096&#039;&#039;&#039;&lt;br /&gt;
|Spawn Type 2 (Shotgun shells)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_SPAWNTYPE3&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;8192&#039;&#039;&#039;&lt;br /&gt;
|Spawn Type 3 (Chaingun shells)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_SEMIAUTO&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;16384&#039;&#039;&#039;&lt;br /&gt;
|Semi-automatic (cancel button press after each shot)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_RELOAD_TIMING&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;32768&#039;&#039;&#039;&lt;br /&gt;
|Alternate reload sound timing (hack for pistol reload sound timing)&lt;br /&gt;
|-&lt;br /&gt;
|WEAPON_FLAG_RESET&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&#039;&#039;&#039;65536&#039;&#039;&#039;&lt;br /&gt;
|Alternate weapon timing (hack for chaingun and freezer, see player.c)&lt;br /&gt;
|}&lt;br /&gt;
WEAPONx_FLAGS is a bitfield, so you can add the individual flags together in the manner of [[cstat]] and [[orientation]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pre-defined gamevars]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Setgamepalette&amp;diff=7765</id>
		<title>Setgamepalette</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Setgamepalette&amp;diff=7765"/>
		<updated>2009-04-11T17:08:45Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;setgamepalette &amp;lt;pal_ID&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switches between the palettes that Duke Nukem 3D uses. The palettes are located in LOOKUP.DAT. This command can take values between 0 and 6.&lt;br /&gt;
&lt;br /&gt;
It sets the palette that the game uses to 0, the normal game palette. (Remember that these palettes include underwater palette, night vision palette etc. so this can be used to block them)&lt;br /&gt;
&lt;br /&gt;
palette&amp;lt;br/&amp;gt;&lt;br /&gt;
0 - normal&amp;lt;br/&amp;gt;&lt;br /&gt;
1 - under water&amp;lt;br/&amp;gt;&lt;br /&gt;
2 - night vision&amp;lt;br/&amp;gt;&lt;br /&gt;
3 - looks horrible with tiles made for standard palette&amp;lt;br/&amp;gt;&lt;br /&gt;
4 - similar to normal with some colors changed&amp;lt;br/&amp;gt;&lt;br /&gt;
5 - looks horrible with tiles made for standard palette&amp;lt;br/&amp;gt;&lt;br /&gt;
6 - looks horrible with tiles made for standard palette&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
note:  the last palettes are used for the title screen and ending screens&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Game manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Setgamepalette&amp;diff=7764</id>
		<title>Setgamepalette</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Setgamepalette&amp;diff=7764"/>
		<updated>2009-04-11T07:15:46Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;setgamepalette &amp;lt;pal_ID&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switches between the palettes that Duke Nukem 3D uses. The palettes are located in LOOKUP.DAT. This command can take values between 0 and 6.&lt;br /&gt;
&lt;br /&gt;
It sets the palette that the game uses to 0, the normal game palette. (Remember that these palettes include underwater palette, night vision palette etc. so this can be used to block them)&lt;br /&gt;
&lt;br /&gt;
palette&amp;lt;br/&amp;gt;&lt;br /&gt;
0 - normal&amp;lt;br/&amp;gt;&lt;br /&gt;
1 - under water&amp;lt;br/&amp;gt;&lt;br /&gt;
2 - night vision&amp;lt;br/&amp;gt;&lt;br /&gt;
3 - looks horrible with tiles made for standard palette&amp;lt;br/&amp;gt;&lt;br /&gt;
4 - similar to normal with some colors changed&amp;lt;br/&amp;gt;&lt;br /&gt;
5 - looks horrible with tiles made for standard palette&amp;lt;br/&amp;gt;&lt;br /&gt;
6 - looks horrible with tiles made for standard palette&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Game manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Setgamepalette&amp;diff=7763</id>
		<title>Setgamepalette</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Setgamepalette&amp;diff=7763"/>
		<updated>2009-04-11T07:11:03Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;setgamepalette &amp;lt;pal_ID&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switches between the palettes that Duke Nukem 3D uses. The palettes are located in LOOKUP.DAT. This command can take values between 0 and 6.&lt;br /&gt;
&lt;br /&gt;
It sets the palette that the game uses to 0, the normal game palette. (Remember that these palettes include underwater palette, night vision palette etc. so this can be used to block them)&lt;br /&gt;
&lt;br /&gt;
palette&lt;br /&gt;
0          normal&lt;br /&gt;
1          under water&lt;br /&gt;
2          night vision&lt;br /&gt;
3          looks horrible with tiles made for standard palette&lt;br /&gt;
4          similar to normal with some colors changed&lt;br /&gt;
5          looks horrible with tiles made for standard palette&lt;br /&gt;
6          looks horrible with tiles made for standard palette&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Game manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Cstat&amp;diff=7527</id>
		<title>Cstat</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Cstat&amp;diff=7527"/>
		<updated>2008-11-21T15:53:22Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;cstat &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets flags for how to draw an actor, as well as a few flags for interaction.  Add all together all wanted flag values, and use that as &amp;lt;number&amp;gt;.  This is because cstat is a bitfield.&lt;br /&gt;
&lt;br /&gt;
Cstat is available for [[sprite]] structs and for [[Members of the wall structure|wall]] structs.  See [[cstat(wall)]].&lt;br /&gt;
&lt;br /&gt;
Flag values for sprite cstat are:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;1&#039;&#039;&#039; - Make sprite blockable&lt;br /&gt;
:&#039;&#039;&#039;2&#039;&#039;&#039; - Make sprite transparent&lt;br /&gt;
:&#039;&#039;&#039;4&#039;&#039;&#039; - Flip sprite around x-axis&lt;br /&gt;
:&#039;&#039;&#039;8&#039;&#039;&#039; - Flip sprite around y-axis&lt;br /&gt;
:&#039;&#039;&#039;16&#039;&#039;&#039; - Draw sprite as vertically flat (wall aligned)&lt;br /&gt;
:&#039;&#039;&#039;32&#039;&#039;&#039; - Draw sprite as horizontally flat (floor aligned)&lt;br /&gt;
:&#039;&#039;&#039;64&#039;&#039;&#039; - Make sprite one sided&lt;br /&gt;
:&#039;&#039;&#039;128&#039;&#039;&#039; - Half submerged&lt;br /&gt;
:&#039;&#039;&#039;256&#039;&#039;&#039; - Make sprite able to be hit by weapons&lt;br /&gt;
:&#039;&#039;&#039;512&#039;&#039;&#039; - Second transparency level (combine with cstat 2)&lt;br /&gt;
:&#039;&#039;&#039;32768&#039;&#039;&#039; - Invisible&lt;br /&gt;
&lt;br /&gt;
Also see [[cstator]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Duke3D 1.3/1.5 commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Htactorstayput&amp;diff=7513</id>
		<title>Htactorstayput</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Htactorstayput&amp;diff=7513"/>
		<updated>2008-11-10T08:53:37Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: &amp;#039;&amp;#039;&amp;#039;htactorstayput&amp;#039;&amp;#039;&amp;#039; is the sector number that a stayput monster is assigned to, or -1 if no sector is assigned.  When a sector is assigned, the monster cannot leave that sector.  By manip...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;htactorstayput&#039;&#039;&#039; is the sector number that a stayput monster is assigned to, or -1 if no sector is assigned.  When a sector is assigned, the monster cannot leave that sector.  By manipulating this value, monsters can be changed from stayput to notstayput, or vice versa.  This works even on actors that do not have stayput tiles, such as TANK.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Ifvarvareither&amp;diff=7480</id>
		<title>Ifvarvareither</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Ifvarvareither&amp;diff=7480"/>
		<updated>2008-10-29T04:56:48Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: ifvarvareither &amp;lt;gamevar1&amp;gt; &amp;lt;gamevar2&amp;gt;  If condition returning true if either gamevar1 or gamevar2 have non-zero values.  Category:EDuke commands Category:Gamevar manipulation [[...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ifvarvareither &amp;lt;gamevar1&amp;gt; &amp;lt;gamevar2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[If condition]] returning true if either gamevar1 or gamevar2 have non-zero values.&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke commands]]&lt;br /&gt;
[[Category:Gamevar manipulation]]&lt;br /&gt;
[[Category:If conditions]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EVENT_ANIMATESPRITES&amp;diff=7348</id>
		<title>EVENT ANIMATESPRITES</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EVENT_ANIMATESPRITES&amp;diff=7348"/>
		<updated>2008-10-19T01:51:55Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This event can be used to manipulate sprites that are drawn on the screen.  It is triggered only by drawn sprites when 16 has been added to the mdflags member of the corresponding sprite in the game world.  Drawn sprites are accessed through the tsprite array, which has its own members separate from the regular actor array.  Members of the tsprite array are similar to members of the regular sprite array, but they begin with &#039;tspr&#039; (E.g., xrepeat becomes tsprxrepeat ).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example of how to use this event:&#039;&#039;&#039;&lt;br /&gt;
   gamevar TEMP 0 0&lt;br /&gt;
   actor APLAYER MAXPLAYERHEALTH PSTAND 0 0&lt;br /&gt;
   getactor[THISACTOR].mdflags TEMP&lt;br /&gt;
   orvar TEMP 16&lt;br /&gt;
   setactor[THISACTOR].mdflags TEMP&lt;br /&gt;
   // rest of player code&lt;br /&gt;
&lt;br /&gt;
In this first block of code, we add 16 to the mdflags member of the player sprite, so that it will be processed by the ANIMATESPRITES event.  Next, is the code for the event:&lt;br /&gt;
&lt;br /&gt;
   onevent EVENT_ANIMATESPRITES&lt;br /&gt;
   gettspr[THISACTOR].tsprcstat TEMP&lt;br /&gt;
   subvar TEMP 2&lt;br /&gt;
   settspr[THISACTOR].tsprcstat TEMP&lt;br /&gt;
   endevent&lt;br /&gt;
&lt;br /&gt;
The second block of code removes transparency from the player&#039;s tsprite, so that when the player is in F7 view mode, the player sprite will appear solid.  This effect cannot be achieved by setting the cstat of the player sprite directly.  Note that the code will only effect the player sprite, because only the player sprite has had 16 added to its mdflags member.&lt;br /&gt;
&lt;br /&gt;
See also [[gettspr]] and [[settspr]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Mdflags&amp;diff=7347</id>
		<title>Mdflags</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Mdflags&amp;diff=7347"/>
		<updated>2008-10-19T01:51:02Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mdflags &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets flags for how to draw an [[actor]]&#039;s model. These flags never affect the gameplay. To be noted, it is used by the maphacks. Add all together all wanted flag values, and use that as &amp;lt;number&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mdflags is available for [[sprite]] structs and for [[Members of the wall structure|wall]] structs.&lt;br /&gt;
&lt;br /&gt;
Flag values for sprite mdflags are:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;1&#039;&#039;&#039; - Make sprite be dispalyed as sprite(not model)&lt;br /&gt;
:&#039;&#039;&#039;2&#039;&#039;&#039; - No model animation. &lt;br /&gt;
:&#039;&#039;&#039;16&#039;&#039;&#039; - Process in [[EVENT_ANIMATESPRITES]]&lt;br /&gt;
&lt;br /&gt;
[[Category:EDuke32 specific commands]]&lt;br /&gt;
[[Category:Sprite manipulation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EVENT_ANIMATESPRITES&amp;diff=7346</id>
		<title>EVENT ANIMATESPRITES</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EVENT_ANIMATESPRITES&amp;diff=7346"/>
		<updated>2008-10-19T01:49:53Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: This event can be used to manipulate sprites that are drawn on the screen.  It is triggered only by drawn sprites when 16 has been added to the mdflags member of the corresponding sprite i...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This event can be used to manipulate sprites that are drawn on the screen.  It is triggered only by drawn sprites when 16 has been added to the mdflags member of the corresponding sprite in the game world.  Drawn sprites are accessed through the tsprite array, which has its own members separate from the regular actor array.  Members of the tsprite array are similar to members of the regular sprite array, but they begin with &#039;tspr&#039; (E.g., xrepeat becomes tsprxrepeat ).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example of how to use this event:&#039;&#039;&#039;&lt;br /&gt;
   gamevar TEMP 0 0&lt;br /&gt;
   actor APLAYER MAXPLAYERHEALTH PSTAND 0 0&lt;br /&gt;
   getactor[THISACTOR].mdflags TEMP&lt;br /&gt;
   orvar TEMP 16&lt;br /&gt;
   setactor[THISACTOR].mdflags TEMP&lt;br /&gt;
   // rest of player code&lt;br /&gt;
&lt;br /&gt;
In this first block of code, we add 16 to the mdflags member of the player sprite, so that it will be processed by the ANIMATESPRITES event.  Next, is the code for the event:&lt;br /&gt;
&lt;br /&gt;
   onevent EVENT_ANIMATESPRITES&lt;br /&gt;
   gettspr[THISACTOR].tsprcstat TEMP&lt;br /&gt;
   subvar TEMP 2&lt;br /&gt;
   settspr[THISACTOR].tsprcstat TEMP&lt;br /&gt;
   endevent&lt;br /&gt;
&lt;br /&gt;
The second block of code removes transparency from the player&#039;s tsprite, so that when the player is in F7 view mode, the player sprite will appear solid.  This effect cannot be achieved by setting the cstat of the player sprite directly.  Note that the code will only effect the player sprite, because only the player sprite has had 16 added to its mdflags member.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Gettspr&amp;diff=7345</id>
		<title>Gettspr</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Gettspr&amp;diff=7345"/>
		<updated>2008-10-19T01:32:06Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: gettspr[&amp;lt;tsprite ID&amp;gt;].member &amp;lt;gamevar&amp;gt;  The members of the tsprite array are the sprites that are drawn on screen at a given time.  &amp;#039;&amp;#039;The tsprite array should not be confused with the game...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;gettspr[&amp;lt;tsprite ID&amp;gt;].member &amp;lt;gamevar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The members of the tsprite array are the sprites that are drawn on screen at a given time.  &#039;&#039;The tsprite array should not be confused with the game world sprite array that is accessed with&#039;&#039; [[getactor]] and [[setactor]] &#039;&#039;commands.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Members of the tsprite array are counterparts of the actor array, and have similar names, except that member names in the tsprite array begin with &#039;tspr&#039;.&lt;br /&gt;
&lt;br /&gt;
The [[settspr]] and gettspr commands should be used in [[EVENT_ANIMATESPRITES]].  See the entry for that event for more details.&lt;br /&gt;
&lt;br /&gt;
Example of usage:&lt;br /&gt;
&lt;br /&gt;
gettspr[THISACTOR].tsprcstat TEMP&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Settspr&amp;diff=7344</id>
		<title>Settspr</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Settspr&amp;diff=7344"/>
		<updated>2008-10-19T01:30:41Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: settspr[&amp;lt;tsprite ID&amp;gt;].member &amp;lt;number or gamevar&amp;gt;  The members of the tsprite array are the sprites that are drawn on screen at a given time.  &amp;#039;&amp;#039;The tsprite array should not be confused wit...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;settspr[&amp;lt;tsprite ID&amp;gt;].member &amp;lt;number or gamevar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The members of the tsprite array are the sprites that are drawn on screen at a given time.  &#039;&#039;The tsprite array should not be confused with the game world sprite array that is accessed with&#039;&#039; [[getactor]] and [[setactor]] &#039;&#039;commands.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Members of the tsprite array are counterparts of the actor array, and have similar names, except that member names in the tsprite array begin with &#039;tspr&#039;.&lt;br /&gt;
&lt;br /&gt;
The settspr and [[gettspr]] commands should be used in [[EVENT_ANIMATESPRITES]].  See the entry for that event for more details.&lt;br /&gt;
&lt;br /&gt;
Example of usage:&lt;br /&gt;
&lt;br /&gt;
settspr[THISACTOR].tsprcstat 0&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Statnum&amp;diff=7171</id>
		<title>Statnum</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Statnum&amp;diff=7171"/>
		<updated>2008-08-15T08:48:01Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Statnums are used by the game internally to see whether something is an actor, player, projectile, etc, and then process it appropriately.&lt;br /&gt;
&lt;br /&gt;
Some important statnums (there are many more not listed):&lt;br /&gt;
&lt;br /&gt;
0 -- Sprites that are not defined by the CON code as actors, and are not projectiles, etc, have a statnum of 0.  (E.g. the floor texture sprites used to make up a sprite bridge).&lt;br /&gt;
&lt;br /&gt;
1 -- Actors.  Sprites with a statnum of 1 will execute the actor code that applies to their tile number in the CON scripts.&lt;br /&gt;
&lt;br /&gt;
2 -- Sleepers.  Sprites taking a break from code execution (e.g. a Pigcop that has been left alone for long enough will revert to statnum 2, only waking up and going back to statnum 1 upon seeing the player again)&lt;br /&gt;
&lt;br /&gt;
4 -- Projectiles.  These includes RPG, FREEZEBLAST, etc., as well as custom projectiles.  It does not include hitscan (bullets), since those are not sprites that exist in the game world (SHOTSPARK1, the sprite spawned by bullets, is not itself a projectile)&lt;br /&gt;
&lt;br /&gt;
10 -- The player.&lt;br /&gt;
&lt;br /&gt;
[[Category:Sprite structure members]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Httempang&amp;diff=7170</id>
		<title>Httempang</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Httempang&amp;diff=7170"/>
		<updated>2008-08-15T08:18:41Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;httempang holds the number of the sprite&#039;s previous pal (if the sprite is not a player).  The sprite&#039;s pal is set to this number when the [[getlastpal]] command is used.  Note that the previous pal is stored in httempang only when the [[spritepal]] command is used.&lt;br /&gt;
&lt;br /&gt;
Given the name of this member, it seems likely that it was originally intended to store an angle.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Httempang&amp;diff=7169</id>
		<title>Httempang</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Httempang&amp;diff=7169"/>
		<updated>2008-08-15T08:16:28Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: httempang holds the number of the sprite&amp;#039;s previous pal (if the sprite is not a player).  The sprite&amp;#039;s pal is set to this number when the getlastpal command is used.  Note that the pre...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;httempang holds the number of the sprite&#039;s previous pal (if the sprite is not a player).  The sprite&#039;s pal is set to this number when the [[getlastpal]] command is used.  Note that the previous pal is stored only when the [[spritepal]] command is used.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Htdispicnum&amp;diff=7168</id>
		<title>Htdispicnum</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Htdispicnum&amp;diff=7168"/>
		<updated>2008-08-15T08:08:34Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: htdispicnum is the tile number that the sprite is currently displaying.  If the sprite is using an action, then the htdispicnum may differ from the sprite&amp;#039;s picnum.  For example, if a ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;htdispicnum is the tile number that the sprite is currently displaying.  If the sprite is using an [[action]], then the htdispicnum may differ from the sprite&#039;s picnum.  For example, if a LIZTROOP is lying dead, then it has a htdispicnum of 1734, the lying dead frame.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Htmovflag&amp;diff=7167</id>
		<title>Htmovflag</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Htmovflag&amp;diff=7167"/>
		<updated>2008-08-15T06:19:00Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: htmovflag has a nonzero value if the sprite is using a move command and it bumps into something (htmovflag is set to the return value of the movesprite function).  If the moving sprite is ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;htmovflag has a nonzero value if the sprite is using a move command and it bumps into something (htmovflag is set to the return value of the movesprite function).  If the moving sprite is bumping into another sprite, then the ID of that other sprite will be equal to htmovflag + 16384.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Htlastvy&amp;diff=7166</id>
		<title>Htlastvy</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Htlastvy&amp;diff=7166"/>
		<updated>2008-08-15T05:33:05Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: The last y coordinate at which the player (or the player&amp;#039;s holoduke, if that was visible) was seen by the actor when the actor used the ifcansee command.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The last y coordinate at which the player (or the player&#039;s holoduke, if that was visible) was seen by the actor when the actor used the ifcansee command.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Htlastvx&amp;diff=7165</id>
		<title>Htlastvx</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Htlastvx&amp;diff=7165"/>
		<updated>2008-08-15T05:32:24Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: The last x coordinate at which the player (or the player&amp;#039;s holoduke, if that was visible) was seen by the actor when the actor used the ifcansee command.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The last x coordinate at which the player (or the player&#039;s holoduke, if that was visible) was seen by the actor when the actor used the ifcansee command.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=7006</id>
		<title>EDuke32 Modifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=7006"/>
		<updated>2008-06-24T16:47:47Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Users are encouraged to add links to known EDuke32 mods to this page.&lt;br /&gt;
&lt;br /&gt;
===Mods List===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td width=&amp;quot;200px&amp;quot;&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;200px&amp;quot;&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.zxdware.net/NR/ Naferia&#039;s Reign: Invasion of the Dark Mistress]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, in development&amp;lt;br&amp;gt; (Latest Version: &#039;&#039;&#039;5.05.05292008&#039;&#039;&#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:LordMisfit|Lord Misfit]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:NRIOTDM-1.png|200px]][[Image:NRIOTDM-2.png|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;What will come to be an alternate-universe Duke Nukem story revolving around a pivotal point in the history of Duke Nukem and the Aliens he has faced since the original Duke Nukem 3D. Duke is no longer working alone in his quest, as his enemies ramp up their power and allegiances substantially, as well as their intelligence to a point. Play as up to 15 different characters, with the ability to use multiple characters in the same party, unlike in Hexen[and more like a real RPG]. Monsters are more interactive and to a point more intelligent, able to grab items like health and armor, get damaged by slime and other hazards, and even pick up powerups to make them deadlier in combat. Find money laying around or get it out of your characters&#039; ATM accounts, and use it to buy new items from shops or other NPCs. Voice Acting is also present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.moddb.com/mods/9541/duke-nukem-weapon-of-mass-destruction Duke Nukem: Weapon of Mass Destruction]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:DeeperThought|DeeperThought]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Dnwmd1.jpg|200px]][[Image:Dnwmd2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Duke Nukem: Weapon of Mass Destruction is a gameplay mod for Duke Nukem 3D. It has tons of new weapon modes, enemies, and player abilities, such as UT style dodge moves, spinning hook kicks, and a Duke bot companion who fights by your side. In some levels you can even get in your skycar and fly it, doing bombing runs on enemies.  In DNWMD, Duke collects glowing coins from slain enemies which are used to purchase various upgrades via a mouse controlled menu. In addition, each of Duke&#039;s weapons has its own experience level which increases with use.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://deeperthought.dukertcm.com/dp/ Duke Plus]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:DeeperThought|DeeperThought]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:DP1.jpg|200px]][[Image:DP2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Enhanced Engine Design Capabilities, including: Transparent Water; Giving Monsters Special Flags; Climbable Ladders; Mantling/Grappling on ledges; Bot-Allies; Footstep Sounds; Rain and Snow-based weather effects; Quake3-Style Jump Pads; Slippery Floors; etc. [http://www.picturepush.com/public/652573 Gravity gun footage]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://files.filefront.com/Nuclear+Showdown+v10zip/;8218523;;/fileinfo.html Nuclear Showdown]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Jblade|James Stanfield]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:NS01.jpg|200px]][[Image:NS02.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Nuclear showdown is a gameplay mod for Duke Nukem that adds many features such as new weapons, enemies, effects to the default game as well as usermaps - it is built so you can play your favourite usermaps with, even ones that use custom art. You can also play through Duke it out in DC if you have it. The TC also includes several features for mappers like more keycards, items such as the spacesuit and toolkit, and more textures to work with.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=25830 The AWOL Project Source]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, Incomplete Source&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Reaper_Man|Reaper_Man]], Hudson, Mblackwell, and the entire AWOL TC Team&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:AWOL1.jpg|200px]][[Image:AWOL2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;The AWOL Project Source is the release of the source files for the once highly anticipated mod, The AWOL Project. After several years of sitting idly on the hard drives of the creators, Reaper_Man and Hudson decided to release all of the content for the TC to those who might find it useful. The release includes a few demo maps showing off various effects and AI, as well as all 3 of the drivable vehicles. Most of the code is complete but very few of the maps are. There is an Official 1.0 Patch as well as the AWOL Map Pack available for download also.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://hosted.filefront.com/kenia43 Duke Nukem Army]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unfinished release, development ceased&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Kenia|Kenia]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Teaser2.jpg|200px]][[Image:Teaser3.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;A TC that changes Duke Nukem 3D into an exaggerated army-style shooter. [http://www.youtube.com/watch?v=xl1E9BtOe9U Gameplay footage]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.moddb.com/mods/10844/duke-nukem-3d-stargate-mod Stargate Mod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:The Commander|The Commander]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:SGMOD1.jpg|200px]][[Image:SGMOD2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;The Stargate Mod for Duke Nukem 3D uses Duke Plus as a base. Fight against the Replicators and visit off-world deserts, forests, space ships, and even Atlantis&amp;amp;mdash;where anything can happen!&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=31395 Madness Guts in the RooM]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;1master1tc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Madness2.jpg|200px]][[Image:Madness3.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Silent-hill themed TC. [http://youtube.com/watch?v=G252CzfkJZE Link to trailer]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=30761 WG Medieval Mod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;William Gee, [[User:DeeperThought|DeeperThought]], Hellbound&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:WG1.jpg|200px]][[Image:WG2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Medieval mod with melee combat, magic bows, skeleton knights, dragons and demons. [http://www.picturepush.com/public/590728 Gameplay footage]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=25350 Symphony of Orekia (AKA The Mansion)]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Quakis&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Mansion1.jpg|200px]][[Image:Mansion2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Resident Evil-style TC with Demons and creepy interiors. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=9670 Decay]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Hudson, Cage, others&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Decay1.jpg|200px]][[Image:Decay2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Survival-horror TC with zombies! &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=30962 Blood TC]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;M210&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Blood1.jpg|200px]][[Image:Blood2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Recreation of Blood with EDuke32&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://amc.planetduke.gamespy.com/smf/index.php?topic=7591.0 AMC TC]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;James Stanfield and AMC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:AMCTC1.jpg|200px]][[Image:AMCTC2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;The AMC TC is a multi-character TC and gameplay modification. There are 8 characters to choose between, each with different weapon sets and items. Fight through the solar system against Duke&#039;s old enemies as well as other dark forces that each plan something unpleasent for Earth and Mars. A initial gameplay release with the finished characters, intromap, and Duke usermap episode is planned with actual story based releases later.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://duke3d.bur.st/forum/index.php?topic=42.0 Action Duke]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, In Development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Captain Awesome|Captain Awesome]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Duke0003.gif|200px]][[Image:Duke0004.gif|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Action Duke is a mod that plans to take different weapons, characters, and items from the extended Duke universe, and from other BUILD and related games, in addition to new ideas formulated by the author. Will not be a gameplay mod, but rather a full mod. Screenshots are mockups, screens to come will show actual working gameplay.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Duke Meets DOOM Rebirth&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, In Development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Captain Awesome|Captain Awesome]] and [[User:Hendricks 266|Hendricks266]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:DMDR_001.gif|200px]][[Image:DMDR_002.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Duke Meets DOOM Rebirth is an upgrade of the original vanilla TC &amp;quot;Duke Meets Doom&amp;quot;.  The basis for this mod is that the original maps are good, but the coding and artwork were sloppy.  There are three different flavors available.  The first is Classic, which will work in 8-Bit mode.  The second is Faithful (name pending), which has highres versions of the original art so that the differences of the DOOM and Duke palettes will not hinder it.  The third is Updated (name pending), which introduces highres content from the jDRP and friends.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=7005</id>
		<title>EDuke32 Modifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=7005"/>
		<updated>2008-06-24T16:46:19Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Users are encouraged to add links to known EDuke32 mods to this page.&lt;br /&gt;
&lt;br /&gt;
===Mods List===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td width=&amp;quot;200px&amp;quot;&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot;200px&amp;quot;&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.zxdware.net/NR/ Naferia&#039;s Reign: Invasion of the Dark Mistress]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, in development&amp;lt;br&amp;gt; (Latest Version: &#039;&#039;&#039;5.05.05292008&#039;&#039;&#039;)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:LordMisfit|Lord Misfit]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:NRIOTDM-1.png|200px]][[Image:NRIOTDM-2.png|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;What will come to be an alternate-universe Duke Nukem story revolving around a pivotal point in the history of Duke Nukem and the Aliens he has faced since the original Duke Nukem 3D. Duke is no longer working alone in his quest, as his enemies ramp up their power and allegiances substantially, as well as their intelligence to a point. Play as up to 15 different characters, with the ability to use multiple characters in the same party, unlike in Hexen[and more like a real RPG]. Monsters are more interactive and to a point more intelligent, able to grab items like health and armor, get damaged by slime and other hazards, and even pick up powerups to make them deadlier in combat. Find money laying around or get it out of your characters&#039; ATM accounts, and use it to buy new items from shops or other NPCs. Voice Acting is also present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.moddb.com/mods/9541/duke-nukem-weapon-of-mass-destruction Duke Nukem: Weapon of Mass Destruction]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:DeeperThought|DeeperThought]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Dnwmd1.jpg|200px]][[Image:Dnwmd2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Duke Nukem: Weapon of Mass Destruction is a gameplay mod for Duke Nukem 3D. It has tons of new weapon modes, enemies, and player abilities, such as UT style dodge moves, spinning hook kicks, and a Duke bot companion who fights by your side. In some levels you can even get in your skycar and fly it, doing bombing runs on enemies.  In DNWMD, Duke collects glowing coins from slain enemies which are used to purchase various upgrades via a mouse controlled menu. In addition, each of Duke&#039;s weapons has its own experience level which increases with use.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://http://deeperthought.dukertcm.com/dp/ Duke Plus]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:DeeperThought|DeeperThought]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:DP1.jpg|200px]][[Image:DP2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Enhanced Engine Design Capabilities, including: Transparent Water; Giving Monsters Special Flags; Climbable Ladders; Mantling/Grappling on ledges; Bot-Allies; Footstep Sounds; Rain and Snow-based weather effects; Quake3-Style Jump Pads; Slippery Floors; etc. [http://www.picturepush.com/public/652573 Gravity gun footage]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://files.filefront.com/Nuclear+Showdown+v10zip/;8218523;;/fileinfo.html Nuclear Showdown]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Jblade|James Stanfield]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:NS01.jpg|200px]][[Image:NS02.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Nuclear showdown is a gameplay mod for Duke Nukem that adds many features such as new weapons, enemies, effects to the default game as well as usermaps - it is built so you can play your favourite usermaps with, even ones that use custom art. You can also play through Duke it out in DC if you have it. The TC also includes several features for mappers like more keycards, items such as the spacesuit and toolkit, and more textures to work with.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=25830 The AWOL Project Source]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, Incomplete Source&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Reaper_Man|Reaper_Man]], Hudson, Mblackwell, and the entire AWOL TC Team&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:AWOL1.jpg|200px]][[Image:AWOL2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;The AWOL Project Source is the release of the source files for the once highly anticipated mod, The AWOL Project. After several years of sitting idly on the hard drives of the creators, Reaper_Man and Hudson decided to release all of the content for the TC to those who might find it useful. The release includes a few demo maps showing off various effects and AI, as well as all 3 of the drivable vehicles. Most of the code is complete but very few of the maps are. There is an Official 1.0 Patch as well as the AWOL Map Pack available for download also.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://hosted.filefront.com/kenia43 Duke Nukem Army]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unfinished release, development ceased&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Kenia|Kenia]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Teaser2.jpg|200px]][[Image:Teaser3.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;A TC that changes Duke Nukem 3D into an exaggerated army-style shooter. [http://www.youtube.com/watch?v=xl1E9BtOe9U Gameplay footage]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.moddb.com/mods/10844/duke-nukem-3d-stargate-mod Stargate Mod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:The Commander|The Commander]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:SGMOD1.jpg|200px]][[Image:SGMOD2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;The Stargate Mod for Duke Nukem 3D uses Duke Plus as a base. Fight against the Replicators and visit off-world deserts, forests, space ships, and even Atlantis&amp;amp;mdash;where anything can happen!&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=31395 Madness Guts in the RooM]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;1master1tc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Madness2.jpg|200px]][[Image:Madness3.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Silent-hill themed TC. [http://youtube.com/watch?v=G252CzfkJZE Link to trailer]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=30761 WG Medieval Mod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;William Gee, [[User:DeeperThought|DeeperThought]], Hellbound&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:WG1.jpg|200px]][[Image:WG2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Medieval mod with melee combat, magic bows, skeleton knights, dragons and demons. [http://www.picturepush.com/public/590728 Gameplay footage]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=25350 Symphony of Orekia (AKA The Mansion)]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Quakis&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Mansion1.jpg|200px]][[Image:Mansion2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Resident Evil-style TC with Demons and creepy interiors. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=9670 Decay]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Hudson, Cage, others&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Decay1.jpg|200px]][[Image:Decay2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Survival-horror TC with zombies! &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://forums.3drealms.com/vb/showthread.php?t=30962 Blood TC]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;M210&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Blood1.jpg|200px]][[Image:Blood2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Recreation of Blood with EDuke32&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://amc.planetduke.gamespy.com/smf/index.php?topic=7591.0 AMC TC]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;James Stanfield and AMC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:AMCTC1.jpg|200px]][[Image:AMCTC2.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;The AMC TC is a multi-character TC and gameplay modification. There are 8 characters to choose between, each with different weapon sets and items. Fight through the solar system against Duke&#039;s old enemies as well as other dark forces that each plan something unpleasent for Earth and Mars. A initial gameplay release with the finished characters, intromap, and Duke usermap episode is planned with actual story based releases later.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://duke3d.bur.st/forum/index.php?topic=42.0 Action Duke]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, In Development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Captain Awesome|Captain Awesome]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:Duke0003.gif|200px]][[Image:Duke0004.gif|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Action Duke is a mod that plans to take different weapons, characters, and items from the extended Duke universe, and from other BUILD and related games, in addition to new ideas formulated by the author. Will not be a gameplay mod, but rather a full mod. Screenshots are mockups, screens to come will show actual working gameplay.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Duke Meets DOOM Rebirth&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, In Development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Captain Awesome|Captain Awesome]] and [[User:Hendricks 266|Hendricks266]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;[[Image:DMDR_001.gif|200px]][[Image:DMDR_002.jpg|200px]]&amp;lt;/td&amp;gt;&amp;lt;td colspan=&amp;quot;1&amp;quot;&amp;gt;Duke Meets DOOM Rebirth is an upgrade of the original vanilla TC &amp;quot;Duke Meets Doom&amp;quot;.  The basis for this mod is that the original maps are good, but the coding and artwork were sloppy.  There are three different flavors available.  The first is Classic, which will work in 8-Bit mode.  The second is Faithful (name pending), which has highres versions of the original art so that the differences of the DOOM and Duke palettes will not hinder it.  The third is Updated (name pending), which introduces highres content from the jDRP and friends.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=6816</id>
		<title>EDuke32 Modifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=6816"/>
		<updated>2008-05-17T04:43:31Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Users are encouraged to add links to known EDuke32 mods to this page.&lt;br /&gt;
&lt;br /&gt;
===Mods List===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;border:1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.zxdware.net/NR/ Naferia&#039;s Reign: Invasion of the Dark Mistress]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:LordMisfit|Lord Misfit]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;RPG-Style(w/ EXP, Levels, etc); Multiple Characters(in one party, not Hexen-style); Improved Monster Interactivity with Environment/Objects; Interactive ATM Usage; Shops &amp;amp; Money System; etc.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.moddb.com/mods/9541/duke-nukem-weapon-of-mass-destruction Duke Nukem: Weapon of Mass Destruction]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:DeeperThought|DeeperThought]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;Duke Nukem: Weapon of Mass Destruction is a gameplay mod for Duke Nukem 3D. It has tons of new weapon modes, enemies, and player abilities, such as UT style dodge moves, spinning hook kicks, and a Duke bot companion who fights by your side. In some levels you can even get in your skycar and fly it, doing bombing runs on enemies.  In DNWMD, Duke collects glowing coins from slain enemies which are used to purchase various upgrades via a mouse controlled menu. In addition, each of Duke&#039;s weapons has its own experience level which increases with use.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.csus.edu/indiv/g/gaskilld/DukePlus.rar Duke Plus]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:DeeperThought|DeeperThought]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;Enhanced Engine Design Capabilities, including: Transparent Water; Giving Monsters Special Flags; Climbable Ladders; Mantling/Grappling on ledges; Bot-Allies; Footstep Sounds; Rain and Snow-based weather effects; Quake3-Style Jump Pads; Slippery Floors; etc. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://files.filefront.com/Nuclear+Showdown+v10zip/;8218523;;/fileinfo.html Nuclear Showdown]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Released&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:James Stanfield|James Stanfield]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;Nuclear showdown is a gameplay mod for Duke Nukem that adds many features such as new weapons, enemies, effects to the default game as well as usermaps - it is built so you can play your favourite usermaps with, even ones that use custom art. You can also play through Duke it out in DC if you have it.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://hosted.filefront.com/kenia43 Duke Nukem Army]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unfinished release, development ceased&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:Kenia|Kenia]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;A TC that changes Duke Nukem 3D into an exaggerated army-style shooter.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#000; color:#fff&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Creator&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[http://www.moddb.com/mods/10844/duke-nukem-3d-stargate-mod Stargate Mod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;Unreleased, in development&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #000; background:#eee&amp;quot;&amp;gt;[[User:The Commander|The Commander]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;The Stargate Mod for Duke Nukem 3D uses Duke Plus as a base. Fight against the Replicators and visit off-world deserts, forests, space ships, and even Atlantis&amp;amp;mdash;where anything can happen!&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EVENT_DISPLAYROOMS&amp;diff=6514</id>
		<title>EVENT DISPLAYROOMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EVENT_DISPLAYROOMS&amp;diff=6514"/>
		<updated>2008-02-17T07:08:15Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This event can be used to move the game camera from its normal position at the player&#039;s head to a specified location.  This is done by changing the value of several [[constantly updated gamevars]] which determine the camera&#039;s position.  The gamevars are:&lt;br /&gt;
&lt;br /&gt;
camerax, cameray, cameraz, cameraang, camerahoriz, and camerasect&lt;br /&gt;
&lt;br /&gt;
The first three are the map coordinates of the camera, cameraang is the direction the camera is facing, camerahoriz is the up/down angle of the camera, and camerasect is its sector.  Unless these variables are changed in this event, they will take the corresponding values of the player structure (e.g. camerahoriz defaults to the horiz member of the player structure).&lt;br /&gt;
&lt;br /&gt;
One use for this event is to have it display from the point of view of a sprite other than the player.  In the following example, assume that the gamevar camerasprite is global and is set to the sprite ID of a special sprite when the camera is being used, and otherwise has a value of -1.  Also assume that the EXTRA member of the camera sprite is set to the desired horiz.  What follows is the code appropriate for the event in that case (additional actor code for the camera sprite would also be required).&lt;br /&gt;
&lt;br /&gt;
   onevent EVENT_DISPLAYROOMS&lt;br /&gt;
   ifvarn camerasprite -1&lt;br /&gt;
   {&lt;br /&gt;
     getactor[camerasprite].x camerax&lt;br /&gt;
     getactor[camerasprite].y cameray&lt;br /&gt;
     getactor[camerasprite].z cameraz&lt;br /&gt;
     getactor[camerasprite].ang cameraang&lt;br /&gt;
     getactor[camerasprite].extra camerahoriz&lt;br /&gt;
     getactor[camerasprite].sectnum camerasect&lt;br /&gt;
   }&lt;br /&gt;
   endevent&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EVENT_DISPLAYROOMS&amp;diff=6513</id>
		<title>EVENT DISPLAYROOMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EVENT_DISPLAYROOMS&amp;diff=6513"/>
		<updated>2008-02-17T07:00:04Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: This event can be used to move the game camera from its normal position at the player&amp;#039;s head to a specified location.  This is done by changing the value of several constantly updated game...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This event can be used to move the game camera from its normal position at the player&#039;s head to a specified location.  This is done by changing the value of several constantly updated gamevars which determine the camera&#039;s position.  The gamevars are:&lt;br /&gt;
&lt;br /&gt;
camerax, cameray, cameraz, cameraang, camerahoriz, and camerasect&lt;br /&gt;
&lt;br /&gt;
The first three are the map coordinates of the camera, cameraang is the direction the camera is facing, camerahoriz is the up/down angle of the camera, and camerasect is its sector.  Unless these variables are changed in this event, they will take the corresponding values of the player structure (e.g. camerahoriz defaults to the horiz member of the player structure).&lt;br /&gt;
&lt;br /&gt;
One use for this event is to have it display from the point of view of a sprite other than the player.  In the following example, assume that the gamevar camerasprite is global and is set to the sprite ID of a special sprite when the camera is being used, and otherwise has a value of -1.  Also assume that the EXTRA member of the camera sprite is set to the desired horiz.  What follows is the code appropriate for the event in that case (additional actor code for the camera sprite would also be required).&lt;br /&gt;
&lt;br /&gt;
   onevent EVENT_DISPLAYROOMS&lt;br /&gt;
   ifvarn camerasprite -1&lt;br /&gt;
   {&lt;br /&gt;
     getactor[camerasprite].x camerax&lt;br /&gt;
     getactor[camerasprite].y cameray&lt;br /&gt;
     getactor[camerasprite].z cameraz&lt;br /&gt;
     getactor[camerasprite].ang cameraang&lt;br /&gt;
     getactor[camerasprite].extra camerahoriz&lt;br /&gt;
     getactor[camerasprite].sectnum camerasect&lt;br /&gt;
   }&lt;br /&gt;
   endevent&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Sound_pitch&amp;diff=6402</id>
		<title>Sound pitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Sound_pitch&amp;diff=6402"/>
		<updated>2007-11-24T05:29:18Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: New page: Changes the pitch of all sounds for the specified player.  Negative values lower pitch, positive values raise pitch.  Pitch will remain altered, even if a new game is started, until sound_...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Changes the pitch of all sounds for the specified player.  Negative values lower pitch, positive values raise pitch.  Pitch will remain altered, even if a new game is started, until sound_pitch is set back to 0.  Note that sound_pitch will not affect the pitch of sounds already being played (so a looping sound will not be altered until the next time it starts).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
   setplayer[THISACTOR].sound_pitch -1024&lt;br /&gt;
&lt;br /&gt;
...will lower the pitch of sounds as if the player were underwater.&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Scripting&amp;diff=6391</id>
		<title>Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Scripting&amp;diff=6391"/>
		<updated>2007-11-05T05:35:03Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: /* Event use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{EDuke32 Intro}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;floatleft&amp;quot;&amp;gt;__NOTOC__&amp;lt;/div&amp;gt; &amp;lt;!-- changed to NOTOC to get rid of it temporarily --&amp;gt;&lt;br /&gt;
==About This Guide==&lt;br /&gt;
===Intro===&lt;br /&gt;
This guide will get you started with the basic aspects of EDuke32&#039;s commands -- those which set it apart from vanilla DN3D.  This guide makes no assumptions regarding the programming experience of the reader, other than that the reader comprehends and understands the basic CON system as was seen in Duke Nukem 3D 1.3D/1.5.&lt;br /&gt;
&lt;br /&gt;
===CON Basics===&lt;br /&gt;
As stated, this guide assume that you are familiar with the original CON code from Duke3D.  If you are not already familiar with the [[:Category:Duke3D_1.3/1.5_commands|default commands]], the authors of this guide recommend the following guide to the basics, imported into the EDukeWiki for your convenience:&lt;br /&gt;
* [[Confaq42|Con FAQ 4.2 by Jonah Bishop (note: some sections have been shuffled around a bit by TX)]] &lt;br /&gt;
** [http://rtcm.thecomitatus.com/knowledge-base/downloads-rtcm/duke3d-faqs-con/confaq42.zip Download stand-alone zipped version (original version from 1999 in .txt format)]&lt;br /&gt;
&lt;br /&gt;
Another good source of basic information is the following FAQ:&lt;br /&gt;
* [http://rtcm.thecomitatus.com/knowledge-base/downloads-rtcm/duke3d-faqs-con/H_CONFAQ.zip Con Editing Information v1.3 by James Ferry]&lt;br /&gt;
&lt;br /&gt;
==Gamevars==&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
[[Gamevar|Gamevars]] were introduced in [[WW2GI]] and remain the most important aspect of the new commandset.  Gamevars work like variables in programming languages, allowing the user to store, manipulate, and compare data.  Prior to gamevars, the only usable alternatives were manipulations of inventory item counters and move commands.&lt;br /&gt;
&lt;br /&gt;
===Types===&lt;br /&gt;
There are three basic types of gamevar, each type storing a signed 32-bit fixed-point integer.  The three basic types are as follows:&lt;br /&gt;
* &#039;&#039;&#039;Global variable&#039;&#039;&#039;: If a variable is declared as global, there is only one copy of it which may be accessed by any actor in the game.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
   gamevar shots_fired 0 0 // gamevar declarations must not occur inside states, events, or actor code&lt;br /&gt;
&lt;br /&gt;
This line tells the game that there is a variable named &amp;quot;shots_fired&amp;quot; which is initialized to 0 ( the first 0 ) and is global ( the second 0 ).&lt;br /&gt;
You could then find the places in the GAME.CON code where the command &amp;quot;shoot SHOTSPARK1&amp;quot; occurs, and in each instance add the line &amp;quot;addvar shots_fired 1&amp;quot;, so that in each case it looks like this:&lt;br /&gt;
&lt;br /&gt;
   shoot SHOTSPARK1&lt;br /&gt;
   addvar shots_fired 1 // increments the global var&lt;br /&gt;
&lt;br /&gt;
This will make the shots_fired var increment each time an enemy fires a SHOTSPARK1 projectile.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Per-player variable&#039;&#039;&#039;: If a variable is declared as per-player, there is one copy of it for each player in the game, meaning that the variable is set independently for each player.  If a player performs an action that triggers a per-player variable change within an event or the APLAYER actor code, it will only change for the player that initiated that action.  If an actor changes a per-player variable, it will change for the closest player to the actor what changed it.  You can use the [[setplayervar]] command to set a per-player var for a particular player who is not the closest one, but this is only necessary in multiplayer games (and even then it is seldom necessary).  In single player games, there is little practical difference between a global gamevar and a per-player variable.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Per-actor variable&#039;&#039;&#039;: If a variable is declared as per-actor, then there is separate copy of it for each sprite in the game.  That means that every monster, projectile, player, decorative sprite -- pretty much anything in the game that isn&#039;t a wall or sector -- has its own copy of the variable.  This is useful if you want to have actors other than the player store information for more than one tick.  For example, suppose you want each monster to keep track of how many bullets it has fired:&lt;br /&gt;
&lt;br /&gt;
   gamevar shots_fired 0 2&lt;br /&gt;
&lt;br /&gt;
This line tells the game that there is a variable named &amp;quot;shots_fired&amp;quot; which is initialized to 0 ( the 0 ) and is per-actor( the 2 ).&lt;br /&gt;
With the gamevar declared, you could then add code to the monsters to increment the var when firing shots (just like in the example above for global gamevars).  Since the gamevar is per-actor, the same code would now increment the variable separately for each monster.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;There are also some [[pre-defined gamevars]] and special [[constantly updated gamevars]] which should only be used in certain ways.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Use and manipulation===&lt;br /&gt;
&lt;br /&gt;
Custom variables, or &amp;quot;gamevars&amp;quot; are declared with the [[gamevar]] command.&lt;br /&gt;
&lt;br /&gt;
The syntax for defining a gamevar is:&lt;br /&gt;
::gamevar &amp;lt;varname&amp;gt; &amp;lt;value&amp;gt; &amp;lt;flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use upper or lowercase letters for &amp;lt;varname&amp;gt;.  EDuke32 is case-sensitive, so a var named &amp;quot;EXAMPLE1&amp;quot; is different from &amp;quot;example1.&amp;quot;  Variable names should not begin with a digit. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;value&amp;gt; of the gamevar may be positive or negative and must be a whole number.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;flags&amp;gt; may be set to either 0 (global), 1 (per-player), or 2 (per-actor).&lt;br /&gt;
&lt;br /&gt;
Manipulation of gamevars is accomplished by using a variety of commands that range in functionality from simple mathematical functions to grabbing internal values for manipulation in the CONs.  Here are a few of the more common variable manipulation primitives:&lt;br /&gt;
&lt;br /&gt;
*[[setvar]], [[setvarvar]]&lt;br /&gt;
*[[addvar]], [[addvarvar]]&lt;br /&gt;
*[[subvar]], [[subvarvar]]&lt;br /&gt;
*[[mulvar]], [[mulvarvar]]&lt;br /&gt;
*[[divvar]], [[divvarvar]]&lt;br /&gt;
*[[randvar]], [[randvarvar]]&lt;br /&gt;
&lt;br /&gt;
And some of the more rarely used ones:&lt;br /&gt;
&lt;br /&gt;
*[[andvar]], [[andvarvar]]&lt;br /&gt;
*[[sin]], [[cos]]&lt;br /&gt;
*[[orvar]], [[orvarvar]]&lt;br /&gt;
*[[shiftvarl]], [[shiftvarr]]&lt;br /&gt;
*[[xorvar]], [[xorvarvar]]&lt;br /&gt;
&lt;br /&gt;
To test the values of gamevars, the following commands are used:&lt;br /&gt;
&lt;br /&gt;
*[[ifvarand]]&lt;br /&gt;
*[[ifvarvarand]]&lt;br /&gt;
*[[ifvare]]&lt;br /&gt;
*[[ifvarg]]&lt;br /&gt;
*[[ifvarl]]&lt;br /&gt;
*[[ifvarn]]&lt;br /&gt;
*[[ifvarvare]]&lt;br /&gt;
*[[ifvarvarg]]&lt;br /&gt;
*[[ifvarvarl]]&lt;br /&gt;
*[[ifvarvarn]]&lt;br /&gt;
&lt;br /&gt;
A complete list of primitives is available [[Full_command_list|here]].  The importance of manipulating gamevars will become clear when we get to talking about getting and setting the members of the various structures in the game.  All commands which accept read-only gamevars will also accept constants in place of them.&lt;br /&gt;
&lt;br /&gt;
==Members of game structures==&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
EDuke32, like prior EDuke iterations, gives you access to game structures--basic elements of the game such as the player, sprites, walls, and sectors--and their predefined property variables, or members.  There are many different structures which can be accessed, and a list of the common ones can be found [[full list of structure members|here]].&lt;br /&gt;
&lt;br /&gt;
===Player===&lt;br /&gt;
The [[members of the player structure]] are controlled using the [[getplayer]] and [[setplayer]] commands.  The player structure members deal with properties unique to the player which are not shared with other actors.  These include variables associated to the players weapons, inventory items, special animations, jumping counters, etc.  See the complete list of [[members of the player structure]] for details.  [[Make_Nightvision_light_rooms|This example]] shows how to get a member of the player structure into a variable, check its value, then alter a member of the player structure accordingly.&lt;br /&gt;
&lt;br /&gt;
===Actor / Sprite===&lt;br /&gt;
[[Members of the sprite and hittype structures]]&lt;br /&gt;
&lt;br /&gt;
Objects in the game world, such as monsters, missiles, bits of debris, and so on, are referred to as &amp;quot;sprites&amp;quot; (because they are typically rendered as 2D pictures).  Sprites that execute code are usually referred to as &amp;quot;actors&amp;quot;. Every sprite has its own data structure containing all of the elements in the list linked to above.  Various CON commands, such as &amp;quot;cstat&amp;quot;, &amp;quot;spritepal&amp;quot;, &amp;quot;sizeat&amp;quot;, etc. work by changing values in the sprite structure of the actor executing the command.  Structure members can also be modified directly using the setactor command.  This command enables us to modify every member of the structure, even those that could not be accessed with the pre-Eduke scripting system. See [[getactor]] and [[setactor]] to see how these commands are used.&lt;br /&gt;
====Hittype====&lt;br /&gt;
====Spriteext====&lt;br /&gt;
&lt;br /&gt;
===Sector===&lt;br /&gt;
[[Members of the sector structure]]&lt;br /&gt;
===Wall===&lt;br /&gt;
[[Members of the wall structure]]&lt;br /&gt;
===Game configuration===&lt;br /&gt;
[[Members of the userdef structure]]&lt;br /&gt;
===Player input===&lt;br /&gt;
[[Members of the input structure]]&lt;br /&gt;
==Events==&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
EDuke32 provides both an object-oriented and an event-oriented interface to the game&#039;s internal workings.  As you already know, the object-oriented part of Duke is the actor system -- in contrast to that, we&#039;ll be talking about the event-oriented portion in this section.  As the name suggests, an [[events|event]] is a block of code that is triggered when a certain event in the game happens.  Events in the game are triggered internally whenever a certain point in the code is reached.&lt;br /&gt;
&lt;br /&gt;
Events are a key component in the manipulation of the game.  Using events, we can do a variety of things such as intercept keypresses, draw to the screen (more on this later), redefine what a player does when certain actions are executed, et cetera.&lt;br /&gt;
&lt;br /&gt;
===Event use===&lt;br /&gt;
Using an event is very easy &amp;amp;mdash; similar to the [[actor]] or [[state]] primitives, [[onevent]] is the primitive used to start the definition of a block of code to be associated with one of the [[EDuke32 event list|events]].  Furthering the similarity, onevent must be terminated by the equivalent of an [[enda]] or an [[ends]], an [[endevent]].&lt;br /&gt;
&lt;br /&gt;
The following example of event code will cause the player to have a full first aid kit every time the inventory is reset (e.g. when the player starts a game):&lt;br /&gt;
&lt;br /&gt;
    onevent EVENT_RESETINVENTORY&lt;br /&gt;
    setplayer[THISACTOR].firstaid_amount 100&lt;br /&gt;
    endevent&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A note on synchronization====&lt;br /&gt;
Events introduce the ability for CON code to be run in a manner that isn&#039;t synchronized. For example, display events may run a different number of times on each individual system in multiplayer. If you want your mod to function properly in multiplayer, it is very important to note whether an event is synchronized or not.  Typically, you&#039;ll just want to avoid doing anything that changes the game state (including [[ifrnd]] and [[randvar]]) in display code.&lt;br /&gt;
&lt;br /&gt;
==Drawing to the screen==&lt;br /&gt;
The ability to properly draw to the screen is a huge improvement over the hackish abominations involving quotes and unused characters that we were forced to endure when using 1.3d and 1.5.  There are several different drawing commands available, ranging in functionality from drawing graphics to the screen to printing text stored in quotes (see the section on string manipulation for more information).&lt;br /&gt;
&lt;br /&gt;
===Drawing commands===&lt;br /&gt;
*[[rotatesprite]]&lt;br /&gt;
*[[gametext]]&lt;br /&gt;
*[[minitext]]&lt;br /&gt;
*[[digitalnumber]]&lt;br /&gt;
*[[myos]] (deprecated)&lt;br /&gt;
*[[myospal]] (deprecated)&lt;br /&gt;
*[[myosx]] (deprecated)&lt;br /&gt;
*[[myospalx]] (deprecated)&lt;br /&gt;
&lt;br /&gt;
==Custom projectiles==&lt;br /&gt;
===Overview===&lt;br /&gt;
Eduke32 adds the ability to create new projectiles in addition to the default types. A few basic types exist (shorthand: melee, bullet, and slow projectile) which can be used to create a nearly infinite variety of weapon types and even new effects (example: additional debris types).&lt;br /&gt;
&lt;br /&gt;
===Defining custom projectiles===&lt;br /&gt;
Projectiles are defined via the [[defineprojectile]] command. The syntax for this command is:&lt;br /&gt;
 defineprojectile &amp;lt;tilenum&amp;gt; &amp;lt;function&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before using this command list of defines should be created:&lt;br /&gt;
 define PROJ_WORKSLIKE 1&lt;br /&gt;
 define PROJ_SPAWNS 2&lt;br /&gt;
 define PROJ_SXREPEAT 3&lt;br /&gt;
 define PROJ_SYREPEAT 4&lt;br /&gt;
 define PROJ_SOUND 5&lt;br /&gt;
 define PROJ_ISOUND 6&lt;br /&gt;
 define PROJ_VEL 7&lt;br /&gt;
 define PROJ_EXTRA 8&lt;br /&gt;
 define PROJ_DECAL 9&lt;br /&gt;
 define PROJ_TRAIL 10&lt;br /&gt;
 define PROJ_TXREPEAT 11&lt;br /&gt;
 define PROJ_TYREPEAT 12&lt;br /&gt;
 define PROJ_TOFFSET 13&lt;br /&gt;
 define PROJ_TNUM 14&lt;br /&gt;
 define PROJ_DROP 15&lt;br /&gt;
 define PROJ_CSTAT 16&lt;br /&gt;
 define PROJ_CLIPDIST 17&lt;br /&gt;
 define PROJ_SHADE 18&lt;br /&gt;
 define PROJ_XREPEAT 19&lt;br /&gt;
 define PROJ_YREPEAT 20&lt;br /&gt;
 define PROJ_PAL 21&lt;br /&gt;
 define PROJ_EXTRA_RAND 22&lt;br /&gt;
 define PROJ_HITRADIUS 23&lt;br /&gt;
 define PROJ_VEL_MULT 24&lt;br /&gt;
 define PROJ_OFFSET 25&lt;br /&gt;
 define PROJ_BOUNCES 26&lt;br /&gt;
 define PROJ_BSOUND 27&lt;br /&gt;
 define PROJ_RANGE 28&lt;br /&gt;
&lt;br /&gt;
These defines are used to fill the &amp;lt;function&amp;gt; block of defineprojectile.&lt;br /&gt;
&lt;br /&gt;
===Manipulating custom projectiles mid-game===&lt;br /&gt;
&lt;br /&gt;
==String manipulation==&lt;br /&gt;
===Quote redefinition mid-game===&lt;br /&gt;
 redefinequote &amp;lt;quotenumber&amp;gt; &amp;lt;string&amp;gt; // sets the quote number &amp;lt;quotenumber&amp;gt;&#039;s text to &amp;lt;string&amp;gt;&lt;br /&gt;
===Copying and concatenation===&lt;br /&gt;
 qstrcpy &amp;lt;quotenumber1&amp;gt; &amp;lt;quotenumber2&amp;gt; // sets the text of &amp;lt;quotenumber1&amp;gt; to the text of &amp;lt;quotenumber2&amp;gt;&lt;br /&gt;
 qstrcat &amp;lt;quotenumber1&amp;gt; &amp;lt;quotenumber2&amp;gt; // adds the text of &amp;lt;quotenumber2&amp;gt; to the text of &amp;lt;quotenumber1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dynamic quotes===&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*[[Full command list]]&lt;br /&gt;
*[[EDuke32 event list]]&lt;br /&gt;
*[[Full list of structure members]]&lt;br /&gt;
&lt;br /&gt;
*[[:Category:All commands|Categorized documentation]]&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Main_Page&amp;diff=6390</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Main_Page&amp;diff=6390"/>
		<updated>2007-11-05T05:20:38Z</updated>

		<summary type="html">&lt;p&gt;DeeperThought: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
Welcome to EDukeWiki!  This wiki serves to provide the most accurate and complete source of [[EDuke32]] documentation on the Internet.&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-right: none; padding: 0.6em;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Using EDuke32=== &lt;br /&gt;
* [[Installation and configuration]]&lt;br /&gt;
* [[Configuration file options]]&lt;br /&gt;
* [[Console commands]] &lt;br /&gt;
* [[Frequently Asked Questions]] &lt;br /&gt;
&lt;br /&gt;
===Building EDuke32===&lt;br /&gt;
* [[Building EDuke32 on Windows]]&lt;br /&gt;
* [[Building EDuke32 on Linux]] &lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-left: none; padding: 0.6em;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===EDuke32 Modding=== &lt;br /&gt;
* [[Scripting]] &lt;br /&gt;
* [[Level editing]] &lt;br /&gt;
* [[Tutorials]] &lt;br /&gt;
* [[Utilities]] &lt;br /&gt;
* [[EDuke32 Modifications]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border-left: none; padding: 0.6em;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
[[Image:Title_screen.png|right]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please remember that EDukeWiki is a community project.  It relies on content contributed by users such as yourself in order to stay alive and useful.  As such, it is your responsibility to not only make sure that the documentation here is both accurate and relevant to current version of [[EDuke32]], but to also help reverse any vandalism you see.  Thank you for your contributions!&lt;/div&gt;</summary>
		<author><name>DeeperThought</name></author>
	</entry>
</feed>