Unshamed
Valheim 1.0 won't give you achievements if you run mods. Any mods. BepInEx marks the game as modded and the game treats that the same as cheating.
Unshamed makes achievements work again, shows you what every achievement actually wants, and can hand back the ones you already earned.
Client side only. Nothing needed on the server.
TL;DR
- Install and play. Achievements count again.
- Want to know what an achievement actually wants? Turn on Reveal Requirements and Guide Panel. Spoilers.
- Played modded since 1.0?
unshamed retroin the console (F5) lists what you already earned.unshamed retro applytakes them.
Achievement guide
Vanilla shows ??? / ??? for anything you haven't done, hides secret achievements, and the descriptions are one line.
Both off by default, because spoilers. Turn them on in the config:
- Reveal Requirements: every achievement shows and opens, secret ones included. Every requirement shows its real name and your progress, unfinished ones at the top.
- Guide Panel: a panel beside the details explains in plain English what counts, what doesn't, and what difficulty it needs. That includes the rules the game never mentions, like Top of the World needing 5 of your own pieces stacked under it.
- Live info where it helps: comfort pieces and what's counting near you, pieces for each build tag, which berries, mushrooms and crops count, the axe each tree needs, distance left for the explorer achievements, your day streak.
- Lists come from what's loaded, so modded creatures, items and pieces show up where the game counts them.
unshamed guide writes all of it, with your progress, to BepInEx/config/Unshamed_achievements.md. Works with both off.
What it won't do
Unshamed changes one answer: Achievements.CanGetAchievements() returns true. It never clears a cheat flag.
m_usedCheats, theCheatsstat and cheated world marks stay as they are.- Spawned items still carry
m_cheated, on your client and on a server. PlayerProfile.s_bypassCheatChecksis never touched.
Uninstall it and vanilla reads exactly what it always would have.
The vanilla command yesiuseddevcommandsbutiwantmyachievementsanyway also unlocks achievements, but it does it by
turning off cheated item stamping for your character. Unshamed doesn't need it. unshamed status tells you if it's on,
and yesiuseddevcommandsbutiwantmyachievementsanyway 0 turns it off.
The "achievements are disabled" warnings are reworded, since they aren't true with this installed. The console still
knows you're modded, so no confirmcheats prompt.
Getting back what you earned
While you were modded, your stats only went into the raw bucket the game never checks for achievements. Retro copies them into the one it does, then lets vanilla decide what unlocks.
unshamed retrolists what would unlock. Changes nothing.unshamed retro applytakes all of them.unshamed retro apply 1 3orunshamed retro apply <id>takes only those. The ones you skip stay locked.
Only the Any difficulty is filled. Hard and Hardcore still need a real run. There's no undo, so preview first.
When you load in with some waiting, you get a message on screen telling you so. With Enable Retroactive on, you get told what it gave back instead.
Some stats the game never recorded at all. Crafted items only started counting in Call to Arms, and food and build pieces only in 1.0. For those, retro looks at things you can show you did:
- Items with your name as the crafter, in your inventory, chests, tombstones, carts, item stands, armor stands and on the ground.
- Build pieces you placed that are still standing.
- Trophies from your trophy list, and the food you're eating right now.
It only fills in things neither stat bucket has. Anything the game actually counted keeps its real number.
Why not just recheck on load?
Some mods recover progress by rerunning the game's unlock checks a few seconds after you spawn. Vanilla already checks every achievement each time you load a character, so that finds nothing new. The checks read the bucket that was empty the whole time you played modded. Retro fills that bucket.
Commands
Press F5.
| Command | What it does |
|---|---|
unshamed status |
Are you eligible, and why |
unshamed retro |
List achievements you already earned |
unshamed retro apply [n..] |
Grant all of them, or only the ones you name |
unshamed list [filter] |
Every achievement, id and lock state |
unshamed guide [id] |
Print one achievement's guide, or write the full file |
unshamed audit |
Your stat buckets and every cheat flag |
unshamed recon |
Dump the achievement system to a file |
Config
Azumatt.Unshamed.cfg
- Enabled: master switch.
- Ignore Cheat Flags: the fix. Off puts you back to vanilla.
- Show Popups: unlock popups for retro grants. Off by default.
- Enable Retroactive: grant everything once on next load without asking. Off by default.
- Reveal Requirements: unhide secrets and
???rows in the achievements panel. Off by default. - Guide Panel: the explanation panel beside the details. Off by default.
- Force True / False Methods: emergency override if a game patch breaks something. Leave empty unless I tell you otherwise.
Caveats
- Nothing unlocks if you never did the thing. Vanilla still checks.
- Retro copies everything in the raw bucket, spawned items included. The game doesn't mark those rows, so I can't filter them out.
- Retro only sees pieces and chests that are loaded. Single player and hosting see the whole world. On a dedicated server you only see the area around you, so run it at your base.
- Anything you crafted and then sold, broke or lost isn't there to find.
- The Homesteader and the village build achievement use vanilla's lenient 115% rule in retro too, same as when you place pieces.
- 1.0.0 cleared
m_usedCheatsand theCheatsstat. That can't be undone, and no later version does it.
Feel free to reach out to me on discord if you need manual help. AzumattDev on Discord.