RAT 5 Events / Guide and Reference

Event System

How RAT 5 turns game-server, Discord, backup, and runtime activity into ordered RATScript automation.

Start here

You do not need to understand every event before creating useful automation. An event type is simply something RAT notices, such as a player joining or a backup finishing. An event definition tells RAT what to do when that happens.

1. Pick what happened

Choose an event type whose name matches the activity you care about.

2. Start from a template

Templates provide safe examples using the variables available for that event.

3. Preview before enabling

Preview shows what the script would do without sending real messages or commands.

Good first eventTry player.new_joined with its welcome template. Change only the message, validate it, preview it, and enable it when the result looks right.

Contents

  1. Start here
  2. How the event system works
  3. Definitions, sources, and ordering
  4. Creating, validating, and transferring events
  5. Managed RAT events
  6. Event type catalog
  7. Execution, waits, and troubleshooting

1. How the event system works

RAT 5 receives events from the 7 Days to Die telnet stream, the Discord gateway, backup operations, and the managed game-server runtime. Each source is normalized to a catalog key, enriched with current player and server data where possible, and captured as a snapshot for preview and diagnostics.

  1. A source emits activity, such as a chat line, player connection, Discord reaction, backup result, or server lifecycle change.
  2. RAT classifies the activity with a catalog key such as chat.global_message, backup.completed, or server.ready.
  3. RAT supplies the event variables in this catalog plus the runtime variables in the scripting reference.
  4. Every enabled definition for that key is validated and executed in configured order.
  5. RAT stores execution status, output and state summaries, errors, and the most recent successful result.
One trigger, many definitionsMultiple enabled definitions can subscribe to the same event type. Each definition has its own persistent global.* state.

2. Definitions, sources, and ordering

An event definition contains a name, description, event type key, rat5.v2 script, enabled state, order, revision, and source. User definitions are editable. RAT-managed definitions protect their name, type, description, and script; only enabled state and order may be changed.

Definitions execute in ascending order. Equal values are resolved deterministically by creation time and definition ID. An invalid or failed definition does not prevent later definitions from receiving the same event.

Parser sourceMeaning
telnet.*Parsed from 7 Days to Die telnet output.
discord.*Received from the configured Discord guild and channel mappings.
internal.*Emitted directly by a RAT subsystem rather than parsed from text.
Ordering is not shared memoryOrdering controls externally visible side effects, but one definition cannot read another definition's global.* values.

3. Creating, validating, and transferring events

  1. Select an event typeThe reference panel limits tokens and templates to the selected trigger.
  2. Write or adapt RATScriptUse event tokens, runtime variables, locals, persistent globals, reusable functions, and built-ins.
  3. ValidateResolve line-and-column diagnostics before saving or enabling the definition.
  4. Preview with a snapshotInspect outputs, branch decisions, locals, globals, simulated mutations, and structured runtime errors. Preview does not perform live side effects.
  5. Save, order, and enableUse the base revision returned by RAT so concurrent edits are detected.

Export can package selected definitions and their reusable-function dependencies. Import is a two-step preview/apply workflow: review conflicts and warnings first, select items, acknowledge warnings when required, and then apply. Preview sessions can be retrieved or discarded before application.

The Developer Workbench in RAT 5 Client can turn a captured raw line into a catalog event type, variables, and an optional managed definition. If an action is unavailable, ask the RAT 5 administrator to check your Events permissions.

4. Managed RAT events

RAT ships managed definitions for selected internal events. They are disabled by default so administrators can review their actions before enabling them. Their source is refreshed by RAT and cannot be deleted.

Managed keyNameEvent typeDefaultPurpose
rat.chat.server_message.default_loggerServer announcement loggerchat.server_messageDisabledLogs server-originated chat announcements from telnet into the RAT event stream.
rat.backup.startedBackup Startedbackup.startedDisabledRuns when a backup operation starts.
rat.backup.completedBackup Completedbackup.completedDisabledRuns when a backup operation completes successfully.
rat.backup.failedBackup Failedbackup.failedDisabledRuns when a backup operation fails.
rat.server.readyServer Readyserver.readyDisabledRuns when the game server is ready to accept player connections.
rat.server.restartingServer Restartserver.restartingDisabledRuns when the game server begins restarting.
rat.server.startedServer Startserver.startedDisabledRuns when the game server process starts.
rat.server.stoppedServer Stopserver.stoppedDisabledRuns when the game server process stops.
rat.player.new_joinedNew Player Joinedplayer.new_joinedDisabledRuns when a player joins and RAT creates their player record for the first time.

5. Event type catalog

This static reference contains all 33 server catalog entries. Catalog revision: 330738ea84ce.

  1. chat.global_message — Chat Global Message
  2. chat.server_message — Chat Server Message
  3. discord.message_received — Discord Message
  4. discord.message_updated — Discord Message Updated
  5. discord.message_deleted — Discord Message Deleted
  6. discord.reaction_added — Discord Reaction Added
  7. discord.reaction_removed — Discord Reaction Removed
  8. player.joined — Player Joined
  9. player.left — Player Left
  10. entity.killed — Entity Killed
  11. server.unresponsive — Server Unresponsive
  12. server.responsive — Server Responsive
  13. text.match — Text Match
  14. backup.started — Backup Started
  15. backup.completed — Backup Completed
  16. backup.failed — Backup Failed
  17. server.ready — Server Ready
  18. server.restarting — Server Restart
  19. server.started — Server Start
  20. server.stopped — Server Stop
  21. player.new_joined — New Player Joined
  22. bloodmoon.started — Bloodmoon Started
  23. bloodmoon.ended — Bloodmoon Ended
  24. custom.backpack_location — Player Backpack Location
  25. custom.preparing_quit — Preparing Quit
  26. custom.server_stats — Game Server Stats
  27. custom.start_game — Start Game
  28. player.connected — Player Connected
  29. player.died — Player Died
  30. player.disconnected — Player Disconnected
  31. player.kicked — Player Kicked
  32. player.banned — Player Banned
  33. player.spawned_in_world — Player Spawned in World

Chat Global Message

chat.global_message

A player sent a global chat message that RAT parsed from telnet output.

Category: chatStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.chat.global_messageRequired
$event_keystringCatalog event key for the current event.chat.global_messageRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$player.namestringDisplay name of the player who sent the message.TrekkanRequired
$chat_contentstringChat content that the player sent.Hello worldRequired
$channel_namestringResolved chat channel when available.GlobalOptional
$platform_idstringSource platform identifier when provided by telnet.Steam_76561197970441157Optional
$entity_idstring7DTD entity id when provided by telnet.171Optional
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional
$0stringFull normalized chat message, matching the same normalized text exposed by $chat_content.
rat5.v2 only
Hello, how are you?Required
$1stringWhitespace-split chat tokens continue numerically across the entire message starting at $1.
$1 => first split token
$2 => second split token
$3 => third split token
continues as $4, $5, and beyond for as many tokens as the chat message contains
rat5.v2 only
Hello,Optional
$N-stringJoined chat tokens 1 through N. Example: with "Hello, how are you?", $3- resolves to "Hello, how are".
$3- => first three split tokens joined with single spaces
$0- is invalid
rat5.v2 only
Hello, how areOptional
$N+stringJoined chat tokens N through the end. Example: with "Hello, how are you?", $3+ resolves to "are you?".
$3+ => token 3 through the end joined with single spaces
$0+ is invalid
rat5.v2 only
are you?Optional

Templates

Help command logger

Tracks the last player who used !help and logs the normalized message.

# Capture simple help commands
set local.message = trim($chat_content)

if starts_with(lower(local.message), "!help") then
  set global.last_help_player = $player.name
  set global.last_help_at = $current_datetime
  log(format("Help requested by {0}: {1}", $player.name, local.message))
else
  debug(format("Ignored chat from {0}", $player.name))
end

Quiet mode filter

Suppresses most chat when quiet mode is enabled in shared state.

# Use global.quiet_mode to suppress normal chat
set local.message = trim($chat_content)

if global.quiet_mode == true and not starts_with(local.message, "!") then
  debug(format("Suppressed chat from {0}", $player.name))
else
  log(format("{0}: {1}", $player.name, local.message))
end
Back to event catalog

Chat Server Message

chat.server_message

A server-originated chat line that RAT parsed from telnet output.

Category: chatStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.chat.server_messageRequired
$event_keystringCatalog event key for the current event.chat.server_messageRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$speaker_namestringDisplay name of the telnet chat speaker.ServerRequired
$chat_contentstringChat content emitted by the server.Blood moon starts in 10 minutes.Required
$channel_namestringResolved chat channel when available.GlobalOptional
$0stringFull normalized chat message, matching the same normalized text exposed by $chat_content.
rat5.v2 only
Blood moon starts in 10 minutes.Required
$1stringWhitespace-split chat tokens continue numerically across the entire message starting at $1.
$1 => first split token
$2 => second split token
$3 => third split token
continues as $4, $5, and beyond for as many tokens as the chat message contains
rat5.v2 only
BloodOptional
$N-stringJoined chat tokens 1 through N. Example: with "Hello, how are you?", $3- resolves to "Hello, how are".
$3- => first three split tokens joined with single spaces
$0- is invalid
rat5.v2 only
Blood moon startsOptional
$N+stringJoined chat tokens N through the end. Example: with "Hello, how are you?", $3+ resolves to "are you?".
$3+ => token 3 through the end joined with single spaces
$0+ is invalid
rat5.v2 only
starts in 10 minutes.Optional

Templates

Announcement tracker

Stores the latest server announcement in shared state.

set global.last_server_announcement = $chat_content
set global.last_server_announcement_at = $current_datetime
log(format("Server said: {0}", $chat_content))
Back to event catalog

Discord Message

discord.message_received

A Discord message received from a configured channel mapping.

