Difference between revisions of "HPL2/TDD/Entity Types"

From Frictional Wiki
< HPL2‎ | TDD
Jump to navigation Jump to search
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{TocRight}}
 
{{TocRight}}
'''Please add more information about missing subjects.'''
 
  
This page talks about the different types of entities found within the HPL2 engine. The type determines how the entity will be set up, what kind it is, what it does under different circumstances etc. Using the Model Editor you can identify and specify which type an entity has and its type vars, in Settings > User defined variables. In the Level Editor, the different types have different settings applicable for them, known as instance vars. For example, a MoveObject type will have the OffsetArea box available in the Level Editor, and an Item (Note) type will have a NoteText box available.
+
This page lists the different types of entities found within the HPL2 engine. The type determines how the entity will be set up, what kind it is, what it does under different circumstances etc. Using the Model Editor you can identify and specify which type an entity has and its type vars, in Settings > User defined variables. In the Level Editor, the different types have different settings applicable for them, known as instance vars. For example, a MoveObject type will have the OffsetArea box available in the Level Editor, and an Item (Note) type will have a NoteText box available.
  
 
A list of all the types and subtypes can be found in the table of contents to the right.
 
A list of all the types and subtypes can be found in the table of contents to the right.
Line 8: Line 7:
 
== StaticProp ==
 
== StaticProp ==
  
A StaticProp entity resembles a static object. They have no available type properties, but they can still use a collision box and have mass/gravity. Note that they cannot be interacted with in the game, and cannot be disabled. If you need this feature, use Object (Static) instead.
+
A StaticProp entity resembles a static object. They have no available type properties, but they can still use physics bodies (collision boxes) and have mass/gravity. Note that they cannot be interacted with in the game, and cannot be disabled. If you need this feature, use Object (Static) instead.
  
 
{|class=wikitable
 
{|class=wikitable
Line 41: Line 40:
  
 
== Object ==
 
== Object ==
 +
 +
Objects are entities that can be activated/deactivated, broken, and interact with physics.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| BreakActive || Bool || false || If entity is broken when hit hard enough or health is 0.
 +
|-
 +
| BreakDestroyJoints || Bool || false || If all physics joints should be destroyed when broken.
 +
|-
 +
| BreakMinEnergy || Float || 100 || The minimum energy needed for breakage. Energy = Object1Speed * Object1Mass + Object2Speed * Object2Mass. Speed = m/s. If Object 2 is floor or something static, its speed is always 0 and does not contribute to total energy!
 +
|-
 +
| BreakEntity || File (.ent) || || The entity this entity turns into when broken.
 +
|-
 +
| BreakEntityAlignBody || String || || The body BreakEntity uses to align itself when created. No entity is created if left empty.
 +
|-
 +
| BreakSound || File (.snt) || || The sound made when broken.
 +
|-
 +
| BreakParticleSystem || File (.ps) || || Particle system shown when broken.
 +
|-
 +
| BreakImpulse || Float || 4 || Impulse (speed in m/s really) added to all bodies in BreakEntity when created. The direction of impulse is outwards from center of entity.
 +
|-
 +
| HitDamageAmount || Float || 5 || The amount of damage made when hitting an enemy or player.
 +
|-
 +
| HitDamageStrength || Int || 1 || The strength of the damage.
 +
|-
 +
| MinHitDamageSpeed || Float || 3 || The minimum speed (m/s) needed for damage to be made.
 +
|-
 +
| LifeLength || Float || 0 || A time after which the entity automatically breaks. 0=lasts forever.
 +
|-
 +
| IsFood || Bool || false || If this is food for some enemies and can be used to lure them. Needs to have break active and health determines how long the food lasts.<br>Waterlurkers are the only enemy type that is lured by and eats food objects.
 +
|-
 +
| ShowHints || Bool || true || If a hint can be triggered by interacting with the prop.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| ContainedItem || String || None || An item that is created when entity breaks.<br>Must match an entity file name (extension .ent optional) in the "items" folder.
 +
|-
 +
| DisableBreakable || Bool || false || If the entity is breakable then having this true will make it unbreakable.
 +
|-
 +
| IsInsanityVision || Bool || false || If the prop is only shown when insanity is low enough.
 +
|-
 +
| VisionMaxSanity || Float || 30 || The max sanity the player can have for prop to show if it is an insanity vision.<br>The object will only be visible if the player's sanity is less than this value.
 +
|-
 +
|}
  
 
=== Static ===
 
=== Static ===
  
Not to be confused with an actual static object, the Object type is a general object with common properties. The static subtype simply disables any additional properties from the other subtypes. An Object (Static) is similar in concept to a StaticProp type entity, however the Object (Static) can be disabled in the game and interacted with by the player.
+
Not to be confused with an actual static object. This Object subtype is a generic object with common properties. The static subtype simply disables any additional properties from the other subtypes. An Object (Static) is similar in concept to a StaticProp type entity, however the Object (Static) can be disabled in the game and interacted with by the player.
  
 
=== Grab ===
 
=== Grab ===
  
 
A Grab subtype is a normal Object entity with the ability to be grabbed by the player in the game. In order for this to work, the object must have a mass above 0.
 
A Grab subtype is a normal Object entity with the ability to be grabbed by the player in the game. In order for this to work, the object must have a mass above 0.
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| GrabUseDepth || Bool || false || If GrabDepth is used. If not the interaction distance is used.
 +
|-
 +
| GrabDepth || Float || 1.5 || The distance which a grabbed object is automatically placed at.
 +
|-
 +
| GrabDepthInc || Float || 0.15 || Steps that the entity will move in when moving the mouse scroll.
 +
|-
 +
| GrabMinDepth || Float || 1.0 || Minimum distance the entity can be from player when grabbed.
 +
|-
 +
| GrabMaxDepth || Float || 2.2 || Maximum distance the entity can be from player when grabbed.
 +
|-
 +
| GrabUseOffset || Bool || false || If rotation and position offset is used. If not offset will be relative to the interact position.
 +
|-
 +
| GrabPositionOffset || Vector3f || 0 || Positional offset of entity.
 +
|-
 +
| GrabRotationOffset || Vector3f || 0 || Rotational offset of entity. It will automatically rotate to this when grabbed.
 +
|-
 +
| GrabThrowImpulse || Float || 10 || The speed (m/s) at which the entity is thrown.
 +
|-
 +
| GrabMassMul || Float || 0.1 || How much the object will weight when grabbed. Useful for heavier objects since they can wreck mayhem otherwise. 0.5% means half (50%) of the original weight.
 +
|-
 +
| GrabForceMul || Float || 1 || Change how much force is added to grabbed object.
 +
|-
 +
| GrabTorqueMul || Float || 1 || Change how much torque is added to grabbed object.
 +
|-
 +
| GrabUseRotation || Bool || true || If rotation should be used on grabbed object
 +
|-
 +
| GrabSkipNonOuterBodies || Bool || false || If true, then bodies that are inside a chain (has two or more joints attached to it) will not be grabbed.
 +
|-
 +
|}
  
 
=== Push ===
 
=== Push ===
  
Similar to the Grab subtype, the Push subtype allows the player to push the object by taking hold of it and walking or right clicking. Example of this is the prison bed.
+
Similar to the Grab subtype, the Push subtype allows the player to push the object by taking hold of it and walking or right clicking. Examples include large rocks and the bed covering the hole in the floor in the Prison - Southern Block.
 +
 
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| PushAtPoint || Bool || false || If the push force should be applied to the point at the object where interaction took place.
 +
|-
 +
| PushForceMul || Float || 1 || Multiplier for force applied. Used to fine tune interaction.
 +
|-
 +
| PushImpulse || Float || 2 || Impulse added when thrown.
 +
|-
 +
|}
  
 
=== Slide ===
 
=== Slide ===
  
A Slide Object is similar to the Grab subtype, except it can only be slid in a single direction for a certain amount. An existing entity that uses this is the secret floor carpet you can slide to the side.
+
A Slide Object is similar to the Grab subtype, except it can only be slid in a single direction for a certain amount. An existing (but unused) entity that uses this is the secret floor carpet you can slide to the side.
 +
 
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| SlideMaxSpeed || Float || 10 || The maximum speed it can be moved.
 +
|-
 +
| SlideSlowDownFactor || Float || 1 || Amount of slowdown applied to object when not moved.
 +
|-
 +
| SlideSpeedFactor || Float || 1 || The higher value the more speed gain a mouse movement makes.
 +
|-
 +
| SlideThrowImpulse || Float || 3 || Impulse added when thrown.
 +
|-
 +
|}
  
 
== SwingDoor ==
 
== SwingDoor ==
  
A SwingDoor entity is just that; a swing door. Any door you can grab and swing open is considered a SwingDoor. The other option would be LevelDoor, which goes under its own category. To use a SwingDoor, you need to attach joints to where you want the door to swing around. These are usually placed by the hinges of the door. On the joint you can set the min and max values to limit how much the door can be opened. These are usually approximately 90 degrees apart in either positive or negative directions.
+
A SwingDoor entity is standard hinged door. Any door you can grab and swing open is considered a SwingDoor. To use a SwingDoor, you need to attach joints to where you want the door to swing around. These are usually placed by the hinges of the door. On the joint you can set the min and max values to limit how much the door can be opened. These are usually approximately 90 degrees apart in either positive or negative directions.
 +
 
 +
If the FullGameSave instance var is not enabled, SwingDoors will reset to their initial open amount when leaving a level and returning to it.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MoveMaxSpeed || Float || 13.5 || The maximum speed it can be moved.
 +
|-
 +
| MoveSlowDownFactor || Float || 3.0 || Amount of slowdown applied to object when not moved.
 +
|-
 +
| MoveSpeedFactor || Float || 1.0 || The higher value the more speed gain a mouse movement makes.
 +
|-
 +
| MoveThrowImpulse || Float || 6.0 || Impulse added when thrown.
 +
|-
 +
| CanInteractWithStaticBody || Bool || false || If by interacting with a static body in the entity, the door is interacted with. Meaning that interacting with any part of the entity will work.
 +
|-
 +
| CloseOnSound || File (.snt) || || Sound played when the door is closed.
 +
|-
 +
| CloseOffSound || File (.snt) || || Sound played when the door is opened.
 +
|-
 +
| LockOnSound || File (.snt) || || Sound played when the door is locked.
 +
|-
 +
| LockOffSound || File (.snt) || || Sound played when the door is unlocked.
 +
|-
 +
| InteractLockedSound || File (.snt) || || Sound made when player interacts with a locked door.
 +
|-
 +
| Breakable || Bool || false || Can the door be broken.
 +
|-
 +
| DamageMesh1 || File (.dae/.msh/.mesh) || || Mesh used when health is below HealthDamage1
 +
|-
 +
| DamageMesh2 || File (.dae/.msh/.mesh) || || Mesh used when health is below HealthDamage2
 +
|-
 +
| BrokenEntity || File (.ent) || || The entity this entity turns into when broken.
 +
|-
 +
| DamageSound || File (.snt) || || Sound made when a new damage mesh is used.
 +
|-
 +
| DamagePS || File (.ps) || || Particles created when a new damage mesh is used.
 +
|-
 +
| BreakSound || File (.snt) || || Sound made when broken.
 +
|-
 +
| BreakPS || File (.ps) || || Particles created when broken.
 +
|-
 +
| BreakImpulse || Float || 3 || Impulse set to objects in broken mesh.<br>Incorrectly defined as a sound file in EntityTypes.cfg.
 +
|-
 +
| HealthDamage1 || Float || 66 || Health when damage mesh 1 is used.
 +
|-
 +
| HealthDamage2 || Float || 33 || Health when damage mesh 2 is used.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| Locked || Bool || false || If the door is locked
 +
|-
 +
| OpenAmount || Float || 0 || The amount the door is open. 0 - 1.
 +
|-
 +
| DisableBreakable || Bool || false || If the entity is breakable then having this true will make it unbreakable.
 +
|-
 +
|}
  
 
== Lever ==
 
== Lever ==
Line 75: Line 246:
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MoveMaxSpeed || Float || 13.5 || The maximum speed it can be moved.
 +
|-
 +
| MoveSlowDownFactor || Float || 3.0 || Amount of slowdown applied to object when not moved.
 +
|-
 +
| MoveSpeedFactor || Float || 1.0 || The higher value the more speed gain a mouse movement makes.
 +
|-
 +
| MoveThrowImpulse || Float || 6.0 || Impulse added when thrown.
 +
|-
 +
| CanInteractWithStaticBody || Bool || false || If by interacting with a static body in the entity, the lever is interacted with. Meaning that interacting with any part of the entity will work.
 +
|-
 +
| MinLimitRange || Float || 5.0 || The distance from min the joint can be to be considered at min limit.
 +
|-
 +
| MaxLimitRange || Float || 5.0 || The distance from max the joint can be to be considered at max limit.
 +
|-
 +
| MinLimitSound || File (.snt) || || Sound played when at min limit<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| MaxLimitSound || File (.snt) || || Sound played when at max limit<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| StuckSound || File (.snt) || || Sound played when stuck<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| MiddleAngleAmount || Float || 0 || The amount between min and max that is considered middle. -1 to 1. -1=at min, 0=exactly between min and max, 1=at max
 +
|-
 +
| AutoMoveToAngle || Bool || True || If the lever should move to position when not interacted with.
 +
|-
 +
| AutoMoveSpeedFactor || Float || 2 || Multiplier applied to speed to determine the speed it moves towards wanted position. The higher the faster it gets to the position.
 +
|-
 +
| AutoMoveMaxSpeed || Float || 8 || Max speed it can move at to the wanted position
 +
|-
 +
