CustomMeshes

v0.5.1·Updated 2026-09-23

Fork of aedenthorn's CustomMeshes for Valheim 1.0. Allows you to replace object meshes with imported model files.

About this mod Author’s original text

CustomMeshes

Updated for Valheim 1.0

A fork of aedenthorn/CustomMeshes

| GitHub

Replace object meshes with imported model files.

This mod will hopefully eventually allow replacing any mesh in the game; for now it lets you do the following:

  • Replace the static mesh(es) of building pieces with imported fbx or obj files.
  • Replace the static mesh(es) of items with imported fbx or obj files.
  • Replace skinned meshes with imported AssetBundles (experimental)

Place mesh files next to this mod's DLL, in a CustomMeshes folder:

BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes

(If you installed the DLL by hand, create CustomMeshes next to CustomMeshes.dll.).obj files are imported by this mod and do not need Assimp..fbx files need AssimpLibaries. If FBX fails, check BepInEx/LogOutput.log for Assimp errors.

DETAILED INFORMATION

Building Pieces

To import static meshes for building pieces, do the following:

[Step One:] create a folder with the name of the thing you are replacing.

For example, to replace the wooden chest meshes, create a subfolder in BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes called: piece_chest_wood

[Step Two:] create a subfolder for each of the states of the building piece: New, Worn, Broken

So now you should have three folders:

BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\piece_chest_wood\New

BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\piece_chest_wood\Worn

BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\piece_chest_wood\Broken

Step Three: put fbx or obj files corresponding to each MeshFilter name into that folder, e.g.:

woodchest.fbx

woodchesttop_closed.fbx

Items

To import static meshes for items, you need the item name, the renderer object name, and either the mesh filter name or the skinned mesh renderer name, depending on the item. You can find these by turning on debug in the config file and looking at the messages when the item spawns, e.g.:

CustomMeshes got mesh filter item name: HelmetPadded, obj: HelmetPadded, mf: default

CustomMeshes got skinned mesh renderer, item name: HelmetPadded, obj: attach_skin, smr: ChainLinkVisor

You then create a file with the following folder structure:

  • BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\\\.obj

and/or

  • BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\\\.obj

For example:

  • BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\HelmetPadded\HelmetPadded\default.obj

or

  • BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\HelmetPadded\attach_skin\ChainLinkVisor.obj

Player Meshes

To import player meshes, you need to create an AssetBundle with a body object in it. Please don't ask me how to do that, I have no clue. You can ask people working on it in my discord server if you know something about Unity.

Step One: create a folder called player with a subfolder called model in the CustomMeshes folder. So now you have:

BepInEx\plugins\cjayride-CustomMeshes\CustomMeshes\player\model

Step Two: put the asset bundle you created in the subfolder, naming it 0 for male and 1 for female (make sure it has no file extension).

Known Issues

Requires BepInExPack Valheim 5.4.2350+ (Unity 6). Crossplay must stay off for BepInEx to load.

Configuration

  • A config file BepInEx/config/cjayride.CustomMeshes.cfg is created after running the game once with this mod.

Contact

  • 𝕏: x.com/cjayride
  • Discord: discord.gg/cjayride (find me at the top of the user list) "cjayride"
  • Twitch: twitch.tv/cjayride

AI Generated

This code was not AI Generated, however, AI was used to verify that it works with the new version of the game.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. 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.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. 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.

Dependencies

Install these first, or the mod will not work:

denikson-BepInExPack_Valheimcjayride-AssimpLibaries

File & checksum

Filename
CustomMeshes-0.5.1.zip
File size
89.2 KiB