You are viewing a potentially older version of this package. View all versions.
VentureValheim-Venture_Location_Reset-0.10.2 icon

Venture Location Reset

Automatically reset Dungeons, Locations, and Leviathans with a customizable in-game day rate. Inspired by DungeonReset mod by Tekla.

Date uploaded 10 hours ago
Version 0.10.2
Download link VentureValheim-Venture_Location_Reset-0.10.2.zip
Downloads 253
Dependency string VentureValheim-Venture_Location_Reset-0.10.2

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202
ValheimModding-Jotunn-2.21.3 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.21.3

README

Venture Location Reset

Created by [email protected].

Introduction

Automatically reset Dungeons, Locations, and Leviathans with a customizable in-game day rate. Inspired by DungeonReset mod by Tekla.

Features

Resets dungeons/locations when a player approaches them given the player is hosting the chunk and there is no "player activity" nearby. Locations will not reset until the second time it is visited with this mod installed given the ResetTime has been reached. For example, if you install this mod then visit a burial chamber on Day 100 it will not reset until visited on or after day 130 (given the default reset time is 30). Similarly, this mod has the ability to reset Leviathans in their original spawn locations.

Player activity includes:

  • A Player has built anything near the entrance to or inside the location
  • There is a Tombstone near the entrance to or inside the location
  • There is a Player inside the location

There are advanced options in the config file to set individual reset times for certain locations. To use the advanced options set OverrideResetTimes to true, you must then customize all overridden values. Any locations not specified in the config will use the default value and cannot be changed individually. If you do not want specific locations to reset you can set the reset time to an arbitrarily large value like 100000, or any value that will be greater than the number of expected passed in-game days.

Console Commands

To perform a manual reset use the "resetlocations" command. To specify a range use a whole number: "resetlocations 10". Maximum range for the manual reset command is 100 and defaults to 20. Manual resets will ignore time and Player activity restrictions specified above. This can cause loss of player built structures and tombstones. PLEASE USE WITH CAUTION.

Don't know how to use commands? Dedicated servers do not allow for use of commands, but there are mods that can enable them (like Server devcommands by JereKuusela). The command added by this mod is considered a "cheat". To use cheats you must enable them with the "devcommands" command, you may have to be an admin for them to work depending on what mod you use to access commands.

Locations Supported

"Sky locations" are any dungeon or location that is generated suspended in the sky in the game. If the location has a teleporting feature it probably is located in the sky. The following are considered "sky locations":

  • Troll Caves
  • Burial Chambers
  • Sunken Crypts
  • Frost Caves
  • Infested Mines/Citadel

"Ground locations" are every other type of location in the game. This mod supports resetting all kinds of ground locations including abandoned buildings, shipwrecks, infested trees, tar pits, etc. If you do not want to reset ground locations set ResetGroundLocations to False. This will not apply for meadows farms/villages or fuling camps as those locations are considered dungeons and are in a separate category.

If you are using another mod that adds custom locations or dungeons you may see this mod behave unexpectedly. If you would like support added for another mod please reach out to me in my discord (link below).

Skip Player Ground Piece Check

If you want "sky locations" to reset even if players have built/died around the entrance set the SkipPlayerGroundPieceCheck config to true. This will change the logic to check only for activity inside the sky location. This check will always occur for ground locations, you cannot disable it for them. The check for player activity is dependant on the size of the location, bigger dungeons will have a wider range for the activity check. If you suspect the mod is not working as intended it might be due to this player activity check, test the reset on a new area where no player has built to ensure the mod is working as intended.

Expand/Collapse Hildir Note (Spoilers!)

You may notice that Sealed Towers (Hildir plains dungeon) are not resetting. There is an exception in place just for this location as of version 0.10.2. It will reset unless there is a crafting station or a fireplace placed by a player in range. When you are finished at the tower be sure to remove these pieces to enable resetting. Your placed pieces must be about 16 meters away from the tower itself, or about 8 wooden walls length to avoid being deleted. If you do not see a log line like "Done regenerating location Hildir_plainsfortress ..." then it did not reset. Turn on bepinex debug logs to see more detailed information.

Skip Resetting Certain Locations

There is a config called IgnoreList in the configuration file in which you can specify locations NOT to reset separated by commas, for example: StartTemple, Eikthyrnir, WoodHouse6. To see a list of all location names you can see them on the Jotunn Modding Wiki.

Leviathans

Leviathans will respawn in their original locations when resetting is enabled given there are none found in the zone. When causing a Leviathan to dive after mining the "leave" time will be recorded as the "visited" day, and the Leviathan will not delete itself as it does in vanilla. Upon reloading a zone the Leviathan will appear again on the surface unchanged from when last visited. Once a reset time has been reached the leviathan will delete itself upon the next time it is loaded. Currently you must reload the zone after a Leviathan is deleted to get them to respawn.

This feature may impact performance more so than resetting dungeons and Locations. If you have performance issues with this mod consider disabling Leviathan resetting when you do not need it on.

Limitations

Due to loading times and the very random nature of the world spawning system there may be cases where this mod behaves strangely.

  • Two locations spawned on top of each other will delete parts of the other during regeneration.
  • Resets can potentially remove some things around the ground of the location that are not respawned like berry bushes, logs, and large rocks.
  • Item duplication should not happen, but is possible if timing conditions are right. If you can consistency reproduce duplication issues please report the problem.
  • If you move very fast (or admin fly) through an area you may see locations change as they regenerate, especially noticeable in the plains. If you move too fast through an area while triggering a reset you can cause item duplication.
  • When a new zone or location is loaded there is an expected small lag spike. This happens in vanilla already, but might also be noticeable when this mod is performing a reset.
  • Dungeons with radial camps (like Fuling camps) will be randomized every reset due to the generation algorithm.

