You are viewing a potentially older version of this package. View all versions.
Cartur-Carturs_Build_Camera-1.0.0 icon

Carturs Build Camera

Detach the camera and build without climbing on things. Works with any hammer, the hoe and the cultivator. Maintained fork of Azumatt's deprecated Build Camera CHE, fixed for Valheim 1.0.

Date uploaded 5 days ago
Version 1.0.0
Download link Cartur-Carturs_Build_Camera-1.0.0.zip
Downloads 842
Dependency string Cartur-Carturs_Build_Camera-1.0.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

Cartur's Build Camera

Equip a hammer near a workbench, press Shift+B, and the camera detaches from your character. Look around and move as usual, build and pick pieces as usual, and put the camera away by pressing Shift+B again, pressing R, or unequipping the tool. Works with the hoe and the cultivator, and with any modded build tool — anything holding a piece table counts.

Why this fork exists

Azumatt's Build Camera Custom Hammers Edition is deprecated, and the version still on Thunderstore — 1.3.1 — is broken on Valheim 1.0.

Valheim 1.0 dropped the trailing optional bool from ZInput.GetJoyLeftStickX/Y and GetJoyRightStickX/Y. C# bakes the resolved argument count into the call site, so the shipped 1.3.1 assembly still references four signatures that no longer exist and throws MissingMethodException out of the camera update every frame a controller is read. Resolving 1.3.1 against Valheim 1.0.16 turns up exactly those four dead references and nothing else. Azumatt fixed it in a 1.3.2 that only ever reached Nexus, then deprecated the package.

This fork is that code, recompiled against 1.0.16 and maintained.

Everything it does

  • Detached build camera for any tool with a piece table — vanilla and modded hammers, hoe, cultivator.
  • Its own configurable station range. It does not widen workbench coverage or player-base protection, so it will not suppress raids.
  • The camera cannot cross terrain. HearthBelow cave floors, walls and ceilings use the same collision path.
  • Optional cozy and minimum-comfort requirement, on camera entry or on camera pickup.
  • Pick up items off the ground through the camera, with a configurable HUD warning when the cozy rule blocks it. Respects wards, and WardIsLove when installed.
  • An equipped Dvergr circlet's light follows the camera, including CircletExtended and RaziCirclet custom slots. Position, intensity, range, colour and shadows are configurable.
  • A Wisplight's demister ball follows the camera, at 2.5× clearing range by default.
  • Separate mouse and controller look inversion.
  • World-relative panning instead of camera-relative, if you prefer it.
  • ServerSync: configs sync from the server, and the mod version-checks with itself.

What this fork changed

  • Recompiled for Valheim 1.0.16, which is the controller fix described above.
  • Exits build mode on death. Dying used to leave you detached with input suppressed, watching your own corpse with no way to take control back.
  • Exits build mode on a portal hop, which used to strand the camera clamped to a station in the world you just left.
  • Refuses to start while the game's own freefly camera is active, instead of putting two camera systems on one transform.
  • Auto-pickup falls back to the vanilla ward check when WardIsLove is installed but its CheckAccess cannot be resolved. It used to silently return "no access" and turn pickup off with nothing in the log.
  • Stopped writing __runOriginal = true in the patch early-outs, which could resurrect a method another mod had deliberately skipped.
  • Version handshake has a floor. It used to require the client and server strings to match exactly, so any patch release disconnected everyone who had not updated. It now accepts any version at or above a stated minimum, and ServerSync's own check reads the same minimum.
  • Default toggle is Shift+B, not bare B. Plain B is a crowded key — Cartur's UI HUD quick slot 3, EquipmentAndQuickSlots slot 3 and OdinHorse saddlebags all use it — so a single B both toggled the camera and fired that quick slot, eating any food sitting in it.
  • Hotbar keys in build camera read the same input vanilla does. Upstream read the raw number row past ZInput, so the keys fired even if you had rebound them, and the Hotbar1Alt– Hotbar8Alt binds were ignored.
  • Fixed a null dereference when verbose logging was on and there was no local player.

