Guide

Overview - Automations let you orchestrate multi-step workflows across servers: start/stop, backups, setting sync, RCON, waits, notifications, webhooks, and more. - Each automation defines a target set, a trigger, and an ordered workflow of steps.

Key Concepts - Targets: explicit IDs, dynamic filters, or trigger-source driven. - Triggers: manual, scheduled (cron), or state-change. - Steps: actions (start/stop/restart/update/backup/setting-sync), RCON commands, waits (timed/state), and messaging (notify/Discord webhook). - Timeouts: per-step timeoutSec and optional run-level runTimeoutSec end long-running workflows.

RCON (Smart Await) - RconCommand step options: - command (string) - var (string, optional): capture name for responses - awaitMode (AUTO|ALWAYS|NEVER; default AUTO) - timeoutMs (number, optional) - AUTO awaits only if a later step references outputs.rcon('<var>') in templates. Otherwise it fires-and-forgets. - ALWAYS forces awaiting; NEVER disables it.

Expression Language - See “Expression Language (AEL)” for full details. - Use in Notify/Discord templates to reference run/step/targets and captured outputs.

Best Practices - Keep steps small; prefer explicit waits over long timeouts. - Use var only when you will consume responses, to avoid unnecessary awaiting. - Set conservative timeoutMs for RCON awaits; use run-level timeouts to cap total execution. - Validate templates with staging runs to avoid expression errors.

Error Handling - Step-level failure marks active targets FAILED. Runs continue per normal rules (non-succeeded targets get skipped for subsequent steps). - Expression errors fail the step with automation.expression_error and skip side-effects (no notifications/webhooks sent).

SDKs - Java: AutomationClient and model classes under de.swiftbyte.gmc.sdk.model.automation. - JavaScript: AutomationResource and models in src/models/automation.ts. - Python: models in gmc_sdk.models.automation.