<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://eternity.youfailit.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bloodshedder</id>
	<title>Eternity Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://eternity.youfailit.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bloodshedder"/>
	<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/wiki/Special:Contributions/Bloodshedder"/>
	<updated>2026-06-13T15:20:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_cheat_codes&amp;diff=6181</id>
		<title>List of cheat codes</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_cheat_codes&amp;diff=6181"/>
		<updated>2024-08-25T23:43:46Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Undo revision 6178 by 188.242.190.172 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Eternity Engine supports several cheat codes besides what vanilla Doom has. The list follows.&lt;br /&gt;
{{Backto|Eternity Engine}}&lt;br /&gt;
{{editref}}&lt;br /&gt;
==Classic Doom cheats==&lt;br /&gt;
These cheats are available in Doom and Doom 2, and function mostly if not identically the same.&lt;br /&gt;
===IDMUS===&lt;br /&gt;
IDMUS allows the music to be changed to any other internally defined music. Type IDMUS and then the level number to hear the song that plays on that map (in DOOM and Heretic, use the episode and then map; in DOOM II, use the 2-digit map number). Typing numbers beyond the number of levels in the game will allow you to hear other songs such as intermission, title, and ending music. This cheat won&#039;t crash on bad numbers like DOOM originally could.&lt;br /&gt;
===IDCHOPPERS===&lt;br /&gt;
IDCHOPPERS gives you the chainsaw. It is named after a game entered in a state programming contest, and the message it gives is related to it.&lt;br /&gt;
===IDDQD===&lt;br /&gt;
IDDQD sets the player&#039;s health to 100 and toggles god mode. DQD stands for Delta-Q-Delta, a supposed fraternity for programmers where the requirement for entry was at least one Q (a mark given in college for a class withdrawal) on your transcript.&lt;br /&gt;
===IDK, IDKFA, IDFA===&lt;br /&gt;
These cheats give the following: &lt;br /&gt;
*IDK: All six DOOM keys &lt;br /&gt;
*IDKFA: All six keys, full ammo and weapons, and armor &lt;br /&gt;
*IDFA: Full ammo, weapons, and armor, but no keys &lt;br /&gt;
IDK is new as of the BOOM engine. According to the Linux DOOM source, KFA either stands for killer fraggin&#039; arsenal (although a less kosher word is used for fraggin&#039;), or Keys and Full Ammo. You can take your pick.&lt;br /&gt;
===IDCLIP, IDSPISPOPD===&lt;br /&gt;
These two cheats have identical functionality, which is turning off the game&#039;s clipping code for the player. This allows you to walk through walls and solid things, and even completely out of the map. SPISPOPD stands for &amp;quot;Smashing Pumpkins Into Small Piles Of Putrid Debris,&amp;quot; and has its origins in the pre-DOOM-release Usenet mayhem.&lt;br /&gt;
===IDBEHOLD===&lt;br /&gt;
Typing IDBEHOLD will bring up a small menu where you can choose to enable one of various powerup effects. To choose a powerup, use the following keys: &lt;br /&gt;
*R: Toggles radiation suit &lt;br /&gt;
*I: Toggles partial invisibility &lt;br /&gt;
*V: Toggles invulnerability (with inverse colormap) &lt;br /&gt;
*A: Toggles all-map cheat (reveals the automap) &lt;br /&gt;
*L: Toggles lite-amp goggles &lt;br /&gt;
*S: Toggles berserk strength &lt;br /&gt;
In DOOM, some of these effects would wear off after the normal amount of time. By default, Eternity allows them to stay on forever until you explicitly turn them off by typing the cheat again.&lt;br /&gt;
===IDCLEV===&lt;br /&gt;
This cheat allows you to change levels. In DOOM or Heretic, type the episode number and then the map number after the cheat. In DOOM II, type the two-digit level number. You can only warp to levels which are normally in the game, even if other map numbers are available in the wad (to warp to oddly-named or higher-numbered levels, use Eternity&#039;s map console command).&lt;br /&gt;
===IDMYPOS===&lt;br /&gt;
This cheat prints detailed information about your current location. The format of its output has been improved over that which was used in DOOM; however, this cheat&#039;s function is mostly obsoleted by the automap coordinates widget.&lt;br /&gt;
===IDDT===&lt;br /&gt;
To activate this cheat, go to the automap and type IDDT. Doing this once will allow you to see all lines in the map. Doing it again will allow you to also see all things in the map. Type it a third time to return the automap to normal. You can see some areas of the map with IDDT that you cannot see with the all-map powerup.&lt;br /&gt;
==BOOM and MBF Cheats==&lt;br /&gt;
These cheats were added in BOOM and MBF. Some of them have been changed slightly (in BOOM, many of them had a TNT prefix, which was removed in MBF).&lt;br /&gt;
===COMP===&lt;br /&gt;
This cheat toggles all of the compatibility vector variables at once, turning them on or off.&lt;br /&gt;
===KILLEM===&lt;br /&gt;
This cheat kills all monsters on the map, keeping count (it counts monsters which do not normally count for kills, such as Lost Souls, so the number may be higher than the kill count for the map). If there are no enemy monsters on the map and you type this, it will kill all friends on the map (not including the player, of course).&lt;br /&gt;
&lt;br /&gt;
Same as the &amp;quot;nuke&amp;quot; console command.&lt;br /&gt;
===HOM===&lt;br /&gt;
This cheat toggles the BOOM HOM detection feature. Depending on your settings, HOM will appear either as solid red or as a red flashing area when this cheat is enabled.&lt;br /&gt;
&lt;br /&gt;
Same as the &amp;quot;r_showhom /&amp;quot; console command.&lt;br /&gt;
===KEY===&lt;br /&gt;
Type KEY to bring up a menu, then type R, Y, or B to choose a key color (red, yellow, or blue). Then, type C or S to select card or skull. Once you make the final selection, the key will either be given to you if you don&#039;t have it, or it will be taken away. This lets you select the key you need (especially useful in maps with missing keys).&lt;br /&gt;
===WEAP===&lt;br /&gt;
Type WEAP, then type a number (1-9 in DOOM II, 1-8 in DOOM). The selected weapon which is associated with that slot will either be added or removed, depending on whether you have it or not (note the Super Shotgun is weapon #9 in DOOM II). You can remove the fist, chainsaw, and pistol with this code, but cannot get them back unless you type it again.&lt;br /&gt;
===AMMO===&lt;br /&gt;
Type AMMO, then either type a number from 1 to 4, or B for Backpack. The selected ammo will be added or taken away (yes, you can remove the backpack if you already have it). Ammo types are bullets, shells, rockets, and cells.&lt;br /&gt;
===TRAN===&lt;br /&gt;
This code toggles translucency rendering effects (both BOOM-style and DosDOOM-style). Sometimes turning this off can help the framerate a bit, especially on really old machines.&lt;br /&gt;
===ICE===&lt;br /&gt;
Type this cheat to toggle BOOM friction effects.&lt;br /&gt;
===PUSH===&lt;br /&gt;
Type this cheat to toggle BOOM pusher effects.&lt;br /&gt;
&lt;br /&gt;
Same as the &amp;quot;pushers /&amp;quot; console command.&lt;br /&gt;
===NUKE===&lt;br /&gt;
Type this cheat to toggle the effects of damaging sectors.&lt;br /&gt;
==Eternity Cheats==&lt;br /&gt;
These cheat codes are new to Eternity.&lt;br /&gt;
===HIDEME ===&lt;br /&gt;
&lt;br /&gt;
This cheat toggles the new total invisibility powerup effect. When totally invisible, enemies will not awaken by seeing you. Deaf enemies cannot awaken at all, since they can neither see nor hear you. However, if a normal enemy hears you, this cheat will only become as good as partial invisibility, as the demons have a sense for where you are even when you are invisible. &lt;br /&gt;
&lt;br /&gt;
===GHOST===&lt;br /&gt;
&lt;br /&gt;
This cheat toggles the Heretic shadowsphere effect. You will become translucent, and if you move slowly and keep at a distance, enemies may fail to see you. They also cannot aim at you well even when they do see you, just as with partial and total invisibility. &lt;br /&gt;
&lt;br /&gt;
Same as the &amp;quot;r_trans /&amp;quot; console command.&lt;br /&gt;
&lt;br /&gt;
===INFSHOTS ===&lt;br /&gt;
&lt;br /&gt;
This cheat toggles infinite ammo. When turned on, none of your weapons will use any ammo whatsoever. &lt;br /&gt;
&lt;br /&gt;
===SILENCE ===&lt;br /&gt;
&lt;br /&gt;
This cheat toggles the new silencer powerup effect. When active, your weapons&#039; sounds will not cause enemies to awaken. When combined with HIDEME, enemies will never wake up unless you hurt them. &lt;br /&gt;
&lt;br /&gt;
===IAMTHEONE ===&lt;br /&gt;
&lt;br /&gt;
This is a master cheat which will make you all-powerful. It will turn on god mode, infinite ammo, total invisibility, and silencer effects if they are not on (it will not deactivate them if you type it again). It also gives full ammo, weapons, and armor.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Eternity_Engine&amp;diff=6180</id>
		<title>Eternity Engine</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Eternity_Engine&amp;diff=6180"/>
		<updated>2024-08-25T23:43:40Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Undo revision 6179 by 69.130.117.220 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Eternity Engine is [[Doom Wiki:Team Eternity|Team Eternity]]&#039;s advanced [[Doom Wiki:Doom|Doom]] [[Doom Wiki:Source port|source port]] and the primary subject of this Wiki. It is meant as a versatile feature port which keeps gameplay compatibility with its roots (DOOM, [[BOOM]], [[MBF]] and so on) while advancing with powerful features such as new ways to design levels ([[linked portals]], [[3DMidTex]], [[polyobjects]] etc.) and modding capabilities (using the [[EDF]] definition language). Every new feature we add is tested not to affect anything that exists so far. &lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Eternity Engine began in 1998 as a simple modification of [[Doom Wiki:Boom|Boom]] meant to power [[Doom Wiki:Eternity TC|Eternity TC]], which was at that time a new and active project. When [[Doom Wiki:Lee Killough|Lee Killough]] began the [[MBF]] project, [[Doom Wiki:James_Haley_(Quasar)|James &amp;quot;Quasar&amp;quot; Haley]] became a beta tester after emailing Lee with questions about the early Doom alpha versions. The Eternity project moved to an MBF code base after that port&#039;s first release.&lt;br /&gt;
&lt;br /&gt;
In late 1999, [[Doom Wiki:Simon &amp;quot;Fraggle&amp;quot; Howard|Fraggle]] released v3.10 of his MBF-based source port [[SMMU]], which contained support for the new [[Doom Wiki:FraggleScript|FraggleScript]] scripting language. Although activity in the Eternity TC project by editors had steadily dropped to almost nothing, Quasar was still interested in developing the code associated with it. Needing features such as scripting and the [[console]], he then moved the Eternity project&#039;s code into SMMU.&lt;br /&gt;
&lt;br /&gt;
Despite this long history of jumping between Boom-based ports, no public release of Eternity based on any port other than SMMU was ever made. The first private alpha, released to a select few beta testers, was derived from SMMU 3.21 with selected modifications from 3.30. Because of this, Eternity began at version 3.29.&lt;br /&gt;
&lt;br /&gt;
After the release of the [[Doom Wiki:Caverns_of_Darkness|Caverns of Darkness]] project, which used a customized version of Eternity Engine v3.29 Development Beta 5, the project began to attract more attention. A second programmer, [[Doom Wiki:Stephen_McGranahan_(SoM)|Steven &amp;quot;SoM&amp;quot; McGranahan]], joined the project and immediately set to work porting the code to use [[Wikipedia:Simple_DirectMedia_Layer|SDL]], making it capable of running on many operating systems, including [[Wikipedia:Microsoft Windows|Windows]].&lt;br /&gt;
&lt;br /&gt;
Now it has [[Universal Doom Map Format|UDMF]] support and a dynamic weapon and inventory system. It supports linked portals for full room-over-room gameplay. Current major goals for the engine include completing support for [[Doom Wiki:Heretic|Heretic]].&lt;br /&gt;
&lt;br /&gt;
==Getting started==&lt;br /&gt;
You can download Eternity either from [https://www.doomworld.com/forum/25-eternity/ Doomworld] (as official releases) or from [https://devbuilds.drdteam.org/eternity/ DRDTeam] (as &amp;quot;beta quality&amp;quot; development builds, which in practice are generally stable, and may be needed for some modding features listed on this wiki).&lt;br /&gt;
&lt;br /&gt;
Eternity&#039;s goal that makes it different from feature ports such as [[Doom Wiki:GZDoom|GZDoom]] is demo compatibility similar to that of [[Doom Wiki:PrBoom+|PrBoom+]], kept specifically to ensure that every new feature we add fits seamlessly with what exists so far, and that we don&#039;t stray from the bases made so far in the DOOM gameplay.&lt;br /&gt;
&lt;br /&gt;
Support for [[Doom Wiki:Heretic|Heretic]] is growing, though still under way. While we don&#039;t support vanilla Heretic demos for playback yet, a possibility exists in the horizon.&lt;br /&gt;
&lt;br /&gt;
===Playing Eternity===&lt;br /&gt;
When run directly, Eternity tries to find the DOOM, DOOM 2 or Final DOOM megawads in some standard locations. If it can&#039;t find them, it will let you know. If it finds several of them, it will start with a picker screen, letting you choose.&lt;br /&gt;
&lt;br /&gt;
On [[Wikipedia:Windows|Windows]] you can use the drag-and-drop feature of Explorer by moving WADs and PKEs into Eternity&#039;s executable. Or you can use Powershell or Command Prompt in a manner similar to starting [[Doom Wiki:Vanilla Doom|vanilla DOOM]]. See [[list of command line parameters]]. For more advanced cases, you can use [[GFS]] files to quickly load multiple files and settings together.&lt;br /&gt;
&lt;br /&gt;
The [[Wikipedia:macOS|macOS]] version of Eternity also comes with a visual dialog-box launcher, hiding the complexity behind starting a terminal.&lt;br /&gt;
&lt;br /&gt;
For advanced technical stuff, cheating and testing maps, Eternity has a [[console]] similar to [[Wikipedia:Quake|Quake&#039;s]].&lt;br /&gt;
&lt;br /&gt;
====Loading main game WADs====&lt;br /&gt;
Eternity looks for the main game WADs (IWADs), e.g. doom2.wad, at these locations:&lt;br /&gt;
* IWAD file paths in user/system.cfg;&lt;br /&gt;
* the -iwad command-line parameter;&lt;br /&gt;
* the [[Doom Wiki:Environment variables|&#039;&#039;&#039;DOOMWADDIR&#039;&#039;&#039; or &#039;&#039;&#039;DOOMWADPATH&#039;&#039;&#039; environment variables]];&lt;br /&gt;
* the IWAD in the working directory;&lt;br /&gt;
* the IWAD file under the appropriate game folder of the base directory, which can be found using the -game parameter.&lt;br /&gt;
&lt;br /&gt;
====Loading Master Levels for DOOM II====&lt;br /&gt;
Eternity offers a menu for conveniently loading each WAD from the Master Levels. To start the Master Levels:&lt;br /&gt;
# Start Eternity with DOOM II;&lt;br /&gt;
# Go to the Options menu, under the Game Files section, select WAD Options;&lt;br /&gt;
# Under the Master Levels section, you may need to specify Master Levels Dir to the path with the WADs;&lt;br /&gt;
# Once the path is configured, enter Play Master Levels.&lt;br /&gt;
Once the Master Levels Dir is configured, entering New Game from the menu will give you the choice to start the Master Levels.&lt;br /&gt;
&lt;br /&gt;
===Making mods for Eternity===&lt;br /&gt;
The editors [[Doom Wiki:Doom Builder X|Doom Builder X]], [[Doom Wiki:GZDoom Builder|GZDoom Builder]], [[Doom Wiki:Eureka|Eureka]] and [[Doom Wiki:SLADE|SLADE]] have Eternity level editing support of varying degrees. For [[UDMF]] (modern advanced format) you can use Doom Builder X, GZDoom Builder or SLADE. However, if you lack access to a UDMF-capable editor or don&#039;t want the complexity it brings, you can also use the classic DOOM format, combined with [[ExtraData]]&lt;br /&gt;
&lt;br /&gt;
For general modding, Eternity relies on [[EDF]], its own content definition language. For level definitions in particular it uses [[EMAPINFO]]. Eternity also has growing support for some lumps from [[Doom Wiki:GZDoom|GZDoom]] and [[Doom Wiki:Hexen|Hexen]] such as [[ANIMDEFS]], thus increasing the support for cross-port mods.&lt;br /&gt;
&lt;br /&gt;
Eternity can load [[PKE]] archives, not just [[Doom Wiki:WAD|WADs]]. It can also load unarchived folders structured the same as PKE archives (you can use the -file command-line parameter on folders), facilitating project work. You can use powerful editors such as [[Wikipedia:Visual Studio Code|Visual Studio Code]] on such folders to edit your EDF modifications.&lt;br /&gt;
&lt;br /&gt;
See [[Editing reference|all editing reference]] to get started on modding.&lt;br /&gt;
&lt;br /&gt;
==Major Features==&lt;br /&gt;
&lt;br /&gt;
===Cardboard engine===&lt;br /&gt;
[[Cardboard]] is a floating-point rendering engine created by [[Doom Wiki:Stephen_McGranahan_(SoM)|SoM]] that fixes several problems inherent with the classic fixed-point [[Doom Wiki:Doom rendering engine|Doom rendering engine]].&lt;br /&gt;
&lt;br /&gt;
===EDF===&lt;br /&gt;
[[EDF]], which stands for Eternity Definition Files, is a textual input language that allows specification of almost all the static game data which was once contained inside the executable. This includes [[thingtype|thing types]], [[frame|frames]], sprites, terrain definitions, and more. EDF has a relaxed [[Wikipedia:C programming language|C]]-like syntax and can be used from both files and [[WAD]] lumps.&lt;br /&gt;
&lt;br /&gt;
===ExtraData===&lt;br /&gt;
[[ExtraData]] is another EDF-like data specification language that allows the Doom map format to be extended with any kind of data. Use of special thing, line, and sector types within a map allows the editor to attach ExtraData records to those objects. Special data for the objects is then given inside the script.&lt;br /&gt;
&lt;br /&gt;
===Linked portals===&lt;br /&gt;
[[Linked portals]] are surfaces that, like regular [[portals]], connect different areas of the map, but in addition can be walked through, thus allowing multistory maps to be designed in Doom.&lt;br /&gt;
&lt;br /&gt;
===[[MapInfo]]===&lt;br /&gt;
Eternity expands SMMU&#039;s level info system significantly, allowing dozens of new properties to be specified, and allowing cascading global EMAPINFO lumps as an alternative to inserting MapInfo data into level headers. Among other things, MapInfo is used to tie ExtraData and ACS scripts to the maps that use them.&lt;br /&gt;
&lt;br /&gt;
==Releases==&lt;br /&gt;
A complete list of Eternity&#039;s release history follows. You can find most of these releases on the [https://www.doomworld.com/forum/25-eternity/ Doomworld Eternity forum], on the [https://github.com/team-eternity/eternity/releases GitHub Eternity repository] and the older releases on the [http://eternity.mancubus.net/ee-old/ Eternity Mancubus website]. Most of the releases are Windows only, but the most recent ones are also available on macOS.&lt;br /&gt;
&lt;br /&gt;
For finer grained non-official releases, see also the [[Eternity Engine#Development builds|development builds]] below.&lt;br /&gt;
&lt;br /&gt;
===Version 3.29===&lt;br /&gt;
* 3.29 Private Alpha - September 14, 2000&lt;br /&gt;
* 3.29 Public Beta 1 - January 8, 2001&lt;br /&gt;
* 3.29 Public Beta 2 - January 9, 2001&lt;br /&gt;
* 3.29 Public Beta 3 - May 10, 2001&lt;br /&gt;
* 3.29 Public Beta 4 - June 30, 2001&lt;br /&gt;
* 3.29 Development Beta 5 - October 2, 2001&lt;br /&gt;
* 3.29 &amp;quot;Gamma&amp;quot; - July 4, 2002&lt;br /&gt;
&lt;br /&gt;
===Version 3.31===&lt;br /&gt;
* 3.31 Public Beta 1 - September 11, 2002&lt;br /&gt;
* 3.31 Public Beta 2 - March 5, 2003&lt;br /&gt;
* 3.31 Public Beta 3 - August 8, 2003&lt;br /&gt;
* 3.31 Public Beta 4 - November 29, 2003&lt;br /&gt;
* 3.31 Public Beta 5 - December 17, 2003&lt;br /&gt;
* 3.31 Public Beta 6 - February 29, 2004&lt;br /&gt;
* 3.31 Public Beta 7 - April 11, 2004&lt;br /&gt;
* 3.31 &amp;quot;Delta&amp;quot; Pre-Release Alpha 1 - August 23, 2004&lt;br /&gt;
* 3.31 &amp;quot;Delta&amp;quot; Pre-Release Alpha 2 - November 11, 2004&lt;br /&gt;
* 3.31.10 &amp;quot;Delta&amp;quot; - January 19, 2005&lt;br /&gt;
&lt;br /&gt;
===Version 3.33===&lt;br /&gt;
* 3.33.00 &amp;quot;Genesis&amp;quot; - May 26, 2005&lt;br /&gt;
* 3.33.01 &amp;quot;Outcast&amp;quot; - June 24, 2005&lt;br /&gt;
* 3.33.02 &amp;quot;Warrior&amp;quot; - October 1, 2005&lt;br /&gt;
* 3.33.33 &amp;quot;Paladin&amp;quot; - May 17, 2006&lt;br /&gt;
* 3.33.50 &amp;quot;Phoenix&amp;quot; - October 23, 2006&lt;br /&gt;
&lt;br /&gt;
===Version 3.35===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/45146-eternity-engine-v3-35-90-simorgh/ 3.35.90] &amp;quot;Simorgh&amp;quot; - January 11, 2009&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/45757-eternity-engine-3-35-92-nekhbet/ 3.35.92] &amp;quot;Nekhbet&amp;quot; - March 22, 2009&lt;br /&gt;
&lt;br /&gt;
===Version 3.37===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/49268-eternity-engine-3-37-00-sekhmet/ 3.37.00] &amp;quot;Sekhmet&amp;quot; - January 1, 2010&lt;br /&gt;
&lt;br /&gt;
===Version 3.39===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/52873-eternity-engine-v3-39-20-resheph/ 3.39.20] &amp;quot;Resheph&amp;quot; - October 10, 2010&lt;br /&gt;
&lt;br /&gt;
===Version 3.40===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/53944-eternity-engine-v3-40-00-rebirth/ 3.40.00] &amp;quot;Rebirth&amp;quot; - January 8, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/55219-announcing-the-blue-box-ee-3-40-11-and-vaporware-demo/ 3.40.11] &amp;quot;Aasgard&amp;quot; - May 2, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/55874-eternity-engine-3-40-15-wodanaz/ 3.40.15] &amp;quot;Wodanaz&amp;quot; - June 22, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/58281-eternity-engine-v3-40-20-mjolnir/ 3.40.20] &amp;quot;Mjolnir&amp;quot; - December 26, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/61245-eternity-engine-3-40-25-midgard/ 3.40.25] &amp;quot;Midgard&amp;quot; - August 27, 2012&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/62087-eternity-engine-3-40-30-alfheim/ 3.40.30] &amp;quot;Alfheim&amp;quot; - November 4, 2012&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/64382-eternity-engine-3-40-37-gungnir/ 3.40.37] &amp;quot;Gungnir&amp;quot; - May 27, 2013&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/67069-eternity-engine-3-40-46-bifrost/ 3.40.46] &amp;quot;Bifröst&amp;quot; - January 19, 2014 - &#039;&#039;first one with a macOS release&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Version 3.42===&lt;br /&gt;
* [https://www.doomworld.com/forum/topic/94046-eternity-engine-34202-heimdal-files-documentation-buglist/ 3.42.02] &amp;quot;Heimdal&amp;quot; - May 7, 2017&lt;br /&gt;
* [https://www.doomworld.com/forum/topic/95351-eternity-engine-34203a-heimdal-release-2-hotfix/ 3.42.03a] &amp;quot;Heimdal&amp;quot; release 2 - August 2, 2017&lt;br /&gt;
&lt;br /&gt;
===Version 4.00===&lt;br /&gt;
* [https://www.doomworld.com/forum/topic/99957-eternity-engine-40000-v%C3%B6lusp%C3%A1/ 4.00.00] &amp;quot;Völuspá&amp;quot; - March 17, 2018&lt;br /&gt;
&lt;br /&gt;
===Version 4.01===&lt;br /&gt;
* [https://www.doomworld.com/forum/topic/117429-eternity-engine-40100-tyrfing/ 4.01.00] &amp;quot;Tyrfing&amp;quot; - October 13, 2020&lt;br /&gt;
&lt;br /&gt;
===Version 4.02===&lt;br /&gt;
* [https://www.doomworld.com/forum/topic/119425-eternity-engine-40200-forseti/ 4.02.00] &amp;quot;Forseti&amp;quot; - January 27, 2021&lt;br /&gt;
&lt;br /&gt;
==Cross-platform development==&lt;br /&gt;
Eternity is built by using the [[Wikipedia:CMake|CMake]] utility. You can download the Eternity [[Wikipedia:source code|source code]] from [[Wikipedia:GitHub|GitHub]] and execute CMake. Eternity&#039;s source code repository, as well as the latest releases, are located [https://github.com/team-eternity/eternity/ here].&lt;br /&gt;
&lt;br /&gt;
==Development builds==&lt;br /&gt;
Development builds (&amp;quot;beta&amp;quot; releases) for Eternity are available for Windows and macOS at [http://devbuilds.drdteam.org/eternity/ DRDTeam&#039;s website]. They are recommended if you encounter serious bugs with any of the official releases, or if you want to test brand new features that didn&#039;t exist in the latest official releases. Due to their beta status, they may be untested and have other problems. However, due to the sometimes sporadic release cycles, it&#039;s often recommended to just try the development builds. The only problem is that by upgrading Eternity often, savegames tend to become unusable, so exercise caution before upgrading Eternity if you rely on games with saves.&lt;br /&gt;
&lt;br /&gt;
==System features==&lt;br /&gt;
*[[Cardboard engine]]&lt;br /&gt;
*[[List of command line parameters]]&lt;br /&gt;
*[[Console]]&lt;br /&gt;
*[[List of cheat codes]]&lt;br /&gt;
*[[GFS|GFS files]]&lt;br /&gt;
*[[ZIP|ZIP mods]]&lt;br /&gt;
&lt;br /&gt;
==Gameplay and modding features==&lt;br /&gt;
*[[DeHackEd / BEX Reference]]&lt;br /&gt;
*[[List of codepointers]]&lt;br /&gt;
*[[EDF|EDF files]]&lt;br /&gt;
*[[Editing reference]]&lt;br /&gt;
*[[OPTIONS|OPTIONS lump]]&lt;br /&gt;
*[[MapInfo]]&lt;br /&gt;
*[[SMMU|Features inherited from SMMU]]&lt;br /&gt;
*[[ExtraData]]&lt;br /&gt;
*[[Hexen format SNDINFO]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Source ports]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=6153</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=6153"/>
		<updated>2023-03-04T14:36:19Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: update links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Welcome to the Eternity Engine Wiki== &lt;br /&gt;
 &lt;br /&gt;
The [[Eternity Engine]] [[Wikipedia:Wiki|Wiki]] is a community-maintained documentation resource for the Eternity Engine [[Doom Wiki:Source port|source port]] and everything related to it. It is powered by [[Wikipedia:MediaWiki|MediaWiki]]. Feel free to edit and create articles to help make this a valuable source of knowledge. If you&#039;re not familiar with wiki markup, [[Wikipedia:Help:Wikitext|look here]] for some examples.&lt;br /&gt;
&lt;br /&gt;
==About Eternity==&lt;br /&gt;
See general info about the port in the [[Eternity Engine]] page.&lt;br /&gt;
&lt;br /&gt;
==Level editing==&lt;br /&gt;
See [[Editing reference]] for the full documentation. Below are some of the more popular features:&lt;br /&gt;
*[[EMAPINFO|Map info (EMAPINFO lump)]]&lt;br /&gt;
:*[[UMAPINFO]]&lt;br /&gt;
*[[ACS scripting]]&lt;br /&gt;
:*[[ACS built-in functions]]&lt;br /&gt;
*[[UDMF]]&lt;br /&gt;
*[[ExtraData]]&lt;br /&gt;
*[[Linedef types|Classic linedef specials]]&lt;br /&gt;
*[[Detailed parameterized linedef specification|Parameterized linedef specials]]&lt;br /&gt;
*[[Linedef flags|New linedef flags in Eternity]]&lt;br /&gt;
*[[Thing types|New Eternity thing types]]&lt;br /&gt;
&lt;br /&gt;
==Wad storage==&lt;br /&gt;
*[[ZIP|PKE files or directory structure]]&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
*[[Polyobject]]&lt;br /&gt;
*[[3DMidTex tutorial]]&lt;br /&gt;
*[[3DMidTex advanced topics]]&lt;br /&gt;
*[[Portals]]&lt;br /&gt;
*[[Linked portals]]&lt;br /&gt;
&lt;br /&gt;
==Gameplay editing==&lt;br /&gt;
===Eternity definition files===&lt;br /&gt;
*[[EDF|Full EDF reference]]&lt;br /&gt;
*[[Thingtype]]&lt;br /&gt;
*[[Thing type flags]]&lt;br /&gt;
*[[Frame]]&lt;br /&gt;
*[[List of codepointers]]&lt;br /&gt;
*[[Sound]]&lt;br /&gt;
*[[OPTIONS]]&lt;br /&gt;
===Cross-port definition lumps===&lt;br /&gt;
*[[ANIMDEFS]]&lt;br /&gt;
*[[Dehacked]]&lt;br /&gt;
*[[S_SKIN]]&lt;br /&gt;
===Base game data===&lt;br /&gt;
*Frames.edf: [https://github.com/team-eternity/eternity/blob/master/base/doom/frames.edf list of Doom thing frames (states)]&lt;br /&gt;
*Things.edf: [https://github.com/team-eternity/eternity/blob/master/base/doom/things.edf list of Doom thing types (classes)]&lt;br /&gt;
&lt;br /&gt;
==Console and command line==&lt;br /&gt;
*[[List of command line parameters]]&lt;br /&gt;
:*[[Environment variables]]&lt;br /&gt;
*[[Console]]&lt;br /&gt;
:*[[List of console commands and variables|Console commands and variables]]&lt;br /&gt;
&lt;br /&gt;
==Inherited stuff==&lt;br /&gt;
*[[SMMU]]&lt;br /&gt;
*[[MBF]]&lt;br /&gt;
*[[Boom]]&lt;br /&gt;
&lt;br /&gt;
==Eternity maps and mods==&lt;br /&gt;
*[[List of maps and mods made for Eternity]]&lt;br /&gt;
&lt;br /&gt;
==Latest version==&lt;br /&gt;
The latest version of the Eternity Engine is currently {{Latest}}.&lt;br /&gt;
*[[Eternity_Engine#Releases|List of Eternity releases]]&lt;br /&gt;
*[https://devbuilds.drdteam.org/eternity/ Daily unofficial development builds.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Eternity Wiki]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=EMAPINFO&amp;diff=6152</id>
		<title>EMAPINFO</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=EMAPINFO&amp;diff=6152"/>
		<updated>2023-03-04T14:19:51Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: test edit after mediawiki upgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;EMAPINFO&#039;&#039;&#039; lump customizes the properties of maps. It is the main Eternity lump for this purpose.&lt;br /&gt;
{{Backto|Eternity Engine}}&lt;br /&gt;
{{editref}}&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Level info data is stored in the global EMAPINFO lump, which is a plain-text lump containing information for all maps together. Variables for each level must be placed under a section header that has the same name as the map&#039;s header lump.&lt;br /&gt;
&lt;br /&gt;
Do note that older Eternity and [[SMMU]] compatible releases had level info stored inside each map&#039;s header lump. This is deprecated however, kept only for backward compatibility.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
*Each map definition begins with a block header. This consists of the map&#039;s lump name in brackets, such as [MAP01], [E1M1], or [MYLEVEL].&lt;br /&gt;
*Variables are specified in the lines following the block header.&lt;br /&gt;
*All values are treated as text strings, and quotation marks are not required.&lt;br /&gt;
*Comments may start with &#039;#&#039;, &#039;;&#039;, or &#039;//&#039;. All three comments are single line only, and extend to the end of the line.&lt;br /&gt;
*An optional equal sign can be placed between a variable and the value it is given. It is not an error to omit it.&lt;br /&gt;
&lt;br /&gt;
==EMAPINFO Variables==&lt;br /&gt;
===Level identification===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Variable&lt;br /&gt;
! Description&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
||creator||The level author&#039;s name, which can be viewed in the console using the &amp;quot;creator&amp;quot; console command. If this value is not provided, the default value is &amp;quot;unknown&amp;quot;.||&lt;br /&gt;
 creator = Edwin Chadwick &#039;chadders&#039;&lt;br /&gt;
|-&lt;br /&gt;
||edf-intername||Boolean value which, if true, enables the use of [[EDF]]-defined intermission map name strings which will be drawn using the FONTB graphics (provided in eternity.wad for DOOM/DOOM II, and natively supported by Heretic). This feature is meant to obsolete the levelpic variable and to remove the need for authors to create title graphics for their maps in DOOM/DOOM II. It also allows intermission map name replacement to work correctly for the next level and for Heretic without any hacks.&lt;br /&gt;
The EDF string which will be used as the intermission name for the current map should have the mnemonic _IN_NAME_&amp;lt;mapname&amp;gt;, where &amp;lt;mapname&amp;gt; is the exact name of the map&#039;s header lump (Example: _IN_NAME_MAP01).&lt;br /&gt;
In order for the name of the next map to display correctly, the current level must either define its nextlevel/nextsecret values explicitly, or it must be an ExMy or MAPxy level.&lt;br /&gt;
||&lt;br /&gt;
 edf-intername = true&lt;br /&gt;
|-&lt;br /&gt;
||enterpic||Name of a 320x200 graphic lump to be displayed as the background of the statistics intermission during the &#039;&#039;entering&#039;&#039; of this map&#039;s stage. If omitted and previous map&#039;s &#039;&#039;&#039;interpic&#039;&#039;&#039; property is set, it will continue displaying that.||&lt;br /&gt;
 enterpic = INTOCAVE&lt;br /&gt;
|-&lt;br /&gt;
||inter-levelname||Name of the map to display in the intermission score screen. This is separate from &#039;&#039;&#039;levelname&#039;&#039;&#039; which is for the automap display, and can be used as an alternative to &#039;&#039;&#039;levelpic&#039;&#039;&#039; which is a graphic lump for the intermission name. If both &#039;&#039;&#039;inter-levelname&#039;&#039;&#039; and &#039;&#039;&#039;levelpic&#039;&#039;&#039; are present, &#039;&#039;&#039;levelpic&#039;&#039;&#039; takes precedence. Unlike &#039;&#039;&#039;levelpic&#039;&#039;&#039;, this one also works in Heretic.||&lt;br /&gt;
 inter-levelname = Circle of death&lt;br /&gt;
|-&lt;br /&gt;
||interpic||Name of a 320x200 graphic lump to be displayed as the background of the statistics intermission.||&lt;br /&gt;
 interpic = BOSSBACK&lt;br /&gt;
|-&lt;br /&gt;
||killstats||Boolean value that allows the statistics intermission between two maps to be disabled. If the map has a finale sequence to be displayed, it will start immediately, otherwise the next map will be loaded.||&lt;br /&gt;
 killstats = true&lt;br /&gt;
|-&lt;br /&gt;
||levelname||This is the name of the level which will be displayed in the automap. This value overrides any string provided via DeHackEd. If you want to change the level name displayed in the intermission, change &#039;&#039;&#039;levelpic&#039;&#039;&#039; or &#039;&#039;&#039;inter-levelname&#039;&#039;&#039;.||&lt;br /&gt;
 levelname = chadders&#039; lair&lt;br /&gt;
|-&lt;br /&gt;
||levelnum||Integer value used to identify it for the [[Parameterized_linedef_specials#Exits|Teleport_NewMap]] special. When the map&#039;s lump name does not follow the format MAPxx or ExMy, a numeric value is required.||&lt;br /&gt;
 [D2DM1]&lt;br /&gt;
 levelnum = 1&lt;br /&gt;
|-&lt;br /&gt;
||levelpic||This is the name of a graphic lump which will be shown as the level name during the statistics intermission when this map is the previous map which was just beaten. This value is only used for DOOM and DOOM II maps. You can also use &#039;&#039;&#039;inter-levelname&#039;&#039;&#039; to set the intermission display level name, which will use the necessary font, already included in Eternity.||&lt;br /&gt;
 levelpic = E1M1PIC&lt;br /&gt;
|-&lt;br /&gt;
||levelpicnext||The level pic to show for the next level, only when taking the normal exit. If omitted, it will try that level&#039;s &#039;&#039;&#039;levelpic&#039;&#039;&#039; or write the name of it using the font.||&lt;br /&gt;
|-&lt;br /&gt;
||levelpicsecret||Same as &#039;&#039;&#039;levelpicnext&#039;&#039;&#039;, but for taking the secret exit instead.||&lt;br /&gt;
|-&lt;br /&gt;
||nextlevel||The exact header name of the next level to go to when a normal exit occurs on this map. This can specify *any* lump name, but the lump should be a valid level header or an error will occur.||&lt;br /&gt;
 nextlevel = CHAD2&lt;br /&gt;
|-&lt;br /&gt;
||nextsecret||The exact header name of the next level to go to when a secret exit occurs on this map. This can specify *any* lump name, but the lump should be a valid level header or an error will occur. Note that except for maps which normally have secret exits, the default behavior is to repeat the same level. This MapInfo value allows you to avoid that and use a secret exit on any map.||&lt;br /&gt;
 nextsecret = MAP34&lt;br /&gt;
|-&lt;br /&gt;
||allowexittags||If true, allows the exit linedef &#039;&#039;classic&#039;&#039; linedef specials to use their tags to specify the number of the level to go to. This doesn&#039;t apply to the parameterized specials||&lt;br /&gt;
 allowexittags = true&lt;br /&gt;
|-&lt;br /&gt;
||allowsecrettags||Same as &#039;&#039;&#039;allowexittags&#039;&#039;&#039;, but applies to the secret exit &#039;&#039;classic&#039;&#039; linedef specials.||&lt;br /&gt;
 allowsecrettags = true&lt;br /&gt;
|-&lt;br /&gt;
||partime||Partime for the map in seconds. This value overrides any value provided via DeHackEd. Note that partimes are only supported in episodes 1-3 of DOOM and any map of DOOM II. Ultimate DOOM episode 4, Heretic, and non-standard maps currently never display par times.||&lt;br /&gt;
 partime = 200&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Scripting===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Variable&lt;br /&gt;
! Description&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
||acsopendelay||Boolean value that determines whether or not scripts&#039; execution within the first 35 tics after entering the map is delayed until 35 tics have passed.||&lt;br /&gt;
 acsopendelay = true&lt;br /&gt;
|-&lt;br /&gt;
||acsscript||Name of the lump containing the compiled ACS script for this map. &#039;&#039;&#039;Not needed for UDMF, which uses the BEHAVIOR lump between TEXTMAP and ENDMAP, as added by the level editor.&#039;&#039;&#039;||&lt;br /&gt;
 acsscript = SCRIPT01&lt;br /&gt;
|-&lt;br /&gt;
||extradata||Name of the ExtraData script lump for this map. See the ExtraData Reference for full information on ExtraData. There are no naming restrictions on ExtraData script lumps. &#039;&#039;&#039;Not needed for UDMF, only for the classic format.&#039;&#039;&#039;||&lt;br /&gt;
 extradata = EXTRDT01&lt;br /&gt;
|-&lt;br /&gt;
||levelscript||Name of a compiled {{Deprecated}} Small script lump which will serve as the Levelscript for this map. NOTE: use &#039;&#039;&#039;acsscript&#039;&#039;&#039; for compiled ACS scripts.||&lt;br /&gt;
|}&lt;br /&gt;
===Physics===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Variable&lt;br /&gt;
! Description&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
||aircontrol||How much control the player has when attempting to move while in mid-air. By default Doom and Heretic have it 0 (no control whatsoever) and Hexen and Strife have a tiny value, just enough to allow jumping on objects.&lt;br /&gt;
&lt;br /&gt;
Default value is 0. Keep in mind you can set the &#039;&#039;&#039;comp_aircontrol&#039;&#039;&#039; property in the [[OPTIONS]] lump to &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot;, which if enabled, will produce the Hexen effect. Maximum air control is 65536, so anything between 0 and 65536 is equivalent to air control between 0 and 100%.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||airfriction||This is an optional field, useful if &#039;&#039;&#039;aircontrol&#039;&#039;&#039; is significant, in order to limit player&#039;s speed when moving in mid-air. &#039;&#039;Non-player objects, such as projectiles, are not affected by this&#039;&#039;. Default value is 0 (no friction, like in the original games), and the maximum is 65536 (no acceleration whatsoever). In order to feel realistic, if it&#039;s needed, make sure to keep &#039;&#039;&#039;airfriction&#039;&#039;&#039; very low, or lower than the ground friction anyway, as it &#039;&#039;only&#039;&#039; applies while you&#039;re above ground.||&lt;br /&gt;
|-&lt;br /&gt;
||disable-jump||If set to &#039;&#039;&#039;true&#039;&#039;&#039;, it will disable player jumping in current level. Default is &#039;&#039;&#039;false&#039;&#039;&#039;. See also [[playerclass]] in EDF, and comp_aircontrol in [[OPTIONS]].||&lt;br /&gt;
 disable-jump = true&lt;br /&gt;
|-&lt;br /&gt;
||gravity||Global gravity factor for the current level. The default gravity value is 65536.||&lt;br /&gt;
 # Enable 50% gravity&lt;br /&gt;
 gravity = 32768&lt;br /&gt;
|}&lt;br /&gt;
===Ambience===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Variable&lt;br /&gt;
! Description&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
||altskyname||Name of a texture to display instead of the normal sky texture during a lightning strike. This value is only used if lightning is enabled for this level. If this value is not provided, no sky animation will occur during lightning strikes.||&lt;br /&gt;
 altskyname = LBOLTSKY&lt;br /&gt;
|-&lt;br /&gt;
||colormap||Name of a colormap lump to use as the global colormap for this level. This colormap is applied to any sectors which do not have their own colormaps specified either via use of 242 height transfer linedefs or scripting. This lump must be between C_START and C_END tags or the &amp;quot;colormaps&amp;quot; directory in the PKE.||&lt;br /&gt;
 colormap = FOGMAP&lt;br /&gt;
|-&lt;br /&gt;
||outdoorfog||Name of a colormap lump to use as the outdoors colormap for this level. This lump must be between C_START and C_END tags or the &amp;quot;colormaps&amp;quot; directory in the PKE.||&lt;br /&gt;
 outdoorfog = FOGMAP&lt;br /&gt;
|-&lt;br /&gt;
||defaultenvironment||Sets the default sound environment (reverb) effect to happen in the map. Use two identifiers, as defined in [[EDF]].||&lt;br /&gt;
 defaultenvironment = 1 2&lt;br /&gt;
|-&lt;br /&gt;
||doublesky||Boolean value that determines whether or not this map uses double skies. When double skies are enabled, any F_SKY1 or F_SKY2 sectors *not* affected by MBF sky transfer lines will use both the primary and secondary sky textures together. The secondary texture will be drawn first, normally, then the primary texture will be drawn over it, omitting any pixels which use palette index zero (this is usually pure black). Any MapInfo sky delta values provided will be applied to their respective textures.||&lt;br /&gt;
 doublesky = true&lt;br /&gt;
|-&lt;br /&gt;
||fullbright||Boolean value that determines whether fullbright can be used on this level. When fullbright is disabled, player gun flashes will not occur, and fullbright sprites and particles will be drawn normally. This should be used with most custom colormaps, since flashes and fullbright sprites usually look incorrect with them.||&lt;br /&gt;
 fullbright = false&lt;br /&gt;
|-&lt;br /&gt;
||lightning||Boolean value that toggles the global lightning effect. When set to true, all sky sectors on the map will flash at randomly determined intervals along with a thunder sound and optional animation of the normal sky texture. Warning: sectors must currently have a sky ceiling at the beginning of the level in order to be affected by lightning. The only current method to make non-sky sectors flash during lightning strikes is via use of BOOM lighting transfer linedefs. This may be improved in the near future.||&lt;br /&gt;
 lightning = true&lt;br /&gt;
|-&lt;br /&gt;
||music||Provides the name of a MUS or MIDI lump to use as music. In DOOM gamemodes, the string provided should be the lump name minus the &amp;quot;D_&amp;quot; prefix. In Heretic, the string provided should be the lump name minus the &amp;quot;MUS_&amp;quot; prefix. You are *not* limited to using only the built-in music lump names; Eternity automatically adds any new lump which matches the naming convention for the current gamemode to the internal music list.||&lt;br /&gt;
 music = cheese&lt;br /&gt;
|-&lt;br /&gt;
||noautosequences||Determines the default assignment of sound sequences. If set to true, no sound sequences will be automatically assigned to sectors. The sequence of all sectors by default will be sequence number 0. If set to false, the default sound sequences defined in &#039;&#039;&#039;sounds.edf&#039;&#039;&#039; will be used. These sequences implement the normal, default behaviors for DOOM and Heretic, and can be easily overridden by the user if desired.||&lt;br /&gt;
 noautosequences = true&lt;br /&gt;
|-&lt;br /&gt;
||sector-colormaps||This optional property can be used to enforce classic Boom or SMMU-style behaviour for sector colormap applications using either the [[Transfer_Heights]] linedef special or [[ExtraData]] or [[UDMF]] sector properties. Possible values are:&lt;br /&gt;
*&#039;&#039;normal&#039;&#039;: this is the default value. It makes the [[Transfer_Heights]] special apply the Boom behaviour, where the sector the player is in causes the entire view to change colour, while [[ExtraData]] and [[UDMF]] use the SMMU-introduced behaviour, where the sector colour is local to the sector, as if having local coloured light or fog effect. It&#039;s default because of required compatibility with past Boom and MBF wad releases, whereas the new SMMU introduced behaviour can be more useful for new maps with ExtraData or UDMF.&lt;br /&gt;
*&#039;&#039;Boom&#039;&#039;: the Boom sector colormap behaviour will apply to all kinds of colormap settings, like in Boom or MBF.&lt;br /&gt;
*&#039;&#039;SMMU&#039;&#039;: the SMMU sector colormap behaviour will apply to all kinds of colormap settings, like in previous Eternity versions.&lt;br /&gt;
||&lt;br /&gt;
 sector-colormaps = normal&lt;br /&gt;
|-&lt;br /&gt;
||skydelta||Pixels per gametic that the primary sky texture should scroll. This effect will only be applied to double skies and to F_SKY1 sectors which are NOT affected by any MBF sky transfer linedefs.||&lt;br /&gt;
 skydelta = 5&lt;br /&gt;
|-&lt;br /&gt;
||sky2delta||Pixels per gametic that the secondary sky texture should scroll. This effect will only be applied to double skies and to F_SKY2 sectors (which cannot be affected by MBF sky transfer linedefs).||&lt;br /&gt;
 sky2delta = 7&lt;br /&gt;
|-&lt;br /&gt;
||skyname||Name of a texture to use as the primary sky for this map. This sky will appear in all sectors which use the F_SKY1 flat, and it will also appear as the top layer of Hexen-style double skies. The name provided for this lump must be a valid texture or an error will occur.||&lt;br /&gt;
 skyname = SKY2&lt;br /&gt;
|-&lt;br /&gt;
||sky2name||Name of a texture to use as the secondary sky for this map. This sky will appear in all sectors which use the F_SKY2 flat, and it will also appear as the bottom layer of Hexen- style double skies. The name provided for this lump must be a valid texture or an error will occur. If no name is provided for the secondary sky, the primary sky name will be copied to it, so it is not an error to use F_SKY2 or double skies in a level where the sky2 texture is not explicitly defined.||&lt;br /&gt;
 sky2name = SKY4&lt;br /&gt;
|-&lt;br /&gt;
||skyrowoffset||Set the vertical offset of the sky. This is useful to give you control from which height to draw the sky. Above this offset, the sky will appear as fading to a single colour. Usual values are:&lt;br /&gt;
*100: draw like in vanilla Doom, where it assumed that the player can&#039;t look up and down.&lt;br /&gt;
*200: draw like in Heretic, where the view pitch is ±32 degrees.&lt;br /&gt;
*260: draw for the view pitch of ±45 degrees, as set by default in Eternity Doom.&lt;br /&gt;
You can customize the player view pitch in [[EDF game properties]].&lt;br /&gt;
&lt;br /&gt;
If unspecified, Eternity will autodetect based on sky height. If at least 200 units, tall, it will set to 200. If less, it will set to 100. Note that even 200 is insufficient for the default ±45 degree view pitch; you may want to set 260 for that. NOTE: for PrBoom wad compatibility, and only for DOOM wads, the same autodetection rule doesn&#039;t apply if the tall sky is purely specified via a texture replacement: those will always be drawn as vanilla, as long as no &#039;&#039;&#039;skyname&#039;&#039;&#039; replacement is set in EMAPINFO.&lt;br /&gt;
&lt;br /&gt;
Also, beware that [[Static_Init (sky transfer)]] specials use their own sidedef Y offset to adjust the sky location, bypassing this setting.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||sky2rowoffset||Same as &#039;&#039;&#039;skyrowoffset&#039;&#039;&#039;, but for &#039;&#039;&#039;sky2name&#039;&#039;&#039;. If you use &#039;&#039;&#039;doublesky&#039;&#039;&#039; as in Hexen, you may want to set both these row offset fields.||&lt;br /&gt;
|-&lt;br /&gt;
||unevenlight||Boolean value that determines whether walls parallel to the x and y axes of the game world are given lighting values 1 level higher or lower than other walls. This can dramatically affect the perceived light level of an area, so only use it for maps that are designed specifically for it. Maps which use custom global colormaps should usually set this value to false, since it only generally looks appropriate with the normal colormap.||&lt;br /&gt;
 unevenlight = false&lt;br /&gt;
|-&lt;br /&gt;
||sound-*||There are several sound-* commands which can be used to replace the default sounds in a map with sounds, using their mnemonics defined in [[EDF]].&lt;br /&gt;
&lt;br /&gt;
Sounds available for replacement:&lt;br /&gt;
 swtchx&lt;br /&gt;
 swtchn&lt;br /&gt;
 stnmov&lt;br /&gt;
 pstop&lt;br /&gt;
 pstart&lt;br /&gt;
 bdcls&lt;br /&gt;
 bdopn&lt;br /&gt;
 dorcls&lt;br /&gt;
 doropn&lt;br /&gt;
 fcmove&lt;br /&gt;
||&lt;br /&gt;
 sound-swtchx = newswtch&lt;br /&gt;
 sound-doropn = dorcreak&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Finale control===&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Variable&lt;br /&gt;
! Description&lt;br /&gt;
! Example&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;boss-specials&#039;&#039;&#039;||A flags field that specifies what formerly level-specific boss &amp;quot;magic codepointer&amp;quot; actions are enabled for this level. This field takes a value in the same format as that used by [[EDF]], DeHackEd/BEX, and ExtraData flag fields, but the format will be reviewed here for completeness.&lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off.&lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field:&lt;br /&gt;
          Flag name  Decimal  Hex     Meaning&lt;br /&gt;
          -----------------------------------------------------------------&lt;br /&gt;
          MAP07_1    1        0x0001  MAP07 Special 1 (BossDeath only)&lt;br /&gt;
          MAP07_2    2        0x0002  MAP07 Special 2 (BossDeath only)&lt;br /&gt;
          E1M8       4        0x0004  E1M8 Special&lt;br /&gt;
          E2M8       8        0x0008  E2M8 Special&lt;br /&gt;
          E3M8       16       0x0010  E3M8 Special&lt;br /&gt;
          E4M6       32       0x0020  E4M6 Special (BossDeath only)&lt;br /&gt;
          E4M8       64       0x0040  E4M8 Special&lt;br /&gt;
          E5M8       128      0x0080  E5M8 Special (HticBossDeath Only)&lt;br /&gt;
          -----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Notes: Actions differ depending on whether monsters use the [[BossDeath]] or [[HticBossDeath]] codepointers. See the documentation for those specific codepointers to see what actions they perform. The monsters which must be dead for a given special to activate are controlled by various [[EDF]]/BEX thingtype flags. Together, these features allow complete customization.&lt;br /&gt;
||&lt;br /&gt;
All of these are equivalent:&lt;br /&gt;
 boss-specials = MAP07_1|MAP07_2&lt;br /&gt;
 boss-specials = MAP07_1 | MAP07_2&lt;br /&gt;
          &lt;br /&gt;
 boss-specials = MAP07_1+MAP07_2&lt;br /&gt;
 boss-specials = MAP07_2 + MAP07_2&lt;br /&gt;
          &lt;br /&gt;
 boss-specials = MAP07_1,MAP07_2&lt;br /&gt;
 boss-specials = MAP07_1, MAP07_2&lt;br /&gt;
          &lt;br /&gt;
 boss-specials = MAP07_1 MAP07_2&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;endofgame&#039;&#039;&#039;||Boolean value which, if true, causes a DOOM II cast call to occur when this map is exited. This value is currently only usable in DOOM II. A level must also have intermission text defined for a cast call to take place.||&lt;br /&gt;
 endofgame = true&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;endpic&#039;&#039;&#039;||String value. If &#039;&#039;&#039;finaletype&#039;&#039;&#039; has been set to &#039;&#039;&#039;endpic&#039;&#039;&#039;, this value specifies the picture lump to display for the finale.||&lt;br /&gt;
 finaletype = endpic&lt;br /&gt;
 endpic = FINALPIC    // show a custom patch lump named FINALPIC&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;finale-early&#039;&#039;&#039;||Boolean value which, if true, indicates that a text intermission should occur after this map without displaying the usual score screen. If no intermission text is defined for this map, this variable has no effect.||&lt;br /&gt;
 finale-early = true&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;finale-normal&#039;&#039;&#039;||Boolean value which, if true, indicates that a text intermission should only occur after this map if a normal exit was taken. If no intermission text is defined for this map, this variable has no effect.||&lt;br /&gt;
 finale-normal = true&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;finale-secret&#039;&#039;&#039;||Boolean value which, if true, indicates that a text intermission should only occur after this map if a secret exit was taken. If no intermission text is defined for this map, this variable has no effect.||&lt;br /&gt;
 finale-secret = true&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;finaletype&#039;&#039;&#039;||Specifies which finale image sequence to use. Possible values are:&lt;br /&gt;
*&#039;&#039;&#039;text&#039;&#039;&#039;: Only the intertext will be displayed. Play will then continue to the next level normally.&lt;br /&gt;
*&#039;&#039;&#039;doom_credits&#039;&#039;&#039;: The DOOM CREDITS screen will be displayed after the intertext. Play ends after this map.&lt;br /&gt;
*&#039;&#039;&#039;doom_deimos&#039;&#039;&#039;: The DOOM picture of Deimos above Hell will be displayed after the intertext. Play ends after this map.&lt;br /&gt;
*&#039;&#039;&#039;doom_bunny&#039;&#039;&#039;: The scrolling picture of Daisy&#039;s head on a pike will be displayed, accompanied by the words &amp;quot;THE END&amp;quot; which are shot up with several bullets. Play ends after this map.&lt;br /&gt;
*&#039;&#039;&#039;doom_marine&#039;&#039;&#039;: The E4 ending picture of the Marine holding Daisy&#039;s head is displayed after the intertext. Play ends after this map.&lt;br /&gt;
*&#039;&#039;&#039;htic_credits&#039;&#039;&#039;: The Heretic CREDITS screen will be displayed after the intertext. Play ends after this map.&lt;br /&gt;
*&#039;&#039;&#039;htic_water&#039;&#039;&#039;: The Heretic underwater screen with special palette is displayed after the intertext. Play ends after this map.&lt;br /&gt;
*&#039;&#039;&#039;htic_demon&#039;&#039;&#039;: The Heretic demon scroller is displayed after the intertext. Play ends after this map.&lt;br /&gt;
*&#039;&#039;&#039;psx_udoom&#039;&#039;&#039;: PSX Ultimate DOOM finale&lt;br /&gt;
*&#039;&#039;&#039;psx_doom2&#039;&#039;&#039;: PSX DOOM II finale&lt;br /&gt;
*&#039;&#039;&#039;endpic&#039;&#039;&#039;: End the game with a custom static picture set by the &#039;&#039;&#039;endpic&#039;&#039;&#039; property (see its relevant row in this table). This is a generalization of the DOOM I and Heretic intermediary episode endings.&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;finalesecrettype&#039;&#039;&#039;||Like above, but for the secret exit.||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;inter-backdrop&#039;&#039;&#039;||Name of a 64x64 flat OR a 320x200 graphic lump to be displayed as the background of a text intermission which occurs after this map. The flat namespace will be searched first, so if both a flat and a 320x200 picture of the same name exist, the flat will be chosen.||&lt;br /&gt;
 inter-backdrop = FLATHUH1&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;intermusic&#039;&#039;&#039;||Name of a MUS or MIDI lump to use as music during a text intermission which occurs after this map. If no intertext is defined for the map, this value will not be used. In DOOM gamemodes, the string provided should be the lump name minus the &amp;quot;D_&amp;quot; prefix. In Heretic, the string provided should be the lump name minus the &amp;quot;MUS_&amp;quot; prefix. You are *not* limited to using only the built-in music lump names; Eternity automatically adds any new lump which matches the naming convention for the current gamemode to the internal music list.||&lt;br /&gt;
 intermusic = ROMERO&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;intertext&#039;&#039;&#039;||Lump name of a text lump to be loaded as intermission text for this level. If the level has an intermission by default, this will replace the default intermission text, even if it has been edited via DeHackEd. If there is not normally a text intermission after this map, the presence of this variable serves to enable it. If no intertext is defined, a text intermission will not occur after a map. The formatting of the text inside the indicated lump will be preserved exactly, with the exception of tabs, which are converted to spaces. There is no length limitation, but only one screen of text (40 columns, 17 rows) can be displayed. Any extra text will be drawn off the bottom of the screen.||&lt;br /&gt;
 intertext = MAP04TXT&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;intertext-secret&#039;&#039;&#039;||Like &#039;&#039;&#039;intertext&#039;&#039;&#039;, but for the secret exit.||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;killfinale&#039;&#039;&#039;||Boolean value that allows built-in text intermission points to be disabled. For example, if you do not want text to appear after DOOM II MAP11, set this variable to true.||&lt;br /&gt;
 killfinale = true&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;levelaction&#039;&#039;&#039;||Specifies what happens when certain species of monsters all die in the map. The syntax is such: &#039;&#039;thingtype&#039;&#039; &#039;&#039;special&#039;&#039; [&#039;&#039;arg1&#039;&#039; [&#039;&#039;arg2&#039;&#039; [&#039;&#039;arg3&#039;&#039; [&#039;&#039;arg4&#039;&#039; [&#039;&#039;arg5&#039;&#039;]]]]]. You can even have more than one per level.&lt;br /&gt;
&lt;br /&gt;
NOTE: this does not depend on the presence of the [[BossDeath]] or [[HticBossDeath]] codepointer in a monster&#039;s death sequence. Instead, it triggers immediately when the last monster is killed. In fact, if used in a map without such monsters, it will activate from the start. Also, it can only be used for actual monsters (&#039;&#039;&#039;COUNTKILL&#039;&#039;&#039; or &#039;&#039;&#039;KILLABLE&#039;&#039;&#039; in &#039;&#039;&#039;cflags&#039;&#039;&#039;), not for picking up items. Use &#039;&#039;&#039;levelaction-bossdeath&#039;&#039;&#039; if you want triggering when said codepointers are run.&lt;br /&gt;
||&lt;br /&gt;
 levelaction = BaronOfHell Floor_LowerToLowest 671 8&lt;br /&gt;
 levelaction = Arachnotron Floor_RaiseByValue  667 8 24&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;levelaction-bossdeath&#039;&#039;&#039;||Like &#039;&#039;&#039;levelaction&#039;&#039;&#039;, but activated only during [[BossDeath]] or [[HticBossDeath]] from a dead monster of the intended species. Same syntax as &#039;&#039;&#039;levelaction&#039;&#039;&#039;. Warning: this one is susceptible to unexpected effects if the monsters can respawn or resurrect, then die again, retriggering the action. Use with care.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Examples of EMAPINFO Definitions==&lt;br /&gt;
A basic EMAPINFO lump may be similar to this:&lt;br /&gt;
&lt;br /&gt;
    [MAP01]&lt;br /&gt;
    levelname = Evil Hell Lab&lt;br /&gt;
    creator = DooMGuy667&lt;br /&gt;
 &lt;br /&gt;
    [E1M1]&lt;br /&gt;
    levelname = Not Hangar&lt;br /&gt;
    creator = Not Romero&lt;br /&gt;
    skyname = SKY3&lt;br /&gt;
    skydelta = 1&lt;br /&gt;
&lt;br /&gt;
The first example would change the automap and intermission screen names for MAP01 to &amp;quot;Evil Hell Lab&amp;quot; and when the &amp;lt;tt&amp;gt;creator&amp;lt;/tt&amp;gt; command is used in the console, output &amp;quot;DooMGuy667&amp;quot;. The name in the brackets is the map the EMAPINFO applies to, so by changing &amp;lt;tt&amp;gt;[MAP01]&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;[MAP02]&amp;lt;/tt&amp;gt;, the changes would apply to MAP02 instead.&lt;br /&gt;
&lt;br /&gt;
The second example also sets a name and creator for the map (for the E1M1 mapslot, in this case), and also specifies that it will use SKY3 and scroll the sky slowly, using the skydelta variable.&lt;br /&gt;
==See also==&lt;br /&gt;
*[[UMAPINFO]]&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Console&amp;diff=6151</id>
		<title>Console</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Console&amp;diff=6151"/>
		<updated>2023-03-03T00:07:50Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: test edit after wikimedia upgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This reference contains information on useful console commands and variables that work with the Eternity console, as well as pointers on console command syntax.&lt;br /&gt;
{{backto|Eternity Engine}}&lt;br /&gt;
{{editref}}&lt;br /&gt;
==Notes on special command syntax==&lt;br /&gt;
Commands which take parameters may accept numbers, strings, or members of a predefined set of values. &lt;br /&gt;
  ex:&lt;br /&gt;
  $ delay 50&lt;br /&gt;
  $ spawn 249 1&lt;br /&gt;
  $ name Quasar&lt;br /&gt;
  $ hu_overlay distributed&lt;br /&gt;
If string arguments contain whitespace, they must be in quotations. Quotations around strings are otherwise optional. &lt;br /&gt;
  ex:&lt;br /&gt;
  $ echo &amp;quot;This has to be in quotes&amp;quot;&lt;br /&gt;
  $ i_error &amp;quot;R_FindVisplane: no more visplanes!&amp;quot;&lt;br /&gt;
Multiple commands can be run from one prompt by separating them with a semicolon. &lt;br /&gt;
  ex:&lt;br /&gt;
  $ delay; kill&lt;br /&gt;
Variables of type integer, named-value, on / off, and yes / no can be affected by the following operators: &lt;br /&gt;
*+ &lt;br /&gt;
:Affixed to the end of the variable, it will increment it to the next valid value, but no higher than the maximum allowed. &lt;br /&gt;
    ex:&lt;br /&gt;
    $ screensize +&lt;br /&gt;
    &lt;br /&gt;
*- &lt;br /&gt;
:Affixed to the end of the variable, it will decrement it to the next lower valid value, but no lower than the minimum allowed. &lt;br /&gt;
    ex:&lt;br /&gt;
    $ screensize -&lt;br /&gt;
    &lt;br /&gt;
*/ &lt;br /&gt;
:Toggles through the variable values from minimum to maximum, wrapping around to the minimum value again when it is maxed out. This is most useful with two-state yes/no and on/off variables. &lt;br /&gt;
    ex:&lt;br /&gt;
    $ hu_overlay /&lt;br /&gt;
&lt;br /&gt;
==List of console commands and variables==&lt;br /&gt;
:&#039;&#039;See [[List of console commands and variables]]&#039;&#039;&lt;br /&gt;
[[Category:Console]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_console_commands_and_variables&amp;diff=4547</id>
		<title>List of console commands and variables</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_console_commands_and_variables&amp;diff=4547"/>
		<updated>2019-07-03T10:05:53Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 118.148.240.226 (talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Console commands carry out a particular action when sent to the console.&lt;br /&gt;
:&#039;&#039;Back to [[Console]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Core commands==&lt;br /&gt;
*&#039;&#039;&#039;alias&#039;&#039;&#039; &#039;&#039;newcmdname&#039;&#039; &#039;&#039;command&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;alias&#039;&#039;&#039; alone will list all currently defined aliases. Providing &#039;&#039;newcmdname&#039;&#039; alone will remove that alias if it exists. Providing &#039;&#039;newcmdname&#039;&#039; and a valid console &#039;&#039;command&#039;&#039; will create &amp;quot;newcmdname&amp;quot; as an alias to that command, allowing shortcuts. &lt;br /&gt;
:In order to make an alias take parameters, use the special variable &amp;quot;%opt&amp;quot;, as such: &lt;br /&gt;
  alias &amp;quot;mycommand&amp;quot; &amp;quot;hu_overlay %opt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;c_popup&#039;&#039;&#039;&lt;br /&gt;
:Instantly removes the console from view.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;cmdlist&#039;&#039;&#039; &#039;&#039;filter&#039;&#039;&lt;br /&gt;
:Displays all user-visible console commands, one per line. As of Eternity Engine v3.31 Delta, this command accepts an optional &#039;&#039;filter&#039;&#039; parameter that, if provided, should consist of a single character between A and Z. The character will be used to filter the command list down to only commands beginning with that letter. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;cvarhelp&#039;&#039;&#039; &#039;&#039;variablename&#039;&#039;&lt;br /&gt;
:Outputs a list of possible values for the given variable.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;delay&#039;&#039;&#039; &#039;&#039;amt&#039;&#039;&lt;br /&gt;
:Delays the running of the next console command by either 1, or if provided, by &#039;&#039;amt&#039;&#039; game tics. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;dir&#039;&#039;&#039;&lt;br /&gt;
:Lists the contents of the current working directory to the console.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;echo&#039;&#039;&#039; &#039;&#039;msg&#039;&#039;&lt;br /&gt;
:Echoes a string message to the console. As with all console strings, the string should be in quotes if it contains whitespace. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;flood&#039;&#039;&#039;&lt;br /&gt;
:Writes 300 garbage characters to the console. Usefulness is of debate. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;quote&#039;&#039;&#039;&lt;br /&gt;
:Currently does nothing.&lt;br /&gt;
&lt;br /&gt;
===Logging the console===&lt;br /&gt;
*&#039;&#039;&#039;dumplog&#039;&#039;&#039; &#039;&#039;filename&#039;&#039;&lt;br /&gt;
:Dumps the current state of the console message buffer to the specified file as ASCII text. The text will be appended to the file if it already exists, allowing multiple use of a single log file. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;openlog&#039;&#039;&#039; &#039;&#039;filename&#039;&#039;&lt;br /&gt;
:Opens the specified file in append mode and begins writing any text printed to the console into the file. All console messages will be logged until either the &#039;&#039;&#039;closelog&#039;&#039;&#039; command is used, or the program closes. Note this log file is totally separate from any used with the &amp;quot;dumplog&amp;quot; command, which is simply for saving the current buffer. If a log file is already open, this command does nothing. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;closelog&#039;&#039;&#039;&lt;br /&gt;
:Closes a console log opened by the &#039;&#039;&#039;openlog&#039;&#039;&#039; command. If no logging is currently occuring, this command does nothing. This command doesn&#039;t apply to files used by &#039;&#039;&#039;dumplog&#039;&#039;&#039;, as they are closed immediately, so it doesn&#039;t need to be used with the &#039;&#039;&#039;dumplog&#039;&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
==Menus==&lt;br /&gt;
====mn_clearmenus====&lt;br /&gt;
&lt;br /&gt;
Deactivates any active menu and returns to the game &lt;br /&gt;
&lt;br /&gt;
====mn_newgame====&lt;br /&gt;
&lt;br /&gt;
Displays the New Game menu or takes the player to the start map, depending on their configuration. &lt;br /&gt;
&lt;br /&gt;
====mn_quit====&lt;br /&gt;
&lt;br /&gt;
Displays a prompt asking the user if they want to quit. &lt;br /&gt;
&lt;br /&gt;
====mn_episode====&lt;br /&gt;
&lt;br /&gt;
Displays the episode selection screen for Ultimate DOOM.&lt;br /&gt;
&lt;br /&gt;
Flags: not in network games &lt;br /&gt;
&lt;br /&gt;
====mn_prevmenu====&lt;br /&gt;
&lt;br /&gt;
Returns user to the last menu they viewed, or to the game if the present menu is the highest-most in that chain. &lt;br /&gt;
&lt;br /&gt;
====newgame====&lt;br /&gt;
&lt;br /&gt;
Clears any active menus and starts a new game.&lt;br /&gt;
&lt;br /&gt;
Flags: not in network games &lt;br /&gt;
&lt;br /&gt;
====mn_weaponkeys====&lt;br /&gt;
&lt;br /&gt;
Displays the weapon keybinding menu. &lt;br /&gt;
&lt;br /&gt;
====mn_keybindings====&lt;br /&gt;
&lt;br /&gt;
Displays primary keybindings menu. &lt;br /&gt;
&lt;br /&gt;
====mn_demos====&lt;br /&gt;
&lt;br /&gt;
Displays the Demos menu&lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game &lt;br /&gt;
&lt;br /&gt;
====mn_weapons====&lt;br /&gt;
&lt;br /&gt;
Displays the weapons preferences menu &lt;br /&gt;
&lt;br /&gt;
====mn_loadwad====&lt;br /&gt;
&lt;br /&gt;
Displays the wad/file options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_status====&lt;br /&gt;
&lt;br /&gt;
Displays the status bar options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_hud====&lt;br /&gt;
&lt;br /&gt;
Displays the heads-up display options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_mouse====&lt;br /&gt;
&lt;br /&gt;
Displays the mouse options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_sound====&lt;br /&gt;
&lt;br /&gt;
Displays the sound options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_vidmode====&lt;br /&gt;
&lt;br /&gt;
Displays the video mode options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_particle====&lt;br /&gt;
&lt;br /&gt;
Displays the particle effects options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_video====&lt;br /&gt;
&lt;br /&gt;
Displays the video options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_endgame====&lt;br /&gt;
&lt;br /&gt;
Prompts the user to end the current game and return to the title screen. &lt;br /&gt;
&lt;br /&gt;
====mn_options====&lt;br /&gt;
&lt;br /&gt;
Displays the main options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_savegame====&lt;br /&gt;
&lt;br /&gt;
Displays the save game menu. Will not display if not in a level. &lt;br /&gt;
&lt;br /&gt;
====mn_load slotnum====&lt;br /&gt;
&lt;br /&gt;
Loads the save game from save slot slotnum. &lt;br /&gt;
&lt;br /&gt;
====mn_loadgame====&lt;br /&gt;
&lt;br /&gt;
Displays the load game menu. &lt;br /&gt;
&lt;br /&gt;
====mn_player====&lt;br /&gt;
&lt;br /&gt;
Displays the player setup menu. &lt;br /&gt;
&lt;br /&gt;
====mn_envkeys====&lt;br /&gt;
&lt;br /&gt;
Displays the environment keybindings menu. &lt;br /&gt;
&lt;br /&gt;
====credits====&lt;br /&gt;
&lt;br /&gt;
Displays game engine / game credits. &lt;br /&gt;
&lt;br /&gt;
====help====&lt;br /&gt;
&lt;br /&gt;
Displays built-in and user-provided help screens. See the BOOM editing reference on how to provide up to 99 custom help screens. &lt;br /&gt;
&lt;br /&gt;
====mn_enemies====&lt;br /&gt;
&lt;br /&gt;
Displays enemy AI options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_compat====&lt;br /&gt;
&lt;br /&gt;
Displays the DOOM compatibility options menu. &lt;br /&gt;
&lt;br /&gt;
====mn_automap====&lt;br /&gt;
&lt;br /&gt;
Displays the automap options menu. &lt;br /&gt;
&lt;br /&gt;
====quickload====&lt;br /&gt;
&lt;br /&gt;
Quickloads a game from a previously chosen quicksave slot. NOTE: does nothing in network games or demos &lt;br /&gt;
&lt;br /&gt;
====quicksave====&lt;br /&gt;
&lt;br /&gt;
Quicksaves a game. First time command is used, a slot must be chosen normally. Subsequent uses will overwrite the save in that slot.&lt;br /&gt;
&lt;br /&gt;
NOTE: does nothing in network games or demos &lt;br /&gt;
&lt;br /&gt;
====mn_joymenu====&lt;br /&gt;
&lt;br /&gt;
Brings up the SDL joystick configuration menu. NOTE: This command does not exist in the DOS version of Eternity. &lt;br /&gt;
&lt;br /&gt;
====mn_hnewgame====&lt;br /&gt;
&lt;br /&gt;
Brings up the Heretic new game menu. &lt;br /&gt;
&lt;br /&gt;
====mn_hepis====&lt;br /&gt;
&lt;br /&gt;
Brings up the Heretic episode selection menu. &lt;br /&gt;
&lt;br /&gt;
====skinviewer====&lt;br /&gt;
&lt;br /&gt;
Brings up the skin viewer menu widget. &lt;br /&gt;
&lt;br /&gt;
====mn_dmflags====&lt;br /&gt;
&lt;br /&gt;
Brings up the deathmatch flags configuration menu. &lt;br /&gt;
&lt;br /&gt;
====mn_dynamenu menuname====&lt;br /&gt;
&lt;br /&gt;
Brings up the EDF dynamic menu with the given mnemonic. If no such menu exists, an error message will appear in the console. &lt;br /&gt;
&lt;br /&gt;
====mn_selectwad====&lt;br /&gt;
&lt;br /&gt;
Brings up the wad selection dialog box. The selected wad cannot be loaded if the current gamemode is a shareware game. Flags: not in a netgame &lt;br /&gt;
&lt;br /&gt;
====mn_search====&lt;br /&gt;
&lt;br /&gt;
Begins or continues a menu search operation. This command uses the value of the &amp;quot;mn_searchstr&amp;quot; console variable to carry out its search. &lt;br /&gt;
&lt;br /&gt;
====mn_menus====&lt;br /&gt;
&lt;br /&gt;
Brings up the menu options menu.&lt;br /&gt;
&lt;br /&gt;
==Keybindings==&lt;br /&gt;
*&#039;&#039;&#039;listactions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a list of all bindable actions, aside from console commands. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;bind&#039;&#039;&#039; &#039;&#039;keyname&#039;&#039; &#039;&#039;actionname&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Binds the specified action to the specified key. actionname is a string and should be enclosed in quotes if it contains whitespace. actionname may specify any valid action or console command. If &amp;quot;actionname&amp;quot; is not provided, the current binding status of the specified key will be displayed. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;unbindall&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Releases *all* dynamic keybindings. Use with caution! &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;unbind&#039;&#039;&#039; &#039;&#039;keyname&#039;&#039; &#039;&#039;bindingclass&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unbinds the specified key from any action, or from only the action in the specified class if the bindingclass parameter is specified. As of Eternity Engine v3.31 Delta, keys may have one binding from each separate binding class. Binding class numbers are displayed next to action names when using the &amp;quot;bind keyname&amp;quot; command. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;listkeys&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a list of all bindable key names. Not all bindable key codes correspond to pressable keys, however. Most pressable keys have obvious names which correspond to those on the keyboard. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;bindings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dumps a list of all active keybindings to the console.&lt;br /&gt;
&lt;br /&gt;
==Multiplayer==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;disconnect&#039;&#039;&#039;&lt;br /&gt;
:Disconnects from any ongoing network game and sets full-screen console mode.&lt;br /&gt;
:Flags: only in network games &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;playerinfo&#039;&#039;&#039;&lt;br /&gt;
:Displays name information for all connected players. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;frags&#039;&#039;&#039;&lt;br /&gt;
:Displays the current frag count for all players. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;kick &#039;&#039;playernum&#039;&#039;&lt;br /&gt;
:(&#039;&#039;&#039;Currently disabled&#039;&#039;&#039;) Kicks the player with the specified player number from the game. Player numbers can be retrieved with &#039;&#039;&#039;playerinfo&#039;&#039;&#039;.&lt;br /&gt;
:Flags: server-only &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;say&#039;&#039;&#039; &#039;&#039;...&#039;&#039;&lt;br /&gt;
:Sends all arguments as a single message to all players in a network game.&lt;br /&gt;
:Flags: net command&lt;br /&gt;
&lt;br /&gt;
==Cheats==&lt;br /&gt;
====god====&lt;br /&gt;
&lt;br /&gt;
Toggles god mode (IDDQD) on or off.&lt;br /&gt;
&lt;br /&gt;
Flags: not in network games, only in levels &lt;br /&gt;
&lt;br /&gt;
====noclip====&lt;br /&gt;
&lt;br /&gt;
Toggles no clipping (IDCLIP) on or off.&lt;br /&gt;
&lt;br /&gt;
Flags: not in network games, only in levels &lt;br /&gt;
&lt;br /&gt;
====nuke====&lt;br /&gt;
&lt;br /&gt;
Kills all enemies on the level, and if there are no enemies, kills all friends on the level (equivalent to KILLEM).&lt;br /&gt;
&lt;br /&gt;
Flags: server-only, only in level, net command &lt;br /&gt;
&lt;br /&gt;
====infammo====&lt;br /&gt;
&lt;br /&gt;
Toggles infinite ammo (INFSHOTS) on or off.&lt;br /&gt;
&lt;br /&gt;
Flags: not in network games, only in levels &lt;br /&gt;
&lt;br /&gt;
====mdk====&lt;br /&gt;
&lt;br /&gt;
Fires a tracer from the player that instantly kills any monster the player is targetting.&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, not in netgames, hidden &lt;br /&gt;
&lt;br /&gt;
====mdkbomb====&lt;br /&gt;
&lt;br /&gt;
As above, but fires 60 such tracers in a circle around the player.&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, not in network games, hidden &lt;br /&gt;
&lt;br /&gt;
====spacejump====&lt;br /&gt;
&lt;br /&gt;
Allows the player to jump any number of times in midair; useful for testing linked portals.&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, not in network games, hidden &lt;br /&gt;
&lt;br /&gt;
====viles ====&lt;br /&gt;
&lt;br /&gt;
A special command for DOOM II only. Try it and see what happens :)&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, not in network games, hidden &lt;br /&gt;
&lt;br /&gt;
====vilehit====&lt;br /&gt;
&lt;br /&gt;
If the player is autoaiming at an enemy, the player will perform an Arch-vile attack on that enemy.&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, not in network games &lt;br /&gt;
&lt;br /&gt;
====banish====&lt;br /&gt;
&lt;br /&gt;
If the player is autoaiming at an enemy, the enemy will be removed from the play simulation and its memory will be freed once no other objects reference it.&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, not in network games&lt;br /&gt;
&lt;br /&gt;
==Video Options==&lt;br /&gt;
====v_modelist====&lt;br /&gt;
&lt;br /&gt;
Prints a list of available video modes to the console. &lt;br /&gt;
&lt;br /&gt;
====animshot numframes====&lt;br /&gt;
&lt;br /&gt;
Takes the given number of consecutive screenshots for the purpose of making a crude animation. Would be useful for animated GIFs or AVI movies. This command will make the game run very slow, however, and will eat up disk space quickly, so use it with care. &lt;br /&gt;
&lt;br /&gt;
====screenshot====&lt;br /&gt;
&lt;br /&gt;
Takes a single screenshot. Bind this command to a key in order to take a shot without the console in the way.&lt;br /&gt;
&lt;br /&gt;
==Sound Options==&lt;br /&gt;
====s_playmusic name====&lt;br /&gt;
&lt;br /&gt;
Plays the given lump as music, if that lump can be found in the music hash table. Only lumps listed in the internal music table, or new lumps with names beginning with &amp;quot;D_&amp;quot; in DOOM or &amp;quot;MUS_&amp;quot; in Heretic are available.&lt;br /&gt;
&lt;br /&gt;
==Player Options==&lt;br /&gt;
====listskins====&lt;br /&gt;
&lt;br /&gt;
Lists names of all available player skins. &lt;br /&gt;
&lt;br /&gt;
====listwads====&lt;br /&gt;
&lt;br /&gt;
Lists all currently loaded WAD files.&lt;br /&gt;
&lt;br /&gt;
==Demos==&lt;br /&gt;
These commands are related to playing / recording demos. For all of these commands, the demo specified by demoname must have been added in either a WAD or on the command-line with the -file option. Demos cannot be played directly from a file name.&lt;br /&gt;
&lt;br /&gt;
====timedemo demoname showmenu====&lt;br /&gt;
&lt;br /&gt;
Starts the given demo as a time demo, in which the framerate of the game can be measured. If showmenu is set to 1, a meter comparing the framerate against that of a &amp;quot;fast&amp;quot; machine will be displayed after the demo is complete. Otherwise, the framerate will be printed to the console as a number.&lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game &lt;br /&gt;
&lt;br /&gt;
====playdemo demoname====&lt;br /&gt;
&lt;br /&gt;
Plays the given demo normally.&lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game &lt;br /&gt;
&lt;br /&gt;
====stopdemo====&lt;br /&gt;
&lt;br /&gt;
Stops any currently playing demo and drops to console.&lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
====pause====&lt;br /&gt;
&lt;br /&gt;
Pauses or unpauses the game.&lt;br /&gt;
&lt;br /&gt;
Flags: server-only &lt;br /&gt;
&lt;br /&gt;
====i_error ...====&lt;br /&gt;
&lt;br /&gt;
Simulates an internal game engine error. Prints any arguments provided as a single string when the game exits. &lt;br /&gt;
&lt;br /&gt;
====spawn objecttype &amp;lt;friend&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
Spawns a map object of the given internal type (DeHackEd number minus 1) in front of the player. If friend is provided and is a non-zero number, the object will be friendly. This command is for developers.&lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game, only in levels, hidden &lt;br /&gt;
&lt;br /&gt;
====endgame====&lt;br /&gt;
&lt;br /&gt;
Drops to console mode.&lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game &lt;br /&gt;
&lt;br /&gt;
====starttitle====&lt;br /&gt;
&lt;br /&gt;
Returns the game to the title screen / demo / credits loop.&lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game &lt;br /&gt;
&lt;br /&gt;
====quit====&lt;br /&gt;
&lt;br /&gt;
Plays a random monster sound and exits the game normally, with no prompt. &lt;br /&gt;
&lt;br /&gt;
====map mapname====&lt;br /&gt;
&lt;br /&gt;
Transfers game play to the given map. mapname may be the name of a WAD file to load, as well as the name of a map header itself. &lt;br /&gt;
  Examples:&lt;br /&gt;
  	map E1M1&lt;br /&gt;
  	map w00t.wad&lt;br /&gt;
  &lt;br /&gt;
Flags: server-only, net command, buffered command &lt;br /&gt;
&lt;br /&gt;
====kill====&lt;br /&gt;
&lt;br /&gt;
Causes the player to commit suiceide.&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, net command &lt;br /&gt;
&lt;br /&gt;
====addfile wadfilename====&lt;br /&gt;
&lt;br /&gt;
Adds the specified wad file at run-time. Some features will not function completely as expected when WADs are loaded at run-time, so for maximum compatibility always use the command line to load files.&lt;br /&gt;
&lt;br /&gt;
Flags: not in network games, buffered command &lt;br /&gt;
&lt;br /&gt;
====exitlevel====&lt;br /&gt;
&lt;br /&gt;
Exits the current level. Starting with EE v3.31 beta 1, this command will not allow an exit if the player is dead unless the comp_zombie variable is set to allow zombie exits.&lt;br /&gt;
&lt;br /&gt;
Flags: only in level, server-only, net command, buffered command &lt;br /&gt;
&lt;br /&gt;
====defdmflags &amp;lt;mode&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
Sets the deathmatch flags variable to its default settings. If no argument is provided, dmflags is set to the default for the current game type. Otherwise, the &amp;quot;mode&amp;quot; parameter indicates what game mode&#039;s defaults to set, with the following values: &lt;br /&gt;
&lt;br /&gt;
  0 = Single-player mode&lt;br /&gt;
  1 = Cooperative mode&lt;br /&gt;
  2 = Deathmatch mode&lt;br /&gt;
  3 = Altdeath mode (deathmatch 2.0, items respawn)&lt;br /&gt;
  4 = Trideath mode (DM 3, barrels respawn, players drop backpacks)&lt;br /&gt;
  &lt;br /&gt;
Flags: server-only, net command &lt;br /&gt;
&lt;br /&gt;
====summon thingtypename &amp;lt;flagslist&amp;gt; &amp;lt;mode&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
Allows spawning of things via their EDF thing type name. An EDF/BEX flag list can optionally be provided, with the flags separated by commas only. By default, this will cause the listed flags to be added to the thing along with its normal flags. By specifying the third parameter as &amp;quot;set&amp;quot; or &amp;quot;remove&amp;quot;, it is possible to set the thing&#039;s flags value to only the listed flags, or to remove the listed flags if the thingtype has them set by default.&lt;br /&gt;
&lt;br /&gt;
 Example to spawn a friendly thing:&lt;br /&gt;
 $ summon doomimp friend &lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game, only in levels, hidden &lt;br /&gt;
&lt;br /&gt;
====give thingtypename &amp;lt;num&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
Spawns 1, or &amp;quot;num&amp;quot; if provided, of the object with this EDF thing type name on the player and causes the player to collect it/them. If the requested thing type is not collectable, it will not be spawned. In addition, if a collectable item is not picked up by the player, it will be removed immediately. &lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game, only in levels, hidden &lt;br /&gt;
&lt;br /&gt;
====whistle thingtypename====&lt;br /&gt;
&lt;br /&gt;
If there is a live, friendly thing of the given EDF type, the first such thing found on the map will be teleported in front of the player. If the thing doesn&#039;t fit where the player is trying to teleport it, it will not be teleported. It will also not be teleported across blocking lines. &lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game, only in levels &lt;br /&gt;
&lt;br /&gt;
====p_linespec name &amp;lt;arg&amp;gt; &amp;lt;arg&amp;gt; &amp;lt;arg&amp;gt; &amp;lt;arg&amp;gt; &amp;lt;arg&amp;gt;====&lt;br /&gt;
&lt;br /&gt;
Executes the named Eternity Engine parameterized line special with the given parameters. The line special is restricted to behaving as though it has been invoked without any linedef to reference, and thus certain effects such as sector special transfers will not occur even if specified by the special type or arguments. &lt;br /&gt;
&lt;br /&gt;
Flags: not in a network game, only in levels.&lt;br /&gt;
&lt;br /&gt;
==Mod information==&lt;br /&gt;
*&#039;&#039;&#039;e_dumpitemeffect&#039;&#039;&#039; &#039;&#039;mnemonic&#039;&#039;&lt;br /&gt;
:Displays the properties of an item effect metatable.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_dumpitems&#039;&#039;&#039;&lt;br /&gt;
:Lists all EDF thing type mnemonics and DeHackEd/DoomEd numbers for thing types which are collectable items. Useful in conjunction with the give command. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_dumpmeta&#039;&#039;&#039; &#039;&#039;mnemonic&#039;&#039;&lt;br /&gt;
:Displays the properties stored in the metatable for the given thingtype.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_dumpstate&#039;&#039;&#039; &#039;&#039;mnemonic&#039;&#039;&lt;br /&gt;
:Displays information on one EDF state definition.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_dumpthings&#039;&#039;&#039;&lt;br /&gt;
:Lists all EDF thing type mnemonics along with the DeHackEd numbers and doomednums of the corresponding types.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_linedef&#039;&#039;&#039; &#039;&#039;recordnum&#039;&#039;&lt;br /&gt;
:Lists verbose information on an ExtraData linedef record with the given numeric record number. If no such linedef is defined or no ExtraData exists for the current map, an appropriate error message will be given.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_listkeyitems&#039;&#039;&#039;&lt;br /&gt;
:Lists all key-type artifact definitions.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_listlinedefs&#039;&#039;&#039;&lt;br /&gt;
:Lists all linedef definitions from the current map&#039;s ExtraData. If no linedefs are defined or no ExtraData exists for the current map, an appropriate error message will be given. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_listmapthings&#039;&#039;&#039;&lt;br /&gt;
:Lists all mapthing definitions from the current map&#039;s [[ExtraData]]. If no mapthings are defined or no [[ExtraData]] exists for the current map, an appropriate error message will be given. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_mapthing&#039;&#039;&#039; &#039;&#039;recordnum&#039;&#039;&lt;br /&gt;
:Lists verbose information on an ExtraData mapthing record with the given numeric record number. If no such mapthing is defined or no ExtraData exists for the current map, an appropriate error message will be given. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_playsound&#039;&#039;&#039; &#039;&#039;name&#039;&#039;&lt;br /&gt;
:Plays an EDF sound.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;e_thingtype&#039;&#039;&#039; &#039;&#039;thingtypename&#039;&#039;&lt;br /&gt;
:Lists verbose information on an EDF thingtype with the given mnemonic. If no such thingtype is defined, an error message will be given. &lt;br /&gt;
===Others===&lt;br /&gt;
*&#039;&#039;&#039;ev_mapsectorspecs&#039;&#039;&#039;&lt;br /&gt;
:List out all the sector specials in use on the current map.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;ev_mapspecials&#039;&#039;&#039;&lt;br /&gt;
:Lists all linedef specials in current map.&lt;br /&gt;
&lt;br /&gt;
[[category:console]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=4352</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=4352"/>
		<updated>2018-10-27T14:11:14Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: switch to php 7.2 test edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Welcome to the Eternity Engine Wiki== &lt;br /&gt;
 &lt;br /&gt;
The [[Eternity Engine]] [[Wikipedia:Wiki|Wiki]] is a community-maintained documentation resource for the Eternity Engine [[Doom Wiki:Source port|source port]] and everything related to it. It is powered by [[Wikipedia:MediaWiki|MediaWiki]]. Feel free to edit and create articles to help make this a valuable source of knowledge. If you&#039;re not familiar with wiki markup, [[Wikipedia:Wikipedia:How to edit a page#Wiki markup|look here]] for some examples.&lt;br /&gt;
&lt;br /&gt;
==About Eternity==&lt;br /&gt;
*[[Eternity Engine]]&lt;br /&gt;
*[[Editing reference|All editing reference]]&lt;br /&gt;
&lt;br /&gt;
==Level editing==&lt;br /&gt;
*[[MapInfo]]&lt;br /&gt;
*[[ACS scripting]]&lt;br /&gt;
*[[UDMF]]&lt;br /&gt;
*[[ExtraData]]&lt;br /&gt;
*[[Linedef types|Classic linedef specials]]&lt;br /&gt;
*[[Detailed parameterized linedef specification|Parameterized linedef specials]]&lt;br /&gt;
&lt;br /&gt;
==Wad storage==&lt;br /&gt;
*[[ZIP|PKE files or directory structure]]&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
*[[Polyobject]]&lt;br /&gt;
*[[3DMidTex tutorial]]&lt;br /&gt;
*[[3DMidTex advanced topics]]&lt;br /&gt;
*[[Portals]]&lt;br /&gt;
*[[Linked portals]]&lt;br /&gt;
&lt;br /&gt;
==Gameplay editing==&lt;br /&gt;
*[[EDF]]&lt;br /&gt;
*[[Thingtype]]&lt;br /&gt;
*[[Thing type flags]]&lt;br /&gt;
*[[Frame]]&lt;br /&gt;
*[[List of codepointers]]&lt;br /&gt;
*[[Sound]]&lt;br /&gt;
*[[OPTIONS]]&lt;br /&gt;
===Base game data===&lt;br /&gt;
*Things.edf: [https://github.com/team-eternity/eternity/blob/master/base/doom/things.edf list of Doom thing types]&lt;br /&gt;
&lt;br /&gt;
==Console and command line==&lt;br /&gt;
*[[List of command line parameters]]&lt;br /&gt;
*[[Console commands]]&lt;br /&gt;
&lt;br /&gt;
==Inherited stuff==&lt;br /&gt;
*[[SMMU]]&lt;br /&gt;
&lt;br /&gt;
==Latest version==&lt;br /&gt;
The latest version of the Eternity Engine is currently {{Latest}}.&lt;br /&gt;
&lt;br /&gt;
[http://svn.drdteam.org/eternity/ Daily unofficial development builds.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Eternity Wiki]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Eternity_Engine&amp;diff=4167</id>
		<title>Eternity Engine</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Eternity_Engine&amp;diff=4167"/>
		<updated>2017-09-01T02:26:03Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 178.137.83.166 (talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Eternity Engine is [[Team Eternity]]&#039;s advanced [[Doom Wiki:Doom|Doom]] [[Doom Wiki:Source port|source port]] and the primary subject of this Wiki.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Eternity Engine began in 1998 as a simple modification of [[Doom Wiki:Boom|Boom]] meant to power Eternity TC, which was at that time a new and active project. When [[Doom Wiki:Lee Killough|Lee Killough]] began the [[MBF]] project, [[James &amp;quot;Quasar&amp;quot; Haley]] became a beta tester after emailing Lee with questions about the early Doom alpha versions. The Eternity project moved to an MBF code base after that port&#039;s first release.&lt;br /&gt;
&lt;br /&gt;
In late 1999, [[Doom Wiki:Simon &amp;quot;Fraggle&amp;quot; Howard|Fraggle]] released v3.10 of his MBF-based source port [[SMMU]], which contained support for the new [[FraggleScript]] scripting language. Although activity in the Eternity TC project by editors had steadily dropped to almost nothing, Quasar was still interested in developing the code associated with it. Needing features such as scripting and the [[console]], he then moved the Eternity project&#039;s code into SMMU.&lt;br /&gt;
&lt;br /&gt;
Despite this long history of jumping between Boom-based ports, no public release of Eternity based on any port other than SMMU was ever made. The first private alpha, released to a select few beta testers, was derived from SMMU 3.21 with selected modifications from 3.30. Because of this, Eternity began at version 3.29.&lt;br /&gt;
&lt;br /&gt;
After the release of the [[Caverns of Darkness]] project, which used a customized version of Eternity Engine v3.29 Development Beta 5, the project began to attract more attention. A second programmer, [[Steven &amp;quot;SoM&amp;quot; McGranahan]], joined the project and immediately set to work porting the code to use [[Wikipedia:Simple_DirectMedia_Layer|SDL]], making it capable of running on many operating systems, including [[Wikipedia:Microsoft Windows|Windows]].&lt;br /&gt;
&lt;br /&gt;
Now it has [[Universal Doom Map Format|UDMF]] support. Current major goals for the engine include completing support for [[Doom Wiki:Heretic|Heretic]], a dynamic weapon and inventory system.&lt;br /&gt;
&lt;br /&gt;
==Major Features==&lt;br /&gt;
&lt;br /&gt;
===Cardboard engine===&lt;br /&gt;
[[Cardboard]] is a floating-point rendering engine created by [[SoM]] that fixes several problems inherent with the classic fixed-point Doom rendering engine.&lt;br /&gt;
&lt;br /&gt;
===EDF===&lt;br /&gt;
[[EDF]], which stands for Eternity Definition Files, is a textual input language that allows specification of almost all the static game data which was once contained inside the executable. This includes thing types, frames, sprites, terrain definitions, and more. EDF has a relaxed [[Wikipedia:C programming language|C]]-like syntax and can be used from both files and [[WAD]] lumps.&lt;br /&gt;
&lt;br /&gt;
===ExtraData===&lt;br /&gt;
[[ExtraData]] is another EDF-like data specification language that allows the Doom map format to be extended with any kind of data. Use of special thing, line, and sector types within a map allows the editor to attach ExtraData records to those objects. Special data for the objects is then given inside the script.&lt;br /&gt;
&lt;br /&gt;
===Linked portals===&lt;br /&gt;
[[Linked portals]] are surfaces that, like regular [[portals]], connect different areas of the map, but in addition can be walked through, thus allowing multistory maps to be designed in Doom.&lt;br /&gt;
&lt;br /&gt;
===[[MapInfo]]===&lt;br /&gt;
Eternity expands SMMU&#039;s level info system significantly, allowing dozens of new properties to be specified, and allowing cascading global EMAPINFO lumps as an alternative to inserting MapInfo data into level headers. Among other things, MapInfo is used to tie ExtraData and ACS scripts to the maps that use them.&lt;br /&gt;
&lt;br /&gt;
==Releases==&lt;br /&gt;
A complete listing of Eternity&#039;s release history follows.&lt;br /&gt;
&lt;br /&gt;
===Version 3.29===&lt;br /&gt;
* 3.29 Private Alpha - September 14, 2000&lt;br /&gt;
* 3.29 Public Beta 1 - January 8, 2001&lt;br /&gt;
* 3.29 Public Beta 2 - January 9, 2001&lt;br /&gt;
* 3.29 Public Beta 3 - May 10, 2001&lt;br /&gt;
* 3.29 Public Beta 4 - June 30, 2001&lt;br /&gt;
* 3.29 Development Beta 5 - October 2, 2001&lt;br /&gt;
* 3.29 &amp;quot;Gamma&amp;quot; - July 4, 2002&lt;br /&gt;
&lt;br /&gt;
===Version 3.31===&lt;br /&gt;
* 3.31 Public Beta 1 - September 11, 2002&lt;br /&gt;
* 3.31 Public Beta 2 - March 5, 2003&lt;br /&gt;
* 3.31 Public Beta 3 - August 8, 2003&lt;br /&gt;
* 3.31 Public Beta 4 - November 29, 2003&lt;br /&gt;
* 3.31 Public Beta 5 - December 17, 2003&lt;br /&gt;
* 3.31 Public Beta 6 - February 29, 2004&lt;br /&gt;
* 3.31 Public Beta 7 - April 11, 2004&lt;br /&gt;
* 3.31 &amp;quot;Delta&amp;quot; Pre-Release Alpha 1 - August 23, 2004&lt;br /&gt;
* 3.31 &amp;quot;Delta&amp;quot; Pre-Release Alpha 2 - November 11, 2004&lt;br /&gt;
* 3.31.10 &amp;quot;Delta&amp;quot; - January 19, 2005&lt;br /&gt;
&lt;br /&gt;
===Version 3.33===&lt;br /&gt;
* 3.33.00 &amp;quot;Genesis&amp;quot; - May 26, 2005&lt;br /&gt;
* 3.33.01 &amp;quot;Outcast&amp;quot; - June 24, 2005&lt;br /&gt;
* 3.33.02 &amp;quot;Warrior&amp;quot; - October 1, 2005&lt;br /&gt;
* 3.33.33 &amp;quot;Paladin&amp;quot; - May 17, 2006&lt;br /&gt;
* 3.33.50 &amp;quot;Phoenix&amp;quot; - October 23, 2006&lt;br /&gt;
&lt;br /&gt;
===Version 3.35===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/45146-eternity-engine-v3-35-90-simorgh/ 3.35.90] &amp;quot;Simorgh&amp;quot; - January 11, 2009&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/45757-eternity-engine-3-35-92-nekhbet/ 3.35.92] &amp;quot;Nekhbet&amp;quot; - March 22, 2009&lt;br /&gt;
&lt;br /&gt;
===Version 3.37===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/49268-eternity-engine-3-37-00-sekhmet/ 3.37.00] &amp;quot;Sekhmet&amp;quot; - January 1, 2010&lt;br /&gt;
&lt;br /&gt;
===Version 3.39===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/52873-eternity-engine-v3-39-20-resheph/ 3.39.20] &amp;quot;Resheph&amp;quot; - October 10, 2010&lt;br /&gt;
&lt;br /&gt;
===Version 3.40===&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/53944-eternity-engine-v3-40-00-rebirth/ 3.40.00] &amp;quot;Rebirth&amp;quot; - January 8, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/55219-announcing-the-blue-box-ee-3-40-11-and-vaporware-demo/ 3.40.11] &amp;quot;Aasgard&amp;quot; - May 2, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/55874-eternity-engine-3-40-15-wodanaz/ 3.40.15] &amp;quot;Wodanaz&amp;quot; - June 22, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/58281-eternity-engine-v3-40-20-mjolnir/ 3.40.20] &amp;quot;Mjolnir&amp;quot; - December 26, 2011&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/61245-eternity-engine-3-40-25-midgard/ 3.40.25] &amp;quot;Midgard&amp;quot; - August 27, 2012&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/62087-eternity-engine-3-40-30-alfheim/ 3.40.30] &amp;quot;Alfheim&amp;quot; - November 4, 2012&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/64382-eternity-engine-3-40-37-gungnir/ 3.40.37] &amp;quot;Gungnir&amp;quot; - May 27, 2013&lt;br /&gt;
* [http://www.doomworld.com/vb/eternity/67069-eternity-engine-3-40-46-bifrost/ 3.40.46] &amp;quot;Bifröst&amp;quot; - January 19, 2014&lt;br /&gt;
===Version 3.42===&lt;br /&gt;
* [https://www.doomworld.com/forum/topic/94046-eternity-engine-34202-heimdal-files-documentation-buglist/ 3.42.02] &amp;quot;Heimdal&amp;quot; - May 7, 2017&lt;br /&gt;
* {{Latest}} &amp;quot;Heimdal&amp;quot; release 2 - August 2, 2017&lt;br /&gt;
&lt;br /&gt;
==Cross-platform==&lt;br /&gt;
Eternity can be compiled on other operating systems than Windows by using the CMake utility. You can download the source code and execute CMake on its top-level folder.&lt;br /&gt;
&lt;br /&gt;
==Development builds==&lt;br /&gt;
SVN builds (&amp;quot;beta&amp;quot; releases) for Eternity are available for Windows and OS X at [http://devbuilds.drdteam.org/eternity/ DRDTeam&#039;s website]. They are recommended if you encounter serious bugs with any of the official releases, or if you want to test brand new features that didn&#039;t exist in the latest official releases. Due to their beta status, they may be untested and have other problems.&lt;br /&gt;
&lt;br /&gt;
==System features==&lt;br /&gt;
*[[Cardboard engine]]&lt;br /&gt;
*[[List of command line parameters]]&lt;br /&gt;
*[[Console]]&lt;br /&gt;
*[[List of cheat codes]]&lt;br /&gt;
*[[GFS|GFS files]]&lt;br /&gt;
*[[ZIP|ZIP mods]]&lt;br /&gt;
&lt;br /&gt;
==Gameplay and modding features==&lt;br /&gt;
*[[DeHackEd / BEX Reference]]&lt;br /&gt;
*[[List of codepointers]]&lt;br /&gt;
*[[EDF|EDF files]]&lt;br /&gt;
*[[Editing reference]]&lt;br /&gt;
*[[OPTIONS|OPTIONS lump]]&lt;br /&gt;
*[[MapInfo]]&lt;br /&gt;
*[[SMMU|Features inherited from SMMU]]&lt;br /&gt;
*[[ExtraData]]&lt;br /&gt;
*[[Hexen format SNDINFO]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Source ports]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3655</id>
		<title>Talk:List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3655"/>
		<updated>2016-05-25T04:10:02Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 46.39.231.76 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I noticed some codepointers, mainly the ones with parameters, have been documented here with type specifiers in them (int, float, string...). While I know they&#039;re there for information purposes, do they actually have this form in the source? Normally all misc1, misc2 and args[] are of type int in the source, so this type naming I think it&#039;s pseudocode at most.--[[User:Printz|Printz]] 05:57, 29 May 2009 (EDT)&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Cardboard_engine&amp;diff=3654</id>
		<title>Cardboard engine</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Cardboard_engine&amp;diff=3654"/>
		<updated>2016-05-25T04:09:44Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 46.39.231.76 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cardboard&#039;&#039;&#039; is the floating-point renderer which debuted in version 3.35.90 of the [[Eternity Engine]]. Cardboard was created by programmer &#039;&#039;&#039;Stephen &amp;quot;[[SoM]]&amp;quot; McGranahan&#039;&#039;&#039; to address deep-seated problems inherent in the Doom engine&#039;s method of projecting and rendering lines and flats.&lt;br /&gt;
&lt;br /&gt;
Advantages of the Cardboard renderer include greatly improved behavior of anisotropic two-sided lines, giving a clean-scaled appearance to textures even when the camera is looking down a line that it is practically on, and even when mlook is engaged to the minimum or maximum of its vertical range. Long wall error is reduced, allowing maps to contain much longer linedefs without numeric instability causing the walls to appear to &amp;quot;wobble&amp;quot;. Behavior of the engine with respect to extreme height differences is also improved, retaining earlier repairs of crashes and eliminating most remaining rendering glitches associated with tall areas. Rendering of flats is now pixel-perfect in most circumstances.&lt;br /&gt;
&lt;br /&gt;
Cardboard also includes optimizations. Flat drawing has been sped up significantly, and two-sided lines have also been improved via tweaks to the main seg-drawing loop and the ability to treat closed lines as one-sided for rendering purposes.&lt;br /&gt;
&lt;br /&gt;
Unlike previous attempts by the Boom team and other source ports, Cardboard manages to allow the game engine to retain full compatibility by creating an optimum interface between fixed-point level geometry and the floating-point renderer. For example, floating-point vertex coordinates and sector heights are cached on a per-frame basis, minimizing integer-to-float conversions. As a result, frame rates under Cardboard are in most cases superior to the original renderer.&lt;br /&gt;
&lt;br /&gt;
Cardboard includes some qualities which will improve the ability to later add true color support. It was originally developed outside of the Eternity Engine as a stand-alone program which could draw Doom textures and flats in 32-bit color with dynamically calculated light fading.&lt;br /&gt;
{{backto|Eternity Engine}}&lt;br /&gt;
&lt;br /&gt;
==Enhancements provided==&lt;br /&gt;
* 2S lines remain firmly in place even when the player is directly above them and between the two vertices. No more &amp;quot;wobbly&amp;quot; lines.&lt;br /&gt;
* Long wall error is drastically reduced.&lt;br /&gt;
* 2S line texturing remains stable even with the player&#039;s view point inside the texture.&lt;br /&gt;
* Artificial limitations on area height are completely removed.&lt;br /&gt;
* Flat rendering accuracy is greatly improved; visplanes no longer dance when light levels change, and flats line up perfectly with wall textures.&lt;br /&gt;
* No more &amp;quot;sparklies&amp;quot; at the bottom of line textures.&lt;br /&gt;
* Speed improvements.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3632</id>
		<title>Talk:List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3632"/>
		<updated>2016-04-25T04:05:55Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 46.39.231.84 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I noticed some codepointers, mainly the ones with parameters, have been documented here with type specifiers in them (int, float, string...). While I know they&#039;re there for information purposes, do they actually have this form in the source? Normally all misc1, misc2 and args[] are of type int in the source, so this type naming I think it&#039;s pseudocode at most.--[[User:Printz|Printz]] 05:57, 29 May 2009 (EDT)&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Cardboard_engine&amp;diff=3631</id>
		<title>Cardboard engine</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Cardboard_engine&amp;diff=3631"/>
		<updated>2016-04-25T04:04:05Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 46.39.231.84 (talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cardboard&#039;&#039;&#039; is the floating-point renderer which debuted in version 3.35.90 of the [[Eternity Engine]]. Cardboard was created by programmer &#039;&#039;&#039;Stephen &amp;quot;[[SoM]]&amp;quot; McGranahan&#039;&#039;&#039; to address deep-seated problems inherent in the Doom engine&#039;s method of projecting and rendering lines and flats.&lt;br /&gt;
&lt;br /&gt;
Advantages of the Cardboard renderer include greatly improved behavior of anisotropic two-sided lines, giving a clean-scaled appearance to textures even when the camera is looking down a line that it is practically on, and even when mlook is engaged to the minimum or maximum of its vertical range. Long wall error is reduced, allowing maps to contain much longer linedefs without numeric instability causing the walls to appear to &amp;quot;wobble&amp;quot;. Behavior of the engine with respect to extreme height differences is also improved, retaining earlier repairs of crashes and eliminating most remaining rendering glitches associated with tall areas. Rendering of flats is now pixel-perfect in most circumstances.&lt;br /&gt;
&lt;br /&gt;
Cardboard also includes optimizations. Flat drawing has been sped up significantly, and two-sided lines have also been improved via tweaks to the main seg-drawing loop and the ability to treat closed lines as one-sided for rendering purposes.&lt;br /&gt;
&lt;br /&gt;
Unlike previous attempts by the Boom team and other source ports, Cardboard manages to allow the game engine to retain full compatibility by creating an optimum interface between fixed-point level geometry and the floating-point renderer. For example, floating-point vertex coordinates and sector heights are cached on a per-frame basis, minimizing integer-to-float conversions. As a result, frame rates under Cardboard are in most cases superior to the original renderer.&lt;br /&gt;
&lt;br /&gt;
Cardboard includes some qualities which will improve the ability to later add true color support. It was originally developed outside of the Eternity Engine as a stand-alone program which could draw Doom textures and flats in 32-bit color with dynamically calculated light fading.&lt;br /&gt;
{{backto|Eternity Engine}}&lt;br /&gt;
&lt;br /&gt;
==Enhancements provided==&lt;br /&gt;
* 2S lines remain firmly in place even when the player is directly above them and between the two vertices. No more &amp;quot;wobbly&amp;quot; lines.&lt;br /&gt;
* Long wall error is drastically reduced.&lt;br /&gt;
* 2S line texturing remains stable even with the player&#039;s view point inside the texture.&lt;br /&gt;
* Artificial limitations on area height are completely removed.&lt;br /&gt;
* Flat rendering accuracy is greatly improved; visplanes no longer dance when light levels change, and flats line up perfectly with wall textures.&lt;br /&gt;
* No more &amp;quot;sparklies&amp;quot; at the bottom of line textures.&lt;br /&gt;
* Speed improvements.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3604</id>
		<title>Talk:List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3604"/>
		<updated>2016-04-11T07:43:44Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 46.39.231.54 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I noticed some codepointers, mainly the ones with parameters, have been documented here with type specifiers in them (int, float, string...). While I know they&#039;re there for information purposes, do they actually have this form in the source? Normally all misc1, misc2 and args[] are of type int in the source, so this type naming I think it&#039;s pseudocode at most.--[[User:Printz|Printz]] 05:57, 29 May 2009 (EDT)&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=EDF_thing_reference&amp;diff=3521</id>
		<title>EDF thing reference</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=EDF_thing_reference&amp;diff=3521"/>
		<updated>2015-12-23T17:38:17Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thing types define monsters, lamps, control points, items, etc -- anything that moves, occupies space, can display a sprite, or is useful for singling out locations. Things have unique names, or mnemonics, for easy identification. They&#039;re referenced in several places by their name, such as the console command &#039;&#039;Summon&#039;&#039;, or [[List of codepointers|action functions]] dealing with spawning things (such as [[Spawn]] or [[MissileAttack]]).&lt;br /&gt;
&lt;br /&gt;
If a thing type&#039;s mnemonic is not unique, the latest definition of a thing type with that mnemonic replaces any earlier ones. Like most other identifiers in EDF (but not lump names or subnames), thing type mnemonics are completely case-insensitive.&lt;br /&gt;
&lt;br /&gt;
New objects, created via EDF files or wad lumps, can be later tweaked with Dehacked (BEX) patches, if they&#039;re given a unique &#039;&#039;&#039;dehackednum&#039;&#039;&#039; entry. For forward compatibility, the &#039;&#039;&#039;dehackednum&#039;&#039;&#039; has to be greater than or equal to 10000.&lt;br /&gt;
&lt;br /&gt;
For placing the thing on the map, an integer field called &#039;&#039;&#039;doomednum&#039;&#039;&#039; must be specified. For forward compatibility it has to be greater than or equal to 20000 or in the 3000-3999 range. Due to how binary WAD files format their THINGS lumps, &#039;&#039;&#039;doomednum&#039;&#039;&#039; values have to be less than 32767, though textmode representations such as [[ExtraData]] or UDMF solve this limit.&lt;br /&gt;
&lt;br /&gt;
{{See|Thing type flags}}&lt;br /&gt;
{{Backto|EDF}}&lt;br /&gt;
&lt;br /&gt;
==Eternity Alfheim syntax==&lt;br /&gt;
For versions of Eternity from Alfheim up, EDF thingtypes support the following syntax. Make sure to add:&lt;br /&gt;
 setdialect(&amp;quot;ALFHEIM&amp;quot;)&lt;br /&gt;
before using this syntax:&lt;br /&gt;
 thingtype &amp;lt;unique name&amp;gt; : &amp;lt;inherited thingtype&amp;gt;, &amp;lt;doomednum&amp;gt;, &amp;lt;dehackednum&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;lt;other attributes&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Header properties===&lt;br /&gt;
* &#039;&#039;&amp;lt;inherited thingtype&amp;gt;&#039;&#039; must be a value, even if the thingtype doesn&#039;t inherit from anything else. In that case, it must be &#039;&#039;&#039;Mobj&#039;&#039;&#039;, which is a placeholder value belonging to no real thingtype.&lt;br /&gt;
* &#039;&#039;&amp;lt;doomednum&amp;gt;&#039;&#039; and &#039;&#039;&amp;lt;dehackednum&amp;gt;&#039;&#039; can be -1 if not used. If both are -1, they can be omitted, leaving just this:&lt;br /&gt;
 thingtype &amp;lt;unique name&amp;gt; : &amp;lt;inherited thingtype&amp;gt; {&amp;lt;attributes&amp;gt;}&lt;br /&gt;
* If header properties are used, the pre-Alfheim &#039;&#039;&#039;inherits&#039;&#039;&#039;, &#039;&#039;&#039;doomednum&#039;&#039;&#039; and &#039;&#039;&#039;dehackednum&#039;&#039;&#039; attributes are not used.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
 thingtype &amp;lt;unique name&amp;gt; [: &amp;lt;parent type&amp;gt; [, &amp;lt;doomednum&amp;gt; [, &amp;lt;dehackednum&amp;gt;]]]&lt;br /&gt;
 {&lt;br /&gt;
   doomednum              &amp;lt;number&amp;gt;&lt;br /&gt;
   dehackednum            &amp;lt;unique number&amp;gt;&lt;br /&gt;
   inherits               &amp;lt;thingtype&amp;gt;&lt;br /&gt;
   basictype              &amp;lt;basic type qualifier&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   spawnstate             &amp;lt;frame&amp;gt;&lt;br /&gt;
   seestate               &amp;lt;frame&amp;gt;&lt;br /&gt;
   painstate              &amp;lt;frame&amp;gt;&lt;br /&gt;
   dmg_painstates         {&amp;lt;damage type&amp;gt;, &amp;lt;frame&amp;gt;, ...}&lt;br /&gt;
   dmg_painstates.add     {&amp;lt;damage type&amp;gt;, &amp;lt;frame&amp;gt;, ...}&lt;br /&gt;
   dmg_painstates.remove  {&amp;lt;damage type&amp;gt;, ...}&lt;br /&gt;
   meleestate             &amp;lt;frame&amp;gt;&lt;br /&gt;
   missilestate           &amp;lt;frame&amp;gt;&lt;br /&gt;
   deathstate             &amp;lt;frame&amp;gt;&lt;br /&gt;
   dmg_deathstates        {&amp;lt;damage type&amp;gt;, &amp;lt;frame&amp;gt;, ...}&lt;br /&gt;
   dmg_deathstates.add    {&amp;lt;damage type&amp;gt;, &amp;lt;frame&amp;gt;, ...}&lt;br /&gt;
   dmg_deathstates.remove {&amp;lt;damage type&amp;gt;, ...}&lt;br /&gt;
   xdeathstate            &amp;lt;frame&amp;gt;&lt;br /&gt;
   raisestate             &amp;lt;frame&amp;gt;&lt;br /&gt;
   crashstate             &amp;lt;frame&amp;gt;&lt;br /&gt;
   activestate            &amp;lt;frame&amp;gt;&lt;br /&gt;
   inactivestate          &amp;lt;frame&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   seesound               &amp;lt;sound&amp;gt;&lt;br /&gt;
   attacksound            &amp;lt;sound&amp;gt;&lt;br /&gt;
   painsound              &amp;lt;sound&amp;gt;&lt;br /&gt;
   deathsound             &amp;lt;sound&amp;gt;&lt;br /&gt;
   activesound            &amp;lt;sound&amp;gt;&lt;br /&gt;
   activatesound          &amp;lt;sound&amp;gt;&lt;br /&gt;
   deactivatesound        &amp;lt;sound&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   spawnhealth            &amp;lt;number&amp;gt;&lt;br /&gt;
   gibhealth              &amp;lt;number&amp;gt;&lt;br /&gt;
   reactiontime           &amp;lt;number&amp;gt;&lt;br /&gt;
   painchance             &amp;lt;number&amp;gt;&lt;br /&gt;
   speed                  &amp;lt;number OR floating-point number&amp;gt;&lt;br /&gt;
   fastspeed              &amp;lt;number OR floating-point number&amp;gt;&lt;br /&gt;
   radius                 &amp;lt;floating-point number&amp;gt;&lt;br /&gt;
   height                 &amp;lt;floating-point number&amp;gt;&lt;br /&gt;
   correct_height         &amp;lt;floating-point number&amp;gt;&lt;br /&gt;
   mass                   &amp;lt;number&amp;gt;&lt;br /&gt;
   respawntime            &amp;lt;number&amp;gt;&lt;br /&gt;
   respawnchance          &amp;lt;number&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   damage                 &amp;lt;number&amp;gt;&lt;br /&gt;
   dmgspecial             &amp;lt;dmgspecial name&amp;gt;&lt;br /&gt;
   aimshift               &amp;lt;number&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   damagefactor           &amp;lt;damage type&amp;gt;, &amp;lt;floating point number&amp;gt;&lt;br /&gt;
   damagefactor           &amp;lt;damage type&amp;gt;, &amp;lt;floating point number&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
 &lt;br /&gt;
   topdamage              &amp;lt;number&amp;gt;&lt;br /&gt;
   topdamagemask          &amp;lt;number&amp;gt;&lt;br /&gt;
   mod                    &amp;lt;MOD name OR number&amp;gt;&lt;br /&gt;
   obituary_normal        &amp;lt;string&amp;gt;&lt;br /&gt;
   obituary_melee         &amp;lt;string&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   bloodcolor             &amp;lt;number&amp;gt;&lt;br /&gt;
   nukespecial            &amp;lt;BEX codepointer mnemonic&amp;gt;&lt;br /&gt;
   droptype               &amp;lt;thing type mnemonic&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   cleardropitems&lt;br /&gt;
   dropitem               &amp;lt;type&amp;gt;, [, &amp;lt;chance&amp;gt; [, &amp;lt;amount&amp;gt; [, &amp;lt;toss&amp;gt;]]]&lt;br /&gt;
   dropitem.remove        &amp;lt;type&amp;gt;&lt;br /&gt;
   collectionspawn        &amp;lt;thingtype&amp;gt; [, &amp;lt;spchance&amp;gt; [, &amp;lt;coopchance&amp;gt; [, &amp;lt;dmchance&amp;gt;]]]&lt;br /&gt;
   itemrespawnat          &amp;lt;thingtype&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   cflags                 &amp;lt;flag list&amp;gt;&lt;br /&gt;
   addflags               &amp;lt;flag list&amp;gt;&lt;br /&gt;
   remflags               &amp;lt;flag list&amp;gt;&lt;br /&gt;
   flags                  &amp;lt;flag list&amp;gt;&lt;br /&gt;
   flags2                 &amp;lt;flag list&amp;gt;&lt;br /&gt;
   flags3                 &amp;lt;flag list&amp;gt;&lt;br /&gt;
   flags4                 &amp;lt;flag list&amp;gt;&lt;br /&gt;
   particlefx             &amp;lt;particle effect flag list&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   translucency           &amp;lt;number OR percentage&amp;gt;&lt;br /&gt;
   translation            &amp;lt;number OR translation table lump name&amp;gt;&lt;br /&gt;
   skinsprite             &amp;lt;sprite&amp;gt;&lt;br /&gt;
   defaultsprite          &amp;lt;sprite&amp;gt;&lt;br /&gt;
   alphavelocity          &amp;lt;floating-point number&amp;gt;&lt;br /&gt;
   xscale                 &amp;lt;floating-point number&amp;gt;&lt;br /&gt;
   yscale                 &amp;lt;floating-point number&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   acs_spawndata          {num &amp;lt;number&amp;gt; modes &amp;lt;mnemonic&amp;gt;}&lt;br /&gt;
 &lt;br /&gt;
   firstdecoratestate     &amp;lt;frame&amp;gt;&lt;br /&gt;
   states                 &amp;lt;[[DECORATE state syntax]] heredoc&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields===&lt;br /&gt;
====ID / Type Info====&lt;br /&gt;
*&#039;&#039;&#039;doomednum&#039;&#039;&#039;&lt;br /&gt;
:Default = -1&lt;br /&gt;
:The identification number, which makes this actor type placeable in maps. Zombieman monsters for example have &#039;&#039;&#039;doomednum&#039;&#039;&#039; 3004. Objects which don&#039;t need to be placed on the map can have &#039;&#039;&#039;doomednum&#039;&#039;&#039; -1. For EDF, recommended numbers are in the ranges 3000-3999 and 20000 up. Other numbers may be used by future versions of Eternity, so they&#039;re not safe to use.&lt;br /&gt;
*&#039;&#039;&#039;dehackednum&#039;&#039;&#039;&lt;br /&gt;
:Default = -1&lt;br /&gt;
:Fake array index number, for Dehacked patch (BEX or DEH file) compatibility. It has to be an unique number if not -1. Safe numbers are from 10000 up.&lt;br /&gt;
*&#039;&#039;&#039;inherits&#039;&#039;&#039;&lt;br /&gt;
:Default = (nothing)&lt;br /&gt;
:Sets the thing type from which this will copy properties. All of the properties except &#039;&#039;&#039;dehackednum&#039;&#039;&#039; will be copied from the base actor type.&lt;br /&gt;
*&#039;&#039;&#039;basictype&#039;&#039;&#039;&lt;br /&gt;
:Default = (nothing)&lt;br /&gt;
:&#039;&#039;&#039;Basictype&#039;&#039;&#039; is a list of common flags used in Doom and derived games. Using &#039;&#039;&#039;basictype&#039;&#039;&#039; instead of setting individual flags is encouraged, in order to keep up with Eternity engine updates. Other flags may be subsequently added or removed with &#039;&#039;&#039;addflags&#039;&#039;&#039; or &#039;&#039;&#039;remflags&#039;&#039;&#039;. See the [[Thing type flags]] page for a full list. The &#039;&#039;&#039;basictype&#039;&#039;&#039; mnemonics follow:&lt;br /&gt;
:*&#039;&#039;Monster&#039;&#039;&lt;br /&gt;
::An ordinary walking monster with no fancy features.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;SOLID+SHOOTABLE+COUNTKILL+FOOTCLIP+SPACMONSTER+PASSMOBJ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;FlyingMonster&#039;&#039;&lt;br /&gt;
::An ordinary flying monster.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;SOLID+SHOOTABLE+COUNTKILL+NOGRAVITY+FLOAT+SPACMONSTER+PASSMOBJ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;FriendlyHelper&#039;&#039;&lt;br /&gt;
::A player helper with maximum friendliness options.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;SOLID+SHOOTABLE+COUNTKILL+FRIEND+JUMPDOWN+FOOTCLIP+WINDTHRUST+SUPERFRIEND+SPACMONSTER+PASSMOBJ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;Projectile&#039;&#039;&lt;br /&gt;
::A standard projectile.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;NOBLOCKMAP+NOGRAVITY+DROPOFF+MISSILE+NOCROSS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;PlayerProjectile&#039;&#039;&lt;br /&gt;
::A projectile for use by players.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;NOBLOCKMAP+NOGRAVITY+DROPOFF+MISSILE+NOCROSS+SPACMISSILE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;Seeker&#039;&#039;&lt;br /&gt;
::A missile prepared to be fired by homing missile codepointers.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;NOBLOCKMAP+NOGRAVITY+DROPOFF+MISSILE+NOCROSS+SEEKERMISSILE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;SolidDecor&#039;&#039;&lt;br /&gt;
::A solid decorative item.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; SOLID&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;HangingDecor&#039;&#039;&lt;br /&gt;
::A hanging decorative item that is passable even without 3D object clipping.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;SPAWNCEILING+NOGRAVITY&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;SolidHangingDecor&#039;&#039;&lt;br /&gt;
::A solid hanging decorative item.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;SOLID+SPAWNCEILING+NOGRAVITY&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;ShootableDecor&#039;&#039;&lt;br /&gt;
::A shootable decorative item.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;SOLID+SHOOTABLE+NOBLOOD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;Fog&#039;&#039;&lt;br /&gt;
::A fog item such as telefog or item fog.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;NOBLOCKMAP+NOGRAVITY+TRANSLUCENT+NOSPLASH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;Item&#039;&#039;&lt;br /&gt;
::A collectable item. Doesn&#039;t count towards the item score.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; SPECIAL&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;ItemCount&#039;&#039;&lt;br /&gt;
::A collectable item. Counts for item score.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;SPECIAL+COUNTITEM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;TerrainBase&#039;&#039;&lt;br /&gt;
::A TerrainTypes base item.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;NOBLOCKMAP+NOGRAVITY+NOSPLASH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;TerrainChunk&#039;&#039;&lt;br /&gt;
::A TerrainTypes chunk item.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;NOBLOCKMAP+DROPOFF+MISSILE+LOGRAV+NOSPLASH+NOCROSS+CANNOTPUSH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;ControlPoint&#039;&#039;&lt;br /&gt;
::An inert control point.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;NOBLOCKMAP+NOSECTOR+NOGRAVITY&amp;quot;&lt;br /&gt;
::&#039;&#039;&#039;spawnstate&#039;&#039;&#039; S_TNT1 &lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;ControlPointGrav&#039;&#039;&lt;br /&gt;
::An control point that is subject to gravity. Because of this, it&#039;s not considered inert.&lt;br /&gt;
::&#039;&#039;&#039;cflags&#039;&#039;&#039; &amp;quot;DONTDRAW+NOSPLASH&amp;quot;&lt;br /&gt;
::&#039;&#039;&#039;spawnstate&#039;&#039;&#039; S_TNT1&lt;br /&gt;
&lt;br /&gt;
====States====&lt;br /&gt;
*&#039;&#039;&#039;firstdecoratestate&#039;&#039;&#039;&lt;br /&gt;
:Sets the first frame in a sequential list of dummy frames that use the internal Decorate-style defined &#039;&#039;&#039;states&#039;&#039;&#039; of this actor for [[EDF delta structures|framedelta]] compatibility. It&#039;s not required unless the intention is to make the Decorate states of this thing accessible from other thing types. Default games&#039; (Doom, Heretic) thing types use externalized frames for all thing types, for compatibility.&lt;br /&gt;
*&#039;&#039;&#039;states&#039;&#039;&#039;&lt;br /&gt;
{{see|DECORATE state syntax}}&lt;br /&gt;
:Default = nothing&lt;br /&gt;
:Defines frames using [http://zdoom.org/wiki/DECORATE DECORATE]-style state definitions. This means it won&#039;t be necessary to define separate [[frame]] blocks for each individual frame. See the DECORATE reference at the ZDoom wiki for documentation on its syntax. Using the &#039;&#039;&#039;states&#039;&#039;&#039; field instead of any of the ones below results in more concise text, but also the newly created frames won&#039;t be accessible from outside (other thingtypes, Dehacked patches or delta structures), unless you use the &#039;&#039;&#039;firstdecoratestate&#039;&#039;&#039; field as well. Like normally, [[List of codepointers|codepointers]] may or may not be preceded by &#039;&#039;&#039;A_&#039;&#039;&#039;. The DECORATE code has to be implemented via a heredoc: a text string that spans on multiple lines. Unlike a regular string which uses quotation marks, the heredoc is marked by @&amp;quot; and &amp;quot;@ respectively. Example on an imp-like monster (the &#039;=&#039; sign is optional):&lt;br /&gt;
 states =&lt;br /&gt;
   @&amp;quot;&lt;br /&gt;
   Spawn:&lt;br /&gt;
      TROO AB 10 A_Look&lt;br /&gt;
      loop&lt;br /&gt;
   See:&lt;br /&gt;
      TROO AABBCCDD 3 A_Chase&lt;br /&gt;
      loop&lt;br /&gt;
   Pain:&lt;br /&gt;
      TROO H 2&lt;br /&gt;
      TROO H 2 A_Pain&lt;br /&gt;
      goto See&lt;br /&gt;
   Melee:&lt;br /&gt;
   Missile:&lt;br /&gt;
      TROO EF 8 A_FaceTarget&lt;br /&gt;
      TROO G  6 A_TroopAttack&lt;br /&gt;
      goto See   &lt;br /&gt;
   Death:&lt;br /&gt;
      TROO I  8&lt;br /&gt;
      TROO J  8  A_Scream&lt;br /&gt;
      TROO K  6&lt;br /&gt;
      TROO L  6  A_Fall&lt;br /&gt;
      TROO M -1&lt;br /&gt;
      stop&lt;br /&gt;
   XDeath:&lt;br /&gt;
      TROO N    5&lt;br /&gt;
      TROO O    5 A_XScream&lt;br /&gt;
      TROO P    5&lt;br /&gt;
      TROO Q    5 A_Fall&lt;br /&gt;
      TROO RST  5&lt;br /&gt;
      TROO U   -1&lt;br /&gt;
      stop&lt;br /&gt;
   Raise:&lt;br /&gt;
      TROO ML  8&lt;br /&gt;
      TROO KJI 6&lt;br /&gt;
      goto See&lt;br /&gt;
   &amp;quot;@&lt;br /&gt;
*&#039;&#039;&#039;spawnstate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:Sets the frame which a thing starts in when it is spawned. Monsters generally use this frame to stand still and look for targets. If the object is supposed to have any dynamic purpose or be visible, do not leave the &#039;&#039;&#039;spawnstate&#039;&#039;&#039; at S_NULL.&lt;br /&gt;
*&#039;&#039;&#039;seestate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:Sets the frame which a monster will jump to when it sees or hears a target during a [[Look]] (monster standing unawakened) check. If an object is alive and has a seestate, it is considered &#039;&#039;sentient&#039;&#039; by certain game mechanics.&lt;br /&gt;
*&#039;&#039;&#039;painstate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:Sets the frame a thing may randomly enter when it has been injured. If set to S_NULL, the creature will be removed instantly from the game if the random check succeeds.&lt;br /&gt;
*&#039;&#039;&#039;dmg_painstates&#039;&#039;&#039;&lt;br /&gt;
:Default = (nothing)&lt;br /&gt;
:This is a list of one or more damagetype/frame pairs, enclosed in braces. For example:&lt;br /&gt;
 dmg_painstates &lt;br /&gt;
 { &lt;br /&gt;
    Fire, S_HPLAY_FPAIN1,&lt;br /&gt;
    Lava, S_HPLAY_LPAIN1&lt;br /&gt;
 }&lt;br /&gt;
makes the actor go to frame S_HPLAY_FPAIN1 when damaged by fire, or to S_HPLAY_LPAIN1 when harmed by lava. It defaults to its &#039;&#039;&#039;painstate&#039;&#039;&#039; if the damage is of another nature. The damage type of an actor is set up through the &#039;&#039;&#039;mod&#039;&#039;&#039; field.&lt;br /&gt;
*&#039;&#039;&#039;dmg_painstates.add&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;dmg_painstates.remove&#039;&#039;&#039;&lt;br /&gt;
:Can be used for derived actor types, who can have more or fewer specialized pain states than their ancestors. &#039;&#039;Dmg_painstates.add&#039;&#039; has the same format as &#039;&#039;dmg_painstates&#039;&#039;, but &#039;&#039;dmg_painstates.remove&#039;&#039; only lists the damagetypes. For example:&lt;br /&gt;
 dmg_painstates.remove&lt;br /&gt;
 {&lt;br /&gt;
    Fire, lava&lt;br /&gt;
 }&lt;br /&gt;
makes them get hurt normally from fire or lava, without going to special pain states.&lt;br /&gt;
*&#039;&#039;&#039;meleestate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:If this frame is not S_NULL, monsters will have a slightly lower range attack probability and when they are within about 64 units of their target, they will enter this frame to perform a melee attack.&lt;br /&gt;
*&#039;&#039;&#039;missilestate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:If this frame is not S_NULL, monsters chasing a target will randomly enter it to perform a missile attack.&lt;br /&gt;
*&#039;&#039;&#039;deathstate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:When a thing dies normally, it will enter this state. If the state is S_NULL, the thing will disappear forever.&lt;br /&gt;
*&#039;&#039;&#039;dmg_deathstates&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;dmg_deathstates.add&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;dmg_deathstates.remove&#039;&#039;&#039;&lt;br /&gt;
:Defaults = (nothing)&lt;br /&gt;
:These three properties work similar to &#039;&#039;dmg_painstates*&#039;&#039;, in that they allow the object to enter special frames depending on the damage type suffered, but if they die. The formats are the same.&lt;br /&gt;
*&#039;&#039;&#039;xdeathstate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:If a thing dies by taking enough damage that its health is equal to its negated spawnhealth value (or negated 0.5 spawnhealth value in Heretic), it will enter this frame instead of its deathstate. If this frame is S_NULL, the thing will always die normally.&lt;br /&gt;
*&#039;&#039;&#039;raisestate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:If this frame is not S_NULL, a creature running [[VileChase]] codepointers can perform a resurrection on this actor. When this occurs, the actor will enter this frame along with being restored.&lt;br /&gt;
*&#039;&#039;&#039;crashstate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:When a thing with this state dies and then subsequently hits the ground, it will enter this state. If this state S_NULL, it is not used.&lt;br /&gt;
*&#039;&#039;&#039;activestate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:State to enter when triggered by the &#039;&#039;&#039;Thing_Activate&#039;&#039;&#039; parameterized special.&lt;br /&gt;
*&#039;&#039;&#039;inactivestate&#039;&#039;&#039;&lt;br /&gt;
:Default = S_NULL&lt;br /&gt;
:State to enter when triggered by the &#039;&#039;&#039;Thing_Deactivate&#039;&#039;&#039; parameterized special.&lt;br /&gt;
&lt;br /&gt;
====Sounds====&lt;br /&gt;
*&#039;&#039;&#039;seesound&#039;&#039;&#039;&lt;br /&gt;
:Default = none&lt;br /&gt;
:Sets the sound that a monster will play when it awakens. This sound is also played by missiles when they are shot. (Note: &amp;quot;none&amp;quot; is a special mnemonic for no sound) &lt;br /&gt;
*&#039;&#039;&#039;attacksound&#039;&#039;&#039;&lt;br /&gt;
:Default = none&lt;br /&gt;
:Sets a sound used by some monster attacks, including the Lost Soul&#039;s charge, or melee attacks.&lt;br /&gt;
*&#039;&#039;&#039;painsound&#039;&#039;&#039;&lt;br /&gt;
:Default = none&lt;br /&gt;
:Sets the sound played by the Pain codepointer when this thing uses it.&lt;br /&gt;
*&#039;&#039;&#039;deathsound&#039;&#039;&#039;&lt;br /&gt;
:Default = none&lt;br /&gt;
:Sound played by the Scream codepointer. Used to play monster death sounds. &lt;br /&gt;
*&#039;&#039;&#039;activesound&#039;&#039;&#039;&lt;br /&gt;
:Default = none&lt;br /&gt;
:Sets the sound used by a thing when it is wandering around. A thing is given a 3 out of 256 chance (1.17%) of making this sound every time it calls the Chase codepointer. There are some new flags3 flags which can alter the behavior of this sound. &lt;br /&gt;
*&#039;&#039;&#039;activatesound&#039;&#039;&#039;&lt;br /&gt;
:Default = none&lt;br /&gt;
:Sound to play when triggered by the &#039;&#039;&#039;Thing_Activate&#039;&#039;&#039; parameterized special.&lt;br /&gt;
*&#039;&#039;&#039;deactivatesound&#039;&#039;&#039;&lt;br /&gt;
:Default = none&lt;br /&gt;
:Sound to play when triggered by the &#039;&#039;&#039;Thing_Deactivate&#039;&#039;&#039; parameterized special.&lt;br /&gt;
====Basic Stats====&lt;br /&gt;
*&#039;&#039;&#039;spawnhealth&#039;&#039;&#039;&lt;br /&gt;
:Default = 1000&lt;br /&gt;
:Sets a thing&#039;s maximum amount of life.&lt;br /&gt;
*&#039;&#039;&#039;gibhealth&#039;&#039;&#039; &#039;&#039;number&#039;&#039;&lt;br /&gt;
:gibhealth overrides the gamemode default behavior for determining the negative amount of health at which a thing uses its &amp;quot;extreme&amp;quot; death state rather than its normal one. This is ordinarily defined in terms of the spawnhealth (Doom and Strife thingtypes gib at -spawnhealth; Heretic and Hexen thingtypes gib at -(spawnhealth/2).&lt;br /&gt;
:If an inheriting thingtype changes its spawnhealth, it will &amp;quot;lose&amp;quot; the inherited definition of gibhealth from its parent. If changing spawnhealth when inheriting from a thingtype that customizes gibhealth, be sure to re-customize the gibhealth in the inheriting thingtype.&lt;br /&gt;
*&#039;&#039;&#039;reactiontime&#039;&#039;&#039;&lt;br /&gt;
:Default = 8&lt;br /&gt;
:Sets an amount of time that a thing must wait under certain circumstances. Monsters use this value as a means to control their rate of attack. This value is also used as an internal field for varying purposes, but those uses are not editable.  &lt;br /&gt;
*&#039;&#039;&#039;painchance&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:Sets the chance out of 255 that this thing will enter its painstate when it is injured. A thing with 0 painchance will never feel pain, whereas a thing with 255 painchance will always feel pain. If a thing has a painchance greater than zero, it should have a valid painstate, otherwise it will disappear forever. &lt;br /&gt;
*&#039;&#039;&#039;speed&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:Value used by monsters as a movement delta per walking frame. The monster will move by an amount relative to this value each time it uses the Chase codepointer. For missiles, this value is a fixed-point number (multiplied by 65536), and represents a constant speed by which the missile advances every game tic. Missile speed is not affected by the missile frame durations, whereas monster walking speed is.&lt;br /&gt;
:This field also supports floating-point values. When a floating-point value is provided, it will be translated into the corresponding fixed-point value. This means that a value of 10.0 is equivalent to the integer value 655360 (10*65536). It is NOT equivalent to 10. This distinction is very important. Small integer speed values are appropriate for monsters, whereas floating-point values will be suitable only for missiles. &lt;br /&gt;
*&#039;&#039;&#039;fastspeed&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:When the game is switched into Nightmare difficulty or -fast mode is active, all thing types with a non-zero fastspeed will have their speed fields changed to their fastspeed value. This enables editing of the -fast speed of projectiles and monsters. For detailed information on speed, see the speed field itself above. Note: as of EDF 1.2, this field also supports floating-point numbers, with the same meaning as that for the speed field.&lt;br /&gt;
*&#039;&#039;&#039;radius&#039;&#039;&#039;&lt;br /&gt;
:Default = 20.0&lt;br /&gt;
:Floating-point value that represents the radius of this thing type. A thing can fit into corridors which are at least as wide as this value times two, plus one unit (ie a thing with radius 32 can fit into a 65-wide hallway). The maximum value this field *should* have is 64.0 units. However, the game breaks its own rule here, giving several monsters radii up to 128 units. These monsters, which include the Mancubus, Arachnotron, and Spider Demon, exhibit clipping errors which enable other things to walk into them, and which can cause some moving sectors to malfunction. Avoid giving things radii larger than 64.0 to remain absolutely safe. &lt;br /&gt;
*&#039;&#039;&#039;height&#039;&#039;&#039;&lt;br /&gt;
:Default = 16.0&lt;br /&gt;
:Floating-point value that represents the height of this thing type. A thing can fit into areas which are of this exact height or taller. Note that in DOOM, this value is only used to see where a monster can fit relative to walls and floor/ceiling heights. For purposes of clipping against other things, monsters were considered to be infinitely tall. However, Eternity&#039;s extended 3D object clipping enables this field to also be used to allow or disallow things to pass over, under, or stand on this thing. &lt;br /&gt;
*&#039;&#039;&#039;correct_height&#039;&#039;&#039;&lt;br /&gt;
:Default = 0.0&lt;br /&gt;
:Floating-point value that represents a height for this thing type which is corrected for 3D object clipping. When 3D object clipping is enabled and the comp_theights variable is set to off, objects which have a non-zero correct_height field will begin to use this value for their height instead of the normal height field. If an object has the 3DDECORATION flags3 bit set, it will still clip missiles at its original height instead of at this value, so that playability of old maps is not altered. This field will generally only be necessary for old DOOM objects, which have now been assigned correct_height values in the default things.edf module. Use for new objects is discouraged; instead, set the height field above to the proper value.&lt;br /&gt;
*&#039;&#039;&#039;mass&#039;&#039;&#039;&lt;br /&gt;
:Default = 100&lt;br /&gt;
:Normal integer value that serves as a mass factor for this object. Mass affects the amount of thrust an object is given when it is damaged, the amount of effect an archvile&#039;s attack can have on it, and for bouncing objects, the rate at which they fall. Objects with a mass less than 10 will cause small terrain hits when landing on terrain that supports small splashes.&lt;br /&gt;
*&#039;&#039;&#039;respawntime&#039;&#039;&#039;&lt;br /&gt;
:Default = 420&lt;br /&gt;
:Sets the number of gametics before the monster may respawn. A tic is 1/35 of a second.&lt;br /&gt;
*&#039;&#039;&#039;respawnchance&#039;&#039;&#039;&lt;br /&gt;
:Default = 4&lt;br /&gt;
:Sets the chance out of 255 that the monster may respawn after respawntime has passed. The check is done for each tic that the monster isn&#039;t blocked.&lt;br /&gt;
====Damage Properties====&lt;br /&gt;
*&#039;&#039;&#039;damage&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:This number is used as a damage multiplier when a [[Thing type flags|MISSILE]] or SKULLFLY actor hits a SHOOTABLE. The damage formula used for impact damage is: &lt;br /&gt;
       ((rnd % 8) + 1) * damage   &lt;br /&gt;
:This field is also used as a parameter by some parameterized codepointers, including [[Scratch]], [[BetaSkullAttack]] and [[Detonate]]. &lt;br /&gt;
*&#039;&#039;&#039;dmgspecial&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;none&amp;quot;&lt;br /&gt;
:The dmgspecial field allows specification of a special action that will be taken when this object is involved in damaging another object as the inflictor (an inflictor is the object actually doing the damage, and not necessarily the object that is blamed for the damage). Supported values and their meanings are as follows: &lt;br /&gt;
:*&#039;&#039;none&#039;&#039;&lt;br /&gt;
::This is the default value. No special action is taken; the object is normal when damaging other things. &lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;MinotaurCharge&#039;&#039;&lt;br /&gt;
::If the thing is flying like a skull (has flags bit SKULLFLY set), it will inflict a large amount of thrust on the target along the vector of the impact, will hit it directly for ((rnd % 8) + 1) * 6 damage, and if the target is a player, the player&#039;s controls will be frozen for 14 + (rnd % 8) gametics. When the thing is not in SKULLFLY mode, normal damage is done by all attacks. &lt;br /&gt;
&lt;br /&gt;
:*&#039;&#039;Whirlwind&#039;&#039;&lt;br /&gt;
::The target will have its angle and x/y momenta modified by random amounts. If the current level time has the 5th bit (value 16) set and the target is not a boss (possesses the BOSS flag), the target will be given randomized z momentum up to but no greater than 12 units per tic. When the level time is divisible by 8, the target will be hit directly for 3 damage. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;aimshift&#039;&#039;&#039; &#039;&#039;number&#039;&#039;&lt;br /&gt;
:If in the range of 0 to 24, this value overrides the &amp;quot;shift&amp;quot; amount that enemies of this object experience while trying to aim at it due to effects like SHADOW, GHOST, and TOTALINVISIBLE. A larger number in this field makes enemies more inaccurate when aiming at this creature. The default value of -1 means that no aiming inaccuracy is experienced *except* what may be incurred from what flags this monster has. A value larger than 24 will, on the other hand, override the creature&#039;s flags and cause enemies to experience no inaccuracy due to to those flags (so for example a creature inheriting from Spectre and setting its aimshift to 25 will behave as though it does not have the SHADOW flag other than for rendering purposes). Values of 20 and 21 are used by the various built-in flag effects.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;damagefactor&#039;&#039;&#039;&lt;br /&gt;
:This sets up the monster&#039;s resistance to various [[EDF damagetype reference|damage types]] (&amp;quot;means of death&amp;quot;). 0 means invincible, 1 full damage. This property has a distinct syntax: there may be as many &#039;&#039;DamageFactor&#039;&#039; lines as damage resistances. Note that setting the factor to 0 won&#039;t prevent monster retaliation. Example of usage:&lt;br /&gt;
 damagefactor fire, 0.3&lt;br /&gt;
 damagefactor lava, 0.2&lt;br /&gt;
:As seen above, no braces are used, and the arguments are separated by commas.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;topdamage&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:This number is a constant amount of damage inflicted on any shootable object that stands on top of this object when 3D object clipping is active. This is useful for objects such as torches and flaming barrels. The frequency of damage is determined by the topdamagemask field.&lt;br /&gt;
*&#039;&#039;&#039;topdamagemask&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:This number determines how often a thing with a non-zero topdamage field burns objects that are standing on top of it. This number should be a power of two minus 1 to work properly, such as 1, 3, 7, 15, or 31 (31 would be approximately once per second and is used by DOOM&#039;s nukage sector types). New to EDF 1.7. &lt;br /&gt;
*&#039;&#039;&#039;mod&#039;&#039;&#039;&lt;br /&gt;
:Default = UNKNOWN (0)&lt;br /&gt;
:Originally standing for &amp;quot;Means of Death&amp;quot;, this field allows you to associate a &#039;&#039;&#039;[[damagetype]]&#039;&#039;&#039; to an inflictor (such as projectile) thing type. Then, you&#039;ll be able to make other thing types resistant to the given damage type by using the &#039;&#039;&#039;damagefactor&#039;&#039;&#039; field. You can give them specific pain or death states as well. Damage types also have the role in multiplayer to specify what obituaries are shown depending on which weapon the player uses.&lt;br /&gt;
:The mnemonics were initially hard-coded, but are now available inside &#039;&#039;base\things.edf&#039;&#039; as &#039;&#039;&#039;damagetype&#039;&#039;&#039; blocks. Notice that the default damage types (means of death) have been differentiated for each player attack, as well as for the various slime types and whatnot, so as to have the obituaries differentiated. Monsters don&#039;t need new damage types to have new obituaries, because these are defined within the &#039;&#039;&#039;thingtype&#039;&#039;&#039; block. See the two fields below.&lt;br /&gt;
*&#039;&#039;&#039;obituary_normal&#039;&#039;&#039;&lt;br /&gt;
:Default = empty&lt;br /&gt;
:Defines the obituary seen by players when killed by a projectile or other miscellaneous attack by a monster. If the obituary is not defined for this type, it will simply read that the player died. Note that you are only allowed to specify an obituary starting immediately after the player&#039;s name. If you want an obituary to say &amp;quot;Player was flamed&amp;quot;, then simply make the obituary read &amp;quot;was flamed&amp;quot;. &lt;br /&gt;
*&#039;&#039;&#039;obituary_melee&#039;&#039;&#039;&lt;br /&gt;
:Default = empty&lt;br /&gt;
:Defines the obituary seen by players when killed by a monster&#039;s melee attack. If the obituary is not defined for this type, it will simply read that the player died. Note that you are only allowed to specify an obituary starting immediately after the player&#039;s name. If you want an obituary to say &amp;quot;Player was stabbed mercilessly&amp;quot;, then simply make the obituary read &amp;quot;was stabbed mercilessly&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Pain/Death Properties====&lt;br /&gt;
*&#039;&#039;&#039;bloodcolor&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:Allows this thing type to have differently colored blood when particle blood effects are enabled (this does not currently have any effect on blood sprites). Currently available blood color values are as follows: &lt;br /&gt;
     Blood color       Number&lt;br /&gt;
    --------------------------&lt;br /&gt;
     Red (normal)        0&lt;br /&gt;
     Grey                1&lt;br /&gt;
     Green               2&lt;br /&gt;
     Blue                3&lt;br /&gt;
     Yellow              4&lt;br /&gt;
     Black               5&lt;br /&gt;
     Purple              6&lt;br /&gt;
     White               7&lt;br /&gt;
     Orange              8&lt;br /&gt;
    --------------------------&lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;nukespecial&#039;&#039;&#039;&lt;br /&gt;
:Default = NULL&lt;br /&gt;
:This field is the name of a special codepointer to call when the player uses the KILLEM cheat to kill all monsters. Currently only two special pointers are provided for this purpose, PainNukeSpec and SorcNukeSpec. These enable monsters with spawn-on-death actions to either spawn enemies early, or not at all. See the Eternity Engine Definitive Codepointer Reference for detailed information. &lt;br /&gt;
*&#039;&#039;&#039;droptype&#039;&#039;&#039;&lt;br /&gt;
:Default = NONE&lt;br /&gt;
:This field allows the type of thing that is dropped by this thing when it dies to be edited. This field should either be a valid thing type mnemonic, or the special value NONE. &lt;br /&gt;
*&#039;&#039;&#039;cleardropitems&#039;&#039;&#039;&lt;br /&gt;
:The &#039;&#039;&#039;cleardropitems&#039;&#039;&#039; flag, if present, removes ALL dropitems from a thingtype. This is applied *before* any dropitem or droptype fields defined within this thingtype itself. This allows removing all inherited dropitems at once. This field is a flag and does not accept any value. Its presence in a thingtype is not inheritable (things which inherit from this type must again specify cleardropitems if they want to in turn remove any items this type added).&lt;br /&gt;
*&#039;&#039;&#039;dropitem &#039;&#039;type&#039;&#039;, [, &#039;&#039;chance&#039;&#039; [, &#039;&#039;amount&#039;&#039; [, &#039;&#039;toss&#039;&#039;]]]&#039;&#039;&#039;&lt;br /&gt;
:dropitem defines a Doom- or Heretic-style drop item; any number of dropitems can be defined. All are dropped when an enemy dies, subject to possible randomization.&lt;br /&gt;
:*&#039;&#039;type&#039;&#039;: name of EDF thing type to spawn&lt;br /&gt;
:*&#039;&#039;chance&#039;&#039;: If specified, chance between 0 and 255 to spawn this drop, 0 being no chance and 255 being 100%.&lt;br /&gt;
:*&#039;&#039;amount&#039;&#039;: If specified, overrides the &#039;&#039;&#039;dropamount&#039;&#039;&#039; field of an &#039;&#039;&#039;ammoeffect&#039;&#039;&#039; definition. Does not affect any other item effect type. If zero, this field is ignored.&lt;br /&gt;
:*&#039;&#039;toss&#039;&#039;: Flag value. If specified as +toss, the item is a Heretic-style item drop which will be thrown out during the A_Fall action function with randomized velocity. If this flag is not specified, or is specified as -toss, the item is a Doom-style drop item which will be spawned on the floor as soon as the dying thing has reached 0 health.&lt;br /&gt;
:Note: The older &#039;&#039;&#039;droptype&#039;&#039;&#039; field is still supported, and defines a Doom-style dropitem (100% chance, no dropamount override, and never tossed).&lt;br /&gt;
*&#039;&#039;&#039;dropitem.remove&#039;&#039;&#039;&lt;br /&gt;
:removes from this thingtype&#039;s dropitem list the named EDF thingtype. Useful when inheriting.&lt;br /&gt;
*&#039;&#039;&#039;collectionspawn&#039;&#039;&#039; &#039;&#039;thingtype&#039;&#039; [, &#039;&#039;spchance&#039;&#039; [, &#039;&#039;coopchance&#039;&#039; [, &#039;&#039;dmchance&#039;&#039;]]]&lt;br /&gt;
:collectionspawn defines a thingtype at which THIS thingtype will select one instance out of all instances on the map at which to spawn itself at level start.&lt;br /&gt;
:Explanation of collectionspawn multivalue properties:&lt;br /&gt;
:*&#039;&#039;thingtype&#039;&#039;: Name of the EDF thingtype at which to spawn at random. If this is invalid, this collectionspawn definition will be disregarded.&lt;br /&gt;
:*&#039;&#039;spchance&#039;&#039;: if specified, chance this item will spawn at all in single player, from 0 to 255. Default is 255.&lt;br /&gt;
:*&#039;&#039;coopchance&#039;&#039;: if specified, chance this item will spawn at all in coop mode, from 0 to 255. Default is 255.&lt;br /&gt;
:*&#039;&#039;dmchance&#039;&#039;: if specified, chance this item will spawn at all in deathmatch mode, from 0 to 255. Default is 255.&lt;br /&gt;
*&#039;&#039;&#039;itemrespawnat&#039;&#039;&#039; &#039;&#039;thingtype&#039;&#039;&lt;br /&gt;
:itemrespawnat defines an EDF thingtype at which this thingtype will respawn if it becomes subject to Heretic-style item respawning.&lt;br /&gt;
====Flags====&lt;br /&gt;
*&#039;&#039;&#039;cflags&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;&amp;quot;&lt;br /&gt;
:This field allows specification of all the thing&#039;s flag values in one single flag list. When this field is defined, flags, flags2, flags3 and flags4 are ignored. The only caveat to this field is that the &#039;&#039;&#039;flags&#039;&#039;&#039; bit &amp;quot;SLIDE&amp;quot;, which has no effect, cannot be specified in this field. If SLIDE is used, it will activate the &#039;&#039;&#039;flags3&#039;&#039;&#039; bit with the same name, which has the expected effect. All other flags will be assigned to their appropriate internal fields as normal. See the [[Thing type flags]] for their descriptions. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;addflags&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;&amp;quot;&lt;br /&gt;
:This field specifies a combined list of flags to be added to the thing&#039;s existing flags values (this works the same as the cflags field above). Flags in this list are &amp;quot;turned on&amp;quot; in the thing. If flags are listed here which are already &amp;quot;on,&amp;quot; there is no effect on those flags. This field is most useful within thingdelta sections and in concert with thing type inheritance. &lt;br /&gt;
*&#039;&#039;&#039;remflags&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;&amp;quot;&lt;br /&gt;
:This field specifies a combined list of flags to be subtracted from the thing&#039;s existing flags values (this works the same as the cflags field above). Flags in this list are &amp;quot;turned off&amp;quot; in the thing, as if they had never been listed. If flags are listed here which are not already &amp;quot;on,&amp;quot; there is no effect on those flags. This field is most useful within thingdelta sections and in concert with thing type inheritance. This field will be applied &#039;&#039;&#039;AFTER&#039;&#039;&#039; the addflags field is applied, so it could potentially turn off flags turned on by that field. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;flags&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;&amp;quot;&lt;br /&gt;
:This field controls a number of thing type properties using bit flags, where each bit in the field stands for some effect, and has the value of being either on or off. See the [[Thing type flags]] List, for the values which can be used in this field. Remember that if whitespace or disallowed characters are used, this field&#039;s value must be enclosed in quotation marks. &lt;br /&gt;
*&#039;&#039;&#039;flags2&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;&amp;quot;&lt;br /&gt;
:Similar to flags but takes a different set of values with different meanings. See the [[Thing type flags]] List, for the values which can be used in this field. Remember that if whitespace or disallowed characters are used, this field&#039;s value must be enclosed in quotation marks. &lt;br /&gt;
*&#039;&#039;&#039;flags3&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;&amp;quot;&lt;br /&gt;
:Similar to flags, but takes a different set of values with different meanings. See the [[Thing type flags]] List, for the values which can be used in this field. Remember that if whitespace or disallowed characters are used, this field&#039;s value must be enclosed in quotation marks. &lt;br /&gt;
*&#039;&#039;&#039;flags4&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;&amp;quot;&lt;br /&gt;
:Similar to flags, but takes a different set of values with different meanings. See the [[Thing type flags]] List, for the values which can be used in this field. Remember that if whitespace or disallowed characters are used, this field&#039;s value must be enclosed in quotation marks. &lt;br /&gt;
*&#039;&#039;&#039;particlefx&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:This field is a flag field with syntax identical to the flags, flags2, and flags3 fields, but which accepts the following values which control what persistent particle effects are associated with objects of this type: &lt;br /&gt;
     Flag name       Hex Value     Effect&lt;br /&gt;
    --------------------------------------------------------&lt;br /&gt;
     ROCKET          0x00000001    Rocket trail&lt;br /&gt;
     GRENADE         0x00000002    Grenade trail&lt;br /&gt;
     FLIES           0x00000004    Swarm of flies w/ sound&lt;br /&gt;
     BFG             0x00000008    BFG particle swarm&lt;br /&gt;
     FLIESONDEATH    0x00000010    Flies when object dies&lt;br /&gt;
     DRIP            0x00000020    Parameterized drip effect&lt;br /&gt;
     REDFOUNTAIN     0x00010000    Red fountain&lt;br /&gt;
     GREENFOUNTAIN   0x00020000    Green fountain&lt;br /&gt;
     BLUEFOUNTAIN    0x00030000    Blue fountain&lt;br /&gt;
     YELLOWFOUNTAIN  0x00040000    Yellow fountain&lt;br /&gt;
     PURPLEFOUNTAIN  0x00050000    Purple fountain&lt;br /&gt;
     BLACKFOUNTAIN   0x00060000    Black fountain&lt;br /&gt;
     WHITEFOUNTAIN   0x00070000    White fountain&lt;br /&gt;
    --------------------------------------------------------&lt;br /&gt;
:Note that the fountain flag values cannot be combined with each other. Doing so will simply result in another one of the existing fountain colors.     &lt;br /&gt;
:The DRIP effect requires parameters to be specified in a thing&#039;s [[ExtraData]] mapthing block. The parameters to this effect are as follows: &lt;br /&gt;
:*args 0: color (palette index from 0 to 255) &lt;br /&gt;
:*args 1: particle width/height in pixels &lt;br /&gt;
:*args 2: frequency in gametics &lt;br /&gt;
:*args 3: if 1, particles cause terrain hits &lt;br /&gt;
:*args 4: if 1, particles are fullbright &lt;br /&gt;
:Examples: &lt;br /&gt;
    # a single effect&lt;br /&gt;
    particlefx = ROCKET&lt;br /&gt;
    &lt;br /&gt;
    # multiple effects&lt;br /&gt;
    particlefx = BFG+GREENFOUNTAIN&lt;br /&gt;
    &lt;br /&gt;
    # if there are spaces or disallowed characters, you must use quotations&lt;br /&gt;
    particlefx = &amp;quot;BFG + GREENFOUNTAIN&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Graphic Properties====&lt;br /&gt;
*&#039;&#039;&#039;translucency&#039;&#039;&#039;&lt;br /&gt;
:Default = 65536 (100%)&lt;br /&gt;
:This field allows fine, customizable control over a thing&#039;s translucency. This field accepts two types of values. First, it may be given an integer value in the range of 0 to 65536, with 0 being completely invisible, and 65536 being normal. Alternatively, beginning with EDF 1.3, you can provide a percentage value to this field indicating the amount of the foreground sprite that is blended with the background. A percentage value must be a base 10 integer between 0 and 100, with the final digit followed immediately by a &#039;%&#039; character (percent sign). &lt;br /&gt;
&lt;br /&gt;
:Note this effect is mutually exclusive of BOOM-style translucency. If this value is not 65536 (or 100%), and the BOOM translucency flag is turned on for the same thing type, the flag will be turned off at run-time, and this field will take precedence. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;translation&#039;&#039;&#039;&lt;br /&gt;
:Default = 0&lt;br /&gt;
:Sets a translation for the thing&#039;s sprite. Translation tables are 256-byte lumps which can be used to remap any range of colors in a sprite. When this field defaults, no translation will be used. Otherwise, you may either provide a number to access one of the internal player translation tables, or you may provide the name of a translation lump, which must be found between T_START and T_END markers amongst one of the currently loaded wad files. Numeric values for player translations are as follows. All of the player translations remap the pure green range. &lt;br /&gt;
    Number     Color&lt;br /&gt;
    ------------------&lt;br /&gt;
     1        Indigo&lt;br /&gt;
     2        Brown&lt;br /&gt;
     3        Red&lt;br /&gt;
     4        Tomato&lt;br /&gt;
     5        Dirt&lt;br /&gt;
     6        Blue&lt;br /&gt;
     7        Gold&lt;br /&gt;
     8        Felt&lt;br /&gt;
     9        Black&lt;br /&gt;
     10       Purple&lt;br /&gt;
     11       &amp;quot;Vomit&amp;quot;&lt;br /&gt;
     12       Pink&lt;br /&gt;
     13       Cream&lt;br /&gt;
     14       Yellow&lt;br /&gt;
    ------------------&lt;br /&gt;
    &lt;br /&gt;
*&#039;&#039;&#039;skinsprite&#039;&#039;&#039;&lt;br /&gt;
:Default = &amp;quot;noskin&amp;quot;&lt;br /&gt;
:The skinsprite field defines a sprite that will be used to override the sprite value in any frame a thing of this type enters. This allows the creation of thingtypes which behave identically but look different without the creation of any new frames. Note that when things are crushed into gibs, the skinsprite is cleared at that time. If an Archvile resurrects such a thing, the proper skinsprite is then restored.&lt;br /&gt;
*&#039;&#039;&#039;defaultsprite&#039;&#039;&#039;&lt;br /&gt;
:Default = the object&#039;s first spawn state&#039;s sprite&lt;br /&gt;
:Controls the remapping behavior of skins for objects that use more than one sprite. Any frame not using the defaultsprite is ignored for remapping by the skin. If not set, the defaultsprite is adapted from the object&#039;s first spawn state.&lt;br /&gt;
*&#039;&#039;&#039;alphavelocity&#039;&#039;&#039;&lt;br /&gt;
:Default = 0.0&lt;br /&gt;
:If nonzero, the thing&#039;s opacity (alpha value) will raise up to full solidity, or lower to full invisibility, depending on &#039;&#039;&#039;alphavelocity&#039;&#039;&#039;&#039;s sign and quantity per tic. If the &#039;&#039;&#039;CYCLEALPHA&#039;&#039;&#039; [[Thing type flags|flag]] is set, the thing will cycle between visibility and invisibility with this speed.&lt;br /&gt;
*&#039;&#039;&#039;xscale&#039;&#039;&#039;&lt;br /&gt;
:Default = 1.0&lt;br /&gt;
:Sets how much the horizontal component of the sprite is to be scaled.&lt;br /&gt;
*&#039;&#039;&#039;yscale&#039;&#039;&#039;&lt;br /&gt;
:Default = 1.0&lt;br /&gt;
:Sets how much the vertical component of the sprite is to be scaled.&lt;br /&gt;
&lt;br /&gt;
====ACS Spawn Data Sub-Block====&lt;br /&gt;
*&#039;&#039;&#039;acs_spawndata&#039;&#039;&#039;&lt;br /&gt;
:Default = (nothing)&lt;br /&gt;
:This specifies the identification number for various parameterized specials, such as Thing_Spawn or Thing_SpawnNoFog. It also limits the number to a game namespace. For example, by default the Zombieman has&lt;br /&gt;
 acs_spawndata { num 4; modes doom }&lt;br /&gt;
:Heretic objects will use &amp;quot;modes heretic&amp;quot; instead of &amp;quot;modes doom&amp;quot;.&lt;br /&gt;
[[category:EDF]]&lt;br /&gt;
==References==&lt;br /&gt;
This document has content from:&lt;br /&gt;
*New Bifrost features, on Eternity website: http://eternity.mancubus.net/text/bifrost_docs.txt&lt;br /&gt;
*Old documentation&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=ImpMisssileAtk&amp;diff=3509</id>
		<title>ImpMisssileAtk</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=ImpMisssileAtk&amp;diff=3509"/>
		<updated>2015-08-24T07:11:35Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Bloodshedder moved page ImpMisssileAtk to ImpMissileAtk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ImpMissileAtk]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=ImpMissileAtk&amp;diff=3508</id>
		<title>ImpMissileAtk</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=ImpMissileAtk&amp;diff=3508"/>
		<updated>2015-08-24T07:11:35Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Bloodshedder moved page ImpMisssileAtk to ImpMissileAtk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Will play its attack sound. If within melee range, it will cause 5-12 damage to the target. Otherwise, it will shoot a HereticImpShot projectile.&lt;br /&gt;
&lt;br /&gt;
===See also===&lt;br /&gt;
[[List of codepointers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Codepointers]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3499</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3499"/>
		<updated>2015-03-26T06:56:37Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Changed protection level for &amp;quot;DeHackEd / BEX Reference/Weapon Block&amp;quot; ([Edit=Allow only autoconfirmed users] (expires 06:56, 26 June 2015 (UTC)) [Move=Allow only autoconfirmed users] (expires 06:56, 26 June 2015 (UTC)))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3498</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3498"/>
		<updated>2015-03-26T06:56:17Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Protected &amp;quot;DeHackEd / BEX Reference/Weapon Block&amp;quot; ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3497</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3497"/>
		<updated>2015-03-26T06:55:48Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 116.68.144.30 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3495</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3495"/>
		<updated>2015-03-24T17:21:04Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 5.39.42.18 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3493</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3493"/>
		<updated>2015-03-23T16:34:53Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 130.211.152.29 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3491</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3491"/>
		<updated>2015-03-22T07:54:24Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 188.226.170.26 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3489</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3489"/>
		<updated>2015-03-20T19:44:26Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3484</id>
		<title>DeHackEd / BEX Reference/Weapon Block</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=DeHackEd_/_BEX_Reference/Weapon_Block&amp;diff=3484"/>
		<updated>2015-02-01T18:47:38Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 91.106.38.34 (talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This block allows editing of player weapon characteristics.&lt;br /&gt;
{{backto|DeHackEd / BEX Reference}}&lt;br /&gt;
==Syntax==&lt;br /&gt;
A brief explanation of the syntax description:&lt;br /&gt;
&lt;br /&gt;
Items in angle brackets (&amp;lt; &amp;gt;) are required.&lt;br /&gt;
&lt;br /&gt;
Items in square brackets ([ ]) are optional.&lt;br /&gt;
&lt;br /&gt;
All fields in the block are optional. Fields not provided will not be changed. &lt;br /&gt;
&lt;br /&gt;
   Weapon &amp;lt;weapon number&amp;gt;&lt;br /&gt;
   Ammo type = &amp;lt;ammo number&amp;gt;&lt;br /&gt;
   Deselect frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Select frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Bobbing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Shooting frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   Firing frame = &amp;lt;frame number&amp;gt;&lt;br /&gt;
   # The fields below are Eternity extensions&lt;br /&gt;
   Ammo per shot = &amp;lt;number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation of special information: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;weapon number&#039;&#039;&#039; is a weapon type number, which must be one of the following:&lt;br /&gt;
   Number  Weapon type&lt;br /&gt;
   ------------------------&lt;br /&gt;
   0       Fist&lt;br /&gt;
   1       Pistol&lt;br /&gt;
   2       Shotgun&lt;br /&gt;
   3       Chaingun&lt;br /&gt;
   4       Rocket Launcher&lt;br /&gt;
   5       Plasma Rifle&lt;br /&gt;
   6       BFG 9000&lt;br /&gt;
   7       Chainsaw&lt;br /&gt;
   8       Super Shotgun&lt;br /&gt;
&#039;&#039;&#039;ammo number&#039;&#039;&#039; is an ammo type number, which must be one of the following:&lt;br /&gt;
   Number  Ammo type&lt;br /&gt;
   -----------------&lt;br /&gt;
   0       Bullets&lt;br /&gt;
   1       Shells&lt;br /&gt;
   2       Cells&lt;br /&gt;
   3       Rockets&lt;br /&gt;
   5       None&lt;br /&gt;
&lt;br /&gt;
==Fields==&lt;br /&gt;
====Ammo type = &amp;lt;number&amp;gt;====&lt;br /&gt;
The type number, as given above, of the ammo type used by this weapon. Note that 4 is not a valid ammo type; do not use it. Also, in Eternity, any weapon can be safely given ammo type 5, none. In DOOM, giving any weapon other than the fist or chainsaw this type would cause the shotgun&#039;s max ammo to decrease on every use. &lt;br /&gt;
&lt;br /&gt;
====Deselect frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to another weapon or dies. &lt;br /&gt;
&lt;br /&gt;
====Select frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player changes to it. &lt;br /&gt;
&lt;br /&gt;
====Bobbing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon stays in this frame when the player is walking around without firing. &lt;br /&gt;
&lt;br /&gt;
====Shooting frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
A weapon enters this frame when the player hits the fire key. &lt;br /&gt;
&lt;br /&gt;
====Firing frame = &amp;lt;frame number&amp;gt;====&lt;br /&gt;
This frame is used to display muzzle flashes when a weapon is fired. &lt;br /&gt;
&lt;br /&gt;
====Ammo per shot = &amp;lt;number&amp;gt;====&lt;br /&gt;
This field is an Eternity extension which allows editing of the amount of ammo a weapon must have to be fired and uses on each shot (there is no point to these values being separate). Unless enabled through explicit use of this field in DeHackEd, this value is not used by the game engine, for compatibility reasons.&lt;br /&gt;
[[category:dehacked]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3481</id>
		<title>Talk:List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Talk:List_of_codepointers&amp;diff=3481"/>
		<updated>2015-01-31T01:14:10Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 134.249.141.83 (talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I noticed some codepointers, mainly the ones with parameters, have been documented here with type specifiers in them (int, float, string...). While I know they&#039;re there for information purposes, do they actually have this form in the source? Normally all misc1, misc2 and args[] are of type int in the source, so this type naming I think it&#039;s pseudocode at most.--[[User:Printz|Printz]] 05:57, 29 May 2009 (EDT)&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=3432</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=3432"/>
		<updated>2013-04-12T21:20:55Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: test edit/new mysql version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Welcome to the Eternity Engine Wiki== &lt;br /&gt;
 &lt;br /&gt;
The [[Eternity Engine]] [[Wikipedia:Wiki|Wiki]] is a community-maintained documentation resource for the Eternity Engine [[Doom Wiki:Source port|source port]] and everything related to it. It is powered by [[Wikipedia:MediaWiki|MediaWiki]]. Feel free to edit and create articles to help make this a valuable source of knowledge. If you&#039;re not familiar with wiki markup, [[Wikipedia:Wikipedia:How to edit a page#Wiki markup|look here]].&lt;br /&gt;
&lt;br /&gt;
==Articles and areas of interest==&lt;br /&gt;
*[[Eternity Engine]]&lt;br /&gt;
*[[SMMU]]&lt;br /&gt;
*[[Editing reference]]&lt;br /&gt;
*[[List of command line parameters]]&lt;br /&gt;
*[[List of codepointers]]&lt;br /&gt;
*[[Small]]&lt;br /&gt;
*[[MapInfo]]&lt;br /&gt;
*[[Polyobject]]&lt;br /&gt;
*[[3DMidTex tutorial]]&lt;br /&gt;
*[[3DMidTex advanced topics]]&lt;br /&gt;
*[[Portals]]&lt;br /&gt;
*[[Linked portals]]&lt;br /&gt;
&lt;br /&gt;
==Latest version==&lt;br /&gt;
The latest version of the Eternity Engine is currently {{Latest}}.&lt;br /&gt;
&lt;br /&gt;
[http://svn.drdteam.org/eternity/ Daily unofficial SVN builds.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Eternity Wiki]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2887</id>
		<title>List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2887"/>
		<updated>2011-11-20T05:59:29Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This &#039;&#039;&#039;list of codepointers&#039;&#039;&#039; is a list of all the action routines which can be used in [[EDF]] [[frame]]s. The Heretic actions &#039;&#039;can&#039;&#039; be used in Doom based modifications.&lt;br /&gt;
&lt;br /&gt;
=Player guns=&lt;br /&gt;
==Attacks==&lt;br /&gt;
*[[CustomPlayerMelee]]&lt;br /&gt;
*[[FireBFG]]&lt;br /&gt;
*[[FireCGun]]&lt;br /&gt;
*[[FireCustomBullets]]&lt;br /&gt;
*[[FireMissile]]: rocket launcher attack&lt;br /&gt;
*[[FireOldBFG]]: alpha Doom BFG attack&lt;br /&gt;
*[[FirePistol]]&lt;br /&gt;
*[[FirePlasma]]&lt;br /&gt;
*[[FirePlayerMissile]]: custom missile attack&lt;br /&gt;
*[[FireShotgun]]&lt;br /&gt;
*[[FireShotgun2]]: super shotgun attack&lt;br /&gt;
*[[PlayerThunk]] {{deprecated}}&lt;br /&gt;
*[[Punch]]: fist attack&lt;br /&gt;
*[[Saw]]: chainsaw attack&lt;br /&gt;
&lt;br /&gt;
==Control==&lt;br /&gt;
*[[CheckReload]]: super shotgun reload check&lt;br /&gt;
*[[CheckReloadEx]]: extended version that allows counter comparison&lt;br /&gt;
*[[JumpIfNoAmmo]]: as it says&lt;br /&gt;
*[[Lower]]: &amp;quot;lower&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[Raise]]: &amp;quot;raise&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[ReFire]]: skip frame if shooting is maintained (plasma gun cooldown effect)&lt;br /&gt;
*[[WeaponReady]]: &amp;quot;bob&amp;quot; effect, ready frame&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
*[[EjectCasing]]: throw casing&lt;br /&gt;
&lt;br /&gt;
==Muzzle flash effects==&lt;br /&gt;
*[[GunFlash]]: produces gunflash sprite without firing anything&lt;br /&gt;
*[[Light0]]: resets the muzzle light level&lt;br /&gt;
*[[Light1]]: muzzle light level 1&lt;br /&gt;
*[[Light2]]&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[BFGSound]]&lt;br /&gt;
*[[CloseShotgun2]]: this one also includes ReFire&lt;br /&gt;
*[[LoadShotgun2]]: ...these two don&#039;t&lt;br /&gt;
*[[OpenShotgun2]]&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[PlayerStartScript]]: start map script&lt;br /&gt;
*[[WeaponCopyCtr]]&lt;br /&gt;
*[[WeaponCtrOp]]&lt;br /&gt;
*[[WeaponCtrJump]]&lt;br /&gt;
*[[WeaponCtrSwitch]]&lt;br /&gt;
*[[WeaponSetCtr]]&lt;br /&gt;
&lt;br /&gt;
=Map objects=&lt;br /&gt;
==Flashes and booms==&lt;br /&gt;
*[[BFG11KHit]]: [[SMMU]] BFG variant&lt;br /&gt;
*[[BFGBurst]]: produce a burst of smaller plasma objects&lt;br /&gt;
*[[BFGSpray]]: BFG explosion afterglow&lt;br /&gt;
*[[BouncingBFG]]: SMMU bouncing BFG&lt;br /&gt;
*[[BrainExplode]]: brain perpetual explosion controller&lt;br /&gt;
*[[BrainScream]]: giant demon wall explosion sequence&lt;br /&gt;
*[[Detonate]]: thing damage controlled explosion&lt;br /&gt;
*[[Explode]]: rocket/barrel splash damage&lt;br /&gt;
*[[Fire]]: stick on the face of attacker&#039;s target, like the vile fire&lt;br /&gt;
*[[GenTracer]]: generic tracer&lt;br /&gt;
*[[Mushroom]]: mushroom explosion&lt;br /&gt;
*[[Nailbomb]]: explosion with shrapnels&lt;br /&gt;
*[[SpawnFly]]: spawn cube controller&lt;br /&gt;
*[[Tracer]]: one of the required components for homing missiles&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastPuff]]: weredragon fire belch smoke&lt;br /&gt;
*[[BlueSpark]]: create a blue d&#039;sparil attack spark&lt;br /&gt;
*[[GenWizard]]: create a disciple&lt;br /&gt;
*[[HticExplode]]: heretic-compatible explosion&lt;br /&gt;
*[[HticTracer]]: like those golem skulls&lt;br /&gt;
*[[LichFireGrow]]: how the fire column expands&lt;br /&gt;
*[[LichIceImpact]]: how an ice globe explodes into shards&lt;br /&gt;
*[[MntrFloorFire]]: used by the straight flame snake&lt;br /&gt;
*[[PhoenixPuff]]: missile trail&lt;br /&gt;
*[[PodPain]]: pod goo splash on being hit&lt;br /&gt;
*[[VolcBallImpact]]: how a volcano ball fragments on impact&lt;br /&gt;
*[[WhirlwindSeek]]: used by the tornados&lt;br /&gt;
&lt;br /&gt;
==AI==&lt;br /&gt;
*[[AlertMonsters]]: shout so other monsters chase the player&lt;br /&gt;
*[[Chase]]: pursue a target and check for attack&lt;br /&gt;
*[[CPosRefire]]: go to seestate if target is out of sight&lt;br /&gt;
*[[Face]]: face a specified angle&lt;br /&gt;
*[[FaceTarget]]: turn to target, look around it if it&#039;s partly invisible&lt;br /&gt;
*[[GenRefire]]: customizable refire control&lt;br /&gt;
*[[KeepChasing]]: pursue target without attacking&lt;br /&gt;
*[[Look]]: stand in guard, looking for targets&lt;br /&gt;
*[[RandomWalk]]: random wandering for inactive enemies&lt;br /&gt;
*[[Sor1Chase]]: d&#039;sparil mount specific chase&lt;br /&gt;
*[[Sor1Pain]]: d&#039;sparil mount specific twitch. Calls Pain.&lt;br /&gt;
*[[SpidRefire]]: like CPosRefire, slightly modified&lt;br /&gt;
*[[Turn]]: turn around a specified angle&lt;br /&gt;
*[[VileChase]]: same as Chase, but resurrecting encountered cadavers&lt;br /&gt;
&lt;br /&gt;
==AI attacks==&lt;br /&gt;
*[[BetaSkullAttack]]: remote melee attack&lt;br /&gt;
*[[BrainSpit]]: cube spawn&lt;br /&gt;
*[[BruisAttack]]: baron/knight of hell&lt;br /&gt;
*[[BspiAttack]]: arachnotron&lt;br /&gt;
*[[BulletAttack]]: custom bullet shooting&lt;br /&gt;
*[[CPosAttack]]: pistol attack w/ shotgn noise&lt;br /&gt;
*[[CyberAttack]]: rocket launching&lt;br /&gt;
*[[FatAttack1]]: mancubus left attack&lt;br /&gt;
*[[FatAttack2]]: mancubus right attack&lt;br /&gt;
*[[FatAttack3]]: mancubus front attack&lt;br /&gt;
*[[HeadAttack]]: cacodemon&lt;br /&gt;
*[[MissileAttack]]: custom missile shooting&lt;br /&gt;
*[[MissileSpread]]: MissileAttack variation, supports shooting spread shots&lt;br /&gt;
*[[PainAttack]]: elemental&lt;br /&gt;
*[[PainDie]]: elemental death (3 souls)&lt;br /&gt;
*[[PosAttack]]: former human&lt;br /&gt;
*[[SargAttack]]: demon bite&lt;br /&gt;
*[[Scratch]]: custom melee attack&lt;br /&gt;
*[[SkelFist]]: revenant punch&lt;br /&gt;
*[[SkelMissile]]: revenant missile&lt;br /&gt;
*[[SkullAttack]]: flying skull&lt;br /&gt;
*[[SPosAttack]]: sergeant&lt;br /&gt;
*[[ThingSummon]]: customized summoning&lt;br /&gt;
*[[TroopAttack]]: imp&lt;br /&gt;
*[[VileAttack]]: arch vile toss&lt;br /&gt;
*[[VileTarget]]: spawn a vile fire effect on target&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastAttack]]: weredragon&lt;br /&gt;
*[[ClinkAttack]]: sabre&lt;br /&gt;
*[[ImpChargeAtk]]: gargoyle charge&lt;br /&gt;
*[[ImpMeleeAtk]]: gargoyle scratch&lt;br /&gt;
*[[ImpMisssileAtk]]: gargoyle fire&lt;br /&gt;
*[[KnightAttack]]: undead warrior&lt;br /&gt;
*[[LichAttack]]: iron lich random attack **only one which includes ice globes**&lt;br /&gt;
*[[LichFire]]: iron lich fire column&lt;br /&gt;
*[[LichWhirlwind]]: iron lich tornado&lt;br /&gt;
*[[MinotaurAtk1]]: maulotaur melee damage&lt;br /&gt;
*[[MinotaurAtk2]]: spreadshot&lt;br /&gt;
*[[MinotaurAtk3]]: straight flame snake&lt;br /&gt;
*[[MinotaurCharge]]: maulotaur charge&lt;br /&gt;
*[[MinotaurDecide]]: maulotaur ranged attack choosing&lt;br /&gt;
*[[MummyAttack]]: golem melee&lt;br /&gt;
*[[MummyAttack2]]: nitrogolem range&lt;br /&gt;
*[[SnakeAttack]]: ophidian blue spark&lt;br /&gt;
*[[SnakeAttack2]]: ophidian yellow shot&lt;br /&gt;
*[[Srcr1Attack]]: d&#039;sparil mount attack&lt;br /&gt;
*[[Srcr2Attack]]: d&#039;sparil sorcerer attack&lt;br /&gt;
*[[Srcr2Decide]]: d&#039;sparil decide whether to teleport&lt;br /&gt;
*[[VolcanoBlast]]: volcano burst&lt;br /&gt;
*[[WizardAtk3]]: disciple tri-ball&lt;br /&gt;
&lt;br /&gt;
==Alterations==&lt;br /&gt;
*[[BossDeath]]: special monster death functions (such as Baron death in E1M8)&lt;br /&gt;
*[[BrainDie]]: exits the level&lt;br /&gt;
*[[CasingThrust]]: movement for ejected casing&lt;br /&gt;
*[[Die]]: causes suicide&lt;br /&gt;
*[[FadeIn]]: increments alpha&lt;br /&gt;
*[[FadeOut]]: decrements alpha, DOESN&#039;T destroy the thing&lt;br /&gt;
*[[Fall]]: remove SOLID flag (used on dying monsters)&lt;br /&gt;
*[[KeenDie]]: open 666-tagged doors on death of all like-named monsters&lt;br /&gt;
*[[KillChildren]]: destroy all summoned things&lt;br /&gt;
*[[LineEffect]]: activate a tag using a special&lt;br /&gt;
*[[PainNukeSpec]]&lt;br /&gt;
*[[SetFlags]]: alter flags&lt;br /&gt;
*[[SetTranslucent]]: modify alpha amount; setup additiveness or fuzziness&lt;br /&gt;
*[[ShowMessage]]: display text message&lt;br /&gt;
*[[Spawn]]: create another object on top of this one&lt;br /&gt;
*[[SteamSpawn]]: create steam effects&lt;br /&gt;
*[[Stop]]: set velocity to 0&lt;br /&gt;
*[[UnSetFlags]]: alter flags&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[AccelGlitter]]: accelerate upwards&lt;br /&gt;
*[[DripBlood]]: spawn heretic blood&lt;br /&gt;
*[[HticBossDeath]]: special monster death functions for Heretic&lt;br /&gt;
*[[ImpDeath]]: special death for gargoyle&lt;br /&gt;
*[[ImpExplode]]: crash for gargoyle&lt;br /&gt;
*[[ImpXDeath1]]: special extreme death for gargoyle, stage 1&lt;br /&gt;
*[[ImpXDeath2]]: special extreme death for gargoyle, stage 2&lt;br /&gt;
*[[MakePod]]: generate a pod&lt;br /&gt;
*[[MummySoul]]: create raising soul&lt;br /&gt;
*[[PlayerSkull]]: player death effect, when the skull tosses in air&lt;br /&gt;
*[[RemovePod]]: notifies the generator that this pod was destroyed&lt;br /&gt;
*[[Sor2DthInit]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[Sor2DthLoop]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[SorcererRise]]: d&#039;sparil waking up after mount crash&lt;br /&gt;
*[[SorcNukeSpec]]&lt;br /&gt;
*[[SpawnAbove]]: spawns above the summoner&lt;br /&gt;
*[[SpawnGlitter]]: create teleportation sparkle&lt;br /&gt;
*[[WizardAtk1]]: face target and clear GHOST flag&lt;br /&gt;
*[[WizardAtk2]]: face target and set GHOST flag&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[AmbientThinker]]: ambient sound maintenance&lt;br /&gt;
*[[BabyMetal]]: bspwlk sound effect -- also includes Chase!&lt;br /&gt;
*[[BrainAwake]]: loud bossit sound effect&lt;br /&gt;
*[[BrainPain]]: loud bospn sound effect&lt;br /&gt;
*[[FatRaise]]: mancubus warning -- also includes FaceTarget&lt;br /&gt;
*[[FireCrackle]]: flame sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[Hoof]]: cyberdemon hoof sound -- also includes Chase!&lt;br /&gt;
*[[Metal]]: metal sound effect -- also includes Chase!&lt;br /&gt;
*[[Pain]]: play pain sound&lt;br /&gt;
*[[PlayerScream]]: player-specific, health-dependent (death) sound&lt;br /&gt;
*[[PlaySound]]: custom sound&lt;br /&gt;
*[[PlaySoundEx]]: extended custom sound&lt;br /&gt;
*[[Scream]]: play death sound&lt;br /&gt;
*[[SkelWhoosh]]: revenant swing noise -- also includes FaceTarget&lt;br /&gt;
*[[SpawnSound]]: boscub sound effect -- also includes SpawnFly&lt;br /&gt;
*[[StartFire]]: flamst sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[VileStart]]: archvile heat-up noise&lt;br /&gt;
*[[XScream]]: extreme death gut noise&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[AproxDistance]]: assign distance from target to a variable&lt;br /&gt;
*[[CheckPlayerDone]]: jump to a frame if not under player control&lt;br /&gt;
*[[CopyCounter]]: copy a variable to another variable&lt;br /&gt;
*[[CounterJump]]: counter-based next frame&lt;br /&gt;
*[[CounterOp]]: set a variable to an operation of another 2 variables&lt;br /&gt;
*[[CounterSwitch]]: counter-based set of frames&lt;br /&gt;
*[[HealthJump]]: health-based next frame&lt;br /&gt;
*[[JumpIfTargetInLOS]]: jump to frame if target is in the field of view&lt;br /&gt;
*[[RandomJump]]: random next frame&lt;br /&gt;
*[[SetCounter]]: set a variable&lt;br /&gt;
*[[SetTics]]: set frame duration&lt;br /&gt;
*[[StartScript]]: run map script&lt;br /&gt;
*[[TargetJump]]: go to designated frame if having a target&lt;br /&gt;
&lt;br /&gt;
[[Category:Codepointers|*]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=ExtraData&amp;diff=2886</id>
		<title>ExtraData</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=ExtraData&amp;diff=2886"/>
		<updated>2011-11-20T05:58:25Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 95.227.195.85 (talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ExtraData is a new data specification language for the [[Eternity Engine]] that allows arbitrary extension of mapthings, lines, and sectors with any number of new fields, with data provided in more or less any format. The use of a textual input language forever removes any future problems caused by binary format limitations. The ExtraData parser is based on the libConfuse configuration file parser library by Martin Hedenfalk, which is also used by GFS and EDF. &lt;br /&gt;
&lt;br /&gt;
Each section in this document deals with one of the ExtraData constructs, as well as how to embed ExtraData in a WAD and how to associate it with a given map. &lt;br /&gt;
&lt;br /&gt;
ExtraData will continue to be supported in future versions of Eternity, even though it will soon be superceded by support for the [[Universal Doom Map Format]].&lt;br /&gt;
&lt;br /&gt;
=General Syntax=&lt;br /&gt;
&#039;&#039;See [[EDF#Syntax|EDF Syntax]], as it is the same.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Embedding and Associating ExtraData =&lt;br /&gt;
&lt;br /&gt;
ExtraData is embedded directly as a text script into a lump of any name. This can be done with any number of wad file management tools, such as SLumpEd, SLADE 3, or XWE. &lt;br /&gt;
&lt;br /&gt;
An ExtraData script is associated with a map via use of the [[MapInfo]] variable &#039;&#039;&#039;extradata&#039;&#039;&#039;. A map can only have one ExtraData script, but it is possible for multiple maps to share the same script. &lt;br /&gt;
&lt;br /&gt;
Example of ExtraData specification via EMAPINFO: &lt;br /&gt;
   [MAP01]&lt;br /&gt;
   extradata = EDLUMP01&lt;br /&gt;
&lt;br /&gt;
=Mapthings =&lt;br /&gt;
&lt;br /&gt;
Mapthings define monsters, lamps, control points, items, etc -- anything that is spawned on the map at level start. &lt;br /&gt;
&lt;br /&gt;
Each field in the mapthing definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of mapthing definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify mapthing records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Control Objects ==&lt;br /&gt;
&lt;br /&gt;
Mapthing records in ExtraData are only associated with a special control object that must be placed on the map in the usual manner. &lt;br /&gt;
&lt;br /&gt;
The ExtraData control object has a &#039;&#039;&#039;doomednum&#039;&#039;&#039; of 5004. Each control object specifies its corresponding ExtraData mapthing record number as an integer value in its mapthing &#039;&#039;&#039;options&#039;&#039;&#039; field. If your editor does not allow entering arbitrary values into the options field of mapthings, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the options field. Check your editor&#039;s documentation or user interface to verify if it supports this. &lt;br /&gt;
&lt;br /&gt;
The x, y, and angle fields of the ExtraData control object are passed on to the thing which will be spawned at the control point&#039;s location, so those fields of the control object should be set normally. The true type and options fields of the thing to be spawned, along with any extended fields, are specified in the ExtraData record. &lt;br /&gt;
&lt;br /&gt;
Any number of ExtraData control objects can reference the same ExtraData record. In the event that a control object references a non-existent ExtraData record, the ExtraData script for a level is missing, or the thing type referenced by an ExtraData record isn&#039;t valid, an [[Unknown]] thing will be spawned at the control point&#039;s location.  Note that you cannot spawn ExtraData control objects using ExtraData. Attempting this will also result in an Unknown thing. &lt;br /&gt;
&lt;br /&gt;
==Mapthing Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData mapthing record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 mapthing&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are normal mapthing fields&lt;br /&gt;
   type      &amp;lt;doomednum&amp;gt; OR &amp;lt;EDF thingtype mnemonic&amp;gt;&lt;br /&gt;
   options   &amp;lt;options flag list&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions&lt;br /&gt;
   tid       &amp;lt;number&amp;gt;&lt;br /&gt;
   args      { &amp;lt;special field&amp;gt;, ... }&lt;br /&gt;
   height    &amp;lt;number&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields:=== &lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData control objects must use to associate themselves with a mapthing record. Every ExtraData mapthing record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 65535 inclusive. Some editors may only allow input of numbers up to 32767 in the mapthing options field, or may treat values above 32767 as negative numbers. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====type====&lt;br /&gt;
Default: No meaningful default value; an Unknown thing will be spawned if not valid.&lt;br /&gt;
&lt;br /&gt;
This field specifies the type of object to spawn at the location and angle of ExtraData control objects using this record. This field can accept one of two types of values. The first is a normal thingtype doomednum as specified via [[EDF]] and used by all editors. For example, the DOOM Imp&#039;s doomednum is 3001. &lt;br /&gt;
&lt;br /&gt;
This field can also accept EDF thingtype mnemonics. EDF thingtype mnemonics must be prefixed with &#039;&#039;thing:&#039;&#039; -- this allows the parser to know it is dealing with a string instead of a number. EDF thingtypes must have a unique doomednum to be specified in an ExtraData mapthing record. If the specified EDF thingtype doesn&#039;t exist or has a doomednum of -1, an Unknown object will be spawned instead. &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
    mapthing { type 3001 }          // This record specifies an Imp via its doomednum&lt;br /&gt;
    &lt;br /&gt;
    mapthing { type DoomImp } // This record specifies an Imp by its EDF mnemonic&lt;br /&gt;
    &lt;br /&gt;
====options====&lt;br /&gt;
Default: No flags are set by default. &lt;br /&gt;
&lt;br /&gt;
This field specifies the options (also known as mapthing flags). This field uses the same syntax as BEX/EDF flag strings, but the syntax will be reviewed here for completeness. &lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. In ExtraData, if a flag list contains whitespace, commas, or plus signs, it must be enclosed in double or single quotations. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
    Flag name   Meaning&lt;br /&gt;
    ------------------------------------------------------------------------------&lt;br /&gt;
    EASY        Thing appears in easy difficulties&lt;br /&gt;
    NORMAL      Thing appears in &amp;quot;Hurt Me Plenty&amp;quot;&lt;br /&gt;
    HARD        Thing appears in Ultra-Violence and Nightmare&lt;br /&gt;
    AMBUSH      Thing is &amp;quot;deaf&amp;quot;, will not wake up via sound&lt;br /&gt;
    NOTSINGLE   Thing doesn&#039;t appear in single-player mode&lt;br /&gt;
    NOTDM       Thing doesn&#039;t appear in deathmatch&lt;br /&gt;
    NOTCOOP     Thing doesn&#039;t appear in cooperative multiplayer&lt;br /&gt;
    FRIEND      Thing uses MBF friendly logic&lt;br /&gt;
    DORMANT     Thing is dormant at map startup (script feature)&lt;br /&gt;
    ------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
The mapthing options value 256 (0x0100) is reserved. If this bit is set, all BOOM, MBF, and Eternity extended mapthing bits will be cleared. This is to guard against editors like Hellmaker which set all bits they do not understand, instead of leaving them zero. &lt;br /&gt;
&lt;br /&gt;
Example options fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    mapthing { options EASY|NORMAL|HARD }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    mapthing { options &amp;quot;EASY NORMAL HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY | NORMAL | HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY+NORMAL+HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY + NORMAL + HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY,NORMAL,HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY, NORMAL, HARD&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====tid====&lt;br /&gt;
Default: 0 &lt;br /&gt;
&lt;br /&gt;
The TID, or &amp;quot;Thing ID&amp;quot;, is a tag for mapthings which is used for identification in [[Small]] scripts. TID values must be positive numbers between 1 and 65535. The TID value zero means no TID. Negative TID values are reserved and are used to indicate special things within the engine. TIDs are not required to be unique, and most Small functions that accept TIDs will perform an action on all mapthings which bear the same TID. Things spawned within Small scripts can also be given TIDs. &lt;br /&gt;
&lt;br /&gt;
====args====&lt;br /&gt;
Default: All args values default to zero. &lt;br /&gt;
&lt;br /&gt;
The args field is a list of up to five special values which can have a broad range of meanings. Any values not provided in the args list will default, and if more than five values are provided, only the first five will be used. Currently, all args values are interpreted as integers (a non-number string evaluates to zero). This may change in the future. &lt;br /&gt;
&lt;br /&gt;
Example args list: &lt;br /&gt;
    mapthing { args { 0, 1, 2, 3, 4 } }&lt;br /&gt;
    &lt;br /&gt;
====height====&lt;br /&gt;
Default: 0 &lt;br /&gt;
&lt;br /&gt;
For normal objects, this field indicates a distance above the floor that the thing will spawn at level start. For objects with the SPAWNCEILING flag, this field indicates a distance below the ceiling instead. This field will have no effect on objects which spawn at a randomized height.&lt;br /&gt;
&lt;br /&gt;
=Linedefs =&lt;br /&gt;
&lt;br /&gt;
Linedefs define walls, two-sided textures, and provide action triggers within maps. &lt;br /&gt;
&lt;br /&gt;
Each field in the linedef definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of linedef definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify linedef records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Linedefs ==&lt;br /&gt;
&lt;br /&gt;
Linedef records in ExtraData are associated either with lines which bear the ExtraData Control Line Special (270), or with any linedef in a DOOM-format map which uses a parameterized line special. You can place the 270 special, as well as parameterized special numbers, into the normal &amp;quot;special&amp;quot; field of a line using virtually any map editor. Editors with Eternity-specific configurations should support these specials natively.&lt;br /&gt;
&lt;br /&gt;
Each control linedef (or directly-used parameterized special) specifies its corresponding ExtraData linedef record number as an integer value in its linedef tag field. If your editor does not allow entering arbitrary values up to 32767 into the tag field of linedefs, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the tag field. Check your editor&#039;s documentation or user interface to verify if it supports this. &lt;br /&gt;
&lt;br /&gt;
The flags, sidedefs, textures, and location of the ExtraData control linedef are used normally by the line and cannot be altered from within ExtraData. The true special (if 270 is used) and tag fields of the linedef, along with any extended fields, are specified in the ExtraData record which the control linedef references. &lt;br /&gt;
&lt;br /&gt;
Any number of linedefs can reference the same ExtraData record. In the event that a control linedef references a non-existent ExtraData record or the ExtraData script for a level is missing, the special and tag of the ExtraData control linedef will both be set to zero. &lt;br /&gt;
&lt;br /&gt;
==Linedef Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData linedef record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 linedef&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are normal linedef fields&lt;br /&gt;
   special &amp;lt;number&amp;gt; OR &amp;lt;special name&amp;gt;&lt;br /&gt;
   tag &amp;lt;number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions&lt;br /&gt;
   extflags &amp;lt;extended line flags list&amp;gt;&lt;br /&gt;
   args { &amp;lt;special field&amp;gt;, ... }&lt;br /&gt;
   alpha &amp;lt;number&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields: ===&lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData control linedefs must use to associate themselves with a linedef record. Every ExtraData linedef record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 32767 inclusive. Some editors may only allow input of numbers up to 255 in the linedef tag field. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====special====&lt;br /&gt;
:&#039;&#039;Default: 0 &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The special field determines what [[Linedef_types|type of action]] may be taken when a line is crossed, used, shot, etc. There are three types of linedef specials in Eternity: normal, generalized, and parameterized. Parameterized specials use the &#039;&#039;&#039;args&#039;&#039;&#039; field documented below to provide complete customization of line actions. &lt;br /&gt;
&lt;br /&gt;
This field can accept numbers for any special type, including generalized and parameterized, but it can also accept special names for parameterized line types. See the [[Detailed parameterized linedef specification]] for a complete list of the available names.&lt;br /&gt;
&lt;br /&gt;
====tag====&lt;br /&gt;
:&#039;&#039;Default: 0 &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The tag of the linedef, used by DOOM-style line specials and sector effects.&lt;br /&gt;
&lt;br /&gt;
====extflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies extended linedef flag values which impact the functionality of parameterized linedef specials. This field uses the same syntax as BEX/EDF flag strings, but the syntax will be reviewed here for completeness. &lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. In ExtraData, if a flag list contains whitespace, commas, or plus signs, it must be enclosed in double or single quotations. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
    Flag name   Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    CROSS       Linedef can be activated by being crossed.&lt;br /&gt;
    USE         Linedef can be activated by being used.&lt;br /&gt;
    IMPACT      Linedef can be activated by being shot.&lt;br /&gt;
    PUSH        Linedef can be activated by being pushed.&lt;br /&gt;
    PLAYER      Linedef can be activated by players.&lt;br /&gt;
    MONSTER     Linedef can be activated by objects with SPACMONSTER flag.&lt;br /&gt;
    MISSILE     Linedef can be activated by objects with SPACMISSILE flag.&lt;br /&gt;
    REPEAT      Linedef action is repeatable.&lt;br /&gt;
    1SONLY      Linedef can only be activated from first side.&lt;br /&gt;
    ADDITIVE    Linedef&#039;s midtexture is drawn with additive blending.&lt;br /&gt;
    BLOCKALL    Linedef will block everything that can be clipped.&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
Notes: IMPACT is currently only implemented for bullet weapons. The ability to use IMPACT with MISSILE will be added in the near future. The PUSH style of activation is not implemented at all yet, so this flag currently does nothing. &lt;br /&gt;
&lt;br /&gt;
Example flags fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    linedef { extflags CROSS|PLAYER|MISSILE|REPEAT }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    linedef { extflags &amp;quot;CROSS PLAYER MISSILE REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS | PLAYER | MISSILE | REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS+PLAYER+MISSILE+REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS + PLAYER + MISSILE + REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS,PLAYER,MISSILE,REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS, PLAYER, MISSILE, REPEAT&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====args====&lt;br /&gt;
:&#039;&#039;Default: All args values default to zero. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The args field is a list of up to five special values which can have a broad range of meanings. Any values not provided in the args list will default, and if more than five values are provided, only the first five will be used. Currently, all args values are interpreted as integers (a non-number string evaluates to zero). This may change in the future. The args list is used by parameterized linedef specials. &lt;br /&gt;
&lt;br /&gt;
Example args list: &lt;br /&gt;
    linedef { args { 0, 1, 2, 3, 4 } }&lt;br /&gt;
&lt;br /&gt;
====alpha====&lt;br /&gt;
:&amp;quot;Default: Alpha defaults to 1.0.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The alpha field takes a value from 0.0 to 1.0 to set the opacity at which this linedef&#039;s midtexture is drawn. When combined with the ADDITIVE extflag, this can be used for additive-blended translucency as well.&lt;br /&gt;
&lt;br /&gt;
=Sectors=&lt;br /&gt;
&lt;br /&gt;
Sectors define distinct areas of the map that are bordered by linedefs, with floor and ceiling properties, lighting data, and specials. &lt;br /&gt;
&lt;br /&gt;
Each field in the sector definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of sector definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify sector records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Sectors==&lt;br /&gt;
&lt;br /&gt;
Sector records in ExtraData are associated with lines which bear the ExtraData Sector Control Special (401). The linedef&#039;s front side sector is the map sector that will receive properties from the ExtraData record which is specified by number in the linedef&#039;s tag.&lt;br /&gt;
&lt;br /&gt;
Since ExtraData is attached to sectors via linedefs and not through overriding any of the sectors&#039; native fields, you specify all of the normal data for a sector in the map itself, and overriding that data through ExtraData sector records is not supported.&lt;br /&gt;
&lt;br /&gt;
Any number of linedefs can reference the same ExtraData sector record. In the event that a control linedef references a non-existent ExtraData record or the ExtraData script for a level is missing, the tag of the ExtraData sector control linedef will be set to zero and will otherwise be ignored.&lt;br /&gt;
&lt;br /&gt;
==Sector Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData sector record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 sector&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions to sector data&lt;br /&gt;
   flags &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   flags.add &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   flags.remove &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   damage &amp;lt;integer&amp;gt;&lt;br /&gt;
   damagemask &amp;lt;integer&amp;gt;&lt;br /&gt;
   damagemod &amp;lt;method of damage type&amp;gt;&lt;br /&gt;
   damageflags &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   damageflags.add &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   damageflags.remove &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   floorterrain &amp;lt;terrain name&amp;gt;&lt;br /&gt;
   floorangle &amp;lt;float&amp;gt;  &lt;br /&gt;
   flooroffsetx &amp;lt;float&amp;gt;&lt;br /&gt;
   flooroffsety &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingterrain &amp;lt;terrain name&amp;gt;&lt;br /&gt;
   ceilingangle &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingoffsetx &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingoffsety &amp;lt;float&amp;gt;&lt;br /&gt;
   colormaptop &amp;lt;lump name&amp;gt;&lt;br /&gt;
   colormapmid &amp;lt;lump name&amp;gt;&lt;br /&gt;
   colormapbottom &amp;lt;lump name&amp;gt;&lt;br /&gt;
   portalflags.floor &amp;lt;portal flags list&amp;gt;&lt;br /&gt;
   portalflags.ceiling &amp;lt;portal flags list&amp;gt;&lt;br /&gt;
   overlayalpha.floor &amp;lt;percentage or value from 0 to 255&amp;gt;&lt;br /&gt;
   overlayalpha.ceiling &amp;lt;percentage or value from 0 to 255&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields: ===&lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData sector control linedefs must use to associate themselves with a sector record. Every ExtraData sector record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 32767 inclusive. Some editors may only allow input of numbers up to 255 in the linedef tag field. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====flags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies sector flag values which specify various properties of sectors. This field uses the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    SECRET        Sector is secret&lt;br /&gt;
    FRICTION      Sector has friction enabled, if targeted by a BOOM friction transfer line&lt;br /&gt;
    PUSH          Sector has BOOM push effects enabled&lt;br /&gt;
    KILLSOUND     Objects in sector cannot make sounds.&lt;br /&gt;
    KILLMOVESOUND Sector makes no movement sounds, even if it has a special sound sequence&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
Example flags fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    sector { flags SECRET|FRICTION|KILLMOVESOUND }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    sector { flags &amp;quot;SECRET FRICTION KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET | FRICTION | KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET+FRICTION+KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET + FRICTION + KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET,FRICTION,KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET, FRICTION, KILLMOVESOUND&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====flags.add====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a list of sector flags to add to the sector. This is supported because some sector specials (such as sector special 9, &amp;quot;Secret&amp;quot;) imply that certain sector flags will be set on the sector before ExtraData is applied. If you wish to only add flags and not override any that may have been set by sector specials, use this field to specify only the flags that you wish to be added to the sector.&lt;br /&gt;
&lt;br /&gt;
====flags.remove====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a list of sector flags to remove from the sector. If you wish to only remove flags and not override any that may have been set by sector specials, use this field to specify only the flags that you wish to be removed from the sector.&lt;br /&gt;
&lt;br /&gt;
====damage====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the amount of damage this sector does to players if the players are standing inside the sector and do not meet any special exemption criteria, such as wearing a Radiation Suit. This amount is done at each damage opportunity, which is determined by the &#039;&#039;&#039;damagemask&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
====damagemask====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the interval in gametics between damage opportunities for a player standing in this sector. The default value of 0 will cause the sector to do constant and instantaneous damage every gametic. Setting this value to an integer greater than 0 will cause damage to be done every Nth gametic, with N being the value of this field. The default DOOM nukage types all use a damagemask of 32, which is roughly once per in-game second (there are 35 gametics per second).&lt;br /&gt;
&lt;br /&gt;
====damagemod====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;Unknown&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the type of damage done by this sector. If &amp;quot;Unknown&amp;quot; is specified, the damage done is generic. The value specified should be a valid EDF damagetype mnemonic. If it is not, &amp;quot;Unknown&amp;quot; will be used. This can be used to have a sector type trigger special pain and death states when it deals damage. For example, you can use &#039;&#039;&#039;slime&#039;&#039;&#039; or &#039;&#039;&#039;lava&#039;&#039;&#039; damagemod.&lt;br /&gt;
&lt;br /&gt;
====damageflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies sector damage flag values which affect the manner in which a sector does damage. This field uses the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    LEAKYSUIT     The player may take damage at random even if he has the radsuit powerup&lt;br /&gt;
    IGNORESUIT    Radiation suit powerups are ignored entirely&lt;br /&gt;
    ENDGODMODE    God mode will be disabled when the player enters this sector&lt;br /&gt;
    EXITLEVEL     The player will exit if has &amp;lt; 11 health and this sector tries to do damage&lt;br /&gt;
    TERRAINHIT    A TerrainTypes hit will occur when this sector does damage&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
====damageflags.add====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Because some sector types imply the activation of various sector damageflags (for example, DOOM sector type 11 sets sector damageflags ENDGODMODE and EXITLEVEL), this field is supported to add additional damageflags to any that may have been set by the  map itself. Simply specify whatever flags you wish to have added to those that are already set.&lt;br /&gt;
&lt;br /&gt;
====damageflags.remove====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As with damageflags.add, it may be desirable to turn off some flags that were set by sector specials or other portions of the map data. Use this field to specify any sector damage flags you want to remove from sectors.&lt;br /&gt;
&lt;br /&gt;
====floorterrain====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@flat&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies an EDF TerrainTypes mnemonic for the type of terrain this sector should exhibit on its floor. If left to default or specified with an invalid name, the terrain of the sector will be determined by its floorpic as usual.&lt;br /&gt;
&lt;br /&gt;
====floorangle====&lt;br /&gt;
:&#039;&#039;Default: 0 (East, or upper edge to the north)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the angle of the floor flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a &#039;&#039;&#039;clockwise&#039;&#039;&#039; fashion, contrary to most other angles in the DOOM engine.&lt;br /&gt;
&lt;br /&gt;
====flooroffsetx/flooroffsety====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the x and y offsets of the floor flat, relative to the normal floor grid, in floating point units.&lt;br /&gt;
&lt;br /&gt;
====ceilingterrain====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@flat&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies an EDF TerrainTypes mnemonic for the type of terrain this sector should exhibit on its ceiling. If left to default or specified with an invalid name, the terrain of the sector will be determined by its floorpic as usual. This currently only affects the behavior of bullet puffs when particles are enabled.&lt;br /&gt;
&lt;br /&gt;
====ceilingangle====&lt;br /&gt;
:&#039;&#039;Default: 0 (East, or upper edge to the north)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the angle of the ceiling flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a &#039;&#039;&#039;clockwise&#039;&#039;&#039; fashion, contrary to most other angles in the DOOM engine.&lt;br /&gt;
&lt;br /&gt;
====flooroffsetx/flooroffsety====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the x and y offsets of the ceiling flat, relative to the normal ceiling grid, in floating point units.&lt;br /&gt;
&lt;br /&gt;
====colormaptop====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is above the fake ceiling of a BOOM 242 &amp;quot;deep water&amp;quot; effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect.&lt;br /&gt;
&lt;br /&gt;
====colormapmid====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is between the normal floor and ceiling for an ordinary sector, or between the fake floor and ceiling for a BOOM 242 &amp;quot;deep water&amp;quot; sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by a 242 effect.&lt;br /&gt;
&lt;br /&gt;
====colormapbottom====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is below the fake floor of a BOOM 242 &amp;quot;deep water&amp;quot; effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect.&lt;br /&gt;
&lt;br /&gt;
====portalflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These two fields (portalflags.floor and portalflags.ceiling) specify portal property flag values which affect the rendering and behavior of portals attached to this sector&#039;s surfaces. These fields use the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    DISABLED      Portal is completely disabled&lt;br /&gt;
    NORENDER      Portal will not be rendered, but may still be interactive&lt;br /&gt;
    NOPASS        Objects cannot pass through the portal even if it is a linked portal&lt;br /&gt;
    BLOCKSOUND    Sound will not traverse through a linked portal&lt;br /&gt;
    OVERLAY       The portal will render the sector&#039;s flat as a blended overlay&lt;br /&gt;
    ADDITIVE      If OVERLAY is also specified, the overlay will use additive blending&lt;br /&gt;
    USEGLOBALTEX  Reserved for future per-portal texture specification&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
====overlayalpha====&lt;br /&gt;
:&#039;&#039;Default&#039;&#039;: 100%&lt;br /&gt;
&lt;br /&gt;
These two fields (overlayalpha.floor and overlayalpha.ceiling) specify the opacity of the corresponding portal overlay, if any exists. You can specify either a percentage value from 0% to 100%, or a plain integer number from 0 to 255. 100%/255 are completely solid, while 0% is invisible.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Portal&amp;diff=2885</id>
		<title>Portal</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Portal&amp;diff=2885"/>
		<updated>2011-11-20T05:58:23Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 103.22.164.200 (talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Portals are a powerful mapping feature which allow a variety of rendering effects; they allow an architectural surface to be used as a &amp;quot;window&amp;quot; which can display something besides the texture that would normally cover the surface. Anything from simple fixed plane, to another area of the map can be rendered within these surfaces via the same architecture.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
=== Portal Window ===&lt;br /&gt;
&lt;br /&gt;
&#039;Portal window&#039; refers to the area of the screen that a portal occupies. For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pterminology01.png]]&lt;br /&gt;
&lt;br /&gt;
This is a simple map with no portal surfaces, and no portal window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Pterminology02.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same simple map with a fixed plane portal applied to the ceiling of the sector. The portal window is outlined in white.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Pterminology03.png]]&lt;br /&gt;
&lt;br /&gt;
This is the map, but the same plane portal is applied to the ceiling and the far wall. The two surfaces display the same portal, and as such, they share a common portal window (also outlined in white).&lt;br /&gt;
&lt;br /&gt;
All surfaces in a scene that have a common portal will share the same portal window.&lt;br /&gt;
&lt;br /&gt;
=== Dummy Sector ===&lt;br /&gt;
A sector off of the main map area which is used by line or sector specials as a model, or as housing for lines which need to be a specific size.&lt;br /&gt;
&lt;br /&gt;
== Fixed Plane Portals ==&lt;br /&gt;
&lt;br /&gt;
Fixed plane portals (as the name implies) render a single, fixed plane into the portal window. The plane is always rendered a the same height and texture offset even when the camera changes its position.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:283 Apply fixed plane portal to the ceilings of tagged sectors&lt;br /&gt;
:284 Apply fixed plane portal to the floors of tagged sectors&lt;br /&gt;
:285 Apply fixed plane portal to the floors and ceilings of tagged sectors&lt;br /&gt;
&lt;br /&gt;
The front side sector of the special line is used to generate the plane. The ceiling texture, sector light, and ceiling texture scrolling are all used as attributes for the rendered fixed plane. The absolute height of the ceiling is used as the height of the plane. That is, if the special line front sector has a ceiling height of 64, the plane will always render at 64 units above the camera height. If the ceiling height is 128, the plane will always render at 128 units above the camera height, and so on.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pfixedplane01.png]]  [[Image:Pfixedplane02.png]]&lt;br /&gt;
&lt;br /&gt;
The left image shows a simple map with a small sector off to the side of the rest of the map. One of the lines in this sector has been given  a 283 special which will apply a fixed play portal to all tagged sector ceilings. The height of the dummy sector is set to 128, the blue water texture FWATER1 is the ceiling texture, there is no scrolling applied to the ceiling, and the ceiling height is 128.&lt;br /&gt;
&lt;br /&gt;
The right image shows what the map looks like in [[Eternity]]. Notice the rendered height of the plane is the same as a ceiling 128 units above eye level.&lt;br /&gt;
&lt;br /&gt;
The line special 289 can be used to apply fixed plane portals to walls as well. The special will find a portal with the same line tag and will display that portal on the surface of the line.&lt;br /&gt;
&lt;br /&gt;
Here is the map from above:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pfixedplane03.png]]  [[Image:Pfixedplane04.png]]&lt;br /&gt;
&lt;br /&gt;
The highlighted wall has been given a special of 289 and tagged to the portal line. In-game, the tagged wall now displays the portal. Note: The 289 line special works for all portal types.&lt;br /&gt;
&lt;br /&gt;
== Horizon Plane Portals ==&lt;br /&gt;
&lt;br /&gt;
Horizon portals display two planes which appear to go on forever until they meet in the middle (horizon). The plane coordinates are not fixed, and will appear to move with the camera. This can be used to achieve the illusion that water or grass goes off far into the distance without having to make overly large sectors.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:286 Apply horizon portal to the ceilings of tagged sectors&lt;br /&gt;
:287 Apply horizon portal to the floors of tagged sectors&lt;br /&gt;
:288 Apply horizon portal to the floors and ceilings of tagged sectors&lt;br /&gt;
&lt;br /&gt;
Like the fixed plane portals, the front sector of the special line is used. The top plane uses the front sector ceiling (height, texture, scrolling, light) as its model, and the bottom plane uses the front sector floor (height, texture, scrolling, light) as its model. Example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Phorizon01.png]]&lt;br /&gt;
&lt;br /&gt;
This map has a horizon portal applied to the ceiling and wall of the sector where the player starts. Both sectors have a floor height of 0, and a ceiling height of 72, but the floor texture in the dummy sector is set to a grass texture, and the ceiling texture is set to FSKY_1. This produces a field of grass which goes on into the horizon. If the camera moves up or down, the floor plane will appear to move along with it. If the ceiling plane had a regular texture on it, it would also move with the camera and appear to go off into the distance.&lt;br /&gt;
&lt;br /&gt;
Note: If the camera ever travels below the floor height of a horizon portal, the bottom plane will appear to move in the opposite direction of the camera movement until the camera is once again above the floor height.&lt;br /&gt;
&lt;br /&gt;
== Skybox Portals ==&lt;br /&gt;
&lt;br /&gt;
Skybox portals draw another part of the map into the portal window. The scene in the portal window will use the angle from the player camera, but will render the scene from the location of the skybox camera. This helps create the illusion that the contents of the skybox actually surround the map and are much larger in size than they really are.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:290 Apply skybox portals to the ceilings of tagged sectors&lt;br /&gt;
:291 Apply skybox portals to the floors of tagged sectors&lt;br /&gt;
:292 Apply skybox portals to the floors and ceilings of tagged sectors&lt;br /&gt;
&lt;br /&gt;
The front sector of the special line becomes the &amp;quot;skybox sector&amp;quot;. This is not the only sector that gets rendered, but this sector is where [[Eternity]] will look for the skybox camera object which will be the point the skybox is rendered from.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pskybox01.png]]&lt;br /&gt;
&lt;br /&gt;
This map has a skybox portal applied to the ceiling and wall of the sector with the player start. The &amp;quot;Skybox sector&amp;quot; is the small rectangular one which contains the EESkyboxCam object. The camera object always spawns on the floor, so the skybox sector has been made a glass floor 48 units above the surrounding area so the camera will be above the floor of the box.&lt;br /&gt;
&lt;br /&gt;
[[Image:Pskybox02.png]] [[Image:Pskybox03.png]]&lt;br /&gt;
&lt;br /&gt;
The first image is the view in-game when the player no-clips into the sky box. The second image is the view from inside the main map area with the skybox portal applied. No matter where the player moves inside the map area, the skybox portal will always render from the location of the camera inside the skybox, however, the skybox is rendered from the angle the player is looking. [[ExtraData]] also provides a means of assigning a z-height to objects in maps. This could also be used to raise the skybox camera off the floor. If the skybox camera is left on the floor, the floor plane will not render and result in [[Doom Wiki:HOM|HOM]].&lt;br /&gt;
&lt;br /&gt;
The skybox is not restricted to simple boxes. Any map architecture the skybox camera can see can be part of a skybox. Below is an example of a basic mountainous landscape created with map architecture. &lt;br /&gt;
&lt;br /&gt;
[[Image:Pskybox04.png]]&lt;br /&gt;
&lt;br /&gt;
== Anchored Portals ==&lt;br /&gt;
&lt;br /&gt;
Anchored portals are the most powerful and complex of all the basic portal types. Anchored portals will render another area of the map into the portal window, but the portal camera moves as the player moves, creating the illusion that the other area of the map is actually connected to the main area. This can be used to create the appearance of 3D architecture. Before use, however, an understanding of how these portals work is important.&lt;br /&gt;
&lt;br /&gt;
In order to piece the parts of a map together, an anchored portal needs to know how far apart they are. The distance is determined with the use of specific line specials. Each anchored portal needs a &amp;quot;portal line&amp;quot; (the line with the anchored portal special) which usually area the portal should render, and an &amp;quot;anchor line&amp;quot; which is usually located in the main map area. The distance between these lines becomes the offset, that is, how far [[Eternity]] needs to move the camera from where the player stands to get the portal area.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:295 Apply anchored portal to the ceilings of all tagged sectors&lt;br /&gt;
:296 Apply anchored portal to the floors of all tagged sectors&lt;br /&gt;
:297 Apply anchored portal to the floors and ceilings of all tagged sectors&lt;br /&gt;
:298 Anchor line (for specials 295 and 297)&lt;br /&gt;
:299 Anchor line (for special 296)&lt;br /&gt;
&lt;br /&gt;
There are two different anchor line types so a different anchored portal can be placed on the ceiling and floor of the same sector. The two portals will share the sector tag.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Panchored01.png]]&lt;br /&gt;
&lt;br /&gt;
The above map has a single anchored portal applied to the inner sector of the area the player start is in. The &amp;quot;portal area&amp;quot; is to the right, and the &amp;quot;main area&amp;quot; is to the left. The view height is not changed, so the portal area needs to be set above the main area, or there will be [[Doom Wiki:HOM|HOM]] in the portal window. Note that no camera objects are needed for this effect. The portal will create a temporary camera automatically.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how it works:&lt;br /&gt;
&lt;br /&gt;
When the map is loaded, the the centers of both lines (the portal and the anchor line) are calculated, and the distance between those centers is determined:&lt;br /&gt;
&lt;br /&gt;
[[Image:Panchored03.png]]&lt;br /&gt;
&lt;br /&gt;
In the example, the distance is 512 units to the east and 0 units north. This set of numbers becomes the &amp;quot;portal offset&amp;quot; (distance between where the player stands and where the portal camera should go) and when the portal is rendered, the portal camera is place 512 map units east of the player camera, and the map is rendered from the portal camera. &lt;br /&gt;
&lt;br /&gt;
If the portal camera becomes obstructed, unwanted results can occur:&lt;br /&gt;
&lt;br /&gt;
[[Image:Panchored04.png]]&lt;br /&gt;
&lt;br /&gt;
In the example above, the camera actually &amp;quot;wanders&amp;quot; out of the portal area and into the main part of the map resulting in an unwanted wall rendering in the portal window. To prevent occurrences such as this, it is usually a good idea to place the portal area a good distance away from any other map architecture to prevent the camera from &amp;quot;wandering into&amp;quot; anything else. If the camera moves out of the portal area, it won&#039;t cause problems as long as it is not obstructed by other map architecture.&lt;br /&gt;
&lt;br /&gt;
== Linked Portals ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See: [[Linked portals]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2877</id>
		<title>List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2877"/>
		<updated>2011-11-17T06:39:17Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This &#039;&#039;&#039;list of codepointers&#039;&#039;&#039; is a list of all the action routines which can be used in [[EDF]] [[frame]]s. The Heretic actions &#039;&#039;can&#039;&#039; be used in Doom based modifications.&lt;br /&gt;
&lt;br /&gt;
=Player guns=&lt;br /&gt;
==Attacks==&lt;br /&gt;
*[[CustomPlayerMelee]]&lt;br /&gt;
*[[FireBFG]]&lt;br /&gt;
*[[FireCGun]]&lt;br /&gt;
*[[FireCustomBullets]]&lt;br /&gt;
*[[FireMissile]]: rocket launcher attack&lt;br /&gt;
*[[FireOldBFG]]: alpha Doom BFG attack&lt;br /&gt;
*[[FirePistol]]&lt;br /&gt;
*[[FirePlasma]]&lt;br /&gt;
*[[FirePlayerMissile]]: custom missile attack&lt;br /&gt;
*[[FireShotgun]]&lt;br /&gt;
*[[FireShotgun2]]: super shotgun attack&lt;br /&gt;
*[[PlayerThunk]] {{deprecated}}&lt;br /&gt;
*[[Punch]]: fist attack&lt;br /&gt;
*[[Saw]]: chainsaw attack&lt;br /&gt;
&lt;br /&gt;
==Control==&lt;br /&gt;
*[[CheckReload]]: super shotgun reload check&lt;br /&gt;
*[[CheckReloadEx]]: extended version that allows counter comparison&lt;br /&gt;
*[[JumpIfNoAmmo]]: as it says&lt;br /&gt;
*[[Lower]]: &amp;quot;lower&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[Raise]]: &amp;quot;raise&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[ReFire]]: skip frame if shooting is maintained (plasma gun cooldown effect)&lt;br /&gt;
*[[WeaponReady]]: &amp;quot;bob&amp;quot; effect, ready frame&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
*[[EjectCasing]]: throw casing&lt;br /&gt;
&lt;br /&gt;
==Muzzle flash effects==&lt;br /&gt;
*[[GunFlash]]: produces gunflash sprite without firing anything&lt;br /&gt;
*[[Light0]]: resets the muzzle light level&lt;br /&gt;
*[[Light1]]: muzzle light level 1&lt;br /&gt;
*[[Light2]]&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[BFGSound]]&lt;br /&gt;
*[[CloseShotgun2]]: this one also includes ReFire&lt;br /&gt;
*[[LoadShotgun2]]: ...these two don&#039;t&lt;br /&gt;
*[[OpenShotgun2]]&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[PlayerStartScript]]: start map script&lt;br /&gt;
*[[WeaponCopyCtr]]&lt;br /&gt;
*[[WeaponCtrOp]]&lt;br /&gt;
*[[WeaponCtrJump]]&lt;br /&gt;
*[[WeaponCtrSwitch]]&lt;br /&gt;
*[[WeaponSetCtr]]&lt;br /&gt;
&lt;br /&gt;
=Map objects=&lt;br /&gt;
==Flashes and booms==&lt;br /&gt;
*[[BFG11KHit]]: [[SMMU]] BFG variant&lt;br /&gt;
*[[BFGBurst]]: produce a burst of smaller plasma objects&lt;br /&gt;
*[[BFGSpray]]: BFG explosion afterglow&lt;br /&gt;
*[[BouncingBFG]]: SMMU bouncing BFG&lt;br /&gt;
*[[BrainExplode]]: brain perpetual explosion controller&lt;br /&gt;
*[[BrainScream]]: giant demon wall explosion sequence&lt;br /&gt;
*[[Detonate]]: thing damage controlled explosion&lt;br /&gt;
*[[Explode]]: rocket/barrel splash damage&lt;br /&gt;
*[[Fire]]: stick on the face of attacker&#039;s target, like the vile fire&lt;br /&gt;
*[[GenTracer]]: generic tracer&lt;br /&gt;
*[[Mushroom]]: mushroom explosion&lt;br /&gt;
*[[Nailbomb]]: explosion with shrapnels&lt;br /&gt;
*[[SpawnFly]]: spawn cube controller&lt;br /&gt;
*[[Tracer]]: one of the required components for homing missiles&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastPuff]]: weredragon fire belch smoke&lt;br /&gt;
*[[BlueSpark]]: create a blue d&#039;sparil attack spark&lt;br /&gt;
*[[GenWizard]]: create a disciple&lt;br /&gt;
*[[HticExplode]]: heretic-compatible explosion&lt;br /&gt;
*[[HticTracer]]: like those golem skulls&lt;br /&gt;
*[[LichFireGrow]]: how the fire column expands&lt;br /&gt;
*[[LichIceImpact]]: how an ice globe explodes into shards&lt;br /&gt;
*[[MntrFloorFire]]: used by the straight flame snake&lt;br /&gt;
*[[PhoenixPuff]]: missile trail&lt;br /&gt;
*[[PodPain]]: pod goo splash on being hit&lt;br /&gt;
*[[VolcBallImpact]]: how a volcano ball fragments on impact&lt;br /&gt;
*[[WhirlwindSeek]]: used by the tornados&lt;br /&gt;
&lt;br /&gt;
==AI==&lt;br /&gt;
*[[AlertMonsters]]: shout so other monsters chase the player&lt;br /&gt;
*[[Chase]]: pursue a target and check for attack&lt;br /&gt;
*[[CPosRefire]]: go to seestate if target is out of sight&lt;br /&gt;
*[[Face]]: face a specified angle&lt;br /&gt;
*[[FaceTarget]]: turn to target, look around it if it&#039;s partly invisible&lt;br /&gt;
*[[GenRefire]]: customizable refire control&lt;br /&gt;
*[[KeepChasing]]: pursue target without attacking&lt;br /&gt;
*[[Look]]: stand in guard, looking for targets&lt;br /&gt;
*[[RandomWalk]]: random wandering for inactive enemies&lt;br /&gt;
*[[Sor1Chase]]: d&#039;sparil mount specific chase&lt;br /&gt;
*[[Sor1Pain]]: d&#039;sparil mount specific twitch. Calls Pain.&lt;br /&gt;
*[[SpidRefire]]: like CPosRefire, slightly modified&lt;br /&gt;
*[[Turn]]: turn around a specified angle&lt;br /&gt;
*[[VileChase]]: same as Chase, but resurrecting encountered cadavers&lt;br /&gt;
&lt;br /&gt;
==AI attacks==&lt;br /&gt;
*[[BetaSkullAttack]]: remote melee attack&lt;br /&gt;
*[[BrainSpit]]: cube spawn&lt;br /&gt;
*[[BruisAttack]]: baron/knight of hell&lt;br /&gt;
*[[BspiAttack]]: arachnotron&lt;br /&gt;
*[[BulletAttack]]: custom bullet shooting&lt;br /&gt;
*[[CPosAttack]]: pistol attack w/ shotgn noise&lt;br /&gt;
*[[CyberAttack]]: rocket launching&lt;br /&gt;
*[[FatAttack1]]: mancubus left attack&lt;br /&gt;
*[[FatAttack2]]: mancubus right attack&lt;br /&gt;
*[[FatAttack3]]: mancubus front attack&lt;br /&gt;
*[[HeadAttack]]: cacodemon&lt;br /&gt;
*[[MissileAttack]]: custom missile shooting&lt;br /&gt;
*[[MissileSpread]]: MissileAttack variation, supports shooting spread shots&lt;br /&gt;
*[[PainAttack]]: elemental&lt;br /&gt;
*[[PainDie]]: elemental death (3 souls)&lt;br /&gt;
*[[PosAttack]]: former human&lt;br /&gt;
*[[SargAttack]]: demon bite&lt;br /&gt;
*[[Scratch]]: custom melee attack&lt;br /&gt;
*[[SkelFist]]: revenant punch&lt;br /&gt;
*[[SkelMissile]]: revenant missile&lt;br /&gt;
*[[SkullAttack]]: flying skull&lt;br /&gt;
*[[SPosAttack]]: sergeant&lt;br /&gt;
*[[ThingSummon]]: customized summoning&lt;br /&gt;
*[[TroopAttack]]: imp&lt;br /&gt;
*[[VileAttack]]: arch vile toss&lt;br /&gt;
*[[VileTarget]]: spawn a vile fire effect on target&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastAttack]]: weredragon&lt;br /&gt;
*[[ClinkAttack]]: sabre&lt;br /&gt;
*[[ImpChargeAtk]]: gargoyle charge&lt;br /&gt;
*[[ImpMeleeAtk]]: gargoyle scratch&lt;br /&gt;
*[[ImpMisssileAtk]]: gargoyle fire&lt;br /&gt;
*[[KnightAttack]]: undead warrior&lt;br /&gt;
*[[LichAttack]]: iron lich random attack **only one which includes ice globes**&lt;br /&gt;
*[[LichFire]]: iron lich fire column&lt;br /&gt;
*[[LichWhirlwind]]: iron lich tornado&lt;br /&gt;
*[[MinotaurAtk1]]: maulotaur melee damage&lt;br /&gt;
*[[MinotaurAtk2]]: spreadshot&lt;br /&gt;
*[[MinotaurAtk3]]: straight flame snake&lt;br /&gt;
*[[MinotaurCharge]]: maulotaur charge&lt;br /&gt;
*[[MinotaurDecide]]: maulotaur ranged attack choosing&lt;br /&gt;
*[[MummyAttack]]: golem melee&lt;br /&gt;
*[[MummyAttack2]]: nitrogolem range&lt;br /&gt;
*[[SnakeAttack]]: ophidian blue spark&lt;br /&gt;
*[[SnakeAttack2]]: ophidian yellow shot&lt;br /&gt;
*[[Srcr1Attack]]: d&#039;sparil mount attack&lt;br /&gt;
*[[Srcr2Attack]]: d&#039;sparil sorcerer attack&lt;br /&gt;
*[[Srcr2Decide]]: d&#039;sparil decide whether to teleport&lt;br /&gt;
*[[VolcanoBlast]]: volcano burst&lt;br /&gt;
*[[WizardAtk3]]: disciple tri-ball&lt;br /&gt;
&lt;br /&gt;
==Alterations==&lt;br /&gt;
*[[BossDeath]]: special monster death functions (such as Baron death in E1M8)&lt;br /&gt;
*[[BrainDie]]: exits the level&lt;br /&gt;
*[[CasingThrust]]: movement for ejected casing&lt;br /&gt;
*[[Die]]: causes suicide&lt;br /&gt;
*[[FadeIn]]: increments alpha&lt;br /&gt;
*[[FadeOut]]: decrements alpha, DOESN&#039;T destroy the thing&lt;br /&gt;
*[[Fall]]: remove SOLID flag (used on dying monsters)&lt;br /&gt;
*[[KeenDie]]: open 666-tagged doors on death of all like-named monsters&lt;br /&gt;
*[[KillChildren]]: destroy all summoned things&lt;br /&gt;
*[[LineEffect]]: activate a tag using a special&lt;br /&gt;
*[[PainNukeSpec]]&lt;br /&gt;
*[[SetFlags]]: alter flags&lt;br /&gt;
*[[SetTranslucent]]: modify alpha amount; setup additiveness or fuzziness&lt;br /&gt;
*[[ShowMessage]]: display text message&lt;br /&gt;
*[[Spawn]]: create another object on top of this one&lt;br /&gt;
*[[SteamSpawn]]: create steam effects&lt;br /&gt;
*[[Stop]]: set velocity to 0&lt;br /&gt;
*[[UnSetFlags]]: alter flags&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[AccelGlitter]]: accelerate upwards&lt;br /&gt;
*[[DripBlood]]: spawn heretic blood&lt;br /&gt;
*[[HticBossDeath]]: special monster death functions for Heretic&lt;br /&gt;
*[[ImpDeath]]: special death for gargoyle&lt;br /&gt;
*[[ImpExplode]]: crash for gargoyle&lt;br /&gt;
*[[ImpXDeath1]]: special extreme death for gargoyle, stage 1&lt;br /&gt;
*[[ImpXDeath2]]: special extreme death for gargoyle, stage 2&lt;br /&gt;
*[[MakePod]]: generate a pod&lt;br /&gt;
*[[MummySoul]]: create raising soul&lt;br /&gt;
*[[PlayerSkull]]: player death effect, when the skull tosses in air&lt;br /&gt;
*[[RemovePod]]: notifies the generator that this pod was destroyed&lt;br /&gt;
*[[Sor2DthInit]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[Sor2DthLoop]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[SorcererRise]]: d&#039;sparil waking up after mount crash&lt;br /&gt;
*[[SorcNukeSpec]]&lt;br /&gt;
*[[SpawnAbove]]: spawns above the summoner&lt;br /&gt;
*[[SpawnGlitter]]: create teleportation sparkle&lt;br /&gt;
*[[WizardAtk1]]: face target and clear GHOST flag&lt;br /&gt;
*[[WizardAtk2]]: face target and set GHOST flag&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[AmbientThinker]]: ambient sound maintenance&lt;br /&gt;
*[[BabyMetal]]: bspwlk sound effect -- also includes Chase!&lt;br /&gt;
*[[BrainAwake]]: loud bossit sound effect&lt;br /&gt;
*[[BrainPain]]: loud bospn sound effect&lt;br /&gt;
*[[FatRaise]]: mancubus warning -- also includes FaceTarget&lt;br /&gt;
*[[FireCrackle]]: flame sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[Hoof]]: cyberdemon hoof sound -- also includes Chase!&lt;br /&gt;
*[[Metal]]: metal sound effect -- also includes Chase!&lt;br /&gt;
*[[Pain]]: play pain sound&lt;br /&gt;
*[[PlayerScream]]: player-specific, health-dependent (death) sound&lt;br /&gt;
*[[PlaySound]]: custom sound&lt;br /&gt;
*[[PlaySoundEx]]: extended custom sound&lt;br /&gt;
*[[Scream]]: play death sound&lt;br /&gt;
*[[SkelWhoosh]]: revenant swing noise -- also includes FaceTarget&lt;br /&gt;
*[[SpawnSound]]: boscub sound effect -- also includes SpawnFly&lt;br /&gt;
*[[StartFire]]: flamst sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[VileStart]]: archvile heat-up noise&lt;br /&gt;
*[[XScream]]: extreme death gut noise&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[AproxDistance]]: assign distance from target to a variable&lt;br /&gt;
*[[CheckPlayerDone]]: jump to a frame if not under player control&lt;br /&gt;
*[[CopyCounter]]: copy a variable to another variable&lt;br /&gt;
*[[CounterJump]]: counter-based next frame&lt;br /&gt;
*[[CounterOp]]: set a variable to an operation of another 2 variables&lt;br /&gt;
*[[CounterSwitch]]: counter-based set of frames&lt;br /&gt;
*[[HealthJump]]: health-based next frame&lt;br /&gt;
*[[JumpIfTargetInLOS]]: jump to frame if target is in the field of view&lt;br /&gt;
*[[RandomJump]]: random next frame&lt;br /&gt;
*[[SetCounter]]: set a variable&lt;br /&gt;
*[[SetTics]]: set frame duration&lt;br /&gt;
*[[StartScript]]: run map script&lt;br /&gt;
*[[TargetJump]]: go to designated frame if having a target&lt;br /&gt;
&lt;br /&gt;
[[Category:Codepointers|*]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2876</id>
		<title>List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2876"/>
		<updated>2011-11-17T06:38:32Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 182.20.206.193 (Talk) to last revision by 83.250.112.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wodenrful explanation of facts available here.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Slope_linedef_types&amp;diff=2874</id>
		<title>Slope linedef types</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Slope_linedef_types&amp;diff=2874"/>
		<updated>2011-11-17T05:56:13Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 220.255.1.73 (Talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Eternity allows you to add slopes to levels, like in [http://zdoom.org/wiki/Slopes ZDoom]. They&#039;re set up through [[linedef types|linedefs]], which are activated at level startup. Note that contrarily to ZDoom slopes, the physics code in Eternity Engine ignores slopes for the moment: as far as collisions and movements go, a sloped sector is still flat.&lt;br /&gt;
&lt;br /&gt;
The slope linedefs work by aligning a sector (front or back) to reach the height of another (back or front) along the linedef.&lt;br /&gt;
&lt;br /&gt;
The floor, the ceiling, or both can be sloped. The various linedefs listed below correspond to the possible combinations.&lt;br /&gt;
&lt;br /&gt;
The slope specials are:&lt;br /&gt;
* 386: Slope_FrontsectorFloor - The floor of the front sector is sloped to reach the height of the back sector floor.&lt;br /&gt;
* 387: Slope_FrontsectorCeiling - The ceiling of the front sector is sloped to reach the height of the back sector ceiling.&lt;br /&gt;
* 388: Slope_FrontsectorFloorAndCeiling - The floor and the ceiling of the front sector are sloped to reach the height of the back sector floor and ceiling respectively.&lt;br /&gt;
* 389: Slope_BacksectorFloor - The floor of the back sector is sloped to reach the height of the front sector floor.&lt;br /&gt;
* 390: Slope_BacksectorCeiling - The ceiling of the front sector is sloped to reach the height of the front sector ceiling.&lt;br /&gt;
* 391: Slope_BacksectorFloorAndCeiling - The floor and the ceiling of the back sector are sloped to reach the height of the front sector floor and ceiling respectively.&lt;br /&gt;
* 392: Slope_BackFloorAndFrontCeiling - The floor of the back sector slopes to the height of the front sector floor; the ceiling of the front sector slopes to the height of the back sector ceiling.&lt;br /&gt;
* 393: Slope_BackCeilingAndFrontFloor - The ceiling of the back sector slopes to the height of the front sector ceiling; the floor of the front sector slopes to the height of the back sector floor.&lt;br /&gt;
* 394: Slope_FrontFloorToTaggedSlope - Copies the floor slope of a like-tagged sector to the frontsector of the line with the special.&lt;br /&gt;
* 395: Slope_FrontCeilingToTaggedSlope - Copies the ceiling slope of a like-tagged sector to the frontsector of the line with the special.&lt;br /&gt;
* 396: Slope_FrontFloorAndCeilingToTaggedSlope - Copies both the floor and ceiling slope of a like-tagged sector to the frontsector of the line with the special.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;Back to [[Linedef types]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=File:Pterminology01.png&amp;diff=2873</id>
		<title>File:Pterminology01.png</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=File:Pterminology01.png&amp;diff=2873"/>
		<updated>2011-11-17T05:56:06Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 46.43.76.93 (Talk) to last revision by SoM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A simple map with no portal surfaces, and no portal window.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=ExtraData&amp;diff=2872</id>
		<title>ExtraData</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=ExtraData&amp;diff=2872"/>
		<updated>2011-11-17T05:55:56Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 183.181.99.143 (Talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ExtraData is a new data specification language for the [[Eternity Engine]] that allows arbitrary extension of mapthings, lines, and sectors with any number of new fields, with data provided in more or less any format. The use of a textual input language forever removes any future problems caused by binary format limitations. The ExtraData parser is based on the libConfuse configuration file parser library by Martin Hedenfalk, which is also used by GFS and EDF. &lt;br /&gt;
&lt;br /&gt;
Each section in this document deals with one of the ExtraData constructs, as well as how to embed ExtraData in a WAD and how to associate it with a given map. &lt;br /&gt;
&lt;br /&gt;
ExtraData will continue to be supported in future versions of Eternity, even though it will soon be superceded by support for the [[Universal Doom Map Format]].&lt;br /&gt;
&lt;br /&gt;
=General Syntax=&lt;br /&gt;
&#039;&#039;See [[EDF#Syntax|EDF Syntax]], as it is the same.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Embedding and Associating ExtraData =&lt;br /&gt;
&lt;br /&gt;
ExtraData is embedded directly as a text script into a lump of any name. This can be done with any number of wad file management tools, such as SLumpEd, SLADE 3, or XWE. &lt;br /&gt;
&lt;br /&gt;
An ExtraData script is associated with a map via use of the [[MapInfo]] variable &#039;&#039;&#039;extradata&#039;&#039;&#039;. A map can only have one ExtraData script, but it is possible for multiple maps to share the same script. &lt;br /&gt;
&lt;br /&gt;
Example of ExtraData specification via EMAPINFO: &lt;br /&gt;
   [MAP01]&lt;br /&gt;
   extradata = EDLUMP01&lt;br /&gt;
&lt;br /&gt;
=Mapthings =&lt;br /&gt;
&lt;br /&gt;
Mapthings define monsters, lamps, control points, items, etc -- anything that is spawned on the map at level start. &lt;br /&gt;
&lt;br /&gt;
Each field in the mapthing definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of mapthing definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify mapthing records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Control Objects ==&lt;br /&gt;
&lt;br /&gt;
Mapthing records in ExtraData are only associated with a special control object that must be placed on the map in the usual manner. &lt;br /&gt;
&lt;br /&gt;
The ExtraData control object has a &#039;&#039;&#039;doomednum&#039;&#039;&#039; of 5004. Each control object specifies its corresponding ExtraData mapthing record number as an integer value in its mapthing &#039;&#039;&#039;options&#039;&#039;&#039; field. If your editor does not allow entering arbitrary values into the options field of mapthings, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the options field. Check your editor&#039;s documentation or user interface to verify if it supports this. &lt;br /&gt;
&lt;br /&gt;
The x, y, and angle fields of the ExtraData control object are passed on to the thing which will be spawned at the control point&#039;s location, so those fields of the control object should be set normally. The true type and options fields of the thing to be spawned, along with any extended fields, are specified in the ExtraData record. &lt;br /&gt;
&lt;br /&gt;
Any number of ExtraData control objects can reference the same ExtraData record. In the event that a control object references a non-existent ExtraData record, the ExtraData script for a level is missing, or the thing type referenced by an ExtraData record isn&#039;t valid, an [[Unknown]] thing will be spawned at the control point&#039;s location.  Note that you cannot spawn ExtraData control objects using ExtraData. Attempting this will also result in an Unknown thing. &lt;br /&gt;
&lt;br /&gt;
==Mapthing Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData mapthing record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 mapthing&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are normal mapthing fields&lt;br /&gt;
   type      &amp;lt;doomednum&amp;gt; OR &amp;lt;EDF thingtype mnemonic&amp;gt;&lt;br /&gt;
   options   &amp;lt;options flag list&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions&lt;br /&gt;
   tid       &amp;lt;number&amp;gt;&lt;br /&gt;
   args      { &amp;lt;special field&amp;gt;, ... }&lt;br /&gt;
   height    &amp;lt;number&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields:=== &lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData control objects must use to associate themselves with a mapthing record. Every ExtraData mapthing record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 65535 inclusive. Some editors may only allow input of numbers up to 32767 in the mapthing options field, or may treat values above 32767 as negative numbers. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====type====&lt;br /&gt;
Default: No meaningful default value; an Unknown thing will be spawned if not valid.&lt;br /&gt;
&lt;br /&gt;
This field specifies the type of object to spawn at the location and angle of ExtraData control objects using this record. This field can accept one of two types of values. The first is a normal thingtype doomednum as specified via [[EDF]] and used by all editors. For example, the DOOM Imp&#039;s doomednum is 3001. &lt;br /&gt;
&lt;br /&gt;
This field can also accept EDF thingtype mnemonics. EDF thingtype mnemonics must be prefixed with &#039;&#039;thing:&#039;&#039; -- this allows the parser to know it is dealing with a string instead of a number. EDF thingtypes must have a unique doomednum to be specified in an ExtraData mapthing record. If the specified EDF thingtype doesn&#039;t exist or has a doomednum of -1, an Unknown object will be spawned instead. &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
    mapthing { type 3001 }          // This record specifies an Imp via its doomednum&lt;br /&gt;
    &lt;br /&gt;
    mapthing { type DoomImp } // This record specifies an Imp by its EDF mnemonic&lt;br /&gt;
    &lt;br /&gt;
====options====&lt;br /&gt;
Default: No flags are set by default. &lt;br /&gt;
&lt;br /&gt;
This field specifies the options (also known as mapthing flags). This field uses the same syntax as BEX/EDF flag strings, but the syntax will be reviewed here for completeness. &lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. In ExtraData, if a flag list contains whitespace, commas, or plus signs, it must be enclosed in double or single quotations. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
    Flag name   Meaning&lt;br /&gt;
    ------------------------------------------------------------------------------&lt;br /&gt;
    EASY        Thing appears in easy difficulties&lt;br /&gt;
    NORMAL      Thing appears in &amp;quot;Hurt Me Plenty&amp;quot;&lt;br /&gt;
    HARD        Thing appears in Ultra-Violence and Nightmare&lt;br /&gt;
    AMBUSH      Thing is &amp;quot;deaf&amp;quot;, will not wake up via sound&lt;br /&gt;
    NOTSINGLE   Thing doesn&#039;t appear in single-player mode&lt;br /&gt;
    NOTDM       Thing doesn&#039;t appear in deathmatch&lt;br /&gt;
    NOTCOOP     Thing doesn&#039;t appear in cooperative multiplayer&lt;br /&gt;
    FRIEND      Thing uses MBF friendly logic&lt;br /&gt;
    DORMANT     Thing is dormant at map startup (script feature)&lt;br /&gt;
    ------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
The mapthing options value 256 (0x0100) is reserved. If this bit is set, all BOOM, MBF, and Eternity extended mapthing bits will be cleared. This is to guard against editors like Hellmaker which set all bits they do not understand, instead of leaving them zero. &lt;br /&gt;
&lt;br /&gt;
Example options fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    mapthing { options EASY|NORMAL|HARD }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    mapthing { options &amp;quot;EASY NORMAL HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY | NORMAL | HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY+NORMAL+HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY + NORMAL + HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY,NORMAL,HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY, NORMAL, HARD&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====tid====&lt;br /&gt;
Default: 0 &lt;br /&gt;
&lt;br /&gt;
The TID, or &amp;quot;Thing ID&amp;quot;, is a tag for mapthings which is used for identification in [[Small]] scripts. TID values must be positive numbers between 1 and 65535. The TID value zero means no TID. Negative TID values are reserved and are used to indicate special things within the engine. TIDs are not required to be unique, and most Small functions that accept TIDs will perform an action on all mapthings which bear the same TID. Things spawned within Small scripts can also be given TIDs. &lt;br /&gt;
&lt;br /&gt;
====args====&lt;br /&gt;
Default: All args values default to zero. &lt;br /&gt;
&lt;br /&gt;
The args field is a list of up to five special values which can have a broad range of meanings. Any values not provided in the args list will default, and if more than five values are provided, only the first five will be used. Currently, all args values are interpreted as integers (a non-number string evaluates to zero). This may change in the future. &lt;br /&gt;
&lt;br /&gt;
Example args list: &lt;br /&gt;
    mapthing { args { 0, 1, 2, 3, 4 } }&lt;br /&gt;
    &lt;br /&gt;
====height====&lt;br /&gt;
Default: 0 &lt;br /&gt;
&lt;br /&gt;
For normal objects, this field indicates a distance above the floor that the thing will spawn at level start. For objects with the SPAWNCEILING flag, this field indicates a distance below the ceiling instead. This field will have no effect on objects which spawn at a randomized height.&lt;br /&gt;
&lt;br /&gt;
=Linedefs =&lt;br /&gt;
&lt;br /&gt;
Linedefs define walls, two-sided textures, and provide action triggers within maps. &lt;br /&gt;
&lt;br /&gt;
Each field in the linedef definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of linedef definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify linedef records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Linedefs ==&lt;br /&gt;
&lt;br /&gt;
Linedef records in ExtraData are associated either with lines which bear the ExtraData Control Line Special (270), or with any linedef in a DOOM-format map which uses a parameterized line special. You can place the 270 special, as well as parameterized special numbers, into the normal &amp;quot;special&amp;quot; field of a line using virtually any map editor. Editors with Eternity-specific configurations should support these specials natively.&lt;br /&gt;
&lt;br /&gt;
Each control linedef (or directly-used parameterized special) specifies its corresponding ExtraData linedef record number as an integer value in its linedef tag field. If your editor does not allow entering arbitrary values up to 32767 into the tag field of linedefs, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the tag field. Check your editor&#039;s documentation or user interface to verify if it supports this. &lt;br /&gt;
&lt;br /&gt;
The flags, sidedefs, textures, and location of the ExtraData control linedef are used normally by the line and cannot be altered from within ExtraData. The true special (if 270 is used) and tag fields of the linedef, along with any extended fields, are specified in the ExtraData record which the control linedef references. &lt;br /&gt;
&lt;br /&gt;
Any number of linedefs can reference the same ExtraData record. In the event that a control linedef references a non-existent ExtraData record or the ExtraData script for a level is missing, the special and tag of the ExtraData control linedef will both be set to zero. &lt;br /&gt;
&lt;br /&gt;
==Linedef Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData linedef record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 linedef&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are normal linedef fields&lt;br /&gt;
   special &amp;lt;number&amp;gt; OR &amp;lt;special name&amp;gt;&lt;br /&gt;
   tag &amp;lt;number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions&lt;br /&gt;
   extflags &amp;lt;extended line flags list&amp;gt;&lt;br /&gt;
   args { &amp;lt;special field&amp;gt;, ... }&lt;br /&gt;
   alpha &amp;lt;number&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields: ===&lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData control linedefs must use to associate themselves with a linedef record. Every ExtraData linedef record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 32767 inclusive. Some editors may only allow input of numbers up to 255 in the linedef tag field. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====special====&lt;br /&gt;
:&#039;&#039;Default: 0 &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The special field determines what [[Linedef_types|type of action]] may be taken when a line is crossed, used, shot, etc. There are three types of linedef specials in Eternity: normal, generalized, and parameterized. Parameterized specials use the &#039;&#039;&#039;args&#039;&#039;&#039; field documented below to provide complete customization of line actions. &lt;br /&gt;
&lt;br /&gt;
This field can accept numbers for any special type, including generalized and parameterized, but it can also accept special names for parameterized line types. See the [[Detailed parameterized linedef specification]] for a complete list of the available names.&lt;br /&gt;
&lt;br /&gt;
====tag====&lt;br /&gt;
:&#039;&#039;Default: 0 &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The tag of the linedef, used by DOOM-style line specials and sector effects.&lt;br /&gt;
&lt;br /&gt;
====extflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies extended linedef flag values which impact the functionality of parameterized linedef specials. This field uses the same syntax as BEX/EDF flag strings, but the syntax will be reviewed here for completeness. &lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. In ExtraData, if a flag list contains whitespace, commas, or plus signs, it must be enclosed in double or single quotations. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
    Flag name   Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    CROSS       Linedef can be activated by being crossed.&lt;br /&gt;
    USE         Linedef can be activated by being used.&lt;br /&gt;
    IMPACT      Linedef can be activated by being shot.&lt;br /&gt;
    PUSH        Linedef can be activated by being pushed.&lt;br /&gt;
    PLAYER      Linedef can be activated by players.&lt;br /&gt;
    MONSTER     Linedef can be activated by objects with SPACMONSTER flag.&lt;br /&gt;
    MISSILE     Linedef can be activated by objects with SPACMISSILE flag.&lt;br /&gt;
    REPEAT      Linedef action is repeatable.&lt;br /&gt;
    1SONLY      Linedef can only be activated from first side.&lt;br /&gt;
    ADDITIVE    Linedef&#039;s midtexture is drawn with additive blending.&lt;br /&gt;
    BLOCKALL    Linedef will block everything that can be clipped.&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
Notes: IMPACT is currently only implemented for bullet weapons. The ability to use IMPACT with MISSILE will be added in the near future. The PUSH style of activation is not implemented at all yet, so this flag currently does nothing. &lt;br /&gt;
&lt;br /&gt;
Example flags fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    linedef { extflags CROSS|PLAYER|MISSILE|REPEAT }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    linedef { extflags &amp;quot;CROSS PLAYER MISSILE REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS | PLAYER | MISSILE | REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS+PLAYER+MISSILE+REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS + PLAYER + MISSILE + REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS,PLAYER,MISSILE,REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS, PLAYER, MISSILE, REPEAT&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====args====&lt;br /&gt;
:&#039;&#039;Default: All args values default to zero. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The args field is a list of up to five special values which can have a broad range of meanings. Any values not provided in the args list will default, and if more than five values are provided, only the first five will be used. Currently, all args values are interpreted as integers (a non-number string evaluates to zero). This may change in the future. The args list is used by parameterized linedef specials. &lt;br /&gt;
&lt;br /&gt;
Example args list: &lt;br /&gt;
    linedef { args { 0, 1, 2, 3, 4 } }&lt;br /&gt;
&lt;br /&gt;
====alpha====&lt;br /&gt;
:&amp;quot;Default: Alpha defaults to 1.0.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The alpha field takes a value from 0.0 to 1.0 to set the opacity at which this linedef&#039;s midtexture is drawn. When combined with the ADDITIVE extflag, this can be used for additive-blended translucency as well.&lt;br /&gt;
&lt;br /&gt;
=Sectors=&lt;br /&gt;
&lt;br /&gt;
Sectors define distinct areas of the map that are bordered by linedefs, with floor and ceiling properties, lighting data, and specials. &lt;br /&gt;
&lt;br /&gt;
Each field in the sector definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of sector definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify sector records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Sectors==&lt;br /&gt;
&lt;br /&gt;
Sector records in ExtraData are associated with lines which bear the ExtraData Sector Control Special (401). The linedef&#039;s front side sector is the map sector that will receive properties from the ExtraData record which is specified by number in the linedef&#039;s tag.&lt;br /&gt;
&lt;br /&gt;
Since ExtraData is attached to sectors via linedefs and not through overriding any of the sectors&#039; native fields, you specify all of the normal data for a sector in the map itself, and overriding that data through ExtraData sector records is not supported.&lt;br /&gt;
&lt;br /&gt;
Any number of linedefs can reference the same ExtraData sector record. In the event that a control linedef references a non-existent ExtraData record or the ExtraData script for a level is missing, the tag of the ExtraData sector control linedef will be set to zero and will otherwise be ignored.&lt;br /&gt;
&lt;br /&gt;
==Sector Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData sector record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 sector&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions to sector data&lt;br /&gt;
   flags &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   flags.add &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   flags.remove &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   damage &amp;lt;integer&amp;gt;&lt;br /&gt;
   damagemask &amp;lt;integer&amp;gt;&lt;br /&gt;
   damagemod &amp;lt;method of damage type&amp;gt;&lt;br /&gt;
   damageflags &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   damageflags.add &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   damageflags.remove &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   floorterrain &amp;lt;terrain name&amp;gt;&lt;br /&gt;
   floorangle &amp;lt;float&amp;gt;  &lt;br /&gt;
   flooroffsetx &amp;lt;float&amp;gt;&lt;br /&gt;
   flooroffsety &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingterrain &amp;lt;terrain name&amp;gt;&lt;br /&gt;
   ceilingangle &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingoffsetx &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingoffsety &amp;lt;float&amp;gt;&lt;br /&gt;
   colormaptop &amp;lt;lump name&amp;gt;&lt;br /&gt;
   colormapmid &amp;lt;lump name&amp;gt;&lt;br /&gt;
   colormapbottom &amp;lt;lump name&amp;gt;&lt;br /&gt;
   portalflags.floor &amp;lt;portal flags list&amp;gt;&lt;br /&gt;
   portalflags.ceiling &amp;lt;portal flags list&amp;gt;&lt;br /&gt;
   overlayalpha.floor &amp;lt;percentage or value from 0 to 255&amp;gt;&lt;br /&gt;
   overlayalpha.ceiling &amp;lt;percentage or value from 0 to 255&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields: ===&lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData sector control linedefs must use to associate themselves with a sector record. Every ExtraData sector record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 32767 inclusive. Some editors may only allow input of numbers up to 255 in the linedef tag field. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====flags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies sector flag values which specify various properties of sectors. This field uses the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    SECRET        Sector is secret&lt;br /&gt;
    FRICTION      Sector has friction enabled, if targeted by a BOOM friction transfer line&lt;br /&gt;
    PUSH          Sector has BOOM push effects enabled&lt;br /&gt;
    KILLSOUND     Objects in sector cannot make sounds.&lt;br /&gt;
    KILLMOVESOUND Sector makes no movement sounds, even if it has a special sound sequence&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
Example flags fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    sector { flags SECRET|FRICTION|KILLMOVESOUND }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    sector { flags &amp;quot;SECRET FRICTION KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET | FRICTION | KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET+FRICTION+KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET + FRICTION + KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET,FRICTION,KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET, FRICTION, KILLMOVESOUND&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====flags.add====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a list of sector flags to add to the sector. This is supported because some sector specials (such as sector special 9, &amp;quot;Secret&amp;quot;) imply that certain sector flags will be set on the sector before ExtraData is applied. If you wish to only add flags and not override any that may have been set by sector specials, use this field to specify only the flags that you wish to be added to the sector.&lt;br /&gt;
&lt;br /&gt;
====flags.remove====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a list of sector flags to remove from the sector. If you wish to only remove flags and not override any that may have been set by sector specials, use this field to specify only the flags that you wish to be removed from the sector.&lt;br /&gt;
&lt;br /&gt;
====damage====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the amount of damage this sector does to players if the players are standing inside the sector and do not meet any special exemption criteria, such as wearing a Radiation Suit. This amount is done at each damage opportunity, which is determined by the &#039;&#039;&#039;damagemask&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
====damagemask====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the interval in gametics between damage opportunities for a player standing in this sector. The default value of 0 will cause the sector to do constant and instantaneous damage every gametic. Setting this value to an integer greater than 0 will cause damage to be done every Nth gametic, with N being the value of this field. The default DOOM nukage types all use a damagemask of 32, which is roughly once per in-game second (there are 35 gametics per second).&lt;br /&gt;
&lt;br /&gt;
====damagemod====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;Unknown&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the type of damage done by this sector. If &amp;quot;Unknown&amp;quot; is specified, the damage done is generic. The value specified should be a valid EDF damagetype mnemonic. If it is not, &amp;quot;Unknown&amp;quot; will be used. This can be used to have a sector type trigger special pain and death states when it deals damage. For example, you can use &#039;&#039;&#039;slime&#039;&#039;&#039; or &#039;&#039;&#039;lava&#039;&#039;&#039; damagemod.&lt;br /&gt;
&lt;br /&gt;
====damageflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies sector damage flag values which affect the manner in which a sector does damage. This field uses the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    LEAKYSUIT     The player may take damage at random even if he has the radsuit powerup&lt;br /&gt;
    IGNORESUIT    Radiation suit powerups are ignored entirely&lt;br /&gt;
    ENDGODMODE    God mode will be disabled when the player enters this sector&lt;br /&gt;
    EXITLEVEL     The player will exit if has &amp;lt; 11 health and this sector tries to do damage&lt;br /&gt;
    TERRAINHIT    A TerrainTypes hit will occur when this sector does damage&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
====damageflags.add====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Because some sector types imply the activation of various sector damageflags (for example, DOOM sector type 11 sets sector damageflags ENDGODMODE and EXITLEVEL), this field is supported to add additional damageflags to any that may have been set by the  map itself. Simply specify whatever flags you wish to have added to those that are already set.&lt;br /&gt;
&lt;br /&gt;
====damageflags.remove====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As with damageflags.add, it may be desirable to turn off some flags that were set by sector specials or other portions of the map data. Use this field to specify any sector damage flags you want to remove from sectors.&lt;br /&gt;
&lt;br /&gt;
====floorterrain====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@flat&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies an EDF TerrainTypes mnemonic for the type of terrain this sector should exhibit on its floor. If left to default or specified with an invalid name, the terrain of the sector will be determined by its floorpic as usual.&lt;br /&gt;
&lt;br /&gt;
====floorangle====&lt;br /&gt;
:&#039;&#039;Default: 0 (East, or upper edge to the north)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the angle of the floor flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a &#039;&#039;&#039;clockwise&#039;&#039;&#039; fashion, contrary to most other angles in the DOOM engine.&lt;br /&gt;
&lt;br /&gt;
====flooroffsetx/flooroffsety====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the x and y offsets of the floor flat, relative to the normal floor grid, in floating point units.&lt;br /&gt;
&lt;br /&gt;
====ceilingterrain====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@flat&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies an EDF TerrainTypes mnemonic for the type of terrain this sector should exhibit on its ceiling. If left to default or specified with an invalid name, the terrain of the sector will be determined by its floorpic as usual. This currently only affects the behavior of bullet puffs when particles are enabled.&lt;br /&gt;
&lt;br /&gt;
====ceilingangle====&lt;br /&gt;
:&#039;&#039;Default: 0 (East, or upper edge to the north)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the angle of the ceiling flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a &#039;&#039;&#039;clockwise&#039;&#039;&#039; fashion, contrary to most other angles in the DOOM engine.&lt;br /&gt;
&lt;br /&gt;
====flooroffsetx/flooroffsety====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the x and y offsets of the ceiling flat, relative to the normal ceiling grid, in floating point units.&lt;br /&gt;
&lt;br /&gt;
====colormaptop====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is above the fake ceiling of a BOOM 242 &amp;quot;deep water&amp;quot; effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect.&lt;br /&gt;
&lt;br /&gt;
====colormapmid====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is between the normal floor and ceiling for an ordinary sector, or between the fake floor and ceiling for a BOOM 242 &amp;quot;deep water&amp;quot; sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by a 242 effect.&lt;br /&gt;
&lt;br /&gt;
====colormapbottom====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is below the fake floor of a BOOM 242 &amp;quot;deep water&amp;quot; effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect.&lt;br /&gt;
&lt;br /&gt;
====portalflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These two fields (portalflags.floor and portalflags.ceiling) specify portal property flag values which affect the rendering and behavior of portals attached to this sector&#039;s surfaces. These fields use the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    DISABLED      Portal is completely disabled&lt;br /&gt;
    NORENDER      Portal will not be rendered, but may still be interactive&lt;br /&gt;
    NOPASS        Objects cannot pass through the portal even if it is a linked portal&lt;br /&gt;
    BLOCKSOUND    Sound will not traverse through a linked portal&lt;br /&gt;
    OVERLAY       The portal will render the sector&#039;s flat as a blended overlay&lt;br /&gt;
    ADDITIVE      If OVERLAY is also specified, the overlay will use additive blending&lt;br /&gt;
    USEGLOBALTEX  Reserved for future per-portal texture specification&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
====overlayalpha====&lt;br /&gt;
:&#039;&#039;Default&#039;&#039;: 100%&lt;br /&gt;
&lt;br /&gt;
These two fields (overlayalpha.floor and overlayalpha.ceiling) specify the opacity of the corresponding portal overlay, if any exists. You can specify either a percentage value from 0% to 100%, or a plain integer number from 0 to 255. 100%/255 are completely solid, while 0% is invisible.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Light0&amp;diff=2851</id>
		<title>Light0</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Light0&amp;diff=2851"/>
		<updated>2011-11-16T18:25:39Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 192.138.151.51 (Talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Light0&#039;&#039;&#039; (void)&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Light0 is a player weapon codepointer. This codepointer is used to reset player weapon light flashes to normal. Most DOOM weapons call this pointer by transfering to frame S_LIGHTDONE (DeHackEd number 1) after their last firing frame.&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Light1]]&lt;br /&gt;
*[[Light2]]&lt;br /&gt;
*[[List of codepointers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Codepointers]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Eternity_Engine&amp;diff=2850</id>
		<title>Eternity Engine</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Eternity_Engine&amp;diff=2850"/>
		<updated>2011-11-16T18:24:46Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 109.230.216.60 (Talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Eternity Engine is [[Team Eternity]]&#039;s advanced [[Doom Wiki:Doom|Doom]] [[Doom Wiki:Source port|source port]] and the primary subject of this Wiki.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The Eternity Engine began in 1998 as a simple modification of [[Doom Wiki:Boom|Boom]] meant to power Eternity TC, which was at that time a new and active project. When [[Doom Wiki:Lee Killough|Lee Killough]] began the [[MBF]] project, [[James &amp;quot;Quasar&amp;quot; Haley]] became a beta tester after emailing Lee with questions about the early Doom alpha versions. The Eternity project moved to an MBF code base after that port&#039;s first release.&lt;br /&gt;
&lt;br /&gt;
In late 1999, [[Doom Wiki:Simon &amp;quot;Fraggle&amp;quot; Howard|Fraggle]] released v3.10 of his MBF-based source port [[SMMU]], which contained support for the new [[FraggleScript]] scripting language. Although activity in the Eternity TC project by editors had steadily dropped to almost nothing, Quasar was still interested in developing the code associated with it. Needing features such as scripting and the [[console]], he then moved the Eternity project&#039;s code into SMMU.&lt;br /&gt;
&lt;br /&gt;
Despite this long history of jumping between Boom-based ports, no public release of Eternity based on any port other than SMMU was ever made. The first private alpha, released to a select few beta testers, was derived from SMMU 3.21 with selected modifications from 3.30. Because of this, Eternity began at version 3.29.&lt;br /&gt;
&lt;br /&gt;
After the release of the [[Caverns of Darkness]] project, which used a customized version of Eternity Engine v3.29 Development Beta 5, the project began to attract more attention. A second programmer, [[Steven &amp;quot;SoM&amp;quot; McGranahan]], joined the project and immediately set to work porting the code to use [[Wikipedia:SDL|SDL]], making it capable of running on many operating systems, including [[Wikipedia:Microsoft Windows|Windows]].&lt;br /&gt;
&lt;br /&gt;
Current major goals for the engine include completing support for [[Doom Wiki:Heretic|Heretic]], a dynamic weapon and inventory system, ZDoom node support, and [[Universal Doom Map Format|UDMF]] support.&lt;br /&gt;
&lt;br /&gt;
==Major Features==&lt;br /&gt;
&lt;br /&gt;
===[[EDF]]===&lt;br /&gt;
EDF, which stands for Eternity Definition Files, is a textual input language that allows specification of almost all the static game data which was once contained inside the executable. This includes thing types, frames, sprites, terrain definitions, and more. EDF has a relaxed [[Wikipedia:C programming language|C]]-like syntax and can be used from both files and [[WAD]] lumps.&lt;br /&gt;
&lt;br /&gt;
===[[ExtraData]]===&lt;br /&gt;
ExtraData is another EDF-like data specification language that allows the Doom map format to be extended with any kind of data. Use of special thing, line, and sector types within a map allows the editor to attach ExtraData records to those objects. Special data for the objects is then given inside the script.&lt;br /&gt;
&lt;br /&gt;
===[[MapInfo]]===&lt;br /&gt;
Eternity expands SMMU&#039;s level info system significantly, allowing dozens of new properties to be specified, and allowing cascading global EMAPINFO lumps as an alternative to inserting MapInfo data into level headers. Among other things, MapInfo is used to tie ExtraData and Small scripts to the maps that use them.&lt;br /&gt;
&lt;br /&gt;
==Releases==&lt;br /&gt;
A complete listing of Eternity&#039;s release history follows.&lt;br /&gt;
&lt;br /&gt;
===Version 3.29===&lt;br /&gt;
* 3.29 Private Alpha - September 14, 2000&lt;br /&gt;
* 3.29 Public Beta 1 - January 8, 2001&lt;br /&gt;
* 3.29 Public Beta 2 - January 9, 2001&lt;br /&gt;
* 3.29 Public Beta 3 - May 10, 2001&lt;br /&gt;
* 3.29 Public Beta 4 - June 30, 2001&lt;br /&gt;
* 3.29 Development Beta 5 - October 2, 2001&lt;br /&gt;
* 3.29 &amp;quot;Gamma&amp;quot; - July 4, 2002&lt;br /&gt;
&lt;br /&gt;
===Version 3.31===&lt;br /&gt;
* 3.31 Public Beta 1 - September 11, 2002&lt;br /&gt;
* 3.31 Public Beta 2 - March 5, 2003&lt;br /&gt;
* 3.31 Public Beta 3 - August 8, 2003&lt;br /&gt;
* 3.31 Public Beta 4 - November 29, 2003&lt;br /&gt;
* 3.31 Public Beta 5 - December 17, 2003&lt;br /&gt;
* 3.31 Public Beta 6 - February 29, 2004&lt;br /&gt;
* 3.31 Public Beta 7 - April 11, 2004&lt;br /&gt;
* 3.31 &amp;quot;Delta&amp;quot; Pre-Release Alpha 1 - August 23, 2004&lt;br /&gt;
* 3.31 &amp;quot;Delta&amp;quot; Pre-Release Alpha 2 - November 11, 2004&lt;br /&gt;
* 3.31.10 &amp;quot;Delta&amp;quot; - January 19, 2005&lt;br /&gt;
&lt;br /&gt;
===Version 3.33===&lt;br /&gt;
* 3.33.00 &amp;quot;Genesis&amp;quot; - May 26, 2005&lt;br /&gt;
* 3.33.01 &amp;quot;Outcast&amp;quot; - June 24, 2005&lt;br /&gt;
* 3.33.02 &amp;quot;Warrior&amp;quot; - October 1, 2005&lt;br /&gt;
* 3.33.33 &amp;quot;Paladin&amp;quot; - May 17, 2006&lt;br /&gt;
* 3.33.50 &amp;quot;Phoenix&amp;quot; - October 23, 2006&lt;br /&gt;
&lt;br /&gt;
===Version 3.35===&lt;br /&gt;
* 3.35.90 &amp;quot;Simorgh&amp;quot; - January 11, 2009&lt;br /&gt;
* 3.35.92 &amp;quot;Nekhbet&amp;quot; - March 22, 2009&lt;br /&gt;
&lt;br /&gt;
===Version 3.37===&lt;br /&gt;
* 3.37.00 &amp;quot;Sekhmet&amp;quot; - January 1, 2010&lt;br /&gt;
&lt;br /&gt;
===Version 3.39===&lt;br /&gt;
* 3.39.20 &amp;quot;Resheph&amp;quot; - October 10, 2010&lt;br /&gt;
&lt;br /&gt;
===Version 3.40===&lt;br /&gt;
* 3.40.00 &amp;quot;Rebirth&amp;quot; - January 8, 2011&lt;br /&gt;
* 3.40.11 &amp;quot;Aasgard&amp;quot; - May 2, 2011&lt;br /&gt;
* {{Latest}} &amp;quot;Wodanaz&amp;quot; - June 22, 2011&lt;br /&gt;
&lt;br /&gt;
[[Category:Source ports]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=ExtraData&amp;diff=2849</id>
		<title>ExtraData</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=ExtraData&amp;diff=2849"/>
		<updated>2011-11-16T18:24:43Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 109.230.216.60 (Talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ExtraData is a new data specification language for the [[Eternity Engine]] that allows arbitrary extension of mapthings, lines, and sectors with any number of new fields, with data provided in more or less any format. The use of a textual input language forever removes any future problems caused by binary format limitations. The ExtraData parser is based on the libConfuse configuration file parser library by Martin Hedenfalk, which is also used by GFS and EDF. &lt;br /&gt;
&lt;br /&gt;
Each section in this document deals with one of the ExtraData constructs, as well as how to embed ExtraData in a WAD and how to associate it with a given map. &lt;br /&gt;
&lt;br /&gt;
ExtraData will continue to be supported in future versions of Eternity, even though it will soon be superceded by support for the [[Universal Doom Map Format]].&lt;br /&gt;
&lt;br /&gt;
=General Syntax=&lt;br /&gt;
&#039;&#039;See [[EDF#Syntax|EDF Syntax]], as it is the same.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Embedding and Associating ExtraData =&lt;br /&gt;
&lt;br /&gt;
ExtraData is embedded directly as a text script into a lump of any name. This can be done with any number of wad file management tools, such as SLumpEd, SLADE 3, or XWE. &lt;br /&gt;
&lt;br /&gt;
An ExtraData script is associated with a map via use of the [[MapInfo]] variable &#039;&#039;&#039;extradata&#039;&#039;&#039;. A map can only have one ExtraData script, but it is possible for multiple maps to share the same script. &lt;br /&gt;
&lt;br /&gt;
Example of ExtraData specification via EMAPINFO: &lt;br /&gt;
   [MAP01]&lt;br /&gt;
   extradata = EDLUMP01&lt;br /&gt;
&lt;br /&gt;
=Mapthings =&lt;br /&gt;
&lt;br /&gt;
Mapthings define monsters, lamps, control points, items, etc -- anything that is spawned on the map at level start. &lt;br /&gt;
&lt;br /&gt;
Each field in the mapthing definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of mapthing definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify mapthing records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Control Objects ==&lt;br /&gt;
&lt;br /&gt;
Mapthing records in ExtraData are only associated with a special control object that must be placed on the map in the usual manner. &lt;br /&gt;
&lt;br /&gt;
The ExtraData control object has a &#039;&#039;&#039;doomednum&#039;&#039;&#039; of 5004. Each control object specifies its corresponding ExtraData mapthing record number as an integer value in its mapthing &#039;&#039;&#039;options&#039;&#039;&#039; field. If your editor does not allow entering arbitrary values into the options field of mapthings, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the options field. Check your editor&#039;s documentation or user interface to verify if it supports this. &lt;br /&gt;
&lt;br /&gt;
The x, y, and angle fields of the ExtraData control object are passed on to the thing which will be spawned at the control point&#039;s location, so those fields of the control object should be set normally. The true type and options fields of the thing to be spawned, along with any extended fields, are specified in the ExtraData record. &lt;br /&gt;
&lt;br /&gt;
Any number of ExtraData control objects can reference the same ExtraData record. In the event that a control object references a non-existent ExtraData record, the ExtraData script for a level is missing, or the thing type referenced by an ExtraData record isn&#039;t valid, an [[Unknown]] thing will be spawned at the control point&#039;s location.  Note that you cannot spawn ExtraData control objects using ExtraData. Attempting this will also result in an Unknown thing. &lt;br /&gt;
&lt;br /&gt;
==Mapthing Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData mapthing record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 mapthing&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are normal mapthing fields&lt;br /&gt;
   type      &amp;lt;doomednum&amp;gt; OR &amp;lt;EDF thingtype mnemonic&amp;gt;&lt;br /&gt;
   options   &amp;lt;options flag list&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions&lt;br /&gt;
   tid       &amp;lt;number&amp;gt;&lt;br /&gt;
   args      { &amp;lt;special field&amp;gt;, ... }&lt;br /&gt;
   height    &amp;lt;number&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields:=== &lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData control objects must use to associate themselves with a mapthing record. Every ExtraData mapthing record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 65535 inclusive. Some editors may only allow input of numbers up to 32767 in the mapthing options field, or may treat values above 32767 as negative numbers. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====type====&lt;br /&gt;
Default: No meaningful default value; an Unknown thing will be spawned if not valid.&lt;br /&gt;
&lt;br /&gt;
This field specifies the type of object to spawn at the location and angle of ExtraData control objects using this record. This field can accept one of two types of values. The first is a normal thingtype doomednum as specified via [[EDF]] and used by all editors. For example, the DOOM Imp&#039;s doomednum is 3001. &lt;br /&gt;
&lt;br /&gt;
This field can also accept EDF thingtype mnemonics. EDF thingtype mnemonics must be prefixed with &#039;&#039;thing:&#039;&#039; -- this allows the parser to know it is dealing with a string instead of a number. EDF thingtypes must have a unique doomednum to be specified in an ExtraData mapthing record. If the specified EDF thingtype doesn&#039;t exist or has a doomednum of -1, an Unknown object will be spawned instead. &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
    mapthing { type 3001 }          // This record specifies an Imp via its doomednum&lt;br /&gt;
    &lt;br /&gt;
    mapthing { type DoomImp } // This record specifies an Imp by its EDF mnemonic&lt;br /&gt;
    &lt;br /&gt;
====options====&lt;br /&gt;
Default: No flags are set by default. &lt;br /&gt;
&lt;br /&gt;
This field specifies the options (also known as mapthing flags). This field uses the same syntax as BEX/EDF flag strings, but the syntax will be reviewed here for completeness. &lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. In ExtraData, if a flag list contains whitespace, commas, or plus signs, it must be enclosed in double or single quotations. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
    Flag name   Meaning&lt;br /&gt;
    ------------------------------------------------------------------------------&lt;br /&gt;
    EASY        Thing appears in easy difficulties&lt;br /&gt;
    NORMAL      Thing appears in &amp;quot;Hurt Me Plenty&amp;quot;&lt;br /&gt;
    HARD        Thing appears in Ultra-Violence and Nightmare&lt;br /&gt;
    AMBUSH      Thing is &amp;quot;deaf&amp;quot;, will not wake up via sound&lt;br /&gt;
    NOTSINGLE   Thing doesn&#039;t appear in single-player mode&lt;br /&gt;
    NOTDM       Thing doesn&#039;t appear in deathmatch&lt;br /&gt;
    NOTCOOP     Thing doesn&#039;t appear in cooperative multiplayer&lt;br /&gt;
    FRIEND      Thing uses MBF friendly logic&lt;br /&gt;
    DORMANT     Thing is dormant at map startup (script feature)&lt;br /&gt;
    ------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
The mapthing options value 256 (0x0100) is reserved. If this bit is set, all BOOM, MBF, and Eternity extended mapthing bits will be cleared. This is to guard against editors like Hellmaker which set all bits they do not understand, instead of leaving them zero. &lt;br /&gt;
&lt;br /&gt;
Example options fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    mapthing { options EASY|NORMAL|HARD }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    mapthing { options &amp;quot;EASY NORMAL HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY | NORMAL | HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY+NORMAL+HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY + NORMAL + HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY,NORMAL,HARD&amp;quot; }&lt;br /&gt;
    mapthing { options &amp;quot;EASY, NORMAL, HARD&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====tid====&lt;br /&gt;
Default: 0 &lt;br /&gt;
&lt;br /&gt;
The TID, or &amp;quot;Thing ID&amp;quot;, is a tag for mapthings which is used for identification in [[Small]] scripts. TID values must be positive numbers between 1 and 65535. The TID value zero means no TID. Negative TID values are reserved and are used to indicate special things within the engine. TIDs are not required to be unique, and most Small functions that accept TIDs will perform an action on all mapthings which bear the same TID. Things spawned within Small scripts can also be given TIDs. &lt;br /&gt;
&lt;br /&gt;
====args====&lt;br /&gt;
Default: All args values default to zero. &lt;br /&gt;
&lt;br /&gt;
The args field is a list of up to five special values which can have a broad range of meanings. Any values not provided in the args list will default, and if more than five values are provided, only the first five will be used. Currently, all args values are interpreted as integers (a non-number string evaluates to zero). This may change in the future. &lt;br /&gt;
&lt;br /&gt;
Example args list: &lt;br /&gt;
    mapthing { args { 0, 1, 2, 3, 4 } }&lt;br /&gt;
    &lt;br /&gt;
====height====&lt;br /&gt;
Default: 0 &lt;br /&gt;
&lt;br /&gt;
For normal objects, this field indicates a distance above the floor that the thing will spawn at level start. For objects with the SPAWNCEILING flag, this field indicates a distance below the ceiling instead. This field will have no effect on objects which spawn at a randomized height.&lt;br /&gt;
&lt;br /&gt;
=Linedefs =&lt;br /&gt;
&lt;br /&gt;
Linedefs define walls, two-sided textures, and provide action triggers within maps. &lt;br /&gt;
&lt;br /&gt;
Each field in the linedef definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of linedef definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify linedef records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Linedefs ==&lt;br /&gt;
&lt;br /&gt;
Linedef records in ExtraData are associated either with lines which bear the ExtraData Control Line Special (270), or with any linedef in a DOOM-format map which uses a parameterized line special. You can place the 270 special, as well as parameterized special numbers, into the normal &amp;quot;special&amp;quot; field of a line using virtually any map editor. Editors with Eternity-specific configurations should support these specials natively.&lt;br /&gt;
&lt;br /&gt;
Each control linedef (or directly-used parameterized special) specifies its corresponding ExtraData linedef record number as an integer value in its linedef tag field. If your editor does not allow entering arbitrary values up to 32767 into the tag field of linedefs, you will need to use the BOOM command-line editor, CLED. As of the initial writing time of this document, both DETH and Doom Builder support entering arbitrary integer values for the tag field. Check your editor&#039;s documentation or user interface to verify if it supports this. &lt;br /&gt;
&lt;br /&gt;
The flags, sidedefs, textures, and location of the ExtraData control linedef are used normally by the line and cannot be altered from within ExtraData. The true special (if 270 is used) and tag fields of the linedef, along with any extended fields, are specified in the ExtraData record which the control linedef references. &lt;br /&gt;
&lt;br /&gt;
Any number of linedefs can reference the same ExtraData record. In the event that a control linedef references a non-existent ExtraData record or the ExtraData script for a level is missing, the special and tag of the ExtraData control linedef will both be set to zero. &lt;br /&gt;
&lt;br /&gt;
==Linedef Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData linedef record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 linedef&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are normal linedef fields&lt;br /&gt;
   special &amp;lt;number&amp;gt; OR &amp;lt;special name&amp;gt;&lt;br /&gt;
   tag &amp;lt;number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions&lt;br /&gt;
   extflags &amp;lt;extended line flags list&amp;gt;&lt;br /&gt;
   args { &amp;lt;special field&amp;gt;, ... }&lt;br /&gt;
   alpha &amp;lt;number&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields: ===&lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData control linedefs must use to associate themselves with a linedef record. Every ExtraData linedef record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 32767 inclusive. Some editors may only allow input of numbers up to 255 in the linedef tag field. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====special====&lt;br /&gt;
:&#039;&#039;Default: 0 &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The special field determines what [[Linedef_types|type of action]] may be taken when a line is crossed, used, shot, etc. There are three types of linedef specials in Eternity: normal, generalized, and parameterized. Parameterized specials use the &#039;&#039;&#039;args&#039;&#039;&#039; field documented below to provide complete customization of line actions. &lt;br /&gt;
&lt;br /&gt;
This field can accept numbers for any special type, including generalized and parameterized, but it can also accept special names for parameterized line types. See the [[Detailed parameterized linedef specification]] for a complete list of the available names.&lt;br /&gt;
&lt;br /&gt;
====tag====&lt;br /&gt;
:&#039;&#039;Default: 0 &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The tag of the linedef, used by DOOM-style line specials and sector effects.&lt;br /&gt;
&lt;br /&gt;
====extflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies extended linedef flag values which impact the functionality of parameterized linedef specials. This field uses the same syntax as BEX/EDF flag strings, but the syntax will be reviewed here for completeness. &lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. In ExtraData, if a flag list contains whitespace, commas, or plus signs, it must be enclosed in double or single quotations. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
    Flag name   Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    CROSS       Linedef can be activated by being crossed.&lt;br /&gt;
    USE         Linedef can be activated by being used.&lt;br /&gt;
    IMPACT      Linedef can be activated by being shot.&lt;br /&gt;
    PUSH        Linedef can be activated by being pushed.&lt;br /&gt;
    PLAYER      Linedef can be activated by players.&lt;br /&gt;
    MONSTER     Linedef can be activated by objects with SPACMONSTER flag.&lt;br /&gt;
    MISSILE     Linedef can be activated by objects with SPACMISSILE flag.&lt;br /&gt;
    REPEAT      Linedef action is repeatable.&lt;br /&gt;
    1SONLY      Linedef can only be activated from first side.&lt;br /&gt;
    ADDITIVE    Linedef&#039;s midtexture is drawn with additive blending.&lt;br /&gt;
    BLOCKALL    Linedef will block everything that can be clipped.&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
Notes: IMPACT is currently only implemented for bullet weapons. The ability to use IMPACT with MISSILE will be added in the near future. The PUSH style of activation is not implemented at all yet, so this flag currently does nothing. &lt;br /&gt;
&lt;br /&gt;
Example flags fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    linedef { extflags CROSS|PLAYER|MISSILE|REPEAT }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    linedef { extflags &amp;quot;CROSS PLAYER MISSILE REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS | PLAYER | MISSILE | REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS+PLAYER+MISSILE+REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS + PLAYER + MISSILE + REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS,PLAYER,MISSILE,REPEAT&amp;quot; }&lt;br /&gt;
    linedef { extflags &amp;quot;CROSS, PLAYER, MISSILE, REPEAT&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====args====&lt;br /&gt;
:&#039;&#039;Default: All args values default to zero. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The args field is a list of up to five special values which can have a broad range of meanings. Any values not provided in the args list will default, and if more than five values are provided, only the first five will be used. Currently, all args values are interpreted as integers (a non-number string evaluates to zero). This may change in the future. The args list is used by parameterized linedef specials. &lt;br /&gt;
&lt;br /&gt;
Example args list: &lt;br /&gt;
    linedef { args { 0, 1, 2, 3, 4 } }&lt;br /&gt;
&lt;br /&gt;
====alpha====&lt;br /&gt;
:&amp;quot;Default: Alpha defaults to 1.0.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The alpha field takes a value from 0.0 to 1.0 to set the opacity at which this linedef&#039;s midtexture is drawn. When combined with the ADDITIVE extflag, this can be used for additive-blended translucency as well.&lt;br /&gt;
&lt;br /&gt;
=Sectors=&lt;br /&gt;
&lt;br /&gt;
Sectors define distinct areas of the map that are bordered by linedefs, with floor and ceiling properties, lighting data, and specials. &lt;br /&gt;
&lt;br /&gt;
Each field in the sector definition, with the exception of the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field, is optional. If a field is not provided, it takes on the default value indicated below the syntax information. Fields may also be provided in any order. &lt;br /&gt;
&lt;br /&gt;
Note that the order of sector definitions in ExtraData is not important. The &#039;&#039;&#039;recordnum&#039;&#039;&#039; field serves to identify sector records. &lt;br /&gt;
&lt;br /&gt;
==Creating ExtraData Sectors==&lt;br /&gt;
&lt;br /&gt;
Sector records in ExtraData are associated with lines which bear the ExtraData Sector Control Special (401). The linedef&#039;s front side sector is the map sector that will receive properties from the ExtraData record which is specified by number in the linedef&#039;s tag.&lt;br /&gt;
&lt;br /&gt;
Since ExtraData is attached to sectors via linedefs and not through overriding any of the sectors&#039; native fields, you specify all of the normal data for a sector in the map itself, and overriding that data through ExtraData sector records is not supported.&lt;br /&gt;
&lt;br /&gt;
Any number of linedefs can reference the same ExtraData sector record. In the event that a control linedef references a non-existent ExtraData record or the ExtraData script for a level is missing, the tag of the ExtraData sector control linedef will be set to zero and will otherwise be ignored.&lt;br /&gt;
&lt;br /&gt;
==Sector Syntax and Fields ==&lt;br /&gt;
&lt;br /&gt;
The syntax of the ExtraData sector record is as follows. Remember that all fields except the &#039;&#039;&#039;recordnum&#039;&#039;&#039; field are optional and can be specified in any order. &lt;br /&gt;
 sector&lt;br /&gt;
 {&lt;br /&gt;
   recordnum &amp;lt;unique number&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   // These fields are ExtraData extensions to sector data&lt;br /&gt;
   flags &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   flags.add &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   flags.remove &amp;lt;sector flag list&amp;gt;&lt;br /&gt;
   damage &amp;lt;integer&amp;gt;&lt;br /&gt;
   damagemask &amp;lt;integer&amp;gt;&lt;br /&gt;
   damagemod &amp;lt;method of damage type&amp;gt;&lt;br /&gt;
   damageflags &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   damageflags.add &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   damageflags.remove &amp;lt;sector damage flags list&amp;gt;&lt;br /&gt;
   floorterrain &amp;lt;terrain name&amp;gt;&lt;br /&gt;
   floorangle &amp;lt;float&amp;gt;  &lt;br /&gt;
   flooroffsetx &amp;lt;float&amp;gt;&lt;br /&gt;
   flooroffsety &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingterrain &amp;lt;terrain name&amp;gt;&lt;br /&gt;
   ceilingangle &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingoffsetx &amp;lt;float&amp;gt;&lt;br /&gt;
   ceilingoffsety &amp;lt;float&amp;gt;&lt;br /&gt;
   colormaptop &amp;lt;lump name&amp;gt;&lt;br /&gt;
   colormapmid &amp;lt;lump name&amp;gt;&lt;br /&gt;
   colormapbottom &amp;lt;lump name&amp;gt;&lt;br /&gt;
   portalflags.floor &amp;lt;portal flags list&amp;gt;&lt;br /&gt;
   portalflags.ceiling &amp;lt;portal flags list&amp;gt;&lt;br /&gt;
   overlayalpha.floor &amp;lt;percentage or value from 0 to 255&amp;gt;&lt;br /&gt;
   overlayalpha.ceiling &amp;lt;percentage or value from 0 to 255&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
===Explanation of fields: ===&lt;br /&gt;
====recordnum====&lt;br /&gt;
The recordnum serves to identify this record, and is the number which ExtraData sector control linedefs must use to associate themselves with a sector record. Every ExtraData sector record must have a unique record number. If a duplicate record number is detected, the engine will currently exit with an error message. The record number is limited to values between 0 and 32767 inclusive. Some editors may only allow input of numbers up to 255 in the linedef tag field. Beware of this. &lt;br /&gt;
&lt;br /&gt;
====flags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies sector flag values which specify various properties of sectors. This field uses the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    SECRET        Sector is secret&lt;br /&gt;
    FRICTION      Sector has friction enabled, if targeted by a BOOM friction transfer line&lt;br /&gt;
    PUSH          Sector has BOOM push effects enabled&lt;br /&gt;
    KILLSOUND     Objects in sector cannot make sounds.&lt;br /&gt;
    KILLMOVESOUND Sector makes no movement sounds, even if it has a special sound sequence&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    &lt;br /&gt;
Example flags fields -- All of these are equivalent: &lt;br /&gt;
    // This is the only syntax that does not require quotations.&lt;br /&gt;
    &lt;br /&gt;
    sector { flags SECRET|FRICTION|KILLMOVESOUND }&lt;br /&gt;
    &lt;br /&gt;
    // All of these syntaxes must be quoted, because unquoted strings in &lt;br /&gt;
    // ExtraData cannot contain spaces, commas, or plus signs.&lt;br /&gt;
    &lt;br /&gt;
    sector { flags &amp;quot;SECRET FRICTION KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET | FRICTION | KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET+FRICTION+KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET + FRICTION + KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET,FRICTION,KILLMOVESOUND&amp;quot; }&lt;br /&gt;
    sector { flags &amp;quot;SECRET, FRICTION, KILLMOVESOUND&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
====flags.add====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a list of sector flags to add to the sector. This is supported because some sector specials (such as sector special 9, &amp;quot;Secret&amp;quot;) imply that certain sector flags will be set on the sector before ExtraData is applied. If you wish to only add flags and not override any that may have been set by sector specials, use this field to specify only the flags that you wish to be added to the sector.&lt;br /&gt;
&lt;br /&gt;
====flags.remove====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a list of sector flags to remove from the sector. If you wish to only remove flags and not override any that may have been set by sector specials, use this field to specify only the flags that you wish to be removed from the sector.&lt;br /&gt;
&lt;br /&gt;
====damage====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the amount of damage this sector does to players if the players are standing inside the sector and do not meet any special exemption criteria, such as wearing a Radiation Suit. This amount is done at each damage opportunity, which is determined by the &#039;&#039;&#039;damagemask&#039;&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
====damagemask====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the interval in gametics between damage opportunities for a player standing in this sector. The default value of 0 will cause the sector to do constant and instantaneous damage every gametic. Setting this value to an integer greater than 0 will cause damage to be done every Nth gametic, with N being the value of this field. The default DOOM nukage types all use a damagemask of 32, which is roughly once per in-game second (there are 35 gametics per second).&lt;br /&gt;
&lt;br /&gt;
====damagemod====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;Unknown&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the type of damage done by this sector. If &amp;quot;Unknown&amp;quot; is specified, the damage done is generic. The value specified should be a valid EDF damagetype mnemonic. If it is not, &amp;quot;Unknown&amp;quot; will be used. This can be used to have a sector type trigger special pain and death states when it deals damage. For example, you can use &#039;&#039;&#039;slime&#039;&#039;&#039; or &#039;&#039;&#039;lava&#039;&#039;&#039; damagemod.&lt;br /&gt;
&lt;br /&gt;
====damageflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This field specifies sector damage flag values which affect the manner in which a sector does damage. This field uses the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    LEAKYSUIT     The player may take damage at random even if he has the radsuit powerup&lt;br /&gt;
    IGNORESUIT    Radiation suit powerups are ignored entirely&lt;br /&gt;
    ENDGODMODE    God mode will be disabled when the player enters this sector&lt;br /&gt;
    EXITLEVEL     The player will exit if has &amp;lt; 11 health and this sector tries to do damage&lt;br /&gt;
    TERRAINHIT    A TerrainTypes hit will occur when this sector does damage&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
====damageflags.add====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Because some sector types imply the activation of various sector damageflags (for example, DOOM sector type 11 sets sector damageflags ENDGODMODE and EXITLEVEL), this field is supported to add additional damageflags to any that may have been set by the  map itself. Simply specify whatever flags you wish to have added to those that are already set.&lt;br /&gt;
&lt;br /&gt;
====damageflags.remove====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As with damageflags.add, it may be desirable to turn off some flags that were set by sector specials or other portions of the map data. Use this field to specify any sector damage flags you want to remove from sectors.&lt;br /&gt;
&lt;br /&gt;
====floorterrain====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@flat&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies an EDF TerrainTypes mnemonic for the type of terrain this sector should exhibit on its floor. If left to default or specified with an invalid name, the terrain of the sector will be determined by its floorpic as usual.&lt;br /&gt;
&lt;br /&gt;
====floorangle====&lt;br /&gt;
:&#039;&#039;Default: 0 (East, or upper edge to the north)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the angle of the floor flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a &#039;&#039;&#039;clockwise&#039;&#039;&#039; fashion, contrary to most other angles in the DOOM engine.&lt;br /&gt;
&lt;br /&gt;
====flooroffsetx/flooroffsety====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the x and y offsets of the floor flat, relative to the normal floor grid, in floating point units.&lt;br /&gt;
&lt;br /&gt;
====ceilingterrain====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@flat&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies an EDF TerrainTypes mnemonic for the type of terrain this sector should exhibit on its ceiling. If left to default or specified with an invalid name, the terrain of the sector will be determined by its floorpic as usual. This currently only affects the behavior of bullet puffs when particles are enabled.&lt;br /&gt;
&lt;br /&gt;
====ceilingangle====&lt;br /&gt;
:&#039;&#039;Default: 0 (East, or upper edge to the north)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the angle of the ceiling flat in floating-point degrees from 0 to 359. Note that for compatibility with ZDoom, the angle specified advances in a &#039;&#039;&#039;clockwise&#039;&#039;&#039; fashion, contrary to most other angles in the DOOM engine.&lt;br /&gt;
&lt;br /&gt;
====flooroffsetx/flooroffsety====&lt;br /&gt;
:&#039;&#039;Default: 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the x and y offsets of the ceiling flat, relative to the normal ceiling grid, in floating point units.&lt;br /&gt;
&lt;br /&gt;
====colormaptop====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is above the fake ceiling of a BOOM 242 &amp;quot;deep water&amp;quot; effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect.&lt;br /&gt;
&lt;br /&gt;
====colormapmid====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is between the normal floor and ceiling for an ordinary sector, or between the fake floor and ceiling for a BOOM 242 &amp;quot;deep water&amp;quot; sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by a 242 effect.&lt;br /&gt;
&lt;br /&gt;
====colormapbottom====&lt;br /&gt;
:&#039;&#039;Default: &amp;quot;@default&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifies the colormap lump to use when a player&#039;s viewpoint is below the fake floor of a BOOM 242 &amp;quot;deep water&amp;quot; effect applying to this sector. If left to default, the global colormap from MapInfo will be used as normal, unless one is specified by the 242 effect.&lt;br /&gt;
&lt;br /&gt;
====portalflags====&lt;br /&gt;
:&#039;&#039;Default: No flags are set by default.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These two fields (portalflags.floor and portalflags.ceiling) specify portal property flag values which affect the rendering and behavior of portals attached to this sector&#039;s surfaces. These fields use the same syntax as BEX/EDF flag strings. &lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field: &lt;br /&gt;
&lt;br /&gt;
    Flag name     Meaning&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
    DISABLED      Portal is completely disabled&lt;br /&gt;
    NORENDER      Portal will not be rendered, but may still be interactive&lt;br /&gt;
    NOPASS        Objects cannot pass through the portal even if it is a linked portal&lt;br /&gt;
    BLOCKSOUND    Sound will not traverse through a linked portal&lt;br /&gt;
    OVERLAY       The portal will render the sector&#039;s flat as a blended overlay&lt;br /&gt;
    ADDITIVE      If OVERLAY is also specified, the overlay will use additive blending&lt;br /&gt;
    USEGLOBALTEX  Reserved for future per-portal texture specification&lt;br /&gt;
    ---------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
====overlayalpha====&lt;br /&gt;
:&#039;&#039;Default&#039;&#039;: 100%&lt;br /&gt;
&lt;br /&gt;
These two fields (overlayalpha.floor and overlayalpha.ceiling) specify the opacity of the corresponding portal overlay, if any exists. You can specify either a percentage value from 0% to 100%, or a plain integer number from 0 to 255. 100%/255 are completely solid, while 0% is invisible.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Category:Editing&amp;diff=2848</id>
		<title>Category:Editing</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Category:Editing&amp;diff=2848"/>
		<updated>2011-11-16T18:24:39Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 200.246.158.1 (Talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Editing category, should end up with a lot of subcategories.&lt;br /&gt;
&lt;br /&gt;
[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Portals&amp;diff=2847</id>
		<title>Portals</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Portals&amp;diff=2847"/>
		<updated>2011-11-16T18:24:26Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 64.64.11.143 (Talk) to last revision by Quasar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Portal]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Portal&amp;diff=2846</id>
		<title>Portal</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Portal&amp;diff=2846"/>
		<updated>2011-11-16T18:24:15Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Portals are a powerful mapping feature which allow a variety of rendering effects; they allow an architectural surface to be used as a &amp;quot;window&amp;quot; which can display something besides the texture that would normally cover the surface. Anything from simple fixed plane, to another area of the map can be rendered within these surfaces via the same architecture.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
=== Portal Window ===&lt;br /&gt;
&lt;br /&gt;
&#039;Portal window&#039; refers to the area of the screen that a portal occupies. For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pterminology01.png]]&lt;br /&gt;
&lt;br /&gt;
This is a simple map with no portal surfaces, and no portal window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Pterminology02.png]]&lt;br /&gt;
&lt;br /&gt;
This is the same simple map with a fixed plane portal applied to the ceiling of the sector. The portal window is outlined in white.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Pterminology03.png]]&lt;br /&gt;
&lt;br /&gt;
This is the map, but the same plane portal is applied to the ceiling and the far wall. The two surfaces display the same portal, and as such, they share a common portal window (also outlined in white).&lt;br /&gt;
&lt;br /&gt;
All surfaces in a scene that have a common portal will share the same portal window.&lt;br /&gt;
&lt;br /&gt;
=== Dummy Sector ===&lt;br /&gt;
A sector off of the main map area which is used by line or sector specials as a model, or as housing for lines which need to be a specific size.&lt;br /&gt;
&lt;br /&gt;
== Fixed Plane Portals ==&lt;br /&gt;
&lt;br /&gt;
Fixed plane portals (as the name implies) render a single, fixed plane into the portal window. The plane is always rendered a the same height and texture offset even when the camera changes its position.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:283 Apply fixed plane portal to the ceilings of tagged sectors&lt;br /&gt;
:284 Apply fixed plane portal to the floors of tagged sectors&lt;br /&gt;
:285 Apply fixed plane portal to the floors and ceilings of tagged sectors&lt;br /&gt;
&lt;br /&gt;
The front side sector of the special line is used to generate the plane. The ceiling texture, sector light, and ceiling texture scrolling are all used as attributes for the rendered fixed plane. The absolute height of the ceiling is used as the height of the plane. That is, if the special line front sector has a ceiling height of 64, the plane will always render at 64 units above the camera height. If the ceiling height is 128, the plane will always render at 128 units above the camera height, and so on.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pfixedplane01.png]]  [[Image:Pfixedplane02.png]]&lt;br /&gt;
&lt;br /&gt;
The left image shows a simple map with a small sector off to the side of the rest of the map. One of the lines in this sector has been given  a 283 special which will apply a fixed play portal to all tagged sector ceilings. The height of the dummy sector is set to 128, the blue water texture FWATER1 is the ceiling texture, there is no scrolling applied to the ceiling, and the ceiling height is 128.&lt;br /&gt;
&lt;br /&gt;
The right image shows what the map looks like in [[Eternity]]. Notice the rendered height of the plane is the same as a ceiling 128 units above eye level.&lt;br /&gt;
&lt;br /&gt;
The line special 289 can be used to apply fixed plane portals to walls as well. The special will find a portal with the same line tag and will display that portal on the surface of the line.&lt;br /&gt;
&lt;br /&gt;
Here is the map from above:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pfixedplane03.png]]  [[Image:Pfixedplane04.png]]&lt;br /&gt;
&lt;br /&gt;
The highlighted wall has been given a special of 289 and tagged to the portal line. In-game, the tagged wall now displays the portal. Note: The 289 line special works for all portal types.&lt;br /&gt;
&lt;br /&gt;
== Horizon Plane Portals ==&lt;br /&gt;
&lt;br /&gt;
Horizon portals display two planes which appear to go on forever until they meet in the middle (horizon). The plane coordinates are not fixed, and will appear to move with the camera. This can be used to achieve the illusion that water or grass goes off far into the distance without having to make overly large sectors.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:286 Apply horizon portal to the ceilings of tagged sectors&lt;br /&gt;
:287 Apply horizon portal to the floors of tagged sectors&lt;br /&gt;
:288 Apply horizon portal to the floors and ceilings of tagged sectors&lt;br /&gt;
&lt;br /&gt;
Like the fixed plane portals, the front sector of the special line is used. The top plane uses the front sector ceiling (height, texture, scrolling, light) as its model, and the bottom plane uses the front sector floor (height, texture, scrolling, light) as its model. Example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Phorizon01.png]]&lt;br /&gt;
&lt;br /&gt;
This map has a horizon portal applied to the ceiling and wall of the sector where the player starts. Both sectors have a floor height of 0, and a ceiling height of 72, but the floor texture in the dummy sector is set to a grass texture, and the ceiling texture is set to FSKY_1. This produces a field of grass which goes on into the horizon. If the camera moves up or down, the floor plane will appear to move along with it. If the ceiling plane had a regular texture on it, it would also move with the camera and appear to go off into the distance.&lt;br /&gt;
&lt;br /&gt;
Note: If the camera ever travels below the floor height of a horizon portal, the bottom plane will appear to move in the opposite direction of the camera movement until the camera is once again above the floor height.&lt;br /&gt;
&lt;br /&gt;
== Skybox Portals ==&lt;br /&gt;
&lt;br /&gt;
Skybox portals draw another part of the map into the portal window. The scene in the portal window will use the angle from the player camera, but will render the scene from the location of the skybox camera. This helps create the illusion that the contents of the skybox actually surround the map and are much larger in size than they really are.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:290 Apply skybox portals to the ceilings of tagged sectors&lt;br /&gt;
:291 Apply skybox portals to the floors of tagged sectors&lt;br /&gt;
:292 Apply skybox portals to the floors and ceilings of tagged sectors&lt;br /&gt;
&lt;br /&gt;
The front sector of the special line becomes the &amp;quot;skybox sector&amp;quot;. This is not the only sector that gets rendered, but this sector is where [[Eternity]] will look for the skybox camera object which will be the point the skybox is rendered from.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pskybox01.png]]&lt;br /&gt;
&lt;br /&gt;
This map has a skybox portal applied to the ceiling and wall of the sector with the player start. The &amp;quot;Skybox sector&amp;quot; is the small rectangular one which contains the EESkyboxCam object. The camera object always spawns on the floor, so the skybox sector has been made a glass floor 48 units above the surrounding area so the camera will be above the floor of the box.&lt;br /&gt;
&lt;br /&gt;
[[Image:Pskybox02.png]] [[Image:Pskybox03.png]]&lt;br /&gt;
&lt;br /&gt;
The first image is the view in-game when the player no-clips into the sky box. The second image is the view from inside the main map area with the skybox portal applied. No matter where the player moves inside the map area, the skybox portal will always render from the location of the camera inside the skybox, however, the skybox is rendered from the angle the player is looking. [[ExtraData]] also provides a means of assigning a z-height to objects in maps. This could also be used to raise the skybox camera off the floor. If the skybox camera is left on the floor, the floor plane will not render and result in [[Doom Wiki:HOM|HOM]].&lt;br /&gt;
&lt;br /&gt;
The skybox is not restricted to simple boxes. Any map architecture the skybox camera can see can be part of a skybox. Below is an example of a basic mountainous landscape created with map architecture. &lt;br /&gt;
&lt;br /&gt;
[[Image:Pskybox04.png]]&lt;br /&gt;
&lt;br /&gt;
== Anchored Portals ==&lt;br /&gt;
&lt;br /&gt;
Anchored portals are the most powerful and complex of all the basic portal types. Anchored portals will render another area of the map into the portal window, but the portal camera moves as the player moves, creating the illusion that the other area of the map is actually connected to the main area. This can be used to create the appearance of 3D architecture. Before use, however, an understanding of how these portals work is important.&lt;br /&gt;
&lt;br /&gt;
In order to piece the parts of a map together, an anchored portal needs to know how far apart they are. The distance is determined with the use of specific line specials. Each anchored portal needs a &amp;quot;portal line&amp;quot; (the line with the anchored portal special) which usually area the portal should render, and an &amp;quot;anchor line&amp;quot; which is usually located in the main map area. The distance between these lines becomes the offset, that is, how far [[Eternity]] needs to move the camera from where the player stands to get the portal area.&lt;br /&gt;
&lt;br /&gt;
Line specials:&lt;br /&gt;
&lt;br /&gt;
:295 Apply anchored portal to the ceilings of all tagged sectors&lt;br /&gt;
:296 Apply anchored portal to the floors of all tagged sectors&lt;br /&gt;
:297 Apply anchored portal to the floors and ceilings of all tagged sectors&lt;br /&gt;
:298 Anchor line (for specials 295 and 297)&lt;br /&gt;
:299 Anchor line (for special 296)&lt;br /&gt;
&lt;br /&gt;
There are two different anchor line types so a different anchored portal can be placed on the ceiling and floor of the same sector. The two portals will share the sector tag.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Panchored01.png]]&lt;br /&gt;
&lt;br /&gt;
The above map has a single anchored portal applied to the inner sector of the area the player start is in. The &amp;quot;portal area&amp;quot; is to the right, and the &amp;quot;main area&amp;quot; is to the left. The view height is not changed, so the portal area needs to be set above the main area, or there will be [[Doom Wiki:HOM|HOM]] in the portal window. Note that no camera objects are needed for this effect. The portal will create a temporary camera automatically.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how it works:&lt;br /&gt;
&lt;br /&gt;
When the map is loaded, the the centers of both lines (the portal and the anchor line) are calculated, and the distance between those centers is determined:&lt;br /&gt;
&lt;br /&gt;
[[Image:Panchored03.png]]&lt;br /&gt;
&lt;br /&gt;
In the example, the distance is 512 units to the east and 0 units north. This set of numbers becomes the &amp;quot;portal offset&amp;quot; (distance between where the player stands and where the portal camera should go) and when the portal is rendered, the portal camera is place 512 map units east of the player camera, and the map is rendered from the portal camera. &lt;br /&gt;
&lt;br /&gt;
If the portal camera becomes obstructed, unwanted results can occur:&lt;br /&gt;
&lt;br /&gt;
[[Image:Panchored04.png]]&lt;br /&gt;
&lt;br /&gt;
In the example above, the camera actually &amp;quot;wanders&amp;quot; out of the portal area and into the main part of the map resulting in an unwanted wall rendering in the portal window. To prevent occurrences such as this, it is usually a good idea to place the portal area a good distance away from any other map architecture to prevent the camera from &amp;quot;wandering into&amp;quot; anything else. If the camera moves out of the portal area, it won&#039;t cause problems as long as it is not obstructed by other map architecture.&lt;br /&gt;
&lt;br /&gt;
== Linked Portals ==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See: [[Linked portals]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2845</id>
		<title>List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2845"/>
		<updated>2011-11-16T18:23:54Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This &#039;&#039;&#039;list of codepointers&#039;&#039;&#039; is a list of all the action routines which can be used in [[EDF]] [[frame]]s. The Heretic actions &#039;&#039;can&#039;&#039; be used in Doom based modifications.&lt;br /&gt;
&lt;br /&gt;
=Player guns=&lt;br /&gt;
==Attacks==&lt;br /&gt;
*[[CustomPlayerMelee]]&lt;br /&gt;
*[[FireBFG]]&lt;br /&gt;
*[[FireCGun]]&lt;br /&gt;
*[[FireCustomBullets]]&lt;br /&gt;
*[[FireMissile]]: rocket launcher attack&lt;br /&gt;
*[[FireOldBFG]]: alpha Doom BFG attack&lt;br /&gt;
*[[FirePistol]]&lt;br /&gt;
*[[FirePlasma]]&lt;br /&gt;
*[[FirePlayerMissile]]: custom missile attack&lt;br /&gt;
*[[FireShotgun]]&lt;br /&gt;
*[[FireShotgun2]]: super shotgun attack&lt;br /&gt;
*[[PlayerThunk]] {{deprecated}}&lt;br /&gt;
*[[Punch]]: fist attack&lt;br /&gt;
*[[Saw]]: chainsaw attack&lt;br /&gt;
&lt;br /&gt;
==Control==&lt;br /&gt;
*[[CheckReload]]: super shotgun reload check&lt;br /&gt;
*[[CheckReloadEx]]: extended version that allows counter comparison&lt;br /&gt;
*[[JumpIfNoAmmo]]: as it says&lt;br /&gt;
*[[Lower]]: &amp;quot;lower&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[Raise]]: &amp;quot;raise&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[ReFire]]: skip frame if shooting is maintained (plasma gun cooldown effect)&lt;br /&gt;
*[[WeaponReady]]: &amp;quot;bob&amp;quot; effect, ready frame&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
*[[EjectCasing]]: throw casing&lt;br /&gt;
&lt;br /&gt;
==Muzzle flash effects==&lt;br /&gt;
*[[GunFlash]]: produces gunflash sprite without firing anything&lt;br /&gt;
*[[Light0]]: resets the muzzle light level&lt;br /&gt;
*[[Light1]]: muzzle light level 1&lt;br /&gt;
*[[Light2]]&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[BFGSound]]&lt;br /&gt;
*[[CloseShotgun2]]: this one also includes ReFire&lt;br /&gt;
*[[LoadShotgun2]]: ...these two don&#039;t&lt;br /&gt;
*[[OpenShotgun2]]&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[PlayerStartScript]]: start map script&lt;br /&gt;
*[[WeaponCopyCtr]]&lt;br /&gt;
*[[WeaponCtrOp]]&lt;br /&gt;
*[[WeaponCtrJump]]&lt;br /&gt;
*[[WeaponCtrSwitch]]&lt;br /&gt;
*[[WeaponSetCtr]]&lt;br /&gt;
&lt;br /&gt;
=Map objects=&lt;br /&gt;
==Flashes and booms==&lt;br /&gt;
*[[BFG11KHit]]: [[SMMU]] BFG variant&lt;br /&gt;
*[[BFGBurst]]: produce a burst of smaller plasma objects&lt;br /&gt;
*[[BFGSpray]]: BFG explosion afterglow&lt;br /&gt;
*[[BouncingBFG]]: SMMU bouncing BFG&lt;br /&gt;
*[[BrainExplode]]: brain perpetual explosion controller&lt;br /&gt;
*[[BrainScream]]: giant demon wall explosion sequence&lt;br /&gt;
*[[Detonate]]: thing damage controlled explosion&lt;br /&gt;
*[[Explode]]: rocket/barrel splash damage&lt;br /&gt;
*[[Fire]]: stick on the face of attacker&#039;s target, like the vile fire&lt;br /&gt;
*[[GenTracer]]: generic tracer&lt;br /&gt;
*[[Mushroom]]: mushroom explosion&lt;br /&gt;
*[[Nailbomb]]: explosion with shrapnels&lt;br /&gt;
*[[SpawnFly]]: spawn cube controller&lt;br /&gt;
*[[Tracer]]: one of the required components for homing missiles&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastPuff]]: weredragon fire belch smoke&lt;br /&gt;
*[[BlueSpark]]: create a blue d&#039;sparil attack spark&lt;br /&gt;
*[[GenWizard]]: create a disciple&lt;br /&gt;
*[[HticExplode]]: heretic-compatible explosion&lt;br /&gt;
*[[HticTracer]]: like those golem skulls&lt;br /&gt;
*[[LichFireGrow]]: how the fire column expands&lt;br /&gt;
*[[LichIceImpact]]: how an ice globe explodes into shards&lt;br /&gt;
*[[MntrFloorFire]]: used by the straight flame snake&lt;br /&gt;
*[[PhoenixPuff]]: missile trail&lt;br /&gt;
*[[PodPain]]: pod goo splash on being hit&lt;br /&gt;
*[[VolcBallImpact]]: how a volcano ball fragments on impact&lt;br /&gt;
*[[WhirlwindSeek]]: used by the tornados&lt;br /&gt;
&lt;br /&gt;
==AI==&lt;br /&gt;
*[[AlertMonsters]]: shout so other monsters chase the player&lt;br /&gt;
*[[Chase]]: pursue a target and check for attack&lt;br /&gt;
*[[CPosRefire]]: go to seestate if target is out of sight&lt;br /&gt;
*[[Face]]: face a specified angle&lt;br /&gt;
*[[FaceTarget]]: turn to target, look around it if it&#039;s partly invisible&lt;br /&gt;
*[[GenRefire]]: customizable refire control&lt;br /&gt;
*[[KeepChasing]]: pursue target without attacking&lt;br /&gt;
*[[Look]]: stand in guard, looking for targets&lt;br /&gt;
*[[RandomWalk]]: random wandering for inactive enemies&lt;br /&gt;
*[[Sor1Chase]]: d&#039;sparil mount specific chase&lt;br /&gt;
*[[Sor1Pain]]: d&#039;sparil mount specific twitch. Calls Pain.&lt;br /&gt;
*[[SpidRefire]]: like CPosRefire, slightly modified&lt;br /&gt;
*[[Turn]]: turn around a specified angle&lt;br /&gt;
*[[VileChase]]: same as Chase, but resurrecting encountered cadavers&lt;br /&gt;
&lt;br /&gt;
==AI attacks==&lt;br /&gt;
*[[BetaSkullAttack]]: remote melee attack&lt;br /&gt;
*[[BrainSpit]]: cube spawn&lt;br /&gt;
*[[BruisAttack]]: baron/knight of hell&lt;br /&gt;
*[[BspiAttack]]: arachnotron&lt;br /&gt;
*[[BulletAttack]]: custom bullet shooting&lt;br /&gt;
*[[CPosAttack]]: pistol attack w/ shotgn noise&lt;br /&gt;
*[[CyberAttack]]: rocket launching&lt;br /&gt;
*[[FatAttack1]]: mancubus left attack&lt;br /&gt;
*[[FatAttack2]]: mancubus right attack&lt;br /&gt;
*[[FatAttack3]]: mancubus front attack&lt;br /&gt;
*[[HeadAttack]]: cacodemon&lt;br /&gt;
*[[MissileAttack]]: custom missile shooting&lt;br /&gt;
*[[MissileSpread]]: MissileAttack variation, supports shooting spread shots&lt;br /&gt;
*[[PainAttack]]: elemental&lt;br /&gt;
*[[PainDie]]: elemental death (3 souls)&lt;br /&gt;
*[[PosAttack]]: former human&lt;br /&gt;
*[[SargAttack]]: demon bite&lt;br /&gt;
*[[Scratch]]: custom melee attack&lt;br /&gt;
*[[SkelFist]]: revenant punch&lt;br /&gt;
*[[SkelMissile]]: revenant missile&lt;br /&gt;
*[[SkullAttack]]: flying skull&lt;br /&gt;
*[[SPosAttack]]: sergeant&lt;br /&gt;
*[[ThingSummon]]: customized summoning&lt;br /&gt;
*[[TroopAttack]]: imp&lt;br /&gt;
*[[VileAttack]]: arch vile toss&lt;br /&gt;
*[[VileTarget]]: spawn a vile fire effect on target&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastAttack]]: weredragon&lt;br /&gt;
*[[ClinkAttack]]: sabre&lt;br /&gt;
*[[ImpChargeAtk]]: gargoyle charge&lt;br /&gt;
*[[ImpMeleeAtk]]: gargoyle scratch&lt;br /&gt;
*[[ImpMisssileAtk]]: gargoyle fire&lt;br /&gt;
*[[KnightAttack]]: undead warrior&lt;br /&gt;
*[[LichAttack]]: iron lich random attack **only one which includes ice globes**&lt;br /&gt;
*[[LichFire]]: iron lich fire column&lt;br /&gt;
*[[LichWhirlwind]]: iron lich tornado&lt;br /&gt;
*[[MinotaurAtk1]]: maulotaur melee damage&lt;br /&gt;
*[[MinotaurAtk2]]: spreadshot&lt;br /&gt;
*[[MinotaurAtk3]]: straight flame snake&lt;br /&gt;
*[[MinotaurCharge]]: maulotaur charge&lt;br /&gt;
*[[MinotaurDecide]]: maulotaur ranged attack choosing&lt;br /&gt;
*[[MummyAttack]]: golem melee&lt;br /&gt;
*[[MummyAttack2]]: nitrogolem range&lt;br /&gt;
*[[SnakeAttack]]: ophidian blue spark&lt;br /&gt;
*[[SnakeAttack2]]: ophidian yellow shot&lt;br /&gt;
*[[Srcr1Attack]]: d&#039;sparil mount attack&lt;br /&gt;
*[[Srcr2Attack]]: d&#039;sparil sorcerer attack&lt;br /&gt;
*[[Srcr2Decide]]: d&#039;sparil decide whether to teleport&lt;br /&gt;
*[[VolcanoBlast]]: volcano burst&lt;br /&gt;
*[[WizardAtk3]]: disciple tri-ball&lt;br /&gt;
&lt;br /&gt;
==Alterations==&lt;br /&gt;
*[[BossDeath]]: special monster death functions (such as Baron death in E1M8)&lt;br /&gt;
*[[BrainDie]]: exits the level&lt;br /&gt;
*[[CasingThrust]]: movement for ejected casing&lt;br /&gt;
*[[Die]]: causes suicide&lt;br /&gt;
*[[FadeIn]]: increments alpha&lt;br /&gt;
*[[FadeOut]]: decrements alpha, DOESN&#039;T destroy the thing&lt;br /&gt;
*[[Fall]]: remove SOLID flag (used on dying monsters)&lt;br /&gt;
*[[KeenDie]]: open 666-tagged doors on death of all like-named monsters&lt;br /&gt;
*[[KillChildren]]: destroy all summoned things&lt;br /&gt;
*[[LineEffect]]: activate a tag using a special&lt;br /&gt;
*[[PainNukeSpec]]&lt;br /&gt;
*[[SetFlags]]: alter flags&lt;br /&gt;
*[[SetTranslucent]]: modify alpha amount; setup additiveness or fuzziness&lt;br /&gt;
*[[ShowMessage]]: display text message&lt;br /&gt;
*[[Spawn]]: create another object on top of this one&lt;br /&gt;
*[[SteamSpawn]]: create steam effects&lt;br /&gt;
*[[Stop]]: set velocity to 0&lt;br /&gt;
*[[UnSetFlags]]: alter flags&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[AccelGlitter]]: accelerate upwards&lt;br /&gt;
*[[DripBlood]]: spawn heretic blood&lt;br /&gt;
*[[HticBossDeath]]: special monster death functions for Heretic&lt;br /&gt;
*[[ImpDeath]]: special death for gargoyle&lt;br /&gt;
*[[ImpExplode]]: crash for gargoyle&lt;br /&gt;
*[[ImpXDeath1]]: special extreme death for gargoyle, stage 1&lt;br /&gt;
*[[ImpXDeath2]]: special extreme death for gargoyle, stage 2&lt;br /&gt;
*[[MakePod]]: generate a pod&lt;br /&gt;
*[[MummySoul]]: create raising soul&lt;br /&gt;
*[[PlayerSkull]]: player death effect, when the skull tosses in air&lt;br /&gt;
*[[RemovePod]]: notifies the generator that this pod was destroyed&lt;br /&gt;
*[[Sor2DthInit]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[Sor2DthLoop]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[SorcererRise]]: d&#039;sparil waking up after mount crash&lt;br /&gt;
*[[SorcNukeSpec]]&lt;br /&gt;
*[[SpawnAbove]]: spawns above the summoner&lt;br /&gt;
*[[SpawnGlitter]]: create teleportation sparkle&lt;br /&gt;
*[[WizardAtk1]]: face target and clear GHOST flag&lt;br /&gt;
*[[WizardAtk2]]: face target and set GHOST flag&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[AmbientThinker]]: ambient sound maintenance&lt;br /&gt;
*[[BabyMetal]]: bspwlk sound effect -- also includes Chase!&lt;br /&gt;
*[[BrainAwake]]: loud bossit sound effect&lt;br /&gt;
*[[BrainPain]]: loud bospn sound effect&lt;br /&gt;
*[[FatRaise]]: mancubus warning -- also includes FaceTarget&lt;br /&gt;
*[[FireCrackle]]: flame sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[Hoof]]: cyberdemon hoof sound -- also includes Chase!&lt;br /&gt;
*[[Metal]]: metal sound effect -- also includes Chase!&lt;br /&gt;
*[[Pain]]: play pain sound&lt;br /&gt;
*[[PlayerScream]]: player-specific, health-dependent (death) sound&lt;br /&gt;
*[[PlaySound]]: custom sound&lt;br /&gt;
*[[PlaySoundEx]]: extended custom sound&lt;br /&gt;
*[[Scream]]: play death sound&lt;br /&gt;
*[[SkelWhoosh]]: revenant swing noise -- also includes FaceTarget&lt;br /&gt;
*[[SpawnSound]]: boscub sound effect -- also includes SpawnFly&lt;br /&gt;
*[[StartFire]]: flamst sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[VileStart]]: archvile heat-up noise&lt;br /&gt;
*[[XScream]]: extreme death gut noise&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[AproxDistance]]: assign distance from target to a variable&lt;br /&gt;
*[[CheckPlayerDone]]: jump to a frame if not under player control&lt;br /&gt;
*[[CopyCounter]]: copy a variable to another variable&lt;br /&gt;
*[[CounterJump]]: counter-based next frame&lt;br /&gt;
*[[CounterOp]]: set a variable to an operation of another 2 variables&lt;br /&gt;
*[[CounterSwitch]]: counter-based set of frames&lt;br /&gt;
*[[HealthJump]]: health-based next frame&lt;br /&gt;
*[[JumpIfTargetInLOS]]: jump to frame if target is in the field of view&lt;br /&gt;
*[[RandomJump]]: random next frame&lt;br /&gt;
*[[SetCounter]]: set a variable&lt;br /&gt;
*[[SetTics]]: set frame duration&lt;br /&gt;
*[[StartScript]]: run map script&lt;br /&gt;
*[[TargetJump]]: go to designated frame if having a target&lt;br /&gt;
&lt;br /&gt;
[[Category:Codepointers|*]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2747</id>
		<title>List of codepointers</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_codepointers&amp;diff=2747"/>
		<updated>2011-07-13T16:45:29Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 59.152.215.253 (Talk) to last revision by Printz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This &#039;&#039;&#039;list of codepointers&#039;&#039;&#039; is a list of all the action routines which can be used in [[EDF]] [[frame]]s. The Heretic actions &#039;&#039;can&#039;&#039; be used in Doom based modifications.&lt;br /&gt;
&lt;br /&gt;
=Player guns=&lt;br /&gt;
==Attacks==&lt;br /&gt;
*[[CustomPlayerMelee]]&lt;br /&gt;
*[[FireBFG]]&lt;br /&gt;
*[[FireCGun]]&lt;br /&gt;
*[[FireCustomBullets]]&lt;br /&gt;
*[[FireMissile]]: rocket launcher attack&lt;br /&gt;
*[[FireOldBFG]]: alpha Doom BFG attack&lt;br /&gt;
*[[FirePistol]]&lt;br /&gt;
*[[FirePlasma]]&lt;br /&gt;
*[[FirePlayerMissile]]: custom missile attack&lt;br /&gt;
*[[FireShotgun]]&lt;br /&gt;
*[[FireShotgun2]]: super shotgun attack&lt;br /&gt;
*[[PlayerThunk]] {{deprecated}}&lt;br /&gt;
*[[Punch]]: fist attack&lt;br /&gt;
*[[Saw]]: chainsaw attack&lt;br /&gt;
&lt;br /&gt;
==Control==&lt;br /&gt;
*[[CheckReload]]: super shotgun reload check&lt;br /&gt;
*[[CheckReloadEx]]: extended version that allows counter comparison&lt;br /&gt;
*[[JumpIfNoAmmo]]: as it says&lt;br /&gt;
*[[Lower]]: &amp;quot;lower&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[Raise]]: &amp;quot;raise&amp;quot; effect &amp;amp; frame&lt;br /&gt;
*[[ReFire]]: skip frame if shooting is maintained (plasma gun cooldown effect)&lt;br /&gt;
*[[WeaponReady]]: &amp;quot;bob&amp;quot; effect, ready frame&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
*[[EjectCasing]]: throw casing&lt;br /&gt;
*[[PlayerStartScript]]: start map script&lt;br /&gt;
&lt;br /&gt;
==Muzzle flash effects==&lt;br /&gt;
*[[GunFlash]]: produces gunflash sprite without firing anything&lt;br /&gt;
*[[Light0]]: resets the muzzle light level&lt;br /&gt;
*[[Light1]]: muzzle light level 1&lt;br /&gt;
*[[Light2]]&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[BFGSound]]&lt;br /&gt;
*[[CloseShotgun2]]: this one also includes ReFire&lt;br /&gt;
*[[LoadShotgun2]]: ...these two don&#039;t&lt;br /&gt;
*[[OpenShotgun2]]&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[WeaponCopyCtr]]&lt;br /&gt;
*[[WeaponCtrOp]]&lt;br /&gt;
*[[WeaponCtrJump]]&lt;br /&gt;
*[[WeaponCtrSwitch]]&lt;br /&gt;
*[[WeaponSetCtr]]&lt;br /&gt;
&lt;br /&gt;
=Map objects=&lt;br /&gt;
==Flashes and booms==&lt;br /&gt;
*[[BFG11KHit]]: [[SMMU]] BFG variant&lt;br /&gt;
*[[BFGBurst]]: produce a burst of smaller plasma objects&lt;br /&gt;
*[[BFGSpray]]: BFG explosion afterglow&lt;br /&gt;
*[[BouncingBFG]]: SMMU bouncing BFG&lt;br /&gt;
*[[BrainExplode]]: brain perpetual explosion controller&lt;br /&gt;
*[[BrainScream]]: giant demon wall explosion sequence&lt;br /&gt;
*[[Detonate]]: thing damage controlled explosion&lt;br /&gt;
*[[Explode]]: rocket/barrel splash damage&lt;br /&gt;
*[[Fire]]: stick on the face of attacker&#039;s target, like the vile fire&lt;br /&gt;
*[[GenTracer]]: generic tracer&lt;br /&gt;
*[[Mushroom]]: mushroom explosion&lt;br /&gt;
*[[Nailbomb]]: explosion with shrapnels&lt;br /&gt;
*[[SpawnFly]]: spawn cube controller&lt;br /&gt;
*[[Tracer]]: one of the required components for homing missiles&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastPuff]]: weredragon fire belch smoke&lt;br /&gt;
*[[BlueSpark]]: create a blue d&#039;sparil attack spark&lt;br /&gt;
*[[GenWizard]]: create a disciple&lt;br /&gt;
*[[HticExplode]]: heretic-compatible explosion&lt;br /&gt;
*[[HticTracer]]: like those golem skulls&lt;br /&gt;
*[[LichFireGrow]]: how the fire column expands&lt;br /&gt;
*[[LichIceImpact]]: how an ice globe explodes into shards&lt;br /&gt;
*[[MntrFloorFire]]: used by the straight flame snake&lt;br /&gt;
*[[PhoenixPuff]]: missile trail&lt;br /&gt;
*[[PodPain]]: pod goo splash on being hit&lt;br /&gt;
*[[VolcBallImpact]]: how a volcano ball fragments on impact&lt;br /&gt;
*[[WhirlwindSeek]]: used by the tornados&lt;br /&gt;
&lt;br /&gt;
==AI==&lt;br /&gt;
*[[AlertMonsters]]: shout so other monsters chase the player&lt;br /&gt;
*[[Chase]]: pursue a target and check for attack&lt;br /&gt;
*[[CPosRefire]]: go to seestate if target is out of sight&lt;br /&gt;
*[[Face]]: face a specified angle&lt;br /&gt;
*[[FaceTarget]]: turn to target, look around it if it&#039;s partly invisible&lt;br /&gt;
*[[GenRefire]]: customizable refire control&lt;br /&gt;
*[[KeepChasing]]: pursue target without attacking&lt;br /&gt;
*[[Look]]: stand in guard, looking for targets&lt;br /&gt;
*[[RandomWalk]]: random wandering for inactive enemies&lt;br /&gt;
*[[Sor1Chase]]: d&#039;sparil mount specific chase&lt;br /&gt;
*[[Sor1Pain]]: d&#039;sparil mount specific twitch. Calls Pain.&lt;br /&gt;
*[[SpidRefire]]: like CPosRefire, slightly modified&lt;br /&gt;
*[[Turn]]: turn around a specified angle&lt;br /&gt;
*[[VileChase]]: same as Chase, but resurrecting encountered cadavers&lt;br /&gt;
&lt;br /&gt;
==AI attacks==&lt;br /&gt;
*[[BetaSkullAttack]]: remote melee attack&lt;br /&gt;
*[[BrainSpit]]: cube spawn&lt;br /&gt;
*[[BruisAttack]]: baron/knight of hell&lt;br /&gt;
*[[BspiAttack]]: arachnotron&lt;br /&gt;
*[[BulletAttack]]: custom bullet shooting&lt;br /&gt;
*[[CPosAttack]]: pistol attack w/ shotgn noise&lt;br /&gt;
*[[CyberAttack]]: rocket launching&lt;br /&gt;
*[[FatAttack1]]: mancubus left attack&lt;br /&gt;
*[[FatAttack2]]: mancubus right attack&lt;br /&gt;
*[[FatAttack3]]: mancubus front attack&lt;br /&gt;
*[[HeadAttack]]: cacodemon&lt;br /&gt;
*[[MissileAttack]]: custom missile shooting&lt;br /&gt;
*[[MissileSpread]]: MissileAttack variation, supports shooting spread shots&lt;br /&gt;
*[[PainAttack]]: elemental&lt;br /&gt;
*[[PainDie]]: elemental death (3 souls)&lt;br /&gt;
*[[PosAttack]]: former human&lt;br /&gt;
*[[SargAttack]]: demon bite&lt;br /&gt;
*[[Scratch]]: custom melee attack&lt;br /&gt;
*[[SkelFist]]: revenant punch&lt;br /&gt;
*[[SkelMissile]]: revenant missile&lt;br /&gt;
*[[SkullAttack]]: flying skull&lt;br /&gt;
*[[SPosAttack]]: sergeant&lt;br /&gt;
*[[ThingSummon]]: customized summoning&lt;br /&gt;
*[[TroopAttack]]: imp&lt;br /&gt;
*[[VileAttack]]: arch vile toss&lt;br /&gt;
*[[VileTarget]]: spawn a vile fire effect on target&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[BeastAttack]]: weredragon&lt;br /&gt;
*[[ClinkAttack]]: sabre&lt;br /&gt;
*[[ImpChargeAtk]]: gargoyle charge&lt;br /&gt;
*[[ImpMeleeAtk]]: gargoyle scratch&lt;br /&gt;
*[[ImpMisssileAtk]]: gargoyle fire&lt;br /&gt;
*[[KnightAttack]]: undead warrior&lt;br /&gt;
*[[LichAttack]]: iron lich random attack **only one which includes ice globes**&lt;br /&gt;
*[[LichFire]]: iron lich fire column&lt;br /&gt;
*[[LichWhirlwind]]: iron lich tornado&lt;br /&gt;
*[[MinotaurAtk1]]: maulotaur melee damage&lt;br /&gt;
*[[MinotaurAtk2]]: spreadshot&lt;br /&gt;
*[[MinotaurAtk3]]: straight flame snake&lt;br /&gt;
*[[MinotaurCharge]]: maulotaur charge&lt;br /&gt;
*[[MinotaurDecide]]: maulotaur ranged attack choosing&lt;br /&gt;
*[[MummyAttack]]: golem melee&lt;br /&gt;
*[[MummyAttack2]]: nitrogolem range&lt;br /&gt;
*[[SnakeAttack]]: ophidian blue spark&lt;br /&gt;
*[[SnakeAttack2]]: ophidian yellow shot&lt;br /&gt;
*[[Srcr1Attack]]: d&#039;sparil mount attack&lt;br /&gt;
*[[Srcr2Attack]]: d&#039;sparil sorcerer attack&lt;br /&gt;
*[[Srcr2Decide]]: d&#039;sparil decide whether to teleport&lt;br /&gt;
*[[VolcanoBlast]]: volcano burst&lt;br /&gt;
*[[WizardAtk3]]: disciple tri-ball&lt;br /&gt;
&lt;br /&gt;
==Alterations==&lt;br /&gt;
*[[BossDeath]]: special monster death functions (such as Baron death in E1M8)&lt;br /&gt;
*[[BrainDie]]: exits the level&lt;br /&gt;
*[[CasingThrust]]: movement for ejected casing&lt;br /&gt;
*[[Die]]: causes suicide&lt;br /&gt;
*[[FadeIn]]: increments alpha&lt;br /&gt;
*[[FadeOut]]: decrements alpha, DOESN&#039;T destroy the thing&lt;br /&gt;
*[[Fall]]: remove SOLID flag (used on dying monsters)&lt;br /&gt;
*[[KeenDie]]: open 666-tagged doors on death of all like-named monsters&lt;br /&gt;
*[[KillChildren]]: destroy all summoned things&lt;br /&gt;
*[[LineEffect]]: activate a tag using a special&lt;br /&gt;
*[[PainNukeSpec]]&lt;br /&gt;
*[[SetFlags]]: alter flags&lt;br /&gt;
*[[SetTranslucent]]: modify alpha amount; setup additiveness or fuzziness&lt;br /&gt;
*[[ShowMessage]]: display text message&lt;br /&gt;
*[[Spawn]]: create another object on top of this one&lt;br /&gt;
*[[StartScript]]: run map script&lt;br /&gt;
*[[SteamSpawn]]: create steam effects&lt;br /&gt;
*[[Stop]]: set velocity to 0&lt;br /&gt;
*[[UnSetFlags]]: alter flags&lt;br /&gt;
===Heretic===&lt;br /&gt;
*[[AccelGlitter]]: accelerate upwards&lt;br /&gt;
*[[DripBlood]]: spawn heretic blood&lt;br /&gt;
*[[HticBossDeath]]: special monster death functions for Heretic&lt;br /&gt;
*[[ImpDeath]]: special death for gargoyle&lt;br /&gt;
*[[ImpExplode]]: crash for gargoyle&lt;br /&gt;
*[[ImpXDeath1]]: special extreme death for gargoyle, stage 1&lt;br /&gt;
*[[ImpXDeath2]]: special extreme death for gargoyle, stage 2&lt;br /&gt;
*[[MakePod]]: generate a pod&lt;br /&gt;
*[[MummySoul]]: create raising soul&lt;br /&gt;
*[[PlayerSkull]]: player death effect, when the skull tosses in air&lt;br /&gt;
*[[RemovePod]]: notifies the generator that this pod was destroyed&lt;br /&gt;
*[[Sor2DthInit]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[Sor2DthLoop]]: d&#039;sparil death maintenance&lt;br /&gt;
*[[SorcererRise]]: d&#039;sparil waking up after mount crash&lt;br /&gt;
*[[SorcNukeSpec]]&lt;br /&gt;
*[[SpawnAbove]]: spawns above the summoner&lt;br /&gt;
*[[SpawnGlitter]]: create teleportation sparkle&lt;br /&gt;
*[[WizardAtk1]]: face target and clear GHOST flag&lt;br /&gt;
*[[WizardAtk2]]: face target and set GHOST flag&lt;br /&gt;
&lt;br /&gt;
==Sound effects==&lt;br /&gt;
*[[AmbientThinker]]: ambient sound maintenance&lt;br /&gt;
*[[BabyMetal]]: bspwlk sound effect -- also includes Chase!&lt;br /&gt;
*[[BrainAwake]]: loud bossit sound effect&lt;br /&gt;
*[[BrainPain]]: loud bospn sound effect&lt;br /&gt;
*[[FatRaise]]: mancubus warning -- also includes FaceTarget&lt;br /&gt;
*[[FireCrackle]]: flame sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[Hoof]]: cyberdemon hoof sound -- also includes Chase!&lt;br /&gt;
*[[Metal]]: metal sound effect -- also includes Chase!&lt;br /&gt;
*[[Pain]]: play pain sound&lt;br /&gt;
*[[PlayerScream]]: player-specific, health-dependent (death) sound&lt;br /&gt;
*[[PlaySound]]: custom sound&lt;br /&gt;
*[[PlaySoundEx]]: extended custom sound&lt;br /&gt;
*[[Scream]]: play death sound&lt;br /&gt;
*[[SkelWhoosh]]: revenant swing noise -- also includes FaceTarget&lt;br /&gt;
*[[SpawnSound]]: boscub sound effect -- also includes SpawnFly&lt;br /&gt;
*[[StartFire]]: flamst sound effect -- also includes &amp;quot;Fire&amp;quot; action!&lt;br /&gt;
*[[VileStart]]: archvile heat-up noise&lt;br /&gt;
*[[XScream]]: extreme death gut noise&lt;br /&gt;
&lt;br /&gt;
==Frame scripting==&lt;br /&gt;
*[[AproxDistance]]: assign distance from target to a variable&lt;br /&gt;
*[[CheckPlayerDone]]: jump to a frame if not under player control&lt;br /&gt;
*[[CopyCounter]]: copy a variable to another variable&lt;br /&gt;
*[[CounterJump]]: counter-based next frame&lt;br /&gt;
*[[CounterOp]]: set a variable to an operation of another 2 variables&lt;br /&gt;
*[[CounterSwitch]]: counter-based set of frames&lt;br /&gt;
*[[HealthJump]]: health-based next frame&lt;br /&gt;
*[[JumpIfTargetInLOS]]: jump to frame if target is in the field of view&lt;br /&gt;
*[[RandomJump]]: random next frame&lt;br /&gt;
*[[SetCounter]]: set a variable&lt;br /&gt;
*[[SetTics]]: set frame duration&lt;br /&gt;
*[[TargetJump]]: go to designated frame if having a target&lt;br /&gt;
&lt;br /&gt;
[[Category:Codepointers|*]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Category:Tutorials&amp;diff=2746</id>
		<title>Category:Tutorials</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Category:Tutorials&amp;diff=2746"/>
		<updated>2011-07-13T16:44:42Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 93.186.192.216 (Talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For editing tutorials and such.&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Linked_portal&amp;diff=2745</id>
		<title>Linked portal</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Linked_portal&amp;diff=2745"/>
		<updated>2011-07-13T16:44:31Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(If you have not read [[Portals]], please do so now before reading this article.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039; Linked portals are currently an in development feature and object movement through them is not yet fully implemented. Usage of linked portals for gameplay purposes is NOT recommended at this time of writing.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linked portals&#039;&#039;&#039; are a powerful feature which make it possible to connect two separate areas of a map via the floor/ceiling or one-sided linedefs, allowing the player to see, shoot, and even move seamlessly from one area into another. They are used similarly to two-way portals, apart from the fact that you can pass through them. They can be used to create 3D architecture and room-over-room effects, with very few limitations.&lt;br /&gt;
&lt;br /&gt;
==Line triggers==&lt;br /&gt;
 #     Class  Trig Description&lt;br /&gt;
 &lt;br /&gt;
 358   Ext    --   Apply linked portal to like-tagged ceilings&lt;br /&gt;
 &lt;br /&gt;
 359   Ext    --   Apply linked portal to like-tagged floors&lt;br /&gt;
 &lt;br /&gt;
 360   Ext    --   Linked portal anchor line for special 358&lt;br /&gt;
 &lt;br /&gt;
 361   Ext    --   Linked portal anchor line for special 359&lt;br /&gt;
 &lt;br /&gt;
 376   Ext    --   Apply linked portals to like-tagged lines&lt;br /&gt;
 &lt;br /&gt;
 377   Ext    --   Anchor line for special 376&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
Linked portals have their own specific sub-set of terminology used to describe certain aspects and behaviors.&lt;br /&gt;
&lt;br /&gt;
===Portal Plane===&lt;br /&gt;
Unlike the basic portal types, which were rendered and could cover height variances (much like the doom sky), linked portals form an actual map structure. The &#039;&#039;&#039;Portal Plane&#039;&#039;&#039; refers to an X/Y plane that bisects the sector(s) that contain the portal. The z-position of the portal is fixed, and should be the same height on both sides of the linked portal.&lt;br /&gt;
&lt;br /&gt;
===Beyond the Plane===&lt;br /&gt;
Map architecture is said to be beyond the portal plane when its vertical height is equal to or beyond the portal height--that is, at or above a ceiling portal plane or at or below a floor portal plane. When map architecture is beyond a portal plane, the portal will display at the height of the plane.&lt;br /&gt;
&lt;br /&gt;
===Inside the plane===&lt;br /&gt;
Map architecture is said to be inside the portal plane when its vertical height is not beyond the portal plane--that is, below a ceiling portal or above a floor portal. Any architecture that is inside the portal plane will render normally and will obscure rendering of the portal.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Linked portals use trigger and anchor lines (much like anchored portals) to determine an X and Y offset from one part of the map to another, but there are specific requirements unique to linked portals:&lt;br /&gt;
&lt;br /&gt;
*Linked portals must be two-way, meaning the upper area must reference the lower area and visa versa.&lt;br /&gt;
*Linked portals have specific behavior relating to z-coordinates of the portal plane.&lt;br /&gt;
&lt;br /&gt;
===Setup (Doom line specials)===&lt;br /&gt;
&lt;br /&gt;
(this section is still under construction)&lt;br /&gt;
&lt;br /&gt;
==Tutorial==&lt;br /&gt;
Refer to Zarkyb&#039;s [[linked portals tutorial]] for in-depth information on usage.&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Category:Scripting&amp;diff=2744</id>
		<title>Category:Scripting</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Category:Scripting&amp;diff=2744"/>
		<updated>2011-07-13T16:41:49Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Reverted edits by 86.28.210.250 (Talk) to last revision by Bloodshedder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For scripting-related articles.&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=List_of_command_line_parameters&amp;diff=2743</id>
		<title>List of command line parameters</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=List_of_command_line_parameters&amp;diff=2743"/>
		<updated>2011-07-13T16:40:56Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all &#039;&#039;&#039;command line parameters&#039;&#039;&#039; that are supported by the Eternity Engine, along with detail about their functions. Most of the options available through the command line are also settable with the [[Eternity Frontend]].&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;See also: [[Doom_Wiki:Command line arguments|Command line arguments]] on the [[Doom Wiki]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
* -exec &amp;amp;lt;filename&amp;amp;gt; : Executes the indicated file as a console script at game startup.&lt;br /&gt;
* -nocscload : Disables autoloaded console scripts for this play session only.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
* -devparm : Enables FPS ticker and screenshots with F1 key (id development mode)&lt;br /&gt;
&lt;br /&gt;
==DeHackEd/BEX==&lt;br /&gt;
* -bex &amp;amp;lt;filename&amp;amp;gt; ... : Alias for -deh.&lt;br /&gt;
* -bexout &amp;amp;lt;filename&amp;amp;gt; : Alias for -dehout.&lt;br /&gt;
* -deh &amp;amp;lt;filename&amp;amp;gt; ... : Loads one or more DeHackEd/BEX patch files.&lt;br /&gt;
* -dehout &amp;amp;lt;filename&amp;amp;gt; : Enables verbose DeHackEd parser logging.&lt;br /&gt;
&lt;br /&gt;
==EDF==&lt;br /&gt;
* -edf &amp;amp;lt;filename&amp;amp;gt; : Specifies the root EDF file.&lt;br /&gt;
* -edfenables : Causes all gamemode&#039;s definitions to be enabled. For compatibility with older projects.&lt;br /&gt;
* -edfout : Enables verbose EDF logging to edfout##.txt&lt;br /&gt;
&lt;br /&gt;
==Gameplay==&lt;br /&gt;
* -dog : Enables a single MBF helper dog.&lt;br /&gt;
* -dogs &amp;amp;lt;n&amp;amp;gt; : Enables from one to three MBF helper dogs, depending on the number specified.&lt;br /&gt;
* -episode &amp;amp;lt;n&amp;amp;gt; : Start a new game on episode n. For DOOM and Heretic only.&lt;br /&gt;
* -fast : Enables Nightmare-mode monster speed in any difficulty.&lt;br /&gt;
* -nomonsters : Removes all monsters except Lost Souls from all levels.&lt;br /&gt;
* -respawn : Enables Nightmare-mode monster respawning in any difficulty.&lt;br /&gt;
* -skill &amp;amp;lt;n&amp;amp;gt; : Sets skill to level 1 through 5.&lt;br /&gt;
* -solo-net : Starts the game as single-player cooperative &#039;&#039;&#039;(SVN revision 1071+)&#039;&#039;&#039;&lt;br /&gt;
* -spechit &amp;amp;lt;n&amp;amp;gt; : Sets spechit emulation magic number to n. Spechit emulation must be enabled separately.&lt;br /&gt;
* -turbo &amp;amp;lt;n&amp;amp;gt; : Sets player turbo factor to n.&lt;br /&gt;
* -warp &amp;amp;lt;x&amp;amp;gt; &amp;amp;lt;y&amp;amp;gt; : Warps to level x in DOOM 2, or ExMy for DOOM or Heretic.&lt;br /&gt;
* -wart : Alias for -warp.&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous==&lt;br /&gt;
* -affinity &amp;amp;lt;num&amp;amp;gt; : Enables processor affinity mask to stop SDL_mixer crashes on multicore processors. Expert setting only.&lt;br /&gt;
* -blockmap : Enables MBF blockmap builder for all levels.&lt;br /&gt;
* -cdrom : Game is running from a cd-rom. Data is written to C:\DOOMDATA. Does not work in Linux.&lt;br /&gt;
* -grabmouse : Enables mouse input grabbing.&lt;br /&gt;
* -nograbmouse : Disables mouse input grabbing.&lt;br /&gt;
* -numparticles &amp;amp;lt;n&amp;amp;gt; : Sets the static particle limit to n.&lt;br /&gt;
* -speed &amp;amp;lt;n&amp;amp;gt; : Sets game speed to n% of normal speed. Range is 10 to 1000.&lt;br /&gt;
* -statcopy : Does nothing. Enabled external statistics driver in Vanilla Doom.&lt;br /&gt;
&lt;br /&gt;
==Multiplayer==&lt;br /&gt;
* -altdeath : Enables Deathmatch 2.0 (items respawn, weapons stay).&lt;br /&gt;
* -avg : Austin Virtual Gaming. Deathmatch levels end after 20 minutes.&lt;br /&gt;
* -deathmatch : Enables original Deathmatch mode.&lt;br /&gt;
* -dmflags &amp;amp;lt;n&amp;amp;gt; : Sets the dmflags variable to value n.&lt;br /&gt;
* -dup&lt;br /&gt;
* -extratic&lt;br /&gt;
* -frags &amp;amp;lt;n&amp;amp;gt; : Sets fraglimit for Deathmatch. Levels end when the fraglimit is reached.&lt;br /&gt;
* -net&lt;br /&gt;
* -timer &amp;amp;lt;n&amp;amp;gt; : Sets timelimit for Deathmatch to n minutes.&lt;br /&gt;
* -trideath : Enables SMMU Deathmatch 3.0 (barrels respawn, players drop backpacks [currently broken]).&lt;br /&gt;
&lt;br /&gt;
==Savegames==&lt;br /&gt;
* -loadgame &amp;amp;lt;n&amp;amp;gt; : Loads the savegame in slot n (0-7).&lt;br /&gt;
* -save &amp;amp;lt;path&amp;amp;gt; : Sets the directory from/to which savegames are loaded and saved.&lt;br /&gt;
&lt;br /&gt;
==Sound engine==&lt;br /&gt;
* -nomusic : Disables the music engine.&lt;br /&gt;
* -nosfx : Disables the digital sound engine.&lt;br /&gt;
* -nosound : Disables sound and music.&lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
* -8in32 : Runs Eternity in a 32-bit video mode and crossblits the 8-bit framebuffer to the screen. Circumvents some SDL palette issues, but is slower.&lt;br /&gt;
* -directx : Windows only. Selects the DirectX 5.0 SDL video driver.&lt;br /&gt;
* -frame : Creates a main window with a frame (this is on by default for windowed modes and off for fullscreen).&lt;br /&gt;
* -fullscreen : Toggles fullscreen mode.&lt;br /&gt;
* -gdi : Windows only. Selects the Win32 GDI SDL video driver.&lt;br /&gt;
* -geom &amp;amp;lt;geomstring&amp;amp;gt; : Sets the video mode using a [[Geom string]].&lt;br /&gt;
* -noblit : Disables blitting for benchmark testing. &lt;br /&gt;
* -nodraw : Disables all screen drawing.&lt;br /&gt;
* -noframe : Opposite of -frame, creates a frameless window, if possible on the current platform.&lt;br /&gt;
* -nofullscreen : Alias for -window.&lt;br /&gt;
* -novsync : Disables waiting for vsync.&lt;br /&gt;
* -vheight &amp;amp;lt;n&amp;amp;gt; : Sets screen height to n; current limits are 200 to 1600.&lt;br /&gt;
* -vsync : Enables waiting for vsync.&lt;br /&gt;
* -vwidth &amp;amp;lt;n&amp;amp;gt; : Sets screen width to n; current limits are 320 to 2560.&lt;br /&gt;
* -window : Toggles windowed mode.&lt;br /&gt;
&lt;br /&gt;
==Wads and other files==&lt;br /&gt;
* -base &amp;amp;lt;path&amp;amp;gt; : Sets the base path to the indicated path. The path must be a directory, not a file.&lt;br /&gt;
* -config &amp;amp;lt;filename&amp;amp;gt; : Game will use the given configuration file.&lt;br /&gt;
* -file &amp;amp;lt;filename&amp;amp;gt; ... : Loads one or more WAD or lump files. Lump file names must be 8 characters or less with .lmp extension added.&lt;br /&gt;
* -game &amp;amp;lt;name&amp;amp;gt; : Causes Eternity to use the named game folder under its current base path.&lt;br /&gt;
* -gfs &amp;amp;lt;filename&amp;amp;gt; : Loads the given GFS script. GFS scripts may load WADs, DEH/BEX files, EDF, and console scripts.&lt;br /&gt;
* -iwad &amp;amp;lt;filename&amp;amp;gt; : Specifies the given WAD file as the IWAD.&lt;br /&gt;
* -noload : Disables autoloaded WADs and DEH/BEX patches during this play session only.&lt;br /&gt;
* -nowadhacks : Disables automatic application of wad directory hacks to known broken WAD files, such as Gothic DM 2.&lt;br /&gt;
* -showhashes : Enables display of WAD header/directory SHA-1 hashes on the system console.&lt;br /&gt;
&lt;br /&gt;
==Demos==&lt;br /&gt;
* -donut &amp;amp;lt;height&amp;amp;gt; &amp;amp;lt;pic&amp;amp;gt; : Enables donut overflow emulation using the specified parameters.&lt;br /&gt;
* -fastdemo &amp;amp;lt;filename&amp;amp;gt; : Plays the given demo as fast as possible.&lt;br /&gt;
* -longtics : Enables v1.91 longtics demo recording when used with -vanilla.&lt;br /&gt;
* -maxdemo &amp;amp;lt;n&amp;amp;gt; : Sets the initial size of the demo recording buffer. This is no longer a hard limit, and the buffer will expand if the given limit is exceeded.&lt;br /&gt;
* -play : Alias for -playdemo.&lt;br /&gt;
* -playdemo &amp;amp;lt;filename&amp;amp;gt; : Plays the given demo.&lt;br /&gt;
* -record &amp;amp;lt;filename&amp;amp;gt; : Records this play session as a demo named &amp;quot;filename&amp;quot;.&lt;br /&gt;
* -recorddemo : Alias for -record.&lt;br /&gt;
* -recordfrom &lt;br /&gt;
* -spechit &amp;amp;lt;number&amp;amp;gt; : Enables spechits overflow emulation with the given magic number.&lt;br /&gt;
* -timedemo &amp;amp;lt;filename&amp;amp;gt; : Plays the given demo normally and reports FPS information at exit.&lt;br /&gt;
* -vanilla : Enables recording of v1.9-compatible demo files.&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Small&amp;diff=2742</id>
		<title>Small</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Small&amp;diff=2742"/>
		<updated>2011-07-13T16:39:34Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{deprecatednotice|reason=Small is deprecated because its bytecode is not portable to 64-bit architecture! Support for Small will possibly be removed in future versions of Eternity, and should not be expected to be available on any 64-bit binary build.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Small&#039;&#039;&#039; is a scripting language created by ITB CompuPhase; it uses a [[Wikipedia:C programming language|C]]-like syntax and is [[Eternity]]&#039;s main scripting language, replacing the [[Fragglescript]] of earlier versions. To be used in Eternity, the script files must first be compiled using the &amp;lt;tt&amp;gt;sc&amp;lt;/tt&amp;gt; executable. Script files usually have the extension &amp;lt;tt&amp;gt;.sma&amp;lt;/tt&amp;gt;, but files of any extension can be compiled. Assuming the script has no errors, the compiler should output an &amp;lt;tt&amp;gt;.amx&amp;lt;/tt&amp;gt; file, which can be loaded into a [[Doom wiki:WAD|WAD]] for use with Eternity. &lt;br /&gt;
&lt;br /&gt;
== Script types ==&lt;br /&gt;
&lt;br /&gt;
There are two types of script: gamescript and levelscript. Gamescripts work over a whole gaming session, while levelscripts only work on maps which have specified that script in their level info. To use a script file as a gamescript, the compiled script file should be loaded into a WAD and given the lump name &amp;lt;tt&amp;gt;GAMESCR&amp;lt;/tt&amp;gt;. These gamescript files will work over every level. &lt;br /&gt;
&lt;br /&gt;
Levelscripts are loaded using a different method. To specify a script for use in a single map, &amp;lt;tt&amp;gt;levelscript=MYSCRIPT&amp;lt;/tt&amp;gt; should be added to the map&#039;s [[MapInfo]]. Here, &amp;lt;tt&amp;gt;MYSCRIPT&amp;lt;/tt&amp;gt; should be replaced with your script&#039;s lump name, which can be anything.&lt;br /&gt;
&lt;br /&gt;
== Triggering scripts ==&lt;br /&gt;
&lt;br /&gt;
There are many ways to start a script. They can be triggered by a linedef, the start of a map, or a codepointer specified on a Thing.&lt;br /&gt;
&lt;br /&gt;
=== Triggering via linedef ===&lt;br /&gt;
&lt;br /&gt;
The most common way is to start a script when a linedef is triggered. To do this, first give the linedef you want to trigger the script a &amp;lt;tt&amp;gt;Start&amp;lt;/tt&amp;gt; script action (linedef actions 273-280) and a unique tag number. For example, if we want our script to start when the player walks over a linedef, use linedef action 280 and give the linedef a tag of 1. The script would then look like this:&lt;br /&gt;
&lt;br /&gt;
   public Script1()&lt;br /&gt;
   {&lt;br /&gt;
      _Printf( _MSG_NORMAL, &amp;quot;Hello World&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Note that the Script## number is the same as the linedef&#039;s tag. Compile your script and set up the wad as explained above. Assuming all things have been set up properly, when you walk over that linedef, it will output &amp;quot;Hello World&amp;quot; to the screen.&lt;br /&gt;
&lt;br /&gt;
=== Triggering on map start ===&lt;br /&gt;
&lt;br /&gt;
Another way of starting a script is using the &amp;lt;tt&amp;gt;OnInit()&amp;lt;/tt&amp;gt; function. &lt;br /&gt;
&lt;br /&gt;
   public OnInit()&lt;br /&gt;
   {&lt;br /&gt;
      _Printf( _MSG_NORMAL, &amp;quot;Hello World&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
This script will output &amp;quot;Hello World&amp;quot; when the map starts up. This could be useful for starting a series of callbacks for animating HUD sprites or raising/lowering sectors.&lt;br /&gt;
&lt;br /&gt;
=== Triggering by Thing codepointer ===&lt;br /&gt;
&lt;br /&gt;
The final way is to use the StartScript codepointer on a Thing&#039;s frame. The StartScript codepointer uses the first two args to decide the script number to execute and the script type (whether it is levelscript or gamescript). For example, the [[EDF]] file to do this is:&lt;br /&gt;
&lt;br /&gt;
   stdinclude(root.edf)&lt;br /&gt;
   framedelta&lt;br /&gt;
   {&lt;br /&gt;
      name = S_TROO_DIE1    // Frame we want to start the script on&lt;br /&gt;
      action = StartScript  // The startscript codepointer&lt;br /&gt;
      args = {1,0}          // Codepointer&#039;s arguments, starts script 1 and sets the type to game (0)&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Load the EDF with your map and script, and whenever you kill an imp (therefore going onto the frame S_TROO_DIE1, it will run script 1, outputting &amp;quot;Hello World&amp;quot;. As this script is a gamescript, it will do this on every map.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== Core Small functions ===&lt;br /&gt;
*[[heapspace]]&lt;br /&gt;
*[[funcidx]]&lt;br /&gt;
*[[numargs]]&lt;br /&gt;
*[[getarg]]&lt;br /&gt;
*[[setarg]]&lt;br /&gt;
*[[strlen]]&lt;br /&gt;
*[[strpack]]&lt;br /&gt;
*[[strunpack]]&lt;br /&gt;
*[[tolower]]&lt;br /&gt;
*[[toupper]]&lt;br /&gt;
*[[swapchars]]&lt;br /&gt;
*[[min]]&lt;br /&gt;
*[[max]]&lt;br /&gt;
*[[clamp]]&lt;br /&gt;
=== Invocation Functions ===&lt;br /&gt;
*[[_GetInvokeType]]&lt;br /&gt;
*[[_GetCcmdSrc]]&lt;br /&gt;
*[[_GetPlayerSrc]]&lt;br /&gt;
*[[_GetThingSrc]]&lt;br /&gt;
*[[_SetCallback]]&lt;br /&gt;
*[[_ExecGS]]&lt;br /&gt;
*[[_ExecLS]]&lt;br /&gt;
*[[_GetLevelVar]]&lt;br /&gt;
*[[_SetLevelVar]]&lt;br /&gt;
*[[_GetGameVar]]&lt;br /&gt;
*[[_SetGameVar]]&lt;br /&gt;
=== Input/output ===&lt;br /&gt;
*[[_ConsolePrint]]&lt;br /&gt;
*[[_ConsoleHR]]&lt;br /&gt;
*[[_ConsoleBeep]]&lt;br /&gt;
*[[_Itoa]]&lt;br /&gt;
*[[_Printf]]&lt;br /&gt;
*[[_CenterMsgTimed]]&lt;br /&gt;
=== Fixed-point math library ===&lt;br /&gt;
*[[_ffloat]]&lt;br /&gt;
*[[_fmul]]&lt;br /&gt;
*[[_fdiv]]&lt;br /&gt;
*[[_fabs]]&lt;br /&gt;
*[[fixed]]&lt;br /&gt;
*[[_ffract]]&lt;br /&gt;
*[[_ffloor]]&lt;br /&gt;
*[[_fceil]]&lt;br /&gt;
*[[_ftoi]]&lt;br /&gt;
=== Random number generators ===&lt;br /&gt;
*[[_P_Random]]&lt;br /&gt;
*[[_M_Random]]&lt;br /&gt;
=== Heads-up display ===&lt;br /&gt;
*[[_NewPatchWidget]]&lt;br /&gt;
*[[_SetWidgetPatch]]&lt;br /&gt;
*[[_PatchWidgetColor]]&lt;br /&gt;
*[[_NewTextWidget]]&lt;br /&gt;
*[[_GetWidgetText]]&lt;br /&gt;
*[[_SetWidgetText]]&lt;br /&gt;
*[[_ToggleWidget]]&lt;br /&gt;
*[[_MoveWidget]]&lt;br /&gt;
*[[_GetHUDMode]]&lt;br /&gt;
*[[_InAutomap]]&lt;br /&gt;
=== Game functions ===&lt;br /&gt;
*[[_ExitLevel]]&lt;br /&gt;
*[[_ExitSecret]]&lt;br /&gt;
*[[_StartGame]]&lt;br /&gt;
*[[_GameSkill]]&lt;br /&gt;
*[[_GameType]]&lt;br /&gt;
*[[_EngineVersion]]&lt;br /&gt;
*[[_GetPlayerName]]&lt;br /&gt;
=== Mapthings ===&lt;br /&gt;
*[[_ThingKill]]&lt;br /&gt;
*[[_ThingHurt]]&lt;br /&gt;
*[[_ThingMassacre]]&lt;br /&gt;
*[[_ThingHate]]&lt;br /&gt;
*[[_ThingNumForName]]&lt;br /&gt;
*[[_ThingNumForDEHNum]]&lt;br /&gt;
*[[_ThingUnknown]]&lt;br /&gt;
*[[_ThingCheckType]]&lt;br /&gt;
*[[_ThingSpawn]]&lt;br /&gt;
*[[_ThingSpawnSpot]]&lt;br /&gt;
*[[_ThingGetProperty]]&lt;br /&gt;
*[[_ThingSetProperty]]&lt;br /&gt;
*[[_ThingFlagsFromStr]]&lt;br /&gt;
*[[_ThingThrust]]&lt;br /&gt;
*[[_ThingThrust3f]]&lt;br /&gt;
*[[_ThingGetPos]]&lt;br /&gt;
*[[_GetFreeTID]]&lt;br /&gt;
=== Sounds ===&lt;br /&gt;
*[[_SoundGlobal]]&lt;br /&gt;
*[[_SoundGlobalNum]]&lt;br /&gt;
*[[_SectorSound]]&lt;br /&gt;
*[[_SectorSoundNum]]&lt;br /&gt;
*[[_ThingSound]]&lt;br /&gt;
*[[_ThingSoundNum]]&lt;br /&gt;
*[[_ThingInfoSound]]&lt;br /&gt;
=== Particles ===&lt;br /&gt;
*[[_PtclExplosionPos]]&lt;br /&gt;
*[[_PtclExplosionThing]]&lt;br /&gt;
=== Sectors ===&lt;br /&gt;
*[[_SectorSpecial]]&lt;br /&gt;
*[[_SectorColormap]]&lt;br /&gt;
=== Parameterized line specials ===&lt;br /&gt;
*[[_SpecialMode]]&lt;br /&gt;
*[[_ByteAngleToDegrees]]&lt;br /&gt;
*[[_DegreesToByteAngle]]&lt;br /&gt;
*[[_ByteAngleToFixed]]&lt;br /&gt;
*[[_FixedToByteAngle]]&lt;br /&gt;
*[[_Door_Raise]]&lt;br /&gt;
*[[_Door_Open]]&lt;br /&gt;
*[[_Door_Close]]&lt;br /&gt;
*[[_Door_CloseWaitOpen]]&lt;br /&gt;
*[[_Door_WaitRaise]]&lt;br /&gt;
*[[_Door_WaitClose]]&lt;br /&gt;
*[[_Floor_RaiseToHighest]]&lt;br /&gt;
*[[_Floor_LowerToHighest]]&lt;br /&gt;
*[[_Floor_RaiseToLowest]]&lt;br /&gt;
*[[_Floor_LowerToLowest]]&lt;br /&gt;
*[[_Floor_RaiseToNearest]]&lt;br /&gt;
*[[_Floor_LowerToNearest]]&lt;br /&gt;
*[[_Floor_RaiseToLowestCeiling]]&lt;br /&gt;
*[[_Floor_LowerToLowestCeiling]]&lt;br /&gt;
*[[_Floor_RaiseToCeiling]]&lt;br /&gt;
*[[_Floor_RaiseByTexture]]&lt;br /&gt;
*[[_Floor_LowerByTexture]]&lt;br /&gt;
*[[_Floor_RaiseByValue]]&lt;br /&gt;
*[[_Floor_LowerByValue]]&lt;br /&gt;
*[[_Floor_MoveToValue]]&lt;br /&gt;
*[[_Floor_RaiseInstant]]&lt;br /&gt;
*[[_Floor_LowerInstant]]&lt;br /&gt;
*[[_Floor_ToCeilingInstant]]&lt;br /&gt;
*[[_Ceiling_RaiseToHighest]]&lt;br /&gt;
*[[_Ceiling_ToHighestInstant]]&lt;br /&gt;
*[[_Ceiling_RaiseToNearest]]&lt;br /&gt;
*[[_Ceiling_LowerToNearest]]&lt;br /&gt;
*[[_Ceiling_RaiseToHighestFloor]]&lt;br /&gt;
*[[_Ceiling_LowerToHighestFloor]]&lt;br /&gt;
*[[_Ceiling_ToFloorInstant]]&lt;br /&gt;
*[[_Ceiling_LowerToFloor]]&lt;br /&gt;
*[[_Ceiling_RaiseByTexture]]&lt;br /&gt;
*[[_Ceiling_LowerByTexture]]&lt;br /&gt;
*[[_Ceiling_RaiseByValue]]&lt;br /&gt;
*[[_Ceiling_LowerByValue]]&lt;br /&gt;
*[[_Ceiling_MoveToValue]]&lt;br /&gt;
*[[_Ceiling_RaiseInstant]]&lt;br /&gt;
*[[_Ceiling_LowerInstant]]&lt;br /&gt;
*[[_Stairs_BuildUpDoom]]&lt;br /&gt;
*[[_Stairs_BuildDownDoom]]&lt;br /&gt;
*[[_Stairs_BuildUpDoomSync]]&lt;br /&gt;
*[[_Stairs_BuildDownDoomSync]]&lt;br /&gt;
*[[_Polyobj_DoorSlide]]&lt;br /&gt;
*[[_Polyobj_DoorSwing]]&lt;br /&gt;
*[[_Polyobj_Move]]&lt;br /&gt;
*[[_Polyobj_OR_Move]]&lt;br /&gt;
*[[_Polyobj_RotateRight]]&lt;br /&gt;
*[[_Polyobj_OR_RotateRight]]&lt;br /&gt;
*[[_Polyobj_RotateLeft]]&lt;br /&gt;
*[[_Polyobj_OR_RotateLeft]]&lt;br /&gt;
*[[_Pillar_Build]]&lt;br /&gt;
*[[_Pillar_BuildAndCrush]]&lt;br /&gt;
*[[_Pillar_Open]]&lt;br /&gt;
=== Cameras ===&lt;br /&gt;
*[[_ToggleChasecam]]&lt;br /&gt;
*[[_IsChasecamOn]]&lt;br /&gt;
=== Special Functions ===&lt;br /&gt;
*[[_ForceLightning]]&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=EMAPINFO&amp;diff=2741</id>
		<title>EMAPINFO</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=EMAPINFO&amp;diff=2741"/>
		<updated>2011-07-13T16:39:10Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: rv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;MapInfo&#039;&#039;&#039; serves as a method of customizing some aesthetic properties of a map which would otherwise be unchangeable, as well as adding the ability to use some [[Eternity]]-specific features. Eternity&#039;s MapInfo is stored in the EMAPINFO text lump.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
MapInfo data is stored in the global EMAPINFO lump, which is a plain-text lump containing information for all maps together. Variables for each level must be placed under a section header that has the same name as the map&#039;s header lump.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
*Each map definition begins with a block header. This consists of the map&#039;s lump name in brackets, such as [MAP01], [E1M1], or [MYLEVEL].&lt;br /&gt;
*Variables are specified in the lines following the block header.&lt;br /&gt;
*All values are treated as text strings, and quotation marks are not required.&lt;br /&gt;
*Comments may start with &#039;#&#039;, &#039;;&#039;, or &#039;//&#039;. All three comments are single line only, and extend to the end of the line.&lt;br /&gt;
*An optional equal sign can be placed between a variable and the value it is given. It is not an error to omit it.&lt;br /&gt;
&lt;br /&gt;
==MapInfo Variables==&lt;br /&gt;
&#039;&#039;&#039;altskyname&#039;&#039;&#039;&lt;br /&gt;
:Name of a texture to display instead of the normal sky texture during a lightning strike. This value is only used if lightning is enabled for this level. If this value is not provided, no sky animation will occur during lightning strikes. For example:&lt;br /&gt;
 altskyname = LBOLTSKY&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boss-specials&#039;&#039;&#039;&lt;br /&gt;
:A flags field that specifies what formerly level-specific boss &amp;quot;magic codepointer&amp;quot; actions are enabled for this level. This field takes a value in the same format as that used by [[EDF]], DeHackEd/BEX, and ExtraData flag fields, but the format will be reviewed here for completeness.&lt;br /&gt;
&lt;br /&gt;
A BEX flag list is a string of flag names separated by whitespace, pipe characters, commas, or plus characters. Flags are combined using bitwise-OR logic, so a flag name can be specified more than once. Specifying a flag name causes that flag to be turned on. The default state of all flags is off.&lt;br /&gt;
&lt;br /&gt;
These are the flag values which are available for this field:&lt;br /&gt;
          Flag name  Decimal  Hex     Meaning&lt;br /&gt;
          -----------------------------------------------------------------&lt;br /&gt;
          MAP07_1    1        0x0001  MAP07 Special 1 (BossDeath only)&lt;br /&gt;
          MAP07_2    2        0x0002  MAP07 Special 2 (BossDeath only)&lt;br /&gt;
          E1M8       4        0x0004  E1M8 Special&lt;br /&gt;
          E2M8       8        0x0008  E2M8 Special&lt;br /&gt;
          E3M8       16       0x0010  E3M8 Special&lt;br /&gt;
          E4M6       32       0x0020  E4M6 Special (BossDeath only)&lt;br /&gt;
          E4M8       64       0x0040  E4M8 Special&lt;br /&gt;
          E5M8       128      0x0080  E5M8 Special (HticBossDeath Only)&lt;br /&gt;
          -----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Notes: Actions differ depending on whether monsters use the BossDeath or HticBossDeath codepointers. See the documentation for those specific codepointers to see what actions they perform. The monsters which must be dead for a given special to activate are controlled by various [[EDF]]/BEX thingtype flags. Together, these features allow complete customization.&lt;br /&gt;
&lt;br /&gt;
Example flags fields -- All of these are equivalent:&lt;br /&gt;
          boss-specials = MAP07_1|MAP07_2&lt;br /&gt;
          boss-specials = MAP07_1 | MAP07_2&lt;br /&gt;
          &lt;br /&gt;
          boss-specials = MAP07_1+MAP07_2&lt;br /&gt;
          boss-specials = MAP07_2 + MAP07_2&lt;br /&gt;
          &lt;br /&gt;
          boss-specials = MAP07_1,MAP07_2&lt;br /&gt;
          boss-specials = MAP07_1, MAP07_2&lt;br /&gt;
          &lt;br /&gt;
          boss-specials = MAP07_1 MAP07_2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;colormap&#039;&#039;&#039;&lt;br /&gt;
:Name of a colormap lump to use as the global colormap for this level. This colormap is applied to any sectors which do not have their own colormaps specified either via use of 242 height transfer linedefs or scripting. This lump must be between C_START and C_END tags. For example:&lt;br /&gt;
      colormap = FOGMAP&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;creator&#039;&#039;&#039;&lt;br /&gt;
:The level author&#039;s name, which can be viewed in the console using the &amp;quot;creator&amp;quot; console command. If this value is not provided, the default value is &amp;quot;unknown&amp;quot;. For example:&lt;br /&gt;
      creator = Edwin Chadwick &#039;chadders&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;doublesky&#039;&#039;&#039;&lt;br /&gt;
:Boolean value that determines whether or not this map uses double skies. When double skies are enabled, any F_SKY1 or F_SKY2 sectors *not* affected by MBF sky transfer lines will use both the primary and secondary sky textures together. The secondary texture will be drawn first, normally, then the primary texture will be drawn over it, omitting any pixels which use palette index zero (this is usually pure black). Any MapInfo sky delta values provided will be applied to their respective textures. For example:&lt;br /&gt;
      doublesky = true&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;edf-intername&#039;&#039;&#039;&lt;br /&gt;
:Boolean value which, if true, enables the use of [[EDF]]-defined intermission map name strings which will be drawn using the FONTB graphics (provided in eternity.wad for DOOM/DOOM II, and natively supported by Heretic). This feature is meant to obsolete the levelpic variable and to remove the need for authors to create title graphics for their maps in DOOM/DOOM II. It also allows intermission map name replacement to work correctly for the next level and for Heretic without any hacks.&lt;br /&gt;
The EDF string which will be used as the intermission name for the current map should have the mnemonic _IN_NAME_&amp;lt;mapname&amp;gt;, where &amp;lt;mapname&amp;gt; is the exact name of the map&#039;s header lump (Example: _IN_NAME_MAP01).&lt;br /&gt;
In order for the name of the next map to display correctly, the current level must either define its nextlevel/nextsecret values explicitly, or it must be an ExMy or MAPxy level. For example:&lt;br /&gt;
      edf-intername = true&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;endofgame&#039;&#039;&#039;&lt;br /&gt;
:Boolean value which, if true, causes a DOOM II cast call to occur when this map is exited. This value is currently only usable in DOOM II. A level must also have intermission text defined for a cast call to take place. For example:&lt;br /&gt;
      endofgame = true&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;extradata&#039;&#039;&#039;&lt;br /&gt;
:Name of the ExtraData script lump for this map. See the ExtraData Reference for full information on ExtraData. There are no naming restrictions on ExtraData script lumps. For example:&lt;br /&gt;
      extradata = EXTRDT01&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;finale-secret&#039;&#039;&#039;&lt;br /&gt;
:Boolean value which, if true, indicates that a text intermission should only occur after this map if a secret exit was taken. If no intermission text is defined for this map, this variable has no effect. For example:&lt;br /&gt;
      finale-secret = true&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;fullbright&#039;&#039;&#039;&lt;br /&gt;
:Boolean value that determines whether fullbright can be used on this level. When fullbright is disabled, player gun flashes will not occur, and fullbright sprites and particles will be drawn normally. This should be used with most custom colormaps, since flashes and fullbright sprites usually look incorrect with them. For example:&lt;br /&gt;
      fullbright = false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gravity&#039;&#039;&#039;&lt;br /&gt;
:Global gravity factor for the current level. The default gravity value is 65536. For example:&lt;br /&gt;
          # Enable 50% gravity&lt;br /&gt;
          gravity = 32768&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;inter-backdrop&#039;&#039;&#039;&lt;br /&gt;
:Name of a 64x64 flat OR a 320x200 graphic lump to be displayed as the background of a text intermission which occurs after this map. The flat namespace will be searched first, so if both a flat and a 320x200 picture of the same name exist, the flat will be chosen. For example:&lt;br /&gt;
      inter-backdrop = FLATHUH1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;intermusic&#039;&#039;&#039;&lt;br /&gt;
:Name of a MUS or MIDI lump to use as music during a text intermission which occurs after this map. If no intertext is defined for the map, this value will not be used. In DOOM gamemodes, the string provided should be the lump name minus the &amp;quot;D_&amp;quot; prefix. In Heretic, the string provided should be the lump name minus the &amp;quot;MUS_&amp;quot; prefix. You are *not* limited to using only the built-in music lump names; Eternity automatically adds any new lump which matches the naming convention for the current gamemode to the internal music list. For example:&lt;br /&gt;
      intermusic = ROMERO&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;interpic&#039;&#039;&#039;&lt;br /&gt;
:Name of a 320x200 graphic lump to be displayed as the background of the statistics intermission. This value is currently only used for DOOM II and Ultimate DOOM episode 4 maps. For example:&lt;br /&gt;
interpic = BOSSBACK&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;intertext&#039;&#039;&#039;&lt;br /&gt;
:Lump name of a text lump to be loaded as intermission text for this level. If the level has an intermission by default, this will replace the default intermission text, even if it has been edited via DeHackEd. If there is not normally a text intermission after this map, the presence of this variable serves to enable it. If no intertext is defined, a text intermission will not occur after a map. The formatting of the text inside the indicated lump will be preserved exactly, with the exception of tabs, which are converted to spaces. There is no length limitation, but only one screen of text can be displayed. Any extra text will be drawn off the bottom of the screen. For example:&lt;br /&gt;
      intertext = MAP04TXT&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;killfinale&#039;&#039;&#039;&lt;br /&gt;
:Boolean value that allows built-in text intermission points to be disabled. For example, if you do not want text to appear after DOOM II MAP11, set this variable to true. For example:&lt;br /&gt;
      killfinale = true&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;killstats&#039;&#039;&#039;&lt;br /&gt;
:Boolean value that allows the statistics intermission between two maps to be disabled. If the map has a finale sequence to be displayed, it will start immediately, otherwise the next map will be loaded. For example:&lt;br /&gt;
      killstats = true&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;levelname&#039;&#039;&#039;&lt;br /&gt;
:This is the name of the level which will be displayed in the automap. This value overrides any string provided via DeHackEd. For example:&lt;br /&gt;
      levelname = chadders&#039; lair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;levelpic&#039;&#039;&#039;&lt;br /&gt;
:This is the name of a graphic lump which will be shown as the level name during the statistics intermission when this map is the previous map which was just beaten. Note: you cannot currently specify the graphic to be shown for the next map. This is a known bug in MapInfo and may not be repaired due to the new edf-intername feature. This value is only used for DOOM and DOOM II maps. For example:&lt;br /&gt;
      levelpic = E1M1PIC&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;levelscript&#039;&#039;&#039;&lt;br /&gt;
:Name of a compiled Small script lump which will serve as the Levelscript for this map. See the Small Usage Documentation for full information on how the Levelscript works. There are no naming restrictions on script lumps. For example:&lt;br /&gt;
      levelscript = SCRIPT01&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;leveltype&#039;&#039;&#039;&lt;br /&gt;
:String value that declares what type of level the current map is classified as. Possible values are &amp;quot;doom&amp;quot; and &amp;quot;heretic&amp;quot;. This variable affects the automatic translation of thing types and line specials. For example:&lt;br /&gt;
      leveltype = heretic&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lightning&#039;&#039;&#039;&lt;br /&gt;
:Boolean value that toggles the global lightning effect. When set to true, all sky sectors on the map will flash at randomly determined intervals along with a thunder sound and optional animation of the normal sky texture. Warning: sectors must currently have a sky ceiling at the beginning of the level in order to be affected by lightning. The only current method to make non-sky sectors flash during lightning strikes is via use of BOOM lighting transfer linedefs. This may be improved in the near future. For example: &lt;br /&gt;
      lightning = true&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
:Provides the name of a MUS or MIDI lump to use as music. In DOOM gamemodes, the string provided should be the lump name minus the &amp;quot;D_&amp;quot; prefix. In Heretic, the string provided should be the lump name minus the &amp;quot;MUS_&amp;quot; prefix. You are *not* limited to using only the built-in music lump names; Eternity automatically adds any new lump which matches the naming convention for the current gamemode to the internal music list. For example:&lt;br /&gt;
      music = cheese&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nextlevel&#039;&#039;&#039;&lt;br /&gt;
:The exact header name of the next level to go to when a normal exit occurs on this map. This can specify *any* lump name, but the lump should be a valid level header or an error will occur. For example:&lt;br /&gt;
      nextlevel = CHAD2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nextsecret&#039;&#039;&#039;&lt;br /&gt;
:The exact header name of the next level to go to when a secret exit occurs on this map. This can specify *any* lump name, but the lump should be a valid level header or an error will occur. Note that except for maps which normally have secret exits, the default behavior is to repeat the same level. This MapInfo value allows you to avoid that and use a secret exit on any map. For example:&lt;br /&gt;
      nextsecret = MAP34&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;partime&#039;&#039;&#039;&lt;br /&gt;
:Partime for the map in seconds. This value overrides any value provided via DeHackEd. Note that partimes are only supported in episodes 1-3 of DOOM and any map of DOOM II. Ultimate DOOM episode 4, Heretic, and non-standard maps currently never display par times. For example:&lt;br /&gt;
      partime = 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;skydelta&#039;&#039;&#039;&lt;br /&gt;
:Pixels per gametic that the primary sky texture should scroll. This effect will only be applied to double skies and to F_SKY1 sectors which are NOT affected by any MBF sky transfer linedefs. For example:&lt;br /&gt;
      skydelta = 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sky2delta&#039;&#039;&#039;&lt;br /&gt;
:Pixels per gametic that the secondary sky texture should scroll. This effect will only be applied to double skies and to F_SKY2 sectors (which cannot be affected by MBF sky transfer linedefs). For example:&lt;br /&gt;
      sky2delta = 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;skyname&#039;&#039;&#039;&lt;br /&gt;
:Name of a texture to use as the primary sky for this map. This sky will appear in all sectors which use the F_SKY1 flat, and it will also appear as the top layer of Hexen-style double skies. The name provided for this lump must be a valid texture or an error will occur. For example:&lt;br /&gt;
      skyname = SKY2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sky2name&#039;&#039;&#039;&lt;br /&gt;
:Name of a texture to use as the secondary sky for this map. This sky will appear in all sectors which use the F_SKY2 flat, and it will also appear as the bottom layer of Hexen- style double skies. The name provided for this lump must be a valid texture or an error will occur. If no name is provided for the secondary sky, the primary sky name will be copied to it, so it is not an error to use F_SKY2 or double skies in a level where the sky2 texture is not explicitly defined. For example:&lt;br /&gt;
      sky2name = SKY4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;unevenlight&#039;&#039;&#039;&lt;br /&gt;
:Boolean value that determines whether walls parallel to the x and y axes of the game world are given lighting values 1 level higher or lower than other walls. This can dramatically affect the perceived light level of an area, so only use it for maps that are designed specifically for it. Maps which use custom global colormaps should usually set this value to false, since it only generally looks appropriate with the normal colormap. For example:&lt;br /&gt;
      unevenlight = false&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sound-*&#039;&#039;&#039;&lt;br /&gt;
:There are several sound-* commands which can be used to replace the default sounds in a map with sounds, using their mnemonics defined in [[EDF]].&lt;br /&gt;
[[EDF]] mnemonic of a sound to replace the default &amp;quot;swtchn&amp;quot; sound for this map.&lt;br /&gt;
&lt;br /&gt;
Sounds available for replacement:&lt;br /&gt;
 swtchx&lt;br /&gt;
 stnmov&lt;br /&gt;
 pstop&lt;br /&gt;
 pstart&lt;br /&gt;
 bdcls&lt;br /&gt;
 bdopn&lt;br /&gt;
 dorcls&lt;br /&gt;
 doropn&lt;br /&gt;
&lt;br /&gt;
Examples of use:&lt;br /&gt;
 sound-swtchx = newswtch&lt;br /&gt;
 sound-doropn = dorcreak&lt;br /&gt;
&lt;br /&gt;
==Examples of MapInfo Definitions==&lt;br /&gt;
A basic MapInfo lump may be similar to this:&lt;br /&gt;
&lt;br /&gt;
    [MAP01]&lt;br /&gt;
    levelname = Evil Hell Lab&lt;br /&gt;
    creator = DooMGuy667&lt;br /&gt;
&lt;br /&gt;
    [E1M1]&lt;br /&gt;
    levelname = Not Hangar&lt;br /&gt;
    creator = Not Romero&lt;br /&gt;
    skyname = SKY3&lt;br /&gt;
    skydelta = 1&lt;br /&gt;
&lt;br /&gt;
The first example would change the automap and intermission screen names for MAP01 to &amp;quot;Evil Hell Lab&amp;quot; and when the &amp;lt;tt&amp;gt;creator&amp;lt;/tt&amp;gt; command is used in the console, output &amp;quot;DooMGuy667&amp;quot;. The name in the braces is the map the MapInfo applies to, so by changing &amp;lt;tt&amp;gt;[MAP01]&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;[MAP02]&amp;lt;/tt&amp;gt;, the changes would apply to MAP02 instead.&lt;br /&gt;
&lt;br /&gt;
The second example also sets a name and creator for the map (for the E1M1 mapslot, in this case), and also specifies that it will use SKY3 and scroll the sky slowly, using the skydelta variable.&lt;br /&gt;
&lt;br /&gt;
[[Category:Editing]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=2139</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Main_Page&amp;diff=2139"/>
		<updated>2009-08-15T22:58:44Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
==Welcome to the Eternity Engine Wiki== &lt;br /&gt;
 &lt;br /&gt;
The [[Eternity Engine]] [[Wikipedia:Wiki|Wiki]] is a community-maintained documentation resource for the Eternity Engine [[Doom Wiki:Source port|source port]] and everything related to it. It is powered by [[Wikipedia:MediaWiki|MediaWiki]]. Feel free to edit and create articles to help make this a valuable source of knowledge. If you&#039;re not familiar with wiki markup, [[Wikipedia:Wikipedia:How to edit a page#Wiki markup|look here]].&lt;br /&gt;
&lt;br /&gt;
==Articles and areas of interest==&lt;br /&gt;
*[[Eternity Engine]]&lt;br /&gt;
*[[SMMU]]&lt;br /&gt;
*[[Editing reference]]&lt;br /&gt;
*[[List of command line parameters]]&lt;br /&gt;
*[[List of codepointers]]&lt;br /&gt;
*[[Small]]&lt;br /&gt;
*[[MapInfo]]&lt;br /&gt;
*[[3DMidTex tutorial]]&lt;br /&gt;
*[[3DMidTex advanced topics]]&lt;br /&gt;
*[[Portals]]&lt;br /&gt;
*[[Linked portals]]&lt;br /&gt;
&lt;br /&gt;
==Latest version==&lt;br /&gt;
The latest version of the Eternity Engine is currently {{Latest}}.&lt;br /&gt;
&lt;br /&gt;
[http://svn.drdteam.org/eternity/ Daily unofficial SVN builds.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Eternity Wiki]]&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
	<entry>
		<id>https://eternity.youfailit.net/index.php?title=Talk:Main_Page&amp;diff=1988</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://eternity.youfailit.net/index.php?title=Talk:Main_Page&amp;diff=1988"/>
		<updated>2009-05-21T23:11:00Z</updated>

		<summary type="html">&lt;p&gt;Bloodshedder: Protected &amp;quot;Talk:Main Page&amp;quot; [edit=autoconfirmed:move=autoconfirmed]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Bloodshedder</name></author>
	</entry>
</feed>