Config

BepInEx/config/com.jekkle.valheim.carturbuildcamera.cfg, hot-reloaded on save. If you are coming from Azumatt's version and have no config yet, your existing Azumatt.BuildCameraCHE.cfg is copied over on first run so your settings carry across.

Do not run both mods at once. If Azumatt's is loaded, this one logs a warning and patches nothing rather than fighting it for the camera.

Incompatible with

  • ValheimPlus first person mode, and Masa's FirstPerson — both take over the camera.

Compatible with

Azumatt's FirstPersonMode, HearthBelow, CircletExtended, RaziCirclet, WardIsLove.

More from Cartur

HD Blood · Map Pins · Compass and Clock · Safe Stamina · Follow Command · Flooring · UI - HUD · Waste Management · Feeding Trough

Questions, bugs and requests: Cartur's Mods Discord

Credits and licence

GPL-3.0, the same licence as both upstreams. Source in LICENSE.txt.

  • gittywithexcitement and CookieMilk — the original Valheim Build Camera.
  • MSchmoecker — automatic tool detection.
  • Azumatt — the Custom Hammers Edition fork this is built from: ServerSync, the circlet light, the demister, the coziness rules and the pickup HUD are all his work.
  • amberbeanzz — the Wisplight idea.

CHANGELOG

Changelog

1.0.1

  • The camera no longer freezes when build mode starts close to the ground. If the game camera was within the terrain clearance (a hillside or slope behind you), every move was rejected and the camera could never move. It can now climb out.

1.0.0

First release of the fork. Feature-identical to Azumatt's Build Camera Custom Hammers Edition 1.3.3, plus:

  • Recompiled against Valheim 1.0.16. Fixes the controller crash — 1.3.1 on Thunderstore still references ZInput.GetJoyLeftStickX/Y(bool) and GetJoyRightStickX/Y(bool), which Valheim 1.0 removed the trailing optional parameter from.
  • Build mode now ends on death. It used to leave you detached with input suppressed.
  • Build mode now ends on a portal hop, instead of stranding the camera at a station in the previous world.
  • Build mode refuses to start while the game's own freefly camera is active.
  • Camera auto-pickup falls back to the vanilla ward check when WardIsLove is installed but its CheckAccess cannot be resolved. It used to silently disable pickup with nothing logged.
  • Patch early-outs no longer write __runOriginal = true, which could resurrect a method another mod had deliberately skipped.
  • Version handshake accepts any client at or above a minimum-version floor instead of demanding an exact string match, so a patch release no longer disconnects everyone who has not updated yet. Both the hand-rolled handshake and ServerSync's own check now read the same floor — raising only ServerSync's would have changed nothing, because the handshake overruled it.
  • Default toggle is Shift+B, not the bare B upstream used. Plain B is crowded — Cartur's UI HUD quick slot 3, EquipmentAndQuickSlots slot 3 and OdinHorse saddlebags all bind it, so one press toggled the camera and used that slot, eating whatever food was in it. BepInEx's KeyboardShortcut blocks a bare-B shortcut while Shift is held, so the two no longer collide. Upgrading from Azumatt's config keeps whatever key you already had; change it by hand if you want Shift+B.
  • Hotbar keys in build camera mode now read the same input as vanilla. Upstream read the raw number row via Input.GetKeyDown(KeyCode.Alpha1 + i), bypassing ZInput, so slots fired even for players who had rebound those keys — and it ignored the Hotbar1Alt–Hotbar8Alt binds entirely, which vanilla honours.
  • Fixed a null dereference in verbose logging when there was no local player.
  • Stands down and patches nothing if Azumatt.BuildCameraCHE is also loaded.
  • Seeds its config from Azumatt.BuildCameraCHE.cfg on first run if you have one.