CustomMonsterReplacer
Monster manager: replace a vanilla monster's visual with a custom 3D model, or clone a prefab into a new creature with its own model, health, faction and spawns. Web tuning GUI.
About this mod Author’s original text
CustomMonsterReplacer
A monster manager for Valheim. Give any vanilla creature a custom 3D model, or turn a
vanilla prefab into a brand-new creature of your own, without touching its AI, stats or
loot. Everything is managed from a web GUI while the game runs.
A Valheim BepInEx 5 plugin built on Jotunn.
Two kinds of entry
| | Replace | Creature |
|---|---|---|
| What it does | Swaps a vanilla prefab's visuals in place | Clones a vanilla prefab under a new registered name |
| AI / stats / loot | Untouched — stays exactly vanilla | Yours to set: health, faction, AI ranges, spawn biomes |
| Networking | None — purely visual | A real prefab, registered in ZNetScene |
| Good for | "make the greydwarf look like this" | "add a troll-sized bear that spawns in the Black Forest" |
Features
- Monster manager GUI at — add and remove entries, tune scale, position and rotation, toggle individual meshes, and set health, faction and spawns.
- GLB models, loaded with a built-in GLB/GLTF parser. Rigged models animate: skin joints are remapped to the vanilla skeleton by name, with a proximity-weighted fallback.
- Animated creatures from Unity AssetBundles, with walk and attack clips.
- Skeleton overlay in the GUI to visualise which bones matched, and a generated Blender auto-weighting script at /armature_script for content creators.
- Auto height fit — scale a model to a target height in metres, or match the source prefab's own height.
- Distance culling, so custom models stop being processed when far away. The log prints distance culler: N custom model(s) in the world; if that number is stuck at 0, culling is broken.
- A pre-1.4 config migrates itself once into the new entry list, so upgrading is silent.
Requirements
- BepInExPack Valheim (automatic)
- Jotunn (automatic)
- Valheim 1.0.16. The mod is built against it; a game update can break its patches and there is no way to detect that from inside the plugin.
Installation
Install through your mod manager. All five payload files must end up in
BepInEx\plugins\CustomMonsterReplacer\, next to the DLL — the model and bundle
filenames are resolved relative to it.
Manual install: copy CustomMonsterReplacer.dll, trooper.glb, ogre.glb, valheimbear
and valheimogre into that folder.
Bundled models
Every entry has its own model, so nothing is ever removed from the folder.
| File | Size | Notes |
|------|------|-------|
| trooper.glb | 17 MB | 25 parts, skeleton-bound onto the greydwarf rig |
| ogre.glb | 11 MB | Alternative model |
| valheimbear | 42 MB | AssetBundle, BearPlayer, with walk/attack clips |
| valheimogre | 43 MB | AssetBundle, OgrePlayer, troll-sized |
The package is ~109 MB, which is large by design: two of those files are Unity
AssetBundles, which are already compressed and do not shrink further.
The AssetBundles were built with Unity 6000.0.75f1 exactly, matching the engine in
this Valheim build. A different editor version produces bundles that will not load.
How to use
- Start the game and open
- Add an entry and pick its kind — Replace (target a vanilla prefab) or Creature
(clone one, then give it health, faction and spawn entries).
- Choose a model, then tune scale (auto-fit or manual), position/rotation
offsets, and toggle individual meshes. Changes auto-apply and are saved to the config.
- In-game, summon or spawn the creature and check it against the vanilla one.
Want to use your own model? Export a GLB rigged to a GreydwarfArmature skeleton —
download the generated script from /armature_script — and drop it next to the DLL. It will
appear in the GUI's model list.
Configuration
A JSON file created next to the DLL on first load:
BepInEx\plugins\CustomMonsterReplacer\monsterreplacer_config.json. The GUI owns this
file — edit entries in the browser rather than by hand, or your changes will be
overwritten on the next save.
{
"EnableWebServer": true,
"WebPort": 8777,
"Monsters": [
{ "Id": "greydwarf", "Kind": "Replace
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: