Resource icon

[Reusable] SRB2 Dungeon Crawler [v2.0.2] - A Rogue-like SRB2 experience v2.0.2

I give permission for this addon to be reused, modified, or ported by anyone
  1. Yes
I understand my submission will be rejected if it does not follow forum rules, Submissions guidelines, and/or file name conventions
  1. Yes
How fast can you and your friends clear a 50 floor dungeon in this...

SRB2 Dungeon Crawler


Fight through randomly generated levels with increasing difficulty (Max: 5). Most Levels will have randomly generated enemies, and (basic) hazards. If you think this is crazy, or if you think I'm crazy for creating this, you're probably right. Don't believe me? Open up your favorite .pk3 editor and see the level for yourself!

Encounter randomly generated enemies

Experience randomly generated nonsense!

Get to to the goal!

It's also netplay compatible*! Assemble a team together!

You spawn in a random area of the map. Your goal is to reach the spring which will bring you to the next Dungeon Level. At the time of writing, all players must be present on a spring to move on. At the last level, you fight a basic Eggman boss, however he may be accompanied by other enemies to spice up the challenge.

As an added bonus, rings, score and present shield powers are preserved between level transitions.

Helpful Console commands
dng_printlevel <num> - Prints the desired level. Up to the maximum generated levels.
dng_levels <1-999> - Server only. Defaults to 5. Generates this many levels for a given dungeon. (Requires map switch+reload. Will not generate if in a current Dungeon Run)
dng_clear - Server only. Clears the current dungeon, and starts a new dungeon run from Level 1. (Requires map reload)
dng_skiplevel - Server only. Skips the current Dungeon Level. (Does not work for the last floor)
dng_gotolevel <num> - Server Only. Allows you to skip to a specified floor of a dungeon, if one exists.

  • dng_printlevel legend
    • Below is a list for what is visible to the player in a 48x48 grid (matrix).
      Tile.WALL = 0 -- Impassible
      Tile.WALK = 1 -- Walkable
      Tile.CORR = 2 -- Corridor passageway
      Tile.SPAWN = 3 -- Player Int Spawn
      Tile.SPRING = 4 -- Spring (Ascending)
      Tile.RING = 5 -- Ring collection
      Tile.ITEM = 6 -- Item
      Tile.KEY = 7 -- Key space
      Tile.ENEMY = 8 -- Enemy
      Tile.BOSS = 9 -- Boss
      Tile.PIT = 10 -- Death Pit

Problems, bugs?
  • MT_DRAGONBOMBER has been disabled for this release. It has a tendancy to cause an unknown sigsegv with the Eggman boss found on the last dungeon floor.
  • Outside of the MT_DRAGONBOMBER behavior, I have not seen any erratic behavior from any other enemy that would cause an error to happen.
  • Some enemies will be looking away from you when they are spawned. This is expected and I'm actively looking into changing this for the better in a future release.
  • If there are any enemies that DO happen to give an error, or worse, a sigsegv, please report it! I understand the mixing of enemy types can have unexpected results. Please report anything you may be doing at the time of error, if one were to occur. Screenshots and providing your srb2win.RPT file also helps too! Let's work through this together.

Speical Notes
Level generation is random. So don't be surprised if you find a level with a spring next to your player spawn, or a level that has multiple of the same enemy. I've tried to mitigate this as much as I can.

- Added a helpful message for dedicated server hosts that identifies what Dungeon Level a player is currently on.

- Fix of Lua error on NONET builds that attempt to find the ALLOWJOIN console variable.
- Additionally, hosting dedicated netgames without problem or error is now possible.

- You will no longer obtain erroneous extra lives caused by going to the next dungeon level with 100 or more rings.

- Added command: dng_gotolevel - Allows you to skip to a specified floor of a dungeon, if one exists.
- Significantly improved networked Dungeon Code for new joiners. [Special thanks to LJ Sonic]
-- Dungeons with less than 100 levels can now safely be joined without host error/sigsegv.
- Default generated levels have been increased from 5 to 10

- First wave of Level clear conditions have been added:
-- Added Level clear condition: Key Search.
--- 15% chance to encounter a Key level in a dungeon. A key must be collected to move on to the next level.
- Existing HUD Element graphics have been modified and new HUD graphics have been added to reflect the addition of this first Level clear condition. [Special thanks to Rubberjig]
- Additional clear conditions will be progressive updates to be added overtime.

- Console command dng_skiplevel now properly brings ALL players to the specified spring instead of the person (server) that executed the command.

- Fixed small typo within the code that originally wasn't triggering anything.
- Disallowed joins for *new players* joining servers while in the middle of a run if the number of generated levels is greater than that of it's set default value (5)

- Initial Release
Special Thanks
Lat' - Inspiration to this Random Dungeon Generation script.
LJ Sonic - Code utilization to optimize sending Dungeon data over network buffer.
CobaltBW - Playtester and Brainstormer for enemy difficulty
Ruberjig - Key and Hud Graphics
Tatsuru - Playtester
Amperbee/Rapidgame7 - Playtester
DylanDude - Playtester
Digiku - Community playtester/support

Supporters / CoAuthors

  • srb20386.gif
    2.1 MB · Views: 108
  • srb20391.gif
    1.7 MB · Views: 54
  • srb20382.gif
    909.1 KB · Views: 71
  • srb20378.gif
    1.4 MB · Views: 62
  • srb20392.gif
    207.5 KB · Views: 49
  • srb20383.gif
    528.7 KB · Views: 49
  • srb20192.jpg
    76 KB · Views: 53
  • srb20193.jpg
    118.3 KB · Views: 52
Extension type
File size
1.7 MB
MD5 Hash
First release
Last update
0.00 star(s) 0 ratings

More resources from Flame

Share this resource