EDF game properties reference

From Eternity Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This unique block changes global game properties from established hardcoded defaults.


Simply add a block named gameproperties { } in your EDF lump, and set the items you want to change from the base game. If you have multiple such blocks in your EDF code, the last one will be considered.

The descriptions of the available fields are below.


 flags.add                <string>
 flags.remove             <string>
 missionflags.add         <string>
 missionflags.remove      <string>
 demo.titletics           <integer>
 demo.advisortics         <integer>
 demo.pagetics            <integer>
 menu.background          <string>
 menu.transframe          <string>
 menu.skvattacksound      <string>
 menu.offset              <integer>
 menu.pointer1            <string>
 menu.pointer2            <string>
 menu.startmap            <string>
 border.flat              <string>
 border.topleft           <string>
 border.top               <string>
 border.topright          <string>
 border.left              <string>
 border.right             <string>
 border.bottomleft        <string>
 border.bottom            <string>
 border.bottomright       <string>
 console.charsperline     <integer>
 console.bellsound        <string>
 console.chatsound        <string>
 console.backdrop         <string>
 hud.pausepatch           <string>
 game.autoflightartifact  <string>
 game.pufftype            <string>
 game.telefogtype         <string>
 game.telefogheight       <integer>
 game.telesound           <string>
 game.thrustfactor        <integer>
 game.defpclass           <string>
 game.endgamefinaletype   <string>
 game.skillammomultiplier <floating-point>
 game.monstermeleerange   <value>
 game.itemheight          <floating-point>
 game.skillammomultiplier <number>
 game.lookpitchup         <integer>
 game.lookpitchdown       <integer>
 finale.text.x            <integer>
 finale.text.y            <integer>
 castcall.title.y         <integer>
 castcall.name.y          <integer>
 intermission.pic         <string>
 sound.defaultmusname     <string>
 sound.defaultsndname     <string>
 credit.background        <string>
 credit.y                 <integer>
 credit.titlestep         <integer>
 exit.endtextname         <string>
 blood.defaultnormal      <string>
 blood.defaultrip         <string>
 blood.defaultcrush       <string>



flags.add and flags.remove

Adds or removes general gameplay flags from the default set. Group them using the usual syntax, separating them by | (vertical bar), + or "," (comma). For plus and comma, you need to surround all flags in quotes.

List of flags

You can use the flags from the following categories:


