Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
ImmersiveCameraEnhanced
Native construction collider fitting, camera collision with a custom cylinder, and V1 vegetation culling.
| Date uploaded | 4 days ago |
| Version | 1.3.2 |
| Download link | XineladaLendaria-ImmersiveCameraEnhanced-1.3.2.zip |
| Downloads | 140 |
| Dependency string | XineladaLendaria-ImmersiveCameraEnhanced-1.3.2 |
This mod requires the following mods to function
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.2333README
Immersive Camera Enhanced
Current release: 1.3.2
Camera collision uses a mod-owned finite cylinder in third person, with a fixed uniform
0.3 m diameter and flat ends at the character and camera. Collision applies the safe contact
distance immediately; outward recovery follows Camera Return Smooth Speed (m/s).
For a stationary body/view, the shortest cylinder sample is retained while its contact or
expanded release volume remains blocked. Mouse direction and player translation sample the
current geometry immediately; a fully clear cylinder releases the hold. The optional zoom cut
uses the same cylinder contact.
Advanced Camera works with custom or native collision and keeps its selected indoor orbit
within 3 m. Advanced Height always limits its requested vertical travel to a fixed 50% of
shared free floor-to-ceiling space, then collision retracts along the route toward the character.
First person retains the render-frame eye pivot, character visibility handling, optional
crouch/head-bob animation, and Alt free look.
Disable Enable New Camera Collision or enable Disable New Camera Collision under Building Hammer Behavior to restore Valheim's original collision. BetterDiving-aware water behavior and V1 vegetation culling remain active.
Immersive Camera Enhanced reduces third-person camera jolts caused by trees, bushes, and other natural vegetation between the Viking and the camera. When the path contains only vegetation, the camera recovers its selected distance and the blocking elements are hidden during rendering only.
Quick start
- Scroll to adjust the normal third-person distance. If vanilla first person is enabled, scrolling
to the
0.5 mminimum enters first person; scroll outward to return. While holding the building hammer, camera-distance scrolling is blocked by default, while construction-piece rotation remains available. - Hold Mouse4 and scroll to zoom in or out. Releasing Mouse4 resets the temporary zoom.
- Hold Left Alt to look around without changing the character's movement heading. Release it to return to the view from when Alt was pressed.
- The new camera collision automatically yields to Valheim's original collision while the building hammer is held. Other hammer-specific feature toggles remain available in 05 - Building Hammer Behavior.
- Open BepInEx Configuration Manager to enable features and tune their settings. Configuration
Manager is optional; the same settings can be edited in the BepInEx
.cfgfile.
Features
- Removes vegetation interference with camera collision without removing the game's collider.
- Keeps tree cutting, gathering, combat, and interactions intact.
- Hides only the vegetation texture that blocks the camera, preserving shadow casting and restoring the material as soon as the path is clear.
- Uses one physical, world-space cylinder profile from the character center through the camera and beyond it. The apex near the character center closes to zero width; the radius reaches the configured screen percentage at the camera and grows again toward a rear tip. Vegetation is hidden only when its collider or visual geometry touches this cylinder.
- Grass, ground leaves, and small bushes remain visible and are excluded from the tree occlusion pass to avoid unnecessary per-frame work.
- Optional
CullHousePillarshides player-built support pillars and stone arches that enter the cylinder, with a separate camera-collision toggle for those pieces. V1 never hides walls, foundations, floors, ceilings, or roofs. - Third-person collision uses a closed convex mesh cylinder made by the mod, not Valheim's camera collision probe. It runs from the eye pivot to the camera position and has flat circular ends; neither end extends beyond that segment. A collision places the camera on the character side with a small surface gap. Outdoors, the contact distance applies immediately, with only outward recovery using the configured speed. The selected zoom changes only when the optional collision cut qualifies. The local player and configured pass-through objects are filtered.
- The custom cylinder is anchored to the character eye even when the third-person camera pivot is offset. Its cross-section is fixed and uniform; progressive thickness configuration is removed.
- The temporary vanilla-placement comparison toggle is removed. The new cylinder uses its own character-side placement; disabling new collision still restores the real native collision.
- Small radial cylinder-contact variations remain latched while current mouse direction stays immediate, including cramped contacts.
- Holding the building hammer or disabling
Enable New Camera Collisionrestores vanilla collision. - Show Camera Collision Volume draws the active custom cylinder or the actual native ray/sphere probes in pink. Show Camera Collision Colliders draws every collider touched in the last 30 seconds, expiring each outline from its latest contact. Native debug wraps existing queries without adding more physics checks.
- Native Hammer construction colliders are fitted to the opaque highest-detail model geometry and the native crystal wall, including wear variants. Stone walls use a common envelope for their visible variations. Collider centres and dimensions change without scaling the visible models. Openings and compound partitions remain intact; actual roofs, tables, small props, and mod pieces are excluded. Original prefabs remain unchanged. Plans are prepared once per prefab and reused by native placed instances verified through their network identity, with no geometry measurement in camera frames. Both camera collision modes use the corrected colliders and retain their configured ignore policies. Disabling the mod restores the original geometry. See the construction collider audit for coverage and preserved parts.
- Optional camera-collision bypasses let the camera pass through vegetation, support pillars, stone arches, chests and storage containers, wall sconces, torches, light fixtures, tables, and the active hammer placement preview. Walls, floors, roofs, terrain, mountain rocks, boulders, and ores remain solid.
- The camera can follow the player below the water surface while the local character is swimming.
When the player is not swimming, Valheim's water-level clamp keeps the camera above the surface.
Swimming state comes from the game's
Character.IsSwimming()method, so compatible swimming changes such as BetterDiving remain authoritative. Water does not enter vegetation-culling candidates, and the local character is always protected from V1 hiding. - Separate day, night, and fog/cave brightness controls adjust Valheim's environment lighting and shader ambient color without changing world simulation. Signed values can darken the scene or apply stronger HDR brightness above 100%.
- Optional client-only first-person mode enters when the scroll reaches the minimum zoom and returns to third person when the scroll increases distance. It keeps Valheim's camera and model visibility and anchors the view at the render-frame character eye.
- Optional first-person camera sway rotates the view without moving the camera position, with a moderate pitch and roll response tuned to remain comfortable.
- Optional first-person camera animations smoothly lower the view by 30% of the character height while crouching and add a subtle vertical head bob while walking.
- Optional first- and third-person FOV adjustments have independent enable toggles.
- First-person camera yaw turns the local character with the view.
- Hold-to-zoom magnifies the image toward the crosshair in both first and third person. The scroll wheel changes magnification while the key is held; releasing it restores the normal FOV. The wheel does not change camera distance during zoom. Building-hammer behavior is independently configurable for Camera Cull, Camera Collision, Camera Improvements, and the damage indicator.
- Camera Base Position offers a toggle and a third-person vertical Y pivot offset in metres relative to the camera's orbit yaw, so character movement and turning do not drag the offset around. The configured offset blends from 0% at 1 m camera distance to 100% at the configured distance (6 m by default), then stays at full strength. Collision checks use the shifted pivot, and the offsets are ignored in first person. Pivot movement never adds camera yaw or pitch; the vanilla player look direction remains authoritative for the view and aim.
- Optional Alt free look lets the camera look around independently while the configured key is held, preserving the character's movement heading even while WASD and other keys are pressed. It uses raw mouse input while Alt is held; after release, the camera returns smoothly to the view captured when Alt was pressed.
- Optional Advanced Camera operates while the player is sheltered beneath a nearby construction ceiling, with a three-metre indoor limit. It works with custom or native collision. Without Height Clearance, the camera stays at the head pivot while pitch rotates the view. With Height Clearance enabled, Advanced Height always uses a fixed 50% of the shared free floor-to-ceiling space. This limit has no percentage setting and is used only by Advanced Height. Collision retracts along the route toward the character; only outward release retains the configured return speed. The custom cylinder handles contact after Advanced Camera applies its height and orbit rules.
- Optional damage-direction arrow: one local-only 3D marker appears beside the character's shoulder
in third person and at a fixed camera-relative position in first person. It rotates horizontally
and vertically to point toward the attacker or incoming hit direction. When an attacker can be
resolved, the arrow refreshes its bearing every 0.5 seconds by default while visible; the update
interval can be configured. First- and third-person arrow sizes have independent settings, can be
reduced as low as
0.01, and the first-person default is0.25. Fall and drowning damage do not display an arrow. - An optional camera-distance HUD appears when scroll changes the selected distance or an outward scroll reaches the indoor or configured maximum. Wall contact changes only the current camera position, not the displayed selection. The background-free label hides after two seconds, has a configurable position, and follows the game language.
- Configurable lists of vegetation names and protected objects.
- Runs locally on the client and does not change saved construction dimensions or server physics. Corrected physical construction colliders also affect local player and projectile contacts.
Feature demonstrations
Short demonstrations of the main camera features:
Pillar pass-through and camera smoothing