| AutoMoveGoal || String || Middle || Where it should go when auto moving.<br>Can be "Middle", "Min", or "Max".
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| StuckState || String || None || The stuck state for the lever.<br>Can be "None", "Min", or "Max".
 +
|-
 +
| InteractionDisablesStuck || Bool || false || If stuck is disabled when player interacts.
 +
|-
 +
| OverrideDefaults || Bool || false || If normal settings, set in ent file, should be overridden by settings below.
 +
|-
 +
| MiddleAngleAmount || Float || 0 || The amount between min and max that is considered middle. -1 to 1. -1=at min, 0=exactly between min and max, 1=at max
 +
|-
 +
| AutoMoveToAngle || Bool || True || If the lever should move to position when not interacted with.
 +
|-
 +
| AutoMoveGoal || String || Middle || Where it should go when auto moving.<br>Can be "Middle", "Min", or "Max".
 +
|-
 +
|}
  
 
== Wheel ==
 
== Wheel ==
Line 83: Line 308:
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MoveMaxSpeed || Float || 13.5 || The maximum speed it can be moved.
 +
|-
 +
| MoveSlowDownFactor || Float || 3.0 || Amount of slowdown applied to object when not moved.
 +
|-
 +
| MoveSpeedFactor || Float || 1.0 || The higher value the more speed gain a mouse movement makes.
 +
|-
 +
| MoveThrowImpulse || Float || 6.0 || Impulse added when thrown.
 +
|-
 +
| CanInteractWithStaticBody || Bool || false || If by interacting with a static body in the entity, the wheel is interacted with. Meaning that interacting with any part of the entity will work.
 +
|-
 +
| MinLimit || Float || -180 || Min limit of the wheel, should be equal or below 0 but can be as low as wanted. Several revolutions are supported!
 +
|-
 +
| MaxLimit || Float || 180 || Max limit of the wheel, should be equal or above 0 but can be as high as wanted. Several revolutions are supported!
 +
|-
 +
| MinLimitRange || Float || 5.0 || The distance from min the joint can be to be considered at min limit.
 +
|-
 +
| MaxLimitRange || Float || 5.0 || The distance from max the joint can be to be considered at max limit.
 +
|-
 +
| MinLimitStuck || Bool || false || If stuck at min limit
 +
|-
 +
| MaxLimitStuck || Bool || false || If stuck at max limit
 +
|-
 +
| SpinDir || String || BothWays || The direction the wheel can be spun<br>Can be "BothWays", "ToMin", or "ToMax".
 +
|-
 +
| MinLimitSound || File (.snt) || || Sound played at min limit
 +
|-
 +
| MaxLimitSound || File (.snt) || || Sound played at max limit
 +
|-
 +
| StuckSound || File (.snt) || || Sound played when stuck.
 +
|-
 +
| SlowDownRotation || Bool || true || If rotation should be slowed to 0 when not interacting.
 +
|-
 +
| SkipMiddleState || Bool || true || If the middle state (when not in max or min) should be skipped by script and connections.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| StuckState || String || None || The stuck state for the wheel.<br>Can be "None", "Min", or "Max".
 +
|-
 +
| InteractionDisablesStuck || Bool || false || If stuck is disabled when player interacts.
 +
|-
 +
| OverrideDefaults || Bool || false || If normal settings, set in ent file, should be overridden by settings below.
 +
|-
 +
| MinLimit || Float || -180 || Min limit of the wheel, should be equal or below 0 but can be as low as wanted. Several revolutions are supported!
 +
|-
 +
| MaxLimit || Float || 180 || Max limit of the wheel, should be equal or above 0 but can be as high as wanted. Several revolutions are supported!
 +
|-
 +
| MinLimitStuck || Bool || false || If stuck at min limit
 +
|-
 +
| MaxLimitStuck || Bool || false || If stuck at max limit
 +
|-
 +
| SpinDir || String || BothWays || The direction the wheel can be spun<br>Can be "BothWays", "ToMin", or "ToMax".
 +
|-
 +
|}
  
 
== MultiSlider ==
 
== MultiSlider ==
  
Add info.
+
A sliding-type lever that can be set to multiple states. Used for the gear levers in the Sewer.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| SlideMaxSpeed || Float || 10 || The maximum speed it can be moved.
 +
|-
 +
| SlideSlowDownFactor || Float || 1 || Amount of slowdown applied to object when not moved.
 +
|-
 +
| SlideSpeedFactor || Float || 1 || The higher value the more speed gain a mouse movement makes.
 +
|-
 +
| SlideThrowImpulse || Float || 3 || Impulse added when thrown.
 +
|-
 +
| NumOfStates || Int || 3 || The number of states used.
 +
|-
 +
| StickToStateMaxDist || Float || 0.1 || The distance from a state that the slider sticks.
 +
|-
 +
| CanInteractWithStaticBody || Bool || false || If by interacting with a static body in the entity, the lever is interacted with. Meaning that interacting with any part of the entity will work.
 +
|-
 +
| AutoMoveToCurrentState || Bool || true || If body should automove to current state when not interacted with.
 +
|-
 +
| AutoMoveSpeedFactor || Float || 2 || Multiplier applied to speed to determine the speed it moves towards wanted position. The higher the faster it gets to the postion.
 +
|-
 +
| AutoMoveMaxSpeed || Float || 8 || Max speed it can move at to the wanted position
 +
|-
 +
| ChangeStateSound || File (.snt) || || Sound played when state is changed<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| StuckSound || File (.snt) || || Sound played when stuck<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| StuckState || String || None || The stuck state for the wheel.<br>Can be "None", "Min", or "Max".
 +
|-
 +
| InteractionDisablesStuck || Bool || false || If stuck is disabled when player interacts.
 +
|-
 +
| ChangeStateCallback || String || || Called when state changes Syntax: <code>void MyFunc(string &in asEntity, int alState)</code><br>Used instead of ConnectionStateChangeCallback, as this entity type can have more than two possible states.
 +
|-
 +
|}
  
 
== Lamp ==
 
== Lamp ==
Line 99: Line 428:
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| CanBeLitByPlayer || Bool || true || If the player can use a tinderbox on it to light it.
 +
|-
 +
| CanBeGrabbed || Bool || false || If it can be grabbed by the player.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| Lit || Bool || true || If the lamp is lit or not.
 +
|-
 +
| ConnectedLight || String || || Name of a light (that is not in an entity!) that will be connected to the this light and will increase/decrease in color as the lamp is turned on/off.
 +
|-
 +
| ConnectionLightAmount || Float || 1 || The amount to multiply the lamp's color by before adding it to the connected light's color.
 +
|-
 +
| ConnectionLightUseOnColor || Bool || true || If the on color should always be used. If false the light color (which might be flickering) is used.
 +
|-
 +
| ConnectionLightUseSpec || Bool || false || If the specular of the lamp color should be used.
 +
|-
 +
|}
  
 
== Button ==
 
== Button ==
  
A Button entity acts like a lever, except it does not use a joint. It simply calls a callback when interacted with.
+
A Button entity acts like a Lever, except it does not use a joint. It simply changes its connection state and toggles effects when interacted with.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| SwitchedOn || Bool || false || If the button starts as on or off
 +
|-
 +
| CanBeSwitchedOn || Bool || true || If player can switch it on.
 +
|-
 +
| CanBeSwitchedOff || Bool || false || If player can switch it off.
 +
|-
 +
|}
  
 
== Photocell ==
 
== Photocell ==
  
Add info.
+
A prop that changes its texture illumination and connection state based on the light level around it. Presumably a leftover from Lux Tenebris, which featured light-based puzzles.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| LightLevelOnLimit || Float || 0.9 || Light level above this value turns the photocell on.
 +
|-
 +
| LightLevelOffLimit || Float || 0.1 || Light level below this value turns the photocell off.
 +
|-
 +
|}
  
 
== MoveObject ==
 
== MoveObject ==
  
A MoveObject entity is an entity that can be specifically moved on a single axis through the use of scripting. It can be set to either Angular or Linear. Angular rotates the object around its own center point, unless otherwise specified by the use of an OffsetArea. Linear moves the object in a direction for a specified amount. Note that a linear move object can only move on one axis. You can pick X, Y or Z in the entity and this cannot be changed mid-game. If you want the same object to move on more than 1 axis (for example left then forward) you can switch out the entity with an identical one that uses another axis. The script to move a MoveObject is SetMoveObjectState and SetMoveObjectStateExt, found on the engine scripts page.
+
A MoveObject entity is an entity that can be specifically moved on a single axis through the use of scripting. It can be set to either Angular or Linear. Angular rotates the object around its own center point, unless otherwise specified by the use of an OffsetArea. Linear moves the object in a direction for a specified amount. Note that a linear move object can only move on one axis. You can pick X, Y, or Z in the entity and this cannot be changed mid-game. If you want the same object to move on more than 1 axis (for example left then forward) you can switch out the entity with an identical one that uses another axis. The script to move a MoveObject is <code>SetMoveObjectState</code> and <code>SetMoveObjectStateExt</code> (see [[HPL2/Engine Scripts|Engine Scripts]]).
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MoveObjectType || String || Linear || The way the object moves. Linear means position changes and Angular means rotation changes.<br>Can be "Linear" or "Angular".
 +
|-
 +
| OpenAmount || Float || 1.0 || Linear: How much of the MoveAxis size that will mean that it is open. Angular: 1=90 degrees. 0.5=45deg and 2=180deg (any numbers inbetween are okay of course)
 +
|-
 +
| MoveAxis || String || X || he axis that the movement is about. For angular it is rotation axis and for linear it is the position axis that is changed.<br>Can be "X", "Y", or "Z".
 +
|-
 +
| OpenAcc || Float || 5.0 || The acceleration for reaching OpenSpeed
 +
|-
 +
| OpenSpeed || Float || 1.0 || The goal speed when opening.
 +
|-
 +
| CloseAcc || Float || 5.0 || The acceleration for reaching CloseSpeed
 +
|-
 +
| CloseSpeed || Float || 1.0 || The goal speed when closing.
 +
|-
 +
| AutoMove || Bool || false || If the door should move towards some goal automatically.
 +
|-
 +
| AutoMoveStateGoal || Float || 0.0 || The amount (relative to the what is considered open) that it shall move towards.
 +
|-
 +
| AutoMoveAcc || Float || 9.0 || The acceleration when automoving
 +
|-
 +
| AutoMoveSpeed || Float || 5.0 || The goal speed when automoving
 +
|-
 +
| AutoMoveSlowdownDist || Float || 0.1 || The distance from state goal where it begins to slow down (in meters for linear and degrees for angular).
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| AngularOffsetArea || String || || When mode is angular, this the point it rotates around. If emtpy, it rotates around it's center.
 +
|-
 +
|}
  
 
== Item ==
 
== Item ==
 +
 +
Item entities become inventory items when interacted with. They glow when in pickup range.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| SubItemTypeName || String || || Determines its name and description by putting 'ItemDesc_' or 'ItemName_' as prefix for the lang file entry. Category is always Inventory
 +
|-
 +
| ImageFile || File (.tga/.dds/.jpg/.jpeg/.png) || || The icon shown in the inventory when picked up.
 +
|-
 +
| PickSound || String || Generic || The sound played when picked up.<br>Must match a sound file name in the "ui" folder, starting with "pick_".
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| CustomSubItemTypeName || String || || If not emtpy it overrides SubItemTypeName in entity file. Determines its name and description by putting 'ItemDesc_' or 'ItemName_' as prefix for the lang file entry. Category is always Inventory
 +
|-
 +
|}
  
 
=== Puzzle ===
 
=== Puzzle ===
  
 
A Puzzle subtype item is a general item with no extra properties. Use this if you only need an inventory item to be used to trigger a scripted action. Other subtypes have special properties, but Puzzle only has the ability to be collected and used from the inventory. When used, it's loaded onto the crosshair so the player can use it on objects.
 
A Puzzle subtype item is a general item with no extra properties. Use this if you only need an inventory item to be used to trigger a scripted action. Other subtypes have special properties, but Puzzle only has the ability to be collected and used from the inventory. When used, it's loaded onto the crosshair so the player can use it on objects.
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| TempVar || Float || 0 || User specfic usage.
 +
|-
 +
|}
  
 
=== Coins ===
 
=== Coins ===
  
