ACS built-in functions

From Eternity Wiki
Revision as of 10:16, 2 January 2022 by Printz (talk | contribs) (→‎Sectors)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

These are predefined ACS functions with no parameterized linedef special equivalents, accessible only through ACS scripts.

NOTE: most of these functions are meant to be compatible with those from ZDoom. For any ones not yet documented on this wiki, you can check the ZDoom wiki. A few of them may be incompletely implemented in Eternity. Don't hesitate to update the wiki in case of any mistakes.

Special TID info[edit]

For functions affecting things, some TIDs (thing tags) carry special meaning. TID 0 means the activator, and TIDs -1 ... -4 mean each of the four players in the game -- this is an Eternity extension

Data type info[edit]

You may see specifiers such as void, str, int and others in ACS function signatures. They act as a guide on what kinds of values are expected, but in ACS there really are only two types: str and int (and str internally is merely a string ID number). Most importantly:

  • void means that a function should be used as a procedure (command) without returning anything,
  • fixed means you can use the decimal point notation: 1.0 is equivalent to 65536, 1.5 to 98304 etc. In ACS, such values are still of int type, but whether you use the decimal point or not is quite relevant. A value such as 128.0 is not the same as 128: it's actually equal to 8388608 (no decimal point).

Function list[edit]

Sound and music[edit]


Name Description
ChangeCeiling Changes the ceiling texture.
ChangeFloor Changes the floor texture.
GetSectorCeilingZ Gets the ceiling height.
GetSectorFloorZ Gets the floor height.
GetSectorLightLevel Gets the light level.
SectorDamage Damages things in sector.
SetSectorDamage Modifies the damaging floor status.
TagWait Waits for sectors to stop movement.


Returns true if the first thing with the given tid has the given flag enabled.
Returns true if there's a line of sight between at least one thing tagged as source and one thing tagged as dest. Currently flags is reserved and must be 0.
Checks the kind of thing tagged tid. It returns a set of flags, possibly combined:
  • ACTOR_PLAYER (2): it's player-controlled
  • ACTOR_VOODOODOLL (8): it's a duplicate player start, not controlled by the player but still linked to it. Used in Boom maps for advanced mapping tricks
  • ACTOR_MONSTER (16): it's a monster (has COUNTKILL or KILLABLE thing type flag set)
  • ACTOR_MISSILE (128): it's a projectile in flight (has MISSILE thing type flag set)
  • ACTOR_GENERIC (256): neither a monster, nor a projectile
  • ACTOR_ALIVE (32): has positive health
  • ACTOR_DEAD (64): has health <= 0
  • ACTOR_NONE (0): no thing found with this TID
  • ACTOR_WORLD (1): TID is 0 but activator isn't a thing


Linedefs and sidedefs[edit]

zspecial.acs index Name Return type Parameters Description
internal ClearLineSpecial nothing nothing Clears the trigger linedef's special.
ReplaceTextures nothing str old_texture_name, str new_texture_name[, int flags]
internal SetLineMonsterBlocking Makes a linedef block or not block monsters.
SetLineTexture nothing int line_id, int line_side, int sidedef_texture, str texture_name



  • bool ACS_NamedExecuteAlways(str script, int map, int arg1, int arg2, int arg3)
  • Executes a named script, starting a new instance if one already exists. Returns true if successfully started.
  • bool ACS_NamedExecute(str script, int map, int arg1, int arg2, int arg3)
  • Executes a named script. Returns true if successfully started.
  • int ACS_NamedExecuteWithResult (string script, int s_arg1, int s_arg2, int s_arg3, int s_arg4)
  • bool ACS_NamedSuspend (string script, int map)
  • bool ACS_NamedTerminate (string script, int map)






  • str StrLeft (str string, int length)
  • str StrMid (str string, int start, int length)
  • str StrRight (str string, int length)

Level state[edit]

See also[edit]