5. Level Modding
Information for creating custom levels and encounters. Documentation on event calls, entity types, etc.
Beginner's Guide
This guide will cover the basics required to get started with level modding.
Section 1: Before you begin modding
Section 1 will cover everything you need to know before you can begin editing or making your own ...
Section 1: What is a level mod?
In order to untangle the mess that is teaching the pre-requisite knowledge of being able to creat...
Section 1: Required tools part 1
Now that we know that the file we actually edit to create a level mod is the .entities file, we w...
Section 1: Required tools part 2
Now that you have the needed tools, let's go over how to use them to set up your level mod. Don't...
Section 2: Let's begin modding
Just as a refresher, this section assumes you have an editable .entities file in the correct plac...
Section 2: idAI2s and spawns
Before we edit an encounter, we need to know about the behind-the-scenes elements going on. Spec...
Section 2: Editing an encounter: Replacing
Most people who want to make level mods, myself included, first got to the "let's open the .entit...
Section 2: Editing an encounter: Adding
I'm going to be frank, I think ProdeusDoom does a much better job of explaining it, check it out ...
Tools
Information about the tools necessary for Level Modding.
Getting Started
Entities Files Levels are edited through ".entities" files and are saved in:<resource>/maps/game...
Text Editor
Notepad++ is the Recommended Text Editor to Use .entities files are compressed and must be dec...
EntitySlayer
EntitySlayer by FlavorfulGecko5 - Download EntitySlayer is an easy yet powerful entity editing...
Entities
A description of various entities that shape the level.
Entities List (Doom Eternal)
An incomplete list of known entity classes in Doom Eternal: idAASObstacle idAASReachability id...
idAI2
An entity for AI/NPCs, usually demons. idAI2 can be individually placed throughout a map, or mor...
idArchvileTemplate
An entity to control what ai types an Archvile can summon. Usage entity { entityDef example_a...
idDestructible
An entity that can be destroyed by certain actions. Breakable Concrete Wall entity { entityDe...
idDynamicEntity
An entity that consists of various objects not connected to the level geometry. Usage entity { ...
idEncounterManager
An entity that scripts the encounters. This is what is used to spawn in demons. Usage entity { ...
idEncounterTrigger_Commit
An entity used to trigger an encounter manager Usage entity { entityDef example_trigger_commi...
idEncounterTrigger_Exit
An entity used to end an encounter manager Usage entity { entityDef example_trigger_exit { ...
idEncounterTrigger_RaiseUserFlag
An entity used to trigger (raise a flag) for encounters. Usage entity { entityDef example_use...
idEntityFx
An entity that will play FX. Usage entity { layers { "game/pvp/slayer_team" // give the FX...
idEnvironmentalDamage_Hurt_Trigger
An entity that deals damage when entering its volume. Essentially the damaging part of a hazard. ...
idGameChallenge
An entity that determines the game mode for the level. Only one idGameChallenge entity can exist ...
idGuiEntity_Text
An entity that displays text in the world. Example entity { entityDef sample_text { // name o...
idInteractable
An entity that is interactable with a melee input. Some of these entities only work in specific ...
idMover
An entity that can move around on pre-programmed paths, and also scripted to move around from tim...
idMusicEntity
Music Entities are used to play music in the level. Usage entity { entityDef sound_sound_musi...
idParticleEmitter
An entity that emits particles. Usage entity { entityDef example_particle_emitter { inherit...
idPlayerStart
An entity that defines the spawn position for players. Single Player entity { entityDef initi...
idProp2
An entity that will spawn a pickup or barrel. Health entity { entityDef pickups_pickup_health...
idProp_Coop
An entity that can create a physical obstruction for all players. Usage entity { entityDef pr...
idSoundEntity
Sound entities are used to broadcast sounds to a player. Usage entity { entityDef sound_buffp...
idTarget_Command
An entity to trigger the specified console commands. Usage entity { entityDef example_target_...
idTarget_Count
An entity that is commonly used for relays. As with most computing logic, relays wait for specif...
idTarget_DevLoadoutSwap
An entity that replaces the Slayer's current loadout with something else. Usage entity { e...
idTarget_EnableTarget
An entity that either exclusively enables targets, or exclusively disables them, in contrast to o...
idTarget_FirstThinkActivate
An entity that will execute on map load. Usage entity { entityDef first_think_activate_1 { ...
idTarget_LayerStateChange
An entity that can save the player's progress as a checkpoint and-as its name implies-manipulate ...
idTarget_Notification
An entity that creates a notification on player's screen when triggered. Usage entity { entit...
idTarget_Remove
An entity that will remove the listed entities when activated. Usage entity { entityDef examp...
idTarget_Hide
An entity that will hide the listed entities when activated. Note that not all entities can be h...
idTarget_Show
An entity that will show the listed entities when activated. Usage entity { entityDef example...
idTarget_Spawn
An entity to spawn other entities. Primarily used for idAI2 entities. It should be noted that mo...
idTarget_Spawn_Parent
An entity that idTargetSpawnGroup entities use to define what AI can spawn in its spawn group. U...
idTargetSpawnGroup
An entity used to group multiple idTarget_Spawn entities. Target Spawn Groups are used for defin...
idTarget_Teleport
An entity to teleport the player to the specified location when used. Usage entity { entityDe...
idTrigger_Teleporter_Fade
The idTrigger_Teleporter_Fade entity defines the location where the player can teleport from with...
idTarget_Timeline
An entity that plays multiple entities after a set amount of time between each event. Usage ent...
idTarget_Timer
When activated, displays a countdown on the player's HUD. idTarget_Timer entity { entityDef e...
idTrigger
An entity that will trigger its listed targets when used. Usage entity { entityDef mod_trigge...
idTrigger_GorillaBar
An entity volume that allows Slayers to swing onto. Metal A entity { entityDef game_interact_...
idTrigger_BouncePad & idInfo_BounceDestination
Entities that propel a player to a target destination. A bounce pad consists of either three or ...
idTrigger_Teleporter & idInfo_TeleportDestination
The idTrigger_Teleporter entity defines the location where the player can teleport from. The idI...
idTrigger_TakeDamage & idTarget_Melee
An either shootable or punchable trigger activated when it takes damage. Assets for both of thes...
idTrigger_Push
An entity that moves players inside of it. entity { entityDef game_trigger_push_1 { ...
idTargetableProxyHandler & idTarget_SmartAIProxy
The idTargetableProxyHandler entity defines the render model and proxy list for Meathook Nodes. ...
idVolume_PlayerEnvOverride
An entity to overwrite the envSettings decl set by idWorldspawn when within the defined volume. ...
idTarget_Codex
An entity to activate codex entries. Usage entity { entityDef example_codex_entity { class ...
Event Calls
A description of various eventCalls that can be used when building a custom encounter.
activateTarget
An eventCall to activate another entity from an idEncounterManager. Usage item[0] = { eventCa...
clearCombatRoles
An eventCall to clear any combat roles set by a preceding setCombatRoles. Usage item[0] = { e...
clearFactionOverrides
An eventCall to clear any faction overrides set by a preceding setFactionRelation in an idEncount...
damageAI
An eventCall to apply a damage type to the specified ai in an idEncounterManager. Usage item[0]...
designerComment
An eventCall for leaving a comment in an idEncounterManager. Usage item[0] = { eventCall = { ...
forceAIToFlee
An eventCall to that forces spawned ai in an idEncounterManager to flee. Usage item[0] = { ev...
forceChargeOnAllAI
An eventCall to make all spawned ai in an idEncounterManager charge the player. Usage item[0] =...
maintainAICount
An eventCall to maintain a certain quantity of respawning idAI2 in an idEncounterManager. Usage ...
makeAIAwareOfPlayer
An eventCall to make any ai entities spawned in an idEncounterManager, aware of the player. Usag...
migrateAIFromExternalScript
An eventCall to migrate ai entities from another idEncounterManager, into the current encounter m...
proceedToNextScript
An eventCall to proceed to the next script in an idEncounterManager. Usage item[0] = { eventC...
raiseEventFlagOnExternalScript
An eventcall to trigger a flag on an idEncounterManager outside of the one that this eventcall is...
removeAI
An eventCall to remove spawned ai entities from an idEncounterManager. Usage item[0] = { even...
setCombatRoles
An eventCall to assign roles to idAI2 in an idEncounterManager. Usage item[0] = { eventCall =...
setFactionRelation
An eventCall to force an emotion between an instigating and target faction in an idEncounterManag...
setMusicState
An eventCall to change the state of the specified idMusicEntity in an idEncounterManager. Usage ...
setNextScriptIndex
An eventCall to set the index of the next script in an idEncounterManager. Usage item[0] = { ...
setNextScriptIndexRandom
An eventCall to set a random index of the next script in an idEncounterManager. Usage item[0] =...
spawnAI
An eventCall to spawn multiple idAI2 entities, simultaneously, in an idEncounterManager. Usage ...
spawnArchvile
An eventCall to spawn an Archvile. Usage item[0] = { eventCall = { eventDef = "sp...
spawnBuffPod
An eventCall to spawn a buff totem. Usage item[0] = { eventCall = { eventDef = "s...
spawnPossessedAI
An eventCall to spawn an ai that is already possessed by a spirit in an idEncounterManager. Usag...
spawnSingleAI
An eventCall to spawn a single idAI2 entity in an idEncounterManager. Usage item[0] = { ev...
spawnSpirit
An eventCall to spawn a spirit in an idEncounterManager. Usage item[0] = { eventCall = { e...
staggeredAISpawn
An eventCall to spawn multiple idAI2 entities, with a delay between each spawn, in an idEncounter...
stopMaintainingAICount
An eventCall to end a maintainAICount in an idEncounterManager. Usage This eventCall should onl...
wait
An eventCall that tells the idEncounterManager to wait a specified amount of time before executin...
waitAIHealthLevel
An eventCall that tells the idEncounterManager to wait until the specified ai type reaches a cert...
waitAIRemaining
An eventCall to wait until a certain quantity of specified ai types remain in an idEncounterManag...
waitForEventFlag
An eventCall that waits until a trigger is activated, or a "flag" is raised. Usage item[0] = { ...
waitKillCount
An eventCall that tells the idEncounterManager to wait until a certain quantity of the specified ...
waitMaintainComplete
An eventCall to wait until a preceding maintainAICount finishes. Usage item[0] = { eventCall ...
waitMulitpleConditions
An eventCall for using multiple wait eventCalls in an idEncounterManager. This eventCall is spel...
waitRandomKillCount
An eventCall to wait until a random quantity of specified ai types are killed in an idEncounterMa...
waitStaggeredSpawnComplete
An eventCall to wait until the preceding staggeredAISpawn finishes. Usage item[0] = { eventCa...
Type Lists
aiStateOverride_t
These types can also be dumped with sh_type/mh_type aiStateOverride_t Types 2016 AIOVERRIDE_DE...
eEncounterSpawnType_t
These types can also be dumped with sh_type/mh_type eEncounterSpawnType_t Types 2016 ENCOUNTER...
encounterGroupRole_t
These types can also be dumped with sh_type/mh_type encounterGroupRole_t Types 2016 ROLE_DEFEN...
socialEmotion_t
These types can also be dumped with sh_type/mh_type socialEmotion_t Types 2016 EMOTION_TERRIFI...
Slayer Inventory
Modify the player's initial inventory.