Venusanticheat docs

ExemptionService interface

Take a player out of checks for the session, exempt them from the cloud only, or move their movement tolerance.

Reach it through api.exemptions(). Exemption is what you reach for when your plugin does something that legitimately breaks physics — a lobby spin, a cutscene, a scaffold tutorial — and you do not want Venus to see it.

xyz.kaosmc.anticheat.api.exemption.ExemptionService
SignatureDescription
void exempt(User)Stops all checks for this user until they reconnect.
boolean isExempt(User)Whether checks are currently skipped for them.
void exemptFromCloud(User, boolean)Cloud-only exemption. Local checks keep running.
boolean isExemptFromCloud(User)Whether the cloud is currently skipped for them.
void tolerance(User, ToleranceLevel)Applies a movement tolerance preset for the session.
ToleranceLevel tolerance(User)The active preset, or null when none has been set.
exempting during a scripted sequence
private void startCutscene(User user) {
    api.exemptions().exempt(user);
    playCinematic(user);
}

private void endCutscene(User user) {
    // Reconnecting clears exemption on its own; an explicit rejoin of checks
    // is just removing the exemption you added.
    if (api.exemptions().isExempt(user)) {
        api.exemptions().tolerance(user, ToleranceLevel.BALANCED);
    }
}

Two scopes

  • Full exemption — nothing runs: no movement checks, no combat checks, no cloud. The player is effectively invisible to Venus until they reconnect.
  • Cloud exemption — local checks continue, but the player's signals stop going to the cloud and no cloud mitigation is applied to them. Useful when a player's connection looks pathological to the models but you know the reason.

Tolerance vs exemption

Exemption turns checks off; tolerance changes how strict they are. For a parkour map,tolerance(user, ToleranceLevel.PERMISSIVE) keeps detection running with more headroom — you still see real flags, they are just rarer. Reach for full exempt only when nothing should run at all. ConfigOverride exposes the same presets with finer per-feature control.

See User for the per-user exempt() shorthand, and ConfigOverride for the full override surface.