Skip to content

Server Configuration

Kole edited this page Oct 4, 2026 · 1 revision

Server Configuration

Defixus stores server data beneath config/Defixus-anticheat/. Files are created on first launch.

Defixus-anticheat/
├── verification/
│   ├── settings.json
│   ├── mod_whitelist.json
│   ├── mod_blacklist.json
│   ├── pack_whitelist.json
│   ├── pack_blacklist.json
│   ├── graymods/
│   └── graypacks/
├── discord/webhook.json
├── console/discord-webhook.json
└── statistics/
    ├── global.json
    └── players/<uuid>.json

Verification settings

verification/settings.json currently uses schema config-version: 1:

{
  "config-version": 1,
  "language": "en_us",
  "library-bypass": true,
  "block-pack-change": false,
  "kick-unapproved-mods": false,
  "kick-unapproved-packs": false,
  "unapproved-mod-warning": "",
  "unapproved-pack-warning": ""
}
Setting Meaning
config-version Configuration schema version, not the mod version. Do not edit manually. Missing legacy values migrate from 0 to 1.
language Server default for translated server messages and Discord event messages. Supported local languages: en_us, it_it, es_es, de_de, fr_fr.
library-bypass Allows recognized library/dependency mod IDs without explicit whitelist entries.
block-pack-change Blocks the normal resource-pack selection UI and ignores reported pack changes.
kick-unapproved-mods Treats mods absent from the mod whitelist and graylist as prohibited. Default false means warn instead.
kick-unapproved-packs Treats packs absent from the pack whitelist and graylist as prohibited. Default false means warn instead.
unapproved-mod-warning Optional replacement sentence preceding unapproved mod names. Blank uses the translated built-in message.
unapproved-pack-warning Optional replacement sentence preceding unapproved pack names. Blank uses the translated built-in message.

Blacklisted content and graylisted hash mismatches are rejected regardless of the two kick-unapproved-* switches. Whitelisted entries are accepted by identifier without a file-hash comparison. Built-in allowlist entries are also included.

Lists and graylists

  • mod_whitelist.json and mod_blacklist.json: JSON arrays of mod IDs.
  • pack_whitelist.json and pack_blacklist.json: JSON arrays of pack names. A trailing * matches a name prefix.
  • graymods/: reference mod JARs. The mod ID is read from fabric.mod.json when available; otherwise the JAR filename is used. Its SHA-256 fingerprint is compared.
  • graypacks/: reference ZIP files or directories. The name is matched to the client pack name, and its SHA-256 fingerprint is compared.

For example, a pack list is a JSON array, not a bare comma-separated string:

[
  "vanilla",
  "my-server-pack",
  "fabric*"
]

If an ID/name is both explicitly blacklisted and otherwise allowed, the blacklist is checked first. Keep policies unambiguous and test with warning-only settings before activating kicks.

Client language

Each client may choose a Defixus message language from the Defixus settings entry in Mod Menu. The preference is saved locally to config/Defixus-anticheat/client.json and sent to the server for player-facing Defixus messages. It does not change Minecraft's UI language. Server-configured nonblank warning text is shown verbatim.

Reload and migration

Run /defixus reload after changing verification lists, settings, or graylist files. The reload recalculates the hash caches; joins are blocked while it runs. Runtime console forwarding is initialized at server lifecycle start and changing its file requires a server restart.

Legacy verification, statistics, player-statistics, and Discord formats are migrated by the mod. Migration avoids overwriting existing destination files. Back up the full configuration directory before upgrading and retain the original files until the new installation has been checked.

Data and privacy

Statistics include UUIDs, player names, timestamps, session/kick counts, violation history, and recent mod details. Discord alerts can expose player identity and reported client content. Runtime console forwarding can also include chat/commands, paths, and exceptions. Limit access to these files and Discord channels, and follow your community's privacy obligations.

Clone this wiki locally