Files
Module-Rust/engagement-triggers.json
wtclaude f2ca314d10
All checks were successful
PR Checks / client-build (pull_request) Successful in 20s
PR Checks / server-tests (pull_request) Successful in 24s
PR Checks / frozen-manifest (pull_request) Successful in 46s
feat(rust): bosses and passive NPCs on the profile form, and public boss triggers (runicnpc stage 6)
The profile form's boss box (D273-D277): the bar's distance, where its
lines are said, the spawn and death lines, and phases at health
percentages, each with optional damage, aim, speed, ranges, a kit swap,
adds of another profile and a line. The passive role (D278, D279,
D288): press E answers with a chat line or a window, it moves as its
profile says (now including `stand`), and it starts unhurtable.

The site checks both as RunicNPC does, in its words; a phase's kit is
checked on each server like the profile's own, and its adds must name a
site profile that is not a boss.

Public triggers rust.boss.spawned, rust.boss.phase and rust.boss.killed
(D277) from the bridge's new frames. In the feed, a boss appearing is
public; its death names the killer, so it sits behind the presence
setting; its phases are staff's, as the game tells them only to players
near it (D286). engagement-triggers.json regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
2026-10-05 10:54:28 -05:00

1732 lines
52 KiB
JSON

{
"_comment": "Generated freeze of module-rust's engagement contract (docs/modules/rust/PLAN.md §25). Regenerate with `npm run engagement:manifest` in server/. A renamed variable, a changed type or a widened ceiling breaks stored templates and rules, so the diff here is the review signal.",
"coreApi": "^1.11.0",
"triggers": [
{
"id": "rust.base.destroyed",
"label": "Your base was raided",
"description": "Part of a base you are authorised on was destroyed by another player: a wall, a door, an external wall or gate, or the tool cupboard.",
"kind": "event",
"subjectKey": "building",
"audience": "owner",
"ceiling": "owner",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "building",
"type": "string",
"required": true,
"example": "8113",
"description": "The base, as the id of its tool cupboard. The cooldown subject."
},
{
"name": "structure",
"type": "string",
"required": true,
"example": "door",
"description": "What was destroyed: \"building block\", \"door\", \"external wall\" or \"tool cupboard\"."
},
{
"name": "grid",
"type": "string",
"required": false,
"example": "H7",
"description": "The map grid square. Absent when the server could not work one out."
},
{
"name": "atGrid",
"type": "string",
"required": false,
"example": " in H7",
"description": "Sentence fragment: \" in H7\" with its own leading space, or nothing when the grid is unknown."
},
{
"name": "ownerOnline",
"type": "boolean",
"required": true,
"example": false,
"description": "Whether YOU were online when it happened. The seeded rule alerts only when this is false."
}
]
},
{
"id": "rust.boss.killed",
"label": "A boss was killed",
"description": "Players killed a RunicNPC boss on a server.",
"kind": "event",
"subjectKey": "profile",
"audience": "subscribers",
"ceiling": "everyone",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "profile",
"type": "string",
"required": true,
"example": "juggernaut",
"description": "The RunicNPC profile the boss was made from."
},
{
"name": "boss",
"type": "string",
"required": true,
"example": "Juggernaut",
"description": "The boss's own name, as players see it."
},
{
"name": "byEvent",
"type": "boolean",
"required": true,
"example": true,
"description": "Whether an event placed it."
},
{
"name": "killer",
"type": "string",
"required": false,
"example": "Marisol",
"description": "The player who landed the killing blow, by in-game name. Absent when no player did."
},
{
"name": "damagers",
"type": "int",
"required": true,
"example": 5,
"description": "How many players hurt it, the killer included."
}
]
},
{
"id": "rust.boss.phase",
"label": "A boss changed phase",
"description": "A RunicNPC boss fell to one of its phases' health thresholds and changed: stronger, faster, or calling for help.",
"kind": "event",
"subjectKey": "phaseKey",
"audience": "subscribers",
"ceiling": "everyone",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "profile",
"type": "string",
"required": true,
"example": "juggernaut",
"description": "The RunicNPC profile the boss was made from."
},
{
"name": "boss",
"type": "string",
"required": true,
"example": "Juggernaut",
"description": "The boss's own name, as players see it."
},
{
"name": "byEvent",
"type": "boolean",
"required": true,
"example": true,
"description": "Whether an event placed it."
},
{
"name": "phaseKey",
"type": "string",
"required": true,
"example": "juggernaut:2",
"description": "The profile and the phase. The cooldown subject; not meant for display."
},
{
"name": "phase",
"type": "int",
"required": true,
"example": 2,
"description": "Which phase it entered, counting from 1."
},
{
"name": "percent",
"type": "int",
"required": true,
"example": 25,
"description": "The health it fell to, as a percentage."
}
]
},
{
"id": "rust.boss.spawned",
"label": "A boss appeared",
"description": "A RunicNPC boss spawned on a server: an admin's placement, an event, or another plugin.",
"kind": "event",
"subjectKey": "profile",
"audience": "subscribers",
"ceiling": "everyone",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "profile",
"type": "string",
"required": true,
"example": "juggernaut",
"description": "The RunicNPC profile the boss was made from."
},
{
"name": "boss",
"type": "string",
"required": true,
"example": "Juggernaut",
"description": "The boss's own name, as players see it."
},
{
"name": "byEvent",
"type": "boolean",
"required": true,
"example": true,
"description": "Whether an event placed it."
}
]
},
{
"id": "rust.clan.disbanded",
"label": "Your clan was disbanded",
"description": "A clan you were in was disbanded.",
"kind": "event",
"subjectKey": "clanKey",
"audience": "members",
"ceiling": "members",
"version": 1,
"variables": [
{
"name": "clanKey",
"type": "string",
"required": true,
"example": "main:12:1790142840000",
"description": "The clan's stable identity. The cooldown subject; not meant for display."
},
{
"name": "clan",
"type": "string",
"required": true,
"example": "The Rust Belt",
"description": "The clan's name."
},
{
"name": "clanUrl",
"type": "url",
"required": false,
"example": "/rust/clans/main%3A12%3A1790142840000",
"description": "Site-relative path to the clan's page."
},
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "by",
"type": "string",
"required": false,
"example": "Marisol",
"description": "Who disbanded it."
}
]
},
{
"id": "rust.clan.member.kicked",
"label": "Someone was removed from your clan",
"description": "A member was removed from a clan you are in — or you were.",
"kind": "event",
"subjectKey": "clanKey",
"audience": "members",
"ceiling": "members",
"version": 1,
"variables": [
{
"name": "clanKey",
"type": "string",
"required": true,
"example": "main:12:1790142840000",
"description": "The clan's stable identity. The cooldown subject; not meant for display."
},
{
"name": "clan",
"type": "string",
"required": true,
"example": "The Rust Belt",
"description": "The clan's name."
},
{
"name": "clanUrl",
"type": "url",
"required": false,
"example": "/rust/clans/main%3A12%3A1790142840000",
"description": "Site-relative path to the clan's page."
},
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "member",
"type": "string",
"required": false,
"example": "Darrow",
"description": "Who was removed."
},
{
"name": "by",
"type": "string",
"required": false,
"example": "Marisol",
"description": "Who removed them."
}
]
},
{
"id": "rust.clan.member.left",
"label": "Someone left your clan",
"description": "A member left a clan you are in.",
"kind": "event",
"subjectKey": "clanKey",
"audience": "members",
"ceiling": "members",
"version": 1,
"variables": [
{
"name": "clanKey",
"type": "string",
"required": true,
"example": "main:12:1790142840000",
"description": "The clan's stable identity. The cooldown subject; not meant for display."
},
{
"name": "clan",
"type": "string",
"required": true,
"example": "The Rust Belt",
"description": "The clan's name."
},
{
"name": "clanUrl",
"type": "url",
"required": false,
"example": "/rust/clans/main%3A12%3A1790142840000",
"description": "Site-relative path to the clan's page."
},
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "member",
"type": "string",
"required": false,
"example": "Darrow",
"description": "Who left."
}
]
},
{
"id": "rust.kit.entitled",
"label": "An event rewarded you a kit",
"description": "An event on a Rust server rewarded you: a kit is waiting in the in-game Kits menu, with one extra use.",
"kind": "event",
"subjectKey": "rewardKey",
"audience": "owner",
"ceiling": "owner",
"version": 1,
"variables": [
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "rewardKey",
"type": "string",
"required": true,
"example": "41:7",
"description": "The run and step that awarded it. The cooldown subject; not meant for display."
},
{
"name": "kit",
"type": "string",
"required": true,
"example": "vip-starter",
"description": "The kit name, as the server Kits plugin has it."
},
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "mode",
"type": "string",
"required": false,
"example": "top",
"description": "How the recipients were chosen: everyone, top, minScore, random or topPercent."
},
{
"name": "accountUrl",
"type": "url",
"required": false,
"example": "/player/rust",
"description": "Site-relative path to your Rust account page."
}
]
},
{
"id": "rust.leaderboard.topped",
"label": "A new kills leader",
"description": "Somebody new leads the current wipe's kills on a server.",
"kind": "event",
"subjectKey": "serverId",
"audience": "subscribers",
"ceiling": "everyone",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "leader",
"type": "string",
"required": true,
"example": "Marisol",
"description": "The new leader's in-game name."
},
{
"name": "kills",
"type": "int",
"required": true,
"example": 42,
"description": "Their kills this wipe."
},
{
"name": "leaderboardUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main?tab=leaderboard",
"description": "Site-relative path to the server's leaderboard."
}
]
},
{
"id": "rust.login.denied",
"label": "A login was not approved",
"description": "Somebody tried to join a server and was not let in within a minute: a ban, a failed authentication, or a player who gave up while connecting.",
"kind": "event",
"subjectKey": "steamId",
"audience": "staff",
"ceiling": "staff",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "steamId",
"type": "string",
"required": true,
"example": "76561198000000002",
"description": "The Steam id that tried to connect. The cooldown subject."
},
{
"name": "player",
"type": "string",
"required": false,
"example": "Darrow",
"description": "The name it connected with."
},
{
"name": "attemptedAt",
"type": "datetime",
"required": true,
"example": "2026-09-23T03:10:00Z",
"description": "When the attempt was made."
}
]
},
{
"id": "rust.npc.died",
"label": "A RunicNPC NPC died",
"description": "One of RunicNPC's NPCs was killed. A phase can wait for a number of them: \"8 guards died\".",
"kind": "event",
"subjectKey": "profile",
"audience": "staff",
"ceiling": "staff",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "profile",
"type": "string",
"required": true,
"example": "guard",
"description": "The RunicNPC profile the NPC was made from. The cooldown subject, and what a phase gate usually names."
},
{
"name": "npc",
"type": "string",
"required": false,
"example": "Gate Guard",
"description": "The NPC's own name, as the victim's death screen shows it."
},
{
"name": "byEvent",
"type": "boolean",
"required": true,
"example": true,
"description": "Whether an event placed it (rather than an admin's placement or another plugin)."
},
{
"name": "runId",
"type": "string",
"required": false,
"example": "42",
"description": "The event run that placed it, when one did."
},
{
"name": "placement",
"type": "string",
"required": false,
"example": "guard-3",
"description": "The placement it came from, when it came from one."
},
{
"name": "killer",
"type": "string",
"required": false,
"example": "Marisol",
"description": "The player who landed the killing blow. Absent when no player did."
},
{
"name": "killerSteamId",
"type": "string",
"required": false,
"example": "76561198000000002",
"description": "Their Steam id."
},
{
"name": "contributors",
"type": "int",
"required": true,
"example": 3,
"description": "How many players took health from it, the killer included."
}
]
},
{
"id": "rust.npc.health",
"label": "A RunicNPC NPC fell to a health threshold",
"description": "One of RunicNPC's NPCs fell to a fraction of its health its profile names. A phase can wait for \"the boss below 50%\".",
"kind": "event",
"subjectKey": "profile",
"audience": "staff",
"ceiling": "staff",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "profile",
"type": "string",
"required": true,
"example": "guard",
"description": "The RunicNPC profile the NPC was made from. The cooldown subject, and what a phase gate usually names."
},
{
"name": "npc",
"type": "string",
"required": false,
"example": "Gate Guard",
"description": "The NPC's own name, as the victim's death screen shows it."
},
{
"name": "byEvent",
"type": "boolean",
"required": true,
"example": true,
"description": "Whether an event placed it (rather than an admin's placement or another plugin)."
},
{
"name": "runId",
"type": "string",
"required": false,
"example": "42",
"description": "The event run that placed it, when one did."
},
{
"name": "placement",
"type": "string",
"required": false,
"example": "guard-3",
"description": "The placement it came from, when it came from one."
},
{
"name": "percent",
"type": "int",
"required": true,
"example": 50,
"description": "The threshold it fell to, as a percentage of its health: 50 for half."
}
]
},
{
"id": "rust.player.banned",
"label": "A player was banned",
"description": "A player was banned on a server.",
"kind": "event",
"subjectKey": "steamId",
"audience": "staff",
"ceiling": "staff",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "steamId",
"type": "string",
"required": true,
"example": "76561198000000002",
"description": "The banned player's Steam id. The cooldown subject."
},
{
"name": "player",
"type": "string",
"required": false,
"example": "Darrow",
"description": "The banned player's name."
},
{
"name": "reason",
"type": "string",
"required": false,
"example": "Cheating",
"description": "The reason given."
}
]
},
{
"id": "rust.player.linked",
"label": "A Steam account was linked",
"description": "A Steam account was linked to your website account with an in-game code.",
"kind": "event",
"subjectKey": "steamId",
"audience": "owner",
"ceiling": "owner",
"version": 1,
"variables": [
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "steamId",
"type": "string",
"required": true,
"example": "76561198000000001",
"description": "The Steam account that was linked. Also the cooldown subject."
},
{
"name": "player",
"type": "string",
"required": false,
"example": "Marisol",
"description": "The in-game name the game reported when it was linked."
},
{
"name": "accountUrl",
"type": "url",
"required": false,
"example": "/player/rust",
"description": "Site-relative path to your Rust account page."
}
]
},
{
"id": "rust.player.reported",
"label": "A player was reported",
"description": "A player filed an in-game report against another.",
"kind": "event",
"subjectKey": "steamId",
"audience": "staff",
"ceiling": "staff",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "steamId",
"type": "string",
"required": true,
"example": "76561198000000002",
"description": "The reported player's Steam id. The cooldown subject."
},
{
"name": "player",
"type": "string",
"required": false,
"example": "Darrow",
"description": "The reported player's name."
},
{
"name": "reporter",
"type": "string",
"required": false,
"example": "Marisol",
"description": "Who filed the report."
},
{
"name": "reportType",
"type": "string",
"required": false,
"example": "cheat",
"description": "The category the reporter chose."
},
{
"name": "topic",
"type": "string",
"required": false,
"example": "Aimbot at the dome",
"description": "The report's subject line."
},
{
"name": "message",
"type": "string",
"required": false,
"example": "Headshots through two walls.",
"description": "The report's text."
}
]
},
{
"id": "rust.player.unbanned",
"label": "A player was unbanned",
"description": "A ban on a server was lifted.",
"kind": "event",
"subjectKey": "steamId",
"audience": "staff",
"ceiling": "staff",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "steamId",
"type": "string",
"required": true,
"example": "76561198000000002",
"description": "The player's Steam id. The cooldown subject."
},
{
"name": "player",
"type": "string",
"required": false,
"example": "Darrow",
"description": "The player's name."
}
]
},
{
"id": "rust.server.offline",
"label": "A server went offline",
"description": "A server's game stopped, crashed, or stopped talking to the website.",
"kind": "event",
"subjectKey": "serverId",
"audience": "subscribers",
"ceiling": "everyone",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
}
]
},
{
"id": "rust.server.online",
"label": "A server came online",
"description": "A server's game started, or came back after being unreachable.",
"kind": "event",
"subjectKey": "serverId",
"audience": "subscribers",
"ceiling": "everyone",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
}
]
},
{
"id": "rust.wipe.started",
"label": "A server wiped",
"description": "A server started a new wipe: a fresh map, and everything built on the old one gone.",
"kind": "event",
"subjectKey": "serverId",
"audience": "subscribers",
"ceiling": "everyone",
"version": 1,
"variables": [
{
"name": "serverId",
"type": "string",
"required": true,
"example": "main",
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
},
{
"name": "server",
"type": "string",
"required": true,
"example": "Runic Gateway | Main",
"description": "The server's display name."
},
{
"name": "serverUrl",
"type": "url",
"required": false,
"example": "/rust/servers/main",
"description": "Site-relative path to the server's page."
},
{
"name": "title",
"type": "string",
"required": false,
"example": "Main is back online",
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
},
{
"name": "intro",
"type": "string",
"required": false,
"example": "Main is back up and taking players.",
"description": "One sentence of detail. Core generic bodies use it as the body."
},
{
"name": "wipeId",
"type": "string",
"required": true,
"example": "1790142840-3000-1234",
"description": "The new wipe's identity."
}
]
}
],
"streams": [
{
"id": "rust.base.destroyed",
"label": "Your base was raided",
"personal": true,
"requiresLinkedAccount": true
},
{
"id": "rust.server.offline",
"label": "A server went offline",
"personal": false,
"requiresLinkedAccount": false
},
{
"id": "rust.server.online",
"label": "A server came online",
"personal": false,
"requiresLinkedAccount": false
},
{
"id": "rust.wipe.started",
"label": "A server wiped",
"personal": false,
"requiresLinkedAccount": false
}
],
"audiences": [
{
"id": "rust.clan.members",
"label": "Members of a clan",
"params": [
{
"id": "clan",
"type": "string",
"required": true
}
],
"ceiling": "members"
},
{
"id": "rust.server.players",
"label": "Everyone who has played on a server",
"params": [
{
"id": "serverId",
"type": "string",
"required": true
}
],
"ceiling": "authenticated"
},
{
"id": "rust.wipe.participants",
"label": "Everyone playing a server's current wipe",
"params": [
{
"id": "serverId",
"type": "string",
"required": true
}
],
"ceiling": "authenticated"
}
],
"ruleGroups": [
{
"key": "raid-v1",
"rules": [
{
"trigger_id": "rust.base.destroyed",
"audience": "owner",
"channels": [
"email",
"inapp",
"push"
],
"template_keys": {
"email": "rust.base.destroyed",
"inapp": "rust.base.destroyed-inapp",
"digest": "notify.digest"
},
"conditions": {
"variable": "ownerOnline",
"cmp": "eq",
"value": false
},
"cooldown_seconds": 1800,
"delay_seconds": 0,
"cancel_on": []
}
]
},
{
"key": "wipe-v1",
"rules": [
{
"trigger_id": "rust.wipe.started",
"audience": "subscribers",
"channels": [
"email",
"inapp",
"push"
],
"template_keys": {
"email": "rust.wipe.started",
"inapp": "rust.wipe.started-inapp",
"digest": "notify.digest"
},
"conditions": null,
"cooldown_seconds": 21600,
"delay_seconds": 0,
"cancel_on": []
}
]
},
{
"key": "server-v1",
"rules": [
{
"trigger_id": "rust.server.online",
"audience": "subscribers",
"channels": [
"inapp",
"push"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 3600,
"delay_seconds": 0,
"cancel_on": []
},
{
"trigger_id": "rust.server.offline",
"audience": "subscribers",
"channels": [
"inapp",
"push"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 3600,
"delay_seconds": 300,
"cancel_on": [
"rust.server.online"
]
}
]
},
{
"key": "leaderboard-v1",
"rules": [
{
"trigger_id": "rust.leaderboard.topped",
"audience": "subscribers",
"channels": [
"inapp"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 3600,
"delay_seconds": 0,
"cancel_on": []
}
]
},
{
"key": "account-v1",
"rules": [
{
"trigger_id": "rust.player.linked",
"audience": "owner",
"channels": [
"email",
"inapp"
],
"template_keys": {
"email": "notify.event",
"inapp": "inapp.event",
"digest": "notify.digest"
},
"conditions": null,
"cooldown_seconds": 0,
"delay_seconds": 0,
"cancel_on": []
}
]
},
{
"key": "rewards-v1",
"rules": [
{
"trigger_id": "rust.kit.entitled",
"audience": "owner",
"channels": [
"email",
"inapp"
],
"template_keys": {
"email": "notify.event",
"inapp": "inapp.event",
"digest": "notify.digest"
},
"conditions": null,
"cooldown_seconds": 0,
"delay_seconds": 0,
"cancel_on": []
}
]
},
{
"key": "clans-v1",
"rules": [
{
"trigger_id": "rust.clan.member.left",
"audience": "members",
"channels": [
"inapp"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 0,
"delay_seconds": 0,
"cancel_on": []
},
{
"trigger_id": "rust.clan.member.kicked",
"audience": "members",
"channels": [
"inapp"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 0,
"delay_seconds": 0,
"cancel_on": []
},
{
"trigger_id": "rust.clan.disbanded",
"audience": "members",
"channels": [
"email",
"inapp"
],
"template_keys": {
"email": "notify.event",
"inapp": "inapp.event",
"digest": "notify.digest"
},
"conditions": null,
"cooldown_seconds": 0,
"delay_seconds": 0,
"cancel_on": []
}
]
},
{
"key": "moderation-v1",
"rules": [
{
"trigger_id": "rust.player.reported",
"audience": "staff",
"channels": [
"email",
"inapp"
],
"template_keys": {
"email": "notify.event",
"inapp": "inapp.event",
"digest": "notify.digest"
},
"conditions": null,
"cooldown_seconds": 3600,
"delay_seconds": 0,
"cancel_on": []
},
{
"trigger_id": "rust.player.banned",
"audience": "staff",
"channels": [
"inapp"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 0,
"delay_seconds": 0,
"cancel_on": []
},
{
"trigger_id": "rust.player.unbanned",
"audience": "staff",
"channels": [
"inapp"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 0,
"delay_seconds": 0,
"cancel_on": []
},
{
"trigger_id": "rust.login.denied",
"audience": "staff",
"channels": [
"inapp"
],
"template_keys": {
"inapp": "inapp.event"
},
"conditions": null,
"cooldown_seconds": 3600,
"delay_seconds": 0,
"cancel_on": []
}
]
}
],
"templates": [
{
"key": "rust.base.destroyed",
"channel": "email",
"triggerId": "rust.base.destroyed",
"seedVersion": 1
},
{
"key": "rust.base.destroyed-inapp",
"channel": "inapp",
"triggerId": "rust.base.destroyed",
"seedVersion": 1
},
{
"key": "rust.wipe.started",
"channel": "email",
"triggerId": "rust.wipe.started",
"seedVersion": 1
},
{
"key": "rust.wipe.started-inapp",
"channel": "inapp",
"triggerId": "rust.wipe.started",
"seedVersion": 1
}
]
}