Skip to content

FiniAC Triggers โ€‹

FiniAC's trigger system is a powerful automation tool that monitors your game server for specific events and automatically executes actions based on customizable conditions. Think of it as an "if-then" system: if certain conditions are met, then execute specific actions.

How Triggers Work โ€‹

Triggers continuously monitor two main event types on your server:

  • Player connections: When FiniAC handles a players connection to your server
  • Server logs: All logs generated by FiniAC on your server

When an event occurs, FiniAC evaluates it against your configured trigger conditions. If the conditions match, the trigger executes its defined actions automatically.

Creating Triggers โ€‹

Each trigger consists of:

  1. Name: A descriptive identifier for your trigger
  2. Conditions: Rules that determine when the trigger should activate
  3. Actions: What happens when the conditions are met (up to 5 actions per trigger)

Condition Builder โ€‹

The trigger condition builder is a visual interface that allows you to:

  • Combine multiple rules with AND/OR logic
  • Group rules into nested rulesets for complex conditions
  • Use various operators to match against player and log data

Available Condition Fields โ€‹

Player Information โ€‹

FieldDescriptionAvailable When
Player nameThe player's nameAlways
Player UIDSteamID (Arma) or license identifier (FiveM)Always
Player countryCountry code (e.g., US, CA, GB)Connection events
Player proxyWhether player is using VPN/proxyConnection events
Player IPPlayer's IP address (supports CIDR notation)Connection events

TrustScore & Ban Information โ€‹

FieldDescriptionAvailable When
TrustScorePlayer's TrustScore rating (Green/Lime/Yellow/Orange/Red)Connection events
Global ban countNumber of global bans the player hasConnection events
Ban countTotal bans (including local server bans)Connection events
Days since last global banDays since player's most recent global banConnection events
Global expiredWhether player joined due to expired global ban, dependant on Global ban expiration config optionConnection events

Log Information โ€‹

FieldTypeDescriptionAvailable When
Log textStringRaw log message content including identifiersLog events
Log typeStringLog event type (e.g. MenuDetection)Log events
Log dataStringSerialized log data payloadLog events

Identifiers โ€‹

FieldTypeDescriptionAvailable When
IdentifiersStringJoined identifier values (for contains / not contains)Log events
idents.discordStringDiscord identifierLog events
idents.steamStringSteam identifierLog events

Use idents.<key> for any identifier key present on the log.

Cooldown โ€‹

Optional Cooldown (seconds) on each trigger. When set above 0, the same player cannot re-fire that triggerโ€™s actions until the window expires. Matches still show in Debug/Analytics; actions are skipped while cooled down.

Debug, Replay & Pack Tools โ€‹

  • Debug: dry-run a log or connection against live triggers without executing actions.
  • Replay (Analytics): re-run a recent match against current trigger rules and open Debug with the result.
  • Clone / Export / Import: duplicate a trigger, or move trigger packs between servers as portable JSON.

Available Operators โ€‹

OperatorDescriptionWorks With
=Equals (exact match)All field types
!=Not equalsAll field types
containsContains substringString fields
not containsDoes not contain substringString fields
>Greater thanNumber fields, TrustScore
>=Greater than or equalNumber fields, TrustScore
<Less thanNumber fields, TrustScore
<=Less than or equalNumber fields, TrustScore

IP Address & CIDR Support โ€‹

The Player IP field supports both individual IP addresses and CIDR notation:

  • Individual IP: 192.168.1.100
  • CIDR range: 192.168.1.0/24 (matches 192.168.1.1 through 192.168.1.254)
  • Larger networks: 10.0.0.0/8 (matches all 10.x.x.x addresses)
  • Can be compared with the = and != operators

Learn more about CIDR notation here.

Available Actions โ€‹

Ban Player โ€‹

Permanently removes the player from your server.
The action value will be shown as the ban message.

Kick Player โ€‹

Temporarily removes the player from your server.
The action value will be shown as the kick message.

Webhook โ€‹

Sends an HTTP POST request to a specified URL with trigger data.
Plus and Ultimate plan subscribers can send webhooks to any custom URL to connect with external systems.

  • Sends JSON payload with event data
  • Includes message, screenshot URL, log type, and raw data
  • Custom endpoints for integration with external systems

Configuration:

  • URL: Webhook endpoint
  • Message: Custom message with templating

Discord URLs

Webhook actions pointing at a discord.com webhook URL still send a Discord embed for backwards compatibility, but new triggers should use the dedicated Discord Webhook action below.

Discord Webhook โ€‹

Sends a rich embed to a Discord webhook.

  • Creates rich embeds with trigger information
  • Supports %screenshot% template for image embeds
  • Auto fields: player name, UID, log type; footer uses the server name

Configuration:

  • URL: Discord webhook URL
  • Message: Custom message with templating
  • Title (optional): Embed title (defaults to trigger name)
  • Color (optional): Embed color as #RRGGBB or decimal
  • Role ID (optional): Discord role to mention when the webhook fires

Run Script on Server โ€‹

Executes code directly on your game server.

FiveM:

  • JavaScript code execution
  • Example: console.log('%name% triggered anticheat')
  • Can use all server natives, such as TriggerEvent(), ExecuteCommand(), etc.

Arma:

  • SQF code execution
  • Access to remoteExec, publicVariable, etc.
  • Example: '%name% is cheating' remoteExec ['hint', -2];

Templating โ€‹

All action messages and scripts support templating using %variable% syntax:

Always Available โ€‹

  • %uid% - Player unique identifier
  • %name% - Player display name
  • %server.name% - Server name
  • %server.game% - Game type (arma/fivem)

Time Variables โ€‹

  • %time.unix% - Unix timestamp
  • %time.utc% - UTC time string
  • %time.iso% - ISO 8601 timestamp

Connection Events โ€‹

  • %country% - Player country code
  • %ip% - Player IP address
  • %trustscore% - Player trust score string
  • %bans.count% - Total ban count
  • %bans.global.count% - Global ban count
  • %bans.global.expired% - Global ban expired status
  • %bans.global.days% - Days since last global ban

Log Events โ€‹

  • %log% - Raw log text
  • %log.beautified% - Formatted log text
  • %log.type% - Log event type
  • %log.data% - Log data payload
  • %screenshot.url% - Screenshot URL if available
  • %screenshot% - Special Discord embed variable

Player Identifiers โ€‹

  • %idents% - JSON of all player identifiers
  • %idents.steam% - Steam identifier
  • %idents.license% - License identifier
  • %idents.discord% - Discord identifier
  • %idents.{key}% - Any specific identifier

Limitations โ€‹

  • Maximum 5 actions per trigger
  • Some condition fields only available during specific events (connection vs. log)