Category: discordStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.discord.message_receivedRequired
$event_keystringCatalog event key for the current event.discord.message_receivedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$discord_guild_idstringDiscord guild ID that produced the message.123456789012345678Required
$discord_channel_idstringDiscord channel ID that produced the message.234567890123456789Required
$discord_channel_keystringConfigured RAT channel mapping key for the Discord channel.generalRequired
$discord_channel_namestringResolved Discord channel name when available.general-chatOptional
$discord_message_idstringDiscord message identifier.345678901234567890Required
$discord_message_timestampstringDiscord message timestamp in UTC RFC3339 format.2026-06-20T16:00:01ZRequired
$discord_author_idstringDiscord author identifier.456789012345678901Required
$discord_author_usernamestringDiscord author username.trekkanRequired
$discord_author_global_namestringDiscord author global display name when available.TrekkanOptional
$discord_author_namestringDiscord author display name.TrekkanRequired
$discord_author_is_botstringTrue when the Discord author is a bot account.falseRequired
$discord_mentions_everyonestringTrue when the Discord message mentions everyone.falseRequired
$discord_mention_countstringNumber of user mentions included in the Discord message.1Required
$discord_mentioned_user_idsstringComma-separated Discord user IDs mentioned by the message.456789012345678901Optional
$discord_mentioned_role_idsstringComma-separated Discord role IDs mentioned by the message.567890123456789012Optional
$discord_role_mention_countstringNumber of role mentions included in the Discord message.1Required
$discord_attachment_countstringNumber of attachments included in the Discord message.0Required
$discord_embed_countstringNumber of embeds included in the Discord message.0Required
$discord_reaction_countstringNumber of reaction summaries included in the Discord message.0Required
$discord_message_typestringNumeric Discord message type.0Required
$discord_message_edited_atstringUTC RFC3339 timestamp of the last edit when available.2026-06-20T16:01:00ZOptional
$discord_message_pinnedstringTrue when the Discord message is pinned.falseRequired
$discord_message_ttsstringTrue when the Discord message is text-to-speech.falseRequired
$discord_reply_message_idstringReferenced Discord message ID when this message is a reply.345678901234567890Optional
$discord_reply_channel_idstringReferenced Discord channel ID when this message is a reply.234567890123456789Optional
$discord_reply_guild_idstringReferenced Discord guild ID when this message is a reply.123456789012345678Optional
$discord_reply_author_idstringReferenced Discord author ID when available.456789012345678901Optional
$discord_attachment_namestringFilename of the first attachment when available.server.logOptional
$discord_attachment_typestringContent type of the first attachment when available.text/plainOptional
$discord_attachment_urlstringDiscord URL of the first attachment when available.https://cdn.discordapp.com/exampleOptional
$discord_attachment_sizestringSize in bytes of the first attachment.1024Required
$discord_embed_titlestringTitle of the first embed when available.Server AlertOptional
$discord_embed_descriptionstringDescription of the first embed when available.Horde night started.Optional
$discord_embed_urlstringURL of the first embed when available.https://example.comOptional
$discord_embed_field_countstringNumber of fields in the first embed.2Required
$discord_webhook_idstringDiscord webhook identifier when the message was created by a webhook.567890123456789012Optional
$discord_content_rawstringRaw Discord message content before RAT normalizes mentions or truncates long text.Hello <@456789012345678901>Required
$chat_contentstringNormalized Discord message content.Hello from DiscordRequired
$discord
  • $discord.guild_id nullable
  • $discord.channel_id nullable
  • $discord.channel_key nullable
  • $discord.channel_name nullable
  • $discord.message_id nullable
  • $discord.content nullable
  • $discord.content_raw nullable
  • $discord.message_type nullable
  • $discord.edited_at nullable
  • $discord.pinned nullable
  • $discord.tts nullable
  • $discord.mentions_everyone nullable
  • $discord.mentioned_user_ids nullable
  • $discord.mentioned_role_ids nullable
  • $discord.attachment_count nullable
  • $discord.embed_count nullable
  • $discord.reaction_count nullable
  • $discord.author nullable
  • $discord.author.id nullable
  • $discord.author.username nullable
  • $discord.author.global_name nullable
  • $discord.author.is_bot nullable
  • $discord.reply nullable
  • $discord.reply.message_id nullable
  • $discord.reply.channel_id nullable
  • $discord.reply.guild_id nullable
  • $discord.reply.author_id nullable
  • $discord.attachments nullable
  • $discord.attachments.item_01 nullable
  • $discord.attachments.item_01.name nullable
  • $discord.attachments.item_01.content_type nullable
  • $discord.attachments.item_01.url nullable
  • $discord.attachments.item_01.size nullable
  • $discord.attachments.item_01.width nullable
  • $discord.attachments.item_01.height nullable
  • $discord.attachments.item_02 nullable
  • $discord.attachments.item_02.name nullable
  • $discord.attachments.item_02.content_type nullable
  • $discord.attachments.item_02.url nullable
  • $discord.attachments.item_02.size nullable
  • $discord.attachments.item_02.width nullable
  • $discord.attachments.item_02.height nullable
  • $discord.attachments.item_03 nullable
  • $discord.attachments.item_03.name nullable
  • $discord.attachments.item_03.content_type nullable
  • $discord.attachments.item_03.url nullable
  • $discord.attachments.item_03.size nullable
  • $discord.attachments.item_03.width nullable
  • $discord.attachments.item_03.height nullable
  • $discord.attachments.item_04 nullable
  • $discord.attachments.item_04.name nullable
  • $discord.attachments.item_04.content_type nullable
  • $discord.attachments.item_04.url nullable
  • $discord.attachments.item_04.size nullable
  • $discord.attachments.item_04.width nullable
  • $discord.attachments.item_04.height nullable
  • $discord.attachments.item_05 nullable
  • $discord.attachments.item_05.name nullable
  • $discord.attachments.item_05.content_type nullable
  • $discord.attachments.item_05.url nullable
  • $discord.attachments.item_05.size nullable
  • $discord.attachments.item_05.width nullable
  • $discord.attachments.item_05.height nullable
  • $discord.attachments.item_06 nullable
  • $discord.attachments.item_06.name nullable
  • $discord.attachments.item_06.content_type nullable
  • $discord.attachments.item_06.url nullable
  • $discord.attachments.item_06.size nullable
  • $discord.attachments.item_06.width nullable
  • $discord.attachments.item_06.height nullable
  • $discord.attachments.item_07 nullable
  • $discord.attachments.item_07.name nullable
  • $discord.attachments.item_07.content_type nullable
  • $discord.attachments.item_07.url nullable
  • $discord.attachments.item_07.size nullable
  • $discord.attachments.item_07.width nullable
  • $discord.attachments.item_07.height nullable
  • $discord.attachments.item_08 nullable
  • $discord.attachments.item_08.name nullable
  • $discord.attachments.item_08.content_type nullable
  • $discord.attachments.item_08.url nullable
  • $discord.attachments.item_08.size nullable
  • $discord.attachments.item_08.width nullable
  • $discord.attachments.item_08.height nullable
  • $discord.attachments.item_09 nullable
  • $discord.attachments.item_09.name nullable
  • $discord.attachments.item_09.content_type nullable
  • $discord.attachments.item_09.url nullable
  • $discord.attachments.item_09.size nullable
  • $discord.attachments.item_09.width nullable
  • $discord.attachments.item_09.height nullable
  • $discord.attachments.item_10 nullable
  • $discord.attachments.item_10.name nullable
  • $discord.attachments.item_10.content_type nullable
  • $discord.attachments.item_10.url nullable
  • $discord.attachments.item_10.size nullable
  • $discord.attachments.item_10.width nullable
  • $discord.attachments.item_10.height nullable
  • $discord.embeds nullable
  • $discord.embeds.item_01 nullable
  • $discord.embeds.item_01.title nullable
  • $discord.embeds.item_01.description nullable
  • $discord.embeds.item_01.url nullable
  • $discord.embeds.item_01.field_count nullable
  • $discord.embeds.item_01.author_name nullable
  • $discord.embeds.item_01.image_url nullable
  • $discord.embeds.item_02 nullable
  • $discord.embeds.item_02.title nullable
  • $discord.embeds.item_02.description nullable
  • $discord.embeds.item_02.url nullable
  • $discord.embeds.item_02.field_count nullable
  • $discord.embeds.item_02.author_name nullable
  • $discord.embeds.item_02.image_url nullable
  • $discord.embeds.item_03 nullable
  • $discord.embeds.item_03.title nullable
  • $discord.embeds.item_03.description nullable
  • $discord.embeds.item_03.url nullable
  • $discord.embeds.item_03.field_count nullable
  • $discord.embeds.item_03.author_name nullable
  • $discord.embeds.item_03.image_url nullable
  • $discord.embeds.item_04 nullable
  • $discord.embeds.item_04.title nullable
  • $discord.embeds.item_04.description nullable
  • $discord.embeds.item_04.url nullable
  • $discord.embeds.item_04.field_count nullable
  • $discord.embeds.item_04.author_name nullable
  • $discord.embeds.item_04.image_url nullable
  • $discord.embeds.item_05 nullable
  • $discord.embeds.item_05.title nullable
  • $discord.embeds.item_05.description nullable
  • $discord.embeds.item_05.url nullable
  • $discord.embeds.item_05.field_count nullable
  • $discord.embeds.item_05.author_name nullable
  • $discord.embeds.item_05.image_url nullable
  • $discord.embeds.item_06 nullable
  • $discord.embeds.item_06.title nullable
  • $discord.embeds.item_06.description nullable
  • $discord.embeds.item_06.url nullable
  • $discord.embeds.item_06.field_count nullable
  • $discord.embeds.item_06.author_name nullable
  • $discord.embeds.item_06.image_url nullable
  • $discord.embeds.item_07 nullable
  • $discord.embeds.item_07.title nullable
  • $discord.embeds.item_07.description nullable
  • $discord.embeds.item_07.url nullable
  • $discord.embeds.item_07.field_count nullable
  • $discord.embeds.item_07.author_name nullable
  • $discord.embeds.item_07.image_url nullable
  • $discord.embeds.item_08 nullable
  • $discord.embeds.item_08.title nullable
  • $discord.embeds.item_08.description nullable
  • $discord.embeds.item_08.url nullable
  • $discord.embeds.item_08.field_count nullable
  • $discord.embeds.item_08.author_name nullable
  • $discord.embeds.item_08.image_url nullable
  • $discord.embeds.item_09 nullable
  • $discord.embeds.item_09.title nullable
  • $discord.embeds.item_09.description nullable
  • $discord.embeds.item_09.url nullable
  • $discord.embeds.item_09.field_count nullable
  • $discord.embeds.item_09.author_name nullable
  • $discord.embeds.item_09.image_url nullable
  • $discord.embeds.item_10 nullable
  • $discord.embeds.item_10.title nullable
  • $discord.embeds.item_10.description nullable
  • $discord.embeds.item_10.url nullable
  • $discord.embeds.item_10.field_count nullable
  • $discord.embeds.item_10.author_name nullable
  • $discord.embeds.item_10.image_url nullable
  • $discord.reactions nullable
  • $discord.reactions.item_01 nullable
  • $discord.reactions.item_01.emoji nullable
  • $discord.reactions.item_01.emoji_id nullable
  • $discord.reactions.item_01.count nullable
  • $discord.reactions.item_01.me nullable
  • $discord.reactions.item_02 nullable
  • $discord.reactions.item_02.emoji nullable
  • $discord.reactions.item_02.emoji_id nullable
  • $discord.reactions.item_02.count nullable
  • $discord.reactions.item_02.me nullable
  • $discord.reactions.item_03 nullable
  • $discord.reactions.item_03.emoji nullable
  • $discord.reactions.item_03.emoji_id nullable
  • $discord.reactions.item_03.count nullable
  • $discord.reactions.item_03.me nullable
  • $discord.reactions.item_04 nullable
  • $discord.reactions.item_04.emoji nullable
  • $discord.reactions.item_04.emoji_id nullable
  • $discord.reactions.item_04.count nullable
  • $discord.reactions.item_04.me nullable
  • $discord.reactions.item_05 nullable
  • $discord.reactions.item_05.emoji nullable
  • $discord.reactions.item_05.emoji_id nullable
  • $discord.reactions.item_05.count nullable
  • $discord.reactions.item_05.me nullable
  • $discord.reactions.item_06 nullable
  • $discord.reactions.item_06.emoji nullable
  • $discord.reactions.item_06.emoji_id nullable
  • $discord.reactions.item_06.count nullable
  • $discord.reactions.item_06.me nullable
  • $discord.reactions.item_07 nullable
  • $discord.reactions.item_07.emoji nullable
  • $discord.reactions.item_07.emoji_id nullable
  • $discord.reactions.item_07.count nullable
  • $discord.reactions.item_07.me nullable
  • $discord.reactions.item_08 nullable
  • $discord.reactions.item_08.emoji nullable
  • $discord.reactions.item_08.emoji_id nullable
  • $discord.reactions.item_08.count nullable
  • $discord.reactions.item_08.me nullable
  • $discord.reactions.item_09 nullable
  • $discord.reactions.item_09.emoji nullable
  • $discord.reactions.item_09.emoji_id nullable
  • $discord.reactions.item_09.count nullable
  • $discord.reactions.item_09.me nullable
  • $discord.reactions.item_10 nullable
  • $discord.reactions.item_10.emoji nullable
  • $discord.reactions.item_10.emoji_id nullable
  • $discord.reactions.item_10.count nullable
  • $discord.reactions.item_10.me nullable
  • $discord.reactions.item_11 nullable
  • $discord.reactions.item_11.emoji nullable
  • $discord.reactions.item_11.emoji_id nullable
  • $discord.reactions.item_11.count nullable
  • $discord.reactions.item_11.me nullable
  • $discord.reactions.item_12 nullable
  • $discord.reactions.item_12.emoji nullable
  • $discord.reactions.item_12.emoji_id nullable
  • $discord.reactions.item_12.count nullable
  • $discord.reactions.item_12.me nullable
  • $discord.reactions.item_13 nullable
  • $discord.reactions.item_13.emoji nullable
  • $discord.reactions.item_13.emoji_id nullable
  • $discord.reactions.item_13.count nullable
  • $discord.reactions.item_13.me nullable
  • $discord.reactions.item_14 nullable
  • $discord.reactions.item_14.emoji nullable
  • $discord.reactions.item_14.emoji_id nullable
  • $discord.reactions.item_14.count nullable
  • $discord.reactions.item_14.me nullable
  • $discord.reactions.item_15 nullable
  • $discord.reactions.item_15.emoji nullable
  • $discord.reactions.item_15.emoji_id nullable
  • $discord.reactions.item_15.count nullable
  • $discord.reactions.item_15.me nullable
  • $discord.reactions.item_16 nullable
  • $discord.reactions.item_16.emoji nullable
  • $discord.reactions.item_16.emoji_id nullable
  • $discord.reactions.item_16.count nullable
  • $discord.reactions.item_16.me nullable
  • $discord.reactions.item_17 nullable
  • $discord.reactions.item_17.emoji nullable
  • $discord.reactions.item_17.emoji_id nullable
  • $discord.reactions.item_17.count nullable
  • $discord.reactions.item_17.me nullable
  • $discord.reactions.item_18 nullable
  • $discord.reactions.item_18.emoji nullable
  • $discord.reactions.item_18.emoji_id nullable
  • $discord.reactions.item_18.count nullable
  • $discord.reactions.item_18.me nullable
  • $discord.reactions.item_19 nullable
  • $discord.reactions.item_19.emoji nullable
  • $discord.reactions.item_19.emoji_id nullable
  • $discord.reactions.item_19.count nullable
  • $discord.reactions.item_19.me nullable
  • $discord.reactions.item_20 nullable
  • $discord.reactions.item_20.emoji nullable
  • $discord.reactions.item_20.emoji_id nullable
  • $discord.reactions.item_20.count nullable
  • $discord.reactions.item_20.me nullable
  • $discord.first_attachment nullable
  • $discord.first_attachment.name nullable
  • $discord.first_attachment.content_type nullable
  • $discord.first_attachment.url nullable
  • $discord.first_attachment.size nullable
  • $discord.first_attachment.width nullable
  • $discord.first_attachment.height nullable
  • $discord.first_embed nullable
  • $discord.first_embed.title nullable
  • $discord.first_embed.description nullable
  • $discord.first_embed.url nullable
  • $discord.first_embed.field_count nullable
  • $discord.first_embed.author_name nullable
  • $discord.first_embed.image_url nullable