Cut item type from the game that was supposed to be a collectible the player could buy something with. They can be used on Chest type entities to open them.
+
Unused item type for the cut Thaler items. Thalers were once used to unlock Chests and use OilBarrels, with only the former functionality remaining.
  
 
{{warning|You can create custom coin items, but there is a single language entry which is hardcoded into the engine and can't be changed. This means that even if all the others are changed, looking at Chests will always say "Locked. Costs X Thalers to open."}}
 
{{warning|You can create custom coin items, but there is a single language entry which is hardcoded into the engine and can't be changed. This means that even if all the others are changed, looking at Chests will always say "Locked. Costs X Thalers to open."}}
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| CoinAmount || Int || 10 || The amount of coins it contains.
 +
|-
 +
|}
  
 
=== Note ===
 
=== Note ===
  
A Note item is an item that adds text to the player's journal. It displays itself when picked up. The note can be narrated, in which case it will automatically close once it's finished. If it isn't voiced, the player must close it. Use this if you want to make a Note item using a custom model / custom properties that differ from the main notes.
+
A Note item is an item that adds text to the player's journal. It displays itself when picked up. The note can be narrated, in which case it will automatically close once it's finished. If it isn't voiced, the player must close it. Use this if you want to make a Note item using a custom model or custom properties that differ from the main notes.
 +
 
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| NoteText || String || || The text and name of entry for note. Entry names for these are calculated: 'Note_'+NoteText+'_Name' and 'Note_'+NoteText+'_Text'
 +
|-
 +
| OpenNoteInJournal || Bool || true || If the journal should be opened when the note is picked up.
 +
|-
 +
| UseNarration || Bool || false || If the note has narration.
 +
|-
 +
|}
  
 
=== Diary ===
 
=== Diary ===
  
A Diary item is nearly identical to the Note item. Instead, it adds itself to the Diary section of the player's journal, whereas the Note adds itself to the Notes section. Diaries are also always voice enabled. Notes have the option for it.
+
A Diary item is nearly identical to the Note item. Instead, it adds itself to the Diary section of the player's journal, whereas the Note adds itself to the Notes section. Additionally, diary entries are grouped together, so that when one is split into multiple parts, the player will always read them in order, regardless of the specific Diary items that were picked up.
 +
 
 +
Diaries are also always voice enabled, while Notes have the option for it. As such, a Diary without any voice files defined in its text will instantly close the journal on pickup.
 +
 
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| DiaryText || String || || The text and name of entry for diary. Entry name for these calculated: 'Diary_'+DiaryText+'_Name'+Idx and 'Diary_'+DiaryText+'_Text'+Idx. Idx starts at 1.
 +
|-
 +
| DiaryCallback || String || || A special callback for diary pickup. Syntax: <code>void Func(string &in asItem, int lDiaryIdx)</code>. Call <code>ReturnOpenJournal(false)</code> to not open diary in journal after callback.
 +
|-
 +
|}
  
 
=== Lantern ===
 
=== Lantern ===
  
A Lantern item can be picked up like a normal item, but is added as a lantern to the inventory. While having this item, the player can press F to enable/diable it, or click it in the inventory. Note: This is NOT the lantern model, only the item that gives it to the player. If you want a custom lantern model, you can follow [https://www.frictionalgames.com/forum/thread-12391.html this guide].
+
A Lantern item can be picked up like a normal item, but is added as a lantern to the inventory. While having this item, the player can press F to toggle it, or click it in the inventory. Note: This is NOT the lantern model in the player's hands, only the item that gives it to the player. If you want a custom lantern model, you can follow [https://www.frictionalgames.com/forum/thread-12391.html this guide].
  
 
=== Health ===
 
=== Health ===
  
 
A Health item acts like a health potion (Laudanum). It acts like a normal item, except when used it is consumed while increasing the player's health by a specified amount.
 
A Health item acts like a health potion (Laudanum). It acts like a normal item, except when used it is consumed while increasing the player's health by a specified amount.
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| HealAmount || Float || 25 || How much health is regained when used.
 +
|-
 +
|}
  
 
=== Sanity ===
 
=== Sanity ===
  
 
A Sanity item acts like a sanity potion. While used, they increase the player's sanity by a fixed amount, and then consumed from the inventory.
 
A Sanity item acts like a sanity potion. While used, they increase the player's sanity by a fixed amount, and then consumed from the inventory.
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| HealAmount || Float || 25 || How much sanity is regained when used.
 +
|-
 +
|}
  
 
=== LampOil ===
 
=== LampOil ===
  
 
A LampOil item acts like an oil potion. When used, it increases the amount of oil for the lantern, and then consumed.
 
A LampOil item acts like an oil potion. When used, it increases the amount of oil for the lantern, and then consumed.
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| OilAmount || Float || 25 || How much oil is regained when used.
 +
|-
 +
|}
  
 
=== Tinderbox ===
 
=== Tinderbox ===
Line 179: Line 679:
 
To make an entity of this type, just copy an existing entity file and change its entity type.
 
To make an entity of this type, just copy an existing entity file and change its entity type.
 
'''The chests that ended up in the game are actually just Levers.'''
 
'''The chests that ended up in the game are actually just Levers.'''
 +
 +
{{warning|In versions before 1.5, Chests did not write their CoinsNeeded instance var to save data, which caused the coin requirement of all Chests to default to 0 when loading a save.}}
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MoveMaxSpeed || Float || 13.5 || The maximum speed it can be moved.
 +
|-
 +
| MoveSlowDownFactor || Float || 3.0 || Amount of slowdown applied to object when not moved.
 +
|-
 +
| MoveSpeedFactor || Float || 1.0 || The higher value the more speed gain a mouse movement makes.
 +
|-
 +
| MoveThrowImpulse || Float || 6.0 || Impulse added when thrown.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| CoinsNeeded || Int || 200 || Coins required to open the chest.
 +
|-
 +
|}
  
 
== OilBarrel ==
 
== OilBarrel ==
  
An OilBarrel entity simply adds some oil to the player's lantern storage upon interaction. The oil amount will be random unless otherwise specified.
+
An OilBarrel entity simply adds some oil to the player's lantern upon interaction. The oil amount depends on the player's combined total oil stored in their lantern and as LampOil type items (the sum of the oil that the items would refill on use), determined when the player first looks at the OilBarrel. If the total oil is less than 100, the OilBarrel will contain exactly enough oil to bring it to 100. Otherwise (or if Hard Mode is enabled), it provides only 10 oil.
 +
 
 +
If the FullGameSave instance var is not enabled, OilBarrels can be used again when leaving a level and returning to it.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| FillSound || File (.snt) || || Sound played when lantern is filled.<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| EmptySound || File (.snt) || || Sound played when barrel is empty.<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
Line 194: Line 730:
 
== EmotionStone ==
 
== EmotionStone ==
  
An EmotionStone entity works like the glowing jar-like objects from the game. Upon interacting with an EmotionStone entity, the screen fades to white and displays a message for the player.
+
The memory capsule entities found in the game. Interacting with an EmotionStone causes an emotion flash effect to display, fading the screen to white and displaying a message.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| DescCat || String || || Category of text shown when in focus.
 +
|-
 +
| DescEntry || String || || Entry of text shown when in focus.
 +
|-
 +
| TextCat || String || || Category of text shown when interacted with.<br>Typically "EmotionStone".
 +
|-
 +
| TextEntry || String || || Entry of text shown when interacted with.
 +
|-
 +
| Sound || File (.snt) || || Sound played when interacted with.
 +
|-
 +
|}
  
 
== NPC ==
 
== NPC ==
Line 205: Line 757:
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MoveHeadBones || String || || List of bones that is rotated when the NPC rotates its head.
 +
|-
 +
| MoveHeadBoneMuls || String || || List of floats specifying how much each bone shall be rotated (-1 to 1).
 +
|-
 +
| HeadMoveSpeedMul || Float || 1 || Speed multiplier that that determines move speed based on distance to wanted angle.
 +
|-
 +
| HeadMoveMaxSpeed || Float || 1 || The max speed that the head moves in.
 +
|-
 +
| MaxHeadAngle || Float || 30 || The max angle that the head can turn when looking at the player.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| FollowPlayerArea || String || || When player is in this area, the NPC will look at him.
 +
|-
 +
| Awake || Bool || true || If the NPC is awake and looks at the player when in area.
 +
|-
 +
|}
  
 
== LevelDoor ==
 
== LevelDoor ==
  
A LevelDoor entity is in concept similar to a SwingDoor, but they function very differently. A LevelDoor instantly transports the player to the specified level when they click it. The sounds, text and destination can be entered in the Level Editor itself.
+
A LevelDoor transports the player to the specified level when interacted with. The locked sounds, text, and destination can be entered in the Level Editor itself.
  
 
LevelDoors can also teleport the player (without a loading screen) if the same map is picked.
 
LevelDoors can also teleport the player (without a loading screen) if the same map is picked.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class=wikitable
 +
|+Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| EnterSound || File (.snt) || || Sound played when entering door.<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| ExitSound || File (.snt) || || Sound played when entering new map after having interacted with door.<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| TextEntry || String || || The text shown when door is in focus. Category is always Levels
 +
|-
 +
| StartPos || String || || The start position of the next map that the player is transported to.
 +
|-
 +
| MapFile || File (.map) || || The file of the next map.
 +
|-
 +
| Locked || Bool || false || If the door is locked.
 +
|-
 +
| LockedSound || File (.snt) || || Sound heard if locked and interacted with.
 +
|-
 +
| LockedTextCat || String || || Category of message shown if locked and interacted with.
 +
|-
 +
| LockedTextEntry || String || || Entry of message shown if locked and interacted with.
 +
|-
 +
| ShowStats || Bool || true || If stats of map it leads to should be shown (NOT IN USE)<br>Non-functional. Formerly used to display a completion percentage.
 +
|-
 +
|}
  
 
== CritterBug ==
 
== CritterBug ==
  
Critters like rats, roaches or fishes on the ground (or in the case of fish, water) those move around the room they are placed in and run away from the player.
+
Critters like rats, roaches, or fish on the ground (or in the case of fish, water). They move around the room they are placed in and run away from the player.
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MeshOffsetRot || Vector3 || 0 0 0 || The mesh offset rotation.
 +
|-
 +
| MeshOffsetPos || Vector3 || 0 0 0 || The mesh offset position.
 +
|-
 +
| MaxSpeedNormal || Float || 0.5 || Max speed when in normal state
 +
|-
 +
| MaxSpeedAfraid || Float || 1.3 || Max speed when in the scared state
 +
|-
 +
| Gravity || Float || 9.8 || Amount of gravity applied.
 +
|-
 +
| HasRandomPauses || Bool || false || If the critter shall have random pauses
 +
|-
 +
| RandomPauseTimeMinMax || Vector2 || 1 3 || Random time length of pause
 +
|-
 +
| RandomMoveTimeMinMax || Vector2 || 2 6 || Random time length of movement (between pauses)
 +
|-
 +
| PlayerFleeDistance || Float || 3 || The distance from player which it begins to flee
 +
|-
 +
| FleeMul || Float || 2.1 || Factor for moving away from player (if fleeing)
 +
|-
 +
| BackToSpawnPointMul || Float || 0.1 || Factor for moving back to spawn point
 +
|-
 +
| WanderCircleRadius || Float || 4 || Picture a circle in front critter at a certain distance. A point inside the circle is randomly selected and then the vector from the critter to this point is the speed added. The larger the circle, the more random the walk.
 +
|-
 +
| WanderCircleDist || Float || 2 || The distance at which the wander circle is placed. The higher the distance, the more likely the critter is to move forward.
 +
|-
 +
| NormalSound || File (.snt) || || Sound made when in normal state
 +
|-
 +
| NormalSoundRandMinMax || Vector2 || 1 3 || Random time length between normal sounds. x=min, y=max
 +
|-
 +
| ScaredSound || File (.snt) || || Sound made when in afraid state
 +
|-
 +
| ScaredSoundRandMinMax || Vector2 || 1 3 || Random time length between afraid sounds. x=min, y=max
 +
|-
 +
| DeathEntity || File (.ent) || || Entity created when dead.
 +
|-
 +
| DeathPS || File (.ps) || || Particle created when dead.
 +
|-
 +
| DeathSound || File (.snt) || || Sound played when dead.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
Line 231: Line 887:
  
 
{{HPL2 TypeVars Prop}}
 
{{HPL2 TypeVars Prop}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| MaxIdleSpeed || Float || 0.5 ||
 +
|-
 +
| MaxHuntSpeed || Float || 0.75 ||
 +
|-
 +
| HitSound || File (.snt) || || Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| IdleSound || File (.snt) || || Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| IdleSoundRandMinMax || Vector2 || 1 3 ||
 +
|-
 +
| AttackSound || File (.snt) || || Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| AttackPlayerDistMinMax || Vector2 || 1 3 ||
 +
|-
 +
| HuntPlayerDist || Float || 8 ||
 +
|-
 +
| HuntTimeMinMax || Vector2 || 10 30 ||
 +
|-
 +
| MoveTimeMinMax || Vector2 || 4 8 ||
 +
|-
 +
| IdleTimeMinMax || Vector2 || 0.4 2 ||
 +
|-
 +
| DeathEntity || File (.ent) || || Entity created when dead.
 +
|-
 +
| DeathPS || File (.ps) || || Particle created when dead.
 +
|-
 +
| DeathSound || File (.snt) || || Sound played when dead.
 +
|-
 +
| AttackSizeRadius || Float || 0.3 ||
 +
|-
 +
| AttackOffset || Vector3 || 0 0 1 ||
 +
|-
 +
| AttackDamageMinMax || Vector2 || 5 15 ||
 +
|-
 +
| AttackForce || Vector2 || 5 1 ||
 +
|-
 +
| AttackStrength || Int || 1 ||
 +
|-
 +
| AttackHitSound || File (.snt) || ||
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Prop}}
 
{{HPL2 InstanceVars Prop}}
Line 236: Line 938:
 
== Enemy_Grunt ==
 
== Enemy_Grunt ==
  
An Enemy_Grunt entity is a standard enemy entity. It uses properties like the Grunt and Brute in the game. Enemy entities are advanced to set up, and should include animations added through Settings > Animations. Enemy properties can be modified in the entity type window, like certains sounds and music tracks playing, the enemy's awareness levels and damage, speed and other similar settings. An enemy does not use a collision box, but instead a skeleton and the aforementioned properties to determine how to collide/hit something.
+
An Enemy_Grunt entity is a standard enemy entity. It uses properties like the Grunt and Brute in the game. Enemy entities are advanced to set up, and should include animations added through Settings > Animations. Enemy properties can be modified in the entity type window, like certain sounds and music tracks playing, the enemy's awareness levels and damage, speed and other similar settings. An enemy does not use a collision box, but instead a skeleton and the aforementioned properties to determine how to collide/hit something.
  
 
{{HPL2 TypeVars Enemy}}
 
