Valheim
Install with App

Details

Latest version
2.1.1
Last Updated
First Uploaded
Downloads
168
Likes
0
Size
199KB
Dependants
ADDatHost Valheim hosting
30% off

Changelog

2.1.1

  • Fixed Windows build failure caused by a missing BoostDrop.Models import in GroundPickupService.
  • Fixed nullable warnings in Jotunn configuration synchronization and GameObject result handling.
  • Hardened build-boostdrop.ps1: native dotnet restore/build failures now stop immediately instead of continuing to Copy-Item and reporting a misleading missing-DLL error.
  • No gameplay-rule change from 2.1.0; this is a build/validation fix for the P0-P2 refactor.

2.1.0

  • Refactored damage attribution into a dynamic Dictionary-based contribution ledger designed for 30+ players without fixed contributor slots.
  • Damage attribution now accepts only a real Player resolved directly from HitData; network owner, nearby players and local-player guessing are never used as combat attribution.
  • Added effective-damage correction from target HP before/after the hit when a compatible health accessor is available; overkill is clamped to remaining health.
  • Removed per-hit ZDO writes. Contributions stay in RAM and are persisted through compact, budgeted checkpoints (350 ms cadence, bounded targets per pass).
  • Added checkpoint migration handling so network ownership changes do not decide reward identity.
  • Non-player final damage keeps the reward vanilla, including targets that already carried a checkpoint from a previous owner.
  • Separated contribution data from player policy data. Config/YAML/grant reloads no longer erase an in-progress boss/resource contribution ledger.
  • Added EffectivePolicyCache so group/YAML/grant resolution is not performed in the damage hot path.
  • Added RuntimeIdentityDirectory that keeps peer UID, runtime player ID and platform user ID separate.
  • Added initial runtime-policy snapshots plus compact per-player deltas for joins/grants/revokes/disconnects.
  • Fixed reconnect/stale identity collisions and policy-cache removal for disconnected peers.
  • Reworked Pickable/PickableItem attribution to use the routed RPC sender rather than current ZDO owner/local player.
  • Reworked loose ground pickup with a one-time processed marker to prevent drop/pickup multiplication exploits.
  • Reworked chest loot to use a persistent ZDO processed marker instead of an unbounded static HashSet.
  • Reworked DropBoostContext into a generation-token reward context with exception finalizers, preventing leaked nested contexts after Harmony failures.
  • Added watcher restart/debounce/retry behavior and last-known-good YAML preservation.
  • Suppressed watcher echoes caused by BoostDrop's own grant-file writes, avoiding redundant full reload/snapshot traffic.
  • Removed the unimplemented Building placeholder category.
  • Renamed Farming behavior internally to PlantGrowth; legacy YAML farming remains supported for compatibility.
  • Added boostdrop perf counters for contribution tracking, checkpointing, policy cache and policy network traffic without per-hit logging.
  • Updated source/build/package metadata to 2.1.0 and included the 256x256 BoostDrop icon.

2.0.4

  • Replaced last-hit/network-owner creature attribution with a cumulative damage contribution ledger. The highest-damage Player receives the reward policy.
  • Strict vanilla fallback: if the current damage attacker is not a real Player, BoostDrop does not attribute that hit; a non-player killing hit leaves the resulting reward vanilla.
  • Mining/wood damage paths now use the same contribution model for MineRock, MineRock5, TreeBase, TreeLog and supported Destructible targets.
  • ZDO/network ownership is never used as reward ownership. Nearby players can own the network object without stealing another player's multiplier.
  • Added a resolved runtime policy directory so a client that currently owns a world object can apply the winning remote player's policy without any per-hit BoostDrop RPC. Raw permissions/grants YAML remains server-only.
  • Damage totals are checkpointed compactly in the target ZDO so ownership migration does not erase earlier contributors; ZDO owner is transport/state only, never reward identity.
  • Runtime Player.GetPlayerID() is reported during the existing policy request only as a lookup key; the server still resolves the effective policy from the authenticated peer identity. Contributor name is persisted once per target/player as a fallback.
  • Hot-path optimization: O(1) dictionary updates per eligible hit, leader maintained incrementally, no player scans/YAML reads/RPCs/log strings per hit, no per-entity Update.
  • Contribution cleanup is global, incremental (128 targets/minute tick), 10-minute stale timeout and an 8192-target safety cap.
  • Runtime policy changes/grants invalidate in-memory policy caches; persisted damage totals remain attached to the target and are re-evaluated with the current policy.
  • Build helper defaults to F:\SteamLibrary\steamapps\common\Valheim dedicated server; BUILD-2.0.4.bat uses that script default instead of overriding it.

2.0.3

  • Fixed live configuration updates becoming inconsistent until a server restart. Runtime policy refresh is now delayed until Jotunn configuration synchronization completes.
  • Reworked YAML hot reload to wait for a quiet filesystem window, retry partial saves, preserve last-known-good permissions/grants on parse failures, and restart watchers when paths/settings change.
  • Fixed dedicated-server player attribution: routed peer UID is resolved to the correct platform ID/name instead of falling back to an unrelated Player object.
  • Fixed per-player multipliers leaking/collapsing so players with different x values are evaluated independently.
  • Fixed Pickable and PickableItem on Valheim 1.0.x by resolving RPC_Pick sender identity directly on the authoritative instance.
  • Prevented double multiplication of Pickable extra drops.
  • Item/mob overrides are now evaluated even when the category base multiplier is x1.
  • Added deterministic context cleanup across config/network lifecycle changes and Harmony exception finalizers so failed patched methods cannot poison the next event.
  • Build helper now defaults to C:\\ValheimServer, removes the stale machine-specific active props file, and no longer contains the accidental trailing /ini token.