Tree culling and Leaves Only while moving toward the camera

Configurable camera distance

Hold-to-zoom

Vanilla first person

Requirements
- BepInExPack Valheim.
- Valheim updated to the version supported by the installed BepInEx pack.
r2modman or another mod manager is optional. Install this mod only on the client that wants the visual adjustment; other players do not need it.
Installation
Using r2modman
- Open your Valheim profile in r2modman.
- On the Online tab, search for
ImmersiveCameraEnhancedand click Download. - Open Installed and confirm that the mod is enabled.
- Start the game with Start modded.
Manual installation
- In Steam, right-click Valheim and choose Properties → Installed Files → Browse.
- Extract the package into
Valheim/BepInEx/plugins/ImmersiveCameraEnhanced/. - Start the game once so the configuration file is created.
The generated file is located at:
Valheim/BepInEx/config/com.kimbauer.valheim.cameracull.cfg
Configuration
Options appear in BepInEx Configuration Manager, when it is installed, or can be
edited directly in the .cfg file.
Configuration Manager keeps each feature in one section. Its enable switches appear first, followed by related settings grouped in feature order. Camera Improvements, Camera Collision, Camera Cull, and the damage indicator no longer create nested adjustment sections. The file sections remain backward-compatible with earlier releases. Display names are shown in English, while the configuration keys stay stable for existing profiles. Brightness and camera-distance preferences are client-only; they are applied locally even when the server exposes its own camera settings. All visible numeric entries use bounded sliders; the old numeric migration keys remain hidden from the interface.
Camera occlusion
EnableMod: global master switch. Whenfalse, all visual culling and camera-collision filtering are inactive and any temporary renderer state is restored.EnableCameraCull: V1 cylinder visual culling toggle. Whenfalse, the cylinder query is disabled while the camera-collision toggles remain available as long asEnableModis enabled.CylinderCameraWidthPercent: width of the end near the camera as a percentage of the visible screen width. The default25corresponds to 25% of the screen. The value is converted to metres using the current FOV and live character-to-camera distance; the volume starts at the real lens position so it also covers trees immediately between the camera and the character. The character-side end closes to zero width.- Trees whose owning root is on the far side of the character are ignored even when their broad leaf bounds graze the cylinder; this keeps foliage in front of the character visible.
ConeCharacterDistance(shown asCylinder Character Distance): distance from the character center to the cylinder apex in metres (default0.5). The apex is placed on the camera-facing side of the center, so the cylinder points at the character center instead of using the head bone.CullHousePillars: includes player-built support pillars and stone arches that touch the cylinder. It is enabled by default.IgnoreHousePillarCollisionseparately controls whether the camera can pass through those supports. V1 explicitly protects boat renderers and colliders, including tagged/modded vessels and masts that resemble pillars.LeavesOnly: hides the recognised leaf renderers for a complete large tree while keeping its trunk and branches visible. When a tree exposes leaf and trunk material submeshes in one renderer, the mod temporarily removes only the leaf submeshes. Grass and small bushes are excluded from visual culling. It is disabled by default.MovementLeavesOnlytemporarily uses this same leaf-only mode while the character walks toward the camera. It requires consecutive movement samples and rejects abrupt position corrections, avoiding scene scans and dedicated-server query spikes. Tree trunks, branches, support pillars, and stone arches are restored while this temporary mode is active.MovementLeavesOnlyActivationDelaycontrols how long the character must keep walking toward the camera before the temporary leaf-only view begins (default0.5seconds). Moving away or stopping before the delay expires cancels activation.EnableCameraDistanceLimits: enables the player and boat maximum-distance sliders; enabled by default.ThirdPersonCameraDistance: hard local maximum character camera distance in metres (default6, range1to35). It caps the live distance after camera updates and overrides server or other-mod values while preserving vanilla camera rotation and steering.BoatCameraDistance: local maximum camera distance while attached to or controlling a boat or raft, in metres (default6, range1to35). It caps both boat-camera limits and the live distance while attached or steering, overriding server or other-mod values; it never limits the on-foot camera.EnableThirdPersonCameraFovandEnableFirstPersonCameraFov: independently enable each camera-mode FOV adjustment; both default to enabled.ThirdPersonCameraFov: local third-person field of view in degrees (default80, range30to120). It updates immediately while playing or editing the setting in Configuration Manager.
Camera improvements
-
05 - Building Hammer Behavior: separateDisable ... While Building Hammer Equippedtoggles control Camera Cull, Camera Improvements, and the damage indicator independently. The new camera-collision feature always restores Valheim's original collision while the hammer is held. Brightness is unaffected. The legacy all-or-nothing setting is retained only to initialize these options on existing profiles. -
BlockCameraDistanceScrollWhileBuildingHammerEquipped: enabled by default. Prevents the wheel from changing camera distance while the building hammer is held; the construction system still receives wheel input to rotate pieces. This control is independent of the feature-disable toggles. -
EnableFirstPersonCamera: enables the vanilla first-person view when the scroll reaches the0.5metre minimum through an explicit scroll input. Camera collision alone cannot activate it. Scrolling away from that boundary returns to third person through Valheim's normal camera logic. It is enabled by default and applied only on the local client. V1 occlusion is disabled while this view is active. -
EnableFirstPersonCameraSway: rotates the first-person view with a lightweight movement sway while leaving the camera position unchanged. Enabled by default. -
EnableFirstPersonCameraAnimations: enables local first-person camera animation. While the character is crouching, the camera smoothly lowers by 30% of the character height; walking also adds a subtle vertical head bob. Enabled by default. -
FirstPersonCameraFov: local first-person field of view in degrees (default80, range30to120). It is applied only while vanilla first person is active and updates while the Configuration Manager is open. Saved values of the previous default (65) migrate to80. -
Turning the first-person camera also turns the local character. Roll direction follows the current movement direction while first person is active.
-
EnableCameraZoom: enables the temporary hold-to-zoom feature (enabled by default). -
EnableCameraBasePosition: enables third-person camera pivot offsets (enabled by default).CameraBasePositionYmoves it vertically in metres (-2to+10). Offset strength blends linearly from 0% at 1 metre to 100% atCameraBasePositionFullStrengthDistance(default 6 metres), then stays full. First person is unchanged, and collision response still moves the camera toward the character. -
EnableAutomaticCrosshairPosition: enabled by default. In third person, projects the character's current aim point onto the screen and shifts the HUD crosshair to account for the camera pivot offset. This keeps the reticle aligned without changing camera rotation; the vanilla first-person crosshair position is restored automatically. -
CameraBasePositionFullStrengthDistance: distance in metres where the Y pivot offset reaches full strength (default 6, range 2–20). -
CameraZoomKey: key held for zooming, defaulting to Mouse4 (Mouse3in Unity's key names). -
CameraZoomDefaultMagnification: initial optical zoom factor (default2×). -
CameraZoomMagnificationStep: zoom factor added per scroll notch (default0.5×). -
CameraZoomMaxMagnification: maximum optical zoom factor (default20×, configurable up to40×). Zoom works in first and third person, leaves camera distance unchanged, reduces mouse sensitivity with magnification while consuming each frame's mouse input directly. Its hammer behavior follows the independent Camera Improvements toggle. -
CameraZoomSmoothSpeed: speed of the smooth optical zoom transition (default14). -
CameraZoomMouseSensitivityFactor: multiplier for zoomed mouse sensitivity (default0.20, where lower values slow the view further). The factor is applied to the magnification curve and is consumed from the normal gameplay mouse-input path. -
EnableCameraDistanceSmoothing: enables smooth third-person camera-distance transitions; enabled by default. -
CameraDistanceSmoothSpeed: speed of the smooth normal third-person distance transition after scrolling (default4). Existing profiles still set to the former default12migrate to4. -
EnableCameraScrollDistanceStep: toggles the configured per-notch distance behavior; enabled by default. -
CameraScrollDistanceStepMeters: normal camera-distance change per wheel notch in metres (default2, range0.1to10). This also determines the scroll step used by the first-person boundary; the wheel used while holding the optical-zoom key remains separate. -
EnableFirstPersonFreeLook: enables Alt free look without changing the character's movement direction. While the key is held, the camera follows raw mouse input; its smooth return starts only after release. Enabled by default. -
FirstPersonFreeLookKey: key held for free look, defaulting to Left Alt. Horizontal look is limited to 120 degrees to either side of the character's forward direction; vertical look is limited to 90 degrees up or down. Other movement keys can be held at the same time. -
EnableAdvancedCamera: checks for a nearby construction ceiling while Valheim reports that the player is sheltered. Indoors, it caps the scrollable and live third-person distance at3metres. Wall collision brings the camera toward the player without entering first person; the camera keeps the mouse-selected height when the solid path and available room allow it. The mode ends immediately outdoors. Whether it pauses while holding the building hammer is controlled by the Camera Improvements toggle above. Enabled by default. -
AdvancedCameraActivationInterval: interval in seconds between ceiling checks while Advanced Camera is inactive (default1). -
AdvancedCameraDeactivationInterval: interval in seconds between ceiling checks while Advanced Camera is active (default3). -
AdvancedCameraScrollDistanceStepMeters: separate distance per scroll notch when Advanced Camera is active (default0.75 m, range0.05–3 m). UsesEnableCameraScrollDistanceStep; the selected indoor distance remains capped at3 m. Normal and optical-zoom scrolling keep their own values. -
EnableAdvancedCameraHeightClearance: enables mouse-selected vertical travel (enabled by default). Advanced Height always limits the requested destination to a fixed 50% of shared free floor-to-ceiling space, without a percentage config. Contact shortens the 3D route to that destination toward the character and cannot expand the selected orbit. -
EnableAdvancedCameraEdgeClearance: keeps a rounded safety margin around wall corners, raised obstacles, and changes in floor or ceiling height while Advanced Camera is active indoors. Enabled by default. -
AdvancedCameraHeightFreedomPercent: vertical mouse travel as a percentage of the selected indoor distance (default60%, range0–100%), shown as Advanced Camera Vertical Travel (%). The fixed 50% floor-to-ceiling rule limits the requested height before camera collision runs.0%holds head height;100%requests up to the selected distance vertically where space permits. -
ShowCameraDistanceHud: shows the selected camera distance after scroll changes it or when outward scroll is blocked by a camera-distance limit. Wall contact does not change that distance; the HUD hides after two seconds without a change or further scroll attempt (enabled by default). -
CameraDistanceHudXandCameraDistanceHudY: position the HUD as percentages of screen width from the left and screen height from the top (defaults50and75). -
BackCylinderLength: additional cylinder length beyond the camera in metres. The single cylinder starts near the character center and ends this far past the camera (default10). -
ConeGrowthExponent(shown asCylinder Growth Exponent): non-linear radius curve.1is linear; values above1keep the cylinder narrow during the first metres and expand it rapidly near the camera and rear tip (default2.4). -
CylinderSlicesPerMeter: number of stable profile cuts per metre. This creates the configurable stepped “zip” profile without making the culling query more frequent. -
CylinderExponentInfluencePercent: how strongly the growth exponent changes each profile cut.0is linear;100applies the full exponent. -
CylinderCheckInterval: slider for the interval between the expensive cylinder contact checks, in seconds. The cylinder transform still follows the camera every frame; only renderer overlap sampling is throttled. The default is0.60seconds. -
CylinderRestoreDelay: slider controlling how long an object must remain outside the cylinder before its renderer is restored. The default is0.60seconds;0restores immediately. -
CylinderVerticalFlattenPercent: slider that removes the upper portion of the cylinder cross-section after the growth exponent is applied. The migrated default is30, which avoids hiding objects above the view path. -
CylinderFlattenBottom: when enabled, applies the same vertical flattening limit to the lower side of the cylinder. It is disabled by default, preserving the original upper-only behavior. -
CylinderHorizontalFlattenPercent: slider that narrows the horizontal width of the grown cylinder.0keeps the full width; higher values make the cylinder narrower. -
ConeRearRadiusMultiplier(shown asCylinder Rear Radius Multiplier): radius at the rear tip relative to the camera radius (default1.75). -
PreserveVegetationShadows: usesShadowsOnly, removing the texture while keeping shadows. -
IgnoreVegetationCollision: lets the custom camera cylinder pass through recognized trees, leaves, and other vegetation. It does not disable their gameplay colliders. Enabled by default. -
IgnoreHousePillarCollision: allows the camera to pass through player-built support pillars and stone arches. Enabled by default. It does not affect wooden walls, foundations, floors, ceilings, roofs, terrain, mountain rocks, boulders, or ores. -
IgnoreHouseLightCollision: allows the camera to pass through wall sconces, every torch variant, lanterns, braziers, candles, fireplaces, similar light fixtures, and player-built tables. Enabled by default. The configuration key remains unchanged for compatibility. -
The currently selected hammer placement preview never blocks the camera. It is identified from the local player's actual placement ghost, so the same piece becomes solid or follows its configured prop category after construction.
-
IgnoreEntityCollision: allows the camera to pass through players, animals, enemies, fish, and other entity colliders. Enabled by default. -
IgnoreBoatCollisionoptionally ignores recognized native or modded boats, including masts; it is disabled by default and never changes boat/player physics. Otherwise boat colliders are solid. -
EnableNewCameraCollision: enables the custom third-person cylinder. When off or while the building hammer disables it, native collision runs. Advanced Camera still works with native collision. -
UseVanillaCylinderRepositioningis retired and its saved key is removed on startup. -
The camera-side cylinder diameter is fixed to the validated profile's
-0.7 moffset:0.3 mdiameter /0.15 mradius.CameraCylinderCameraSideDiameterOffsetand the two legacy diameter keys are removed. -
EnableCameraCylinderProgressiveGrowthis removed. The calibrated collision cylinder is uniform. -
Temporary cylinder calibration controls are now fixed to the validated profile and removed from Configuration Manager and the config file. Offsets still use camera-view axes, so turning the character independently cannot rotate them. The retired keys and fixed values are:
Retired key Fixed value CameraCylinderCharacterTipX0 mCameraCylinderCharacterTipY-0.7 mCameraCylinderCharacterTipZ0 mCameraCylinderCameraEndOffset0 mCameraCylinderCharacterSideWidthPercent0%CameraCylinderGrowthExponent2.4CameraCylinderVerticalFlattenPercent0%CameraCylinderFlattenBottomfalseCameraCylinderHorizontalFlattenPercent0%Collision return speed remains configurable. Startup also removes retired orphaned entries from older BepInEx profiles.
-
CameraGroundCollisionMinimumDistancePercent: legacy floor-orbit setting retained in the file for compatibility and hidden in Configuration Manager. It does not control current collision placement. -
EnableCollisionDistanceTransition: enable or disable the collision-driven zoom cut. When enabled, the cut is committed only after two seconds of stable contact, and the shortest safe distance in the stable window is selected. Percentage and metre thresholds are checked against the distance that will actually be committed after minimum-zoom clamping. Readings may vary by up to5 mwithout restarting the timer. The committed result is clamped to the configured cut floor. -
When both
EnableCollisionDistanceTransitionandShowCameraDistanceHudare enabled, the distance HUD marks a committed collision cut with a small inward-arrow icon beside the distance. -
CollisionDistanceMinimumPercent/ Minimum Distance After Cut (%): lower bound of the committed zoom, calculated from the configured maximum camera distance (default10%, range0–100%). With a 35 m maximum, a cut cannot select less than 3.5 m, even if the current zoom is 10 m. Physical collision may temporarily move the rendered camera closer without lowering this selected zoom floor. -
CollisionDistanceMinimumAbsoluteReduction: the committed cut must shorten the selected distance by at least this many metres after zoom-floor clamping (default2 m, range0–50 m). -
CameraCollisionRecoverySpeed: speed for returning to the saved zoom after contact clears (default20 m/s, range0.1–30 m/s). The camera waits briefly for a clear path and checks each outward cylinder step. Inward placement applies immediately, without a timed transition or a mouse-position filter. -
In first person, the local character renderers are hidden while the mode is active and their original visibility is restored when returning to third person or disabling the mod.
-
The new cylinder always moves to a safe point and keeps structural surfaces solid.
-
EnableDamageDirectionIndicator: shows a local-only 3D arrow for incoming damage in both camera modes. In third person it orbits the player; in first person it stays at a fixed camera position while rotating in all three dimensions. The marker has no physics or network object. Enabled by default. -
DamageDirectionIndicatorPointToSource: prioritizes the attacker as the arrow direction when available; enabled by default. Disable it to use the hit direction/impact point instead. -
DamageDirectionIndicatorDuration: how long the damage arrow stays visible (default4seconds, range0.5to10). -
DamageDirectionIndicatorSourceUpdateInterval: how often to refresh the arrow toward a moving attacker while visible (default0.5seconds, range0.1to5). This reuses the attacker resolved at hit time; when no attacker object is available, the arrow uses the incoming hit direction instead. -
DamageDirectionIndicatorSize: third-person arrow size multiplier (default0.45, range0.01to2). -
DamageDirectionIndicatorFirstPersonSize: first-person arrow size multiplier (default0.25, range0.01to2). -
Damage indicator settings use
40 - Damage Direction Indicatorand its singleAdjustmentssubsection in Configuration Manager. That subsection controls duration, attacker update interval, independent arrow sizes, RGB color, and separate third- and first-person positions. The default color is muted brick red with a dark outline. Debug is the final section; detection rules are fixed and have no user-configurable section. -
EnableBrightnessAdjustment: enables the local render-only brightness feature (off by default). -
DayBrightnessPercent(shown asDay Brightness): signed daylight adjustment from-100to300; the default is0. -
NightBrightnessPercent(shown asNight Brightness): signed adjustment at night and in always-dark environments, from-100to300; the migrated default is25. -
FogCaveBrightnessPercent(shown asFog & Cave Brightness): signed adjustment in dense fog, mist, caves, crypts, mines, and dungeons, from-100to300; the migrated default is25. Brightness is applied locally on each client after Valheim writes the final environment lighting, fog, and ambient shader color. Negative values darken,0preserves vanilla brightness, and values above100increase HDR exposure beyond the original range. Server-side environment settings do not override these client values.
Cylinder contact checks run on the configurable throttled cadence while its transform follows
the camera every frame. V1 only classifies colliders returned by the local camera volume; it does
not scan every renderer loaded in the scene. Collider and hierarchy results are cached between
queries, and exit hysteresis prevents foliage from flickering on transient physics misses.
Young trees and saplings use a ground-anchored upright detection volume with a fixed height of
six metres and three times their original horizontal radius, capped to a normal-tree-sized local
probe. A collider hit resolves the complete young-tree root, so normal culling hides the same
visual group already recognised by Leaves Only. This does not change gameplay physics or create
a global tree scan.
When VerboseLogging is enabled, Immersive Camera Enhanced emits one aggregate V1 status line
every 15 seconds and reports at most 32 previously unknown camera-path colliders per scene, so
diagnostics do not flood the Unity console. Per-renderer hide/restore messages are intentionally
not written from the culling hot path. Each status line includes CPU percentage, process thread
count, frame time, stopwatch ticks, GC collection counts, last and peak V1 query time in
milliseconds, managed and Unity allocated memory in MiB, and the process working set sampled at
that point. Collider-to-renderer and tree-hierarchy lookups are cached between discovery scans to
avoid repeated allocations in the hot path. Nameplate, health-bar, and world-text renderers
are excluded from the cylinder query.
The temporary LeavesOnly mode reuses each renderer's derived leaf-stripped mesh instead
of cloning and destroying it every time movement changes direction. Only actual state
transitions request a new throttled cylinder query; cached meshes and shadow proxies are
released when the scene is reset.
Fixed detection rules
Physics queries include all layers. The former Detection section and its CollisionLayerMask,
VegetationNameTokens and ProtectedNameTokens settings are removed, including older saved keys.
Vegetation and protected-name classification now uses fixed built-in lists.
Rocks, stones, ores, and flint fragments are protected automatically and are never
included in culling. The mod uses the actual collider shape and, when available, mesh
vertices to avoid hiding a tree whose broad renderer bounds only graze the volume.
When a tree collider belongs to a prefab root with separate trunk and leaf meshes, V1
uses the real collider as confirmation that the tree entered the cylinder. LeavesOnly then
selects all recognised leaf renderers belonging to that same tree. It uses the object
name and its parents
in the hierarchy, tags, and tree components
(including trunks in child objects) to classify renderers and colliders. Structural walls,
floors and roofs retain collision regardless of their classification names.
Safety and compatibility
Immersive Camera Enhanced does not alter world colliders or saved state. Camera collision uses a
hidden, local convex mesh collider as a query shape; it never participates in world physics. For
vegetation it uses ShadowCastingMode.ShadowsOnly while the texture is hidden and
restores the original mode when the object returns to view, when the scene changes, or
when the mod is disabled. The global EnableMod switch restores all temporary state.
Mods that completely replace the camera may compete with this correction. If behavior
is unexpected, first disable Camera occlusion/EnableCameraCull and test visual
culling separately from the independent collision toggles.
Diagnostics
Enable ShowOcclusionCylinder to draw the physical cylinder in translucent green
(20% by default), with its zero-width character-side apex, camera-width section, and wider rear
section, during calibration. Adjust CylinderOpacity in the Debug section if the
outline needs to be more or less visible. The drawing is optional and does not reveal
the map. It shows one curved cylinder only. Disable
the option after calibration. The overlay remains visible while the pause or Configuration
Manager menu is open, so its position can be checked without losing the last gameplay volume.
Opening Configuration Manager does not pause the camera/culling update loop, so supported
settings can be adjusted and previewed while its overlay is open.
ShowCameraCollisionVolume is off by default. Enable it to draw the active finite collision cylinder
or Valheim's native ray/sphere probes in pink every frame. The white cross marks the contact.
ShowCameraCollisionColliders separately outlines every world collider touched by active
camera collision, retaining each outline for 30 seconds after that collider's most recent contact.
ShowOcclusionCylinder remains available
for the separate green V1 vegetation-culling cylinder. Opening Configuration Manager does not
pause camera or culling updates, so the cylinder and debug view update while the overlay is open.
The base-position feature now exposes only the vertical Y offset.
Enable VerboseLogging only during a test; routine scene
scan counts are intentionally not written because synchronous console output can stall
the render thread. Set the option back to false after diagnosing.
Credits
Project by Xinelada Lendária. Requires BepInExPack Valheim.
CHANGELOG
Changelog
1.3.2 - 2026-10-02
- Avoid repeated missing-type warnings when Configuration Manager is not installed; detect it quietly and retry at a low frequency for late-loaded optional plugins.
1.3.1 - 2026-10-02
- Keep an established custom-cylinder wall contact latched across transient narrow-phase misses for both mesh and primitive colliders; only release after the expanded clearance volume clears.
1.3.0 - 2026-10-02
- Keep each recently contacted world collider visible in pink for 30 seconds from its latest contact, instead of replacing the previous debug outline.
- Stabilize custom camera-cylinder contact when PhysX intermittently omits an already contacted non-convex mesh from a sweep. Keep the established wall contact while it remains in the cylinder's broad-phase volume; release it after the collision volume clears.
- Align native Hammer construction colliders with visible model geometry across wear variants. Preserve openings and compound parts; exclude roofs, tables, small props, and mod replacements. The audit records per-piece changes and conservative exceptions.
- Keep vanilla collision and custom-cylinder collision as separate modes, with native object-ignore rules and the fixed 50% Advanced Height free-space limit.
1.1.7 - 2026-09-26
- The damage-direction arrow now refreshes its bearing toward the tracked attacker every 0.5 seconds while it remains visible; the interval is configurable from 0.1 to 5 seconds.
- Both arrow-size controls now accept values down to 0.01. The first-person arrow defaults to 0.25.
1.1.6 - 2026-09-26
- Added independent first- and third-person damage-arrow size controls.
- Suppressed the damage-direction arrow for Valheim's
FallandDrowninghit types, clearing any previous marker when either occurs.
1.1.5 - 2026-09-26
- Damage-source tracking now resolves both
HitData.GetAttacker()and the attacker'sm_attackernetwork ID throughZNetScene.FindInstance, so the default source-pointing option can identify the actual local-world attacker before falling back to impact direction. - Grouped all damage-indicator numeric controls into one
40 - Damage Direction Indicator / Adjustmentssection. Detection / Adjustments now appears after Performance, with Debug last.
1.1.4 - 2026-09-26
- Replaced the first-person screen-space damage arrow with the same local-only 3D marker used in third person. It stays at a fixed camera-local position and rotates horizontally and vertically toward the damage direction.
- Added a dedicated Configuration Manager section for damage-indicator behavior, duration, size, color, and separate first- and third-person positions. The attacker-direction toggle defaults to enabled.
- Reduced the default arrow size and changed its default to a muted red with a darker outline. Removed the obsolete 2D HUD-arrow renderer.
1.1.3 - 2026-09-26
- Replaced the GL-only third-person damage marker with a local-only 3D arrow built from renderers, with no collider, rigidbody, or network component. First person continues to use a screen-space HUD arrow.
- Added a version-tagged damage-direction log and explicit direction-source fallback so the active DLL and computed vector can be verified from the log.
1.1.2 - 2026-09-26
- Fixed the damage indicator state being cleared because a
Transformwas compared by reference to aPlayercomponent. - Replaced the third-person arrow mesh with a local world-space GL marker rendered through the same path and shader as the camera-cull cylinder. It has no physics components and is visible only to the local client.
- First-person HUD rendering no longer depends on creating a third-person renderer. Damage direction now always resolves to a valid horizontal vector, and visual geometry is rendered without per-frame collision or position correction.
1.1.1 - 2026-09-26
- Damage direction now recognizes HitData across damage, post-damage, and RPC callbacks, then resolves attacker direction before contact-point fallbacks.
- The third-person marker uses the same built-in unlit shader as the camera-cull visualization, stays local to the client, and has no physics components. First-person HUD state is kept independent of whether the world marker can be created.
- The world marker is positioned on damage and only repositioned when switching between first- and third-person; it no longer repositions every frame.
1.1.0 - 2026-09-26
- Advanced Camera now eases the camera inward when a horizontal wall blocks its orbit, using the same collision transition as the normal third-person camera. The transition preserves the active vertical pitch and floor/ceiling height limits and never commits an indoor distance change.
- The damage-direction indicator now hooks both the damage application and post-damage callbacks, avoiding gaps caused by different damage paths. Its third-person arrow faces the active camera while staying around shoulder height; first person uses a larger screen-space arrow.
- Moved the active plugin source and build to the mod root, removed the obsolete standalone HUD package path, and kept the five demonstration GIFs in the root
demosfolder. The GIFs remain outside the distributable ZIP.
1.0.24 - 2026-09-26
- Camera collision now filters the local player from Valheim's final camera endpoint calculation, preventing the character collider from pushing the camera upward while keeping world structures solid.
- Restored Valheim's water-level camera clamp while the local player is not swimming. The clamp is bypassed only while
Character.IsSwimming()is true, preserving BetterDiving and compatible swim-state patches. - Damage direction now uses the attacker when available, has a fallback for environmental damage, and displays as a shoulder-height 3D arrow in third person or a directional HUD arrow in first person. Its default duration is four seconds and is configurable from 0.5 to 10 seconds.
1.0.23 - 2026-09-26
- Outdoor collision easing now starts reliably on the first sustained contact and moves along a collision-safe path instead of being immediately snapped back by the final camera-path correction. Solid colliders still block the camera; the stable distance cut retains the existing
>5 m,>=3 m, percentage-loss, and one-second stability rules. - Advanced Camera now smoothly shortens its indoor orbit as vertical look increases and, with Height Clearance, as the camera moves up or down. Separate percentage controls cap each contribution; disabling Height Clearance still keeps the camera at head-pivot height.
- Added an optional local 3D damage-direction arrow at shoulder height. It points toward the incoming hit and is rendered in the world without text or screen-space UI.
1.0.22 - 2026-09-26
- Restored smooth outdoor collision movement for all collision distances, including short wall and door-frame contacts. The separate one-second distance cut still follows the existing rules: requested distance above
5metres, safe distance at least3metres, minimum percentage loss, and a stable window whose readings stay within5metres. - Advanced Camera without Height Clearance now pins the camera to the player's head-pivot height indoors while preserving vertical look. Walls shorten only the horizontal orbit; floors and ceilings cannot pull the camera up or down. The Height Clearance path is unchanged.
1.0.21 - 2026-09-26
- Moved the distance HUD settings into the main Immersive Camera Enhanced configuration, removing its separate Configuration Manager entry.
- Structural surface clearance now applies only to near-horizontal underside contacts. Walls and wall corners retain their normal collision distance and are no longer classified as floors or roofs from a
wallname token. - Boat camera limits now hard-cap the live camera distance and both Valheim boat-distance fields, including passenger and steering camera paths, even when server sync or another mod writes a larger value.
- The character and boat distance settings now act as hard local maximum cutoffs (up to 35 metres), not merely values supplied to Valheim's initial camera fields.
1.0.19 - 2026-09-24
- Restored the approved Advanced Camera orbit calculation: indoor camera distance stays behind the player while vertical look is clamped between floor and ceiling clearance.
- Advanced Camera now measures wall clearance from Valheim's offset camera pivot and no longer falls back to the vanilla endpoint already shortened by floor or ceiling collision.
1.0.18 - 2026-09-24
- Outdoor collision-distance smoothing and commits now run only when the requested camera distance is over
5metres and the collision-safe position remains at least3metres from the character. - Advanced Camera now starts from the mouse-requested position instead of Valheim's already collision-shortened position. It clamps vertical travel between floor and ceiling, preserves that height when a horizontal wall shortens the orbit, and skips indoor collision-distance smoothing.
1.0.17 - 2026-09-24
- Vanilla first person now activates only when scrolling reaches
0.5metres; the local minimum overrides Valheim or server values while the feature is enabled and restores the original value when disabled. - Advanced Camera now keeps its floor and ceiling height clamp through the final wall-path checks. Vertical movement stops at the safe height while camera pitch remains available, and walls continue to use normal collision handling.
1.0.16 - 2026-09-24
- Restored Valheim's normal horizontal camera orbit while Advanced Camera is active. Advanced Camera adjusts only the vertical camera position for floor and roof clearance; it no longer copies the character's yaw or facing direction into the camera.
1.0.15 - 2026-09-24
- Advanced Camera now keeps the view behind the character and locks horizontal camera rotation to the character, leaving vertical look free. Its height uses local floor and roof boundaries; when the configured clearance cannot fit in a room, the camera falls back to lens-sized physical clearance and preserves vanilla wall collision.
- First person now requires an explicit scroll step that reaches the zoom minimum. Wall collision alone can no longer trigger vanilla first person.
- Outdoor collision-distance commits now ease through the configured camera-distance smoothing instead of changing the selected distance instantly.
1.0.14 - 2026-09-24
- Collision-position easing is disabled while Advanced Camera is active indoors; indoor walls and corners use the immediate safe position.
- Outdoor collision distance now uses a one-second observation window. Samples are compared with their running average; an excursion beyond five metres starts a new window, and a stable window commits its shortest safe distance.
- The camera-distance HUD appears when the player scrolls outward even if Advanced Camera or the configured maximum prevents a distance change. It still hides after two seconds without another change or scroll attempt.
1.0.13 - 2026-09-24
- Advanced Camera caps both scrolling and the live third-person distance at three metres while a construction ceiling is active. Indoor wall collisions no longer commit a shorter distance to the player's selection.
- Camera collision easing now begins on small hits such as door frames and on indoor corner-clearance corrections. The transition stays on the collision-safe side of solid walls.
- Alt free look increases lateral lens clearance with the viewing angle and moves the camera toward the character only when a nearby wall requires it.
1.0.12 - 2026-09-24
- Increased the solid-camera margin and added a final lens-overlap correction so wall surfaces cannot fill the view when the camera reaches them at oblique angles.
- Collision movement now eases over one second whenever a clear path exists; a solid obstruction always takes priority over interpolation.
- A collision-shortened distance becomes the effective third-person distance after it remains stable for one second. Normal movement against a wall does not alter the selected distance before that point.
- The distance HUD now has no background, uses a short localized camera label, and displays the effective camera distance rather than momentary character-to-lens movement.
1.0.11 - 2026-09-24
- Advanced Camera now activates only when the local player is sheltered beneath a nearby construction ceiling. Outdoors, Valheim's normal third-person camera is restored immediately.
- The indoor three-metre camera limit no longer overwrites the distance selected with the scroll wheel. Wall collision retains the camera's requested height when the path is clear, and collision alone cannot switch to first person.
- Collision-distance easing applies only while the camera shortens toward a wall; distance recovery starts immediately when the obstruction clears. The camera continues to respect solid surfaces.
- Added a configurable, translated camera-distance HUD. It shows the rendered distance while it changes and hides after two seconds; horizontal and vertical screen positions are adjustable.
1.0.10 - 2026-09-24
- Replaced Smooth Camera Wall Pass-Through with
EnableCollisionDistanceTransition. It preserves the distance selected by the player and uses a transition of at most0.85seconds only when the camera path is clear; it never bypasses solid colliders. - Added the
CollisionDistanceMinimumPercentslider (0to100, default10) to define the minimum loss of requested camera distance that qualifies for the collision-distance transition. - Added
EnableAdvancedCameraEdgeClearance, enabled by default, for rounded clearance around indoor wall corners, raised obstacles, and floor or ceiling height changes. - Alt free look now reads raw mouse input while held and begins its smooth return only after Alt is released.
1.0.9 - 2026-09-23
- Camera wall pass-through now stops immediately when another collider blocks the view, returns to the nearer collision-safe point, and waits for a clear camera path before starting another transition. This prevents alternating between adjacent wall colliders and removes the resulting camera jitter.
1.0.8 - 2026-09-23
- Camera wall pass-through now starts at the collision-safe camera position instead of the previous frame's position. Its smooth transition is frame-rate independent, continues while the view rotates, and completes within 0.85 seconds; the Advanced Camera indoor ceiling safeguard remains in effect.
1.0.7 - 2026-09-23
- Removed horizontal mouse low-pass smoothing while Advanced Camera is active; mouse yaw remains immediate.
- Camera wall pass-through now uses a faster positional transition and is suspended while the player is under a construction ceiling, preventing Advanced Camera from moving through indoor walls. A throttled ceiling probe also ends an active transition when the player enters a building.
1.0.6 - 2026-09-23
- Added
EnableCameraWallPassThrough(enabled by default). When a building wall lies between the character and the requested camera position, the camera temporarily ignores that exact wall and eases toward its unblocked position. The wall collision returns after both the character and camera cross it; floors, roofs, terrain, rocks, ores, and other colliders keep their normal collision.
1.0.5 - 2026-09-23
- Camera collision now ignores chests and storage containers, including modded containers identified by their component type.
- Advanced Camera now uses separate ceiling-check intervals:
1second while inactive and3seconds while active, both configurable. - Advanced Camera height clearance now defaults to
4metres from floor and ceiling colliders. - Boat distance now supplies the boat limit to both GameCamera maximum-distance fields while the player is attached, matching Valheim's separate controlled-ship branch and covering rafts and passengers.
1.0.4 - 2026-09-23
- Positional smoothing now runs only during camera collision and camera-mode transitions; ordinary mouse orbit stays immediate.
- Advanced Camera now leaves Valheim's collision-safe camera position unchanged when a wall blocks the view or the configured floor-to-ceiling clearance does not fit. A valid upward adjustment also pitches down to preserve the original aim point.
- Boat camera distance now detects passengers attached to a ship or raft, in addition to players steering it.
1.0.3 - 2026-09-23
- Camera movement now eases strongly when collision shortens or restores its position, reducing jumps and flicker around obstacles.
- Advanced Camera activation and deactivation use the same smooth transition, including when leaving a building.
- The local player's colliders are excluded from camera collision tests so the camera cannot collide with the character itself.
1.0.2 - 2026-09-23
- Advanced Camera now uses the animated eye/head height as its indoor baseline. Level and upward views stay at that height; looking down may raise the camera only within the available room.
- Roofs and ceilings are used only as upper height boundaries. A roof under an exterior camera can no longer be mistaken for the ground and lift the camera above the house.
- The ceiling check refreshes early after the camera moves at least one metre horizontally, so leaving a building does not retain a stale indoor state until the next full interval.
1.0.1 - 2026-09-22
- Camera culling now explicitly protects the local character and ignores water surfaces, so entering water cannot hide the player through the V1 occlusion volume.
- Removed Valheim's camera-only liquid-level clamp and excluded identified water surfaces from the camera collision query, allowing the view to follow the player below the water surface.
- Boat camera distance now follows the same
GetControlledShip()state Valheim uses to select its boat camera limit, so the configured boat maximum is applied to the correct camera mode. - Advanced Camera now treats pitched roof and floor hits as local horizontal height boundaries, using the surface height at the camera's current position.
1.0.0 - 2026-09-22
- Restored first-person crouch lowering with broader Valheim crouch-state detection and increased the sway pitch and roll response slightly.
- Enabled all Camera Cull and Camera Improvements features by default except
Leaves Only. - Advanced Camera clearance now defaults to
6metres and limits vertical travel instead of using the margin as a camera collision distance. The configured value is read live and applies to the allowed height range. - Optical zoom now starts at
2×, uses a20×maximum by default, and remains configurable up to40×. Mouse sensitivity is reduced more strongly at high magnification and camera input is smoothed while zoomed. - Zoomed mouse input now uses an additional fivefold sensitivity reduction and a slower low-pass response so small movements remain controllable at high magnification.
- Fog and cave brightness now also updates EnvMan's sun-fog color and global fog shader value after each environment transition, covering the atmospheric pass used by caves and dense mist.
- Zoom sensitivity now hooks Valheim's normal
PlayerControllermouse-input path and exposes a configurable multiplier (0.20by default), so the reduction applies during regular gameplay. - Advanced Camera no longer ignores horizontal structural surfaces during its final path check; a roof or ceiling now shortens the camera distance toward the character instead of lifting the camera through the structure.
- Added smooth interpolation for normal scroll-based third-person camera distance changes.
- Alt release now restores normal character turning immediately while the captured camera view continues its smooth return independently.
- Advanced Camera now checks for a player-built ceiling at a configurable interval (default
2s), temporarily caps the camera at3m indoors, and releases that cap when the ceiling is gone or the building hammer is equipped. Optional height clearance keeps at least3m from floor and ceiling and avoids shortening the view for horizontal structural surfaces. Camera-pass-through props such as tables, chests, workbenches, portals, beds, torches, and lights are excluded from the height calculation. - Optical zoom now supports up to
40×and transitions smoothly; its normal camera distance and first-person boundary remain independent. - Separated Camera Cull toggles and numeric controls into distinct collapsible Configuration
Manager groups (
00 - Camera Culland00 - Camera Cull / Adjustments). Performance remains the penultimate section and Debug remains the final section. - Replaced the experimental inverted Alt movement patch with the opt-in, client-only free-look implementation described below; the new mode does not patch movement controls.
- Extended day, night, and fog/cave brightness to a signed
-100to300range. Negative values darken the client scene, values above 100 apply additional HDR exposure, and daylight now defaults to zero. - Added client-only third-person character and boat camera-distance limits (up to 35 metres). The active limit is selected from the local player's mounted state, preserving vanilla camera steering while preventing Valheim Plus or server-provided values from extending the local view.
- Restored an optional client-only vanilla first-person toggle driven by the scroll boundary; by default it leaves Valheim's own first-person camera, model visibility, FOV, collision, and animations untouched.
- Added optional first-person camera sway that rotates the view without repositioning the camera.
- Increased the first-person sway pitch and roll slightly while keeping the response smoothed.
- Added optional first-person camera animation that smoothly lowers the camera by 30% of the character height while crouching.
- Added a client-only first-person FOV adjustment and vanilla-style character yaw synchronization while turning the first-person camera.
- Reduced first-person sway amplitude to make movement more comfortable.
- Added configurable optical hold-to-zoom: hold Mouse4 by default to magnify toward the crosshair in first or third person, scroll to adjust magnification, and release to restore normal FOV. The feature is disabled while the building hammer is equipped.
- Added an optional Alt free-look toggle. While the configured key is held, the camera can look sideways without changing the local character's movement heading, including while movement keys are held. The camera now pivots locally without orbit translation and restores the exact view captured at activation smoothly.
- First-person activation now requires an explicit scroll toward the minimum distance; camera collision alone can no longer switch views. V1 occlusion is disabled while first person is active.
- Switched the default hold-to-zoom key to Mouse4, smoothed first-person sway, and made FOV changes apply immediately while Configuration Manager is open.
- Roll direction follows movement direction while vanilla first person is active.
- Hold-to-zoom starts at a configurable magnification immediately on Mouse4 and can be adjusted progressively with the scroll wheel. While held, it consumes the wheel so vanilla camera distance and first-person activation cannot also process the same input. Free look is capped at 120 degrees horizontally and 90 degrees vertically, including when movement keys are held together with Alt.
- V1 building culling now admits only explicit support-pillar and stone-arch renderers. Walls, floors, ceilings, and roofs belonging to the same building piece remain visible.
- Added optional Advanced Camera. It measures floor and ceiling clearance at the camera target, keeps the camera at a safe height while pitch changes, and still respects walls and solid obstacles along the path. Alt return uses built-in smoothing with no extra setting.
- Reorganized Configuration Manager controls into Camera Cull, Camera Collision, Camera Improvements, Performance, Visual, Debug, and Detection feature groups.
- Added separate day, night, and fog/cave brightness controls. The adjustment now runs after
EnvMan.SetEnv, the final client-side method that writes the directional light, fog, render settings, and world ambient shader color. Every call starts from values freshly written by Valheim, without accumulating changes or depending on server-side brightness settings. - Added optimized temporary Leaves Only behavior while walking toward the camera. It uses consecutive local movement samples, rejects abrupt position corrections, and only requests a new throttled cylinder query when the mode changes. Its configurable activation delay defaults to 0.5 seconds of continuous movement toward the camera. Support pillars and stone arches are restored together with tree trunks while the temporary mode is active.
- Increased the ground-anchored young-tree and sapling detection volume to six metres high and three times the original radius. Normal culling now resolves the complete young-tree root.
- Added explicit visual culling and camera-collision bypass for player-built stone arches.
- Camera collision resolves wall-mounted lights before structural wall classification and ignores wall sconces, torch variants, light fixtures, player-built tables, and the local player's active hammer placement preview.
- Wooden walls, foundations, floors, ceilings, roofs, terrain, mountain rocks, boulders, ores, and other natural stone remain solid to the camera.
- Replaced live scene-wide V1 renderer discovery with collider-backed queries limited to the active camera volume. Collider, renderer, and hierarchy classifications are cached.
- Added configurable curved-cylinder geometry, contact interval, restore delay, shadow preservation, visual diagnostics, protected-name tokens, and independent collision toggles.
- Added aggregate verbose performance diagnostics without per-renderer hot-path logging.
- Runs entirely on the client and does not modify world saves, server physics, harvesting, mining, combat, or building interactions.