BlazeBans/Automatic enforcement

Ban evasion

Automatically ban a joining account when another account on the same stored IP already has an active ban.

Configuring it

In settings.yml:

yaml
punishments:
  ban-evasion:
    # Ban a joining account when another account on the same stored IP has an active ban.
    enabled: false

    # How long the automatic ban lasts.
    duration: "permanent"

    # Reason recorded on the automatic ban.
    reason: "Ban evasion"

    # Hide automatic bans from the public punishment broadcast.
    silent: false

It also needs IP storage:

yaml
privacy:
  store-ip-addresses: true

Without a stored address there is nothing to match against, and the feature does nothing regardless of its own switch.

How it works

When a player joins, BlazeBans checks whether any other account on their stored IP has an active ban. If one does, a BAN record is created for the joining account with the configured duration and reason, and they are removed with the normal ban screen.

The record is ordinary. It appears in /history, it can be revoked with /unban, and it counts toward the player's totals. Staff holding blazebans.staff.notify get an alert through the automod-ban-evasion-staff message.

Why it is off by default

Because it catches people who are not evading anything.

Two brothers share a computer. One gets banned for griefing. The other logs in that evening and is permanently banned for evasion, having done nothing. Same for shared houses, school networks, university halls, and anyone behind carrier-grade NAT on mobile data.

That is not a rare edge case. On a server with a young player base it is a weekly occurrence.

Making it usable

If you turn it on, three changes make the false positives survivable.

Do not make it permanent.

yaml
punishments:
  ban-evasion:
    duration: "7d"

A genuine evader banned for a week comes back and gets caught again. An innocent sibling banned for a week is angry; banned forever, they are gone.

Make the reason explain itself.

yaml
punishments:
  ban-evasion:
    reason: "Automatic: another account on this connection is banned. Appeal if this is not you."

The reason appears on the ban screen. Someone who has genuinely done nothing needs to know what happened and that appealing is worth their time.

Set an appeal URL that works.

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

This is the setting that turns a false positive from a lost player into a five-minute support ticket. It is also the one most often left as https://example.com/appeal.

Keeping people out of it

Grant blazebans.bypass.ban to accounts that should never be caught, or add them to exempt.players. Both prevent the automatic ban.

Staff accounts are the obvious case. A moderator testing a ban on an alt should not lock themselves out.

The alternative

Detection without automation. Leave ban evasion off, keep IP storage on, and use /alts when something looks wrong.

minecraft
/alts NewPlayer

A moderator sees the linked banned account, sees that the new account joined an hour after the ban and went straight to the same behaviour, and bans it manually. That takes thirty seconds and does not catch anyone's brother.

This is the better default for most servers. Turn on automation when the volume of evasion makes manual review impractical, not before.