FiveM Ban & Kick Management with txAdmin

Keeping a FiveM roleplay server clean takes more than a good framework. You need a reliable moderation workflow — one that lets you act fast in the moment and keeps records that hold up over time. txAdmin, the official server management panel built into every FiveM server, ships a full ban and kick system out of the box. This guide walks through every layer: the txAdmin dashboard, the ACE permission system in server.cfg, the DropPlayer native for script-level enforcement, and practical steps for slowing down ban evaders.

How txAdmin Stores Player and Ban Data

txAdmin is self-contained — it does not need MySQL or any external database. All player records, warnings, bans, and whitelist entries live in a single file:

txData//data/playersDB.json

The txData root sits at /../../../txData on Linux and /../txData on Windows. On a managed host the exact path depends on how the panel is deployed, but you can always find it through txAdmin’s own Master Actions > Database Backup tool — which also shows where the file lives. Back that file up before any major purge operation; it is the source of truth for every ban on your server.

Banning and Kicking Players from the txAdmin Dashboard

The most common workflow for live moderation happens entirely in the browser. Open txAdmin, go to Players in the left sidebar, and click any player row. A profile panel opens showing their identifiers (license, Steam, Discord, IP) and their full history of warns and bans on your server. From there you have three enforcement actions:

  • Warn — logs a formal warning tied to that player’s identifiers. Warns are visible to all admins and build a paper trail before escalating to a ban.
  • Kick — removes the player from the current session. They can reconnect immediately; it is a session-only action.
  • Ban — opens a ban form where you set a duration and reason. Bans are tied to all identifiers txAdmin has collected for that player, making them significantly harder to bypass than name-only bans. Durations can be permanent or time-limited (e.g., 1h, 24h, 7d, 30d).

After a ban is issued, txAdmin checks that player’s identifiers on every connection attempt. If any identifier matches an active ban, the player sees the rejection message you configured and cannot join. The History section logs every action — who issued it, when, and why — so you can audit your moderation team’s decisions at any time. To revoke a ban, find the entry in History and click Unban.

Configuring Ban Templates

Typing a fresh ban reason every time leads to inconsistency. txAdmin lets you create reusable ban templates under Settings > Global > Ban Templates. A template pre-fills the reason field when you open the ban form — useful for common infractions like “Cheating — Aimbot,” “Toxic behavior — final warning,” or “Racism/hate speech.” Standardized templates also help if you ever need to export your ban history or share it with another server’s moderation team.

Under Settings > Bans you can also configure whether the system actively checks players’ ban status on connect and customize the rejection message they see. Keep the message clear — something like “You are banned from this server. Appeal at discord.gg/yourserver” reduces the support burden on your admin team.

txAdmin Admin Permissions — Who Can Ban?

txAdmin’s permission system is separate from FiveM’s ACE system. Permissions are stored in txData/admins.json and managed through Admin Manager in the dashboard. The Master admin (set during initial setup) can grant or revoke individual permissions for every staff account. The player-enforcement permissions are:

Permission stringWhat it allows
players.warnIssue formal warnings to players
players.kickRemove a player from the current session
players.banBan or unban a player
players.whitelistApprove a player on a whitelisted server
players.freezeFreeze a player’s character in place
players.spectateObserve a player without being seen
players.remove_idsRemove stored hardware IDs from the database
players.direct_messageSend a private message to a player

A typical server structure gives trial moderators only players.warn and players.kick, promotes them to players.ban after a probation period, and reserves players.remove_ids and all_permissions for senior admins. The all_permissions string is the root access level — treat it like a server password.

ACE Permissions in server.cfg — Native Kick and Ban Commands

FiveM’s native Access Control Entry (ACE) system handles permissions for console commands and resources directly in server.cfg. If you use a framework like QBCore or ESX that exposes its own /ban or /kick commands — or if you write your own admin resource — you need to grant those commands via add_ace. You also use add_principal to assign players to groups by their identifier.

# Create an admin group with kick and ban rights
add_ace group.admin command.kick allow
add_ace group.admin command.ban allow

# Create a moderator group with kick only
add_ace group.moderator command.kick allow

# Assign a player to the admin group (use their license or Steam ID)
add_principal identifier.steam:110000112345678 group.admin
add_principal identifier.license:abc123def456 group.moderator

For a complete walkthrough of the ACE system including inheritance and resource-level permissions, see the ACE Permissions guide in the XGamingServer docs. You can also pair this with framework-level admin commands in QBCore for a layered moderation setup.

For the raw console kick command (provided by the rconlog resource and available in the live server console), the syntax is:

clientkick [server-id] [reason]
# Example:
clientkick 43 Suspected rule violation — pending review

Find the player’s server ID with the status console command. This is a session kick only — it does not create a txAdmin ban record.

Script-Level Kicks with DropPlayer

DropPlayer is a server-side FiveM native that disconnects a player from inside a Lua, JavaScript, or C# resource. It is the building block of automated enforcement — anti-cheat scripts, anti-exploit resources, and connection validators all use it. The function signature is:

