Skip to content

Manage exceptions

An exception lets a specific player through a ban your organization does not own — an entry that came in from a connected ban source. Use one when an imported ban hits a player you want to allow anyway: a false positive, or an old entry from another community.

An exception never covers a ban you issued. Revoking is the only way to stop one of your own, and heliana holds that split at both ends: the screen offers Revoke on your own entries and Exclude on imported ones, and the server refuses to record an exception at all while a ban of your own is still in force on that player — the request comes back as OwnBanExists. Your own ban is cured by revoking it; the exception is never created in the first place.

Exceptions live on the ban they suppress, in the player’s Bans tab — and the same Exclude / Remove exclusion controls sit on that ban’s row on the organization’s Bans screen, so you don’t have to open the player to act on an imported entry you’re already looking at there.

An imported ban whose coverage has never resolved to a player — nobody has seen that identity on your servers yet — has nothing an exception could attach to. Its row on the Bans screen carries no Exclude button; hovering it explains why. This is a narrower case than the ban itself, which the sync can still record and enforce with no player behind it at all.

  1. On the player’s Bans tab, find the imported ban you want lifted for this player and click Exclude. Imported entries are the ones offering Exclude; your own offer Revoke.
  2. Type a Reason if you want one on record — it is optional — and set Scope: All servers, or one named server.

Scope defaults to All servers, so an exclusion you confirm without touching it covers every server in your organization; picking one server leaves the imported ban enforcing on all the others. The field appears only if you can read the server inventory (server:read) and your organization has servers — without it, the exclusion is org-wide.

The ban row then carries an Excluded line with that scope — All servers, or a count of servers — and the reason. The line shows the count, not the server’s name.

An exception covers the player, not the one row you made it from: while it stands, every imported ban whose coverage it overlaps reads Remove exclusion instead of Exclude. The screen therefore holds one exception at a time, and its scope is either all servers or a single named one — excluding two servers while a third keeps enforcing is not something this screen can do.

On the same ban row the button now reads Remove exclusion. Confirm. The ban enforces against that player again.

  • An exception doesn’t touch the ban record itself — it only tells heliana to stop enforcing that ban against this player. The entry stays, and a later sync of its source keeps refreshing it.
  • It only ever applies to a ban you don’t own. A ban you issued is never suppressed by one, and while such a ban is in force heliana refuses to record an exception at all. A ban of your own that is already revoked or expired does not stand in the way.
  • An exception’s coverage is not a snapshot: it’s resolved from the player’s current identities on every enforcement check, not frozen when you create the exception. It suppresses a ban when the two coverages share at least one identity — an overlap, not one set containing the other. An identity linked to the player later starts falling under the exception; the ban’s own coverage, by contrast, is fixed at the moment it was issued.
  • If the imported ban is later dropped by its source or expires, the exception simply stops mattering; it isn’t cleaned up on its own.
Action What it needs
See a ban and whether it is excluded Bans: Read (ban:read)
Add or remove an exception Ban lists: Manage (banList:manage)

Adding and removing an exception is gated by the ban-list key rather than the ban key, and that is deliberate: an exception is a decision about a list you imported, while revoking is a decision about a ban of your own. See Roles & permissions.