Events

Integrate your resources with fxPanel using server-side events.

All events follow the pattern txAdmin:events:<eventName>. Listen for these in your server-side Lua or JavaScript resources.

Important

Do not fully rely on events where consistency is key, since they may fire while the server is stopped. For instance, a player could be whitelisted or banned while the server is offline, and your resource would not be notified.

Server Events

txAdmin:events:announcement

Fired when an announcement is made using fxPanel.

{
  author: string,       // admin name or "fxPanel"
  message: string
}
txAdmin:events:serverShuttingDown

Fired when the server is about to shut down. Can be triggered by a scheduled or unscheduled stop/restart, by an admin or by the system.

{
  delay: number,        // ms until server process is killed
  author: string,       // admin name or "fxPanel"
  message: string
}
txAdmin:events:scheduledRestart

Fires at countdown intervals: 30, 15, 10, 5, 4, 3, 2, 1 minutes before a scheduled restart.

{
  secondsRemaining: number,
  translatedMessage: string
}
txAdmin:events:scheduledRestartSkipped

Fired when an admin skips the next scheduled restart.

{
  secondsRemaining: number,
  temporary: boolean,   // true if it was a temporary restart
  author: string
}

Player Events

txAdmin:events:playerBanned

Fired when a player is banned.

{
  author: string,
  reason: string,
  actionId: string,
  expiration: number | false,      // timestamp or false if permanent
  durationInput: string,
  durationTranslated: string | null,
  targetNetId: number | null,      // null if ban applied to identifiers only
  targetIds: string[],
  targetHwids: string[],           // may be empty array
  targetName: string,              // "identifiers" if legacy ban
  kickMessage: string
}
txAdmin:events:playerWarned

Fired when a player receives a warning.

{
  author: string,
  reason: string,
  actionId: string,
  targetNetId: number | null,      // null if target is not online
  targetIds: string[],
  targetName: string
}
txAdmin:events:playerKicked

Fired when a player is kicked. A target of -1 means all players are being kicked.

{
  target: number,       // player ID, or -1 if kicking everyone
  author: string,
  reason: string,
  dropMessage: string   // translated message shown to the player
}
txAdmin:events:playerDirectMessage

Fired when an admin sends a DM to a player.

{
  target: number,       // player ID
  author: string,
  message: string
}
txAdmin:events:playerHealed

Fired when a heal event is triggered. A target of -1 means the entire server was healed.

{
  target: number,       // player ID, or -1 for all
  author: string
}

Whitelist Events

txAdmin:events:whitelistPlayer

Fired when a player is whitelisted or has their whitelisted status revoked. Only fires for already-registered players, not for pending whitelist requests or pre-approvals.

{
  action: "added" | "removed",
  license: string,
  playerName: string,
  adminName: string
}
txAdmin:events:whitelistPreApproval

Fired when an identifier is manually added to the whitelist pre-approvals. When a player with this identifier connects, they will be saved as whitelisted without triggering whitelistPlayer. Not fired when a whitelist request is approved (use whitelistRequest for that).

{
  action: "added" | "removed",
  identifier: string,          // e.g. "discord:xxxxxx"
  playerName?: string,         // absent when action is "removed"
  adminName: string
}
txAdmin:events:whitelistRequest

Fired whenever an event related to a whitelist request occurs.

{
  action: "requested" | "approved" | "denied" | "deniedAll",
  playerName?: string,         // absent when action is "deniedAll"
  requestId?: string,          // e.g. "Rxxxx", absent when "deniedAll"
  license?: string,            // absent when action is "deniedAll"
  adminName?: string           // absent when action is "requested"
}

Other Events

txAdmin:events:actionRevoked

Fired when an admin revokes a database action (e.g. ban, warn).

{
  actionId: string,
  actionType: string,
  actionReason: string,
  actionAuthor: string,
  playerName: string | false,  // false if not applicable
  playerIds: string[],
  playerHwids: string[],       // may be empty array
  revokedBy: string
}
txAdmin:events:adminAuth

Fired when an admin authenticates in-game or loses admin permissions. Useful for anti-cheats to ignore fxPanel admins.

{
  netid: number,               // player ID, or -1 for forced reauth of all
  isAdmin: boolean,
  username?: string            // fxPanel username, present on auth
}
txAdmin:events:adminsUpdated

Fired when the admin list changes (additions, removals, permission or identifier changes). Used by the fxPanel resource to force admins to refresh their auth.

number[]  // array of NetIds of online admins
txAdmin:events:configChanged

Fired when fxPanel settings change in a way that could be relevant for the server. No event data. Currently used to signal the in-game menu when the configured language changes.

txAdmin:events:consoleCommand

Fired when an admin sends a command through the Live Console.

{
  author: string,              // fxPanel username
  channel: string,             // currently always "fxPanel"
  command: string
}