These flags control gameplay physics:

  • CHASEFAST: accelerates all the Chase states of monsters on skill 5 and -fast like in Heretic.
  • HASMADMELEE: causes all monsters to fight each other when player dies in single player (like in Heretic).
  • LOSTSOULBOUNCE: for demo compatibility, decide whether lost souls should bounce on floors (normally it's a user or OPTIONS gameplay setting).
  • SKILL5RESPAWN: make monsters respawn on skill 5.
Game flow control

These flags don't control gameplay per se, but are important for player control and progression:

  • DOOMWEAPONOFFSET: setup weapon frame offset() attributes to render like in Doom. Necessary for Dehacked compatibility.
  • INVALWAYSOPEN: Inventory is always open (like Strife, but not Heretic).
  • MAPXY: use MAPxy map names by default. This implies that the -warp command-line parameter will expect one value, and any legacy features which depended on the ExMy vs. MAPxy arrangements will favour MAPxy.
  • NODIEHI: avoid playing the pdiehi (high) death sound.
  • SETENDOFGAME: Teleport_EndGame enables the cast finale.

These flags control minor display differences between the games. Usually they're of limited use for mod authors, only relevant for the base game differences. Check this list if you have particular issues to solve in your mod:

  • CENTERHUDMSG: make messages always show in center. Typical with Heretic.
  • CHEATSOUND: make the menu sound when cheating.
  • HASADVISORY: display the advisory popup in the title screen. This means drawing an "ADVISOR" lump image at coordinates (4, 160) of a virtual 320x200 screen space, soon as the title screen appears.
  • HUDSTARTBARNAME: displays the automap level name and time relative to the status bar instead of at a hardcoded position.
  • IMPACTBLOOD: (unused). Projectiles causing blood on impact is a thingtype flag now.
  • MNBIGFONT: use big font for menu titles.
  • SAVESOUND: make a sound in save and load menus. This is a small interface detail.
  • SHADOWTITLES: adds shadows font effects to the titles in menus.
  • SKILL5WARNING: warn player if they want to start a new game on skill 5.
  • WOLFHACK: is subject to German-edition restriction on secret levels. Typical for Doom 2.

Internally preset flags

The games supported by Eternity start with the following flags preset:



In addition, the following variants of Doom have extra flags:

  • shareware: NODIEHI
  • retail (Ultimate Doom): LOSTSOULBOUNCE
Final Doom, the Xbox and the BFG edition versions also have LOSTSOULBOUNCE.


Mission flags

missionflags.add and missionflags.remove

Adds or removes mission-specific flags. A mission is a variant of a game, such as how we have Ultimate Doom, Doom II, Final Doom etc. The available mission flags are:

List of flags

  • ALLOWEXITTAG: mission allows tagged normal exit lines.
  • ALLOWSECRETTAG: mission allows tagged secret exit lines.
  • CONBACKTITLE: use console.backdrop (settable here) instead of TITLEPIC for the console background.
  • DEMOIFDEMO4: fine control for DEMO4 lump's existence.
  • DOOM2MISSIONS: supports the Doom II mission packs.
  • HASBETRAY: has the "Betray" secret MAP33 level.
  • NOGDHIGH: BFG edition setup flag.
  • NOTELEPORTZ: preserves Z coordinate when teleporting, like in Final Doom. Only acts like this in vanilla/demo compatibility.
  • WOLFNAMEHACKS: override Wolfenstein secret level names.

Mission-preset flags

Those missions have the following flags set:


All other missions have 0 flags.

Demo control

  • demo.titletics
Time to show the title screen. Defaults: 170 (Doom I), 385 (Doom II), 210 (Heretic).
  • demo.advisortics
Time to show the advisory banner over the title screen. This adds up to the whole time the title pic is shown. Only nonzero default is 140 in Heretic.
  • demo.pagetics
Time to show the page between demos. Defaults: 385 (Doom), 200 (Heretic).

Menu customization

  • menu.background
The default menu background flat. Defaults: FLOOR4_6 (Doom), FLOOR16 (Heretic), CONS1_5 (HacX mission).
  • menu.transframe
Name of frame to use in the video menu translucency preview. Defaults: S_TBALL1 (Doom), S_MUMMYFX1_1 (Heretic).
  • menu.skvattacksound
Name of sound to play when simulating attacking in the skin viewer. Defaults: shotgn (Doom), gldhit (Heretic).
  • menu.offset
Vertical offset upwards to draw the menu. Defaults: 0 (Doom), 4 (Heretic).
  • menu.pointer1 and menu.pointer2
Graphic patches to use for the menu selector. Defaults: M_SKULL1 and M_SKULL2 (Doom), M_SLCTR1 and M_SLCTR2 (Heretic).
  • menu.startmap
Map lump name to load when the new game menu item is selected. This will skip the menus for episode and skill level selection. Default: No default

Border customization

  • border.flat
The flat to use for the background around the status bar and when the view window is reduced. Defaults: FLOOR7_2 (Doom I), GRNROCK (Doom II), FLOOR04 (Heretic shareware), FLAT513 (Heretic full).
  • border.topleft, .top, .topright, .left, .right, .bottomleft, .bottom and .bottomright
Pictures to use for the border. Defaults: BRDR_TL, BRDR_T, BRDR_TR, BRDR_L, BRDR_R, BRDR_BL, BRDR_B and BRDR_BR (Doom); BORD** (Heretic), same suffixes.

Console customization

  • console.charsperline
Number of characters per line to display in console. Default: 40.
  • console.bellsound
The beep error sound to use from the console, such as when errors occur. Defaults: tink (Doom), ht_chat (Heretic).
  • console.chatsound
The sound to play when receiving messages from other players. Defaults: tink (Doom I), radio (Doom II), ht_chat (Heretic).
  • console.backdrop
The name of the graphics lump to display for the console. Defaults: TITLEPIC (Doom), TITLE (Heretic).

Heads-up display

  • hud.pausepatch
The name of the graphics lump to display for the pause banner. Defaults: M_PAUSE (Doom), PAUSED (Heretic).


These options are relevant for gameplay physics. See also the similar gameplay flags.

Name Description Doom default Heretic default
game.autoflightartifact The artifact to use when commanding the player to fly up. (none) ArtiFly


Set the player view pitch limits up and down respectively, in degrees. Valid values are between 0 and 45 inclusive, integer only. 45 32
game.pufftype The default hitscan puff when no EDF pufftype is specified. BulletPuff HereticStaffPuff
game.telefogtype The teleportation fog thing type. DoomTeleFog HereticTeleFog
game.telefogheight The distance of the telefog from the ground. 0 32
game.telesound The teleportation sound. telept htelept
game.thrustfactor The percentage of how much to thrust things based on damage. 100 150
game.defpclass The default player class when starting a new game. DoomMarine Corvus
game.endgamefinaletype Default behavior for Teleport_EndGame. Supported options are:
  • text
  • doom_credits
  • doom_deimos
  • doom_bunny
  • doom_marine
  • htic_credits
  • htic_water
  • htic_demon
  • psx_udoom
  • psx_doom2
doom_credits (Doom I), text (Doom II) htic_credits
game.skillammomultiplier Floating-point value for skill 1 and 5 ammo multiplier. 2 1.5
game.monstermeleerange Mode to calculate melee range. Supported options are:
  • doom: range is 44 + radius(enemy)
  • raven: range is 64
doom raven
game.itemheight Item pick-up height. Unlike expectations, the height is not thingtype's height, but this value. 8.0 32.0

Finale and intermission

  • finale.text.x and finale.text.y
Finale text coordinates. Defaults: 10, 10 (Doom); 20, 5 (Heretic)
  • castcall.title.y
Cast call title Y. Default: 20
  • castcall.name.y
Cast call name Y. Default: 180
  • intermission.pic
Intermission backdrop. Default: INTERPIC


  • sound.defaultmusname
Default music to play if none specified. Defaults: e1m1 (Doom I and Heretic), runnin (Doom II)
  • sound.defaultsndname
Sound to play when the one specified in EDF is unavailable. Defaults: pistol (Doom), gldhit (Heretic)
  • sound.titlemusic
Title screen music. No default.


  • credit.background
Swirling flat to use in the Eternity credits background. Defaults: NUKAGE1 (Doom I), SLIME05 (Doom II), SLIME01 (Hacx mission), FLTWAWA1 (Heretic)
  • credit.y
Credits Y coordinate. Defaults: 20 (Doom), 8 (Heretic)
  • credit.titlestep
Y step for each line. Defaults: 12 (Doom), 8 (Heretic)


  • exit.endtextname
Exit text lump. Defaults: ENDOOM (Doom), ENDTEXT (Heretic)


  • blood.defaultnormal
Thing type for the default blood splat. Defaults: DoomBlood (Doom), HereticBloodSplatter (Heretic)
  • blood.defaultrip
Thing type for the piercing RIP projectiles. Defaults: DoomBlood (Doom), HereticBlood (Heretic)
  • blood.defaultcrush
Thing type for the crushing ceiling blood. Defaults: DoomBlood (Doom), HereticBlood (Heretic)