Skip to main content

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.

Tools

Information about the tools necessary for Level Modding.

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

Slayer Inventory

Modify the player's initial inventory.