BlazeBans/Punishing players

Proof

Evidence attached to the record it justifies. A punishment with a screenshot on it survives an appeal argument; one without it comes down to whose memory you trust.

Attaching proof when punishing

minecraft
/ban Steve 30d Cheating --proof https://imgur.com/a/example

One URL, no spaces. It is checked before it is saved: anything containing whitespace, <, >, quotes, or backslashes is rejected rather than saved. A bare domain gets https:// added.

A URL sitting loose in the reason is also picked up, so /ban Steve 30d Cheating https://imgur.com/a/example works. Use --proof anyway. It keeps the link out of the stored reason text, which is what appears on the ban screen.

Adding proof afterwards

minecraft
/proof add <player> <url>

Attaches evidence to the player's most recent applicable punishment. Needs blazebans.command.proof.add.

This covers the common case: something urgent happens, a moderator punishes first, then uploads the clip and attaches it a minute later.

Viewing proof

minecraft
/proof view <player>

Lists every stored proof entry for that player with its ID and the punishment it belongs to. Needs blazebans.command.proof.view.

Proof also appears on the player's profile menu, on the record in /history, and as an "Open proof" button on the Discord embed.

Removing proof

minecraft
/proof remove <player> <proof_id>

The ID comes from /proof view. Needs blazebans.command.proof.remove, which is worth keeping to senior staff: removing evidence should be a deliberate, traceable act rather than something any moderator can do.

Requiring proof

Templates can demand evidence before they can be used:

yaml
templates:
  ban:
    General-Cheating:
      duration: 30d
      reason: Cheating
      proof-required: true

This is gated behind a global switch that ships off:

yaml
experimental:
  proof-requirements:
    enabled: true

Both have to be on. With the global switch off, proof-required on a template is ignored.

It is disabled by default on purpose. Blocking a punishment because a moderator has not uploaded a clip yet is the wrong tradeoff when someone is actively griefing. Turn it on once your team has the habit of recording first, and use it on the templates where evidence genuinely matters rather than on all of them.

Staff with blazebans.proof.bypass are not blocked. Grant it to administrators who need to act during an incident.

In the punish GUI

When a required template is selected in the punish GUI, a prompt appears before the confirmation step. On 1.21.6 and newer that is a native dialog with a text field; on older servers and clients it falls back to a chat prompt where typing cancel backs out.

An empty or invalid URL is refused with a message showing an acceptable format.

BlazeBans stores a URL and nothing else. It does not host, mirror, or archive anything, so the link is only as durable as the service behind it.

Use somewhere that keeps files: a Discord attachment in a private staff channel, an image host you control, or your own storage. Screenshots pasted into a channel that gets purged leave you with a dead link on the record and no way to recover it.

Permissions

NodeGrants
blazebans.command.proof.viewReading proof entries
blazebans.command.proof.addAttaching proof to a punishment
blazebans.command.proof.removeDeleting a proof entry
blazebans.proof.bypassSkipping a template's proof requirement