


The DroneCam allows you to join a multiplayer game as a drone, flying around, following, orbiting, and tracking a player or enemy. It works with un-modded, vanilla servers and MP games as well as modded ones. You simply join the game, enable the drone cam and then become an omnipotent spectator. Handy for tracking the Valheim action from a completely independent vantage point.
Built for Xpert Malfunction and shared to the community.
Place XpertsDroneCam.dll in your BepInEx/plugins/ folder. If you are using the Spout or NDI streaming features, see the Streaming section below.
When the drone cam is active your character becomes invisible to other players, is protected from damage, and does not count toward enemy difficulty scaling. You can fly freely around the world, follow a specific player from behind, orbit a player or point of interest, or set up a fixed security camera that tracks a moving target.
If the player you are targeting goes through a portal to a distant part of the map, the drone will automatically teleport to follow them.
Commands can be entered in two ways:
dc followed by a subcommand, e.g. dc follow player Xmal/dc followed by the same subcommand, e.g. /dc follow player XmalPlayer names that contain spaces must be wrapped in quotes in both the console and chat, e.g. dc follow player "Big Viking".
| Key | Action |
|---|---|
| F8 | Toggle drone cam on and off |
| F7 | Toggle between free-fly and the last tracking mode (follow, orbit, or security) |
| Left Click | Point at a player and select them as the tracking target, using the last mode and settings |
| T | Point at an enemy to set it as the look-at target. Press again on the same enemy to release. Press while pointing at empty space to clear the current enemy target |
| W | Fly forward |
| S | Fly backward |
| A | Strafe left |
| D | Strafe right |
| E | Fly up |
| Q | Fly down |
| Left Shift | Hold to fly faster |
| Right Mouse Button | Hold to look around with the mouse |
| Left Arrow | Rotate left |
| Right Arrow | Rotate right |
| Up Arrow | Pitch up |
| Down Arrow | Pitch down |
| Mouse Wheel | Adjust distance or orbit radius |
| Alt + Mouse Wheel | Adjust camera height above target |
| Ctrl + Mouse Wheel | Slide the focal point up or down |
| Alt + Ctrl + Mouse Wheel | Adjust orbit speed |
| . (period) | Cycle to next player target |
| , (comma) | Cycle to previous player target |
All commands are entered as dc <command> <subcommand> <parameters> in the console, or /dc <command> <subcommand> <parameters> in chat.
| Command | Subcommand | Parameters | Description |
|---|---|---|---|
help |
Show command help in chat | ||
on |
Enter free-fly mode | ||
freefly |
Enter free-fly mode | ||
off |
Exit drone cam and return to normal camera | ||
hud |
Toggle the HUD on and off | ||
snap |
Snap drone instantly to current player target | ||
players |
List all players currently on the server | ||
follow |
player |
(name) [distance] [height] [smoothing] | Follow a player from behind |
follow |
enemy |
(name) [distance] [height] [smoothing] | Follow the nearest enemy with the given name |
orbit |
player |
(name) [radius] [speed] [height] | Orbit around a player |
orbit |
enemy |
(name) [radius] [speed] [height] | Orbit around the nearest enemy with the given name |
orbit |
pos |
[radius] [speed] [height] | Orbit around the point you are currently looking at |
orbit |
speed |
(deg/sec) | Change the orbit speed while orbiting |
security |
player |
(name) | Fixed camera that tracks a player |
security |
pos |
Fixed camera that tracks the point you are looking at | |
targetenemy |
Lock look-at onto the nearest enemy | ||
targetenemy |
(name) | Lock look-at onto the nearest enemy with that name | |
targetenemy |
clear |
Release enemy look-at lock | |
stream |
on |
[spout|ndi] [width] [height] | Start video streaming via Spout or NDI |
stream |
off |
Stop video streaming | |
stream |
res |
(width) (height) | Change stream resolution while streaming |
Parameter units:
| Parameter | Unit | Default |
|---|---|---|
| distance | Valheim world units | 5 |
| height | Valheim world units | 2 |
| smoothing | Seconds (lower = snappier) | 0.1 |
| radius | Valheim world units | 10 |
| speed | Degrees per second | 30 |
| width | Pixels | 1920 |
| height (stream) | Pixels | 1080 |
Every command and subcommand has a short alias for faster typing.
| Short form | Expands to |
|---|---|
ff |
freefly |
f |
follow |
o |
orbit |
s |
security |
te |
targetenemy |
st |
stream |
p |
player (as a subcommand) |
e |
enemy (as a subcommand) |
c |
clear (as a subcommand of targetenemy) |
n |
nearest (as a subcommand of targetenemy) |
Examples using short forms:
dc f p Xmal
dc o e Troll 15 45 6
dc te
dc te Troll
dc te c
dc st on ndi 1920 1080
Activates the drone cam in free-fly mode. Your character is hidden from other players and the camera detaches and floats in place. Use WASD/QE to move, hold Shift to move faster, and hold Right Mouse Button to look around.
dc on
dc freefly
dc ff
Deactivates the drone cam and returns you to the normal third-person camera. Your character reappears at the last safe ground position near where the drone was.
dc off
Toggles the game HUD (health bar, stamina, hotbar etc.) on and off. Useful for clean recording footage. The crosshair is always hidden while the drone is active regardless of this setting.
dc hud
When following or orbiting a player, instantly moves the drone to the correct relative position near that player. Useful if the drone has drifted or you want to quickly reframe after issuing a new follow or orbit command. If the player is far away the drone will teleport to them.
dc snap
Lists all players currently connected to the server in the chat window. Players shown with (distant) next to their name are in an area of the map that is not currently loaded on your client ? the drone will automatically teleport to them if you target them.
dc players
Follows a named player from behind at a set distance. The camera stays behind the player and looks toward them as they move. Use the mouse wheel to adjust the follow distance and Alt + mouse wheel to adjust the height offset above the player.
dc follow player Xmal
dc follow player Xmal 8
dc follow player Xmal 8 3 0.2
dc f p "Big Viking" 5 2
| Parameter | Description | Default |
|---|---|---|
| name | Player name (quote names with spaces) | required |
| distance | How far behind the player to position the camera | 5 |
| height | How far above the player to position the camera | 2 |
| smoothing | How quickly the camera catches up to the player. Lower values are snappier, higher values are smoother | 0.1 |
If the player is in a part of the map that is not yet loaded, the drone will automatically teleport there.
Follows the nearest enemy with the given display name (the name shown when you hover your crosshair over an enemy in game). The camera stays behind the enemy and looks toward it.
dc follow enemy Troll
dc follow enemy Troll 10 4
dc f e "Fuling Berserker" 8 3 0.15
Parameters are the same as follow player.
Orbits continuously around a named player at a fixed radius and height. The camera always looks toward the player while orbiting. Use the mouse wheel to adjust the orbit radius, Alt + mouse wheel to adjust height, and Alt + Ctrl + mouse wheel to adjust speed.
dc orbit player Xmal
dc orbit player Xmal 15 20 6
dc o p "Big Viking"
| Parameter | Description | Default |
|---|---|---|
| name | Player name | required |
| radius | Distance from the player in world units | 10 |
| speed | How fast the camera orbits in degrees per second | 30 |
| height | How far above the player the camera orbits | 4 |
Orbits the nearest enemy with the given name. Parameters are the same as orbit player.
dc orbit enemy Troll
dc orbit enemy Troll 12 25 5
dc o e Bonemass 20 15 8
Orbits around the point in the world that the drone camera is currently looking at. Position the drone first in free-fly mode, aim at your point of interest, then issue this command.
dc orbit pos
dc orbit pos 10 30 4
dc o pos 20 20 6
Changes the orbit speed while already orbiting without stopping or restarting the orbit.
dc orbit speed 15
dc o s 60
Locks the drone in place at its current position and continuously rotates to track a named player as they move around. The camera does not follow the player ? it stays fixed and only rotates, like a security camera mounted on a wall.
dc security player Xmal
dc s p "Big Viking"
Locks the drone in place and tracks the point in the world you are currently looking at. The camera rotates to keep that point in frame as the drone stays fixed.
dc security pos
dc s pos
Sets an enemy as the look-at target. When a look-at target is set, the camera always points toward that enemy regardless of what the anchor target is. For example you can orbit a player while keeping the camera pointed at a nearby enemy instead of at the player.
dc targetenemy
dc targetenemy Troll
dc targetenemy clear
dc te
dc te Troll
dc te c
If used with no name, targets the nearest enemy. Use clear or c to release the look-at lock and return to pointing at the anchor target.
Press T while the drone is active to target the enemy in the center of your view and lock the camera look-at onto them. This works independently of the anchor target ? you can orbit a player while the camera constantly looks toward a nearby enemy.
Press T again while pointing at the same enemy to release the look-at lock. Press T while pointing at a different enemy to switch targets. Press T while not pointing at any enemy to clear the current target.
The selection cone angle can be adjusted in the config file with SelectEnemyConeAngle. The default of 3 degrees works well for enemies at typical combat range. Increase it if you have trouble targeting enemies at distance.
Press Left Click while the drone is active to target the player in the center of your view. The drone will immediately apply the last tracking mode you used (follow, orbit, or security) at the last settings used, targeting the player you are pointing at. This makes it easy to fly between players and lock the camera on each one in turn.
If no player is within the selection cone, nothing happens. The selection cone angle can be adjusted with SelectPlayerConeAngle in the config file.
Press F7 while tracking a player to instantly switch into free-fly mode without losing your tracking settings. Press F7 again to return to the same player, same mode, and same parameters you were using before. This is useful for repositioning the drone without losing your current target.
Starts broadcasting the drone camera view as a video stream that can be captured in OBS or other software. Requires KlakSpout (for Spout) or KlakNDI (for NDI) to be installed alongside the mod. See the Streaming section for setup instructions.
dc stream on
dc stream on spout
dc stream on ndi
dc stream on spout 1920 1080
dc stream on ndi 2560 1440
dc st on ndi 3840 2160
| Parameter | Description | Default |
|---|---|---|
| protocol | spout or ndi ? which streaming protocol to use |
spout |
| width | Stream width in pixels | 1920 |
| height | Stream height in pixels | 1080 |
Stops the active video stream.
dc stream off
dc st off
Changes the resolution of an active stream without stopping and restarting it.
dc stream res 2560 1440
dc st res 3840 2160
The drone cam can broadcast its view as a live video feed that OBS or other capture software can pick up. Two protocols are supported:
Spout is the recommended option for most users. It shares the video directly between programs on the same PC with no encoding overhead and no network required. To use it:
Klak.Spout.Runtime.dll and KlakSpout.dll in your BepInEx/plugins/DroneCam/ folderdronecam_spout asset bundle file in the same folderDroneCamdc stream on spoutNDI works over a local network, so OBS can be running on a different PC from Valheim. To use it:
Klak.Ndi.Runtime.dll and KlakNDI.dll in your BepInEx/plugins/DroneCam/ folderDroneCamdc stream on ndiA configuration file is created at BepInEx/config/com.oathorse.xdc.cfg after the first run. The following settings can be adjusted:
| Setting | Default | Description |
|---|---|---|
| FlySpeed | 10 | Normal free-fly movement speed in world units per second |
| FlySpeedFast | 40 | Fast free-fly movement speed when holding Shift |
| RotationSpeed | 90 | Keyboard rotation speed in degrees per second |
| SmoothTime | 0.25 | Movement smoothing for orbit and security modes |
| TeleportDetectionDistance | 50 | Distance in world units that triggers portal follow detection |
| ScrollSensitivity | 0.5 | How much each mouse wheel tick adjusts distance or radius |
| SelectPlayerConeAngle | 5 | Half-angle of the selection cone in degrees when pressing Left Click to select a player. Increase if you have trouble selecting players at long range |
| SelectEnemyConeAngle | 3 | Half-angle of the selection cone in degrees when pressing T to target an enemy. Increase if you have trouble targeting enemies at long range |
v0.2.0
v0.1.28
v0.1.27
v0.1.26
v0.1.25
v0.1.24
v0.1.23
v0.1.22
v0.1.21
v0.1.20
v0.1.19
v0.1.18
v0.1.17
/snap command to snap drone to player position and rotation, useful for teleporting to player position without having to wait for the drone to catch upv0.1.16
v0.1.15
v0.1.14
v0.1.13
v0.1.12
v0.1.11
v0.1.10
v0.1.9
v0.1.8
/dronecam follow enemy and /dronecam orbit enemy commands specifying enemy name for nearest enemy/dronecam hud command to toggle HUD visibilityv0.1.7
v0.1.6
/dc targetenemy target nearest enemy for look-at/dc targetenemy <name> target named enemy for look-at/dc targetenemy clear clear enemy targetv0.1.5
/dc was ignored/dronecam offv0.1.4