-- Lua (server-side only)
DropPlayer(source, reason)

-- Example: kick the connecting player if they fail a check
AddEventHandler('playerConnecting', function(name, setKickReason, deferrals)
    local src = source
    -- ... your validation logic ...
    if not passedCheck then
        CancelEvent()
        setKickReason("Connection rejected: failed identity check.")
    end
end)

DropPlayer is strictly server-side — calling it from a client-side script causes a nil value error. It also does not create a txAdmin ban record; it only drops the current session. If you want the kick to carry long-term weight, pair it with a txAdmin ban via the dashboard or use your framework’s server-side ban function that writes to the ban table.

The playerDropped event fires on the server whenever any player disconnects (voluntarily or via DropPlayer), letting you log drop reasons to a Discord webhook or database. See the FiveM screenshot and Discord logging guide for a practical logging setup.

Slowing Down Ban Evaders

txAdmin links bans to every identifier it has collected for a player — license, license2, Steam ID, FiveM ID (fivem:), Xbox Live, Discord, and IP address. A player who simply makes a new Steam account or changes their IP will likely still match on their FiveM license or hardware token, because those are collected on every connection and stored in playersDB.json.

Practical steps to tighten evader prevention:

  • Enable the ban check on connect. Under Settings > Bans, confirm that active ban checking is turned on. This ensures txAdmin inspects identifiers at connection time, not just at ban time.
  • Require Steam or FiveM link. In playerConnecting, reject any player who does not have a license or fivem: identifier present. This prevents connection without a traceable identity.
  • Use whitelist mode for private or invite-only servers. With whitelist enabled, players cannot join at all unless an admin has explicitly approved their account via players.whitelist. This is the strongest anti-evader layer available natively in txAdmin.
  • Document identifiers before banning. When you issue a ban through the txAdmin dashboard, the system captures all identifiers live. Banning from the player profile page (while they are still connected) captures more identifiers than banning from History after they have already left.
  • Keep playersDB.json backed up. If the database is lost, all ban history goes with it. Use Master Actions > Database Backup on a schedule, or copy the file off-server via your hosting panel.

If you are running a high-traffic public server where ban evasion is a persistent problem, some server owners layer in a third-party global ban list alongside txAdmin. These systems cross-reference hardware IDs and license hashes across multiple servers. txAdmin itself does not connect to any global ban database — its enforcement is local to your server only.

For a stable base to run all of this on, you need a host that keeps your server online 24/7 and gives you reliable console access. If you are still evaluating options, the XGamingServer FiveM hosting plans come with txAdmin pre-configured and full root console access so you can apply every setting in this guide without friction.

Frequently Asked Questions

Does txAdmin ban by hardware ID?

txAdmin collects and stores multiple identifiers for each player — including FiveM license, license2, Steam, Discord, Xbox Live, and IP — and ties bans to all of them. Whether a “hardware ID” specifically refers to a low-level hardware fingerprint depends on what FiveM’s token system exposes at connection time. In practice, the combination of license + license2 + FiveM token makes simple account swaps ineffective. txAdmin does not claim to provide kernel-level HWID banning; for that level of enforcement you would need a third-party anti-cheat that hooks deeper into the client.

What is the difference between DropPlayer and a txAdmin ban?

DropPlayer is a one-time session disconnect called from inside a resource script. It removes the player from the server immediately but does not create any persistent record — the player can reconnect as soon as the script no longer rejects them. A txAdmin ban writes a permanent record to playersDB.json and is checked on every future connection attempt. Use DropPlayer for automated real-time enforcement (anti-cheat, connection validation) and txAdmin bans for deliberate moderation decisions that should persist.

Where can I find the txAdmin ban history if I need to audit a moderation decision?

Open txAdmin and go to Players > History. Every warn, kick, and ban is logged there with the player’s name and identifiers, the reason given, the admin who issued it, and a timestamp. You can search by player name or identifier. Individual ban entries can be revoked (unbanned) directly from the History view. The underlying data lives in txData//data/playersDB.json, which you can inspect or back up directly if needed.

Ready to play?

Run your own FiveM server with XGamingServer

Spin up an always-on FiveM server your friends can join in minutes — no port-forwarding, no tech headaches.

99.9%Uptime SLA
< 5 minInstant setup
24/7Human support
DDoSProtected
Instant setup Your server is live in minutes with a one-click control panel.
Mods & plugins Install mods, plugins and workshop content in a few clicks.
DDoS protected Enterprise DDoS mitigation keeps your server online 24/7.
Low-latency hardware Premium CPUs & NVMe SSDs for lag-free multiplayer.
Free backups Automatic backups so your world is never lost.
Real human support Gamers helping gamers — 24/7, no bots, no scripts.

Pick your FiveM plan & play in minutes

See all plans
Starter $8.40/mo 4 GB RAM Renews $12/mo Buy now
Rookie $17.50/mo 8 GB RAM Renews $25/mo Buy now
Pro $24.50/mo 12 GB RAM Renews $35/mo Buy now