BlazeBans/Start here

First setup

BlazeBans works out of the box, but seven settings decide whether it fits your server. Change these before staff start using it, because some of them are awkward to change once records exist.

1. Server identity

In settings.yml:

yaml
server:
  id: "survival"
  display-name: "Survival"
  scope: "server"

id is the key stored on every punishment and must be unique per server. display-name is what players and staff see. scope decides whether a punishment issued here applies everywhere by default (global) or only here (server).

Single server, no proxy: set scope: "global". It is simpler, and there is no second server for a local punishment to mean anything against.

Network: keep scope: "server" and let staff use --scope server:global for network-wide bans, or set it to global if that is your default. Full detail in Servers and scope.

yaml
punishments:
  appeal-url: "https://yourserver.com/appeal"

This fills {appeal_url} on ban screens and in mute messages. The default is https://example.com/appeal, and a banned player reading that is the most common thing people forget to change.

3. Storage

database.yml defaults to SQLite, which is right for a single server. Change it only if you run a network or already have a database server. See Database.

4. Staff hierarchy

Stop staff punishing each other. If you run LuckPerms, map your groups to weights in settings.yml:

yaml
staff-hierarchy:
  group-weights:
    helper: 10
    moderator: 50
    admin: 100
    owner: 1000

A staff member can only punish someone whose weight is at or below their own. BlazeBans reads primary and inherited groups from LuckPerms directly, so no extra permission nodes are needed. Without LuckPerms, grant blazebans.weight.<number> instead.

Console ignores hierarchy entirely.

5. Duration limits

Cap how long each rank can punish for:

yaml
duration-limits:
  tiers:
    - permission: "blazebans.duration.junior"
      max: "7d"
    - permission: "blazebans.duration.moderator"
      max: "30d"
    - permission: "blazebans.duration.admin"
      max: "permanent"

Grant one node per rank. The highest matching tier wins, so an admin who also holds the junior node still gets permanent. Staff with no tier at all are unlimited, which is why these are worth setting before handing out blazebans.command.ban.

6. Permissions for staff

The minimum useful moderator set:

txt
blazebans.command.ban
blazebans.command.mute
blazebans.command.warn
blazebans.command.kick
blazebans.command.unban
blazebans.command.unmute
blazebans.command.history
blazebans.command.lookup
blazebans.command.punishgui
blazebans.staff.notify
blazebans.duration.moderator

blazebans.admin grants administrative access and should stay with owners. The complete list is in Permission reference.

7. Templates

Open the web editor and adjust the default templates to your rules:

minecraft
/blazebans editor

The defaults ship with sensible reasons and durations for a general survival server. If your rules differ, changing them now means staff never learn a set of reasons you later remove. Templates also drive the punish GUI, so this is the same job as configuring that.

Optional, but usually worth it

Discord webhooks. Punishments posted to a staff channel give you a searchable log outside the game. Set up in Discord webhooks.

AutoMod. Off by default. Turn it on once you have decided what should be filtered, in AutoMod.

Theming. The plugin uses BlazeStudios orange by default. Ten colour values in messages/en_us.yml change the whole thing. See Messages and theming.

Then read this

Best practices covers how to actually run the plugin day to day, starting with the habit worth building first: having staff use /punish so BlazeBans applies the right punishment and duration from your ladders rather than leaving it to whoever is online.

Applying changes

Most changes take effect with a reload, no restart needed:

minecraft
/blazebans reload

The exception is command names and aliases under commands: in settings.yml. Those register with the server at startup, so changing them needs a full restart.

Reload reports what actually changed, file by file. If a file has an error, BlazeBans keeps the working configuration rather than half-applying the broken one.