{{HPL2 TypeVars Enemy}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| NoticeSound || File (.snt) || || Sound played when enemy notices that player is nearby
 +
|-
 +
| GiveUpNoticeSound || File (.snt) || || Sound played when enemy gives up investigation (after a notice)
 +
|-
 +
| EnabledSound || File (.snt) || || Sound played when enemy is enabled
 +
|-
 +
| GroggyDamageCount || Float || 15 || The accumulated amount of damage the enemy can take before getting groggy by the hit.<br>The enemy will flinch after taking this amount of damage.
 +
|-
 +
| AlertToHuntDistance || Float || 10 || If range is above this then enemy can go from alert to hunt
 +
|-
 +
| AlertToInstantHuntDistance || Float || 3.5 || If range is below this, enemy geos instantly to hunt.
 +
|-
 +
| HuntPauseMinTime || Float || 2.0 || Min time enemy spends not attacking after an attack.
 +
|-
 +
| HuntPauseMaxTime || Float || 4.5 || Max time enemy spends not attacking after an attack.
 +
|-
 +
| IncreaseAlertSpeedDistance || Float || 6 || Distance at which the alert move speed increases.
 +
|-
 +
| IncreasedAlertSpeedMul || Float || 1.5 || The amount that move speed is multiplied by when alert.
 +
|-
 +
| AlertRunTowardsToHuntLimit || Float || 30 || The accumulated limit value when alert goes to hunt because of player running towards enemy.
 +
|-
 +
| AlertRunTowardsCheckDistance || Float || 5 || The distance where the move toward enemy check starts
 +
|-
 +
| IdleExtraTimeMin || Float || 2 || Min time between extra idle animations
 +
|-
 +
| IdleExtraTimeMax || Float || 6 || Max time between extra idle animations
 +
|-
 +
| IdleExtraNum || Int || 3 || Number of extra idle animations
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Enemy}}
 
{{HPL2 InstanceVars Enemy}}
Line 249: Line 987:
  
 
{{HPL2 TypeVars Enemy}}
 
{{HPL2 TypeVars Enemy}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| Quadruped_Walk_ForwardSpeed || Float || 1.0 || Forward speed when walking on all fours, in meters per second.
 +
|-
 +
| Quadruped_Walk_BackwardSpeed || Float || 1.0 || Backward speed when walking on all fours, in meters per second.
 +
|-
 +
| Quadruped_Walk_ForwardAcc || Float || 2.0 ||
 +
|-
 +
| Quadruped_Walk_ForwardDeacc || Float || 8.0 ||
 +
|-
 +
| Quadruped_Run_ForwardSpeed || Float || 3.0 || Forward speed when running on all fours, in meters per second.
 +
|-
 +
| Quadruped_Run_BackwardSpeed || Float || 2.0 || Backward speed when running on all fours, in meters per second.
 +
|-
 +
| Quadruped_Run_ForwardAcc || Float || 4.0 ||
 +
|-
 +
| Quadruped_Run_ForwardDeacc || Float || 8.0 ||
 +
|-
 +
| Quadruped_StoppedToWalkSpeed || Float || 0.05 || Speed at which the walk animation is played when on all fours
 +
|-
 +
| Quadruped_WalkToStoppedSpeed || Float || 0.02 || Speed at which walk goes to stopped when on all fours
 +
|-
 +
| Quadruped_WalkToRunSpeed || Float || 2.0 || Speed at which walk turns to run animation when on all fours
 +
|-
 +
| Quadruped_RunToWalkSpeed || Float || 0.9 || Speed at which run turns to walk when on all fours
 +
|-
 +
| NoticeSound || File (.snt) || || Sound played when enemy notices that player is nearby
 +
|-
 +
| GiveUpNoticeSound || File (.snt) || || Sound played when enemy gives up investigation (after a notice)
 +
|-
 +
| EnabledSound || File (.snt) || || Sound played when enemy is enabled
 +
|-
 +
| GroggyDamageCount || Float || 1 || The accumulated amount of damage the enemy can take before getting groggy by the hit.<br>The enemy will flinch after taking this amount of damage.
 +
|-
 +
| AlertToHuntDistance || Float || 6 || If range is above this then enemy can go from alert to hunt
 +
|-
 +
| AlertToInstantHuntDistance || Float || 2.5 || If range is below this, enemy geos instantly to hunt.
 +
|-
 +
| HuntPauseMinTime || Float || 0.5 || Min time enemy spends not attacking after an attack.
 +
|-
 +
| HuntPauseMaxTime || Float || 1.0 || Max time enemy spends not attacking after an attack.
 +
|-
 +
| IncreaseAlertSpeedDistance || Float || 6 || Distance at which the alert move speed increases.
 +
|-
 +
| IncreasedAlertSpeedMul || Float || 1.25 || The amount that move speed is multiplied by when alert.
 +
|-
 +
| AlertRunTowardsToHuntLimit || Float || 30 || The accumulated limit value when alert goes to hunt because of player running towards enemy.
 +
|-
 +
| AlertRunTowardsCheckDistance || Float || 6 || The distance where the move toward enemy check starts
 +
|-
 +
| IsTelsa || Bool || false || If this is the tesla pig
 +
|-
 +
| TeslaSoundLoop || File (.snt) || || Sound file played when the tesla's proximity effects are active.<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
| ChaseSound || File (.snt) || || Played when the pig is chasing.<br>Incorrectly defined as a string in EntityTypes.cfg.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Enemy}}
 
{{HPL2 InstanceVars Enemy}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| Pose || String || Biped || The pose of the enemy to start with<br>Can be "Biped" or "Quadruped".
 +
|-
 +
| ThreatenOnAlert || Bool || false || If the pig should stand still and threaten instead of walking towards player when in alert mode.
 +
|-
 +
| FleeFromPlayer || Bool || false || The pig will flee instead of hunting (threaten if ThreatenOnAlert). Disabled if far enough away. Will attack if cornered.
 +
|-
 +
| AutoDisableAfterFlee || Bool || false || If pig should be disabled after having fled (if possible)
 +
|-
 +
| IdleBehavior || String || None || The behavior used when there are no patrol nodes left to walk.<br>Can be "None", "Stalk", or "Track".
 +
|-
 +
| PlayActivateSound || Bool || true || If a sound is played when activated.
 +
|-
 +
| AllowZeroNodeWaitTimes || Bool || false || If set to true, path node wait times with value 0 actually mean no waiting
 +
|-
 +
| PatrolMoveSpeed || String || Walk || Whether this pig walks or runs along its patrol<br>Can be "Walk" or "Run".
 +
|-
 +
| HuntPauseTimeMul || Float || 1 || Multiplier for wait time between attacks.
 +
|-
 +
|}
  
 
== Enemy_Waterlurker ==
 
== Enemy_Waterlurker ==
Line 257: Line 1,079:
  
 
{{HPL2 TypeVars Enemy}}
 
{{HPL2 TypeVars Enemy}}
 +
 +
{|class="wikitable mw-collapsible mw-collapsed"
 +
|+style="white-space:nowrap;text-align:-webkit-center"| Type Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| PlayerDetectionHeight || Float || 0.6 || The y-distance from the enemy that the player is detected.
 +
|-
 +
| EatDamage || Float || 20 || The damage dealt to food being eaten
 +
|-
 +
| AfterAttackPauseTime || Float || 0 || The amount of timer lurker waits after an attack
 +
|-
 +
| SplashPS_Walk || File (.ps) || || Particle system created at surface when walking.
 +
|-
 +
| SplashPS_Run || File (.ps) || || Particle system created at surface when running.
 +
|-
 +
| SplashPS_Eat || File (.ps) || || Particle system created at surface when eating.
 +
|-
 +
| SplashPS_Attack || File (.ps) || || Particle system created at surface when attacking.
 +
|-
 +
| SplashSound_Walk || File (.snt) || || Sound played when walking.
 +
|-
 +
| SplashSound_Run || File (.snt) || || Sound played when running.
 +
|-
 +
| SplashSound_Eat || File (.snt) || || Sound played when eating.
 +
|-
 +
| SplashSound_Attack || File (.snt) || || Sound played when attacking.
 +
|-
 +
|}
  
 
{{HPL2 InstanceVars Enemy}}
 
{{HPL2 InstanceVars Enemy}}
 +
 +
{|class=wikitable
 +
|+Instance Vars
 +
! Name !! Type !! Default !! Description
 +
|-
 +
| PlayerDetectionHeight || Float || 0 || If equal or below 0 the default in data file is used! The y-distance from the enemy that the player is detected.
 +
|-
 +
|}
  
 
== PlayerHands ==
 
== PlayerHands ==
Line 266: Line 1,124:
 
== HandObject ==
 
== HandObject ==
  
The only available Hand Object is the lantern. It is used in conjunction with a <code>.ho</code> config file to place it properly in PlayerHands.
+
The only available HandObject is the lantern. It is used in conjunction with a <code>.ho</code> config file to place it properly in PlayerHands.
  
 
Mostly a remnant of cut items that functioned as weapons, like in [[wikipedia:Penumbra: Overture|Penumbra: Overture]], including the pickaxe from that game.
 
Mostly a remnant of cut items that functioned as weapons, like in [[wikipedia:Penumbra: Overture|Penumbra: Overture]], including the pickaxe from that game.

Latest revision as of 23:02, 17 November 2024

This page lists the different types of entities found within the HPL2 engine. The type determines how the entity will be set up, what kind it is, what it does under different circumstances etc. Using the Model Editor you can identify and specify which type an entity has and its type vars, in Settings > User defined variables. In the Level Editor, the different types have different settings applicable for them, known as instance vars. For example, a MoveObject type will have the OffsetArea box available in the Level Editor, and an Item (Note) type will have a NoteText box available.

A list of all the types and subtypes can be found in the table of contents to the right.

StaticProp

A StaticProp entity resembles a static object. They have no available type properties, but they can still use physics bodies (collision boxes) and have mass/gravity. Note that they cannot be interacted with in the game, and cannot be disabled. If you need this feature, use Object (Static) instead.

Instance Vars
Name Type Default Description
CastShadows Bool true If entity casts shadows.
IsAffectedByDecal Bool true If decals can be created on entity.

CommentaryIcon

A CommentaryIcon entity is simply an object that can execute commentary sound files, as it was done in the main game. These only appear if the player has "Commentary" enabled in their settings.

Type Vars
Name Type Default Description
RotateSubMesh String The name of the submesh that is to be rotated
Instance Vars
Name Type Default Description
File File (.comment) The .comment file for the commentary.

Object

Objects are entities that can be activated/deactivated, broken, and interact with physics.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
BreakActive Bool false If entity is broken when hit hard enough or health is 0.
BreakDestroyJoints Bool false If all physics joints should be destroyed when broken.
BreakMinEnergy Float 100 The minimum energy needed for breakage. Energy = Object1Speed * Object1Mass + Object2Speed * Object2Mass. Speed = m/s. If Object 2 is floor or something static, its speed is always 0 and does not contribute to total energy!
BreakEntity File (.ent) The entity this entity turns into when broken.
BreakEntityAlignBody String The body BreakEntity uses to align itself when created. No entity is created if left empty.
BreakSound File (.snt) The sound made when broken.
BreakParticleSystem File (.ps) Particle system shown when broken.
BreakImpulse Float 4 Impulse (speed in m/s really) added to all bodies in BreakEntity when created. The direction of impulse is outwards from center of entity.
HitDamageAmount Float 5 The amount of damage made when hitting an enemy or player.
HitDamageStrength Int 1 The strength of the damage.
MinHitDamageSpeed Float 3 The minimum speed (m/s) needed for damage to be made.
LifeLength Float 0 A time after which the entity automatically breaks. 0=lasts forever.
IsFood Bool false If this is food for some enemies and can be used to lure them. Needs to have break active and health determines how long the food lasts.
Waterlurkers are the only enemy type that is lured by and eats food objects.
ShowHints Bool true If a hint can be triggered by interacting with the prop.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
ContainedItem String None An item that is created when entity breaks.
Must match an entity file name (extension .ent optional) in the "items" folder.
DisableBreakable Bool false If the entity is breakable then having this true will make it unbreakable.
IsInsanityVision Bool false If the prop is only shown when insanity is low enough.
VisionMaxSanity Float 30 The max sanity the player can have for prop to show if it is an insanity vision.
The object will only be visible if the player's sanity is less than this value.

Static

Not to be confused with an actual static object. This Object subtype is a generic object with common properties. The static subtype simply disables any additional properties from the other subtypes. An Object (Static) is similar in concept to a StaticProp type entity, however the Object (Static) can be disabled in the game and interacted with by the player.

Grab

A Grab subtype is a normal Object entity with the ability to be grabbed by the player in the game. In order for this to work, the object must have a mass above 0.

Type Vars
Name Type Default Description
GrabUseDepth Bool false If GrabDepth is used. If not the interaction distance is used.
GrabDepth Float 1.5 The distance which a grabbed object is automatically placed at.
GrabDepthInc Float 0.15 Steps that the entity will move in when moving the mouse scroll.
GrabMinDepth Float 1.0 Minimum distance the entity can be from player when grabbed.
GrabMaxDepth Float 2.2 Maximum distance the entity can be from player when grabbed.
GrabUseOffset Bool false If rotation and position offset is used. If not offset will be relative to the interact position.
GrabPositionOffset Vector3f 0 Positional offset of entity.
GrabRotationOffset Vector3f 0 Rotational offset of entity. It will automatically rotate to this when grabbed.
GrabThrowImpulse Float 10 The speed (m/s) at which the entity is thrown.
GrabMassMul Float 0.1 How much the object will weight when grabbed. Useful for heavier objects since they can wreck mayhem otherwise. 0.5% means half (50%) of the original weight.
GrabForceMul Float 1 Change how much force is added to grabbed object.
GrabTorqueMul Float 1 Change how much torque is added to grabbed object.
GrabUseRotation Bool true If rotation should be used on grabbed object
GrabSkipNonOuterBodies Bool false If true, then bodies that are inside a chain (has two or more joints attached to it) will not be grabbed.

