What is an automation
An automation is a rule that watches for something to happen on your server, checks whether it matches a set of conditions, and then runs one or more actions in response. It’s heliana’s automation building block: it connects what’s happening in the game (or a schedule, or an admin pressing a button) to a consequence — an RCON command, a ban, an HTTP request to another service, a note on a player’s profile.
The mental model: what starts it → conditions → actions
Section titled “The mental model: what starts it → conditions → actions”Every automation has three parts.
What starts it — the event or moment that activates the automation. That’s either a game event arriving from the live server log, a schedule that fires on a time expression or a fixed interval, or a button an admin presses in the app.
Conditions (the If section) — filters the event must satisfy before the automation fires. Conditions test the event’s details: the weapon used in a kill, the text of a chat message, how many players are on the server, which team the attacker was on. Every condition in the list must match (AND). Within the list you can add an OR-group — a set of alternatives where any one of them is enough.
Actions (the Then section) — what heliana does when an event passes all conditions. There are four kinds of action and no more: sending an RCON command, issuing a ban, sending an HTTP request with ctx.fetch, and writing a note on the player’s profile. Actions run in order, top to bottom, and each can carry its own condition so it is skipped while the rest of the chain runs.
There is no tag action and no delay action.
The three automation types
Section titled “The three automation types”The Type you pick when you build an automation decides what starts it: Event, Manual, or Scheduled.
Event automations
Section titled “Event automations”An event automation is bound to one event type from the live server log — Chat, Join, Leave, Death, Teamkill, Marker, Capture, Deployed, Map, Round, or Broadcast. When heliana detects that event on the server, it checks the automation’s conditions against the event’s details. If they all pass, the actions run.
This is the type that reacts to what’s happening in the game: auto-warning a teamkiller, responding to a keyword in chat, banning after a third teamkill within an hour, announcing a round result.
An event automation has one frequency control, the pause: after a run it stays silent for the number of seconds you set, either for the whole automation or per player. That keeps noisy events from spamming. To act only once the N-th matching event has happened, declare a counter on the automation and compare counter.<name> in an action condition.
Scheduled automations
Section titled “Scheduled automations”A scheduled automation fires on a timer instead of a game event. The schedule is either a time expression (for rules like “every day at 18:00 UTC”) or a fixed interval (for “every 5 minutes”).
A scheduled automation can act on the whole server — for periodic broadcasts, say — or run once for every player online at the moment it fires. In the per-player mode it checks conditions against each online player’s current state (their role, squad, team, squad-leader status) and runs the actions for each one that matches.
Manual automations
Section titled “Manual automations”A manual automation is a button in the app — either in a server’s status panel or on a player’s profile. An admin clicks it, optionally fills in a short form (a reason, a ban duration, a value from a list), and the actions run immediately.
Manual automations bring the calls that need human judgement into the same action model as the automated ones. Each one can be permission-gated on its own, so a junior moderator can run a “warn” automation but not a “permanent ban” automation.
How event automations see the game
Section titled “How event automations see the game”heliana keeps a live connection to each server: it reads the Squad log over SFTP and keeps the player roster current over RCON. Game events flow from that connection into the automation engine, where each one is matched against every enabled event automation for that server. Conditions are checked against the event’s details; if they all pass, the actions run in order.
The event types and the details each one exposes are in the Event types reference.
For a step-by-step walkthrough of building your first automation, see Create an event automation. Automations written as code are described in the Automation SDK reference.