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:
- Name: A descriptive identifier for your trigger
- Conditions: Rules that determine when the trigger should activate
- 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
Field | Description | Available When |
---|---|---|
Player name | The player's name | Always |
Player UID | SteamID (Arma) or license identifier (FiveM) | Always |
Player country | Country code (e.g., US, CA, GB) | Connection events |
Player proxy | Whether player is using VPN/proxy | Connection events |
Player IP | Player's IP address (supports CIDR notation) | Connection events |
TrustScore & Ban Information
Field | Description | Available When |
---|---|---|
TrustScore | Player's TrustScore rating (Green/Lime/Yellow/Orange/Red) | Connection events |
Global ban count | Number of global bans the player has | Connection events |
Ban count | Total bans (including local server bans) | Connection events |
Days since last global ban | Days since player's most recent global ban | Connection events |
Global expired | Whether player joined due to expired global ban, dependant on Global ban expiration config option | Connection events |
Log Information
Field | Type | Description | Available When |
---|---|---|---|
Log text | String | Raw log message content including identifiers | Log events |
Available Operators
Operator | Description | Works With |
---|---|---|
= | Equals (exact match) | All field types |
!= | Not equals | All field types |
contains | Contains substring | String fields |
not contains | Does not contain substring | String fields |
> | Greater than | Number fields, TrustScore |
>= | Greater than or equal | Number fields, TrustScore |
< | Less than | Number fields, TrustScore |
<= | Less than or equal | Number 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 HTTP POST request to specified URL with trigger data.
Plus and Ultimate plan subscribers can send webhooks to any custom URL to connect with external systems.
Discord Webhooks:
- Creates rich embeds with trigger information
- Supports
%screenshot%
template for image embeds
External Webhooks:
- 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 (e.g., Discord webhook URL)
- Message: Custom message with templating
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)