object
Nullable
Structured Discord message metadata. Expand its child properties for message, author, reply, attachment, embed, and reaction values.
$discord.guild_id
$discord.channel_id
$discord.channel_key
$discord.channel_name
$discord.message_id
$discord.content
$discord.content_raw
$discord.message_type
$discord.edited_at
$discord.pinned
$discord.tts
$discord.mentions_everyone
$discord.mentioned_user_ids
$discord.mentioned_role_ids
$discord.attachment_count
$discord.embed_count
$discord.reaction_count
$discord.author.id
$discord.author.username
$discord.author.global_name
$discord.author.is_bot
$discord.reply.message_id
$discord.reply.channel_id
$discord.reply.guild_id
$discord.reply.author_id
$discord.attachments.item_01.name
$discord.attachments.item_01.content_type
$discord.attachments.item_01.url
$discord.attachments.item_01.size
$discord.attachments.item_01.width
$discord.attachments.item_01.height
$discord.attachments.item_02.name
$discord.attachments.item_02.content_type
$discord.attachments.item_02.url
$discord.attachments.item_02.size
$discord.attachments.item_02.width
$discord.attachments.item_02.height
$discord.attachments.item_03.name
$discord.attachments.item_03.content_type
$discord.attachments.item_03.url
$discord.attachments.item_03.size
$discord.attachments.item_03.width
$discord.attachments.item_03.height
$discord.attachments.item_04.name
$discord.attachments.item_04.content_type
$discord.attachments.item_04.url
$discord.attachments.item_04.size
$discord.attachments.item_04.width
$discord.attachments.item_04.height
$discord.attachments.item_05.name
$discord.attachments.item_05.content_type
$discord.attachments.item_05.url
$discord.attachments.item_05.size
$discord.attachments.item_05.width
$discord.attachments.item_05.height
$discord.attachments.item_06.name
$discord.attachments.item_06.content_type
$discord.attachments.item_06.url
$discord.attachments.item_06.size
$discord.attachments.item_06.width
$discord.attachments.item_06.height
$discord.attachments.item_07.name
$discord.attachments.item_07.content_type
$discord.attachments.item_07.url
$discord.attachments.item_07.size
$discord.attachments.item_07.width
$discord.attachments.item_07.height
$discord.attachments.item_08.name
$discord.attachments.item_08.content_type
$discord.attachments.item_08.url
$discord.attachments.item_08.size
$discord.attachments.item_08.width
$discord.attachments.item_08.height
$discord.attachments.item_09.name
$discord.attachments.item_09.content_type
$discord.attachments.item_09.url
$discord.attachments.item_09.size
$discord.attachments.item_09.width
$discord.attachments.item_09.height
$discord.attachments.item_10.name
$discord.attachments.item_10.content_type
$discord.attachments.item_10.url
$discord.attachments.item_10.size
$discord.attachments.item_10.width
$discord.attachments.item_10.height
$discord.embeds.item_01.title
$discord.embeds.item_01.description
$discord.embeds.item_01.url
$discord.embeds.item_01.field_count
$discord.embeds.item_01.author_name
$discord.embeds.item_01.image_url
$discord.embeds.item_02.title
$discord.embeds.item_02.description
$discord.embeds.item_02.url
$discord.embeds.item_02.field_count
$discord.embeds.item_02.author_name
$discord.embeds.item_02.image_url
$discord.embeds.item_03.title
$discord.embeds.item_03.description
$discord.embeds.item_03.url
$discord.embeds.item_03.field_count
$discord.embeds.item_03.author_name
$discord.embeds.item_03.image_url
$discord.embeds.item_04.title
$discord.embeds.item_04.description
$discord.embeds.item_04.url
$discord.embeds.item_04.field_count
$discord.embeds.item_04.author_name
$discord.embeds.item_04.image_url
$discord.embeds.item_05.title
$discord.embeds.item_05.description
$discord.embeds.item_05.url
$discord.embeds.item_05.field_count
$discord.embeds.item_05.author_name
$discord.embeds.item_05.image_url
$discord.embeds.item_06.title
$discord.embeds.item_06.description
$discord.embeds.item_06.url
$discord.embeds.item_06.field_count
$discord.embeds.item_06.author_name
$discord.embeds.item_06.image_url
$discord.embeds.item_07.title
$discord.embeds.item_07.description
$discord.embeds.item_07.url
$discord.embeds.item_07.field_count
$discord.embeds.item_07.author_name
$discord.embeds.item_07.image_url
$discord.embeds.item_08.title
$discord.embeds.item_08.description
$discord.embeds.item_08.url
$discord.embeds.item_08.field_count
$discord.embeds.item_08.author_name
$discord.embeds.item_08.image_url
$discord.embeds.item_09.title
$discord.embeds.item_09.description
$discord.embeds.item_09.url
$discord.embeds.item_09.field_count
$discord.embeds.item_09.author_name
$discord.embeds.item_09.image_url
$discord.embeds.item_10.title
$discord.embeds.item_10.description
$discord.embeds.item_10.url
$discord.embeds.item_10.field_count
$discord.embeds.item_10.author_name
$discord.embeds.item_10.image_url
$discord.reactions.item_01.emoji
$discord.reactions.item_01.emoji_id
$discord.reactions.item_01.count
$discord.reactions.item_01.me
$discord.reactions.item_02.emoji
$discord.reactions.item_02.emoji_id
$discord.reactions.item_02.count
$discord.reactions.item_02.me
$discord.reactions.item_03.emoji
$discord.reactions.item_03.emoji_id
$discord.reactions.item_03.count
$discord.reactions.item_03.me
$discord.reactions.item_04.emoji
$discord.reactions.item_04.emoji_id
$discord.reactions.item_04.count
$discord.reactions.item_04.me
$discord.reactions.item_05.emoji
$discord.reactions.item_05.emoji_id
$discord.reactions.item_05.count
$discord.reactions.item_05.me
$discord.reactions.item_06.emoji
$discord.reactions.item_06.emoji_id
$discord.reactions.item_06.count
$discord.reactions.item_06.me
$discord.reactions.item_07.emoji
$discord.reactions.item_07.emoji_id
$discord.reactions.item_07.count
$discord.reactions.item_07.me
$discord.reactions.item_08.emoji
$discord.reactions.item_08.emoji_id
$discord.reactions.item_08.count
$discord.reactions.item_08.me
$discord.reactions.item_09.emoji
$discord.reactions.item_09.emoji_id
$discord.reactions.item_09.count
$discord.reactions.item_09.me
$discord.reactions.item_10.emoji
$discord.reactions.item_10.emoji_id
$discord.reactions.item_10.count
$discord.reactions.item_10.me
$discord.reactions.item_11.emoji
$discord.reactions.item_11.emoji_id
$discord.reactions.item_11.count
$discord.reactions.item_11.me
$discord.reactions.item_12.emoji
$discord.reactions.item_12.emoji_id
$discord.reactions.item_12.count
$discord.reactions.item_12.me
$discord.reactions.item_13.emoji
$discord.reactions.item_13.emoji_id
$discord.reactions.item_13.count
$discord.reactions.item_13.me
$discord.reactions.item_14.emoji
$discord.reactions.item_14.emoji_id
$discord.reactions.item_14.count
$discord.reactions.item_14.me
$discord.reactions.item_15.emoji
$discord.reactions.item_15.emoji_id
$discord.reactions.item_15.count
$discord.reactions.item_15.me
$discord.reactions.item_16.emoji
$discord.reactions.item_16.emoji_id
$discord.reactions.item_16.count
$discord.reactions.item_16.me
$discord.reactions.item_17.emoji
$discord.reactions.item_17.emoji_id
$discord.reactions.item_17.count
$discord.reactions.item_17.me
$discord.reactions.item_18.emoji
$discord.reactions.item_18.emoji_id
$discord.reactions.item_18.count
$discord.reactions.item_18.me
$discord.reactions.item_19.emoji
$discord.reactions.item_19.emoji_id
$discord.reactions.item_19.count
$discord.reactions.item_19.me
$discord.reactions.item_20.emoji
$discord.reactions.item_20.emoji_id
$discord.reactions.item_20.count
$discord.reactions.item_20.me
$discord.first_attachment.name
$discord.first_attachment.content_type
$discord.first_attachment.url
$discord.first_attachment.size
$discord.first_attachment.width
$discord.first_attachment.height
$discord.first_embed.title
$discord.first_embed.description
$discord.first_embed.url
$discord.first_embed.field_count
$discord.first_embed.author_name
$discord.first_embed.image_url
rat5.v2 only
{"guild_id":"123456789012345678","channel_key":"general","message_id":"345678901234567890","content":"Hello @Trekkan","attachment_count":1,"embed_count":1,"reaction_count":2}Optional

Templates

Discord logger

Logs Discord messages received from a configured event source mapping.

log(format("[Discord:{0}] {1}: {2}", $discord_channel_key, $discord_author_name, $chat_content))
Back to event catalog

Discord Message Updated

discord.message_updated

A Discord message was edited in a configured channel mapping.

