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.
Running a server yourself? Start there.