v1.6.1 Patch Notes
What's new in v1.6.1
1.6.1 leads with boss fights: a fight the whole party is credited for, that quests, achievements and contracts can count. Beside it, XP climbing a bar of its own instead of taking a line of the corner feed, with a HUD settings screen to say where the bars sit; the Sawmill and the sawyer who hands it out, arriving with this version in RPG Stations 1.0.0 and the MMO Skill Stations Pack 1.0.0; an ability and a weapon sharing a key without either losing its move; a character showing you what they have for you, over their head and on the map; a pass over the quest screens where every quest and every step carries a picture; a server that could freeze for good, fixed; a performance pass for busy servers; a quieter startup log; enhanced gear moving to the shared library; and your own quest files moving to the shared library's folder, once, on the next start. Requires Ziggfreed's CommonLib 2.1.0 or newer.
Boss fights
- New: boss fights that quests, achievements and contracts can count. A quest step, an achievement criterion or a bounty contract can ask for a boss brought down, a fight stood in to the end, or a phase reached, naming the fight or leaving the name out to mean any boss. Everyone the fight credited completes the step, not only whoever landed the last blow, and the step shows the boss's own name, with the marker's glyph beside it for a boss the map tracks. A server first over a boss kill is won by the whole party that killed it. The fights run on the game's own encounter scripts through Ziggfreed's CommonLib; the pay, the notices and the boss bar are the fight's own.
- New: a lifetime boss tally. The Statistics view keeps how many times you have brought each boss down, and any content on the server can ask about it: a shop row, a dialogue branch or a harder contract can require having beaten a boss so many times, the same way it can require any tally the stats screen shows.
- New: the content audit covers boss fights.
/mmoconfig validatereports a misspelt beat, a fight naming a script the server does not have, or a defeat that never clears the boss bar. - The first fights on it ship beside this version. Kweebec Nightmare 1.2.0's Warden fights three phases on the framework, and MMO Skill Bounty Pack 1.2.1 carries the Open Warrant and The Muster Roll, two contracts on any boss, whichever one your server stands up. Ziggfreed's CommonLib ships a working example fight a pack can copy.
Your XP, and the corner feed
- New: XP climbs a bar instead of taking a line of the feed. Every skill has a bar. The moment a skill gains, its bar comes up: the skill's name and what you have gained since it came up on the first line, and under that the fill to your next level, with the level you are in at one end and the one you are climbing to at the other,
MAXand a full bar once the skill is capped. A gain that crosses a level paints the bar gold for a beat. Out in the world the bars sit top-right, above the quest tracker, six across and growing leftward as more skills gain, and each fades a few seconds after its last gain. A big gain reads as its magnitude, so ten thousand shows as 10.0k rather than running out of room. Working a station, a skill's bar joins that run's ledger in the left column, beside what the bench made, and stays up until you step away. The last gain of a run shows the moment it lands, where it used to wait for the next one. A skill a pack or your server added gets a bar like any other; nothing is authored for one. The XP gains switch in Settings keeps its meaning: off, and no bar shows. Everything else on the feed (a first-gain welcome, level-ups, the rewards-waiting reminder, luck drops, quests, achievements) is where it was. - New: pick where your bars sit, or hide them. Settings has a HUD bars button that opens the shared HUD settings screen: for each panel, pick one of the spots the server offers (top left, top right and bottom left out of the box; a pack can add one), hide that panel, or hide every bar at once. On a server fleet sharing one database your pick follows you between servers. The admin HUD page's Bar Panels button opens the same screen on its Server tab, which moves a panel for everyone, nudges it by an offset, sets how wide and how deep it grows, leaves a band clear across it so the rows sit either side of your own health and mana, empties the cells at one column's end so it steps around whatever else your client draws there, gives it a colour and a transparency, or switches it off, and writes
mods/ziggfreedcommon/hud-panels.jsonfor you. - Fixed: a notice that repeats itself keeps to one line of the feed. The corner feed shows seven lines, nothing can retire one early, and this mod was asking for a new line every time: a lucky streak while gathering, plus a "rewards are waiting" note per level, filled the feed and buried whatever you still had to read. A repeat of the same kind of notice rewrites its own line. A currency gain has one, a lucky find has one, and the two rewards-waiting notes share one, at most once a minute. A step the quest tracker is already drawing says nothing in the feed either, since the tracker shows it moving; the tick that finishes it still announces. A long sawmill run leaves the feed to the pickups and the finds.
The big fixes
- Fixed: your quests and achievements no longer wind back every time you log in. On a server that came up from 1.5.x, a player whose achievements the server could not fully account for (a pack no longer installed, an achievement no longer shipped) had their old quest and achievement record copied over the live one again at every login and every world change: a bounty already collected came back, a quest an admin had reset returned, and progress since the update was lost on any quest the old record knew. The copy happens once now, and a bounty that came across from the old save collects at the board that posts it; a contract the pack no longer posts on any board is dropped from your log, its completion kept. On an affected server each player gets one last copy at their first login after this update, and never again.
- Fixed: the server could freeze for good, and then it would not even stop. Nobody could move, nothing answered, and killing the process was the only way out.
/mmoability reloadwas the surest way to trigger it, but it never needed a command: joining a world with school resistance on you, changing the gear that carries it, an ability's on-hit effect the first time it fired in a fight, the skill-tree editor's Apply and importing a config preset could each do it with nobody typing anything. Every one of them was rewriting a game file from the thread that runs the world, and that thread ended up waiting on itself. They write on a thread of their own and hand the result back, so the reload answers when it is done and an on-hit effect that was not ready skips that one hit and lands on the next. - Fixed: no Building XP where you are not allowed to build. In the Forgotten Temple, and anywhere else building is turned off, the block never goes down and the item goes straight back to your hand. Building XP was paid anyway, once per click, so anyone with a stack of dirt could train Building without placing anything. A placement the world refuses earns nothing: no XP, no quest or achievement progress, no blocks-placed tally. Protected spots inside a world work the same way, and building where it is allowed is untouched.
- Fixed: mobs are named by their role, so naming one in your config works. Setting XP for a mob, keeping one off the XP list, writing a drop for it or pointing a quest at it all matched the MODEL a mob wears rather than the mob itself. For most creatures those are the same word, so it looked fine. A training dummy is a
Test_Dummywearing aMannequin: an owner who wanted dummies to train combat skills added the name the game shows them and nothing happened, while a shippedMannequinrow they had no way to see held every dummy at zero. Mobs go by their role name, the one you can see and type, so naming one inmob-kill-xp.jsonwith a positive value is all it takes to make a peaceful mob worth XP, dummies included. - Fixed: "Server First lost" only turns up when you actually lose the race. If another player had already claimed a server first you qualify for, you were told again on every login, every time you entered an instance, and every time you opened your achievements: half a dozen masters claimed by other people read as half a dozen lines of bad news about races decided days ago. You are told the once, when it happens. Your criteria stay met, so if an admin clears a claim you can still win it.
Quests, and how they read
- New: a character shows you what they have for you. Walk up to anyone who hands out quests and look above their head. A scroll means they have a quest you could take. A gold bar means you are carrying what they asked for, and handing it over would finish the job. A small pile of gold coins means a reward of yours is waiting with them. Each floats a little above their head with a coloured glow around it, the same glow a rare drop has on the ground. A character you are merely mid-errand with shows nothing, so the cue is always something to act on; a server that wants a map over them for that can turn it on. It is yours alone: the player beside you sees their own scroll, or nothing, over the same character. Nothing to open, nothing to press.
- New: the map marks who has a quest for you. Every character with a quest you could take gets a marker on the world map and the compass, named after the quest. A character you are already being sent to keeps the marker they had.
- New: a pack decides what a character shows, quest by quest and step by step. Which picture each situation floats, whether it floats at all, and whether the map marks it, is authored once for the whole server, narrowed on a quest, and narrowed again on a single step; a server owner narrows any of it from one file. Swap a picture by shipping a file with the same name.
- New: every quest has a picture. Each of the fourteen quests this mod ships names an item that stands for it, so a quest reads with a picture beside it wherever it is listed and on the notice when you finish it. Your own quests do the same with one line in the file (
Listing.Icon); one that names none is listed as before. The mastery, taming and stations packs name pictures for their own quests in their own releases. - New: quest and achievement steps show what they are about. Every step in a list has a picture beside it: the item a "craft a workbench" step wants, the creature a "defeat 12 boar" step is about, the character a "speak with the guide" step sends you to, the wallet a "earn 500 tokens" step pays into, the skill, class or ability a step names. It reads the same on the giver's screen, in both tabs of your journal and on a bounty board's contract. A step aimed at a whole family rather than one thing, "mine 50 ore", shows what you are DOING instead. Nothing to configure, and no step lost its wording.
- The steps and rewards on every quest screen are drawn larger. What a quest asks and what it pays, at the character handing it out, in the quest book, on a bounty board, in a shop and on the getting-started walkthrough's previews, is one size up with a bigger picture beside each line, and the small OBJECTIVES and REWARDS labels above them are lighter, so they read as headings instead of fading into the panel.
- Fixed: a step calls an item by its name, not a tidied-up version of its id. A step asking you to hand in, gather, craft or catch something guessed the name from where a name is usually written: right for anything the base game ships, wrong for an item a mod named its own way, which read as its id with the underscores taken out while your inventory showed the real name. A step asks the item what it is called.
- Fixed: a quest with no name of its own is called by its first step, on every screen. A bounty contract, or a pack's quest shipped without a title, read "Untitled" on the board and as a raw key on a character's quest list and in the quest book, while the finish notice and the map marker called the same quest "Mine 10 Iron Ore". Every screen agrees on that name.
- Fixed: a step with nothing in particular to name read with a hole in it. "Cast abilities 10 times" read as "Cast 10 times" and "Reach total level 100" as "Reach level 100 in Total", because this mod's own wording for those step kinds went first and left a blank where a target would go. Both read whole. Wherever the shared library already says the same sentence, this mod stops re-wording it, so a step ticking and a quest finishing read as they did, bar a stray exclamation mark, and losing a server-first race reads in the library's shorter line.
- A quest that is out of reach says why, and one that comes back says when. A daily you had already done today read "Locked" with "Not available yet" under it, and so did a quest you are carrying, one you have finished for good, and a server with quests switched off. Each has its own line: "Already in your quest log", "You have finished this one for good", "Quests are switched off here". A repeat waiting out its clock quotes the wait, "Comes back in 5h 12m", and sits under its own "Comes back" heading, with Locked kept for what a requirement is actually refusing. The quest book uses the same clock, so a daily held until tomorrow no longer reads "Cooldown: 0m".
- New: a quest that comes back says so. Daily, Weekly, or Repeatable for one that comes round sooner than a day, badged beside the quest at the character handing it out and in your quest book. It is read off the quest's own timing, so it is right for every quest on the server, packs included, with nothing for an author to keep in step. The Temple's Due was hand-labelled Repeatable and is a daily; the hand labels are gone and the badge answers instead.
- Fixed: a quest that resets once a day on the calendar counts as a daily. The Temple's Due, and any daily written as a calendar reset rather than a rolling wait, read as merely "repeatable" to an achievement that counts dailies finished. How often a quest comes round is measured one way: the longer of its rolling wait and its calendar window, so a calendar daily is a daily and a two-week window reads as a weekly.
- Fixed: a quest's step list shows what you can do. Every starter and temple quest that ends with a report to the guide keeps that return step off its list until the work before it is done, so "Return to the Adventurer's Guide" is not sitting under "Craft a Workbench" as though both were open. A pack quest does the same with one line (
Flow.HideLockedSteps); one that does not lists every step as before, the locked ones dimmed. - Fixed: a finished quest waits at the character it is about, and is on their list. A quest with a reward still to collect turned up under "Ready to collect" at every character, whoever they were: the errand introducing you to the mastery trainer was offering itself at the sawyer. The one list it was missing from was the trainer's own, at the very character you collect it from. A quest about somebody in particular is collected from them and listed nowhere else; one that never named a place still collects anywhere.
- Fixed: a quest that is collected from one character cannot be collected from another. The stations pack's "A Word with Marn" is meant to be collected from the sawyer, and it was sitting under "Ready to collect" at the mastery trainer as well, coin pile over their head and all. The place a quest names is honoured everywhere: a quest collected from somebody in particular is collected from them and nobody else, and one that names no place still collects anywhere. Your own quests can name a place too, with the same
turnInAtline a pack's quest uses. - Fixed: finishing a quest through a conversation takes you to it. Pick the line that finishes a quest and you land on that quest with its Collect button in front of you, instead of back in a menu with nothing to show it happened. A quest that pays out on the spot does not jump anywhere.
- Fixed: Collect plays the quest's closing conversation. Pressing Collect at the guide lets them say their piece, which is what that conversation was written for; collecting from the book or out in a field stays quiet.
- Fixed: the first quest can be finished at the guide in the temple. The guide stands at spawn and in the Forgotten Temple, and the temple one led with their temple lines whatever else was going on, so a player who found the temple first could never reach the welcome that finishes Getting Started. Whichever you walk up to first welcomes you. Once it is done the temple lines lead again.
Your own quest files
- Your quest files move to
mods/ziggfreedcommon/quests/, once, on the next start. Every quest you wrote undermods/mmoskilltree/quests/is rewritten in the shape a content pack uses, one file per quest named after the quest, and the original is left beside itself as.legacy. The startup log lists every file, every quest it became, and any line the new shape has no place for: a raw description (the flavor line reads from thequest.key), a character's display name, and a.flavor permissionor level condition on a quest that was never hidden. A file that cannot be moved (a quest built on a template no pack provides, one with nothing to do, a quest a file in the new folder already holds) stays exactly where it is, whole, and the log says why; fix it and restart. From then on you edit the new files: a file named after a quest the mod or a pack ships changes only the lines you write and keeps the rest, so a file holding nothing but"Enabled": falseswitches that quest off, and a new name is a quest of your own. The old folder is not read any more. The docs site's Migration Converter performs the same rewrite on a zip of your mods folder, so either route leaves the same files. - A pack written in the older quest format keeps loading. Its
Server/MMOSkillTree/Quests/files are converted on every start, with one line per pack naming the folder to move them to and the tool that writes it; a pack asking to replace the built-in quests through its control file is told that switch is not honoured any more, and a quest the converter refuses is named and left out rather than half-loaded./mmomigratereports both kinds of file for what they are: handled by the jar. - A quest can say who may see it, and carry its own fallback prose. A quest file gains a
ShowWhenblock underListing, a requirement block that keeps the quest off every list until it passes, separately from what is needed to take it, andLoreunderText, a paragraph for before, during and after, read when no translation key is shipped. A feature a quest needs is written as an ordinary requirement (mmoskilltree:feature); the oldFeaturelist on a quest is retired, with one startup line per quest still carrying it. /mmopacks exportand a config preset carry your quests in the new shape too. The exporter writes whatmods/ziggfreedcommon/quests/holds, file for file, under the pack's own quests folder (a file that only retunes a shipped quest is named in the log, since on its own it is a partial body), and a preset carries its quests keyed by id. An older preset's quest list is still read, through the same converter.
Notices and rewards
- Fixed: a reward notice names what you were actually handed. Pressing Collect at a character answered "Rewards collected." and nothing else, and anything paying out of a loot table put one line on its notice, "Loot Bundle", whatever fell out. The notice lists it: a line and a picture for each thing, the items a table rolled rather than the table, and nothing for a roll that came up empty. Same when a quest finishes, for Collect and Hand in at a character or a bounty board, for a milestone's Collect in the quest book, and for a purchase. Hand in a quest that has to be collected somewhere else, or would not fit in your bag, and the notice reads a plain "Handed in." rather than the gold finished line, because nothing has been handed to you yet.
- Fixed: earning an achievement shows what it earned. The notice read its points and nothing else, while the achievement's own page listed the XP or the token waiting for you. It lists them under the headline, the way a finished quest waiting to be collected does, whenever a menu is open when you earn it. Out in the world the corner notice still shows the headline and the points, which is all it has room for.
- Fixed: a notice that lands while a screen is open says what happened. Finish a quest or earn an achievement with a conversation or a menu in front of you and the notice is drawn into that screen rather than the corner, and only its second line survived the trip: earning First Quest read as "+5 achievement points", with the name of the thing you had just done missing. Both lines are there, and so is the picture beside them.
- A finished quest waiting to be collected no longer tells you to open a page. The notice already lists what is waiting, a line and a picture each, so being told where to go and fetch it was a sentence about the panel it was printed on. A full bag and a contract still say why the reward stayed put.
- Fixed: your Quest Notifications setting decides which notices you get. Every level except None behaved as All, so whatever you picked, Milestones or Objectives or Quests Only, you saw every tick of every step. Each setting means what it says again.
- A shop offer's picture matches the reward it pays. An offer with no picture of its own takes the one its reward row is drawn with, so an all-skills XP bundle shows the XP crystal instead of nothing.
Abilities and combat
- Fixed: binding an ability no longer takes the key away from your weapon. Binding a slot to Ability 1, 2 or 3 claimed that key outright, so every weapon lost whatever it does on it: a mace's Groundslam, a sword's Vortexstrike, a crossbow's reload. Crouch made it worse, since crouch variants ride the same key as the plain ones, so an ability on crouch+3 also killed a plain 3 press. The two share the key properly. Your weapon goes first whenever it actually has something ready, a full signature bar or a magazine with room to reload, and your ability fires the rest of the time, including the moment the bar empties. If the ability cannot fire either, the press falls through to the weapon, so its own out-of-ammo cue plays instead of silence. Nothing to configure.
- Fixed: a staff no longer flashes the screen blue on every hit. The Archmage passive arms your next hit each time you land one with a staff, and the spark it played was built partly from a piece meant for a spell in flight, scaled to stay visible from across the map: on your own character, a wall of blue once per swing for as long as you are fighting. An armed hit is a brief cyan wreath at your chest instead, gone inside a second, and you hear the staff take the charge. The wreath shows on your own screen as well as to everyone watching you, which the old spark did not. The Arcane Resonance capstone played that same blue effect on whatever its zone was hurting, so that stopped flashing too.
- Fixed: Hookshot Arrow threw a player instead of pulling them in. The pull was sized for creatures, whose movement the server slows before they ever move. A player's movement is run by their own game, which took the pull at face value and launched them far past the shooter, usually off the map. A player caught by a hookshot gets the same measured yank a mob does, one shove toward the shooter that stops in front of them.
- Fixed: a Crafting XP reward paid the same amount into Enchanting. Crafting is a skill, and it is also the name of the group Enchanting sits in, and every payout of Crafting experience took it the second way: the crafting achievements, the guide's crafting errands, the sawyer's line in the stations pack. It pays the one skill it names. If a profile picked up Enchanting it never earned,
/setxp enchantingputs it back.--target= - Fixed: a claim card keeps its CLAIM button on the card. An ability unlock in the skill tree, and a mastery node, described the ability by reading out every step of what it does, and a long one (Vortex Lunge) pushed the status line and the CLAIM button off the bottom edge of a card that is only so tall, where nothing could press them. The card reads the ability's own description, the sentence written for a player weighing a permanent pick; the step-by-step walk stands in only for an ability that has none, and the icon's tooltip keeps the full numbered sequence either way. No length of text can push a button off a card.
- Fixed: the ability screen's Search and Clear read in your own language. Every other word on the ability binding screen translated; those two buttons were written into the screen itself in English. They are ordinary translated words, in all nine languages, and the search behaves as it did.
The world and its people
- Fixed: an NPC you placed yourself answers when you press F. The Adventurer's Guide, the quest givers and every other NPC this mod ships only ever answered when the mod itself had stood them somewhere; spawn one by a command, an egg, a prefab or another mod and F did nothing. They answer wherever they came from.
- Fixed: the guide talks in any world, not only the one it is placed in. The Adventurer's Guide still appears automatically only in your main world; carry one elsewhere by any means and it behaves normally there.
- Fixed: the guide turns up even when nobody spawns at world spawn. The guide stands at your world's spawn point, and on a server where players return to their own saved positions nothing ever loaded that spot, so the guide was never placed and the log filled with the attempt. It is where it should be whether or not anyone walks past.
- Fixed: two of the guide's briefs were cut off halfway. His temple brief and his mastery brief had wrapped onto a second line in the shipped language files, and the game drops the half it cannot read, so each of those sentences arrived missing its ending, in every language including English. Both are whole.
- The guide points you at the sawyer. With the MMO Skill Stations Pack installed, the guide's temple screen carries one more question, about the one with the hatchet, from the moment you reach the temple until you have gone over and said hello. Ask, and he sends you across the landing to introduce yourself, so you know who you are walking up to before you get there. What the sawyer wants doing is his to ask. Five of the guide's hub lines are reworded in his own voice and say what they said before.
- Sawyer Marn, his twelve quests, twenty-six achievements, seven contracts and the Sawmiller's Crown are the MMO Skill Stations Pack's own, and the mill he hands out is RPG Stations'. Both release beside this version, at 1.0.0 each; their own notes carry the detail.
- Fixed: two of the guide's temple lines never showed. His pointer to the mastery trainer and his pointer to the sawyer are gated on having met him at the temple, and a line gated on a finished quest was refused for everybody, whatever they had done, with nothing in the log. A conversation decides a quest requirement the same way every other gated screen does.
- Fixed: the shipped characters shrug off environmental damage, as they were always meant to. The guide and the quest givers asked for it under a spelling the game does not read, so it never took and every boot logged a warning per role. It applies, and the warnings are gone; the Mastery Trainer, the bounty brokers and the Kweebec roles are corrected the same way in their own releases.
Admin and tools
- New: put an NPC where you are standing, from in game.
/mmonpc place --role=writes a placement at your feet, facing the way you are, with no file to open and no coordinates to read off.--dialogue=says what pressing F opens,--id=names it,--world=aims it elsewhere. It refuses a role your server cannot spawn, and an id already in use. - New: an NPC Placements screen in the admin menu. Every placement meant for the world you are in, whether it is actually standing, and why not if it is absent. Each row has an on/off switch that takes effect immediately, plus a filter and a Place button for standing a new one where you are.
mods/ziggfreedcommon/npc-placements.jsoncan hold whole placements, not only on/off switches. You can add or re-aim an NPC there without editing a pack an update would overwrite. Existing files keep working as they are.- The admin menu is one screen of cards. The dozen editor buttons squeezed into the Actions rows (XP values, rewards, the skill tree, tokens, mob XP, mob drops, item and tool requirements, custom skills, world rules, power level) are cards under their own Editors heading, each with the icon and the line of description the section tiles above them already had. Actions keeps what acts on the spot: the two reloads and Award Boost. Everything opens where it did.
- New: run the content audit at boot. Set the
MMOSKILLTREE_AUDIT_ON_BOOTenvironment variable to1and the startup audit runs at plugin start, before the booted banner, instead of waiting for the first player, with one summary line after the usual per-domain reports. It is there for a headless boot check;/mmoconfig validateis unchanged. - The
/provingand/pgcommands are gone. They reached a separate dungeon engine that never shipped, and registered one empty arena nothing could enter.
Performance and the server log
- Fixed: mining out a big area, or bulk crafting, no longer drags the server down. Every scrap of XP anyone earned rebuilt that player's whole leaderboard row from scratch, working out a level for each of their skills one at a time: tens of thousands of calculations, for every block broken, every craft, every kill. On a busy server with a lot of players on record, that was much of what the server spent its time on. Levels come from a table instead, and a leaderboard row refreshes on a light cadence rather than after every swing. Nothing looks different: your own row is exact the moment you look at it, and a level-up still lands on it straight away.
- Faster on big servers generally. The list of which skills exist was being rebuilt from scratch dozens of times per XP gain. It is worked out once and reused, which takes weight off every screen and command that reads skills, not only the busy paths.
- Blocks you placed are remembered by the world itself. The record of what a player put down, the reason nobody can mine the ore they just placed, lived in a single file that grew forever and was rewritten whole every half minute. It rides along with the chunk the block sits in, saved and loaded with it. Servers that had grown a large file get that time back, and there is nothing left to grow. See the migration notes for what retires with it.
- New: let a builder stand ore up for everyone else to mine. Blocks placed by an admin, or by anyone with
mmoskilltree.placedblocks.exempt, are not treated as placed, so players who mine them earn normally. That is what you want when you are building a mine, a farm or a quarry FOR your server rather than exploiting one. Building in creative already worked this way; this covers doing it in survival. The builder still earns for placing. - Fixed: a quieter, more honest server log. Startup reported a run of warnings for things that were working correctly: twelve ability descriptions flagged as placeholder text when they are nothing of the kind, an animation warning for abilities that deliberately follow whatever weapon you are holding, a warning for each optional mod your server does not have installed (twice over), one for a temple NPC aimed at a world that is not running, and one about the mod overwriting its own setting. Each is either fixed or reported at the level it deserves, so what is left is worth reading. One real content mistake turned up behind them: a fishing achievement's icon named something that is not an item, so it had no icon. Stopping the server logged two errors of its own, from the pack that carries the tooltip labels; it stops clean.
Gear
- Enhanced gear moved to the shared library. Rolling extra stats onto a weapon, tool or armour piece a player already owns worked only because this mod supplied the part that writes them, which made the item format ours rather than everyone's. The library owns it and this mod supplies only what its own stats are called. Nothing changes for a player and enhanced items keep everything they carry.
- New: an enhanced item can carry a name and a rarity. A pack authoring an enhancement can say what the item becomes, and the game colours the name, tooltip frame and slot to match. Nothing is renamed unless a pack asks. Durability can be rolled as an enhancement too, raising an item's maximum. The authoring detail is in Ziggfreed's CommonLib's own notes.
Rested XP
- New: rested XP waits for a real break. Rested XP is there for coming back after time away, not for stepping out for a moment, so an absence shorter than 30 minutes earns none of it. Longer than that and the whole time away counts, up to the offline cap. The Rested XP admin page carries the threshold in minutes beside the cap: raise it to make rested XP something you come back to, or set it to 0 for the old behaviour where any gap counted.
- Fixed: Reset to Defaults gives you the rested XP rate the mod ships with. The flat rate came down to 250 an hour in 1.6.0, but the reset button and a config file with that setting deleted both handed back the old 1500, so a server that had pressed reset was quietly accruing six times what it meant to.
For content authors
- A mastery track can name its own picture. Write
"Icon": "at the top of a track file and that item is the art on its card, on its header and on every node inside it. A track that names none is drawn from what it targets, as before: an ability track takes the ability's own picture, a skill track the skill's. A single node can name an- "
Iconof its own to break out of the track's. - A step KIND is one file.
Server/ZiggfreedCommon/ObjectiveKinds/holds everything about a kind of step in one place: what it counts, what its target names, the wording it reads through and the picture beside it. A file only has to say what you want to change, so writing a picture leaves the counting alone, and.json "Producible": falseturns a kind off without restating anything else. This mod ships one for each of the kinds it adds and the library ships one for each of its own. It is also how you correct a picture: a creature family whose name is not itself a creature (Trork, whose members are Brawlers and Chieftains) gets pointed at whichever one represents it. - Ids read
Is_Like_This. The feature ids a requirement can name (Mastery,Abilities,Xp_Tokens,Npc_Placementsand the rest) and the lifetime tallies a condition can ask about (Mob_Kills,Blocks_Broken,Encounters_Defeated, ...) are spelled the way the game spells its own ids, and the pack guide spells them the same way. Matching is case-insensitive, so a file writtenmasteryormob_killskeeps working, and a saved tally re-spells itself the next time it moves. Nothing to migrate. - New: a quest or achievement can count what a work station hands you. A step of the station-output kind counts every stack a station puts in your hands: the planks a cycle makes, the extra ones a better hatchet earns, every find a lucky cycle shakes loose, the trophy hatchet when it finally drops. It names the item and, if the author wants, the station, and it sits beside the kind that already counted cycles worked. Both are fired by RPG Stations itself; this mod adds the step wording and keeps a station items statistic beside its count of cycles worked. A payout that runs a console command, and anything a station made while nobody was standing at it, never count. RPG Stations 1.0.0 releases beside this version, so the Sawmill is there to count from the first day, and work a station does while nobody stands at it pays its skill XP to whoever gathers the output.
- A skill XP reward can pay a range. An
Mmo_Xpreward takes anAmountMaxbeside itsAmountand draws once between the two per grant, the way a loot row rolls its count; an all-skills or category award pays the one rolled number into every skill. A reward that names noAmountMaxpays its flat amount as before. The stations pack's trim wages are the worked example. - A generator can fan out over every boss on the server. A quest or achievement family can name the
ziggfreedcommon:encountersaxis as its source, one row per fight the server knows, with{"Difficulty": "hard"}as a filter, so a slay-every-boss chain stays right as packs add fights.
Migration notes
- Required: Ziggfreed's CommonLib 2.1.0 or newer. Update the library jar with this one. The server refuses to start on an older library rather than running with boss fights and enhanced gear quietly missing.
- Automatic, one thing to read: your quest files move. Every quest under
mods/mmoskilltree/quests/is rewritten intomods/ziggfreedcommon/quests/, one file per quest, on the next start; the originals stay beside as.legacy, and the startup log lists what moved and what it could not carry. Edit the new files from here on. See "Your own quest files" above. - If you hand-cleaned a player's file after the 1.6.0 update, clean the old sections too. Remove the legacy
mmoskilltree:questsandmmoskilltree:achievementssections from that player's file as well before they next log in; otherwise the one last copy this version makes brings the old state back once. Safe for anyone who has logged in on 1.6.0 or later, since the shared record already holds everything those sections carried. - Automatic, one thing to check: the placed-block record moves onto the world's own chunks. Blocks placed before the update stop being remembered; everything placed from here on is guarded as before. Two
skill-config.jsonkeys retire with the old file,strictPlacedBlockCheckandplacedBlockExpireMinutes: a placement earns nobody credit whoever breaks it, and it is remembered until broken. A file still carrying either key gets one boot notice, and the keys are dropped on the next save. Where the lenient setting was standing in for a builder putting ore up for players to work, give that buildermmoskilltree.placedblocks.exemptinstead. - Check your file if you named a mob by the model it wears. A mob is matched by its role name, so an entry keyed on a model spelled differently from the role stops matching: re-key it on the role. The shipped defaults are re-keyed already (
MannequinbecomesDummy, which covers every training-dummy role, andScarabbecomesScarak, the creature's own name; Scarak XP is unchanged). Statistics and quest progress recorded under an old key stay where they are, which affects dummies and test fixtures and effectively nothing a player fights. - Required for pack authors: an item's description goes on
items., and nowhere else. A pack that put its prose on.description items.and let the mod copy it across saw one.description.base [LOC] Key ... does not existline per item at every boot, because the copy landed after the game had already checked. Rename those lines in yourserver.lang; the example school pack is renamed the same way.
Looking for technical details? View full developer changelog for v1.6.1