Push

Similar to the Grab subtype, the Push subtype allows the player to push the object by taking hold of it and walking or right clicking. Examples include large rocks and the bed covering the hole in the floor in the Prison - Southern Block.

Type Vars
Name Type Default Description
PushAtPoint Bool false If the push force should be applied to the point at the object where interaction took place.
PushForceMul Float 1 Multiplier for force applied. Used to fine tune interaction.
PushImpulse Float 2 Impulse added when thrown.

Slide

A Slide Object is similar to the Grab subtype, except it can only be slid in a single direction for a certain amount. An existing (but unused) entity that uses this is the secret floor carpet you can slide to the side.

Type Vars
Name Type Default Description
SlideMaxSpeed Float 10 The maximum speed it can be moved.
SlideSlowDownFactor Float 1 Amount of slowdown applied to object when not moved.
SlideSpeedFactor Float 1 The higher value the more speed gain a mouse movement makes.
SlideThrowImpulse Float 3 Impulse added when thrown.

SwingDoor

A SwingDoor entity is standard hinged door. Any door you can grab and swing open is considered a SwingDoor. To use a SwingDoor, you need to attach joints to where you want the door to swing around. These are usually placed by the hinges of the door. On the joint you can set the min and max values to limit how much the door can be opened. These are usually approximately 90 degrees apart in either positive or negative directions.

If the FullGameSave instance var is not enabled, SwingDoors will reset to their initial open amount when leaving a level and returning to it.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MoveMaxSpeed Float 13.5 The maximum speed it can be moved.
MoveSlowDownFactor Float 3.0 Amount of slowdown applied to object when not moved.
MoveSpeedFactor Float 1.0 The higher value the more speed gain a mouse movement makes.
MoveThrowImpulse Float 6.0 Impulse added when thrown.
CanInteractWithStaticBody Bool false If by interacting with a static body in the entity, the door is interacted with. Meaning that interacting with any part of the entity will work.
CloseOnSound File (.snt) Sound played when the door is closed.
CloseOffSound File (.snt) Sound played when the door is opened.
LockOnSound File (.snt) Sound played when the door is locked.
LockOffSound File (.snt) Sound played when the door is unlocked.
InteractLockedSound File (.snt) Sound made when player interacts with a locked door.
Breakable Bool false Can the door be broken.
DamageMesh1 File (.dae/.msh/.mesh) Mesh used when health is below HealthDamage1
DamageMesh2 File (.dae/.msh/.mesh) Mesh used when health is below HealthDamage2
BrokenEntity File (.ent) The entity this entity turns into when broken.
DamageSound File (.snt) Sound made when a new damage mesh is used.
DamagePS File (.ps) Particles created when a new damage mesh is used.
BreakSound File (.snt) Sound made when broken.
BreakPS File (.ps) Particles created when broken.
BreakImpulse Float 3 Impulse set to objects in broken mesh.
Incorrectly defined as a sound file in EntityTypes.cfg.
HealthDamage1 Float 66 Health when damage mesh 1 is used.
HealthDamage2 Float 33 Health when damage mesh 2 is used.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
Locked Bool false If the door is locked
OpenAmount Float 0 The amount the door is open. 0 - 1.
DisableBreakable Bool false If the entity is breakable then having this true will make it unbreakable.

Lever

A Lever entity is an entity that can be swung between states to trigger callbacks. A lever requires a joint to swing around.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MoveMaxSpeed Float 13.5 The maximum speed it can be moved.
MoveSlowDownFactor Float 3.0 Amount of slowdown applied to object when not moved.
MoveSpeedFactor Float 1.0 The higher value the more speed gain a mouse movement makes.
MoveThrowImpulse Float 6.0 Impulse added when thrown.
CanInteractWithStaticBody Bool false If by interacting with a static body in the entity, the lever is interacted with. Meaning that interacting with any part of the entity will work.
MinLimitRange Float 5.0 The distance from min the joint can be to be considered at min limit.
MaxLimitRange Float 5.0 The distance from max the joint can be to be considered at max limit.
MinLimitSound File (.snt) Sound played when at min limit
Incorrectly defined as a string in EntityTypes.cfg.
MaxLimitSound File (.snt) Sound played when at max limit
Incorrectly defined as a string in EntityTypes.cfg.
StuckSound File (.snt) Sound played when stuck
Incorrectly defined as a string in EntityTypes.cfg.
MiddleAngleAmount Float 0 The amount between min and max that is considered middle. -1 to 1. -1=at min, 0=exactly between min and max, 1=at max
AutoMoveToAngle Bool True If the lever should move to position when not interacted with.
AutoMoveSpeedFactor Float 2 Multiplier applied to speed to determine the speed it moves towards wanted position. The higher the faster it gets to the position.
AutoMoveMaxSpeed Float 8 Max speed it can move at to the wanted position
AutoMoveGoal String Middle Where it should go when auto moving.
Can be "Middle", "Min", or "Max".
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
StuckState String None The stuck state for the lever.
Can be "None", "Min", or "Max".
InteractionDisablesStuck Bool false If stuck is disabled when player interacts.
OverrideDefaults Bool false If normal settings, set in ent file, should be overridden by settings below.
MiddleAngleAmount Float 0 The amount between min and max that is considered middle. -1 to 1. -1=at min, 0=exactly between min and max, 1=at max
AutoMoveToAngle Bool True If the lever should move to position when not interacted with.
AutoMoveGoal String Middle Where it should go when auto moving.
Can be "Middle", "Min", or "Max".

Wheel

A Wheel entity is a wheel that can be turned. They use states similar to the levers. Some wheels can be turned indefinitely and some (mostly valves) can be turned for a fixed amount in order to trigger an event. Wheels require a joint.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MoveMaxSpeed Float 13.5 The maximum speed it can be moved.
MoveSlowDownFactor Float 3.0 Amount of slowdown applied to object when not moved.
MoveSpeedFactor Float 1.0 The higher value the more speed gain a mouse movement makes.
MoveThrowImpulse Float 6.0 Impulse added when thrown.
CanInteractWithStaticBody Bool false If by interacting with a static body in the entity, the wheel is interacted with. Meaning that interacting with any part of the entity will work.
MinLimit Float -180 Min limit of the wheel, should be equal or below 0 but can be as low as wanted. Several revolutions are supported!
MaxLimit Float 180 Max limit of the wheel, should be equal or above 0 but can be as high as wanted. Several revolutions are supported!
MinLimitRange Float 5.0 The distance from min the joint can be to be considered at min limit.
MaxLimitRange Float 5.0 The distance from max the joint can be to be considered at max limit.
MinLimitStuck Bool false If stuck at min limit
MaxLimitStuck Bool false If stuck at max limit
SpinDir String BothWays The direction the wheel can be spun
Can be "BothWays", "ToMin", or "ToMax".
MinLimitSound File (.snt) Sound played at min limit
MaxLimitSound File (.snt) Sound played at max limit
StuckSound File (.snt) Sound played when stuck.
SlowDownRotation Bool true If rotation should be slowed to 0 when not interacting.
SkipMiddleState Bool true If the middle state (when not in max or min) should be skipped by script and connections.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
StuckState String None The stuck state for the wheel.
Can be "None", "Min", or "Max".
InteractionDisablesStuck Bool false If stuck is disabled when player interacts.
OverrideDefaults Bool false If normal settings, set in ent file, should be overridden by settings below.
MinLimit Float -180 Min limit of the wheel, should be equal or below 0 but can be as low as wanted. Several revolutions are supported!
MaxLimit Float 180 Max limit of the wheel, should be equal or above 0 but can be as high as wanted. Several revolutions are supported!
MinLimitStuck Bool false If stuck at min limit
MaxLimitStuck Bool false If stuck at max limit
SpinDir String BothWays The direction the wheel can be spun
Can be "BothWays", "ToMin", or "ToMax".

MultiSlider

A sliding-type lever that can be set to multiple states. Used for the gear levers in the Sewer.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
SlideMaxSpeed Float 10 The maximum speed it can be moved.
SlideSlowDownFactor Float 1 Amount of slowdown applied to object when not moved.
SlideSpeedFactor Float 1 The higher value the more speed gain a mouse movement makes.
SlideThrowImpulse Float 3 Impulse added when thrown.
NumOfStates Int 3 The number of states used.
StickToStateMaxDist Float 0.1 The distance from a state that the slider sticks.
CanInteractWithStaticBody Bool false If by interacting with a static body in the entity, the lever is interacted with. Meaning that interacting with any part of the entity will work.
AutoMoveToCurrentState Bool true If body should automove to current state when not interacted with.
AutoMoveSpeedFactor Float 2 Multiplier applied to speed to determine the speed it moves towards wanted position. The higher the faster it gets to the postion.
AutoMoveMaxSpeed Float 8 Max speed it can move at to the wanted position
ChangeStateSound File (.snt) Sound played when state is changed
Incorrectly defined as a string in EntityTypes.cfg.
StuckSound File (.snt) Sound played when stuck
Incorrectly defined as a string in EntityTypes.cfg.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
StuckState String None The stuck state for the wheel.
Can be "None", "Min", or "Max".
InteractionDisablesStuck Bool false If stuck is disabled when player interacts.
ChangeStateCallback String Called when state changes Syntax: void MyFunc(string &in asEntity, int alState)
Used instead of ConnectionStateChangeCallback, as this entity type can have more than two possible states.

Lamp

A Lamp entity is a light source. If they are unlit, they can be lit by the player, consuming a tinderbox. Examples are torches and candles.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
CanBeLitByPlayer Bool true If the player can use a tinderbox on it to light it.
CanBeGrabbed Bool false If it can be grabbed by the player.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
Lit Bool true If the lamp is lit or not.
ConnectedLight String Name of a light (that is not in an entity!) that will be connected to the this light and will increase/decrease in color as the lamp is turned on/off.
ConnectionLightAmount Float 1 The amount to multiply the lamp's color by before adding it to the connected light's color.
ConnectionLightUseOnColor Bool true If the on color should always be used. If false the light color (which might be flickering) is used.
ConnectionLightUseSpec Bool false If the specular of the lamp color should be used.

Button

A Button entity acts like a Lever, except it does not use a joint. It simply changes its connection state and toggles effects when interacted with.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
SwitchedOn Bool false If the button starts as on or off
CanBeSwitchedOn Bool true If player can switch it on.
CanBeSwitchedOff Bool false If player can switch it off.

Photocell

A prop that changes its texture illumination and connection state based on the light level around it. Presumably a leftover from Lux Tenebris, which featured light-based puzzles.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
LightLevelOnLimit Float 0.9 Light level above this value turns the photocell on.
LightLevelOffLimit Float 0.1 Light level below this value turns the photocell off.

MoveObject

A MoveObject entity is an entity that can be specifically moved on a single axis through the use of scripting. It can be set to either Angular or Linear. Angular rotates the object around its own center point, unless otherwise specified by the use of an OffsetArea. Linear moves the object in a direction for a specified amount. Note that a linear move object can only move on one axis. You can pick X, Y, or Z in the entity and this cannot be changed mid-game. If you want the same object to move on more than 1 axis (for example left then forward) you can switch out the entity with an identical one that uses another axis. The script to move a MoveObject is SetMoveObjectState and SetMoveObjectStateExt (see Engine Scripts).

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MoveObjectType String Linear The way the object moves. Linear means position changes and Angular means rotation changes.
Can be "Linear" or "Angular".
OpenAmount Float 1.0 Linear: How much of the MoveAxis size that will mean that it is open. Angular: 1=90 degrees. 0.5=45deg and 2=180deg (any numbers inbetween are okay of course)
MoveAxis String X he axis that the movement is about. For angular it is rotation axis and for linear it is the position axis that is changed.
Can be "X", "Y", or "Z".
OpenAcc Float 5.0 The acceleration for reaching OpenSpeed
OpenSpeed Float 1.0 The goal speed when opening.
CloseAcc Float 5.0 The acceleration for reaching CloseSpeed
CloseSpeed Float 1.0 The goal speed when closing.
AutoMove Bool false If the door should move towards some goal automatically.
AutoMoveStateGoal Float 0.0 The amount (relative to the what is considered open) that it shall move towards.
AutoMoveAcc Float 9.0 The acceleration when automoving
AutoMoveSpeed Float 5.0 The goal speed when automoving
AutoMoveSlowdownDist Float 0.1 The distance from state goal where it begins to slow down (in meters for linear and degrees for angular).
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
AngularOffsetArea String When mode is angular, this the point it rotates around. If emtpy, it rotates around it's center.

Item

Item entities become inventory items when interacted with. They glow when in pickup range.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
SubItemTypeName String Determines its name and description by putting 'ItemDesc_' or 'ItemName_' as prefix for the lang file entry. Category is always Inventory
ImageFile File (.tga/.dds/.jpg/.jpeg/.png) The icon shown in the inventory when picked up.
PickSound String Generic The sound played when picked up.
Must match a sound file name in the "ui" folder, starting with "pick_".
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
CustomSubItemTypeName String If not emtpy it overrides SubItemTypeName in entity file. Determines its name and description by putting 'ItemDesc_' or 'ItemName_' as prefix for the lang file entry. Category is always Inventory

Puzzle

A Puzzle subtype item is a general item with no extra properties. Use this if you only need an inventory item to be used to trigger a scripted action. Other subtypes have special properties, but Puzzle only has the ability to be collected and used from the inventory. When used, it's loaded onto the crosshair so the player can use it on objects.

Type Vars
Name Type Default Description
TempVar Float 0 User specfic usage.

Coins

