ProceduralStages
Adds dynamically generated stages to Risk of Rain 2. Discover procedurally generated stages featuring 7 distinct terrain types alongside 5 captivating themes to explore. Now with 2 new terrain types.
Date uploaded | 4 months ago |
Version | 1.16.0 |
Download link | Lawlzee-ProceduralStages-1.16.0.zip |
Downloads | 5321 |
Dependency string | Lawlzee-ProceduralStages-1.16.0 |
This mod requires the following mods to function
bbepis-BepInExPack
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.4.2108Rune580-Risk_Of_Options
A convenient API for adding BepInEx ConfigEntry's to a option menu
Preferred version: 2.7.0README
Procedural Stages
Procedural Stages replaces conventional static terrains with procedurally generated environments, offering a fresh and varied experience with each stage while striving to maintain the familiar feel of vanilla stages.
Features
- Diverse Terrain Types: Explore islands, open caves, twisted canyons, basalt isle tunnel caves, temple and block maze, each dynamically generated for a fresh adventure.
- Dynamic Map Themes: Experience different visual themes with every stage, including Plains, Desert, Snow, Void, Mushroom, and the old "random" theme.
- Balanced Gameplay: Despite the procedural generation, the stages are balanced to feel like vanilla stages.
- Multiplayer Support: Enjoy the procedural adventure with friends.
- Integration with Simulacrum: Seamlessly compatible with Simulacrum.
- Adaptive Map Size: The map dynamically adjusts in size based on the stage number.
- Dynamic Map Themes: Experience different visual themes with every stage.
- Stage-Specific Interactables: Encounter stage-specific elements such as pressure plates, timed security chests, legendary chests, and the stage 4 alloy vulture nests.
- Random Decoration Placement: Discover unique environments with randomly placed decorations.
- Randomized Enemy Pool: Experience a dynamically curated assortment of enemies.
- Varied Music Selection: Immerse yourself in randomly selected music tracks.
- Teleport To Playable Area button: Added a "Teleport To Playable Area" button in the pause menu. This button allows players to escape from being stuck in inaccessible areas, such as holes or glitches, by instantly teleporting them back to a playable area.
- Support for 'Judgement' Mod: Compatible with the
Judgement
mod.
Stages
Each stage is randomly generated, featuring unique terrain types and themes:
- Terrain Types: Encounter islands, open caves, twisted canyons, basalt isle, tunnel caves, temple and block maze.
- Themes: Experience various visual themes including Plains, Desert, Snow, Void, Mushroom, and the classic "Random" theme.
Screenshots
Temple map with the plains theme
Twisted canyons map with the desert theme
Open cave map with the void theme
Basalt isle map with the snow theme
Block maze map with the mushroom theme
Twisted canyons map with the snow theme
Tunnel cave map with the mushroom theme
Temple map with the snow theme
Islands map with the mushroom theme
Basalt isle map with the desert theme
Twisted canyons map with the plains theme
Tunnel cave map with the void theme
Tunnel cave map with the snow theme
Islands map with the void theme
Open cave map with the snow theme
Block maze map with the void theme
More screenshots are available here.
Videos
Below are several videos that demonstrate the mod in action:
Configuration
You can edit the configuration in Settings > Mod Options > ProceduralStages
. All configurations can be adjusted at any time, even in the middle of a run. In multiplayer, the host's configuration is used.
Category | Name | Default value | Description |
---|---|---|---|
Configuration | Infinite map scaling | Disabled | If enabled, the stage size scaling will not be reset every loop. Exercise caution when utilizing this feature, as it may lead to increased map generation time and a decrease in framerate. |
Performance | Occlusion culling frame delay | 6 | The number of frames between each occlusion culling check impacts performance. A shorter delay decreases FPS, while a longer delay causes decorations to flicker more when moving quickly. The game operates at 60 frames per second. Any changes to this configuration will take effect at the start of the next stage. |
Themes | <Theme> spawn rate |
See table below | Specifies the percentage of stages that will be generated with the <theme> theme. |
All Stages | <Terrain type> map spawn rate |
Varied | Sets the overall percentage of stages that will feature the <Terrain type> terrain type. Adjusting this value will automatically update the spawn rates for this terrain type in each individual stage. |
Stage [1,5] |
<Terrain type> map spawn rate |
See table below | Specifies the percentage of maps that will be generated with the <Terrain type> for stage 1. If the total percentage for stage X is less than 15% , normal stages may also spawn. If the total percentage for stage X is 0%, only normal stages will spawn. |
Debug | Stage seed | Specifies the stage seed. If left blank, a random seed will be used. |
Themes
Theme | Default spawn rate |
---|---|
Desert | 18 % |
Snow | 18 % |
Void | 18 % |
Plains | 18 % |
Mushroom | 18 % |
Legacy Random | 10 % |
Terrain types
Here are the default spawn rates for all terrain types:
Stage | Open Caves | Tunnel Caves | Lonely Island | Twisted Canyons | Basalt Isle | Temple | Block maze |
---|---|---|---|---|---|---|---|
Stage 1 | 5% | 5% | 25% | 10% | 25% | 25% | 5% |
Stage 2 | 25% | 25% | 5% | 10% | 5% | 5% | 25% |
Stage 3 | 10% | 10% | 15% | 25% | 10% | 15% | 15% |
Stage 4 | 15% | 5% | 20% | 10% | 10% | 20% | 20% |
Stage 5 | 15% | 25% | 5% | 20% | 25% | 5% | 5% |
Troubleshooting
If you encounter any issues with the stage not loading or not loading properly, try creating a new, fresh profile with the same mods. This solution has resolved the issue for multiple users.
Alternatively, you can create a new profile with only procedural stages installed and then add your other mods one by one. This method can help identify any compatibility issues.
Report an issue
If you encounter any issues, feel free to reach out to me on Discord (@Lawlzee) or create a GitHub issue. Please include your log file; it is really useful for troubleshooting.
Credits stuff
Stage number | Interactable credits | Monster credit |
---|---|---|
1 | 225 | 150 |
2 | 300 | 180 |
3 | 375 | 210 |
4 | 425 | 240 |
5 | 500 | 270 |
Algorithms used
This section includes the algorithms utilized for implementing procedural terrain generation. If you are not a programmer, feel free to skip this section.
CHANGELOG
1.20
- Prop Rendering Fix: Resolved an issue where props would occasionally fail to render.
- Lunar Fields Gravity Adjustment: Updated the gravity in Lunar Fields to match the vanilla moon's gravity.
- Procedural Stage Command: Introduced the
ps_set_stage
command to allow switching between procedural stages.- Syntax:
ps_set_stage <terrain_type> <theme> <stage_count>
. - Available terrain types:
Random
,OpenCaves
,Islands
,TunnelCaves
,Mines
,Basalt
,Towers
,Temple
,Moon
, andPotRolling
. - Available themes:
Random
,LegacyRandom
,Desert
,Snow
,Void
,Plains
, andMushroom
.
- Syntax:
- Lighting and Fog Adjustment: Improved lighting and fog settings to brighten the stage.
1.19
- Added compatibility to Seekers of the Storm
1.18
- Minimum Stage Completion Configuration: Added an option to set a minimum number of completed stages before procedural stages can spawn.
- Terrain Repetition Control: Introduced a configuration option to prevent the repetition of terrain types in each loop.
- Public Gauntlet Mod Compatibility: Added support for the Public Gauntlet mod.
1.17.3
- Lunar Fields Multiplayer Fixes:
- Resolved terrain desync issues between players.
- Fixed the Mithrix fight issues.
- Antigravity bubbles now extend for all players when pillars are charged.
- Fixed the issue of lunar golems not spawning.
- Prop Synchronization: Props are no longer desynced between players in multiplayer.
- Lunar Fields Music Update: Lunar Fields now uses the same music as the vanilla moon stage.
1.17.2
- Fixed lag spikes during the Mithrix fight by simplifying the air node graph. This should also improve the performance of pathfinding for flying enemies.
1.17.1
- Fixed "Lunar Fields" not loading
1.17
- Introducing Lunar Fields Terrain: This new terrain type, "Lunar Fields" replaces the previous moon terrain. In this stage, players traverse antigravity force fields between gravity spheres to charge the pillars. The number of pillars and the spawn rate of the stage are configurable.
- Varied Island Rocks: Enhanced the appearance of rocks on island stages to reduce uniformity.
1.16
- Enhanced Outer Map Areas: On Lonely Island, Basalt Isle, and Temple terrain types, islands will now be generated on the map's periphery, making these areas more interesting.
- Theme Spawn Rate Configuration: Added a configuration option to adjust theme spawn rates.
- Unified Terrain Spawn Rate Configs: Introduced configurations to adjust terrain spawn rates for all stages simultaneously.
- Improved Ground Graph Generation: Rewrote the ground graph generation algorithm to enhance ground enemy pathfinding and reduce the likelihood of interactables spawning within decorations like trees.
- Multiplayer Terrain Sync Fix: Fixed an issue in multiplayer where the host's terrain type configuration was not correctly synced with other players, causing discrepancies in terrain.
1.15
- New Terrain Type: Temple: Introducing a circular ruin as a new terrain type.
- New Terrain Type: Block Maze: Added a blocky maze as a new terrain variant.
- Enhanced Open Caves: Open caves now feature varied topography instead of being flat, making the caves more interesting.
- Volcanic Particles: Added volcanic particles to the basalt isle's volcano for enhanced visual effects.
- Improved Footstep Sounds: Walking now produces sounds based on the material you are walking on, resolving the
X is missing surface def
log issue.
1.14
- Basalt Isle Cave: The basalt isle now features a guaranteed cave leading to the center of the central mountain.
- Rocky Island Walls: Enhanced the island walls to appear more rocky and realistic.
- Stalactites in Caves: Added Stalactites to open caves ceilling.
- Stage Shadows: Added shadows to the stages for improved visual depth.
- Decoration Pop Fix: Resolved an issue where decorations would pop when close to the camera.
- Occlusion Culling Configuration: Introduced a configurable delay for occlusion culling.
- White Triangle Flicker Fix: Fixed the issue causing a flickering white triangle.
- Enemy Pool Fix: Corrected an issue where enemies were being selected for the pool before reaching the minimum stage required for them to spawn. This resolves the problem of having too few monster types in the enemy pool.
1.13
- Basalt Isle: Introducing a new stage type named Basalt Isle.
- Stage Generation Performance: Improved map generation by ~2x
- Enhanced Visuals: Detailed textures and refined blending techniques for improved visual aesthetics.
- Theme Enhancements: Tweaked the textures and color palettes for better visuals.
- Culling Issue: Fixed an issue where decorations would be culled when underwater.
- Enemy Pool Fix: Addressed an issue where an enemy could be selected multiple times in the enemy pool, causing enemies to be less varied.
1.12
- New Themes: Introduced five new themes: Plains, Desert, Snow, Void, and Mushroom. The old "random" theme will still be able to spawn.
- Stage Size Adjustments: Balanced the sizes of different stages. Increased the size of Islands and Open caves, while reducing the size of tunnel caves and Twisted canyons.
- Theme-based Updates: Altered stage names, descriptions, and dream messages to match the terrain type.
- Texture Enhancement: Improved the quality of textures across the board.
- Compatibility Fixes: Addressed compatibility issues with Starstorm 2.
- Removed dependency: Removed dependency on
R2API.Language
.
1.11
- Twisted Canyons Stages: Introducing a new stage type featuring twisted canyons.
- Teleport To Playable Area button: Added a "Teleport To Playable Area" button in the pause menu. This button allows players to escape from being stuck in inaccessible areas, such as holes or glitches, by instantly teleporting them back to a playable area.
- Increased Water Level: In the tunnel caves stages, the water level has been raised.
- Post Processing in Water: Enhancements have been made to the visual effects within the water.
- Improved Cave Shapes: The shapes of caves in the tunnel caves stages have been improved.
1.10
- Configurable Terrain Spawn Rates: Spawn rates for different terrain types can now be customized for each stage (1 to 5) of the game. The lunar seers will also utilize these spawn rates to determine the destinations.
- Lunar Seers Terrain Choice: The lunar seers in the bazaar will now display the terrain type of procedural stages.
- Multiplayer Terrain Synchronization Fix: An issue where the terrain would differ slightly between players in multiplayer mode has been resolved.
- Host Mod Configuration in Multiplayer: In multiplayer mode, the host's configuration will now apply to all players.
1.9
-
Tunnel Caves Addition: Introduced tunnel caves, reminiscent of Minecraft's spaghetti caves.
- Tunnel caves now have a 25% chance of spawning.
- Open caves also now have a 25% chance of spawning.
- These caves are currently experimental and may exhibit peculiarities. Expect interactables to spawn in unusual locations. Players might encounter getting stuck in holes, necessitating the use of 'no clip' mode to escape. This issue will be addressed in a future update.
-
Music Fix: Rectified occasional issues with music not playing during teleporter events.
1.8
- Overhauled overworld maps to resemble islands.
- Introduced water puddles to cave stages.
- Addressed a bug where teleporters and interactable objects failed to spawn in island maps.
- Added an option to prevent the stage size scaling from resetting after each loop.
- Added an option to specify the stage seed.
1.7.2
- Fixed decoration not rendering/flickering (for real this time).
1.7.1
- Fixed decoration not rendering/flickering.
- Decreased overworld map size.
- Raised the height threshold for teleportation out of the map zone.
- Fixed missing collisions.
1.7
- Overworld Map Type: A new map type, the overworld map, has been added. Now, 50% of the generated maps will be overworld maps.
- Performance Enhancement: Occlusion Culling: Performance has been improved by implementing occlusion culling. This should lead to a significant increase in frames per second (fps), potentially doubling the previous performance.
- Improved Air Graph: Enemies are now capable of flying over obstacles and pursuing the players even on top of walls.
1.6
- Stage 2 Pressure Plate Mechanic: Stage 2 of the game will now have a 33% chance to include a pressure plate mechanic similar to the one found in Abandoned Aqueduct. Activating two pressure plates will spawn two Elite Elder Lemurians, each dropping a Kjaro's Band and a Runald's Band.
- Stage 3 Changes:: Stage 3 now has a 33% chance to include a Timed Security Chest similar to Rallypoint Delta.
- Stage 4 Alloy Vulture Nests: Stage 4 now has a 33% chance to include Alloy Vulture Nests, resembling the mechanic in Siren's Call. Destroying six eggs will spawn an Alloy Worship Unit, rewarding players with a legendary item for each player in the game.
- Stage 4 legendary chest chance reduced to 66%: The likelihood of encountering a legendary chest in Stage 4 has been reduced to 66%.
- Increased Map Size: The overall size of the game map has been increased, potentially providing a larger and more expansive environment for players to explore.
- Missing Collisions for Decorations: Addressed missing collisions for decorations within the game.
- Interactables No Longer Spawn Inside Rocks: A bug or issue where interactable objects were spawning inside rocks has been fixed, preventing inconvenient situations for players.
- Compatibility with Judgement Mod: The mod has been updated to ensure compatibility with the Judgement mod.
1.5
- Added Decorations
- Trees, grass, rocks, vines, etc., have been introduced as decorative elements in the environment.
- Dynamic Stage Size
- The stage size is now scaled based on the current stage count. As the stage count increases, the size of the map also grows accordingly.
1.4
- Fixed compatibility issue with the BetterLoadingScreen mod
- Resolved an issue that was causing compatibility problems with the BetterLoadingScreen mod. This fix ensures that both mods can work together smoothly.
- Improved simulacrum support
- Addressed an issue where too many monsters were spawning in the simulacrum.
- Modified the monster and interactable pool selection to come from a random simulacrum stage.
- Removed Newt Altar
- Improved monster selection algorithm for normal stages
- Enhanced the algorithm for selecting monsters.
- Monsters from similar stage counts are now more likely to be selected, providing a more balanced experience.
- Removed dependencies
- Eliminated the dependencies on
RiskofThunder-R2API_Stages
andRiskofThunder-R2API_ContentManagement
.
- Eliminated the dependencies on
1.3
- Added textures
- Added simulacrum support
1.2.1
- Fixed an issue where monsters would continue to spawn after the teleporter finished charging.
- Fixed an issue where music would sometimes not play.
- Players and enemies are now teleported when they clip out of the map.
1.2.0
- Implemented multiplayer support
- Enhanced map generation
- Improved map smoothness
- Optimized placement of interactables
- Upgraded node graph generation
- Simplified mesh for better performance
- Addressed various bugs
- Fixed the problem where legendary chests on stage 4 consistently cost 400 gold
- Resolved screen flashing during the loading of stage 1
- Fixed the pings not working
1.1.0
- Visual improvements
- The stage is now smoother and less blocky
- Added texture to the floor and walls
- Added fog
- Improved the lighting
- Improved interactable placements
- Newt altars are more hidden
- Teleporters now spawn in flatter and more open areas
- Capped the height where interactables can spawn
- Added a guaranteed legendary chest on stage 4.
- Improved music selection
- Performance improvements
- Optimized the stage mesh
- Optimized node graph
- Fixed the bug where the screen flashes white when entering a void seed
1.0.1
- Added missing dependency
1.0.0
- First release