EDF game properties reference
This unique block changes global game properties from established hardcoded defaults.
Usage
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.
Structure
gameproperties { 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> }
Description
Flags
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:
Gameplay
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.
Cosmetic
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:
Doom
Common to all variants: DOOMWEAPONOFFSET, HUDSTATBARNAME, SKILL5RESPAWN, SKILL5WARNING.
In addition, the following variants of Doom have extra flags:
- shareware: NODIEHI
- retail (Ultimate Doom): LOSTSOULBOUNCE
- commercial (Doom II): MAPXY, SETENDOFGAME, WOLFHACK
- Final Doom, the Xbox and the BFG edition versions also have LOSTSOULBOUNCE.
Heretic
For Heretic, the preset flags are: CENTERHUDMSG, CHASEFAST, CHEATSOUND, HASADVISORY, HASMADMELEE, MNBIGFONT, SAVESOUND, SHADOWTITLES.
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:
- Doom II: DOOM2MISSIONS
- Final Doom: DEMOIFDEMO4, NOTELEPORTZ
- Xbox and BFG edition: DOOM2MISSIONS, HASBETRAY, NOGDHIGH, WOLFNAMEHACKS
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).
Gameplay
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 |
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:
|
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 | 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
- 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.
Credits
- 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)
ENDOOM
- exit.endtextname
- Exit text lump. Defaults: ENDOOM (Doom), ENDTEXT (Heretic)
Blood
- 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)