Unused item type for the cut Thaler items. Thalers were once used to unlock Chests and use OilBarrels, with only the former functionality remaining.

Alert icon.png Warning: You can create custom coin items, but there is a single language entry which is hardcoded into the engine and can't be changed. This means that even if all the others are changed, looking at Chests will always say "Locked. Costs X Thalers to open."
Type Vars
Name Type Default Description
CoinAmount Int 10 The amount of coins it contains.

Note

A Note item is an item that adds text to the player's journal. It displays itself when picked up. The note can be narrated, in which case it will automatically close once it's finished. If it isn't voiced, the player must close it. Use this if you want to make a Note item using a custom model or custom properties that differ from the main notes.

Instance Vars
Name Type Default Description
NoteText String The text and name of entry for note. Entry names for these are calculated: 'Note_'+NoteText+'_Name' and 'Note_'+NoteText+'_Text'
OpenNoteInJournal Bool true If the journal should be opened when the note is picked up.
UseNarration Bool false If the note has narration.

Diary

A Diary item is nearly identical to the Note item. Instead, it adds itself to the Diary section of the player's journal, whereas the Note adds itself to the Notes section. Additionally, diary entries are grouped together, so that when one is split into multiple parts, the player will always read them in order, regardless of the specific Diary items that were picked up.

Diaries are also always voice enabled, while Notes have the option for it. As such, a Diary without any voice files defined in its text will instantly close the journal on pickup.

Instance Vars
Name Type Default Description
DiaryText String The text and name of entry for diary. Entry name for these calculated: 'Diary_'+DiaryText+'_Name'+Idx and 'Diary_'+DiaryText+'_Text'+Idx. Idx starts at 1.
DiaryCallback String A special callback for diary pickup. Syntax: void Func(string &in asItem, int lDiaryIdx). Call ReturnOpenJournal(false) to not open diary in journal after callback.

Lantern

A Lantern item can be picked up like a normal item, but is added as a lantern to the inventory. While having this item, the player can press F to toggle it, or click it in the inventory. Note: This is NOT the lantern model in the player's hands, only the item that gives it to the player. If you want a custom lantern model, you can follow this guide.

Health

A Health item acts like a health potion (Laudanum). It acts like a normal item, except when used it is consumed while increasing the player's health by a specified amount.

Type Vars
Name Type Default Description
HealAmount Float 25 How much health is regained when used.

Sanity

A Sanity item acts like a sanity potion. While used, they increase the player's sanity by a fixed amount, and then consumed from the inventory.

Type Vars
Name Type Default Description
HealAmount Float 25 How much sanity is regained when used.

LampOil

A LampOil item acts like an oil potion. When used, it increases the amount of oil for the lantern, and then consumed.

Type Vars
Name Type Default Description
OilAmount Float 25 How much oil is regained when used.

Tinderbox

A Tinderbox item adds itself to the player's tinderbox counter in the inventory. Tinderboxes can be used once to light a light source.

HandObject

Unused. Would have equipped the corresponding hand object on use.

Chest

This is an unused feature, but it was kept in the engine and can be restored by making a custom entity. It is a object which can be opened using coins (or their replacements, if a custom Coin-type entity is made). Interacting with it brings up a text GUI. The text GUI can be changed in the base language file. To make an entity of this type, just copy an existing entity file and change its entity type. The chests that ended up in the game are actually just Levers.

Alert icon.png Warning: In versions before 1.5, Chests did not write their CoinsNeeded instance var to save data, which caused the coin requirement of all Chests to default to 0 when loading a save.
Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MoveMaxSpeed Float 13.5 The maximum speed it can be moved.
MoveSlowDownFactor Float 3.0 Amount of slowdown applied to object when not moved.
MoveSpeedFactor Float 1.0 The higher value the more speed gain a mouse movement makes.
MoveThrowImpulse Float 6.0 Impulse added when thrown.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
CoinsNeeded Int 200 Coins required to open the chest.

OilBarrel

An OilBarrel entity simply adds some oil to the player's lantern upon interaction. The oil amount depends on the player's combined total oil stored in their lantern and as LampOil type items (the sum of the oil that the items would refill on use), determined when the player first looks at the OilBarrel. If the total oil is less than 100, the OilBarrel will contain exactly enough oil to bring it to 100. Otherwise (or if Hard Mode is enabled), it provides only 10 oil.

If the FullGameSave instance var is not enabled, OilBarrels can be used again when leaving a level and returning to it.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
FillSound File (.snt) Sound played when lantern is filled.
Incorrectly defined as a string in EntityTypes.cfg.
EmptySound File (.snt) Sound played when barrel is empty.
Incorrectly defined as a string in EntityTypes.cfg.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.

EmotionStone

The memory capsule entities found in the game. Interacting with an EmotionStone causes an emotion flash effect to display, fading the screen to white and displaying a message.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
DescCat String Category of text shown when in focus.
DescEntry String Entry of text shown when in focus.
TextCat String Category of text shown when interacted with.
Typically "EmotionStone".
TextEntry String Entry of text shown when interacted with.
Sound File (.snt) Sound played when interacted with.

NPC

Non-Player Characters are non-enemy characters. Agrippa and Alexander as they appear in-game are NPCs. Their only purpose is to stand in place and look at the player (if you enable the option).

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MoveHeadBones String List of bones that is rotated when the NPC rotates its head.
MoveHeadBoneMuls String List of floats specifying how much each bone shall be rotated (-1 to 1).
HeadMoveSpeedMul Float 1 Speed multiplier that that determines move speed based on distance to wanted angle.
HeadMoveMaxSpeed Float 1 The max speed that the head moves in.
MaxHeadAngle Float 30 The max angle that the head can turn when looking at the player.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
FollowPlayerArea String When player is in this area, the NPC will look at him.
Awake Bool true If the NPC is awake and looks at the player when in area.

LevelDoor

A LevelDoor transports the player to the specified level when interacted with. The locked sounds, text, and destination can be entered in the Level Editor itself.

LevelDoors can also teleport the player (without a loading screen) if the same map is picked.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
EnterSound File (.snt) Sound played when entering door.
Incorrectly defined as a string in EntityTypes.cfg.
ExitSound File (.snt) Sound played when entering new map after having interacted with door.
Incorrectly defined as a string in EntityTypes.cfg.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.
Instance Vars
Name Type Default Description
TextEntry String The text shown when door is in focus. Category is always Levels
StartPos String The start position of the next map that the player is transported to.
MapFile File (.map) The file of the next map.
Locked Bool false If the door is locked.
LockedSound File (.snt) Sound heard if locked and interacted with.
LockedTextCat String Category of message shown if locked and interacted with.
LockedTextEntry String Entry of message shown if locked and interacted with.
ShowStats Bool true If stats of map it leads to should be shown (NOT IN USE)
Non-functional. Formerly used to display a completion percentage.

CritterBug

Critters like rats, roaches, or fish on the ground (or in the case of fish, water). They move around the room they are placed in and run away from the player.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MeshOffsetRot Vector3 0 0 0 The mesh offset rotation.
MeshOffsetPos Vector3 0 0 0 The mesh offset position.
MaxSpeedNormal Float 0.5 Max speed when in normal state
MaxSpeedAfraid Float 1.3 Max speed when in the scared state
Gravity Float 9.8 Amount of gravity applied.
HasRandomPauses Bool false If the critter shall have random pauses
RandomPauseTimeMinMax Vector2 1 3 Random time length of pause
RandomMoveTimeMinMax Vector2 2 6 Random time length of movement (between pauses)
PlayerFleeDistance Float 3 The distance from player which it begins to flee
FleeMul Float 2.1 Factor for moving away from player (if fleeing)
BackToSpawnPointMul Float 0.1 Factor for moving back to spawn point
WanderCircleRadius Float 4 Picture a circle in front critter at a certain distance. A point inside the circle is randomly selected and then the vector from the critter to this point is the speed added. The larger the circle, the more random the walk.
WanderCircleDist Float 2 The distance at which the wander circle is placed. The higher the distance, the more likely the critter is to move forward.
NormalSound File (.snt) Sound made when in normal state
NormalSoundRandMinMax Vector2 1 3 Random time length between normal sounds. x=min, y=max
ScaredSound File (.snt) Sound made when in afraid state
ScaredSoundRandMinMax Vector2 1 3 Random time length between afraid sounds. x=min, y=max
DeathEntity File (.ent) Entity created when dead.
DeathPS File (.ps) Particle created when dead.
DeathSound File (.snt) Sound played when dead.
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.

CritterSpider

A unused critter similar to the spider enemies from Penumbra: Overture. Capable of climbing walls and ceilings, as well as attacking the player.

Type Vars (All Props)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
MaxFocusDistance Float 0 Max distance the entity can be interacted with.
MainPhysicsBody String This is the name of the most imporant physics body. The body that sounds are played from and objects attached to (attached as results from script!).
ShowMesh Bool true If the mesh should be visible. Having this false might useful for blocker objects.
DissolveOnDestruction Bool false If the dissolve effect should used when entity is destroyed.
DissolveTime Float 1.0 The time it takes for the dissolve effect to be over.
EffectsOnSound File (.snt) Sound made when turned on. (used for lamps lit/unlit, but also other entity types).
EffectsOffSound File (.snt) Sound made when turned off. (used for lamps lit/unlit, but also other entity types).
EffectsOnTime Float 1 Time it takes for on effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffTime Float 1 Time it takes for off effect to be done. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightColor Color 0 0 0 0 Color of lights when off. (used for lamps lit/unlit, but also other entity types).
EffectsOffLightRadius Float -1 Radius of lights when off. (used for lamps lit/unlit, but also other entity types).
ShowHints Bool true If it is allowed to show hints upon interaction with entity.
StaticMoveCheckCollision Bool false If a static move should check for collision. (used when static bodies are moved through script of type specific effect.)
StaticMoveStartSound File (.snt) Sound made at the start of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveStopSound File (.snt) Sound made at the end of a static move. (used when static bodies are moved through script of type specific effect.)
StaticMoveLoopSound File (.snt) Sound made during a static move. (used when static bodies are moved through script of type specific effect.)
RandomizeAnimationStart Bool true Should the animation start time be randomized at start. If false all animations of entity are synchronized.
Type Vars
Name Type Default Description
MaxIdleSpeed Float 0.5
MaxHuntSpeed Float 0.75
HitSound File (.snt) Incorrectly defined as a string in EntityTypes.cfg.
IdleSound File (.snt) Incorrectly defined as a string in EntityTypes.cfg.
IdleSoundRandMinMax Vector2 1 3
AttackSound File (.snt) Incorrectly defined as a string in EntityTypes.cfg.
AttackPlayerDistMinMax Vector2 1 3
HuntPlayerDist Float 8
HuntTimeMinMax Vector2 10 30
MoveTimeMinMax Vector2 4 8
IdleTimeMinMax Vector2 0.4 2
DeathEntity File (.ent) Entity created when dead.
DeathPS File (.ps) Particle created when dead.
DeathSound File (.snt) Sound played when dead.
AttackSizeRadius Float 0.3
AttackOffset Vector3 0 0 1
AttackDamageMinMax Vector2 5 15
AttackForce Vector2 5 1
AttackStrength Int 1
AttackHitSound File (.snt)
Instance Vars (All Props)
Name Type Default Description
CastShadows Bool true If entity casts shadows.
StaticPhysics Bool false If the mass of all bodies should be 0.
If enabled, the entity cannot be moved by physics or player interactions.
IsAffectedByDecal Bool true If decals can be created on entity.
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnPickup, Break, OnIgnite
ConnectedProps String Props that are connected to this entity and what will happen will depend upon type of prop and what happens. OnBreak makes the connected props active and gives them an impulse. Enter with space and/or comma between entity names.
ConnectionStateChangeCallback String A callback called when ever the connection state changes (button being switched on). Syntax: void Func(string &in asEntityName, int alState). alState: -1=off, 0=between, 1=on
FullGameSave Bool false If the all things in the entity should be saved when exiting the level. Only use on few entities!
If enabled, additional entity properties are saved, such as the open amount of SwingDoors.
PlayerLookAtCallback String Callback called when player looks at entity. Syntax: void Func(string &in asEntity, int alState) alState: 1=looking, -1=stopped looking
PlayerLookAtCallbackAutoRemove Bool false Should look at callback be removed when entity is looked at and callback called.
PlayerInteractCallback String Callback called when player interacts with entity. Syntax: void Func(string &in asEntity)
PlayerInteractCallbackAutoRemove Bool false Should interact callback be removed when entity is interacted with and is callback called.

Enemy_Grunt

An Enemy_Grunt entity is a standard enemy entity. It uses properties like the Grunt and Brute in the game. Enemy entities are advanced to set up, and should include animations added through Settings > Animations. Enemy properties can be modified in the entity type window, like certain sounds and music tracks playing, the enemy's awareness levels and damage, speed and other similar settings. An enemy does not use a collision box, but instead a skeleton and the aforementioned properties to determine how to collide/hit something.

