DUXPLIMA Documentation

config.conf

Every key of config.conf, block by block, with its default and what it does.

Read at start and on every /uxmchat reload, except storage and network, which need a restart.

language

KeyDefaultMeaning
default"en"What a player reads when nothing else answers, and the fallback for a key a translation has not reached
follow-clienttrueA player who chose nothing reads the language their client is set to
force""One language for everybody, whatever they chose; empty for none

Server

KeyDefaultMeaning
server-name"server"This server's id on the network, in the chat log and the staff list. On a network, its name in velocity.toml, in lower case. Letters, digits, _ and -
time-zone""The time zone [time] and the chat log show, such as Europe/Istanbul; empty uses the machine's own

storage

KeyDefaultMeaning
type"sqlite"sqlite, mysql, mariadb or postgresql. A network needs one of the last three
file"chat.db"The SQLite file, inside data/
host, port"localhost", 0The database server; port 0 is 3306 for MySQL and MariaDB, 5432 for PostgreSQL
database, username, password"minecraft", "minecraft", ""Never put the file in git with a real password
table-prefix"uxmchat_"Before every table name
pool-size4Connections the pool may open; SQLite uses one
local-onlyfalseThis one server keeps its own rows in the SQLite file
copy-from-filefalseCopies the SQLite file's rows into an empty network database at the next start

See Database.

network

