Configuration Reference¶
This page documents every key in Verité's config.yml. Defaults shown are the values Verité ships with. Config keys, values, and code appear exactly as they are written in the file (ASCII), while prose uses the accented name Verité.
Verité's configuration is grouped into modules:
general: plugin-wide settings.chat.filter: the chat filter, Veritédoux.moderation: the moderation system, Veritésauver.invsee: inventory viewing.vanish: the vanish system, Veritévoiler.
Editing flags in game
Many of these keys can be read and changed from in game with /veriteflag, which patches the single key on disk and keeps every comment in the file. This command is gated behind the veritedoux.flag permission. Keys that /veriteflag can edit are marked in the tables below. Most edits apply live; the module gates (chat.filter.enabled, moderation.enabled, vanish.enabled) and the two auto-update flags require a restart to take effect.
General¶
The general section holds plugin-wide settings.
| Key | Default | Controls |
|---|---|---|
general.prefix |
<#808080>[<#B1C7F0>Verité<#808080>]<reset> |
The public facing prefix on every Verité message, in MiniMessage format. |
general.auto.update.config |
true |
Automatically appends new keys to the config when the plugin updates. Does not bypass tokenizer updates. Editable with /veriteflag as auto.update.config, but requires a restart to apply. |
Chat Filter (Veritédoux)¶
The chat.filter section configures message filtering.
chat.filter:
enabled: true
auto.update.eve: false
block.message: "@prefix Your message wasn't sent. Please keep chat friendly."
repeat.message: "@prefix You've already sent that message. Please wait a moment before repeating yourself."
| Key | Default | Controls |
|---|---|---|
chat.filter.enabled |
true |
Enables the chat filter module. Editable with /veriteflag as chat.filter.enabled, but requires a restart to apply. |
chat.filter.auto.update.eve |
false |
Automatically updates the .eve configuration files when new entries are added. When enabled, custom entries are overwritten or discarded when the .eve files are replaced with updated versions. Editable with /veriteflag as auto.update.eve, but requires a restart to apply. |
chat.filter.block.message |
@prefix Your message wasn't sent. Please keep chat friendly. |
The notice shown when a message is blocked by the filter. Supports &-codes and &#RRGGBB hex. Use @prefix to insert your chosen prefix. |
chat.filter.repeat.message |
@prefix You've already sent that message. Please wait a moment before repeating yourself. |
The notice shown when a message is blocked as a repeat. Supports &-codes and &#RRGGBB hex, and @prefix. |
Self-harm message
The self-harm block message cannot be changed. This ensures users are always given the proper guidance and support when dealing with self-harm related content.
Languages¶
The chat.filter.general.lang block chooses which languages are content-checked and which detection categories run for each. Profanity detection is disabled by default so that servers which permit casual swearing are unaffected. Adjust these to match your server's tolerance.
Each language block supports these keys:
| Key | Default | Controls |
|---|---|---|
allowed |
true |
Whether the language is permitted in chat. |
self.harm.detection |
true |
Detects self-harm related content in this language. |
abuse.detection |
true |
Detects abusive content in this language. |
slur.detection |
true |
Detects slurs in this language. |
Profanity keys are per language. Each is false by default. Set one to true to flag profanity for that dialect or region.
| Language | Profanity keys (all default false) |
|---|---|
english |
profanity.global |
spanish |
profanity.spain, profanity.argentinian, profanity.chilean, profanity.colombian, profanity.mexican, profanity.peruvian, profanity.venezuelan, profanity.uruguayan, profanity.cuban, profanity.dominican, profanity.panamanian, profanity.global |
french |
profanity.france, profanity.canadian |
portuguese |
profanity.european, profanity.brazilian |
german |
profanity.global |
italian |
profanity.global |
Two additional entries cover text whose language could not be resolved:
| Key | Default | Controls |
|---|---|---|
chat.filter.general.lang.unknown.lang.allowed |
true |
Whether messages in a language Verité does not recognize are allowed. |
chat.filter.general.lang.undeterminable.allowed |
true |
Whether messages whose language cannot be determined are allowed. |
An example language block:
chat.filter:
general.lang:
english:
allowed: true
self.harm.detection: true
abuse.detection: true
slur.detection: true
profanity.global: false
Advanced¶
The chat.filter.advanced block holds tuning for readability, spam, and repeat detection.
chat.filter:
advanced:
keep.chat.readable: false
block.possible.spam: false
block.repeat.messages: false
block.repeat.exact: true
block.repeat.near: true
block.repeat.history.size: 5
block.repeat.window.ms: 5000
block.repeat.similarity.threshold: 0.85
block.unsupported.languages: false
| Key | Default | Controls |
|---|---|---|
keep.chat.readable |
false |
Blocks messages that may make chat unreadable, such as fancy font substitutions, even when the message would otherwise pass the filter. Emojis are not blocked. Editable with /veriteflag as keep.chat.readable. |
block.possible.spam |
false |
Uses Verité's tokenizer to detect and block possible spam and advertisements. Editable with /veriteflag as block.possible.spam. |
block.repeat.messages |
false |
Enables repeat message detection. Every key below only applies when this is enabled. |
block.repeat.exact |
true |
Blocks a message identical to a recent one from the same user. Comparison ignores case, accents, and repeated letters, so HELLO, hello, and helllo all count as the same. |
block.repeat.near |
true |
Blocks a message that is similar (but not identical) to a recent one from the same user. How similar counts as a match is set by block.repeat.similarity.threshold. |
block.repeat.history.size |
5 |
How many of each user's most recent messages are remembered and checked for repeats. Set to -1 to remember all messages, or 0 to disable repeat detection entirely. |
block.repeat.window.ms |
5000 |
How far back in time (milliseconds) a remembered message still counts as a repeat. Messages older than this are ignored. Set to -1 to ignore time and remember messages indefinitely, or 0 to disable repeat detection entirely. |
block.repeat.similarity.threshold |
0.85 |
For near-repeat matching, how alike two messages must be to count as a repeat. A value between 0 and 1, where 1 means identical. Higher is stricter (fewer blocks); lower is more aggressive. |
block.unsupported.languages |
false |
Blocks languages Verité does not yet support. The supported languages are English, Spanish, French, Italian, Portuguese, and German. All other languages are blocked when this is enabled. Editable with /veriteflag as block.unsupported.languages. |
Language Detection Weights¶
The chat.filter.advanced.language block tunes how Verité assigns a language to each word in a message.
chat.filter:
advanced:
language:
context.weight: 0.6
smoothing.passes: 3
known.word.weight: 50
unknown.word.weight: 0.1
| Key | Default | Controls |
|---|---|---|
context.weight |
0.6 |
A value from 0 to 1 for how hard neighbouring words pull a word's language. Higher means a word leans more on its neighbours and less on its own base rate. Editable with /veriteflag as language.context.weight. |
smoothing.passes |
3 |
How many times the neighbour pull is applied across the line. Editable with /veriteflag as language.smoothing.passes. |
known.word.weight |
50 |
Weight for a word a language's dictionary knows but the rate table does not list. Higher means dictionary membership counts for more. |
unknown.word.weight |
0.1 |
Floor weight for a word no dictionary knows and the rate table omits. |
Evasion Passes¶
The chat.filter.advanced.evasion block toggles the passes that undo attempts to slip content past the filter. Each is true by default. Disabling passes may reduce latency slightly.
chat.filter:
advanced:
evasion:
homoglyph: true
entity: true
deobfuscate: true
segmentation: true
fingerprint: true
| Key | Default | Controls |
|---|---|---|
homoglyph |
true |
Folds fullwidth, Cyrillic, and math-bold letter spoofs back to ASCII. Editable with /veriteflag as evasion.homoglyph. |
entity |
true |
Strips HTML entities and similar encodings. Editable with /veriteflag as evasion.entity. |
deobfuscate |
true |
Reverses character-inserted and spaced-out obfuscation. Editable with /veriteflag as evasion.deobfuscate. |
segmentation |
true |
Splits run-together words back into separate words. Editable with /veriteflag as evasion.segmentation. |
fingerprint |
true |
Catches transposed spellings. Editable with /veriteflag as evasion.fingerprint. |
Profanity Confidence¶
The chat.filter.advanced.use.profanity.confidence block sets the minimum confidence before a message is treated as profane.
| Key | Default | Controls |
|---|---|---|
enabled |
true |
Enables the profanity confidence threshold. Editable with /veriteflag as use.profanity.confidence.enabled. |
profanity.confidence.threshold |
0.30 |
The minimum confidence required to consider a message profane. Editable with /veriteflag as use.profanity.confidence.profanity.confidence.threshold. |
Moderation (Veritésauver)¶
The moderation section configures the moderation system.
moderation:
enabled: true
use.rank.weights: true
auto.ban.alts: false
expire.warns.after: 7d
shared.ip.scan.limit: 20
| Key | Default | Controls |
|---|---|---|
moderation.enabled |
true |
Enables the moderation module. Editable with /veriteflag as moderation.enabled, but requires a restart to apply. |
moderation.use.rank.weights |
true |
Compares LuckPerms group weight so staff cannot punish equal or higher ranks. Operators are always treated as the highest rank, regardless of LuckPerms weight. |
moderation.auto.ban.alts |
false |
Automatically bans alts of a banned player, regardless of whether the player was IP-banned. Discouraged on servers that share IP addresses between distinct users. Editable with /veriteflag as moderation.auto.ban.alts. |
moderation.expire.warns.after |
7d |
How long a warning counts as active before it lapses. |
moderation.shared.ip.scan.limit |
20 |
The maximum number of accounts shown in a duplicate IP-scan. Editable with /veriteflag as moderation.shared.ip.scan.limit. |
Muted Command Blacklist¶
moderation.muted.command.blacklist lists commands a muted player may not use.
Proxy injection
On a network with proxy injection, these commands may not be blocked by Verité, meaning a muted user could still use them.
The shipped list is:
moderation:
muted.command.blacklist:
- "me"
- "say"
- "tell"
- "whisper"
- "reply"
- "pm"
- "message"
- "msg"
- "msgall"
- "tellall"
- "speak"
- "emsg"
- "epm"
- "etell"
- "ewhisper"
- "w"
- "m"
- "t"
- "r"
- "mail"
Exempt¶
The moderation.exempt block controls how rank weight comparisons treat equal-weight targets.
| Key | Default | Controls |
|---|---|---|
use.group.weights |
false |
Allows acting on an equal-weight target when group weights are in use. Editable with /veriteflag as moderation.exempt.use.group.weights. |
permit.same.weight |
true |
Permits acting on a target of the same weight. Editable with /veriteflag as moderation.exempt.permit.same.weight. |
Punish Message Templates¶
moderation.punish.message.templates sets the text shown to punished players and to staff. Templates support \n (newline) and the quantifiers @duration, @enforcer, @target, @reason, @punishment, @total.warns, and @remaining. If no reason was set, @reason is replaced with No reason provided.
moderation:
punish.message.templates:
ban.template.temporary: {You have been banned for @duration.\n@reason}
ban.template.permanent: {You have been permanently banned.\n@reason}
mute.template.temporary: {You have been muted by @enforcer for @duration.\n@reason}
mute.template.permanent: {You have been muted by @enforcer.\n@reason}
mute.notice: {You are muted. Time remaining: @remaining}
mute.notice.permanent: {You are muted.}
warn.template: {You have been warned by @enforcer. Active warnings: @total.warns\n@reason}
kick.template: {You have been kicked by @enforcer.\n@reason}
admin.receipt.template: {@target was @punishment by @enforcer.\n@reason}
| Key | Default |
|---|---|
ban.template.temporary |
{You have been banned for @duration.\n@reason} |
ban.template.permanent |
{You have been permanently banned.\n@reason} |
mute.template.temporary |
{You have been muted by @enforcer for @duration.\n@reason} |
mute.template.permanent |
{You have been muted by @enforcer.\n@reason} |
mute.notice |
{You are muted. Time remaining: @remaining} |
mute.notice.permanent |
{You are muted.} |
warn.template |
{You have been warned by @enforcer. Active warnings: @total.warns\n@reason} |
kick.template |
{You have been kicked by @enforcer.\n@reason} |
admin.receipt.template |
{@target was @punishment by @enforcer.\n@reason} |
Punishment Tree¶
The moderation.tree block defines the punishment categories, the escalation steps within each category, and which staff groups may enact which categories. Each category applies its punishments in order. Supported punishment types are warn, mute, kick, and ban. A duration after a colon (for example ban: 14d) makes that step temporary; the same type with no duration is permanent. The final minecraft: entry in each category is the item shown for that category on the punishment GUI.
| Key | Default | Controls |
|---|---|---|
moderation.tree.enabled |
true |
Enables the punishment tree. |
moderation.use.fields |
true |
Uses Minecraft 1.21.7+ Fields for punishment completion rather than chat. |
Permissions¶
moderation.tree.permissions.luckperms maps LuckPerms group names to the categories they may enact. Hierarchy is supported top-down: if your groups go helper then mod then admin, admin inherits the mod and helper categories, and mod inherits the helper categories. Replace the group names with your own.
moderation:
tree:
permissions:
luckperms:
helper: {harassment, threats, spam, advertising, macroing, misinformation, inappropriate.content}
mod: {exploiting, discrimination, impersonation}
admin: {hacking, fraud, evading.punishment, inappropriate.username, inappropriate.skin, griefing}
| Group | Categories granted |
|---|---|
helper |
harassment, threats, spam, advertising, macroing, misinformation, inappropriate.content |
mod |
exploiting, discrimination, impersonation |
admin |
hacking, fraud, evading.punishment, inappropriate.username, inappropriate.skin, griefing |
Categories¶
moderation.tree.categories lists each category and its ordered escalation steps.
moderation:
tree:
categories:
harassment: {kick, ban: 14d, ban, minecraft:nether_star}
threats: {mute: 5h, ban: 14d, ban, minecraft:tnt}
spam: {warn, mute: 10m, mute: 1h, ban: 3d, ban, minecraft:cactus}
advertising: {mute: 1d, ban: 3d, ban, minecraft:redstone_block}
macroing: {warn, kick, ban: 7d, ban: 31d, ban, minecraft:redstone_torch}
misinformation: {warn, mute: 20m, mute: 1h, ban: 3d, ban, minecraft:paper}
inappropriate.content: {warn, mute: 1h, mute: 7h, ban: 7d, ban, minecraft:book}
exploiting: {warn, warn, warn, ban: 2d, ban, minecraft:lever}
discrimination: {ban: 31d, ban, minecraft:iron_sword}
impersonation: {ban: 7d, ban, minecraft:player_head}
hacking: {ban: 31d, ban, minecraft:diamond_sword}
fraud: {ban: 31d, ban, minecraft:gold_ingot}
evading.punishment: {ban: 31d, ban, minecraft:ender_pearl}
inappropriate.username: {ban, minecraft:name_tag}
inappropriate.skin: {ban, minecraft:leather_chestplate}
griefing: {ban: 7d, ban, minecraft:stone_pickaxe}
staff.disruption: {warn, kick, ban: 7d, minecraft:bottle_o_enchanting}
chat.violation: {warn, mute: 1h, ban: 3d, minecraft:book_and_quill}
| Category | Escalation steps | GUI item |
|---|---|---|
harassment |
kick, ban: 14d, ban |
minecraft:nether_star |
threats |
mute: 5h, ban: 14d, ban |
minecraft:tnt |
spam |
warn, mute: 10m, mute: 1h, ban: 3d, ban |
minecraft:cactus |
advertising |
mute: 1d, ban: 3d, ban |
minecraft:redstone_block |
macroing |
warn, kick, ban: 7d, ban: 31d, ban |
minecraft:redstone_torch |
misinformation |
warn, mute: 20m, mute: 1h, ban: 3d, ban |
minecraft:paper |
inappropriate.content |
warn, mute: 1h, mute: 7h, ban: 7d, ban |
minecraft:book |
exploiting |
warn, warn, warn, ban: 2d, ban |
minecraft:lever |
discrimination |
ban: 31d, ban |
minecraft:iron_sword |
impersonation |
ban: 7d, ban |
minecraft:player_head |
hacking |
ban: 31d, ban |
minecraft:diamond_sword |
fraud |
ban: 31d, ban |
minecraft:gold_ingot |
evading.punishment |
ban: 31d, ban |
minecraft:ender_pearl |
inappropriate.username |
ban |
minecraft:name_tag |
inappropriate.skin |
ban |
minecraft:leather_chestplate |
griefing |
ban: 7d, ban |
minecraft:stone_pickaxe |
staff.disruption |
warn, kick, ban: 7d |
minecraft:bottle_o_enchanting |
chat.violation |
warn, mute: 1h, ban: 3d |
minecraft:book_and_quill |
Invsee¶
The invsee section controls inventory viewing.
invsee:
enable-offline-player-support: true
enable-unknown-player-support: true
tabcomplete-offline-players: true
| Key | Default | Controls |
|---|---|---|
invsee.enable-offline-player-support |
true |
Allows viewing the inventory of offline players. |
invsee.enable-unknown-player-support |
true |
Allows viewing the inventory of players who have not been seen before. |
invsee.tabcomplete-offline-players |
true |
Includes offline players in tab completion. |
Vanish (Veritévoiler)¶
The vanish section configures the vanish system. The vanish.features block toggles individual behaviors, each true by default. Every feature key is editable with /veriteflag as vanish.features.<name>.
vanish:
enabled: true
features:
fake.message: true
actionbar: true
self.view: true
fly: true
invulnerability: true
effects: true
gamemode: true
ride.entity: true
silent.container: true
inventory.inspect: true
server.ping: true
ghost: true
prevent.chat: true
prevent.pickup: true
prevent.drop: true
prevent.interact: true
prevent.block.break: true
prevent.block.place: true
prevent.target: true
prevent.damage: true
prevent.food: true
prevent.buckets: true
prevent.advancement: true
prevent.projectiles: true
muffle.sounds: true
muffle.particles: true
| Key | Default | Controls |
|---|---|---|
vanish.enabled |
true |
Enables the vanish module. Editable with /veriteflag as vanish.enabled, but requires a restart to apply. |
vanish.features.fake.message |
true |
Shows a fake join or leave message when vanishing or unvanishing. |
vanish.features.actionbar |
true |
Shows a persistent action bar reminder while vanished. |
vanish.features.self.view |
true |
Lets the vanished player still see themselves. |
vanish.features.fly |
true |
Grants flight while vanished. |
vanish.features.invulnerability |
true |
Makes the vanished player invulnerable. |
vanish.features.effects |
true |
Applies vanish related potion effects. |
vanish.features.gamemode |
true |
Manages the player's game mode while vanished. |
vanish.features.ride.entity |
true |
Allows the vanished player to ride entities. |
vanish.features.silent.container |
true |
Opens containers silently while vanished. |
vanish.features.inventory.inspect |
true |
Allows inspecting inventories while vanished. |
vanish.features.server.ping |
true |
Adjusts the player's contribution to the server ping list while vanished. |
vanish.features.ghost |
true |
Hides the vanished player as a ghost so they pass unseen. |
vanish.features.prevent.chat |
true |
Prevents the vanished player from sending chat. |
vanish.features.prevent.pickup |
true |
Prevents the vanished player from picking up items. |
vanish.features.prevent.drop |
true |
Prevents the vanished player from dropping items. |
vanish.features.prevent.interact |
true |
Prevents the vanished player from interacting with the world. |
vanish.features.prevent.block.break |
true |
Prevents the vanished player from breaking blocks. |
vanish.features.prevent.block.place |
true |
Prevents the vanished player from placing blocks. |
vanish.features.prevent.target |
true |
Prevents mobs from targeting the vanished player. |
vanish.features.prevent.damage |
true |
Prevents the vanished player from dealing or taking damage. |
vanish.features.prevent.food |
true |
Prevents the vanished player's food level from changing. |
vanish.features.prevent.buckets |
true |
Prevents the vanished player from using buckets. |
vanish.features.prevent.advancement |
true |
Prevents the vanished player from gaining advancements. |
vanish.features.prevent.projectiles |
true |
Prevents the vanished player from launching projectiles. |
vanish.features.muffle.sounds |
true |
Muffles sounds the vanished player would otherwise produce. |
vanish.features.muffle.particles |
true |
Muffles particles the vanished player would otherwise produce. |