Type Vars (All Enemies)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
AutoRemoveAtPathEnd Bool true If enemy should be removed when it reaches the end of the path.
Must not be seen by the player and must be more than 10 units away from them.
SightRange Float 10 The distance that the enemy can see.
DarknessSightRange Float 4 The distance the enemy can see in darkness. Only used if player is also still!
HearVolume Float 10 The min volume that the enemy can hear (0-1)
FOV Float 180 The field of view of the enemy, max = 360
FOVXMul Float 1 The multiplier for the horiztonal fov. Also known as aspect
ActivationDistance Float 120 The distance at which the enemy is activated and starts patrolling
MaxRegenHealth Float 100 The max health that enemy regenerates to
RegenHealthSpeed Float 0 The amount of health regenerated per second.
DangerMusic String Music played when activated
DangerMusicPrio Int 0 When there are several enemies in danger range, the one with highest priority is played. This is NOT music priority
SearchMusic String Music played when searching for player (after having seen them)
SearchMusicPrio Int 0
AttackMusic String Music played when seen player and hunting
AttackMusicPrio Int 0
PlayerSearchMaxAngle Float 45 When searching for player, the angle used to narrow down search. Smaller angle means it finds player faster
PlayerSearchMinDistMul Float 0.5 Minimum amount of actual distance from player that the search is made. Must be <0
PlayerSearchMaxDistMul Float 2 Maximum amount of actual distance from player that the search is made. Must be >1
PlayerSearchTime Float 45 The time that enemy searches for player before stopping
PlayerPatrolMaxAngle Float 110 When patrolling for player, the angle used to narrow down search. Smaller angle means it finds player faster
PlayerPatrolMinDist Float 3.5 Minimum amount of actual distance from player that the patrol is made. Must be <0
PlayerPatrolMaxDist Float 15 Maximum amount of actual distance from player that the patrol is made. Must be >1
Body_Size Vector3 1 1.75 1 The size of the enemy body.
Body_Mass Float 50 Mass of body
Body_AccurateClimbing Bool false If more rays should be cast when checking for edges to climb.
Body_MaxNoSlideSlopeAngle Float 45 The maximum angle that the enemy does not slide down a slope at.
Body_MaxPushMass Float 20 The maximum mass of an object that the enemy can push
Body_PushForce Float 60 The force that objects are pushed with
Body_CharacterMaxPushMass Float 20 The maximum character mass that can be pushed.
Body_MaxStepSize Float 0.5 The maximum size of a step that can be climbed
Body_StepClimbSpeed Float 6.0 The speed of the step climb
Body_OffsetRot Vector3 0 0 0 Rotation offset of model relative to body
Body_OffsetTrans Vector3 0 0 0 Translation offset of model relative to body
Walk_ForwardSpeed Float 1.0 Forward speed when walking, in meters per second.
Walk_BackwardSpeed Float 1.0 Backward speed when walking, in meters per second.
Walk_ForwardAcc Float 2.0
Walk_ForwardDeacc Float 8.0
Run_ForwardSpeed Float 3.0 Forward speed when running, in meters per second.
Run_BackwardSpeed Float 2.0 Backward speed when running, in meters per second.
Run_ForwardAcc Float 4.0
Run_ForwardDeacc Float 8.0
TurnSpeedMul Float 6 Determines the angular speed when turning. Is also based on the angle that needs to be turned and the higher the value the faster the speed.
TurnMaxSpeed Float 4 Maximum angular speed when turning
TurnMinBreakAngle Float 10 Minimum angle for break mul to be in effect
TurnBreakMul Float 1 The higher the value, the more the enemy will break (slow down) the forward speed when turning.
MoveSpeedAnimMul Float 4.7 Multiplier for animation speed based on the speed of the body.
StoppedToWalkSpeed Float 0.05 Speed at which the walk animation is played
WalkToStoppedSpeed Float 0.02 Speed at which walk goes to stopped
WalkToRunSpeed Float 1.2 Speed at which walk turns to run animation
RunToWalkSpeed Float 1.0 Speed at which run turns to walk.
WaterStepSpeedWalk Float 3.0 Speed used when calculating effect when taking step in water during walk.
WaterStepSpeedRun Float 5.0 Speed used when calculating effect when taking step in water during run.
WaterStepSpeedMisc Float 3.0 Speed used when calculating effect when taking step in water during NOT walk or run
HitPS_Sword File (.ps) Particles created when hit by sword type weapon.
HitSound_Sword File (.snt) Sound when hit by sword type weapon.
HitPS_Club File (.ps) Particles created when hit by club type weapon.
HitSound_Club File (.snt) Sound when hit by club type weapon.
HitPS_Bullet File (.ps) Particles created when hit by bullet type weapon.
HitSound_Bullet File (.snt) Sound when hit by bullet type weapon.
HitPS_Dud File (.ps) Particles created when hit by a weapon taking no damage.
HitSound_Dud File (.snt) Sound when hit by a weapon taking no damage.
AmbientSound_Idle File (.snt) Sound made when in idle mode
AmbientMinTime_Idle Float 1 Min time between sounds.
AmbientMaxTime_Idle Float 3 Max time between sounds.
AmbientSound_Alert File (.snt) Sound made when in alert mode
AmbientMinTime_Alert Float 1 Min time between sounds.
Incorrectly defined as a sound file in EntityTypes.cfg.
AmbientMaxTime_Alert Float 2 Max time between sounds.
Incorrectly defined as a sound file in EntityTypes.cfg.
AmbientSound_Hunt File (.snt) Sound made when in hunt mode
AmbientMinTime_Hunt Float 1 Min time between sounds.
AmbientMaxTime_Hunt Float 2 Max time between sounds.
NormalAttackDistance Float 2 Distance at which the normal attack is made
NormalDamageSize Vector3 1 1 1 Size of the normal damage
NormalDamageOffset Vector3 0 0 1 Offset (in local coords) for the normal damage.
NormalAttackHitSound File (.snt) Sound made by normal damage
NormalAttackDamage Vector2 10 20 Damage made by normal damage x=min, y=max
NormalAttackForce Vector2 30 5 Force made by normal damage x=force y=max impulse (impulse = force/mass)
NormalAttackStrength Int 1 Strength for normal attack
NormalDamageType String Claws Visual feedback of attack
Can be "BloodSplat", "Claws", or "Slash".
BreakDoorAttackDamage Vector2 10 20 Damage made by break door damage x=min, y=max
BreakDoorAttackForce Vector2 30 5 Force made by break door damage x=force y=max impulse (impulse = force/mass)
BreakDoorAttackStrength Int 3 Strength for break door attack
BreakDoorAttackHitSound File (.snt) Sound made by break door damage
BreakDoorDamageType String BloodSplat Visual feedback of attack
Can be "BloodSplat", "Claws", or "Slash".
Type Vars
Name Type Default Description
NoticeSound File (.snt) Sound played when enemy notices that player is nearby
GiveUpNoticeSound File (.snt) Sound played when enemy gives up investigation (after a notice)
EnabledSound File (.snt) Sound played when enemy is enabled
GroggyDamageCount Float 15 The accumulated amount of damage the enemy can take before getting groggy by the hit.
The enemy will flinch after taking this amount of damage.
AlertToHuntDistance Float 10 If range is above this then enemy can go from alert to hunt
AlertToInstantHuntDistance Float 3.5 If range is below this, enemy geos instantly to hunt.
HuntPauseMinTime Float 2.0 Min time enemy spends not attacking after an attack.
HuntPauseMaxTime Float 4.5 Max time enemy spends not attacking after an attack.
IncreaseAlertSpeedDistance Float 6 Distance at which the alert move speed increases.
IncreasedAlertSpeedMul Float 1.5 The amount that move speed is multiplied by when alert.
AlertRunTowardsToHuntLimit Float 30 The accumulated limit value when alert goes to hunt because of player running towards enemy.
AlertRunTowardsCheckDistance Float 5 The distance where the move toward enemy check starts
IdleExtraTimeMin Float 2 Min time between extra idle animations
IdleExtraTimeMax Float 6 Max time between extra idle animations
IdleExtraNum Int 3 Number of extra idle animations
Instance Vars (All Enemies)
Name Type Default Description
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnDeath or OnAutoDisabled
DisableTriggers Bool false If true, the enemy does not react to any trigger such as seeing or hearing the player.
Hallucination Bool false If true, the enemy will disappear when close enough to the player.
HallucinationEndDist Float 3 The distance at which the hallucination disappears

Enemy_ManPig

Alert icon.png Requires version 1.3

An enemy type ported from A Machine For Pigs. Compare to the AMFP version of the enemy.

Type Vars (All Enemies)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
AutoRemoveAtPathEnd Bool true If enemy should be removed when it reaches the end of the path.
Must not be seen by the player and must be more than 10 units away from them.
SightRange Float 10 The distance that the enemy can see.
DarknessSightRange Float 4 The distance the enemy can see in darkness. Only used if player is also still!
HearVolume Float 10 The min volume that the enemy can hear (0-1)
FOV Float 180 The field of view of the enemy, max = 360
FOVXMul Float 1 The multiplier for the horiztonal fov. Also known as aspect
ActivationDistance Float 120 The distance at which the enemy is activated and starts patrolling
MaxRegenHealth Float 100 The max health that enemy regenerates to
RegenHealthSpeed Float 0 The amount of health regenerated per second.
DangerMusic String Music played when activated
DangerMusicPrio Int 0 When there are several enemies in danger range, the one with highest priority is played. This is NOT music priority
SearchMusic String Music played when searching for player (after having seen them)
SearchMusicPrio Int 0
AttackMusic String Music played when seen player and hunting
AttackMusicPrio Int 0
PlayerSearchMaxAngle Float 45 When searching for player, the angle used to narrow down search. Smaller angle means it finds player faster
PlayerSearchMinDistMul Float 0.5 Minimum amount of actual distance from player that the search is made. Must be <0
PlayerSearchMaxDistMul Float 2 Maximum amount of actual distance from player that the search is made. Must be >1
PlayerSearchTime Float 45 The time that enemy searches for player before stopping
PlayerPatrolMaxAngle Float 110 When patrolling for player, the angle used to narrow down search. Smaller angle means it finds player faster
PlayerPatrolMinDist Float 3.5 Minimum amount of actual distance from player that the patrol is made. Must be <0
PlayerPatrolMaxDist Float 15 Maximum amount of actual distance from player that the patrol is made. Must be >1
Body_Size Vector3 1 1.75 1 The size of the enemy body.
Body_Mass Float 50 Mass of body
Body_AccurateClimbing Bool false If more rays should be cast when checking for edges to climb.
Body_MaxNoSlideSlopeAngle Float 45 The maximum angle that the enemy does not slide down a slope at.
Body_MaxPushMass Float 20 The maximum mass of an object that the enemy can push
Body_PushForce Float 60 The force that objects are pushed with
Body_CharacterMaxPushMass Float 20 The maximum character mass that can be pushed.
Body_MaxStepSize Float 0.5 The maximum size of a step that can be climbed
Body_StepClimbSpeed Float 6.0 The speed of the step climb
Body_OffsetRot Vector3 0 0 0 Rotation offset of model relative to body
Body_OffsetTrans Vector3 0 0 0 Translation offset of model relative to body
Walk_ForwardSpeed Float 1.0 Forward speed when walking, in meters per second.
Walk_BackwardSpeed Float 1.0 Backward speed when walking, in meters per second.
Walk_ForwardAcc Float 2.0
Walk_ForwardDeacc Float 8.0
Run_ForwardSpeed Float 3.0 Forward speed when running, in meters per second.
Run_BackwardSpeed Float 2.0 Backward speed when running, in meters per second.
Run_ForwardAcc Float 4.0
Run_ForwardDeacc Float 8.0
TurnSpeedMul Float 6 Determines the angular speed when turning. Is also based on the angle that needs to be turned and the higher the value the faster the speed.
TurnMaxSpeed Float 4 Maximum angular speed when turning
TurnMinBreakAngle Float 10 Minimum angle for break mul to be in effect
TurnBreakMul Float 1 The higher the value, the more the enemy will break (slow down) the forward speed when turning.
MoveSpeedAnimMul Float 4.7 Multiplier for animation speed based on the speed of the body.
StoppedToWalkSpeed Float 0.05 Speed at which the walk animation is played
WalkToStoppedSpeed Float 0.02 Speed at which walk goes to stopped
WalkToRunSpeed Float 1.2 Speed at which walk turns to run animation
RunToWalkSpeed Float 1.0 Speed at which run turns to walk.
WaterStepSpeedWalk Float 3.0 Speed used when calculating effect when taking step in water during walk.
WaterStepSpeedRun Float 5.0 Speed used when calculating effect when taking step in water during run.
WaterStepSpeedMisc Float 3.0 Speed used when calculating effect when taking step in water during NOT walk or run
HitPS_Sword File (.ps) Particles created when hit by sword type weapon.
HitSound_Sword File (.snt) Sound when hit by sword type weapon.
HitPS_Club File (.ps) Particles created when hit by club type weapon.
HitSound_Club File (.snt) Sound when hit by club type weapon.
HitPS_Bullet File (.ps) Particles created when hit by bullet type weapon.
HitSound_Bullet File (.snt) Sound when hit by bullet type weapon.
HitPS_Dud File (.ps) Particles created when hit by a weapon taking no damage.
HitSound_Dud File (.snt) Sound when hit by a weapon taking no damage.
AmbientSound_Idle File (.snt) Sound made when in idle mode
AmbientMinTime_Idle Float 1 Min time between sounds.
AmbientMaxTime_Idle Float 3 Max time between sounds.
AmbientSound_Alert File (.snt) Sound made when in alert mode
AmbientMinTime_Alert Float 1 Min time between sounds.
Incorrectly defined as a sound file in EntityTypes.cfg.
AmbientMaxTime_Alert Float 2 Max time between sounds.
Incorrectly defined as a sound file in EntityTypes.cfg.
AmbientSound_Hunt File (.snt) Sound made when in hunt mode
AmbientMinTime_Hunt Float 1 Min time between sounds.
AmbientMaxTime_Hunt Float 2 Max time between sounds.
NormalAttackDistance Float 2 Distance at which the normal attack is made
NormalDamageSize Vector3 1 1 1 Size of the normal damage
NormalDamageOffset Vector3 0 0 1 Offset (in local coords) for the normal damage.
NormalAttackHitSound File (.snt) Sound made by normal damage
NormalAttackDamage Vector2 10 20 Damage made by normal damage x=min, y=max
NormalAttackForce Vector2 30 5 Force made by normal damage x=force y=max impulse (impulse = force/mass)
NormalAttackStrength Int 1 Strength for normal attack
NormalDamageType String Claws Visual feedback of attack
Can be "BloodSplat", "Claws", or "Slash".
BreakDoorAttackDamage Vector2 10 20 Damage made by break door damage x=min, y=max
BreakDoorAttackForce Vector2 30 5 Force made by break door damage x=force y=max impulse (impulse = force/mass)
BreakDoorAttackStrength Int 3 Strength for break door attack
BreakDoorAttackHitSound File (.snt) Sound made by break door damage
BreakDoorDamageType String BloodSplat Visual feedback of attack
Can be "BloodSplat", "Claws", or "Slash".
Type Vars
Name Type Default Description
Quadruped_Walk_ForwardSpeed Float 1.0 Forward speed when walking on all fours, in meters per second.
Quadruped_Walk_BackwardSpeed Float 1.0 Backward speed when walking on all fours, in meters per second.
Quadruped_Walk_ForwardAcc Float 2.0
Quadruped_Walk_ForwardDeacc Float 8.0
Quadruped_Run_ForwardSpeed Float 3.0 Forward speed when running on all fours, in meters per second.
Quadruped_Run_BackwardSpeed Float 2.0 Backward speed when running on all fours, in meters per second.
Quadruped_Run_ForwardAcc Float 4.0
Quadruped_Run_ForwardDeacc Float 8.0
Quadruped_StoppedToWalkSpeed Float 0.05 Speed at which the walk animation is played when on all fours
Quadruped_WalkToStoppedSpeed Float 0.02 Speed at which walk goes to stopped when on all fours
Quadruped_WalkToRunSpeed Float 2.0 Speed at which walk turns to run animation when on all fours
Quadruped_RunToWalkSpeed Float 0.9 Speed at which run turns to walk when on all fours
NoticeSound File (.snt) Sound played when enemy notices that player is nearby
GiveUpNoticeSound File (.snt) Sound played when enemy gives up investigation (after a notice)
EnabledSound File (.snt) Sound played when enemy is enabled
GroggyDamageCount Float 1 The accumulated amount of damage the enemy can take before getting groggy by the hit.
The enemy will flinch after taking this amount of damage.
AlertToHuntDistance Float 6 If range is above this then enemy can go from alert to hunt
AlertToInstantHuntDistance Float 2.5 If range is below this, enemy geos instantly to hunt.
HuntPauseMinTime Float 0.5 Min time enemy spends not attacking after an attack.
HuntPauseMaxTime Float 1.0 Max time enemy spends not attacking after an attack.
IncreaseAlertSpeedDistance Float 6 Distance at which the alert move speed increases.
IncreasedAlertSpeedMul Float 1.25 The amount that move speed is multiplied by when alert.
AlertRunTowardsToHuntLimit Float 30 The accumulated limit value when alert goes to hunt because of player running towards enemy.
AlertRunTowardsCheckDistance Float 6 The distance where the move toward enemy check starts
IsTelsa Bool false If this is the tesla pig
TeslaSoundLoop File (.snt) Sound file played when the tesla's proximity effects are active.
Incorrectly defined as a string in EntityTypes.cfg.
ChaseSound File (.snt) Played when the pig is chasing.
Incorrectly defined as a string in EntityTypes.cfg.
Instance Vars (All Enemies)
Name Type Default Description
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnDeath or OnAutoDisabled
DisableTriggers Bool false If true, the enemy does not react to any trigger such as seeing or hearing the player.
Hallucination Bool false If true, the enemy will disappear when close enough to the player.
HallucinationEndDist Float 3 The distance at which the hallucination disappears
Instance Vars
Name Type Default Description
Pose String Biped The pose of the enemy to start with
Can be "Biped" or "Quadruped".
ThreatenOnAlert Bool false If the pig should stand still and threaten instead of walking towards player when in alert mode.
FleeFromPlayer Bool false The pig will flee instead of hunting (threaten if ThreatenOnAlert). Disabled if far enough away. Will attack if cornered.
AutoDisableAfterFlee Bool false If pig should be disabled after having fled (if possible)
IdleBehavior String None The behavior used when there are no patrol nodes left to walk.
Can be "None", "Stalk", or "Track".
PlayActivateSound Bool true If a sound is played when activated.
AllowZeroNodeWaitTimes Bool false If set to true, path node wait times with value 0 actually mean no waiting
PatrolMoveSpeed String Walk Whether this pig walks or runs along its patrol
Can be "Walk" or "Run".
HuntPauseTimeMul Float 1 Multiplier for wait time between attacks.