Category: discordStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.discord.message_updatedRequired
$event_keystringCatalog event key for the current event.discord.message_updatedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$discord_guild_idstringDiscord guild ID that produced the event.123456789012345678Required
$discord_channel_idstringDiscord channel ID that produced the event.234567890123456789Required
$discord_channel_keystringConfigured RAT channel mapping key.generalRequired
$discord_channel_namestringResolved Discord channel name when available.general-chatOptional
$discord_message_idstringDiscord message identifier.345678901234567890Required
$discord_message_timestampstringDiscord message timestamp in UTC RFC3339 format.2026-06-20T16:00:01ZRequired
$discord_message_edited_atstringUTC RFC3339 edit timestamp when available.2026-06-20T16:01:00ZOptional
$discord_author_idstringDiscord author identifier when available.456789012345678901Optional
$discord_author_namestringDiscord author display name when available.TrekkanOptional
$discord_mentioned_user_idsstringComma-separated mentioned user IDs.456789012345678901Optional
$discord_mentioned_role_idsstringComma-separated mentioned role IDs.567890123456789012Optional
$discord_attachment_countstringNumber of message attachments.0Required
$discord_embed_countstringNumber of message embeds.0Required
$discord_reply_message_idstringReferenced message ID when this is a reply.345678901234567890Optional
$discord_content_rawstringRaw Discord message content.Hello <@456789012345678901>Optional
$chat_contentstringNormalized Discord message content.Hello @TrekkanOptional
$discord
  • $discord.guild_id nullable
  • $discord.channel_id nullable
  • $discord.channel_key nullable
  • $discord.channel_name nullable
  • $discord.message_id nullable
  • $discord.content nullable
  • $discord.content_raw nullable
  • $discord.message_type nullable
  • $discord.edited_at nullable
  • $discord.pinned nullable
  • $discord.tts nullable
  • $discord.mentions_everyone nullable
  • $discord.mentioned_user_ids nullable
  • $discord.mentioned_role_ids nullable
  • $discord.attachment_count nullable
  • $discord.embed_count nullable
  • $discord.reaction_count nullable
  • $discord.author nullable
  • $discord.author.id nullable
  • $discord.author.username nullable
  • $discord.author.global_name nullable
  • $discord.author.is_bot nullable
  • $discord.reply nullable
  • $discord.reply.message_id nullable
  • $discord.reply.channel_id nullable
  • $discord.reply.guild_id nullable
  • $discord.reply.author_id nullable
  • $discord.attachments nullable
  • $discord.attachments.item_01 nullable
  • $discord.attachments.item_01.name nullable
  • $discord.attachments.item_01.content_type nullable
  • $discord.attachments.item_01.url nullable
  • $discord.attachments.item_01.size nullable
  • $discord.attachments.item_01.width nullable
  • $discord.attachments.item_01.height nullable
  • $discord.attachments.item_02 nullable
  • $discord.attachments.item_02.name nullable
  • $discord.attachments.item_02.content_type nullable
  • $discord.attachments.item_02.url nullable
  • $discord.attachments.item_02.size nullable
  • $discord.attachments.item_02.width nullable
  • $discord.attachments.item_02.height nullable
  • $discord.attachments.item_03 nullable
  • $discord.attachments.item_03.name nullable
  • $discord.attachments.item_03.content_type nullable
  • $discord.attachments.item_03.url nullable
  • $discord.attachments.item_03.size nullable
  • $discord.attachments.item_03.width nullable
  • $discord.attachments.item_03.height nullable
  • $discord.attachments.item_04 nullable
  • $discord.attachments.item_04.name nullable
  • $discord.attachments.item_04.content_type nullable
  • $discord.attachments.item_04.url nullable
  • $discord.attachments.item_04.size nullable
  • $discord.attachments.item_04.width nullable
  • $discord.attachments.item_04.height nullable
  • $discord.attachments.item_05 nullable
  • $discord.attachments.item_05.name nullable
  • $discord.attachments.item_05.content_type nullable
  • $discord.attachments.item_05.url nullable
  • $discord.attachments.item_05.size nullable
  • $discord.attachments.item_05.width nullable
  • $discord.attachments.item_05.height nullable
  • $discord.attachments.item_06 nullable
  • $discord.attachments.item_06.name nullable
  • $discord.attachments.item_06.content_type nullable
  • $discord.attachments.item_06.url nullable
  • $discord.attachments.item_06.size nullable
  • $discord.attachments.item_06.width nullable
  • $discord.attachments.item_06.height nullable
  • $discord.attachments.item_07 nullable
  • $discord.attachments.item_07.name nullable
  • $discord.attachments.item_07.content_type nullable
  • $discord.attachments.item_07.url nullable
  • $discord.attachments.item_07.size nullable
  • $discord.attachments.item_07.width nullable
  • $discord.attachments.item_07.height nullable
  • $discord.attachments.item_08 nullable
  • $discord.attachments.item_08.name nullable
  • $discord.attachments.item_08.content_type nullable
  • $discord.attachments.item_08.url nullable
  • $discord.attachments.item_08.size nullable
  • $discord.attachments.item_08.width nullable
  • $discord.attachments.item_08.height nullable
  • $discord.attachments.item_09 nullable
  • $discord.attachments.item_09.name nullable
  • $discord.attachments.item_09.content_type nullable
  • $discord.attachments.item_09.url nullable
  • $discord.attachments.item_09.size nullable
  • $discord.attachments.item_09.width nullable
  • $discord.attachments.item_09.height nullable
  • $discord.attachments.item_10 nullable
  • $discord.attachments.item_10.name nullable
  • $discord.attachments.item_10.content_type nullable
  • $discord.attachments.item_10.url nullable
  • $discord.attachments.item_10.size nullable
  • $discord.attachments.item_10.width nullable
  • $discord.attachments.item_10.height nullable
  • $discord.embeds nullable
  • $discord.embeds.item_01 nullable
  • $discord.embeds.item_01.title nullable
  • $discord.embeds.item_01.description nullable
  • $discord.embeds.item_01.url nullable
  • $discord.embeds.item_01.field_count nullable
  • $discord.embeds.item_01.author_name nullable
  • $discord.embeds.item_01.image_url nullable
  • $discord.embeds.item_02 nullable
  • $discord.embeds.item_02.title nullable
  • $discord.embeds.item_02.description nullable
  • $discord.embeds.item_02.url nullable
  • $discord.embeds.item_02.field_count nullable
  • $discord.embeds.item_02.author_name nullable
  • $discord.embeds.item_02.image_url nullable
  • $discord.embeds.item_03 nullable
  • $discord.embeds.item_03.title nullable
  • $discord.embeds.item_03.description nullable
  • $discord.embeds.item_03.url nullable
  • $discord.embeds.item_03.field_count nullable
  • $discord.embeds.item_03.author_name nullable
  • $discord.embeds.item_03.image_url nullable
  • $discord.embeds.item_04 nullable
  • $discord.embeds.item_04.title nullable
  • $discord.embeds.item_04.description nullable
  • $discord.embeds.item_04.url nullable
  • $discord.embeds.item_04.field_count nullable
  • $discord.embeds.item_04.author_name nullable
  • $discord.embeds.item_04.image_url nullable
  • $discord.embeds.item_05 nullable
  • $discord.embeds.item_05.title nullable
  • $discord.embeds.item_05.description nullable
  • $discord.embeds.item_05.url nullable
  • $discord.embeds.item_05.field_count nullable
  • $discord.embeds.item_05.author_name nullable
  • $discord.embeds.item_05.image_url nullable
  • $discord.embeds.item_06 nullable
  • $discord.embeds.item_06.title nullable
  • $discord.embeds.item_06.description nullable
  • $discord.embeds.item_06.url nullable
  • $discord.embeds.item_06.field_count nullable
  • $discord.embeds.item_06.author_name nullable
  • $discord.embeds.item_06.image_url nullable
  • $discord.embeds.item_07 nullable
  • $discord.embeds.item_07.title nullable
  • $discord.embeds.item_07.description nullable
  • $discord.embeds.item_07.url nullable
  • $discord.embeds.item_07.field_count nullable
  • $discord.embeds.item_07.author_name nullable
  • $discord.embeds.item_07.image_url nullable
  • $discord.embeds.item_08 nullable
  • $discord.embeds.item_08.title nullable
  • $discord.embeds.item_08.description nullable
  • $discord.embeds.item_08.url nullable
  • $discord.embeds.item_08.field_count nullable
  • $discord.embeds.item_08.author_name nullable
  • $discord.embeds.item_08.image_url nullable
  • $discord.embeds.item_09 nullable
  • $discord.embeds.item_09.title nullable
  • $discord.embeds.item_09.description nullable
  • $discord.embeds.item_09.url nullable
  • $discord.embeds.item_09.field_count nullable
  • $discord.embeds.item_09.author_name nullable
  • $discord.embeds.item_09.image_url nullable
  • $discord.embeds.item_10 nullable
  • $discord.embeds.item_10.title nullable
  • $discord.embeds.item_10.description nullable
  • $discord.embeds.item_10.url nullable
  • $discord.embeds.item_10.field_count nullable
  • $discord.embeds.item_10.author_name nullable
  • $discord.embeds.item_10.image_url nullable
  • $discord.reactions nullable
  • $discord.reactions.item_01 nullable
  • $discord.reactions.item_01.emoji nullable
  • $discord.reactions.item_01.emoji_id nullable
  • $discord.reactions.item_01.count nullable
  • $discord.reactions.item_01.me nullable
  • $discord.reactions.item_02 nullable
  • $discord.reactions.item_02.emoji nullable
  • $discord.reactions.item_02.emoji_id nullable
  • $discord.reactions.item_02.count nullable
  • $discord.reactions.item_02.me nullable
  • $discord.reactions.item_03 nullable
  • $discord.reactions.item_03.emoji nullable
  • $discord.reactions.item_03.emoji_id nullable
  • $discord.reactions.item_03.count nullable
  • $discord.reactions.item_03.me nullable
  • $discord.reactions.item_04 nullable
  • $discord.reactions.item_04.emoji nullable
  • $discord.reactions.item_04.emoji_id nullable
  • $discord.reactions.item_04.count nullable
  • $discord.reactions.item_04.me nullable
  • $discord.reactions.item_05 nullable
  • $discord.reactions.item_05.emoji nullable
  • $discord.reactions.item_05.emoji_id nullable
  • $discord.reactions.item_05.count nullable
  • $discord.reactions.item_05.me nullable
  • $discord.reactions.item_06 nullable
  • $discord.reactions.item_06.emoji nullable
  • $discord.reactions.item_06.emoji_id nullable
  • $discord.reactions.item_06.count nullable
  • $discord.reactions.item_06.me nullable
  • $discord.reactions.item_07 nullable
  • $discord.reactions.item_07.emoji nullable
  • $discord.reactions.item_07.emoji_id nullable
  • $discord.reactions.item_07.count nullable
  • $discord.reactions.item_07.me nullable
  • $discord.reactions.item_08 nullable
  • $discord.reactions.item_08.emoji nullable
  • $discord.reactions.item_08.emoji_id nullable
  • $discord.reactions.item_08.count nullable
  • $discord.reactions.item_08.me nullable
  • $discord.reactions.item_09 nullable
  • $discord.reactions.item_09.emoji nullable
  • $discord.reactions.item_09.emoji_id nullable
  • $discord.reactions.item_09.count nullable
  • $discord.reactions.item_09.me nullable
  • $discord.reactions.item_10 nullable
  • $discord.reactions.item_10.emoji nullable
  • $discord.reactions.item_10.emoji_id nullable
  • $discord.reactions.item_10.count nullable
  • $discord.reactions.item_10.me nullable
  • $discord.reactions.item_11 nullable
  • $discord.reactions.item_11.emoji nullable
  • $discord.reactions.item_11.emoji_id nullable
  • $discord.reactions.item_11.count nullable
  • $discord.reactions.item_11.me nullable
  • $discord.reactions.item_12 nullable
  • $discord.reactions.item_12.emoji nullable
  • $discord.reactions.item_12.emoji_id nullable
  • $discord.reactions.item_12.count nullable
  • $discord.reactions.item_12.me nullable
  • $discord.reactions.item_13 nullable
  • $discord.reactions.item_13.emoji nullable
  • $discord.reactions.item_13.emoji_id nullable
  • $discord.reactions.item_13.count nullable
  • $discord.reactions.item_13.me nullable
  • $discord.reactions.item_14 nullable
  • $discord.reactions.item_14.emoji nullable
  • $discord.reactions.item_14.emoji_id nullable
  • $discord.reactions.item_14.count nullable
  • $discord.reactions.item_14.me nullable
  • $discord.reactions.item_15 nullable
  • $discord.reactions.item_15.emoji nullable
  • $discord.reactions.item_15.emoji_id nullable
  • $discord.reactions.item_15.count nullable
  • $discord.reactions.item_15.me nullable
  • $discord.reactions.item_16 nullable
  • $discord.reactions.item_16.emoji nullable
  • $discord.reactions.item_16.emoji_id nullable
  • $discord.reactions.item_16.count nullable
  • $discord.reactions.item_16.me nullable
  • $discord.reactions.item_17 nullable
  • $discord.reactions.item_17.emoji nullable
  • $discord.reactions.item_17.emoji_id nullable
  • $discord.reactions.item_17.count nullable
  • $discord.reactions.item_17.me nullable
  • $discord.reactions.item_18 nullable
  • $discord.reactions.item_18.emoji nullable
  • $discord.reactions.item_18.emoji_id nullable
  • $discord.reactions.item_18.count nullable
  • $discord.reactions.item_18.me nullable
  • $discord.reactions.item_19 nullable
  • $discord.reactions.item_19.emoji nullable
  • $discord.reactions.item_19.emoji_id nullable
  • $discord.reactions.item_19.count nullable
  • $discord.reactions.item_19.me nullable
  • $discord.reactions.item_20 nullable
  • $discord.reactions.item_20.emoji nullable
  • $discord.reactions.item_20.emoji_id nullable
  • $discord.reactions.item_20.count nullable
  • $discord.reactions.item_20.me nullable
  • $discord.first_attachment nullable
  • $discord.first_attachment.name nullable
  • $discord.first_attachment.content_type nullable
  • $discord.first_attachment.url nullable
  • $discord.first_attachment.size nullable
  • $discord.first_attachment.width nullable
  • $discord.first_attachment.height nullable
  • $discord.first_embed nullable
  • $discord.first_embed.title nullable
  • $discord.first_embed.description nullable
  • $discord.first_embed.url nullable
  • $discord.first_embed.field_count nullable
  • $discord.first_embed.author_name nullable
  • $discord.first_embed.image_url nullable
object
Nullable
Structured Discord message metadata. Expand its child properties for message, author, reply, attachment, embed, and reaction values.
$discord.guild_id
$discord.channel_id
$discord.channel_key
$discord.channel_name
$discord.message_id
$discord.content
$discord.content_raw
$discord.message_type
$discord.edited_at
$discord.pinned
$discord.tts
$discord.mentions_everyone
$discord.mentioned_user_ids
$discord.mentioned_role_ids
$discord.attachment_count
$discord.embed_count
$discord.reaction_count
$discord.author.id
$discord.author.username
$discord.author.global_name
$discord.author.is_bot
$discord.reply.message_id
$discord.reply.channel_id
$discord.reply.guild_id
$discord.reply.author_id
$discord.attachments.item_01.name
$discord.attachments.item_01.content_type
$discord.attachments.item_01.url
$discord.attachments.item_01.size
$discord.attachments.item_01.width
$discord.attachments.item_01.height
$discord.attachments.item_02.name
$discord.attachments.item_02.content_type
$discord.attachments.item_02.url
$discord.attachments.item_02.size
$discord.attachments.item_02.width
$discord.attachments.item_02.height
$discord.attachments.item_03.name
$discord.attachments.item_03.content_type
$discord.attachments.item_03.url
$discord.attachments.item_03.size
$discord.attachments.item_03.width
$discord.attachments.item_03.height
$discord.attachments.item_04.name
$discord.attachments.item_04.content_type
$discord.attachments.item_04.url
$discord.attachments.item_04.size
$discord.attachments.item_04.width
$discord.attachments.item_04.height
$discord.attachments.item_05.name
$discord.attachments.item_05.content_type
$discord.attachments.item_05.url
$discord.attachments.item_05.size
$discord.attachments.item_05.width
$discord.attachments.item_05.height
$discord.attachments.item_06.name
$discord.attachments.item_06.content_type
$discord.attachments.item_06.url
$discord.attachments.item_06.size
$discord.attachments.item_06.width
$discord.attachments.item_06.height
$discord.attachments.item_07.name
$discord.attachments.item_07.content_type
$discord.attachments.item_07.url
$discord.attachments.item_07.size
$discord.attachments.item_07.width
$discord.attachments.item_07.height
$discord.attachments.item_08.name
$discord.attachments.item_08.content_type
$discord.attachments.item_08.url
$discord.attachments.item_08.size
$discord.attachments.item_08.width
$discord.attachments.item_08.height
$discord.attachments.item_09.name
$discord.attachments.item_09.content_type
$discord.attachments.item_09.url
$discord.attachments.item_09.size
$discord.attachments.item_09.width
$discord.attachments.item_09.height
$discord.attachments.item_10.name
$discord.attachments.item_10.content_type
$discord.attachments.item_10.url
$discord.attachments.item_10.size
$discord.attachments.item_10.width
$discord.attachments.item_10.height
$discord.embeds.item_01.title
$discord.embeds.item_01.description
$discord.embeds.item_01.url
$discord.embeds.item_01.field_count
$discord.embeds.item_01.author_name
$discord.embeds.item_01.image_url
$discord.embeds.item_02.title
$discord.embeds.item_02.description
$discord.embeds.item_02.url
$discord.embeds.item_02.field_count
$discord.embeds.item_02.author_name
$discord.embeds.item_02.image_url
$discord.embeds.item_03.title
$discord.embeds.item_03.description
$discord.embeds.item_03.url
$discord.embeds.item_03.field_count
$discord.embeds.item_03.author_name
$discord.embeds.item_03.image_url
$discord.embeds.item_04.title
$discord.embeds.item_04.description
$discord.embeds.item_04.url
$discord.embeds.item_04.field_count
$discord.embeds.item_04.author_name
$discord.embeds.item_04.image_url
$discord.embeds.item_05.title
$discord.embeds.item_05.description
$discord.embeds.item_05.url
$discord.embeds.item_05.field_count
$discord.embeds.item_05.author_name
$discord.embeds.item_05.image_url
$discord.embeds.item_06.title
$discord.embeds.item_06.description
$discord.embeds.item_06.url
$discord.embeds.item_06.field_count
$discord.embeds.item_06.author_name
$discord.embeds.item_06.image_url
$discord.embeds.item_07.title
$discord.embeds.item_07.description
$discord.embeds.item_07.url
$discord.embeds.item_07.field_count
$discord.embeds.item_07.author_name
$discord.embeds.item_07.image_url
$discord.embeds.item_08.title
$discord.embeds.item_08.description
$discord.embeds.item_08.url
$discord.embeds.item_08.field_count
$discord.embeds.item_08.author_name
$discord.embeds.item_08.image_url
$discord.embeds.item_09.title
$discord.embeds.item_09.description
$discord.embeds.item_09.url
$discord.embeds.item_09.field_count
$discord.embeds.item_09.author_name
$discord.embeds.item_09.image_url
$discord.embeds.item_10.title
$discord.embeds.item_10.description
$discord.embeds.item_10.url
$discord.embeds.item_10.field_count
$discord.embeds.item_10.author_name
$discord.embeds.item_10.image_url
$discord.reactions.item_01.emoji
$discord.reactions.item_01.emoji_id
$discord.reactions.item_01.count
$discord.reactions.item_01.me
$discord.reactions.item_02.emoji
$discord.reactions.item_02.emoji_id
$discord.reactions.item_02.count
$discord.reactions.item_02.me
$discord.reactions.item_03.emoji
$discord.reactions.item_03.emoji_id
$discord.reactions.item_03.count
$discord.reactions.item_03.me
$discord.reactions.item_04.emoji
$discord.reactions.item_04.emoji_id
$discord.reactions.item_04.count
$discord.reactions.item_04.me
$discord.reactions.item_05.emoji
$discord.reactions.item_05.emoji_id
$discord.reactions.item_05.count
$discord.reactions.item_05.me
$discord.reactions.item_06.emoji
$discord.reactions.item_06.emoji_id
$discord.reactions.item_06.count
$discord.reactions.item_06.me
$discord.reactions.item_07.emoji
$discord.reactions.item_07.emoji_id
$discord.reactions.item_07.count
$discord.reactions.item_07.me
$discord.reactions.item_08.emoji
$discord.reactions.item_08.emoji_id
$discord.reactions.item_08.count
$discord.reactions.item_08.me
$discord.reactions.item_09.emoji
$discord.reactions.item_09.emoji_id
$discord.reactions.item_09.count
$discord.reactions.item_09.me
$discord.reactions.item_10.emoji
$discord.reactions.item_10.emoji_id
$discord.reactions.item_10.count
$discord.reactions.item_10.me
$discord.reactions.item_11.emoji
$discord.reactions.item_11.emoji_id
$discord.reactions.item_11.count
$discord.reactions.item_11.me
$discord.reactions.item_12.emoji
$discord.reactions.item_12.emoji_id
$discord.reactions.item_12.count
$discord.reactions.item_12.me
$discord.reactions.item_13.emoji
$discord.reactions.item_13.emoji_id
$discord.reactions.item_13.count
$discord.reactions.item_13.me
$discord.reactions.item_14.emoji
$discord.reactions.item_14.emoji_id
$discord.reactions.item_14.count
$discord.reactions.item_14.me
$discord.reactions.item_15.emoji
$discord.reactions.item_15.emoji_id
$discord.reactions.item_15.count
$discord.reactions.item_15.me
$discord.reactions.item_16.emoji
$discord.reactions.item_16.emoji_id
$discord.reactions.item_16.count
$discord.reactions.item_16.me
$discord.reactions.item_17.emoji
$discord.reactions.item_17.emoji_id
$discord.reactions.item_17.count
$discord.reactions.item_17.me
$discord.reactions.item_18.emoji
$discord.reactions.item_18.emoji_id
$discord.reactions.item_18.count
$discord.reactions.item_18.me
$discord.reactions.item_19.emoji
$discord.reactions.item_19.emoji_id
$discord.reactions.item_19.count
$discord.reactions.item_19.me
$discord.reactions.item_20.emoji
$discord.reactions.item_20.emoji_id
$discord.reactions.item_20.count
$discord.reactions.item_20.me
$discord.first_attachment.name
$discord.first_attachment.content_type
$discord.first_attachment.url
$discord.first_attachment.size
$discord.first_attachment.width
$discord.first_attachment.height
$discord.first_embed.title
$discord.first_embed.description
$discord.first_embed.url
$discord.first_embed.field_count
$discord.first_embed.author_name
$discord.first_embed.image_url
rat5.v2 only
{"guild_id":"123456789012345678","channel_key":"general","message_id":"345678901234567890","content":"Hello @Trekkan","attachment_count":1,"embed_count":1,"reaction_count":2}Optional

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Discord Message Deleted

