You are viewing a potentially older version of this package. View all versions.
sighsorry-DropNSpawn-1.2.7 icon

DropNSpawn

Easy way to configure all drops, spawns and events(raid) by reference system. Prevent high tier mobs spawning on low tier biomes. Make dungeon creaturespawners respawn. Multiple trophies and stacked drop instantly from creatures with linear scaling.

Date uploaded 2 days ago
Version 1.2.7
Download link sighsorry-DropNSpawn-1.2.7.zip
Downloads 70
Dependency string sighsorry-DropNSpawn-1.2.7

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333
JereKuusela-Expand_World_Data-1.66.0 icon
JereKuusela-Expand_World_Data

Allows adding new biomes and changing most of the world generation.

Preferred version: 1.66.0

README

DropNSpawn

Configure object and creature drops, object loot, spawners, and world spawning. Add stacked drops, level-scaled trophies, VNEI support, and location-scoped spawner rules.

Domains

Domain What it controls
character CharacterDrop loot, one-per-player drop counting, and drop-in-stack
object Containers, pickables, pickable items, fish, destructibles, mine rocks, trees, and object drop tables
spawner SpawnArea and CreatureSpawner tables, intervals, caps, level ranges, and location-scoped spawner rules
spawnsystem World SpawnSystem rows, biome rules, time-of-day rules, global-key gates, and extended spawn data

spawnsystem is a full replacement domain: the loaded rows become the live world spawn table. Keep every spawn row you still want.

Location

DropNSpawn no longer owns a user-editable DNS_location.yml domain. Boss altar, altar ItemStand, same-boss duplicate blocking, boss despawn, and boss-tamed pressure rules live in the standalone BossRules mod. DropNSpawn keeps internal location lookup helpers for object and spawner locations: selectors.

RuneStone global pins and Vegvisir rewards live in the standalone UsefulRunestones mod.

Character

  • configure creature loot
  • merge multiple conditional loot rows for the same creature
  • VNEI-compatible character drop display
  • drop creature loot in one stack when configured
  • onePerPlayer can count nearby living players within the configured range

Object

  • chest loot replacement
  • tool-tier and health changes for trees and rocks
  • tree or rock drop changes
  • pickable loot changes (bone piles, fish, berries)
  • destructible health and spawn-on-destroy changes
  • DNS_object.locations.reference.yml exists because many objects are dependent on locations

Spawner

  • change spawn tables
  • change spawn intervals, trigger distance, caps, level range, respawn time
  • apply location-scoped spawner overrides with top-level locations
  • ExpandWorldData compatible
  • DNS_spawner.locations.reference.yml exists because many spawners are dependent on locations

SpawnSystem

The vertical lines in the spawner image are world SpawnSystem checks.

  • biome/world spawn rules
  • global-key-gated spawning
  • time-of-day spawn rules
  • world-level conditional behavior
  • ExpandWorldData compatible
  • This domain is authoritative and replaces the live SpawnSystem table with the rows you define.
  • Above image explains how Valheim world spawning works.

Workflow

  1. Open BepInEx/config/DropNSpawn/.
  2. Use the generated .reference.yml files to find real prefab names and current values.
  3. Copy only the rows you want to change into DNS_<domain>.yml or DNS_<domain>_*.yml.
  4. Save the YAML file. DropNSpawn reloads loaded YAML at runtime.

Generated samples live in BepInEx/config/DropNSpawn/examples/. They are safe examples until you copy them into an active override file or rename them to a loaded DNS_<domain>_*.yml file.

YAML Files

Loaded override files:

  • DNS_<domain>.yml
  • DNS_<domain>.yaml
  • DNS_<domain>_*.yml
  • DNS_<domain>_*.yaml

Generated helper files:

  • DNS_<domain>.reference.yml shows current game data and prefab names.
  • DNS_object.locations.reference.yml shows which location roots contain object prefabs.
  • DNS_spawner.locations.reference.yml shows location context for spawner rules.
  • DNS_<domain>.full.yml is an exhaustive scaffold written by dns:full; it is not loaded.

Use one primary file per domain when possible. Supplemental files are useful for splitting large configs by biome, progression tier, or feature.

Reference Updates

Reference files are generated lookup snapshots. Missing reference files are created automatically, and existing reference files are updated automatically when their source game data changes.

Notes:

  • DNS_spawnsystem.reference.yml is generated from vanilla and upstream mod SpawnSystem data. DNS_spawnsystem.yml full overrides are not used as reference source data.
  • DNS_object.locations.reference.yml and DNS_spawner.locations.reference.yml are generated lookup files and are also kept up to date automatically.

Console Commands

  • dns:reference [object|character|spawner|spawnsystem|all] Regenerates reference files.
  • dns:full [object|character|spawner|spawnsystem|all] Writes non-loaded full scaffold files.
  • dns:inspect spawner Shows the current or nearest spawner target and resolved location selector context.

Useful Config

Most server-facing settings are synced from the server.

Domain toggles live under 4 - Domains:

  • Enable Object Overrides
  • Enable Character Overrides
  • Enable Spawner Overrides
  • Enable SpawnSystem Overrides
  • Enable Event Overrides

General and character settings include:

  • Lock Configuration
  • Default SpawnArea Max Total Spawns
  • Default zero CreatureSpawner respawn time minutes
  • OnePerPlayer drop check range
  • character loot system
  • disable DNS character loot scaling when CLLC is loaded
  • chance for additional loot per star for creatures
  • chance for additional loot per star for bosses
  • global drop in stack
  • global drop in stack blacklist
  • global trophy level multiplier
  • global trophy level multiplier blacklist

character loot system = CalculateChance keeps each successful character-drop chance intact and scales the final item amount by the configured per-star chance. Trophy drops join that same linear scaling only when global trophy level multiplier is on.

disable DNS character loot scaling when CLLC is loaded defaults to On. It does not rewrite the config values shown for DNS loot scaling; when Creature Level & Loot Control is installed, DNS treats character loot system, both per-star loot chance options, and global trophy level multiplier as inactive at runtime so CLLC can own loot quantities. YAML overrides, drop-in-stack, instant loot, and OnePerPlayer range still work.

Default zero CreatureSpawner respawn time minutes defaults to 0 and accepts 0~60; 0 disables the option. It changes only CreatureSpawner components whose current respawnTimeMinutes is 0; YAML creatureSpawner.respawnTimeMinutes values keep priority.

Event settings include:

  • Multiple events
  • Check per player
  • Default event player base
  • Minimum distance between events
  • Random event chance
  • Random event interval

Default event player base can globally treat events without YAML conditions.playerBase as Off, Away, Near, or AwayAndNear. YAML event overrides keep priority.

Boss altar rules, same boss duplicate blocking for altars and CreatureSpawner, per-player boss stones, remote Forsaken Power selection, boss despawn, and boss tamed pressure live in BossRules.

Compatibility

If another mod fully owns the same system, disable the overlapping DropNSpawn domain instead of stacking both.

  • VNEI: DropNSpawn character drops are exposed for normal lookup.
  • MonsterDB: overlaps with character and spawnsystem.
  • Drop That!: overlaps with object and character.
  • Spawn That!: overlaps with spawner and spawnsystem.
  • Expand World Spawns: overlaps with spawnsystem.

Helpful Mods

  • ESP for spawners, spawn points, and object info
  • XRayVision for object components
  • Infinity Hammer for placing and removing test objects

GitHub

https://github.com/sighsorry1029/DropNSpawn

CHANGELOG