Enemy_Waterlurker

Enemy type of the "water monster". Since you can't assign animations to it, you might as well just use the normal waterlurker of the base game unless you want to change its properties (such as damage, movement speed, or music played).

Type Vars (All Enemies)
Name Type Default Description
Health Float 100 The amount of damage an entity can take.
Toughness Int 0 Compared to attack strength to determine damage dealt to the entity.
The attack deals no damage if Toughness > Strength + 1, half damage if Toughness = Strength + 1, and full damage if Toughness <= Strength.
Example: Toughness of 2 provides immunity to Strength 0 attacks, halves the damage of Strength 1 attacks, and full damage at Strength 2.
AutoRemoveAtPathEnd Bool true If enemy should be removed when it reaches the end of the path.
Must not be seen by the player and must be more than 10 units away from them.
SightRange Float 10 The distance that the enemy can see.
DarknessSightRange Float 4 The distance the enemy can see in darkness. Only used if player is also still!
HearVolume Float 10 The min volume that the enemy can hear (0-1)
FOV Float 180 The field of view of the enemy, max = 360
FOVXMul Float 1 The multiplier for the horiztonal fov. Also known as aspect
ActivationDistance Float 120 The distance at which the enemy is activated and starts patrolling
MaxRegenHealth Float 100 The max health that enemy regenerates to
RegenHealthSpeed Float 0 The amount of health regenerated per second.
DangerMusic String Music played when activated
DangerMusicPrio Int 0 When there are several enemies in danger range, the one with highest priority is played. This is NOT music priority
SearchMusic String Music played when searching for player (after having seen them)
SearchMusicPrio Int 0
AttackMusic String Music played when seen player and hunting
AttackMusicPrio Int 0
PlayerSearchMaxAngle Float 45 When searching for player, the angle used to narrow down search. Smaller angle means it finds player faster
PlayerSearchMinDistMul Float 0.5 Minimum amount of actual distance from player that the search is made. Must be <0
PlayerSearchMaxDistMul Float 2 Maximum amount of actual distance from player that the search is made. Must be >1
PlayerSearchTime Float 45 The time that enemy searches for player before stopping
PlayerPatrolMaxAngle Float 110 When patrolling for player, the angle used to narrow down search. Smaller angle means it finds player faster
PlayerPatrolMinDist Float 3.5 Minimum amount of actual distance from player that the patrol is made. Must be <0
PlayerPatrolMaxDist Float 15 Maximum amount of actual distance from player that the patrol is made. Must be >1
Body_Size Vector3 1 1.75 1 The size of the enemy body.
Body_Mass Float 50 Mass of body
Body_AccurateClimbing Bool false If more rays should be cast when checking for edges to climb.
Body_MaxNoSlideSlopeAngle Float 45 The maximum angle that the enemy does not slide down a slope at.
Body_MaxPushMass Float 20 The maximum mass of an object that the enemy can push
Body_PushForce Float 60 The force that objects are pushed with
Body_CharacterMaxPushMass Float 20 The maximum character mass that can be pushed.
Body_MaxStepSize Float 0.5 The maximum size of a step that can be climbed
Body_StepClimbSpeed Float 6.0 The speed of the step climb
Body_OffsetRot Vector3 0 0 0 Rotation offset of model relative to body
Body_OffsetTrans Vector3 0 0 0 Translation offset of model relative to body
Walk_ForwardSpeed Float 1.0 Forward speed when walking, in meters per second.
Walk_BackwardSpeed Float 1.0 Backward speed when walking, in meters per second.
Walk_ForwardAcc Float 2.0
Walk_ForwardDeacc Float 8.0
Run_ForwardSpeed Float 3.0 Forward speed when running, in meters per second.
Run_BackwardSpeed Float 2.0 Backward speed when running, in meters per second.
Run_ForwardAcc Float 4.0
Run_ForwardDeacc Float 8.0
TurnSpeedMul Float 6 Determines the angular speed when turning. Is also based on the angle that needs to be turned and the higher the value the faster the speed.
TurnMaxSpeed Float 4 Maximum angular speed when turning
TurnMinBreakAngle Float 10 Minimum angle for break mul to be in effect
TurnBreakMul Float 1 The higher the value, the more the enemy will break (slow down) the forward speed when turning.
MoveSpeedAnimMul Float 4.7 Multiplier for animation speed based on the speed of the body.
StoppedToWalkSpeed Float 0.05 Speed at which the walk animation is played
WalkToStoppedSpeed Float 0.02 Speed at which walk goes to stopped
WalkToRunSpeed Float 1.2 Speed at which walk turns to run animation
RunToWalkSpeed Float 1.0 Speed at which run turns to walk.
WaterStepSpeedWalk Float 3.0 Speed used when calculating effect when taking step in water during walk.
WaterStepSpeedRun Float 5.0 Speed used when calculating effect when taking step in water during run.
WaterStepSpeedMisc Float 3.0 Speed used when calculating effect when taking step in water during NOT walk or run
HitPS_Sword File (.ps) Particles created when hit by sword type weapon.
HitSound_Sword File (.snt) Sound when hit by sword type weapon.
HitPS_Club File (.ps) Particles created when hit by club type weapon.
HitSound_Club File (.snt) Sound when hit by club type weapon.
HitPS_Bullet File (.ps) Particles created when hit by bullet type weapon.
HitSound_Bullet File (.snt) Sound when hit by bullet type weapon.
HitPS_Dud File (.ps) Particles created when hit by a weapon taking no damage.
HitSound_Dud File (.snt) Sound when hit by a weapon taking no damage.
AmbientSound_Idle File (.snt) Sound made when in idle mode
AmbientMinTime_Idle Float 1 Min time between sounds.
AmbientMaxTime_Idle Float 3 Max time between sounds.
AmbientSound_Alert File (.snt) Sound made when in alert mode
AmbientMinTime_Alert Float 1 Min time between sounds.
Incorrectly defined as a sound file in EntityTypes.cfg.
AmbientMaxTime_Alert Float 2 Max time between sounds.
Incorrectly defined as a sound file in EntityTypes.cfg.
AmbientSound_Hunt File (.snt) Sound made when in hunt mode
AmbientMinTime_Hunt Float 1 Min time between sounds.
AmbientMaxTime_Hunt Float 2 Max time between sounds.
NormalAttackDistance Float 2 Distance at which the normal attack is made
NormalDamageSize Vector3 1 1 1 Size of the normal damage
NormalDamageOffset Vector3 0 0 1 Offset (in local coords) for the normal damage.
NormalAttackHitSound File (.snt) Sound made by normal damage
NormalAttackDamage Vector2 10 20 Damage made by normal damage x=min, y=max
NormalAttackForce Vector2 30 5 Force made by normal damage x=force y=max impulse (impulse = force/mass)
NormalAttackStrength Int 1 Strength for normal attack
NormalDamageType String Claws Visual feedback of attack
Can be "BloodSplat", "Claws", or "Slash".
BreakDoorAttackDamage Vector2 10 20 Damage made by break door damage x=min, y=max
BreakDoorAttackForce Vector2 30 5 Force made by break door damage x=force y=max impulse (impulse = force/mass)
BreakDoorAttackStrength Int 3 Strength for break door attack
BreakDoorAttackHitSound File (.snt) Sound made by break door damage
BreakDoorDamageType String BloodSplat Visual feedback of attack
Can be "BloodSplat", "Claws", or "Slash".
Type Vars
Name Type Default Description
PlayerDetectionHeight Float 0.6 The y-distance from the enemy that the player is detected.
EatDamage Float 20 The damage dealt to food being eaten
AfterAttackPauseTime Float 0 The amount of timer lurker waits after an attack
SplashPS_Walk File (.ps) Particle system created at surface when walking.
SplashPS_Run File (.ps) Particle system created at surface when running.
SplashPS_Eat File (.ps) Particle system created at surface when eating.
SplashPS_Attack File (.ps) Particle system created at surface when attacking.
SplashSound_Walk File (.snt) Sound played when walking.
SplashSound_Run File (.snt) Sound played when running.
SplashSound_Eat File (.snt) Sound played when eating.
SplashSound_Attack File (.snt) Sound played when attacking.
Instance Vars (All Enemies)
Name Type Default Description
CallbackFunc String A callback function used for a number of events. Syntax: void Func(string &in asEntityName, string &in asType). asType can be OnDeath or OnAutoDisabled
DisableTriggers Bool false If true, the enemy does not react to any trigger such as seeing or hearing the player.
Hallucination Bool false If true, the enemy will disappear when close enough to the player.
HallucinationEndDist Float 3 The distance at which the hallucination disappears
Instance Vars
Name Type Default Description
PlayerDetectionHeight Float 0 If equal or below 0 the default in data file is used! The y-distance from the enemy that the player is detected.

PlayerHands

Player's hands. Unless you want to make a different looking hand for a full conversion mod, you don't have to worry about this.

HandObject

The only available HandObject is the lantern. It is used in conjunction with a .ho config file to place it properly in PlayerHands.

Mostly a remnant of cut items that functioned as weapons, like in Penumbra: Overture, including the pickaxe from that game.