DUXPLIMA Documentation

Premium names

Checking a name at Mojang, the four ownership rules, the four UUID schemes, settling a name two players want, and the backup password.

A name that exists at Mojang can be held by a paid player or by a player without a paid account. These settings decide who gets it and what happens when two players want it: premium in config.conf, and ownership.conf.

How a name is checked

premium.sources lists the services asked, in order: mojang, playerdb, minetools, ashcon. The first that can answer decides; one that is down, slow or refusing passes the name to the next.

Key under premiumDefaultMeaning
cache-minutes30How long an answer is kept; an answer no source could give is never kept
mojang-cap-per-10-minutes550Mojang refuses past 600, so the mirrors answer the rest
timeout-millis3000How long one source may take
addressesthe four servicesPoint a source at a mirror of your own; {name} is the name
backup-passwordtrueA premium account with no password gets a random one at its first premium login, shown once and stored as a hash

The handshake runs on a lone server only in offline mode and not behind a proxy. In online mode the server proves every player, and behind a proxy the handshake belongs to the proxy; the console says which applies.

Ownership rules

ownership.rule:

RuleBehaviour
automaticA new name that exists at Mojang is asked for the handshake once. A paid player is in without a password. A player who fails joins with a password from the next connection and keeps the name until its paid owner proves it with /claim or the button on the login screen
opt-inEverybody joins with a password. A player who types /premium is asked for the handshake from the next connection on
strictEvery name that exists at Mojang must pass the handshake. A cracked player can never hold a paid name
domainThe address a player joins through decides: domains.premium for paid accounts, domains.cracked for the rest. An address on neither counts as cracked
KeyDefaultMeaning
when-every-source-failscrackedA new name no source could place: cracked (marked unverified and asked again next time), premium, or refuse
failed-memory-seconds300A connection that failed the handshake is told why when it comes back, and under automatic joins with a password
premium-password-fallbacktrueA premium account that keeps a password logs in with it after a failed handshake: Mojang is down or the account is lost
claim-minutes10How long a claim waits for the next connection from the same address; only that address is asked

The domain rule's mark

Under domain, a cracked name gets domains.cracked-mark (+) at mark-at (end), so Notch through the cracked address plays as Notch+ beside the paid Notch. The longest cracked name is 16 characters minus the mark. Any character the server takes in a name will do; Paper takes only letters, digits and _ while perform-username-validation is on in config/paper-global.yml: with + turn that off, or use c_. The start warns when the two do not fit.

UUID schemes

ownership.uuid-scheme decides the UUID a player plays under, which every other plugin keys inventories, ranks and money by:

SchemeBehaviour
keep-first (default)A new paid player gets the Mojang UUID, so client cosmetics show; a new cracked player the offline one. An account keeps the UUID it was made with
offlineEverybody gets the offline UUID derived from the name
mojangEvery paid player gets the Mojang UUID; a cracked account that later proves a paid name moves to it
randomEvery new player gets a random UUID, kept from then on

The scheme is written into the database at the first start. A later start under another scheme is refused, because it would put every player into an empty inventory. To change it, run /uxmauth uuidscheme <scheme> from the console while nobody plays, write the scheme in uuid-scheme and restart. Accounts that would share an id are named and left.

Name conflicts

When the paid owner of a name proves it while a cracked account holds it, through /claim, a rename at Mojang, after a start while Mojang was down, or after a switch to strict, ownership.conflict decides:

StrategyBehaviour
rename (default)The cracked account moves with everything it had to the name plus rename-mark (_); the paid owner gets the name. Nobody loses anything
blockBoth are stopped with a message until staff settle it with /uxmauth resolve
cracked-keepsThe cracked account keeps the name and the paid owner is told to change theirs at Mojang
premium-takesThe cracked account is deleted and the paid owner gets the name. Whoever buys a name takes the account of the player who held it first

When the marked name is taken too a number follows it, and a result past 16 characters shortens the name before the mark. The moved player types the new name to log in, so names.pattern must take it; the plugin refuses a mark it does not take. A dispute staff settled for the cracked holder stays: the paid owner who proves it again is told to change theirs.

Switching by hand

/premium and /cracked switch a player's own account; /uxmauth markpremium and markcracked do it for staff.

Related: ownership.conf, Bedrock