Cano ContentTools
Record, place and replay your Valheim actions as a Player or Creature: animations, effects, sounds and build pieces. And free-fly record these recordings without needing a dual system setup.Cano.ContentTools
Record yourself in Valheim as a player or creature, then place the recording anywhere in the world with the build hammer as an animated, looping scene. Movement, animation, gear, capes and hair, effects, sounds and even the build pieces you place while recording are all kept.
I made this mainly for making content solo (trailers, story scenes, build showcases etc). If you ever wanted to record yourself building but don't have a dual system setup. This mod will let you do that and more.
My hope is this will help people share recordings with one another like they do blueprints.
Requirements
- Valheim 1.0+
- BepInExPack Valheim-5.4.2351
- Any Config Manager (recommended, for the finer config settings)
Client-side for the main functionality. The mod is needed on both Server & Client for everyone to see the things.
No additional mod dependencies are required. Works alongside JereKuusela's mods (Infinity Hammer, World Edit etc) and PlanBuild when they are installed (see Compatibility).
Installation
Thunderstore Mod Manager / r2modman
- Install Cano.ContentTools through Thunderstore Mod Manager, r2modman, or another compatible Thunderstore client.
- Make sure BepInExPack Valheim is installed.
- Launch Valheim through your mod manager.
- The mod will generate its configuration file and a
Recordingsfolder automatically on first launch.
Manual installation
-
Install BepInExPack Valheim and make sure BepInEx is working correctly.
-
Download the Cano.ContentTools release.
-
Extract the downloaded archive.
-
Place the extracted files in:
Valheim/BepInEx/plugins/Cano.ContentTools/ -
Launch Valheim.
The final structure should look similar to:
Valheim/
└── BepInEx/
└── plugins/
└── Cano.ContentTools/
├── Cano.ContentTools.dll
└── Recordings/ (created automatically)
Your saved recordings are files in the Recordings folder. They are shared by every world and character, so you can copy a recording file to a friend and they can use it.
Sound export folder will appear inside the Recordings folder with the same name as the recording.
Local folder inside the Recordings folder is only for your game and doesn't need to be shared.
Developer Support folder appears next to the Recordings folder when it is exported otherwise it will not be there. (This is only for dev use)
Quick start
- Press
Ito start recording. Do whatever you want to show: walk, fight, emote, change gear, build. - Press
Oto stop. The Save window opens: give it a name and a category, and optionally a description. - Open the build hammer menu. Each category becomes a list in the Favourites tab. Pick your recording: the character shows as the build ghost.
- Place it. It appears paused, standing where it began.
- Press
Shift + Alt + Ito play or pause every placed recording.
To take a placed recording away, use the hammer's Remove button on it. Or can also punch it (cause why not)
Config
The configuration file is generated by BepInEx after the first launch. Every setting has a simple description, and most can be changed live.
All settings are grouped into sections:
| Sections |
|---|
| General: Master switch and the category switches (Recording, Placing & Playing, The Paid Actor, Building Tools, Compatibility), the undo steps and the debug log. |
| Keyboard Shortcuts: Every shortcut in one place. The Recording Controls window has a page for changing them in game. |
| Recording: Longest recording, auto save, impacts between recordings, pieces from other building tools. |
| Effects: Which effects, sounds, capes and hair get recorded, build smoke and the poof sound. |
| Playing Recordings: Looping, pieces appearing one by one, how far away animations play, scrubbing, ghost mode, path lines, relative positioning. |
| Snapping: Lining recordings up with the build grid and with real build pieces. |
| Building Tools: Make Pieces Real, the nudge panel and blueprint export. |
| The Paid Actor: Become all creatures/build pieces, Odin/ravens/Valkyrie in the list, flying speed, emotes, leftover clean-up. |
| Animation: Classic (pre 1.0) walk, jog and run animations for your character. |
| Camera: Unlimited zoom out. |
| Loading And Memory: Preloading recordings and prebuilt previews so placing is quick. |
| Hover Descriptions: The small description pop-ups for the in-game UI, their delay and text size. |
| Window Sizes: A size setting for each window. |
| Compatibility With Other Mods: The other mods work which with this one. |
| Multiplayer And Admin: Admin control and sharing placed recordings with everyone. |
| Developer Reference: For people who write add-ons: prefab names, tags, Expand World Prefabs hooks and an export button for the API files. |
Features
Recording
Istarts a recording,Ostops it and opens the Save window.- Your movement, animation, gear changes, held items and effects within a set distance of you are recorded.
- Capes and hair are recorded frame by frame, so they flow in the replay exactly like they did.
- Cape and shield styles (banner patterns, cape designs) are kept.
- Sounds of the effects can be recorded as well (the click sounds of the build menu are left out).
- Building pieces you place (and remove) while recording appear in the replay at the moment you placed them.
- Pieces made by other building tools near you are picked up too.
- Swings and blasts are saved so two placed recordings can hit each other.
- While recording, the recording so far is auto saved in the background. After a crash, rename the
.RecordAutoSavefile to.recordto get it back. - Recordings can be as long as you like (an hour by default). Standing still costs almost nothing.
- At about 300 MB (and again at 1 GB, 2 GB and so on) my mod asks if you want to save and carry on in a new recording. To better manage recording files.
Placing & Playing
- Recordings are placed with the build hammer from the Fav tab, one list per category.
- Placed recordings start paused.
Shift + Alt + Iplays or pauses all of them. - Loop them forever or a set number of times (1 playback is default).
- Build pieces can appear one by one as they were placed, or all be there from the start.
- Recordings far away stop animating and catch up when you return.
- Scrubbing: hold
Shift + Altand use the mouse wheel to move the nearby recordings forward or back in time. - Freeze: hold
Shiftand left click a recording's name in the placed recordings list of the Recording Controls menu. It stays on its frame, its name turns red, and play, pause, groups, order numbers, scrubbing, resets and Make Pieces Real skip it (removing it still works). Click it the same way to unfreeze it. - Mute:
Shift + Alt + Mmutes or unmutes every placed recording (the same as the Play Sounds switch in the config). HoldShiftand right click a name in the Recording Controls menu list to mute only that one; its name turns light blue. A recording that is both frozen and muted fades slowly between red and light blue. - Playback Sound Volume in the config makes replayed sounds louder or quieter than the game's own.
- Sound export: with the Recording Controls open and a recording picked/selected,
Shift + Ctrl + Alt + Esaves its sounds as one.wavfile, same length as the recording, in a folder named like the recording's file insideRecordings. - Warning: sound exports are loud. The sounds are caught while they are played close to the player, so turn your speaker/headphone volume down before you export.
- Order numbers: press Use (
E) on a placed recording and give it a number. Recordings with no number play first, then 1, then 2 and so on, each group playing one pass before the next starts. - Path lines: optional dotted lines on the ground show where each recording walks, so two can be lined up to meet.
- Ghost mode: creatures never target placed recordings.
- A playing recording that gets hit pops.
Shift + middle mouseover a recording in the build menu deletes it, with a confirmation popup.
Recording Controls
Shift + Alt + O opens the Recording Controls window. It can also be minimised to a small control.
- Page 1: pick any placed recording from the list, play, pause, reset, number it, play or pause a whole group, go to its location.
- Page 2: the settings (display, snapping, animation, playback and scrubbing).
- Page 3: every shortcut in one list. Click a shortcut or its Set button, press the keys you want (up to four together) and let go. Reset brings the default back. A combination that is already in use is refused with a message.
Hold the mouse over any button, switch or setting for a short description.
Placing precisely
- Snapping: the first recording snaps to the build grid, and recordings' first build piece can snap to real build pieces like any piece would.
- Relative positioning: place a recording where it stood in relation to the first one you placed.
- Nudge panel: press Use (
E) on a placed recording for arrows to move it after placement. HoldShiftwith the up and down arrows to change its height.
The Paid Actor
Shift + Alt + P opens The Paid Actor window.
- Become any creature of the game (pick its star level and size - 1x is the default size), a build piece, or a flying visitor: Odin, Hugin, Munin and the Valkyrie.
- Steer it with your normal movement keys and the mouse. Attacks, special attacks, sounds and emotes are on keys listed for each creature in the window.
- God Mode: you cannot be hurt as the creature.
- Equip Hammer / Hoe / Cultivator: the creature holds the tool and you can build with the game's own build menu.
- Mark creatures as favourites with the star.
- You can record while being a creature, and the buildings near you are copied into the recording so you can remove them and have them rebuilt by the replay. (this is for Recording the creature destruction done to the builds)
Shift + Alt + Bturns you back into your character.
Classic animations
Before the 1.0 update the player character had a different walk, jog and run. Turn on Animation > Classic Animations (or the switch on page 2 of the Recording Controls) to bring them back. A hammer, torches, lanterns and two-handed weapons keep the new animations. Recordings you make while it is on keep the classic animations.
If another animation mod changes the same animations, Content Tools stands down and leaves it alone, so recording other mods' walks and actions always stays possible.
Make Pieces Real
Shift + Alt + G turns the build pieces shown by nearby recordings, as they are visible, into real pieces.
Blueprints
Shift + Alt + K saves the build pieces of a recording as a PlanBuild .blueprint file (also readable by Infinity Hammer).
Blueprints are not the main job of my mod. For blueprints, Infinity Hammer and PlanBuild will always give you better control.
Windows
Every window has its own size setting in the config. Hold Ctrl (Cmd on macOS) and turn the mouse wheel over a window to resize it.
Undo
Shift + Alt + Z undoes the last thing my mod did (placing, removing or moving a recording, making pieces real). Shift + Alt + X redoes it.
The console commands ct_undo and ct_redo do the same.
Camera
The camera can zoom out without the game's limit as your character, as a creature or piece, and on a boat. Optionally set your own limit.
Default shortcuts
All of these can be changed in the config, or in game on page 3 of the Recording Controls. A shortcut only fires when the keys match exactly,
so for example Shift + Alt + I never also triggers a shortcut that is just Shift + I.
| Shortcut | What it does |
|---|---|
I |
Start recording |
O |
Stop recording and open the Save window |
Shift + Alt + I |
Play / pause all placed recordings |
Shift + Alt + O |
Open the Recording Controls |
Shift + Alt + U |
Play / pause a group (the number typed in the Recording Controls) |
Shift + Alt + H |
Show / hide the recorded characters |
Shift + Alt + Z / X |
Undo / redo |
Shift + Alt + G |
Make pieces real |
Shift + Alt + K |
Export a recording as a blueprint |
Shift + Alt + V |
Swap character and build on the hammer ghost |
Shift + Alt + E |
Show the path on the hammer ghost |
Shift + Alt + P |
Open The Paid Actor |
Shift + Alt + B |
Un-become |
Shift + Backspace |
Remove every placed recording (with a poof) |
Shift + Alt + Backspace |
Remove every effect my mod spawned |
Shift + Alt + Mouse Wheel |
Scrub the nearby recordings |
Shift + Alt + M |
Mute / unmute every placed recording |
Shift + Left Click on a name in the list |
Freeze / unfreeze that recording |
Shift + Right Click on a name in the list |
Mute / unmute that recording |
Shift + Ctrl + Alt + E |
Export the sounds of the picked recording as a .wav file (Recording Controls open; sounds can be loud, so turn your speaker/headphone volume down first) |
Shift + C + Mouse Wheel |
Flight speed (building piece or flying visitor of The Paid Actor) |
Ctrl |
Fly down (building piece or flying visitor of The Paid Actor) |
Shift + Middle Mouse in the build menu |
Delete a recording |
Ctrl + Mouse Wheel over a window |
Make the window bigger or smaller |
E (the game's Use key) on a placed recording |
Order number / nudge panel (follows the game, cannot be changed) |
Multiplayer
- Recordings can be used by anyone, but by default only the host or admins place and control them in multiplayer (Use Admin Options).
- Share Placed Recordings With Everyone (off by default): what an admin places, and how it plays, is sent to every player who has my mod.
They get the recording files from the admin automatically. (Turning this on shares the admin
recordingsfolder with everyone on the server.) - Only Admins Can Control Recordings: everybody else can still see them.
- A plain server just relays the messages. Players without my mod simply do not see the recordings.
Compatibility
All of these are optional and each has its own on/off switch in the config.
- Infinity Hammer: what you build with it is recorded. Recordings stay out of its own tool menus, and its remove tool can take recordings away.
- PlanBuild: blueprints built with PlanBuild are recorded, and recordings can become PlanBuild blueprints.
- JereKuusela's mods (Server Devcommands, World Edit Commands, Expand World Prefabs and others): checked against their source. Recordings are not networked objects, so World Edit Commands and similar do not see them. Content Tools' undo and Jere's undo share one order.
- Expand World Prefabs: triggers
ct_placedandct_removedand the functionsct_recordingsandct_recording_namesare available. - Classic Walk and other animation mods: Content Tools stands down where they clash.
For mod authors: saved recordings show up as spawnable prefabs (CanoCT_Rec_<name>), and a public API lets other mods add their own actions, emotes, effects, pieces and tools to
a recording. The Developer Reference section of the config has a button that saves the API files, a drop-in client file and a cheat sheet into a Developer Support folder next to
Recordings. The console command ct_export_api does the same.
Performance
- Recordings far away stop drawing their animation.
- Pieces can be merged into one mesh, and previews of your newest recordings are built while the world loads, so placing feels quick.
- Recording files are read in the background when the game starts, so a shared recording does not stall the game the first time you use it.
- Turn individual category switches off in General to switch whole parts of my mod off (unhooks the parts similar to my other mods).
- Recorded builds remove all of the extra elements such as stability calculations, damage calculations etc.
- Effects like the smoke of fires is also removed in recordings.
- Sounds and build smoke effects are drawn once and reused.
I've taken all the steps I could think of to ensure the recordings are as light as possible, so they can be used on any system. While keeping the visuals as true to the game as they can be without adding to the file sizes and the processing load.
Feedback
I'm open to all feedback & suggestions that can make the mod better for the community. Be it performance related, ideas to improve its current functionality or even something you think is not/or could be a better user experience.
Credits
Compatibility checked against JereKuusela's Infinity Hammer, Server Devcommands, World Edit Commands and the Expand World mods, and against PlanBuild.
The animation and creature work is built on the game's own assets and rigs.
Special thanks to Dhakhar, HiImKlaus, Astridsinjesdottir & Mare for helping with bug testing and improvement of the features.
Support & Bug Reports
When reporting a problem, please include:
- Your Valheim version.
- Your BepInEx version.
- Cano.ContentTools version.
- Your configuration file if the issue is configuration-related.
- Your BepInEx log if the issue involves an error or mod conflict (turn on General > Debug Log first for more detail).
- A list of other installed mods if the issue appears to be compatibility-related.
If a feature behaves unexpectedly, try switching off individual category switches in the General section to find the part that is affected.
You can contact me on Discord if you have problems: https://discord.gg/RPnb55MpSt