2.0.2

  • Valheim 1.0.7 network compatibility: removed BoostDrop's dependency on Jotunn.Entities.CustomRPC for policy/admin traffic.
  • Personalized policy request/push now uses Valheim's native ZRoutedRpc.Register<ZPackage> and InvokeRoutedRPC directly.
  • Admin GUI request/response now also uses native ZRoutedRpc.
  • No BoostDrop network path uses ZRoutedRpc.Everybody; every packet is addressed to the concrete server/client peer UID.
  • RPC registration is bound to the current ZRoutedRpc instance and automatically re-registers after reconnect/world changes.
  • Preserved the privacy boundary: clients receive only their own resolved effective policy, never the permissions/grants YAML.
  • Preserved server-side admin validation and sender validation for policy/admin responses.
  • Fixes the runtime failure MissingFieldException: Field not found: .ZRoutedRpc.Everybody originating from Jotunn 2.29.2 CustomRPC.SendPackage on Valheim 1.0.7.

2.0.1

  • Fixed dedicated-server online player resolution. Grants/checks/policy sync now resolve connected users from ZNetPeer instead of requiring a remote Player GameObject on the server.
  • Steam/platform identity is read from the peer socket host identity used by Valheim's admin/ban lists; name-based fallback remains available.
  • Grant/Update and Revoke immediately push the recalculated personalized policy to the connected target peer.
  • Initial client policy requests no longer fail when the dedicated server has no instantiated remote Player object.
  • Client no longer compares SteamID64 policy identity against Player.GetPlayerID() (they are not the same identity domain).
  • Added verbose policy-send logging when EnableLogging=true.

Build tooling fix (2026-09-04)

  • Linux build discovers Jotunn.dll recursively under BepInEx/plugins.
  • Linux build passes the real Valheim/BepInEx/Jotunn paths to MSBuild, overriding stale Windows BuildLocal.props.
  • Project paths use cross-platform separators and include Unity UI support modules when present.

2.0.0

  • Refeito o modelo de rede para cliente + servidor com autoridade do servidor.
  • Jötunn passou a ser dependência obrigatória.
  • Config funcional usa Jötunn ConfigSync/admin-only; servidor prevalece sobre clientes comuns.
  • Removido o antigo sync do YAML completo (BoostDrop_SyncPermissions).
  • BoostDrop_permissions.yaml agora é estritamente privado do servidor.
  • Novo BoostDrop_grants.yaml, também privado do servidor, para permissões temporárias.
  • Cliente recebe somente sua própria política efetiva já resolvida, em memória.
  • RPC de política aceita dados apenas do peer real do servidor.
  • RPC de administração aceita ações apenas de peers que o servidor confirma em adminlist.txt.
  • Nova GUI admin em F8 com grant/update, revoke, check, list, reload e cleanup.
  • Novos comandos boostdrop grant/revoke/check/list/reload/cleanup/gui/me e aliases com ponto.
  • Grants temporários aceitam 30m, 12h, 7d, 2w, número puro em dias, permanent e data ISO/UTC.
  • Multiplicadores agora suportam decimais com arredondamento probabilístico da fração.
  • Nova categoria mobdrop, com override por mob e por item.
  • Mantidas mining, wood, fishing e pickable.
  • Removidos hooks genéricos de ItemDrop/pickup para impedir exploit de jogar stack no chão e multiplicar ao pegar novamente.
  • Refeito o watcher de YAML para executar reload/sync na thread principal.
  • YAML until inválido falha fechado: regra não fica ativa/permanente por erro de digitação.
  • Preservada compatibilidade com userIds, players, playerDetails, groups, categories, items e until da 1.x.
  • YamlDotNet local é usada no build quando disponível, com fallback para NuGet.

1.2.1

  • Fix crítico: servidor dedicado + PlayFab — pedras/árvores pertencem ao cliente (ZDO owner); DropTable.GetDropList corre no cliente, não no servidor. Boost passa a aplicar também no cliente remoto (Player.m_localPlayer).
  • Comandos boostdrop.check passam a escrever no LogOutput.log (além do chat).

1.2.0

  • Fix: servidor dedicado + PlayFab — resolução do jogador via HitData.m_attacker, GetConnectedPeers, nome do peer e fallback com 1 jogador online.
  • Fix: Destructible.RPC_Damage passa a propagar o sender.

1.1.0

  • Categorias mineração, lenha, pesca e colheita.
  • YAML expandido com grupos, playerDetails, itens e until.
  • Reload automático e comandos básicos.

1.0.0

  • Versão inicial: boost por jogador em mineração e lenha.

2.0.0 buildfix2

  • Fixed compilation against the stock Valheim 0.221.12 dedicated-server assemblies (non-publicized).
  • Replaced private CharacterDrop.m_character access with GetComponent<Character>() / parent lookup.
  • Replaced private ZRoutedRpc.GetServerPeerID() access with public ZNet.GetServerPeer()?.m_uid resolution.
  • Tightened nullable handling in drop/config/grant parsing paths.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.