warpalicious-Procedural_Roads icon

Procedural Roads

Adds procedurally generated roads to your Valheim world.

Last updated a day ago
Total downloads 281
Total rating 6 
Categories Mods Server-side Client-side World Generation
Dependency string warpalicious-Procedural_Roads-1.1.0
Dependants 0 other packages depend on this package

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
ValheimModding-Jotunn-2.27.1 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.27.1

README

Procedural Roads

Procedural Roads

Generates a network of roads throughout the Valheim world. Increases world generation time.

Features

  • Adds road networks throughout the world.
  • Configurable road amount and width.
  • Roads are generate per island. To increase the amount of roads in the world increase the percentage of total islands you would like to generate roads.
  • API for mod developers to register their locations for road network connection.
  • Support for custom locations from Expand World Data or other mods.
  • Required on both client and server.

Road generation process

  • Road generation starts after all locations have been placed.
  • First we detect all the islands in the world.
  • Get the users island percentage config, i.e if 50% islands then we select 50% of total islands to give roads.
  • For each selected island, we select generate a road network within the island locations.
  • Within the island, we find locations and build a network of roads between them. Some locations are prioritized over others, such as bosses and dungeons. Some locations are excluded entirely.
  • Once we have locations, pathfind between the locations using A* pathfinding, avoiding rivers, steep slopes, and water.
  • Once road is defined, paint the road as stone path or dirt path. Then smooth each point of the road to fit the surrounding terrain.

Instructions

  • Roads will automatically generate for new worlds.
  • Please make a backup before adding roads to an existing world!
  • To add roads to an existing world, use the road_generate command shown below. You can validate using the road_pins command to see where roads were placed. Then you can use road_clearpins to remove the road_pins on your map.
  • Please note, I have not done extensive testing on how roads impact terrain within or around player builds. Roads could potentially generate directly through an existing build.

Console Commands

All commands require cheats enabled (devcommands).

Command Description
road_generate Generate roads for an existing world. Use after adding mod to an existing save.
road_pins Place map pins at road start points for visualization.
road_islands Detect islands and place pins at their centers. Optional args: [cellSize] [minCells]
road_clearpins Remove all map pins added by ProceduralRoads.
road_debug Show road point info near player position (for troubleshooting terrain issues).

Known issues

  • I occasionally see some incorrect road smoothing and you will likely find it eventually. It's not horrible but I'm still working on trying to fix the underlying cause of it.

Donations/Tips

I make mods because I enjoy it and want to make Valheim more enjoyable for everyone. If you feel like saying thanks you can tip me here.

My Ko-fi: ko-fi

Source Code

Source code is available on Github.

Github Repository: Procedural Roads