You are viewing a potentially older version of this package. View all versions.
SonicDM-Dismantleheim-0.1.0 icon

Dismantleheim

Satisfactory-inspired queued Mass Dismantle (refunds) and Mass Delete (no drops). Ctrl-paint select, Shift+M3 filter, hold Mouse3 to confirm. Infinity Hammer Tools + Delete hotkey.

Date uploaded a week ago
Version 0.1.0
Download link SonicDM-Dismantleheim-0.1.0.zip
Downloads 74
Dependency string SonicDM-Dismantleheim-0.1.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202
ValheimModding-Jotunn-2.23.0 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.23.0

README

Dismantleheim

Satisfactory-inspired queued selection for Valheim with two modes:

  • Mass Dismantle — reclaim construction materials like the normal Hammer (vanilla refunds).
  • Mass Delete — erase selected objects with no material or harvest drops. Deleting containers can destroy their contents.

Nothing is removed on hover, select, tool switch, or mode switch. Hold Mouse3 to confirm.

Version 0.1.0 (beta)
GUID com.sonicdm.valheim.dismantleheim
Dependencies BepInExPack Valheim, Jötunn
Soft dependency Infinity Hammer (Tools menu entries)

How to get the tools

With Infinity Hammer (recommended)

  1. Install Infinity Hammer (+ Server Devcommands / World Edit Commands as required by IH).
  2. Run hammer_menu to spawn the Infinity Hammer.
  3. Equip it → build menu → category hammer → Dismantleheim - Mass Dismantle / Dismantleheim - Mass Delete (Hammer icons; IH loads BepInEx/config/tools/infinity_tools*.yaml).
  4. Or press Delete (ActivateKey) while in hammer placement mode.

First launch after install writes the tools file; restart once if the entries are missing from the menu.

Without Infinity Hammer

Equip a hammer → enter build/placement mode → press Delete, or console: dismantleheim mode dismantle|delete. No extra hammer item.

Controls (while active)

Input Action
Click / hold LMB Add piece under aim (does not unselect)
Hold Ctrl + wave aim Mass-select valid pieces under the cursor (add-only; no box)
Ctrl + click Unselect one hovered piece
Shift + Mouse3 Sample prefab filter (vanilla pipette suppressed)
Hold Mouse3 Confirmation ring; release early cancels
Right click Normal build menu
Escape Cancel hold or clear queue
ActivateKey again Deactivate

HUD shows MASS DISMANTLE — Returns Materials or MASS DELETE — No Drops, plus N selected. Mass Delete warns when queued containers hold items.

Unfiltered selection: removable Pieces only. Mass Delete may include rocks/trees/props after an explicit prefab sample. Mass Dismantle never queues environment.

Dry-run

Removal.DryRunOnly = false by default (live dismantle/delete). Set true to log the plan only with no world deletes — useful for testing. Read docs/authority.md before enabling live remove on a valued world.

Authority

  • Mass Dismantle (live): ward access → CheckCanRemovePiece → Piece.CanBeRemoved → WearNTear.Remove → Piece.DropResources (vanilla refund path).
  • Mass Delete (live): ward access → WearNTear.Remove without DropResources. Occupied chests allowed after warning.
  • Environment on unmodded dedicated servers is not promised. Details: docs/authority.md.

Config

  • [Modes] DefaultMode, ShowActiveMode, PreserveSelectionOnModeSwitch
  • [Input] ActivateKey (Delete)
  • [Confirm] HoldSeconds, ShowRing, ShowSelectedCount
  • [Selection] AllowEnvironmentWithFilter, ClearQueueOnToolSwitch, MaximumTargets, ExtraDeny/Allow
  • [Safety] WarnWhenDeletingOccupiedContainers, RefuseUnknownDeleteTargets
  • [Integration] InstallInfinityHammerTool, PreferInfinityHammerOnly
  • [Removal] DryRunOnly

Commands

Command Purpose
dismantleheim mode dismantle|delete Enter / switch mode
dismantleheim activate Enter DefaultMode
dismantleheim deactivate Leave mode
dismantleheim status State / mode / queue / filter
dismantleheim clear Clear queue
dismantleheim why Last selection reject reason

Install / Build / Uninstall

  1. BepInExPack + Jötunn (+ Infinity Hammer for Tools entries).
  2. Place Dismantleheim.dll in BepInEx/plugins/.
.\build.ps1
.\test.ps1

Uninstall: remove the DLL; optional delete BepInEx/config/infinity_tools_dismantleheim.yaml (or config/tools/).

Acceptance

CHANGELOG

Changelog

0.1.0

Beta — first public package. Satisfactory-inspired dual-mode queued selection, live-tested on a disposable world. Same 0.1.0 tag was refreshed as this landed (icon, live default, docs).

Modes

  • Mass Dismantle — reclaim construction materials like the normal Hammer (WearNTear.Remove + Piece.DropResources)
  • Mass Delete — erase with no material/harvest drops; occupied containers warn then may delete
  • Nothing removes on hover, select, tool switch, or mode switch — only after hold-to-confirm Mouse3
  • HUD labels: MASS DISMANTLE — Returns Materials / MASS DELETE — No Drops, plus selection count

Activation

  • Infinity Hammer Tools: hammer_menu → Tools → Dismantleheim - Mass Dismantle / Mass Delete
  • ActivateKey (default Delete) while in hammer placement / DefaultMode
  • Console: dismantleheim mode dismantle|delete, activate, deactivate, status, clear, why
  • IH Instant Tools: activate on menu select (BuildUi path); holster / other-tool / re-equip ownership handled without sticky HUD
  • No second inventory Hammer — owned infinity_tools_dismantleheim.yaml only

Selection & controls

  • Plain LMB: click-add only (does not toggle off)
  • Hold Ctrl + wave aim: paint-add nearby valid targets (add-only; no box select)
  • Ctrl+click: unselect one hovered target
  • Shift+Mouse3: sample / clear prefab filter (vanilla pipette + missing-requirement toast suppressed while active)
  • Hold Mouse3: confirmation ring; early release cancels the hold and keeps the queue
  • Escape: cancel hold or clear queue; holster / re-equip also clears mode ownership
  • Mass Delete: rocks / trees / props queue only after an explicit prefab sample; Mass Dismantle never queues environment
  • Hover + queued glow for build pieces and env/props (MaterialMan tint; WearNTear when present)

Removal authority

  • Exact queued ZDO identities only — no wildcard / area deletes
  • Separate dismantle vs delete adapters (no shared RemoveEverything(bool))
  • Mass Dismantle: ward → CheckCanRemovePiece → Piece.CanBeRemoved → refund path
  • Mass Delete: ward → remove/destroy without DropResources; Destructible env/props supported when sampled
  • Removal.DryRunOnly defaults false (live); set true for plan-only testing / logging

Integration & packaging

  • Conflict-safe Infinity Hammer YAML install/migrate; preserve non-stock owned tool files; honest removal reporting
  • Soft dependency on Infinity Hammer; works with vanilla hammer via ActivateKey / console
  • Thunderstore zip: manifest.json, README, 256×256 icon, CHANGELOG, Dismantleheim.dll
  • Mod icon: Satisfactory dismantle tool + Valheim-style scene

Tests & docs

  • Automated Core + Installer + AssemblyCompatibility tests
  • Acceptance: docs/acceptance-Gxx.md (dual-mode), docs/acceptance-Hxx.md (selection/confirm), docs/authority.md