Lua functions

BreatheUnderwater

Registered in this checkout as EQ2Emu_lua_BreatheUnderwater; implementation found at WorldServer/Lua/LuaFunctions.cpp:10258.

Historical signature: BreatheUnderwater(…) via current binding

Parameter and behavior details in the historical explanation are under review against the current implementation.

Function: BreatheUnderwater(spawn, enabled)

Description:

Sets the entity's underwater breathing flag. When the current spell has targets, applies the flag to those entity targets instead; otherwise uses spawn.

Parameters:

  • spawn (Spawn) - Entity used when there is no current spell target list.
  • enabled (boolean) - Whether underwater breathing is enabled.

Returns: None.

Original spell targets: When this function uses a spell's target list, it snapshots references to the originally selected actor allocations. It skips unavailable or departed targets instead of selecting another actor with a reused runtime ID. Accepted actors remain physically retained through the active protected callback, including Lua errors; saved userdata and target records do not keep them alive between callbacks. Explicit Spawn arguments retain their existing selection behavior. See Lua actor lifetime.

Checked example

Active call in a local runtime Lua script. Argument count matches current fixed C++ readers. This is a contextual call pattern, not a tested standalone script.

BreatheUnderwater(Target, true)

Evidence: server/Spells/Blessing_of_Lasydia.lua:17; binding EQ2Emu_lua_BreatheUnderwater.

Current registration: WorldServer/Lua/LuaInterface.cpp.