Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
DropNSpawn
Configure all drops, spawns and boss locations. Remote selection of forsaken powers. Hover an altar to see the offering and summonable boss. Boss despawn rules. RuneStones can work like Vegvisirs. Vegvisir supports weighted random location pinning.
| Date uploaded | 3 weeks ago |
| Version | 1.2.2 |
| Download link | sighsorry-DropNSpawn-1.2.2.zip |
| Downloads | 106 |
| Dependency string | sighsorry-DropNSpawn-1.2.2 |
This mod requires the following mods to function
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.2333JereKuusela-Expand_World_Data
Allows adding new biomes and changing most of the world generation.
Preferred version: 1.63.0README
DropNSpawn
Configure Valheim drops, spawns, and boss-location behavior with server-synced YAML.
DropNSpawn is split into five domains. Each domain can be enabled or disabled separately, which makes it easier to coexist with other mods that own the same runtime systems.
Domains
| Domain | What it controls |
|---|---|
location |
Boss altars, altar item stands, Vegvisirs, RuneStones, and RuneStone global pins |
character |
CharacterDrop loot, one-per-player drop counting, drop-in-stack, despawn rules, and boss-tamed pressure |
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

Specific for boss-related locations
- boss altar behavior (Harder boss at night, boss respawn cooldown and so on)
- slot-specific
ItemStandrestrictions (Change offerings) - Vegvisir target or presentation changes (change icon and the location it points to)
- Hover on altar to see the offerings and boss. (serversync)
Character

- Configure creature loot to your liking
- merge multiple conditional loot rows for the same creature (VNEI compatible)
- Check various conditioned examples on the config/DropNSpawn/examples
- Mobs can drop loots in one stack.
Loot per personchecks configured range instead of whole world.
Object

- chest loot replacement
- tooltier, health change for trees and rocks
- tree or rock drop changes
- pickable loot changes (bonefiles, fish, berries)
- destructible health and spawn-on-destroy changes
DNS_object.locations.reference.ymlexists 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
location - ExpandWorldData compatible
DNS_spawner.locations.reference.ymlexists because many spawners are dependent on locations
SpawnSystem
You can see many vertical lines on above image. Those are SpawnSystems
- biome/world spawn rules
- global-key-gated spawning
- time-of-day spawn rules
- world-level conditional behavior
- ExpandWorldData compatible (Same system with ExpandWorldSpawn just that format is different)
- This domain is authoritative and replaces the live
SpawnSystemtable with the rows you define.
- Above image is explanation of how spawnsystem works in valheim
Workflow
- Open
BepInEx/config/DropNSpawn/. - Use the generated
.reference.ymlfiles to find real prefab names and current values. - Copy only the rows you want to change into
DNS_<domain>.ymlorDNS_<domain>_*.yml. - 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>.ymlDNS_<domain>.yamlDNS_<domain>_*.ymlDNS_<domain>_*.yaml
Generated helper files:
DNS_<domain>.reference.ymlshows current game data and prefab names.DNS_object.locations.reference.ymlshows which location roots contain object prefabs.DNS_spawner.locations.reference.ymlshows location context for spawner rules.DNS_<domain>.full.ymlis an exhaustive scaffold written bydns: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 Update Mode controls generated reference files.
AutoUpdate: creates missing reference files and updates most existing reference files automatically.ManualUpdate: creates missing reference files, but updates existing reference files only when you rundns:reference.
Notes:
DNS_spawnsystem.reference.ymlis manual only. Rundns:reference spawnsystem.DNS_spawner.locations.reference.ymlis auto-created when missing, but not auto-updated afterward.
Console Commands
dns:reference [object|character|spawner|location|spawnsystem|all]Regenerates reference files.dns:full [object|character|spawner|location|spawnsystem|all]Writes non-loaded full scaffold files.dns:inspect spawnerShows the current or nearest spawner target and resolved location selector context.dns:inspect bossstoneShows per-player boss stone state for the aimed target.dns:bossstone reset <exactPlayerName>Admin command that resets per-player boss stone state for one player.
Useful Config
Most server-facing settings are synced from the server.
Enable Object OverridesEnable Character OverridesEnable Spawner OverridesEnable Location OverridesEnable SpawnSystem OverridesDefault SpawnArea Max Total SpawnsAfternoon Start FractionEnable Runestone Global PinsShow LocationProxy Offering Bowl Hover InfoPer Player Boss StonesRemote Forsaken Power SelectionEnable Boss Tamed PressureEnable Same Boss Duplicate BlockDefault Despawn RangeDefault Despawn Delay SecondsGlobal Drop In StackDrop In Stack BlacklistOne Per Player Nearby RangeOne Per Player Nearby Range Living Players Only
Client-only settings include Reference Update Mode, diagnostics toggles, and Rotate Forsaken Power Shortcut.
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.CLLC: CLLC effects can be used in supported character and spawn conditions/modifiers.MonsterDB: overlaps withcharacterandspawnsystem.Drop That!: overlaps withobjectandcharacter.Spawn That!: overlaps withspawnerandspawnsystem.Expand World Spawns: overlaps withspawnsystem.Spawner Tweaks: usually compatible, but disable overlapping DropNSpawn domains or Spawner Tweaks features when both edit the same object, altar, item stand, spawn point, or spawner.
Helpful Mods
ESPfor spawners, spawn points, and object infoXRayVisionfor object componentsInfinity Hammerfor placing and removing test objects
Github
CHANGELOG
Version |
Update Notes |
|---|---|
| 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. ※※※ Regenerate dns.locations.yml on new profile and check the new format. Or you can just regenerate your current dns.locations.yml if you have not edited any ※※※ - 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 |