NoChatReports Download

Earning the green check: safe server status

For developers of mods, plugins, or server software that fight chat reports: since 1.19.2-v1.11.0, No Chat Reports clients can recognize your servers as safe — the "Secure" status in chat and the "Safe Server" icon in the multiplayer menu.

Two things earn it. First, add a boolean preventsChatReports: true to the server's ping response. The mod does it with a mixin into ServerStatus.Serializer:

@Mixin(ServerStatus.Serializer.class)
public class MixinServerStatusSerializer {

    @Inject(method = "serialize(...)Lcom/google/gson/JsonElement;",
            at = @At("RETURN"))
    private void onSerialize(ServerStatus status, Type type,
            JsonSerializationContext ctx,
            CallbackInfoReturnable<JsonElement> info) {
        ((JsonObject) info.getReturnValue())
            .addProperty("preventsChatReports", true);
    }
}

Second, make sure enforce-secure-profile can't get in the way. It defaults to true since 1.19.1, and a server that demands signed messages gets marked unsafe no matter what else it does — the player would have to trust the server to strip signatures afterwards, and that trust requirement is removable. The mod forces the option off via a mixin into DedicatedServer:

@Mixin(DedicatedServer.class)
public class MixinDedicatedServer {

    @Inject(method = "enforceSecureProfile",
            at = @At("RETURN"), cancellable = true)
    private void onEnforceSecureProfile(
            CallbackInfoReturnable<Boolean> cir) {
        cir.setReturnValue(false);
    }
}

Replicate both through whatever mechanism your platform gives you. FreedomChat is a known supporter on the plugin side. For questions, Aizistral is reachable on Discord.

Condensed from the official wiki's How to Get Safe Server Status article, which stays the canonical reference.

Server setup guide

Running a server yourself? Start there.