Valheim
Install

Details

Last Updated
First Uploaded
Downloads
5.7K
Likes
4
Size
219KB
Dependency string
MidnightMods-ValheimEnforcer-0.19.0
Dependants
ADDatHost Valheim hosting
30% off!

0.19.0

- Reduces false positive kicks for having applications which could be cheat-engines running
   - Generic window classes are now a low-confidence signal: the sighting is still reported and
     logged on the server
- Kicks and bans from cheat reports now target the reporting connection's platform ID instead of
  the player name it self-reported, so a crafted report cannot hit another player and duplicate
  character names cannot misfire
- A wrong mod version is now reported as a version mismatch instead of a modified file
   - This covers the case where enforceVersion is off and the recorded hash is what caught it
   - Version mismatches now name both versions - "com.example.Mod (needs 1.4.2, has 1.3.0)" - on the
     disconnect screen, in the server log and in the Discord {versionMismatches} field

0.18.0

- Discord notifications can now be split across channels
   - WebhookUrlPlayerActivity, WebhookUrlServerStatus, WebhookUrlModeration and WebhookUrlModMismatch
     each take a webhook of their own; any left empty falls back to WebhookUrl as before
- Every notification is now a template you can edit, in config/ValheimEnforcer/Notifications.yaml
   - Each entry is the literal message body posted to Discord, anything Discord accepts works, including
     author/footer/thumbnail/image
   - Deleting a key deletes that part of the message: drop "timestamp" and no date stamp is sent,
     drop "embeds" and it becomes a plain text post. Nothing is added back for you
   - A 'content' line is the only place a mention pings - use it for role alerts
   - Placeholders like {player}, {playerId}, {reason} and {missingMods}; a mod mismatch also exposes
     its missing/extra/version/hash lists separately instead of one block of prose
- Adds a world save notification (NotifyWorldSaved, off by default - the autosave is every ~20 minutes)
- Adds ServerLabel, exposed to templates as {server}, for several servers sharing one channel
- Adds Enforcer-Test-Notification, which posts any event with sample data so a template can be
  previewed without waiting for the real thing

0.17.0

- Adds character import from the ServerCharacters mod (ImportServerCharacters, off by default)
   - Reads the character files ServerCharacters leaves behind and turns them into enforcer saves, so
     migrating players keep their inventory and skills instead of being confiscated on first join
   - Item quality, variants, crafter names and mod item data (EpicLoot and friends) come across intact,
     as do modded skills
   - Runs once at server start, or on demand with Enforcer-Import-ServerCharacters, which has a dryrun
   - Existing characters are never overwritten unless 'force' is given

0.16.0

- Adds an optional one-character-per-account rule (EnforceCharacterLimit, off by default)
   - An account may only join with a character the server already has a save for, up to
     MaxCharactersPerAccount; anything else is refused at the connect handshake
   - Characters that already exist are never affected, so enabling it locks out no current player
   - Refused players are told which character to rejoin with, instead of a generic connection error
   - CharacterLimitExemptAccounts allows specific accounts any number of characters, whether or not
     they are admins; CharacterLimitExemptAdmins extends that to the whole adminlist

0.15.0

- Adds file verification of client plugin DLLs at connect time
   - New HashEnforcement setting: Off / WhenKnown (default) / Strict, overridable per mod in Mods.yaml
   - Mods the server loads pin themselves; client-only mods pin by hand or from a thunderstorePackage
- Fixes a mod with the wrong version being reported as both a version mismatch and a non-allowed mod
- Comments in Mods.yaml now survive the startup rewrite, which used to delete them - a note stays
  attached to the entry it was written above
- Documents the mod list in the README: the five lists, how an entry is structured, what is kept up
  to date for you and what you have to write yourself

0.14.1

- Update Jotunn version

0.14.0

- Greatly expands cheat tool detection
   - Detects the loaders used to deliver Valheim cheats, these are banned on sight
   - generic trainers are also detected, with a configurable moderation action (default ban)
- Ban reasons and Discord notifications now name the specific tool and how it was found

0.13.0

- Fixes item duplication on death edgecases
- Improves compatibility with death mods that change what happens to items on death
- Inventory changes are now tracked as they happen instead of being polled on a timer
   - An idle player sends nothing at all; CharacterDeltaTracker is now a rate limit (default 15s, was a 60s poll)
   - Singleplayer and listen-host sessions now keep their character save current mid-session
- Fixes restored items being dropped on the ground when the player had room for them
- Singleplayer fixed skill progress earned during a session being rolled back on death
- Status effects can no longer carry across a death

0.12.0

- Improves multiplayer disconnect saving for extremely large character saves
- Allows server admin editing of save files to be hot-reloaded (please ensure the player you are editing is logged off first)

