Event types
An event trigger fires on exactly one event type, chosen in the trigger builder. The event type determines which condition fields and template variables ({player.name}, {message}, …) are available on it.
Nine event types are available:
Ban, Broadcast, Chat, Death, Join, Leave, Map, Round, Teamkill
Fields present on every event
Section titled “Fields present on every event”heliana adds these server/match fields to every event before checking conditions:
| Field | Description |
|---|---|
server.layer |
Current map layer (e.g. Yehorivka_RAAS_v1) |
server.players |
Current online player count |
server.maxPlayers |
Server player slot capacity |
server.teamOne |
Faction code of team 1 |
server.teamTwo |
Faction code of team 2 |
match.minutes |
Minutes elapsed since the current match started |
match.number |
Sequential match number on this server |
Player-scoped events
Section titled “Player-scoped events”These events have a subject player, so the trigger’s ban/note/group actions have someone to act on.
Chat — Chat message
Section titled “Chat — Chat message”| Field | Description |
|---|---|
message |
Text of the chat message |
channel |
Chat channel the message was sent to (ChatAll, ChatTeam, ChatSquad, ChatAdmin) |
player.name |
Sender’s in-game name |
player.eosID |
Sender’s EOS ID |
player.steamID |
Sender’s Steam ID |
| Live player fields | See Live player fields |
Join — Player join
Section titled “Join — Player join”| Field | Description |
|---|---|
player.name |
Joining player’s name |
player.eosID |
EOS ID |
player.steamID |
Steam ID |
player.ip |
Player’s IP address at join time |
| Live player fields | See Live player fields |
Leave — Player leave
Section titled “Leave — Player leave”| Field | Description |
|---|---|
player.name |
Leaving player’s name |
player.eosID |
EOS ID |
player.ip |
Player’s IP address at disconnect time |
| Live player fields | See Live player fields |
Death — Player death
Section titled “Death — Player death”Fires on any death. The subject for a ban/note/group action is the attacker — on a suicide or bleed-out death there’s no attacker, so those actions are skipped.
| Field | Description |
|---|---|
attacker.name |
Attacking player’s name (empty on suicide / bleed-out) |
victim.name |
Player who died |
weapon |
Weapon or damage source |
Teamkill — Teamkill
Section titled “Teamkill — Teamkill”A death where the attacker and victim were on the same team. The subject for a ban/note/group action is the attacker.
| Field | Description |
|---|---|
attacker.name |
Teamkiller’s name |
victim.name |
Player who was teamkilled |
weapon |
Weapon used |
| Live player fields | Live fields of the attacker — see Live player fields |
Ban — Player banned
Section titled “Ban — Player banned”Fires when a ban with a specific server (not an org-wide, all-servers ban) is created. This event ignores the cooldown/threshold rate-limit — every qualifying ban fires it.
| Field | Description |
|---|---|
player.name |
Banned player’s name |
player.steamID |
Banned player’s Steam ID |
reason |
Ban reason text |
admin.name |
Name of the admin who created the ban |
Server-scoped events
Section titled “Server-scoped events”These events have no player subject — a trigger on one of these can’t use the ban, note, or group actions (there’s no one to apply them to).
Broadcast — Admin broadcast
Section titled “Broadcast — Admin broadcast”| Field | Description |
|---|---|
message |
Broadcast text |
admin.name |
Name of the broadcasting admin |
Map — Map change
Section titled “Map — Map change”| Field | Description |
|---|---|
layer |
New layer classname (e.g. Yehorivka_RAAS_v1) |
dlc |
DLC identifier of the new layer |
Round — Round ended
Section titled “Round — Round ended”| Field | Description |
|---|---|
layer |
Layer the round was played on |
winner.faction |
Winning faction |
winner.team |
Winning team number |
winner.tickets |
Winner’s remaining tickets |
loser.faction |
Losing faction |
loser.tickets |
Loser’s remaining tickets |
Live player fields
Section titled “Live player fields”When the RCON roster is available and the player is currently online, these fields are added on top of the Chat, Join, Leave, and Teamkill events. For Teamkill, the live fields describe the attacker.
| Field | Values | Description |
|---|---|---|
player.online |
'true' |
Present (and always 'true') when the player is in the live roster |
player.isSquadLeader |
'true' / 'false' |
Whether the player is a squad leader |
player.role |
string | Player’s current role name |
player.squad |
string | Name of the player’s squad |
player.squadIndex |
string (number) | Squad index number |
player.team |
string (number) | Team number |
If the player isn’t in the live roster (offline, or the server’s live status is unavailable), these fields are simply blank rather than set to 'false' — a condition on player.online only matches once the player is confirmed online.
Fields resolved per action
Section titled “Fields resolved per action”A handful of fields aren’t part of the raw event — heliana looks them up when an action runs. Because of that, you can only use them in a per-action condition (the condition attached to one action), not in the trigger’s top-level conditions:
| Field | Description |
|---|---|
player.bans.count |
Number of active bans on record for the player in this organization |
player.firstSeen |
Date/time the player was first seen |
player.game.timePlayed |
Total recorded play time |
player.groups |
Comma-separated list of the roster groups the player belongs to — use $has / $lacks to check membership |
counter.<name> |
A windowed teamkill counter you define on the trigger |
See Trigger conditions for how per-action conditions work.