discord.message_deleted

A Discord message was deleted from a configured channel mapping.

Category: discordStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.discord.message_deletedRequired
$event_keystringCatalog event key for the current event.discord.message_deletedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$discord_guild_idstringDiscord guild ID that produced the event.123456789012345678Required
$discord_channel_idstringDiscord channel ID that produced the event.234567890123456789Required
$discord_channel_keystringConfigured RAT channel mapping key.generalRequired
$discord_channel_namestringResolved Discord channel name when available.general-chatOptional
$discord_message_idstringDiscord message identifier.345678901234567890Required
$discord_message_timestampstringDiscord message timestamp in UTC RFC3339 format.2026-06-20T16:00:01ZRequired
$discord_message_edited_atstringUTC RFC3339 edit timestamp when available.2026-06-20T16:01:00ZOptional
$discord_author_idstringDiscord author identifier when available.456789012345678901Optional
$discord_author_namestringDiscord author display name when available.TrekkanOptional
$discord_mentioned_user_idsstringComma-separated mentioned user IDs.456789012345678901Optional
$discord_mentioned_role_idsstringComma-separated mentioned role IDs.567890123456789012Optional
$discord_attachment_countstringNumber of message attachments.0Required
$discord_embed_countstringNumber of message embeds.0Required
$discord_reply_message_idstringReferenced message ID when this is a reply.345678901234567890Optional
$discord_content_rawstringRaw Discord message content.Hello <@456789012345678901>Optional
$chat_contentstringNormalized Discord message content.Hello @TrekkanOptional
$discord
  • $discord.guild_id nullable
  • $discord.channel_id nullable
  • $discord.channel_key nullable
  • $discord.channel_name nullable
  • $discord.message_id nullable
  • $discord.content nullable
  • $discord.content_raw nullable
  • $discord.message_type nullable
  • $discord.edited_at nullable
  • $discord.pinned nullable
  • $discord.tts nullable
  • $discord.mentions_everyone nullable
  • $discord.mentioned_user_ids nullable
  • $discord.mentioned_role_ids nullable
  • $discord.attachment_count nullable
  • $discord.embed_count nullable
  • $discord.reaction_count nullable
  • $discord.author nullable
  • $discord.author.id nullable
  • $discord.author.username nullable
  • $discord.author.global_name nullable
  • $discord.author.is_bot nullable
  • $discord.reply nullable
  • $discord.reply.message_id nullable
  • $discord.reply.channel_id nullable
  • $discord.reply.guild_id nullable
  • $discord.reply.author_id nullable
  • $discord.attachments nullable
  • $discord.attachments.item_01 nullable
  • $discord.attachments.item_01.name nullable
  • $discord.attachments.item_01.content_type nullable
  • $discord.attachments.item_01.url nullable
  • $discord.attachments.item_01.size nullable
  • $discord.attachments.item_01.width nullable
  • $discord.attachments.item_01.height nullable
  • $discord.attachments.item_02 nullable
  • $discord.attachments.item_02.name nullable
  • $discord.attachments.item_02.content_type nullable
  • $discord.attachments.item_02.url nullable
  • $discord.attachments.item_02.size nullable
  • $discord.attachments.item_02.width nullable
  • $discord.attachments.item_02.height nullable
  • $discord.attachments.item_03 nullable
  • $discord.attachments.item_03.name nullable
  • $discord.attachments.item_03.content_type nullable
  • $discord.attachments.item_03.url nullable
  • $discord.attachments.item_03.size nullable
  • $discord.attachments.item_03.width nullable
  • $discord.attachments.item_03.height nullable
  • $discord.attachments.item_04 nullable
  • $discord.attachments.item_04.name nullable
  • $discord.attachments.item_04.content_type nullable
  • $discord.attachments.item_04.url nullable
  • $discord.attachments.item_04.size nullable
  • $discord.attachments.item_04.width nullable
  • $discord.attachments.item_04.height nullable
  • $discord.attachments.item_05 nullable
  • $discord.attachments.item_05.name nullable
  • $discord.attachments.item_05.content_type nullable
  • $discord.attachments.item_05.url nullable
  • $discord.attachments.item_05.size nullable
  • $discord.attachments.item_05.width nullable
  • $discord.attachments.item_05.height nullable
  • $discord.attachments.item_06 nullable
  • $discord.attachments.item_06.name nullable
  • $discord.attachments.item_06.content_type nullable
  • $discord.attachments.item_06.url nullable
  • $discord.attachments.item_06.size nullable
  • $discord.attachments.item_06.width nullable
  • $discord.attachments.item_06.height nullable
  • $discord.attachments.item_07 nullable
  • $discord.attachments.item_07.name nullable
  • $discord.attachments.item_07.content_type nullable
  • $discord.attachments.item_07.url nullable
  • $discord.attachments.item_07.size nullable
  • $discord.attachments.item_07.width nullable
  • $discord.attachments.item_07.height nullable
  • $discord.attachments.item_08 nullable
  • $discord.attachments.item_08.name nullable
  • $discord.attachments.item_08.content_type nullable
  • $discord.attachments.item_08.url nullable
  • $discord.attachments.item_08.size nullable
  • $discord.attachments.item_08.width nullable
  • $discord.attachments.item_08.height nullable
  • $discord.attachments.item_09 nullable
  • $discord.attachments.item_09.name nullable
  • $discord.attachments.item_09.content_type nullable
  • $discord.attachments.item_09.url nullable
  • $discord.attachments.item_09.size nullable
  • $discord.attachments.item_09.width nullable
  • $discord.attachments.item_09.height nullable
  • $discord.attachments.item_10 nullable
  • $discord.attachments.item_10.name nullable
  • $discord.attachments.item_10.content_type nullable
  • $discord.attachments.item_10.url nullable
  • $discord.attachments.item_10.size nullable
  • $discord.attachments.item_10.width nullable
  • $discord.attachments.item_10.height nullable
  • $discord.embeds nullable
  • $discord.embeds.item_01 nullable
  • $discord.embeds.item_01.title nullable
  • $discord.embeds.item_01.description nullable
  • $discord.embeds.item_01.url nullable
  • $discord.embeds.item_01.field_count nullable
  • $discord.embeds.item_01.author_name nullable
  • $discord.embeds.item_01.image_url nullable
  • $discord.embeds.item_02 nullable
  • $discord.embeds.item_02.title nullable
  • $discord.embeds.item_02.description nullable
  • $discord.embeds.item_02.url nullable
  • $discord.embeds.item_02.field_count nullable
  • $discord.embeds.item_02.author_name nullable
  • $discord.embeds.item_02.image_url nullable
  • $discord.embeds.item_03 nullable
  • $discord.embeds.item_03.title nullable
  • $discord.embeds.item_03.description nullable
  • $discord.embeds.item_03.url nullable
  • $discord.embeds.item_03.field_count nullable
  • $discord.embeds.item_03.author_name nullable
  • $discord.embeds.item_03.image_url nullable
  • $discord.embeds.item_04 nullable
  • $discord.embeds.item_04.title nullable
  • $discord.embeds.item_04.description nullable
  • $discord.embeds.item_04.url nullable
  • $discord.embeds.item_04.field_count nullable
  • $discord.embeds.item_04.author_name nullable
  • $discord.embeds.item_04.image_url nullable
  • $discord.embeds.item_05 nullable
  • $discord.embeds.item_05.title nullable
  • $discord.embeds.item_05.description nullable
  • $discord.embeds.item_05.url nullable
  • $discord.embeds.item_05.field_count nullable
  • $discord.embeds.item_05.author_name nullable
  • $discord.embeds.item_05.image_url nullable
  • $discord.embeds.item_06 nullable
  • $discord.embeds.item_06.title nullable
  • $discord.embeds.item_06.description nullable
  • $discord.embeds.item_06.url nullable
  • $discord.embeds.item_06.field_count nullable
  • $discord.embeds.item_06.author_name nullable
  • $discord.embeds.item_06.image_url nullable
  • $discord.embeds.item_07 nullable
  • $discord.embeds.item_07.title nullable
  • $discord.embeds.item_07.description nullable
  • $discord.embeds.item_07.url nullable
  • $discord.embeds.item_07.field_count nullable
  • $discord.embeds.item_07.author_name nullable
  • $discord.embeds.item_07.image_url nullable
  • $discord.embeds.item_08 nullable
  • $discord.embeds.item_08.title nullable
  • $discord.embeds.item_08.description nullable
  • $discord.embeds.item_08.url nullable
  • $discord.embeds.item_08.field_count nullable
  • $discord.embeds.item_08.author_name nullable
  • $discord.embeds.item_08.image_url nullable
  • $discord.embeds.item_09 nullable
  • $discord.embeds.item_09.title nullable
  • $discord.embeds.item_09.description nullable
  • $discord.embeds.item_09.url nullable
  • $discord.embeds.item_09.field_count nullable
  • $discord.embeds.item_09.author_name nullable
  • $discord.embeds.item_09.image_url nullable
  • $discord.embeds.item_10 nullable
  • $discord.embeds.item_10.title nullable
  • $discord.embeds.item_10.description nullable
  • $discord.embeds.item_10.url nullable
  • $discord.embeds.item_10.field_count nullable
  • $discord.embeds.item_10.author_name nullable
  • $discord.embeds.item_10.image_url nullable
  • $discord.reactions nullable
  • $discord.reactions.item_01 nullable
  • $discord.reactions.item_01.emoji nullable
  • $discord.reactions.item_01.emoji_id nullable
  • $discord.reactions.item_01.count nullable
  • $discord.reactions.item_01.me nullable
  • $discord.reactions.item_02 nullable
  • $discord.reactions.item_02.emoji nullable
  • $discord.reactions.item_02.emoji_id nullable
  • $discord.reactions.item_02.count nullable
  • $discord.reactions.item_02.me nullable
  • $discord.reactions.item_03 nullable
  • $discord.reactions.item_03.emoji nullable
  • $discord.reactions.item_03.emoji_id nullable
  • $discord.reactions.item_03.count nullable
  • $discord.reactions.item_03.me nullable
  • $discord.reactions.item_04 nullable
  • $discord.reactions.item_04.emoji nullable
  • $discord.reactions.item_04.emoji_id nullable
  • $discord.reactions.item_04.count nullable
  • $discord.reactions.item_04.me nullable
  • $discord.reactions.item_05 nullable
  • $discord.reactions.item_05.emoji nullable
  • $discord.reactions.item_05.emoji_id nullable
  • $discord.reactions.item_05.count nullable
  • $discord.reactions.item_05.me nullable
  • $discord.reactions.item_06 nullable
  • $discord.reactions.item_06.emoji nullable
  • $discord.reactions.item_06.emoji_id nullable
  • $discord.reactions.item_06.count nullable
  • $discord.reactions.item_06.me nullable
  • $discord.reactions.item_07 nullable
  • $discord.reactions.item_07.emoji nullable
  • $discord.reactions.item_07.emoji_id nullable
  • $discord.reactions.item_07.count nullable
  • $discord.reactions.item_07.me nullable
  • $discord.reactions.item_08 nullable
  • $discord.reactions.item_08.emoji nullable
  • $discord.reactions.item_08.emoji_id nullable
  • $discord.reactions.item_08.count nullable
  • $discord.reactions.item_08.me nullable
  • $discord.reactions.item_09 nullable
  • $discord.reactions.item_09.emoji nullable
  • $discord.reactions.item_09.emoji_id nullable
  • $discord.reactions.item_09.count nullable
  • $discord.reactions.item_09.me nullable
  • $discord.reactions.item_10 nullable
  • $discord.reactions.item_10.emoji nullable
  • $discord.reactions.item_10.emoji_id nullable
  • $discord.reactions.item_10.count nullable
  • $discord.reactions.item_10.me nullable
  • $discord.reactions.item_11 nullable
  • $discord.reactions.item_11.emoji nullable
  • $discord.reactions.item_11.emoji_id nullable
  • $discord.reactions.item_11.count nullable
  • $discord.reactions.item_11.me nullable
  • $discord.reactions.item_12 nullable
  • $discord.reactions.item_12.emoji nullable
  • $discord.reactions.item_12.emoji_id nullable
  • $discord.reactions.item_12.count nullable
  • $discord.reactions.item_12.me nullable
  • $discord.reactions.item_13 nullable
  • $discord.reactions.item_13.emoji nullable
  • $discord.reactions.item_13.emoji_id nullable
  • $discord.reactions.item_13.count nullable
  • $discord.reactions.item_13.me nullable
  • $discord.reactions.item_14 nullable
  • $discord.reactions.item_14.emoji nullable
  • $discord.reactions.item_14.emoji_id nullable
  • $discord.reactions.item_14.count nullable
  • $discord.reactions.item_14.me nullable
  • $discord.reactions.item_15 nullable
  • $discord.reactions.item_15.emoji nullable
  • $discord.reactions.item_15.emoji_id nullable
  • $discord.reactions.item_15.count nullable
  • $discord.reactions.item_15.me nullable
  • $discord.reactions.item_16 nullable
  • $discord.reactions.item_16.emoji nullable
  • $discord.reactions.item_16.emoji_id nullable
  • $discord.reactions.item_16.count nullable
  • $discord.reactions.item_16.me nullable
  • $discord.reactions.item_17 nullable
  • $discord.reactions.item_17.emoji nullable
  • $discord.reactions.item_17.emoji_id nullable
  • $discord.reactions.item_17.count nullable
  • $discord.reactions.item_17.me nullable
  • $discord.reactions.item_18 nullable
  • $discord.reactions.item_18.emoji nullable
  • $discord.reactions.item_18.emoji_id nullable
  • $discord.reactions.item_18.count nullable
  • $discord.reactions.item_18.me nullable
  • $discord.reactions.item_19 nullable
  • $discord.reactions.item_19.emoji nullable
  • $discord.reactions.item_19.emoji_id nullable
  • $discord.reactions.item_19.count nullable
  • $discord.reactions.item_19.me nullable
  • $discord.reactions.item_20 nullable
  • $discord.reactions.item_20.emoji nullable
  • $discord.reactions.item_20.emoji_id nullable
  • $discord.reactions.item_20.count nullable
  • $discord.reactions.item_20.me nullable
  • $discord.first_attachment nullable
  • $discord.first_attachment.name nullable
  • $discord.first_attachment.content_type nullable
  • $discord.first_attachment.url nullable
  • $discord.first_attachment.size nullable
  • $discord.first_attachment.width nullable
  • $discord.first_attachment.height nullable
  • $discord.first_embed nullable
  • $discord.first_embed.title nullable
  • $discord.first_embed.description nullable
  • $discord.first_embed.url nullable
  • $discord.first_embed.field_count nullable
  • $discord.first_embed.author_name nullable
  • $discord.first_embed.image_url nullable
