Skip to content
Minecraft Tool

Ban List Generator

Generate ban and tempban commands for Minecraft server moderation.

Add Ban Entry

Introduction

Minecraft server operators migrating to a new host, merging two communities, or rolling back from a backup often need to reconstruct or combine banned-players.json and banned-ips.json files. Ban List Generator produces valid Minecraft ban-list JSON from a list of usernames, UUIDs, or IP addresses, complete with timestamps, reasons, and expiration dates in the exact format the server expects.

What Is Ban List Generator?

Ban List Generator creates the banned-players.json and banned-ips.json files that Minecraft servers read on startup to enforce bans. Each entry in these files must follow a specific schema: a UUID (for players), a name, a creation timestamp in ISO-8601 format, a source (the operator or console that issued the ban), an expiration date or 'forever' for permanent bans, and a reason string. The generator ensures every field conforms to Minecraft's parser expectations so the server does not silently skip malformed entries on load.

The tool is most valuable during server migrations and merges. When two communities decide to share a server, combining their ban lists requires merging two JSON arrays without duplicating entries — a manual process that is tedious and error-prone when the lists contain hundreds of entries. Ban List Generator deduplicates by UUID or IP, resolves conflicting ban reasons (keeping the stricter one), and outputs a single consolidated file that the merged server can read immediately.

For temporary bans, the generator computes the expiration timestamp from a duration string like '30d' or '7d12h' and writes the resulting ISO-8601 date. Minecraft's internal parser uses this expiration field to automatically unban the player when the time arrives, so getting the format right is critical — a malformed date causes the ban to last forever or not take effect at all. The generator's duration parser handles compound durations like 14d6h and edge cases like month-based durations, converting them into the precise ISO timestamp Minecraft expects.

Ban List Generator Examples

InputOutput
Players: GreiferSteve, xX_H4cker_Xx, TnTSpammer | Reason: Griefing spawn | Duration: 30d | Banned by: AdminAlexbanned-players.json with three entries, each containing the player's resolved UUID, reason 'Griefing spawn', expires 30 days from now, source 'AdminAlex'
IPs: 192.168.1.100, 10.0.0.55 | Reason: Botnet raid | Duration: forever | Banned by: Consolebanned-ips.json with two entries, each with the IP, reason 'Botnet raid', expires 'forever', source 'Console'
Merge: Upload existing banned-players.json (45 entries) + add new players: BadActor99, AltAccount01 | Reason: Ban evasion | Permanent | Banned by: ModSarahConsolidated banned-players.json with 47 entries, original 45 preserved, 2 new entries appended, deduplicated by UUID

Key Features of Ban List Generator

  • Automatic UUID resolution from Minecraft usernames via the Mojang API so player bans include the required uuid field
  • Duration parsing that accepts formats like 7d, 30d12h, or 6h30m and converts them to ISO-8601 expiration timestamps
  • Dual output for both banned-players.json and banned-ips.json with correct schemas matching Minecraft server expectations
  • Merge mode that combines two existing ban-list files, deduplicates entries by UUID or IP, and preserves the stricter ban when conflicts exist
  • Bulk input accepting one entry per line with optional per-line reason overrides using a pipe-delimited format
  • Timestamp formatting that produces the exact ISO-8601 string Minecraft requires, including the trailing timezone offset

How It Works

1

Enter Player Names or UUIDs to Ban or Pardon

Paste a list of Minecraft usernames or UUIDs that you want to ban or pardon. The tool accepts entries separated by newlines, commas, or spaces, making it easy to process lists copied from chat logs, moderation tools, or database exports without manual reformatting.

2

Choose Ban or Pardon and Set Options

Select whether to generate ban commands or pardon commands for the provided list. For bans, optionally add a reason string and duration that will be included in each generated command. These details appear in server logs and are shown to banned players when they attempt to connect.

3

Generate and Copy the Command Batch

The tool outputs a complete list of slash commands, one per line, that you can paste into your server console or execute via a command block. All commands use correct syntax for the ban or pardon operation you selected, with properly quoted reason strings and formatted duration parameters.

Who Uses This

Server Moderators

generating batch ban commands for groups of players identified as cheaters or griefers in a single incident, processing all offenders at once instead of typing individual ban commands for each player manually

Server Administrators

creating pardon command batches after temporary ban periods expire, efficiently lifting restrictions for multiple players at once when their ban duration ends rather than managing each unban individually

Anti-Cheat System Operators

converting lists of flagged player names from anti-cheat detection reports into executable ban commands, streamlining the process between detection and enforcement on busy servers with frequent incidents

Frequently Asked Questions

Can I generate temporary bans with expiration times?
Yes. When selecting the ban option, you can specify a duration using the standard Minecraft time format such as 7d for seven days or 24h for twenty-four hours. The generated commands will include the duration parameter.
Does the tool support IP ban commands?
The current version generates player ban and pardon commands using usernames and UUIDs. For IP-based bans, you would need to manually adjust the generated commands or use the ban-ip command format separately.
What format should I use for the player list input?
Enter one player name per line for the cleanest results. The tool also accepts comma-separated or space-separated lists. Duplicate entries are automatically removed from the output to prevent running the same command twice.