Today was a bug triage day. I went through every open user-submitted report, triaged them, and shipped fixes for the ones I could resolve immediately.
Bug Fixes
XP Overflow Protection (#223)
A user created a level 50 Arctic Moa by entering an absurdly large XP value (somewhere around 10²¹). It worked at first, but the moment the animal ate silage in-game, the level reset to 0 and the talent tree wiped itself. Classic integer overflow: the game recalculated on a trigger event and the value wrapped.
The HTML input already had a max attribute set to INT32_MAX, but that's just a browser hint. Nothing stopped the value on the client or server side. I added three layers of clamping: the HTML max attribute, a Math.min in the JavaScript before sending, and a server-side clamp in the Python _set_prop() function. The cap is 1,147,483,647 (one billion below INT32_MAX), which gives plenty of headroom without flirting with the boundary.
UTF-16 File Encoding (#222)
A user uploaded their Characters.json and got a UnicodeDecodeError with 0xFF at position 0. That byte pattern is a UTF-16 Little Endian BOM. The parser was using utf-8-sig, which handles UTF-8 BOMs but chokes on UTF-16.
I wrote a _decode_json_bytes() helper that detects UTF-16 LE, UTF-16 BE, and UTF-8 BOM before falling back to plain UTF-8. Applied it to every JSON upload path in the portal: Characters.json, Profile.json, MetaInventory.json, and prospect saves. If your text editor saves JSON with a weird encoding, the portal handles it now.
Great Hunt Decision Point Reset (#229)
A user completed the entire top-row path of the Great Ape chain on Styx and wanted to go back and run an alternate path. The Prospects tool let them reset the completed missions, but the alternate paths stayed locked in-game.
This one took some reverse engineering. The game tracks Great Hunt progress in two places within the prospect save: MissionHistory (which missions are complete) and WorldTalentRecords (which path talents have been granted). Choice nodes in the chain use a ForbiddenTalent system: when you complete path E, the game grants the GH_APE_E talent, and paths C and D check for that talent to lock themselves.
The reset tool was stripping MissionHistory correctly but never touched WorldTalentRecords. The path talent stayed, so the game still saw the alternate routes as forbidden.
The fix walks the full chain from the earliest reset point and strips both mission entries and talent records. For the Ape chain, resetting from the decision point takes you from 7 talent records down to 2 (just the pre-choice hunts A and B), with all three paths reopened. This works generically across all Great Hunt chains on all maps (Rock Golem on Olympus, Ice Mammoth on Prometheus, Great Ape on Styx).
New Feature: Bio-Lab Entitlement Warning (#227)
Bio-Lab weapons and other station loadout items are subject to entitlement validation checks when sent up or brought down from the station. If you haven't unlocked the prerequisite (a specific hunt, a mission, DLC, etc.), the game silently removes the item. No error, no message. It just vanishes.
The portal now shows a one-time warning modal when you first open the Workshop tab, explaining this behavior. It persists in your browser so you only see it once.
New Feature: Transfer to Backpack (#228)
This is the workaround for the entitlement problem above. Items already present in your prospect (world) save are trusted by the game engine. They skip the station validation entirely.
There's now a "Transfer to Backpack" button in the loadout item detail modal. Click it, and the item gets copied from your MetaInventory directly into your character's prospect inventory. You need both a MetaInventory.json and a prospect save uploaded in the same session for this to work. The button is disabled if you haven't uploaded a prospect save yet.
Open Reports
Two reports are still under investigation. If you reported issues with dedicated server inventory edits not applying (#195), I've reached out asking for before/after save files to help trace the problem. And if the Apply/Download buttons weren't working for you after purchasing premium (#194), I've followed up on your report. Your account shows six successful applies that same session, so it may have been a temporary issue.
As always, bug reports that lead to fixes get premium credits. If you filed one of the issues above, check your account.