object
Nullable
Structured Discord message metadata. Expand its child properties for message, author, reply, attachment, embed, and reaction values.
$discord.guild_id
$discord.channel_id
$discord.channel_key
$discord.channel_name
$discord.message_id
$discord.content
$discord.content_raw
$discord.message_type
$discord.edited_at
$discord.pinned
$discord.tts
$discord.mentions_everyone
$discord.mentioned_user_ids
$discord.mentioned_role_ids
$discord.attachment_count
$discord.embed_count
$discord.reaction_count
$discord.author.id
$discord.author.username
$discord.author.global_name
$discord.author.is_bot
$discord.reply.message_id
$discord.reply.channel_id
$discord.reply.guild_id
$discord.reply.author_id
$discord.attachments.item_01.name
$discord.attachments.item_01.content_type
$discord.attachments.item_01.url
$discord.attachments.item_01.size
$discord.attachments.item_01.width
$discord.attachments.item_01.height
$discord.attachments.item_02.name
$discord.attachments.item_02.content_type
$discord.attachments.item_02.url
$discord.attachments.item_02.size
$discord.attachments.item_02.width
$discord.attachments.item_02.height
$discord.attachments.item_03.name
$discord.attachments.item_03.content_type
$discord.attachments.item_03.url
$discord.attachments.item_03.size
$discord.attachments.item_03.width
$discord.attachments.item_03.height
$discord.attachments.item_04.name
$discord.attachments.item_04.content_type
$discord.attachments.item_04.url
$discord.attachments.item_04.size
$discord.attachments.item_04.width
$discord.attachments.item_04.height
$discord.attachments.item_05.name
$discord.attachments.item_05.content_type
$discord.attachments.item_05.url
$discord.attachments.item_05.size
$discord.attachments.item_05.width
$discord.attachments.item_05.height
$discord.attachments.item_06.name
$discord.attachments.item_06.content_type
$discord.attachments.item_06.url
$discord.attachments.item_06.size
$discord.attachments.item_06.width
$discord.attachments.item_06.height
$discord.attachments.item_07.name
$discord.attachments.item_07.content_type
$discord.attachments.item_07.url
$discord.attachments.item_07.size
$discord.attachments.item_07.width
$discord.attachments.item_07.height
$discord.attachments.item_08.name
$discord.attachments.item_08.content_type
$discord.attachments.item_08.url
$discord.attachments.item_08.size
$discord.attachments.item_08.width
$discord.attachments.item_08.height
$discord.attachments.item_09.name
$discord.attachments.item_09.content_type
$discord.attachments.item_09.url
$discord.attachments.item_09.size
$discord.attachments.item_09.width
$discord.attachments.item_09.height
$discord.attachments.item_10.name
$discord.attachments.item_10.content_type
$discord.attachments.item_10.url
$discord.attachments.item_10.size
$discord.attachments.item_10.width
$discord.attachments.item_10.height
$discord.embeds.item_01.title
$discord.embeds.item_01.description
$discord.embeds.item_01.url
$discord.embeds.item_01.field_count
$discord.embeds.item_01.author_name
$discord.embeds.item_01.image_url
$discord.embeds.item_02.title
$discord.embeds.item_02.description
$discord.embeds.item_02.url
$discord.embeds.item_02.field_count
$discord.embeds.item_02.author_name
$discord.embeds.item_02.image_url
$discord.embeds.item_03.title
$discord.embeds.item_03.description
$discord.embeds.item_03.url
$discord.embeds.item_03.field_count
$discord.embeds.item_03.author_name
$discord.embeds.item_03.image_url
$discord.embeds.item_04.title
$discord.embeds.item_04.description
$discord.embeds.item_04.url
$discord.embeds.item_04.field_count
$discord.embeds.item_04.author_name
$discord.embeds.item_04.image_url
$discord.embeds.item_05.title
$discord.embeds.item_05.description
$discord.embeds.item_05.url
$discord.embeds.item_05.field_count
$discord.embeds.item_05.author_name
$discord.embeds.item_05.image_url
$discord.embeds.item_06.title
$discord.embeds.item_06.description
$discord.embeds.item_06.url
$discord.embeds.item_06.field_count
$discord.embeds.item_06.author_name
$discord.embeds.item_06.image_url
$discord.embeds.item_07.title
$discord.embeds.item_07.description
$discord.embeds.item_07.url
$discord.embeds.item_07.field_count
$discord.embeds.item_07.author_name
$discord.embeds.item_07.image_url
$discord.embeds.item_08.title
$discord.embeds.item_08.description
$discord.embeds.item_08.url
$discord.embeds.item_08.field_count
$discord.embeds.item_08.author_name
$discord.embeds.item_08.image_url
$discord.embeds.item_09.title
$discord.embeds.item_09.description
$discord.embeds.item_09.url
$discord.embeds.item_09.field_count
$discord.embeds.item_09.author_name
$discord.embeds.item_09.image_url
$discord.embeds.item_10.title
$discord.embeds.item_10.description
$discord.embeds.item_10.url
$discord.embeds.item_10.field_count
$discord.embeds.item_10.author_name
$discord.embeds.item_10.image_url
$discord.reactions.item_01.emoji
$discord.reactions.item_01.emoji_id
$discord.reactions.item_01.count
$discord.reactions.item_01.me
$discord.reactions.item_02.emoji
$discord.reactions.item_02.emoji_id
$discord.reactions.item_02.count
$discord.reactions.item_02.me
$discord.reactions.item_03.emoji
$discord.reactions.item_03.emoji_id
$discord.reactions.item_03.count
$discord.reactions.item_03.me
$discord.reactions.item_04.emoji
$discord.reactions.item_04.emoji_id
$discord.reactions.item_04.count
$discord.reactions.item_04.me
$discord.reactions.item_05.emoji
$discord.reactions.item_05.emoji_id
$discord.reactions.item_05.count
$discord.reactions.item_05.me
$discord.reactions.item_06.emoji
$discord.reactions.item_06.emoji_id
$discord.reactions.item_06.count
$discord.reactions.item_06.me
$discord.reactions.item_07.emoji
$discord.reactions.item_07.emoji_id
$discord.reactions.item_07.count
$discord.reactions.item_07.me
$discord.reactions.item_08.emoji
$discord.reactions.item_08.emoji_id
$discord.reactions.item_08.count
$discord.reactions.item_08.me
$discord.reactions.item_09.emoji
$discord.reactions.item_09.emoji_id
$discord.reactions.item_09.count
$discord.reactions.item_09.me
$discord.reactions.item_10.emoji
$discord.reactions.item_10.emoji_id
$discord.reactions.item_10.count
$discord.reactions.item_10.me
$discord.reactions.item_11.emoji
$discord.reactions.item_11.emoji_id
$discord.reactions.item_11.count
$discord.reactions.item_11.me
$discord.reactions.item_12.emoji
$discord.reactions.item_12.emoji_id
$discord.reactions.item_12.count
$discord.reactions.item_12.me
$discord.reactions.item_13.emoji
$discord.reactions.item_13.emoji_id
$discord.reactions.item_13.count
$discord.reactions.item_13.me
$discord.reactions.item_14.emoji
$discord.reactions.item_14.emoji_id
$discord.reactions.item_14.count
$discord.reactions.item_14.me
$discord.reactions.item_15.emoji
$discord.reactions.item_15.emoji_id
$discord.reactions.item_15.count
$discord.reactions.item_15.me
$discord.reactions.item_16.emoji
$discord.reactions.item_16.emoji_id
$discord.reactions.item_16.count
$discord.reactions.item_16.me
$discord.reactions.item_17.emoji
$discord.reactions.item_17.emoji_id
$discord.reactions.item_17.count
$discord.reactions.item_17.me
$discord.reactions.item_18.emoji
$discord.reactions.item_18.emoji_id
$discord.reactions.item_18.count
$discord.reactions.item_18.me
$discord.reactions.item_19.emoji
$discord.reactions.item_19.emoji_id
$discord.reactions.item_19.count
$discord.reactions.item_19.me
$discord.reactions.item_20.emoji
$discord.reactions.item_20.emoji_id
$discord.reactions.item_20.count
$discord.reactions.item_20.me
$discord.first_attachment.name
$discord.first_attachment.content_type
$discord.first_attachment.url
$discord.first_attachment.size
$discord.first_attachment.width
$discord.first_attachment.height
$discord.first_embed.title
$discord.first_embed.description
$discord.first_embed.url
$discord.first_embed.field_count
$discord.first_embed.author_name
$discord.first_embed.image_url
rat5.v2 only
{"guild_id":"123456789012345678","channel_key":"general","message_id":"345678901234567890","content":"Hello @Trekkan","attachment_count":1,"embed_count":1,"reaction_count":2}Optional

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Discord Reaction Added

