Skip to main content
Version: 3.4

Procedural Dungeon ⏵ Dungeon Generator Base

Dungeon Generator Base

Class Details

Defined in: Public/DungeonGeneratorBase.h
Hierarchy: Object → Actor → Dungeon Generator Base
Exposed in blueprint as: Variable Type

Description

This is the main actor of the plugin. The dungeon generator is responsible to generate dungeons and replicate them over the network.

Events

NameCategoryDescription
On Failed to Add Room EventDungeon GeneratorCalled each time no room could have been placed at a door (all room placement tries have been exhausted).
On Generation Failed EventDungeon GeneratorCalled when all dungeon generation tries are exhausted (IsValidDungeon always return false).
No dungeon had been generated.
On Generation Init EventDungeon GeneratorCalled before trying to generate a new dungeon and each time IsValidDungeon return false.
On Post Generation EventDungeon GeneratorCalled once after all the dungeon generation (even if failed).
On Pre Generation EventDungeon GeneratorCalled once before anything else when generating a new dungeon.
On Room Added EventDungeon GeneratorCalled each time a room is added in the dungeon (but not spawned yet).
Those rooms can be destroyed without loading them if the generation try is not valid.

Properties

NameTypeCategoryAccessorsDescription
RoomsUDungeonGraph*Dungeon GeneratorBlueprint Read Only
Use Generator TransformboolProcedural GenerationBlueprint Read/Write
Edit Anywhere
If ticked, the rooms location and rotation will be relative to this actor transform.
If unticked, the rooms will be placed relatively to the world's origin.
Use World Collision ChecksboolProcedural GenerationBlueprint Read/Write
Edit Anywhere
If ticked, when trying to place a new room during a dungeon generation,
a box overlap test will be made to make sure the room will not spawn
inside existing meshes in the persistent world.
This is a heavy work and should be ticked only when necessary.
Does not have impact during gameplay. Only during the generation process.
Seeduint32Procedural Generation 
└ Seed
Edit Anywhere
Seed Incrementuint32Procedural Generation 
└ Seed
Edit AnywhereThe increment number for each subsequent dungeon generation when SeedType is AutoIncrement.
Seed TypeESeedTypeProcedural Generation 
└ Seed
Blueprint Read/Write
Edit Anywhere
How to handle the seed at each generation call.
Random: Generate and use a random seed.
Auto Increment: Use Seed for first generation, and increment it by SeedIncrement in each subsequent generation.
Fixed: Use only Seed for each generation.

Nodes

NameCategoryDescription
GenerateDungeon GeneratorUpdate the seed and call the generation on all clients
Do nothing when called on clients
Get Compatible Room DataDungeon GeneratorReturns an array of room data with at least one compatible door with the door data provided.
Get ProgressDungeon GeneratorReturns the current generation progress.
Get Random Room DataDungeon GeneratorReturn a random RoomData from the array provided
Get Random Room Data WeightedDungeon GeneratorReturn a random RoomData from the weighted map provided.
For example: you have RoomA with weight 1 and RoomB with weight 2,
then RoomA has proba of 1/3 and RoomB 2/3 to be returned.
Get Random StreamDungeon GeneratorAccess to the random stream of the procedural dungeon. You should always use this for the procedural generation.
Get SeedDungeon Generator
Set SeedDungeon Generator
UnloadDungeon GeneratorUnload the current dungeon
Do nothing when called on clients