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 |
| Log type | String | Log event type (e.g. MenuDetection) | Log events |
| Log data | String | Serialized log data payload | Log events |
Identifiers โ
| Field | Type | Description | Available When |
|---|---|---|---|
| Identifiers | String | Joined identifier values (for contains / not contains) | Log events |
| idents.discord | String | Discord identifier | Log events |
| idents.steam | String | Steam identifier | Log 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 โ
| 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 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
#RRGGBBor 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)