Engine Daemons API
Built-in engine daemons run in the client (login helpers, death loot collection, world map closer, and similar). Use engine_daemons to list them, read state, and enable or disable specific daemons or all at once.
Global: engine_daemons
Constants
engine_daemons.Daemon
String enum for type-safe daemon selection (each field is the daemon name string).
engine_daemons.Daemon.DEATH_COLLECT -- "DeathCollect"
engine_daemons.Daemon.LEGACY_LOGIN -- "LegacyLogin"
engine_daemons.Daemon.LOGIN_SPLASH -- "LoginSplash"
engine_daemons.Daemon.MODERN_LOGIN -- "ModernLogin"
engine_daemons.Daemon.WORLD_MAP_CLOSER -- "WorldMapCloser"
Example:
engine_daemons:enable(engine_daemons.Daemon.DEATH_COLLECT)
engine_daemons:disable(engine_daemons.Daemon.LEGACY_LOGIN)
local on = engine_daemons:enabled(engine_daemons.Daemon.DEATH_COLLECT)
if on == nil then
logger:warn("Daemon not found")
elseif on then
logger:info("Death collection is enabled")
end
Registry methods
enable
engine_daemons:enable(daemon_name: string) -> boolean
Enable a single daemon by name. Pass a literal string or an engine_daemons.Daemon.* value (they are strings).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
daemon_name | string | Yes | Daemon name, e.g. "DeathCollect" or engine_daemons.Daemon.DEATH_COLLECT |
Returns:
boolean- True if the daemon was found and enabled; false if the name is not registered.
disable
engine_daemons:disable(daemon_name: string) -> boolean
Disable a single daemon by name.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
daemon_name | string | Yes | Daemon name or engine_daemons.Daemon.* |
Returns:
boolean- True if the daemon was found and disabled; false if not registered.
enabled
engine_daemons:enabled(daemon_name: string) -> boolean | nil
Check whether a specific daemon is enabled.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
daemon_name | string | Yes | Daemon name or engine_daemons.Daemon.* |
Returns:
boolean- True if enabled, false if disablednil- Daemon name not found
enable_all
engine_daemons:enable_all() -> nil
Enables every registered daemon.
disable_all
engine_daemons:disable_all() -> nil
Disables every registered daemon.
list
engine_daemons:list() -> table
Returns:
table- Array of daemon userdata objects (registry order, 1-based).
get
engine_daemons:get(name: string) -> userdata | nil
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Registered daemon name |
Returns:
userdata | nil- Handle for that daemon, or nil if unknown.
names
engine_daemons:names() -> table
Returns:
table- Array of all registered daemon name strings.
Daemon object methods
Values from get or list support:
name
daemon:name() -> string
Returns:
string- This daemon’s name.
enable
daemon:enable() -> boolean
Returns:
boolean- True if enabling succeeded.
disable
daemon:disable() -> boolean
Returns:
boolean- True if disabling succeeded.
enabled
daemon:enabled() -> boolean | nil
Returns:
boolean | nil- Same semantics as registry lookup for this daemon’s name.
Available daemons
| Name (string) | Role |
|---|---|
| DeathCollect | Collects items from gravestone after death. |
| LegacyLogin | Auto-login via legacy username/password UI. |
| LoginSplash | Handles the initial login splash screen. |
| ModernLogin | Auto-login via modern login UI. |
| WorldMapCloser | Closes the world map when it opens unexpectedly. |
Discover names at runtime with engine_daemons:names() if the client adds more.
Example
for _, d in ipairs(engine_daemons:list()) do
logger:info(d:name() .. " => " .. tostring(d:enabled()))
end
engine_daemons:enable_all()
engine_daemons:disable(engine_daemons.Daemon.LEGACY_LOGIN)
local death = engine_daemons:get("DeathCollect")
if death and not death:enabled() then
death:enable()
end
Related APIs
- Game API — Client/game state
- Events API — React to ticks and actions where you do not need to toggle daemons