Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Rusty edited this page Jan 29, 2026 · 2 revisions

MonsterDB allows you to inspect, modify, and extend Valheim prefabs through structured YML files. All supported components and behaviors are defined and parsed based on file headers and base types.

Header

All main files start with

Prefab: stringIsCloned: boolClonedFrom: stringType: BaseType

These fields determine how MonsterDB interprets and processes the rest of the file.

The fields GameVersion and ModVersion are optional and do not affect runtime behavior. They exist solely to help track compatibility with Valheim or MonsterDB updates for long-term maintainability.

How-to modify a creature

  1. Use the write command to export a creature’s YML files. This includes:

    • The main creature file
    • Item files (if the creature has attacks)
    • A ragdoll file (if one exists)
  2. Modify the exported YML files as needed. Many fields are omitted when they match default values (for example, 0).

  3. Some components can be added or removed. When removing fields:

    • Be cautious, as removing a field may remove an entire component.
    • If you want to keep a removable component unchanged, replace its contents with {}.
  4. Refer to the other files in the README folder for details on which fields and components can be safely added or removed.

  5. For fields under the main containers:

    • Removing a field causes MonsterDB to ignore it during updates.
    • This allows you to delete any fields you do not intend to modify.

Examples can be found in the GitHub Wiki folder.

How-to clone a creature

  1. Use the clone command to export a cloned creature’s YML file.
  2. Modify the cloned file to suit your needs.

How-to

  • Any item can be converted into an egg by adding the EggGrow component. The item will hatch into the specified prefab.

  • Any item can be converted into a fish by adding the Fish component. This allows the item to swim and behave like a fish in water.

Special MonsterDB behaviours

Tameable Creatures

MonsterDB allows any creature to be made tameable, including animals such as Deer or Hare. This is normally impossible because they use AnimalAI. MonsterDB adds the AnimalTameable component to override this behavior and allow food searching and consumption.

Rideable Creatures

MonsterDB simplifies making creatures rideable. Instead of requiring a saddle setup, the player is attached directly to the creature’s root or attachParent field You should adjust attachOffset to ensure correct visual alignment and use command: monssterdb export_bones to figure out which bone to attach to under attachParent

Player Cloning

When cloning Player, all player-specific components are removed. The prefab is converted to use the custom MonsterDB Human component, which inherits from Humanoid.

PNG

Any .png files placed in the Import folder are automatically registered by MonsterDB.

Once registered, you can reference a PNG by its filename without the .png extension.

Notes

Visuals

When modifying the visuals on a creature, you will need to do the same to it's ragdoll, if they have one, if you wish the ragdoll to look appropriate. Ragdoll scale is not always the same as the creature scale. (e.g. Neck scale: 1, 1, 1 while Neck_ragdoll scale: 0.3, 0.3, 0.3, so if you want to half their scale, Neck: 0.5, 0.5, 0.5 while Neck_ragdoll: 0.15, 0.15, 0.15)

You can use the command write_visual or clone_visual to export a prefab YML with just the Visual data, to create custom FX prefabs. Useful when modifying a creature appearance, to also target their effect prefabs.

ItemData:
icons:
- myCustomPNGNameWithoutExtensionVisuals:
renderers:
- prefab: Cube.001parent: Visualindex: 1materials:
- name: MountainGolem_matmainTexture: myCustomPNGNameWithoutExtension

Audio

Any audio files placed in the Import folder are automatically registered by MonsterDB.

  • Audio files are not synced with the server.
  • Distribute them manually to all players.

Use the audio filename without its extension as the prefab value.

hitEffects:
effectPrefabs:
- prefab: myAudioFileNameWithoutExtension 

Commands

all commands begin with: monsterdb

use help to see this list in-game

  • monsterdb export_main_tex [prefabName]: export creature main texture
  • monsterdb search_tex [query]: search cached textures
  • monsterdb export_tex [textureName]: export texture as png
  • monsterdb write [prefabName]: write creature YML file to Save Folder
  • monsterdb write_all: write all creature YML to Save Folder
  • monsterdb mod [prefabName]: read creature YML file and update from Modified folder
  • monsterdb revert [prefabName]: revert creature to factory settings
  • monsterdb clone [prefabName][newName]: clone creature, must be a character
  • monsterdb write_egg [prefabName]: write egg YML file to Save Folder
  • monsterdb write_all_egg: write all egg YML to Save Folder
  • monsterdb mod_egg [prefabName]: read egg YML from Modified Folder and update
  • monsterdb revert_egg [prefabName]: revert egg item to factory settings
  • monsterdb clone_egg [prefabName][newName]: clone egg item, must be an item
  • monsterdb write_item [prefabName]: export item YML
  • mosnterdb mod_item [fileName]: read item YML file and update
  • monsterdb clone_item [prefabName][newName]: clone item and export YML file
  • monsterdb write_fish [prefabName]: export fish YML file
  • monsterdb mod_fish [fileName]: read fish YML file and update
  • monsterdb clone_fish [prefabName][newName]: clone fish and export YML file
  • monsterdb export_sprite [spriteName]: export sprite texture as PNG
  • monsterdb search_sprite [query]: search cached sprites
  • monsterdb write_visual [prefabName]: export prefab visual YML
  • monsterdb clone_visual [prefabName][newName]: clone prefab and export visual YML
  • monsterdb export_bones [prefabName]: export bone structure as YML
  • monsterdb create_item [prefabName][newName]: advanced command to try to convert any prefab into an item, does not work with creatures
  • monsterdb snapshot [prefabName]: snapshots a prefab into an icon and exports as PNG

Examples

Visit: https://github.com/RustyMods/MonsterDB/tree/main/MonsterDB/Wiki/Reference/Import

Clone this wiki locally