Valheim
Install with App

Details

Latest version
1.0.0
Last Updated
First Uploaded
Downloads
116
Likes
1
Size
43KB
Dependants
ADDatHost Valheim hosting
30% off

Unmarked

Unmarked

Gets rid of the "summoned through cheating means" mark, and keeps it gone.

Since Valheim 1.0, items made or found while cheats were on carry a mark, the grey line "This item was summoned through cheating means". The mark spreads: put one marked wood on a stack and the whole stack is marked, smelt marked ore and the bars come out marked, tear down a marked wall and its materials are marked.

Install Unmarked on your dedicated server and it clears the mark from your world as soon as the world loads, then keeps clearing it as people play. Your players don't install anything. It runs only on the server.


What you get

A clean world on load Every item in every chest, cart, ship, tombstone and item stand, every item on the ground, and every marked building piece and station is cleared as the world loads.
Kept clean while you play When a player's game sends the server a chest, a dropped item or a station, Unmarked clears any mark within a second, and every player's game, theirs too, gets the clean version.
Clean your own inventory Put marked items in any chest, close it, open it again: they come back clean.
Clean furnace output Smelters, blast furnaces, kilns, refineries, fermenters and cooking stations fed marked items lose their mark before anything comes out.
Builds stop leaking marks Pieces built with cheats are cleared, so tearing them down gives back clean materials.
Leaves everything else alone Only the one mark bit of each item is changed: stack, quality, crafter, slot and custom data stay as they are. Anything it can't read exactly is left untouched.
Chests in use are left alone A chest someone has open is cleaned when they close it, so nothing changes under their hands.
Tells you what it found The log says what was cleaned, where, and whose game sent it, and the player sees a short message.
Optional: spot outside cheat tools Switch on FlagImpossibleItems and the log names items the game could never make, like a stack of 500 wood or a quality-10 sword, with where they are and whose game sent them. Only logs.
Optional: debug items Switch on RemoveDebugItems to delete the developer-only items (SwordCheat, SledgeCheat and the like) wherever they are stored.
Light on your server Live cleaning costs next to nothing. The whole-world check runs every 10 minutes, about 0.5 ms a frame for half a minute on a world of 2.9 million objects, never more than a few ms in one frame. The log shows the numbers for yours.

Install

You need a Valheim dedicated server with BepInEx on it (BepInExPack for Valheim). Most server hosts have a one-click option for BepInEx.

Step by step

  1. Download Unmarked-<version>.zip from Releases.

  2. Unzip it. Inside is a plugins/Unmarked folder.

  3. Copy the Unmarked folder into your server's BepInEx/plugins folder, so you end up with:

    <server>/BepInEx/plugins/Unmarked/Unmarked.dll
    
  4. Start the server. In the server log you should see:

    Unmarked 1.0.0 loaded
    

    and, once the world has been checked:

    Unmarked: world on load: 802 marked items cleaned in 5648 objects, 5057 object marks cleaned; ...
    

That's it. Make a backup of your world first if you'd like to be able to go back: cleared marks are saved with the world.


Settings

Settings live in BepInEx/config/com.cocopuff2u.unmarked.cfg. The file appears after the first start. Edit it any time: Unmarked picks up the change a second after you save, and says Settings reloaded in the log.

Setting Unmarked default Vanilla game What it does
Enabled true Turns the whole mod on or off.
CleanOnLoad true marks stay forever Clear every mark in the world right after it loads.
CleanLive true marks stay forever Clear marks from chests (once closed), carts, ships, tombstones, ground items and stands as players' games send them.
CleanObjects true marks stay forever Clear marks from stations fed marked items and from marked pieces and containers.
RoundMinutes 10 Minutes between checks of the whole world, for anything not caught live. 0 turns the rounds off.
RemoveDebugItems false debug items stay Delete the developer-only items: SwordCheat, SledgeCheat and every other item whose name ends in Cheat.
ExtraItems (empty) More items to delete when RemoveDebugItems is on, by prefab name, comma separated.
ReportOnly false Find and log marked things, but change nothing. Handy for a first look.
FlagImpossibleItems false Log items the game could never make: a stack bigger than the item's stack size, or a higher quality than it can be upgraded to. Only logs, never changes anything.
LogEachClean true A log line for each thing cleaned while people play (what, where, from whom), and a summary after each world check.
NotifyPlayers true A short message in the middle of the player's screen when items they just stored were cleaned.

A blank means the game has nothing like it.


Good to know

  • What a server can't reach. Each player's inventory lives in their character file on their own PC, and crafting at a workbench or forge happens there too. Unmarked can't change those directly. It doesn't need to for long: the materials in your chests are clean, so new crafts come out clean, and any marked item a player carries is cleaned the moment it goes into a chest. Close and reopen the chest to take it back clean. A tombstone is a chest too.
  • Achievements. A character that ever used cheat commands keeps its own "used cheats" note in its character file, and that is what blocks achievements. Only the game can clear it: the console command yesiuseddevcommandsbutiwantmyachievementsanyway 1 on that character.
  • ReportOnly and FlagImpossibleItems are different things. ReportOnly is a dry run of the cleaning: it logs the game's cheat mark without clearing it. FlagImpossibleItems looks for another kind of cheating altogether: outside cheat tools and hacked game clients leave no cheat mark, but often give themselves away with items no workbench or stack could hold. It is off by default because mods that raise stack sizes or add upgrade levels would make every big stack show up. Each item is reported once, and only items in chests, on the ground or on stands can be seen, not what a player keeps in their own inventory.
  • Using NoCheatedTag or NoCheatItems too? They can run side by side; Unmarked just finds nothing left to clean. NoCheatItems deletes marked items, Unmarked keeps them.

Troubleshooting

Problem Fix
Nothing in the log about Unmarked BepInEx isn't running. Check that BepInEx/LogOutput.log exists and the server starts through BepInEx.
An item in my inventory still has the mark Put it in a chest, close the chest, open it again and take it back.
A chest still shows marked items Close it: chests are cleaned once nobody has them open.
I want to see what it would do first Set ReportOnly = true, start the server, read the log, then set it back.

Still stuck? Open an issue and attach BepInEx/LogOutput.log.


More

  • CHANGELOG.md: what changed in each version.
  • Building from source: ./build.sh --managed <server>/valheim_server_Data/Managed (needs the .NET SDK 8+). The zip lands in dist/.
  • Self-test: build with dotnet build src/Unmarked.csproj -c Release -p:SelfTest=true, put that DLL on a test server, create an empty file BepInEx/config/unmarked.selftest and start the server. Out at sea it makes chests, ground items, an item stand, stations and a village of 1500 marked walls, all marked, sends them through the same path a player's update takes, logs Unmarked TEST PASS or FAIL for each feature, then removes what it made. The normal build has none of this in it.

Credits

Unmarked is made by Cody Keats, who also makes Munin Map and Regrove. Ideas came from NoCheatedTag by FlorpyDorp and NoCheatItems by Ageous27. Thank you.

Licence

MIT. See LICENSE.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.