discord.reaction_added

A reaction was added to a Discord message in a configured channel mapping.

Category: discordStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.discord.reaction_addedRequired
$event_keystringCatalog event key for the current event.discord.reaction_addedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$discord_guild_idstringDiscord guild ID that produced the event.123456789012345678Required
$discord_channel_idstringDiscord channel ID that produced the event.234567890123456789Required
$discord_channel_keystringConfigured RAT channel mapping key.generalRequired
$discord_message_idstringDiscord message identifier.345678901234567890Required
$discord_reaction_user_idstringDiscord user ID that changed the reaction.456789012345678901Required
$discord_reaction_emojistringDiscord's stored representation of the emoji.👍Required
$discord_reaction_emoji_idstringCustom Discord emoji ID when applicable.567890123456789012Optional

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Discord Reaction Removed

discord.reaction_removed

A reaction was removed from a Discord message in a configured channel mapping.

Category: discordStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.discord.reaction_removedRequired
$event_keystringCatalog event key for the current event.discord.reaction_removedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$discord_guild_idstringDiscord guild ID that produced the event.123456789012345678Required
$discord_channel_idstringDiscord channel ID that produced the event.234567890123456789Required
$discord_channel_keystringConfigured RAT channel mapping key.generalRequired
$discord_message_idstringDiscord message identifier.345678901234567890Required
$discord_reaction_user_idstringDiscord user ID that changed the reaction.456789012345678901Required
$discord_reaction_emojistringDiscord's stored representation of the emoji.👍Required
$discord_reaction_emoji_idstringCustom Discord emoji ID when applicable.567890123456789012Optional

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Player Joined

player.joined

A player joined the game according to telnet output.

Category: playerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.joinedRequired
$event_keystringCatalog event key for the current event.player.joinedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$player.namestringDisplay name of the player who joined.TrekkanRequired
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Join tracker

Records the latest player join in shared state and writes a friendly log line.

set global.last_joined_player = $player.name
set global.last_joined_at = $current_datetime
log(format("Player joined: {0}", $player.name))
Back to event catalog

Player Left

player.left

A player left the game according to telnet output.

Category: playerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.leftRequired
$event_keystringCatalog event key for the current event.player.leftRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$player.namestringDisplay name of the player who left.TrekkanRequired
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Departure tracker

Records the latest player departure and logs the event.

set global.last_left_player = $player.name
set global.last_left_at = $current_datetime
log(format("Player left: {0}", $player.name))
Back to event catalog

Entity Killed

entity.killed

An entity was killed according to telnet output, including the killed entity and the killer identity details.

Category: combatStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.entity.killedRequired
$event_keystringCatalog event key for the current event.entity.killedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-24T19:40:54ZRequired
$killed_entity_namestringThe name of the entity that was killed.zombieBusinessManRequired
$killed_entity_idstringThe in-game entity ID of the entity that was killed.230Required
$killed_player_namestringThe matched player display name when the killed entity matches a known player by entity ID and name.AvariceOptional
$killed_player_idstringThe RAT player ID when the killed entity matches a known player.player-2Optional
$killed_platform_idstringThe killed player's platform ID when the killed entity matches a known player.Steam_76561197970441158Optional
$killed_cross_platform_idstringThe killed player's cross-platform ID when available for a matched player.EOS_11111111111111111111111111111111Optional
$killer_namestringThe raw killer name parsed from the telnet event.TrekkanRequired
$killer_entity_idstringThe in-game entity ID of the killer.171Required
$killer_player_namestringThe matched player display name when the killer matches a known player by entity ID and name.TrekkanOptional
$killer_player_idstringThe RAT player ID when the killer matches a known player.player-1Optional
$killer_platform_idstringThe killer's platform ID when the killer matches a known player.Steam_76561197970441157Optional
$killer_cross_platform_idstringThe killer's cross-platform ID when available for a matched player.EOS_00000000000000000000000000000000Optional

Templates

Killer tracker

Tracks the latest resolved kill and logs the raw kill line.

set global.last_killed_entity = $killed_entity_name
set global.last_kill_at = $current_datetime

if not empty($killed_player_name) then
  set global.last_killed_entity = $killed_player_name
end

if not empty($killer_player_name) then
  set global.last_killer_name = $killer_player_name
else
  set global.last_killer_name = $killer_name
end

log(format("{0} killed by {1}", global.last_killed_entity, global.last_killer_name))
Back to event catalog

Server Unresponsive

server.unresponsive

The running game server stopped producing valid telnet command responses.

Category: serverStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.server.unresponsiveRequired
$event_keystringCatalog event key for the current event.server.unresponsiveRequired
$occurred_at_utcstringUTC timestamp when RAT declared the server unresponsive.2026-08-23T20:00:45ZRequired
$failure_countstringNumber of consecutive health failures observed.3Required
$failure_reasonstringStable reason code for the latest health failure.response_timeoutRequired
$failure_detailstringHuman-readable detail for the latest health failure.context deadline exceededRequired
$last_responsive_at_utcstringUTC timestamp of the last valid telnet response.2026-08-23T19:59:55ZOptional
$first_failure_at_utcstringUTC timestamp of the first failure in this incident.2026-08-23T20:00:05ZRequired
$unresponsive_since_utcstringUTC timestamp when RAT declared the server unresponsive.2026-08-23T20:00:45ZRequired
$probe_interval_secondsstringSeconds between active telnet health probes.20Required
$probe_timeout_secondsstringSeconds allowed for a telnet health probe response.5Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Server Responsive

server.responsive

The game server produced a valid telnet response after being declared unresponsive.

Category: serverStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.server.responsiveRequired
$event_keystringCatalog event key for the current event.server.responsiveRequired
$occurred_at_utcstringUTC timestamp when RAT observed recovery.2026-08-23T20:01:05ZRequired
$responsive_at_utcstringUTC timestamp of the response that established recovery.2026-08-23T20:01:05ZRequired
$unresponsive_since_utcstringUTC timestamp when RAT declared the server unresponsive.2026-08-23T20:00:45ZRequired
$first_failure_at_utcstringUTC timestamp of the first failure in the recovered incident.2026-08-23T20:00:05ZRequired
$outage_duration_secondsstringSeconds from the first health failure until recovery.60Required
$failed_probe_countstringTotal health failures recorded before recovery.3Required
$last_health_failure_reasonstringStable reason code for the last failure before recovery.response_timeoutRequired

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Text Match

text.match

Fires for every raw telnet console line, providing the unmodified line as a token. Use script conditions to filter for lines of interest.

Category: telnetStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.text.matchRequired
$event_keystringCatalog event key for the current event.text.matchRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$raw_linestringThe unmodified raw telnet console line that triggered this event.2026-06-20T16:00:01 12345.678 INF StartGame doneRequired

Templates

Pattern filter

Matches lines containing a specific phrase and logs them.

if contains($raw_line, "INF StartGame") then
  log(format("Game started: {0}", $raw_line))
end
Back to event catalog

Backup Started

backup.started

A backup operation has started.

Category: BackupsStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.backup.startedRequired
$event_keystringCatalog event key for the current event.backup.startedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-08-24T18:00:00ZRequired
$backup_filenamestring
Nullable
Backup artifact filename.MyWorld-2026-08-24-180000.zipRequired
$backup_destinationstring
Nullable
Backup destination paths.D:\BackupsRequired
$backup_start_timestring
Nullable
UTC timestamp when the backup started.2026-08-24T18:00:00ZRequired
$backup_completion_timestring
Nullable
UTC timestamp when the backup completed or failed.2026-08-24T18:02:30ZRequired
$backup_durationnumber
Nullable
Backup duration in seconds.150.25Required
$backup_sizenumber
Nullable
Backup artifact size in bytes.1073741824Required
$backup_compression_typestring
Nullable
Compression type used for the backup, or none.zipRequired
$backup_error_messagestring
Nullable
Failure message when the backup did not complete.destination disk is fullRequired
$backup_retained_countnumber
Nullable
Number of retained save backups after the operation.5Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Backup Completed

backup.completed

A backup operation completed successfully.

Category: BackupsStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.backup.completedRequired
$event_keystringCatalog event key for the current event.backup.completedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-08-24T18:00:00ZRequired
$backup_filenamestring
Nullable
Backup artifact filename.MyWorld-2026-08-24-180000.zipRequired
$backup_destinationstring
Nullable
Backup destination paths.D:\BackupsRequired
$backup_start_timestring
Nullable
UTC timestamp when the backup started.2026-08-24T18:00:00ZRequired
$backup_completion_timestring
Nullable
UTC timestamp when the backup completed or failed.2026-08-24T18:02:30ZRequired
$backup_durationnumber
Nullable
Backup duration in seconds.150.25Required
$backup_sizenumber
Nullable
Backup artifact size in bytes.1073741824Required
$backup_compression_typestring
Nullable
Compression type used for the backup, or none.zipRequired
$backup_error_messagestring
Nullable
Failure message when the backup did not complete.destination disk is fullRequired
$backup_retained_countnumber
Nullable
Number of retained save backups after the operation.5Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Backup Failed

backup.failed

A backup operation failed.

Category: BackupsStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.backup.failedRequired
$event_keystringCatalog event key for the current event.backup.failedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-08-24T18:00:00ZRequired
$backup_filenamestring
Nullable
Backup artifact filename.MyWorld-2026-08-24-180000.zipRequired
$backup_destinationstring
Nullable
Backup destination paths.D:\BackupsRequired
$backup_start_timestring
Nullable
UTC timestamp when the backup started.2026-08-24T18:00:00ZRequired
$backup_completion_timestring
Nullable
UTC timestamp when the backup completed or failed.2026-08-24T18:02:30ZRequired
$backup_durationnumber
Nullable
Backup duration in seconds.150.25Required
$backup_sizenumber
Nullable
Backup artifact size in bytes.1073741824Required
$backup_compression_typestring
Nullable
Compression type used for the backup, or none.zipRequired
$backup_error_messagestring
Nullable
Failure message when the backup did not complete.destination disk is fullRequired
$backup_retained_countnumber
Nullable
Number of retained save backups after the operation.5Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Server Ready

server.ready

The game server is ready and accepting player connections.

Category: ServerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.server.readyRequired
$event_keystringCatalog event key for the current event.server.readyRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-08-24T18:30:00ZRequired
$server_statestring
Nullable
Game server lifecycle state for this event.runningRequired
$server_process_idnumber
Nullable
Operating-system process ID for the game server.12345Required
$server_started_atstring
Nullable
UTC timestamp when the current game server process started.2026-08-24T18:00:00ZRequired
$server_ready_atstring
Nullable
UTC timestamp when the game server became ready for player connections.2026-08-24T18:02:00ZRequired
$server_stopped_atstring
Nullable
UTC timestamp when the game server stopped.2026-08-24T20:00:00ZRequired
$server_uptimestring
Nullable
Human-readable game server uptime at this lifecycle event.2h 0mRequired
$server_restart_reasonstring
Nullable
Reason supplied for the restart when available.scheduled maintenanceRequired
$server_restart_delaynumber
Nullable
Delay before restart in seconds when applicable.30Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Server Restart

server.restarting

The game server is restarting.

Category: ServerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.server.restartingRequired
$event_keystringCatalog event key for the current event.server.restartingRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-08-24T18:30:00ZRequired
$server_statestring
Nullable
Game server lifecycle state for this event.runningRequired
$server_process_idnumber
Nullable
Operating-system process ID for the game server.12345Required
$server_started_atstring
Nullable
UTC timestamp when the current game server process started.2026-08-24T18:00:00ZRequired
$server_ready_atstring
Nullable
UTC timestamp when the game server became ready for player connections.2026-08-24T18:02:00ZRequired
$server_stopped_atstring
Nullable
UTC timestamp when the game server stopped.2026-08-24T20:00:00ZRequired
$server_uptimestring
Nullable
Human-readable game server uptime at this lifecycle event.2h 0mRequired
$server_restart_reasonstring
Nullable
Reason supplied for the restart when available.scheduled maintenanceRequired
$server_restart_delaynumber
Nullable
Delay before restart in seconds when applicable.30Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Server Start

server.started

The game server process has started.

Category: ServerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.server.startedRequired
$event_keystringCatalog event key for the current event.server.startedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-08-24T18:30:00ZRequired
$server_statestring
Nullable
Game server lifecycle state for this event.runningRequired
$server_process_idnumber
Nullable
Operating-system process ID for the game server.12345Required
$server_started_atstring
Nullable
UTC timestamp when the current game server process started.2026-08-24T18:00:00ZRequired
$server_ready_atstring
Nullable
UTC timestamp when the game server became ready for player connections.2026-08-24T18:02:00ZRequired
$server_stopped_atstring
Nullable
UTC timestamp when the game server stopped.2026-08-24T20:00:00ZRequired
$server_uptimestring
Nullable
Human-readable game server uptime at this lifecycle event.2h 0mRequired
$server_restart_reasonstring
Nullable
Reason supplied for the restart when available.scheduled maintenanceRequired
$server_restart_delaynumber
Nullable
Delay before restart in seconds when applicable.30Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

Server Stop

server.stopped

The game server process has stopped.