Other Mod Support

If set up correctly by the mod author this mod should successfully regenerate all custom locations and dungeons. There are cases where this mod may behave strangely. Please report any issues you may encounter when using custom locations.

The following locations from other mods are excluded from resetting to prevent issues:

  • Monsterlabz: Mystical_Well0
  • Wayshrine by Azumatt: Wayshrine, Wayshrine_Ashlands, Wayshrine_Frost, Wayshrine_Plains, Wayshrine_Skull, Wayshrine_Skull_2

When using the mod "Dungeon Splitter" by JereKuusela all sky location resetting will be disabled for compatibility reasons. If you still wish to reset sky locations you will have to use Jere's server side mods for that. Resetting leviathans and ground locations will still work as expected.

Installation

This mod needs to be on the client, it will work even if other players do not have it installed but may behave unexpectedly when playing around other players without the mod. For best results have everyone install the mod. Config Syncing is included with Jotunn. Install on the server to enforce the same mod configuration for all players. Live changes to the configurations should take immediate effect.

Changelog

Moved to new file, it will appear as a new tab on the thunderstore page.

Contributing

All issues can be reported on the project Github. To report issues please be as specific as possible and provide the following:

  1. Version of this mod you are using.
  2. List of the other mods being used.

All feedback, ideas, and requests are welcome! You can message me at my discord Venture Gaming.

CHANGELOG

0.10.2

  • Added logic to reset Sealed Towers with player built pieces unless there is a crafting station or fireplace piece in range.

0.10.1

  • Update for game version 0.219.13.

0.10.0

  • Added new configuration IgnoreList to specify locations to not reset.

0.9.1

  • Blacklisted random flying birds from being reset - they tend to gather in large numbers and I think are plotting something.
  • Added additional configurations for setting reset times of Ashlands locations: CharredFortress, LeviathanLava, MorgenHole, PlaceofMystery

0.9.0

  • Update for Ashlands game version 0.218.15.
  • Locations resets will now also reset any terrain modifications in their radius.

0.8.2

  • Update for game patch 0.217.46

0.8.1

  • Added compatibility for the "Dungeon Splitter" mod, will not reset sky locations when using it.

0.8.0

  • Improved resetting logic for sky locations:
    • Can now auto-detect if a location is a sky location, improves other mod compatibilities
    • Can now additionally reset the ground outside a sky location
    • Better bounds detection for all locations
    • Improved performance for door resetting
  • Added support for resetting "Destructable" and "MineRock(5)" objects. This includes trees, rocks, ores, and mistlands giant mineables
  • Improved error handling

0.7.0

  • Added support for Mining Caves
  • Added support for all Wayshrines and Mystical_Well0, these will never reset to prevent issues
  • Added new console command "resetlocations" with optional range parameter
  • Small bug fix where a respawn would apply the wrong rotation to some objects (Quaternion math is special and I'm apparently dyslexic)

0.6.1

  • Added support for CaveDeepNorth_TW from Therzie's Warfare mod

0.6.0

  • Added Jotunn library as new dependency for config syncing, you now must also install Jotunn for this mod to work

0.5.1

  • Fixed configs not selecting the correct reset times and just using default
  • Added advanced configs for new Hildir's Request dungeons

0.5.0

  • Update for game patch version 0.217.14 (Hildir's Request)
  • Internal code refactor to simplify resetting, now auto-detects dungeons and all reset tracking moved to LocationProxy object
    • Improved compatibility for custom dungeons from other mods (does not apply for non-dungeon sky locations)
    • You will lose reset times on all dungeons when upgrading, they will be treated as if the mod was newly installed
  • Bug fix for frost caves and mistlands dungeons regenerating with different seeds
  • Reworked resetting logic of leviathans to only happen if the player is the "chunk owner" (similar update happened in 0.3.1)
  • Added ItemDrop to recognized type for resets, this will now delete and respawn things you can throw on the ground
  • Extended the range of triggering resets to 100 meters for all locations and dungeons (sky locations previously 30)

0.4.0

  • Update for game patch 0.216.9
  • Bug fix for multiple leviathans spawning in the same place in multiplayer (needs extra testing)
  • Bug fix for ground locations not detecting player built pieces correctly (incorrect radius check)

0.3.1

  • Reworked resetting logic of dungeons and locations to only happen if the player is the "chunk owner". Should fix a bug where reset times were not being recorded correctly and caused multiple resets to happen in a short amount of time
  • Added a redundant error check to ensure a reset does not happen unless the reset time is set properly

0.3.0

  • Small optimization to the reset timing for dungeons and locations, now checks the area is ready before performing a reset - should help reduce small duplication errors
  • Major addition of Leviathan Resetting with new configs! (defaults to on! be aware when you upgrade the mod)

0.2.3

  • Changed how zone centers of locations are determined to improve accuracy of location deletion
  • Removed the ModEnabled config since it doesn't really do anything important

0.2.2

  • Fixed issue with multiplayer sessions triggering multiple resets due to reset day not being recorded correctly, plus more internal error checking
  • Changed how zone sizes of locations are calculated to improve accuracy of location deletion
  • Added resetting for doors that require keys to open (sunken crypts and citadel, should support custom content)
  • Added missing wear and tear damage to resetting dungeons

0.2.1

  • Added mod support for Monsterlabz and Horem's locations.

0.2.0

  • Added support for resetting all kinds of ground locations including villages and fuling camps
  • New config option to toggle resetting ground locations (defaults to on! be aware when you upgrade the mod)
  • New config options for specifying reset times for different dungeons

0.1.2

  • Patch for object deletion to hopefully solve a multiplayer deletion issue.

0.1.1

  • Added a new config option SkipPlayerGroundPieceCheck
  • Please note I forgot to bump the version number for this release.

0.1.0

  • First release