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 | nil,
  targetNetId: number | nil,       -- nil 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 | nil,       -- nil 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 are saved. This can be used by resources to react to configuration changes without requiring a restart.

-- No payload (empty event)