Category: ServerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.server.stoppedRequired
$event_keystringCatalog event key for the current event.server.stoppedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-08-24T18:30:00ZRequired
$server_statestring
Nullable
Game server lifecycle state for this event.runningRequired
$server_process_idnumber
Nullable
Operating-system process ID for the game server.12345Required
$server_started_atstring
Nullable
UTC timestamp when the current game server process started.2026-08-24T18:00:00ZRequired
$server_ready_atstring
Nullable
UTC timestamp when the game server became ready for player connections.2026-08-24T18:02:00ZRequired
$server_stopped_atstring
Nullable
UTC timestamp when the game server stopped.2026-08-24T20:00:00ZRequired
$server_uptimestring
Nullable
Human-readable game server uptime at this lifecycle event.2h 0mRequired
$server_restart_reasonstring
Nullable
Reason supplied for the restart when available.scheduled maintenanceRequired
$server_restart_delaynumber
Nullable
Delay before restart in seconds when applicable.30Required

Templates

No template is shipped for this event type. Start with a focused condition and one observable action such as log(...).

Back to event catalog

New Player Joined

player.new_joined

A player joined the game and RAT created their player record for the first time.

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.new_joinedRequired
$event_keystringCatalog event key for the current event.player.new_joinedRequired
$occurred_at_utcstringUTC timestamp for when the player joined.2026-08-24T20:00:00ZRequired
$player.namestringDisplay name of the new player who joined.TrekkanRequired
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Welcome new player

Logs a welcome message for a player joining for the first time.

log(format("Welcome, {0}!", $player.name))
Back to event catalog

Bloodmoon Started

bloodmoon.started

A blood moon has started for the reported in-game day.

Category: BloodmoonStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.bloodmoon.startedRequired
$event_keystringCatalog event key for the current event.bloodmoon.startedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$bloodmoon_daystringThe in-game day reported in the blood moon start line.7Required

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Bloodmoon Ended

bloodmoon.ended

A blood moon has ended.

Category: BloodmoonStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.bloodmoon.endedRequired
$event_keystringCatalog event key for the current event.bloodmoon.endedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Player Backpack Location

custom.backpack_location

A player's backpack location

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.custom.backpack_locationRequired
$event_keystringCatalog event key for the current event.custom.backpack_locationRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Preparing Quit

custom.preparing_quit

The server is shutting down

Category: Game ServerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.custom.preparing_quitRequired
$event_keystringCatalog event key for the current event.custom.preparing_quitRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Game Server Stats

custom.server_stats

Get the server stats like fps, heap, max, chunks, etc.

Category: Game ServerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.custom.server_statsRequired
$event_keystringCatalog event key for the current event.custom.server_statsRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$inf_timestringAuto-detected value parsed from the "INF Time" field in the pasted telnet line.1556.95mOptional
$fpsstringAuto-detected value parsed from the "FPS" field in the pasted telnet line.19.49Optional
$heapstringAuto-detected value parsed from the "Heap" field in the pasted telnet line.1112.5MBOptional
$maxstringAuto-detected value parsed from the "Max" field in the pasted telnet line.1886.5MBOptional
$chunksstringAuto-detected value parsed from the "Chunks" field in the pasted telnet line.14Optional
$cgostringAuto-detected value parsed from the "CGO" field in the pasted telnet line.0Optional
$plystringAuto-detected value parsed from the "Ply" field in the pasted telnet line.0Optional
$zomstringAuto-detected value parsed from the "Zom" field in the pasted telnet line.0Optional
$entstringAuto-detected value parsed from the "Ent" field in the pasted telnet line.0Optional
$itemsstringAuto-detected value parsed from the "Items" field in the pasted telnet line.0Optional
$costringAuto-detected value parsed from the "CO" field in the pasted telnet line.0Optional
$rssstringAuto-detected value parsed from the "RSS" field in the pasted telnet line.708.1MBOptional

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Start Game

custom.start_game

Fires when the game server starts up and is ready for players to join.

Category: Game ServerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.custom.start_gameRequired
$event_keystringCatalog event key for the current event.custom.start_gameRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

#
Back to event catalog

Player Connected

player.connected

A player has connected to the game server, but not yet spawned into the game world.

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.connectedRequired
$event_keystringCatalog event key for the current event.player.connectedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$entityidstringAuto-detected value parsed from the "entityid" field in the pasted telnet line.171Optional
$namestringAuto-detected value parsed from the "name" field in the pasted telnet line.TrekkanOptional
$pltfmidstringAuto-detected value parsed from the "pltfmid" field in the pasted telnet line.Steam_76561197970441157Optional
$crossidstringAuto-detected value parsed from the "crossid" field in the pasted telnet line.EOS_000271f41dc6415ebc9a49f6dc33edbfOptional
$steam_ownerstringAuto-detected value parsed from the "steamOwner" field in the pasted telnet line.Steam_76561197970441157Optional
$ipstringAuto-detected value parsed from the "ip" field in the pasted telnet line.127.0.0.1Optional
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Player Died

player.died

A player died

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.diedRequired
$event_keystringCatalog event key for the current event.player.diedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$inf_gmsgstringAuto-detected value parsed from the "INF GMSG" field in the pasted telnet line.PlayerOptional
$playerstringLegacy scalar player name parsed from the telnet line.
Deprecated; use $player_name
TrekkanOptional
$player_namestringPlayer name parsed from the telnet line.TrekkanOptional

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Player Disconnected

player.disconnected

A player disconnected from the game server

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.disconnectedRequired
$event_keystringCatalog event key for the current event.player.disconnectedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$inf_player_disconnectedstringAuto-detected value parsed from the "INF Player disconnected" field in the pasted telnet line.EntityID=171Optional
$pltfm_idstringAuto-detected value parsed from the "PltfmId" field in the pasted telnet line.Steam_76561197970441157Optional
$cross_idstringAuto-detected value parsed from the "CrossId" field in the pasted telnet line.EOS_000271f41dc6415ebc9a49f6dc33edbfOptional
$owner_idstringAuto-detected value parsed from the "OwnerID" field in the pasted telnet line.Steam_76561197970441157Optional
$player.namestringAuto-detected value parsed from the "PlayerName" field in the pasted telnet line.TrekkanOptional
$client_numberstringAuto-detected value parsed from the "ClientNumber" field in the pasted telnet line.1Optional
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Player Kicked

player.kicked

A player was kicked from the game server, including the kick kind, optional message, and player identity details reported by telnet.

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.kickedRequired
$event_keystringCatalog event key for the current event.player.kickedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-07-05T22:59:59ZRequired
$kick_typestringKick type reported in the telnet line before the kick message.KickOptional
$kick_messagestringKick message reported in the telnet line when present.You suck at everything!Optional
$entity_idstringAuto-detected value parsed from the "EntityID" field in the pasted telnet line.171Optional
$pltfm_idstringAuto-detected value parsed from the "PltfmId" field in the pasted telnet line.Steam_76561197970441157Optional
$cross_idstringAuto-detected value parsed from the "CrossId" field in the pasted telnet line.EOS_000271f41dc6415ebc9a49f6dc33edbfOptional
$owner_idstringAuto-detected value parsed from the "OwnerID" field in the pasted telnet line.Steam_76561197970441157Optional
$player.namestringAuto-detected value parsed from the "PlayerName" field in the pasted telnet line.TrekkanOptional
$client_numberstringAuto-detected value parsed from the "ClientNumber" field in the pasted telnet line.3Optional
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Player Banned

player.banned

A player was banned from the game server, including the ban expiration, optional reason, and player identity details reported by telnet.

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.bannedRequired
$event_keystringCatalog event key for the current event.player.bannedRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-07-05T23:01:59ZRequired
$ban_untilstringBan expiration timestamp reported in the telnet line.2026-07-05 16:02:59Optional
$ban_reasonstringBan reason reported in the telnet line when present.This is the reasonOptional
$entity_idstringAuto-detected value parsed from the "EntityID" field in the pasted telnet line.171Optional
$pltfm_idstringAuto-detected value parsed from the "PltfmId" field in the pasted telnet line.Steam_76561197970441157Optional
$cross_idstringAuto-detected value parsed from the "CrossId" field in the pasted telnet line.EOS_000271f41dc6415ebc9a49f6dc33edbfOptional
$owner_idstringAuto-detected value parsed from the "OwnerID" field in the pasted telnet line.Steam_76561197970441157Optional
$player.namestringAuto-detected value parsed from the "PlayerName" field in the pasted telnet line.TrekkanOptional
$client_numberstringAuto-detected value parsed from the "ClientNumber" field in the pasted telnet line.4Optional
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

Player Spawned in World

player.spawned_in_world

A player spawned in the game world. Check $reason for why.

Category: PlayerStatus: activeSchema: v1Scripting: yesOrdering: yes

Event variables

NameKindDescriptionExampleAvailability
$event_typestringCatalog event key for the current event.player.spawned_in_worldRequired
$event_keystringCatalog event key for the current event.player.spawned_in_worldRequired
$occurred_at_utcstringUTC timestamp for when the event occurred.2026-06-20T16:00:01ZRequired
$reasonstringAuto-detected value parsed from the "reason" field in the pasted telnet line.DiedOptional
$positionstringAuto-detected value parsed from the "position" field in the pasted telnet line.-344, 84, 403Optional
$position_xstringAuto-detected X component parsed from the "position" field in the pasted telnet line.-344Optional
$position_ystringAuto-detected Y component parsed from the "position" field in the pasted telnet line.84Optional
$position_zstringAuto-detected Z component parsed from the "position" field in the pasted telnet line.403Optional
$entity_idstringAuto-detected value parsed from the "EntityID" field in the pasted telnet line.171Optional
$pltfm_idstringAuto-detected value parsed from the "PltfmId" field in the pasted telnet line.Steam_76561197970441157Optional
$cross_idstringAuto-detected value parsed from the "CrossId" field in the pasted telnet line.EOS_000271f41dc6415ebc9a49f6dc33edbfOptional
$owner_idstringAuto-detected value parsed from the "OwnerID" field in the pasted telnet line.Steam_76561197970441157Optional
$player.namestringAuto-detected value parsed from the "PlayerName" field in the pasted telnet line.TrekkanOptional
$client_numberstringAuto-detected value parsed from the "ClientNumber" field in the pasted telnet line.1Optional
$player
  • $player.id nullable
  • $player.name nullable
  • $player.platform_id nullable
  • $player.cross_platform_id nullable
  • $player.steam_id nullable
  • $player.eos_id nullable
  • $player.xbl_id nullable
  • $player.platform_family nullable
  • $player.platform_user_id nullable
  • $player.cross_platform_family nullable
  • $player.cross_platform_user_id nullable
  • $player.entity_id nullable
  • $player.online nullable
  • $player.last_seen_at nullable
  • $player.ip_address nullable
  • $player.level nullable
  • $player.health nullable
  • $player.stamina nullable
  • $player.score nullable
  • $player.ping nullable
  • $player.deaths nullable
  • $player.zombie_kills nullable
  • $player.player_kills nullable
  • $player.total_play_time_seconds nullable
  • $player.credits nullable
  • $player.ban_active nullable
  • $player.ban_reason nullable
  • $player.ban_until nullable
  • $player.group nullable
  • $player.group.id nullable
  • $player.group.name nullable
  • $player.group.max_teleport_destinations nullable
  • $player.group.teleport_cooldown_seconds nullable
  • $player.position nullable
  • $player.position.x nullable
  • $player.position.y nullable
  • $player.position.z nullable
object
Nullable
Resolved RAT player object for this event. Use child properties like $player.name or $player.position.x. When the event provides a player name, $player.name is populated even if RAT cannot match a unique stored player record; richer profile fields are filled when RAT resolves the player.
$player.id
$player.name
$player.platform_id
$player.cross_platform_id
$player.steam_id
$player.eos_id
$player.xbl_id
$player.platform_family
$player.platform_user_id
$player.cross_platform_family
$player.cross_platform_user_id
$player.entity_id
$player.online
$player.last_seen_at
$player.ip_address
$player.level
$player.health
$player.stamina
$player.score
$player.ping
$player.deaths
$player.zombie_kills
$player.player_kills
$player.total_play_time_seconds
$player.credits
$player.ban_active
$player.ban_reason
$player.ban_until
$player.group.id
$player.group.name
$player.group.max_teleport_destinations
$player.group.teleport_cooldown_seconds
$player.position.x
$player.position.y
$player.position.z
rat5.v2 only
Optional

Templates

Workbench starter

Starter template scaffolded from the developer workbench.

# Review before enabling in production
log("Implement this event handler")
Back to event catalog

6. Execution, waits, and troubleshooting

Execution results

StatusMeaning
successThe script completed and RAT stored its output and state summary.
waitingwait(...) suspended this logical execution and scheduled its continuation.
invalid_scriptValidation failed, so RAT skipped this definition.
runtime_errorExecution failed at a reported line and column; later definitions still run.

Wait behavior

One wait may be at most 60 seconds. A logical execution may remain alive for at most 10 minutes and suspend at most 16 times. RAT allows at most 256 pending waits. Waits live in memory, so shutdown or restart interrupts them rather than replaying stale automation.

When an event does not run

  1. Confirm the definition is enabled, runnable, and attached to an active catalog key.
  2. Check validation diagnostics for unknown variables, invalid object paths, wrong argument counts, or malformed blocks.
  3. Preview with a recent snapshot and inspect branch decisions, outputs, global mutations, and runtime error details.
  4. Confirm the required subsystem is available: telnet, Discord, backups, player data, or managed runtime.
  5. For RAT-managed definitions, verify that only enabled state and order were changed.
Language referenceSee RAT 5 Scripting for syntax, scopes, reusable functions, telnet capture, and every built-in function.