0.11.1

- Improves accuracy of saves in singleplayer games

0.11.0

- Server-side character saves and delta updates are now written off the main thread
   - Full/delta saves are deserialized, serialized and written on a background worker with an in-memory cache
   - Repeated writes to the same character are coalesced, so a burst of saves (e.g. every client on a "save player profiles" broadcast) can no longer stall the server or time players out
   - Internal storage mode keeps its existing behavior (registry writes must stay on the main thread)
- Full character saves are now pulled by the server instead of riding the world/profile autosave
   - The server asks connected players for a full save every FullSyncPullIntervalMinutes (default 25)
   - No more than FullSyncMaxConcurrentPlayers upload at once (default 5); larger player counts are staggered into waves so incoming saves never spike bandwidth
   - Removes the client-side full-save timer and the Player.Save trigger; routine changes still stream up incrementally via CharacterDeltaTracker, and join/logout still push a full save

0.10.1

- Forward leads character saves to ensure first round of delta saves are not discarded

0.10.0

- Anti-Cheat now enabled by default
- ValheimTooler detection reworked to be more flexible
   - A confirmed ValheimTooler detection is always auto-banned (when cheat detection is enabled)
- Discord notification when a player is banned for cheat usage (NotifyCheaterBanned, default on, requires seperate webhook)
- Cheat Engine process scan throttled
   - ScanIntervalSeconds default raised to 30 (now only affects the Cheat Engine check)
- Added another user to the global ban list

0.9.1

- Admin only mods now strongly restricted to admins

0.9.0

- Added Automatic ban list, built in known-banned
- Added discord notifications (server side) [Configurable!]
   - Notify on player join
   - Notify on player leave
   - Notify on server start
   - Notify on server shutdown
   - Notify on mod mismatch

0.8.2

- Configurable save sync intervals for full saves and delta saves
- Last disconnect status tracked
   - Allows reduction in strictness of item confiscation
- Added a confiscated timestamp
- Improved item return logic to drop items on the ground if the player does not have room for it

0.8.1

- Null check for status effects which no longer exist when adding to character
- Improves Item return RPC logic to deal with partially valid clients
- Improves compatibility with some custom status effects and saved custom data

0.8.0

- Improved Item, skill, status effect, and custom data consistency
- Added a catchall to persist character data when exiting without saving

0.7.3

- Polling filewatcher for better server side support with unix/hybrid storage (default check interval is 30s, configurable)

0.7.2

- Adds support for status effect tracking between sessions (configurable)
   - Status effects (such as poison) will now be applied when you log back in, with their previous durations etc
   - No more save scumming for a 60s poison tick
   - On the plus side, your rested buff now stays between play sessions!

0.7.1

- Adds a very small amount of variance allowed for float rounding when validating item durability
- Adds extra details to the confiscation reason

0.7.0

- Added a confiscation reason field on items confiscated, field is optional but will be set for all confiscated items
- Removed redundant NewCharacterSkillsCleared setting (replaced by NewCharacterSetSkillsToZero)
   - Set NewCharacterSetSkillsToZero default to false
- Added CheatDetector module (in testing, disabled by default)
   - Client-side scanning for ValheimTooler (loaded assemblies) and Cheat Engine (process name, window class, injected speedhack/DBK modules, debugger, time-drift speedhack)
   - New Anti-Cheat config section; default ActionOnDetection=Log
   - Detections reported to server via new VENFORCE_CHEAT RPC

0.6.4

- Cache busting between player sessions
- Fixes character switching allowances for local only usage
- Add Extraslots compatability (restores items to the correct slots for characters with extraslots)
- Restores equipped status of items when they are returned to the player

0.6.3

- Explicitly requires yaml.net

0.6.2

- Improves item durability save bounding

0.6.1

- Adds item durability validation (configurable through ValidateItemDurability setting, default on)

0.6.0

- Improves custom data validation
- Enables Enforcer- commands for admins to retrieve confiscated items
   - List player saves
   - List confiscated items for a player
   - Retrieve confiscated items (give to admin) from a player save
   - Retrieve confiscated items (give to player) from a player save
- Optional (disabled by default) portable mode which stores all data inside the world

0.5.5

- Enforce quality and custom data consistency for all characters, including new characters on first load
- Added extra safety checks for player data settings

0.5.4

- Defaults to enforcing mod versions for active mods
- Automatically updates mod versions in all lists when the mod is updated on the server
- Fixes inconsistent server save IDs when recieving data from the client

0.5.3

- Fixes character fallback logic to more consistently select a non-mutating ID, prefers steamID and playfabID

0.5.2

- Fixes skill removal for new chracters on first load

0.5.1

- Fixes player custom data loading for new characters on first init

0.5.0

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