KeyDefaultMeaning
mode"none"none, direct (the proxy's broker) or redis
host, port"127.0.0.1", 25590Where the proxy's broker listens
secret""This server's line from the proxy's secrets.conf. Never put it in git
redis-uri"redis://127.0.0.1:6379"For redis; a password goes in as redis://:pass@host:6379
proxy-online-modefalseThe proxy runs in online mode while this server runs offline behind it

See A network.

modules

Every module is on unless written as false. A module turned off registers no listener, task, command or placeholder, and a reload turns it on or off without a restart.

ModuleDefaultOff means
channelstrueOne public chat; no /channel
filterstrueNo filter reads anything
auto-repliestrueNo automatic answers
mentionstrue@name is plain text
emojistrueShortcuts stay as typed; no /emoji
snapshotstrueNo [inv], [ender], [shulker]
quotestrueNo quote button after lines
private-messagestrueNo /msg, /reply, conversations, quick replies, recent window
ignoretrueNo /ignore
friendstrueNo friends list
mailtrueNo letters
nickstrueNo nicknames
tagstrueNo tags
colourstrueNo chat colours
mutestrueNo /mute of uxmChat's own
punishment-pluginstrueMutes of other plugins are not read
authtrueChat does not wait for AuthMe, nLogin or LibreLogin
aifalseNo AI review
helpoptrueNo /helpop
spiestrueNo copies for staff
staff-deletetrueNo remove button after lines
staff-listtrueNo /stafflist
macrostrueNo /macro
pollstrueNo /poll and /vote
rulestrueNobody accepts rules
chat-logtrueNo chat log and no /chatlog
announcementstrueNo announcements
eventstrueThe server's own join, quit and death lines
network-eventstrueNo network join, switch and quit lines or resent lines
metrueNo /me
custom-commandstrueNo commands of your own
bubblestrueNo chat bubbles
newcomertrueNo newcomer badge or limits
gamestrueNo chat games
editorstrueNo in-game editors
networktrueThis server stays alone whatever network.mode says

announcements

KeyDefaultMeaning
title.fade-in-ms, stay-ms, fade-out-ms500, 3000, 500How a title appears, stays and goes
boss-bar.colour"blue"pink, blue, red, green, yellow, purple or white
boss-bar.overlay"progress"progress, notched-6, notched-10, notched-12 or notched-20
boss-bar.seconds8How long the bar stays

chat

KeyDefaultMeaning
model"system"system or signed; see Formats
default-channel"global"The channel a player speaks in until they pick one
max-length256The longest line; a channel can set its own; 0 has no limit
nobody-heardtrueTell a player when nobody could read their line
grammarfalseCapital letter first, full stop last
stretch-limit3The most times a letter may repeat; 0 leaves lines alone
tokens-per-line8How many tokens one line may draw

Tokens and snapshots

tokens.kinds holds one block per token, { names = [...], permission = "..." }: item, ping, pos, time, gametime, money, inv, ender, shulker. See Mentions and tokens.

KeyDefaultMeaning
tokens.commands["/spawn", "/rules", "/discord"]Commands a player may put in a line as [/command]
tokens.item-guard.max-bytes8192An item over this is shown by name with no tooltip
tokens.item-guard.blocked["WRITTEN_BOOK", "WRITABLE_BOOK"]Kinds always shown by name
snapshots.keep-minutes30How long a snapshot can be opened

mentions

KeyDefaultMeaning
style"<accent><name></accent>"How a mention is drawn
bare-namesfalseA name without @ mentions too
max-per-line5The most players one line may mention
cooldown-seconds10Before mentioning the same player again
sound"minecraft:entity.experience_orb.pickup"What a mentioned player hears

World groups and time

world-groups {
  survival = [ "world", "world_nether", "world_the_end" ]
}

Worlds that share world channels and local lines. A world in no group is its own group.

newcomer

KeyDefaultMeaning
playtime-minutes0Less playtime than this makes a newcomer; 0 makes nobody one
slowmode-seconds10A newcomer's wait between two lines
badge"@format.newcomer"Before a newcomer's name; empty shows nothing
mentions1Players a newcomer may mention in one line

Private messages, friends, mail, quick replies, nicks

KeyDefaultMeaning
private-messages.max-length256The longest message
private-messages.cooldown-millis1000Between two messages of one player
private-messages.offline-queue20Messages waiting for one offline player
friends.cap100The most friends
friends.request-days7How long a request waits
mail.inbox-cap50The most letters one inbox holds
mail.page-size8Letters per page
mail.retention-days60How long a read letter is kept
quick-replies.cap9Quick replies per player
nick.allowed"[A-Za-z0-9_]+"What a nick may be made of
nick.min-length, max-length3, 16
nick.blockedadmin, owner, staff, moderator, console, serverNicks nobody may take

ai

KeyDefaultMeaning
api-key""The OpenRouter key; nothing is sent without one. Never put it in git
model""Such as openai/gpt-4o-mini; empty uses OpenRouter's default
rules"No insults, no hate, no threats, no sexual content."What the model is told the rules are
per-minute30The most lines reviewed per minute
points5Ladder points for a line against the rules
min-length4Shorter lines are not sent

Bubbles, newcomers, rules and staff

KeyDefaultMeaning
bubbles.seconds5How long a bubble stays
bubbles.distance16How far it is seen
bubbles.max-length64Longer lines are cut
bubbles.format"<white><message>"How it is drawn
bubbles.groupsnoneA format per permission group
bubbles.height0.8Over the head, in blocks
bubbles.background"#40000000"#AARRGGBB
bubbles.shadowfalse
rules.version0Raise it to ask every player again; 0 asks nobody
rules.linesthree linesThe rules, MiniMessage allowed
helpop.cooldown-seconds60Between two questions
macrosdiscord, rulesname = "line", said by /macro <name>
spy.secret-commandslogin, l, register, reg, changepassword, changepass, unregisterTheir words never show to a command spy
chat-log.retention-days30How long the log keeps a line
KeyDefaultMeaning
filter-surfacesfalseSigns, books and anvil names pass the chat filters too
menu.sounds.clickblock.note_block.pling, 0.6, 1.5A button that does something
menu.sounds.pageitem.book.page_turn, 0.7, 1.0A page arrow
menu.sounds.deniedblock.note_block.bass, 0.6, 0.9A button the player may not use

A sound is named by its vanilla key; an empty name silences it.

Related: Configuration, Modules