Version Update Notes
1.2.7 - Added synced disable DNS character loot scaling when CLLC is loaded, which treats DNS character loot system, both per-star loot chance options, and global trophy level multiplier as inactive at runtime when Creature Level & Loot Control is loaded, while leaving YAML overrides, drop-in-stack, instant loot, and OnePerPlayer behavior active.
- Added a synced general option to set zero-minute CreatureSpawner respawn timers to a default 0-60 minute value unless YAML specifies creatureSpawner.respawnTimeMinutes; the default is 0, so the option is off until configured.
- Changed event reference generation to use the pre-DNS baseline event list and group entries by resolved spawn prefab owner, so removed event-providing mods disappear from generated references and mod-added events are easier to scan.
1.2.6 - Added synced events domain support with YAML-driven random event overrides, event spawns, global event settings, and reference output.
- Added character loot system with Vanilla and CalculateChance; CalculateChance keeps successful drop chances intact and scales final item amounts with separate creature/boss per-star chances.
- Kept global trophy level multiplier as the toggle that lets trophies join DNS linear level scaling, while avoiding vanilla exponential level multiplier stacks.
- Fixed EWD cloned location selectors by preserving exact clone prefab names through spawner provenance and shared location condition resolution.
- Added a synced global-key safety option that globally disables SpawnSystem entries with requiredGlobalKey in Meadows, BlackForest, Swamp, Mountain, or Plains.
1.2.5 - Breaking: DNS_location.yml is no longer generated, loaded, synchronized, or exposed through dns:reference / dns:full; BossRules and UsefulRunestones own the former location-domain features.
- Breaking: DNS_character.yml no longer supports despawn or bossTamedPressure; boss despawn rules, boss-tamed pressure, per-player boss stones, remote Forsaken Power selection, and CreatureSpawner same-boss duplicate blocking moved to BossRules.
- Added synced monster instant loot drop config that spawns monster loot immediately while ragdolls keep their vanilla lifetime.
- Changed global trophy level multiplier to scale successful trophy drops by 50% per extra creature level while avoiding vanilla exponential trophy stack scaling.
- Removed runtime work profiler/debug hot-path logging and the Debug Runtime Work Profiling config to reduce overhead.
- Updated Thunderstore description; DropNSpawn still keeps internal location lookup helpers for object/spawner locations: selectors.
1.2.4 - Fixed RuneStone global pins on dedicated servers by resolving location targets on the authoritative server and returning the selected pin to clients.
- Fixed Same Boss Duplicate Block for CreatureSpawner so duplicate-blocked bosses do not finish their respawn delay while the previous boss is still alive.
- CharacterDrop now supports non-item prefabs, such as monster prefabs, in reference/override YAML and VNEI display. Non-item drops default levelMultiplier to false; item drops keep the vanilla-style default of true.
1.2.3 - Added Vegvisir global effects with biome-based weighted status rewards, optional FX, localization, and DNS_ClearStatus.
- Breaking: removed location vegvisirs pin-edit fields and location runestones edit/reference fields; Vegvisirs keep vanilla pins and RuneStone location reveals use runestoneGlobalPins.
- Historical note for 1.2.3 users: regenerate DNS_location.yml on a new profile, or regenerate the current file if it was not edited.
- Breaking: spawner location filters now use locations: [] instead of location: and can match multiple locations.
- Added global trophy level multiplier config with blacklist support.
- Reference files now auto-update; SpawnSystem reference is generated from vanilla and upstream mod data, not DNS override YAML.
- Removed manual reference update mode, old diagnostics logging options, afternoon timeOfDay support, and the OnePerPlayer living-player toggle; nearby OnePerPlayer checks now count living players only.
- Cleaned config ordering, transport sync, and runtime queue performance.
1.2.2 - Refactoring and optimizations
1.2.1 - Added RuneStone global pins, allowing pinless RuneStones to reveal a saved map pin for a configured location.
- Added SpawnArea total spawn limits, allowing spawners to automatically break after a set number of successful spawns.
1.2.0 - VNEI shows fish's random loot with DNS installed
1.1.9 - Vegvisir supports weighted random location pinning. Put weight: n on vevgisir.locations in locations.yml
1.1.8 - Boss despawn when no player is near(configurable)
- Boss despawn refund offerings when they are stated in the character.yml
Block summon and spawn of more than one boss wihtin the area(configurable)
- Organized configs and refactored some codes for better performance
- Better support for EWD fields
1.1.7 - Fixed boss trophy sacrificing
- Fixed forsaken rotation making UI too often
1.1.6 - Optimized objectdrop hotpath
- Fixed bossstone reset command not working on host self
1.1.5 - Refactored huge amount of codes
- Removed cllc fields since it can be done with ewd field
- Added rotation of forsaken powers
- Added per player bossstones option
1.1.4 - Fixed destructibleType field casuing framedrop when it is in object override.yml
1.1.3 - Fixed EWD clone locations not working as conditions for character,object and spawner domain
1.1.2 - Fixed location domain triggering errors related monstrum locs
1.1.1 - Spawnsystem reference would be generated through command only
- Lightened up how spawnsystem domain works
- Fixed serversync not working for spawnsystem on dedi for real
1.1.0 - Ligthened some queue logic for some domains
1.0.9 - Fixed framedrop with treebase/minerock health override
- Fixed spawnsystem reference not generating automatically sometimes
1.0.8 - Fixed spawnsystem serversync not working on some clients on dedi
1.0.7 - Fixed creaturespawner edit not working on dedi
1.0.6 - Fixed cloned location not working with dns location conditions on dedi
- Fixed spawners not working with location conditions on dedi
1.0.5 - Fixed serversync not working on some domains
- Fixed cloned location not being applied in override yml
- Fixed custom biome spawnsystem lines being not shown through ESP
- VNEI compatibility is now always live
- Performance and network performance improvement
1.0.4 - Support for custom EWD biomes on all domains and conditions
1.0.3 - Improved reference grouping and fps
1.0.2 - Lightened spawnsystem check and other domains to reolve hitch
1.0.1 - Resolved hitch that was caused by deleting obsolete spawnsystem lines
1.0.0 - Initial Release