25 tuning dials across 7 sections, in
config/legendquest-common.toml.
This is server-owner tuning only - the races, classes, skills and feats themselves are data, covered in
the content reference.
Read this first
Read live through the config system, so an edit takes effect without a restart. These are global dials, not content.
Frozen at world load. Edit one and you must restart the
server - /reload will not apply it.
That split catches people, so it is worth stating plainly: /reload covers
item tags and messages.yml - so wording and vocabulary changes do
apply on a reload - but a new race or a changed skill needs the server bounced. Ops get a chat
notice saying exactly this when someone reloads.
[stats] and [combat]
| Setting | Default | What it does |
|---|---|---|
| stats.statlineMode | uuid_random | How a new character's base stats are decided. uuid_random: a deterministic roll from the player's UUID (the old default). flat_12: everyone starts with straight 12s. |
| combat.useD20Combat | true | Opposed d20 DEX tests decide hit and dodge between players and mobs. |
| combat.useSizeInCombat | true | Race size adjusts hit difficulty - bigger is easier to hit. |
flat_12 exists for servers that would rather nobody rolled badly and lived with it
for a hundred levels. uuid_random is deterministic rather than random-on-creation,
so a player who resets gets the same character back.
[xp]
| Setting | Default | What it does |
|---|---|---|
| xpLevelBase | 100 1-1000000 | Triangular level curve base: total XP for level n = base × n × (n+1) / 2. |
| maxLevel | 150 1-10000 | Level cap. Reaching it masters the class, which is what unlocks dependent classes. |
| levelUpFanfare | true | Announce a level with a title card and the toast chime, not just a chat line. Off leaves the chat line alone. |
| mineXpOre | 4 0-10000 | Class XP for breaking an ore - anything tagged #c:ores, so modded ores count. A race or class's xp_adjust_mine applies on top. 0 disables. |
| mineXpBlock | 1 0-10000 | Class XP for breaking any other block that needs a tool and is not instant-break: the mundane graft of digging out a mine. 0 disables. |
| smeltXpItem | 1 0-10000 | Class XP per item taken out of a furnace. A race or class's xp_adjust_smelt applies on top. 0 disables. |
Class XP comes from three kinds of work: killing something (worth the mob's own dropped XP), mining,
and smelting. Each has its own dial, and setting any to 0 switches that source
off entirely.
Known limitation, stated honestly: instant-break blocks
(crops, grass, torches) pay nothing, or a wheat field would be an XP farm - but anything you can
place and re-break still is one, at mineXpBlock a swing. The values are
tuned low enough to make it a poor use of time, and there is no anti-farm machinery beyond that.
It is a config value precisely so you can zero it if your server cares.
[skills]
| Setting | Default | What it does |
|---|---|---|
| passiveTickMs | 3000 250-60000 | How often PASSIVE skill effects re-apply, in milliseconds. |
| statBoostBaseCost | 5 1-1000 | Skill points for the first +1 stat boost. Every boost already bought raises the next one's price by one - they are meant to sting. |
| respecLevelCost | 1 0-100 | Character levels burned by /lq respec, which refunds every skill point. |
[karma]
Positive deeds raise it, dark ones lower it. The band names and epithets are what a player actually sees.
| Setting | Default | What it does |
|---|---|---|
| killPlayer | -10000 | Karma for killing a player. |
| killVillager | -1000 | Karma for killing a villager. |
| killAnimal | -10 | Karma for killing an animal. |
| killMonster | 20 | Karma for killing a monster. |
| positiveNames | Neutral, Kind, Good, Samaritan, Saintly | Comma-separated titles on the good side of the log scale. |
| negativeNames | Neutral, Rascal, Rogue, Villainous, Diabolic | Comma-separated titles on the dark side. |
| positiveEpithets | , the kind, the good, the samaritan, the saintly | Epithets matching positiveNames, for {epithet} on the nameplate. Leave an entry blank for no epithet - the first band is blank on purpose, since nobody is "the neutral". |
| negativeEpithets | , the rascal, the rogue, the villainous, the diabolic | Epithets matching negativeNames. |
Renaming the bands is the cheapest re-theming in the mod: The Wasteland suggests
Decent, Good Egg, Samaritan, Saint against Hard, Cold, Ruthless, Feral, which turns
karma into Humanity without touching a data file. Karma also gates content - skills and feats carry
karma_min / karma_max bands, and drifting out of one
suspends what it granted.
[nameplate]
| Setting | Default | What it does |
|---|---|---|
| enabled | true | Show character info above players' heads. The wording lives in messages.yml as nameplate.prefix and nameplate.suffix, so it re-themes with the rest of the vocabulary. Players can hide their own with /lq nameplate off. |
Placeholders available in those two strings:
{name}, {race}, {class},
{sub_class}, {level}, {karma},
{title} and {epithet} - the last two being the karma
band names and epithets set above.
How it works, and why it does not fight your rank mod.
The nameplate is a text display entity above each player -
an ordinary vanilla entity, which is why an unmodded client renders it. It occupies only
the space above the head, so chat, the tab list and /list are untouched,
and it does not use the scoreboard team slot - so it does
not compete with LuckPerms, FTB Ranks or any chat-prefix mod for a player's team.
[party]
| Setting | Default | What it does |
|---|---|---|
| range | 32 4-256 | Members within this many blocks of a kill share its XP. Also the default reach of party-targeted skills, so songs and blessings travel exactly as far as shared glory does. |
| xpSharePercent | 50 0-100 | Percent of kill XP each nearby party member also receives. |
| blockPartyPvP | true | Party members cannot damage each other. |
| tpCooldownSeconds | 60 0-86400 | Seconds between /party tp uses. 0 disables the command entirely. |