Longhouse 1.0.3
18 August 2026. After 1.0.2.
Rist repinned to 1.1.0. One pin moved, nothing else.
Rist now weights XP by which skill earned it, after the server's ledger showed half a character's level had come from felling trees. The reasoning and the numbers are in Rist's own changelog; what matters at pack level is that this pin must move. Longhouse Core's version gate compares the compiler's build id, not the version string, so a client on the old Rist and a server on the new one do not merely disagree about XP - the connection is refused. Pinning 1.0.1 here while a server runs 1.1.0 would lock out everyone who installed the pack.
Two things to know before updating a server
- Every character is re-priced once, on its next login. Levels go down. Runestones already taken are kept, and no new pick is earned until the old level is passed again.
- Rist's ledger moves to
v4and older builds cannot read it, which drops records rather than erroring. CopyBepInEx/config/rist-ledger.txtaside before updating.
What moved · 1
Rist 1.0.1 → 1.1.0
1.1.0
XP is now weighted by which skill it came from, not only by how far that skill got.
Why
The live server's ledger asked for this rather than a hunch. A character sitting at Rist level 12 held 1346 XP, of which WoodCutting alone was 666 - half the character was felled trees, and everything earned in a fight came to 293, under a quarter of the whole. The level had stopped describing the character and started describing how long they had stood in the Meadows with an axe.
The existing weighting compounded the wrong way. XP being the level reached is right on its own, but the safest repeatable activity in the game is also the one that climbs highest, so it was collecting the most level-ups and the most XP per level-up.
Raising LevelBaseXp or LevelExponent cannot fix that, and it is the obvious reach, so it is
worth saying why not: both scale the whole curve, so the ratio survives untouched and the late
game pays for a problem that lives in the first hour. That is exactly what happened when the
pair was 60 and 1.5, and it had to be walked back.
Added
discussSkillWeights- a multiplier per skill, asSkill=multiplierpairs. The default table is built on risk: full price for a skill raised by something that can kill you, half for one that is situational, a quarter for repetition that cannot hurt you. Synced from the host, so a server sets it for everyone on it.
discussDefaultSkillWeight- what a skill not named in the table is worth.1, so a skill added by a game update or another mod is paid normally rather than silently going unpaid.
discussWeightGeneration- bump it to any different text and every character is re-priced once, on its next login, from the skill levels this server watched it reach.
Changed
Existing characters are re-priced on their next login. The bundled generation is
discuss1and no existing ledger line carries a stamp, so this happens once, automatically. The character above goes from level 12 to level 6, with 53% of it now earned fighting.Runestones already taken are kept. A character re-priced from 12 to 6 holds all twelve and earns no new pick until it passes twelve again. Refunding them would turn a re-pricing into a free rebuild of the whole character.
discussThe join-time credit is weighted by the same function as the re-pricing, deliberately shared so the two can never drift apart.
discuss
Ledger format
The ledger is now v4, carrying the generation each record was last re-priced at. v1-v3
are still read and come back as never re-priced, which is what they are.
This is a one-way door. A v4 line does not parse on 1.0.1 or earlier, which drops the
record rather than erroring, so copy rist-ledger.txt aside before updating a server you care
about.
Discussion
Nothing said yet.
Sign in or make an account to join in.