DungeonArchitectBasic Documentation

DungeonArchitectBasic 2.0.0 - Documentation CelestiaDominance | Unreal Engine 5.7 and 5.8 | Windows / Win64

OVERVIEW DungeonArchitectBasic creates dungeon layouts in the Unreal Editor. It builds rooms, corridors and optional multiple floors, with instanced geometry or a saved merged Static Mesh. Doors, elevators and elevator terminals operate during gameplay. Layout generation is an editor feature; it is not a runtime procedural generation API.

The plugin supplies C++ classes and editor controls, with no Blueprint assets. You can use its exposed runtime functions from your own Blueprints. It does not supply a player character, input mappings, navigation setup, quests or a finished game UI.

CREATE AND SAVE A DUNGEON 1. Open the level you want to edit. For levels with sublevels, make the intended destination level current and ensure it is unlocked. 2. Open Window > Dungeon Architect Basic, or use the Dungeon button near the Play controls. 3. Start with one floor and a modest room count. Choose a Seed, room size range, Tile Size and Room Height. 4. Choose the output type described below, then press Generate. 5. Inspect the layout and collision with your own character. Save the level and any generated mesh assets.

Generate replaces this plugin's tagged output in the current level. Clear removes that generated output from the current level. Both operations support editor Undo. Output in another loaded level is left alone. An existing Player Start in the current level is preserved rather than moved or duplicated.

Changes to settings take effect when you generate again; editing settings is not a live update to an existing dungeon. Keep deliberate manual modifications in mind before regenerating. Undo does not mean that newly created Content Browser mesh assets are automatically deleted; remove unused generated assets through the Content Browser after checking references.

LAYOUT SETTINGS Seed: determines the random sequence. The same settings and seed reproduce the layout; changing meshes or optional features can change the complete generated result. Min Rooms / Max Rooms: requested room placement range. Actual placement depends on available space, so a crowded grid may yield fewer rooms. Min / Max Room Size Tiles: room dimensions measured in tiles. Dungeon Grid Size: 0 uses automatic sizing. A larger explicit grid spreads rooms out and can increase corridor length and generation work. Extra Corridor Chance: adds additional connections and loops. Max Connections Per Room: 0 removes the degree limit. Connectivity can require exceeding a nonzero limit. Min / Max Corridor Straight Length: control corridor jogs in Unreal units; 0 disables the corresponding limit. Tile Size: world size of one tile. Room Height: internal vertical space on each floor. Spawn Ceilings: disable for an open-top layout. Floors: number of floors. Inter-Floor Gap adds space between a floor's ceiling and the next floor; it is not the entire storey height.

Large grids, rooms, floor counts and merged meshes can take significant editor time and memory. Increase scale gradually and profile your target map. Invalid non-finite values and out-of-range core dimensions are rejected before existing output is cleared.

OUTPUT TYPES Instanced output: disable Merge To Single Static Mesh. The generated runtime actor holds Hierarchical Instanced Static Mesh components (HISMs). Save the level to preserve the instances for reopening and cooking.

Merged output: enable Merge To Single Static Mesh and Create Merged Mesh Asset. Set Output Asset Path to a project Content folder such as /Game/DungeonArchitectBasic/Generated. The builder creates a persistent Static Mesh asset and a placed mesh actor. Save both the asset and map. Runtime doors, elevators, terminals and separately spawned actors remain separate actors.

If Merge is enabled but Create Merged Mesh Asset is disabled, the plugin retains persistent instanced geometry. It no longer relies on a temporary merged mesh that can disappear after saving or cooking.

Enable Nanite For Merged Mesh affects the generated merged mesh only. Instanced output uses each source mesh's own settings. Nanite Max Edge Length Factor is an optional merged-mesh tuning setting; inspect distant silhouettes and profile the result in your project.

CUSTOM MESHES AND MATERIALS Assign Floor, Wall and Ceiling Mesh Overrides to replace the default cube geometry. Supply appropriate collision on custom meshes; a visible mesh is not proof that it has usable player collision.

Align Custom Meshes To Bounds Center compensates for off-center pivots. Wall Mesh Length Axis identifies the mesh's horizontal length axis. Choose X for meshes long along local X, or Y for meshes long along local Y. Align Custom Wall Meshes To Bounds Ends provides an alternative for asymmetric wall bounds. Check a small generated sample before building a large layout.

Floor, wall and ceiling materials can be overridden independently. Door leaf/frame, elevator platform, terminal and custom pillar meshes have their own settings. Mesh fitting scales geometry to the required dimensions; the plugin does not remodel arbitrary modular pieces or infer a custom kit's sockets.

OPTIONAL DETAILS Doors: enable Spawn Doors for automatic runtime doors at thresholds. Choose the opening mode, stay-open behavior, auto-close delay, window opening, mesh width axis, materials and sound. Doors react to pawns in their trigger. The window option builds a frame opening; the hidden solid leaf no longer blocks the opening. Windows: enable exterior wall windows and adjust chance and size ranges. Pillars: choose square, round or a custom mesh, with thickness and height scales. Lights: optional point lights with intensity, color and attenuation controls. Lighting and performance still depend on your project settings. Room actors: enable Spawn Actors In Rooms and populate Room Actors To Spawn. One seeded class choice is used per placed room. These are editor-spawned actors; configure their own gameplay and replication as needed.

MULTI-FLOOR TRAVERSAL Enable Vertical Traversal carves elevator connections between floors. Elevators Per Connection controls how many connections are attempted. Elevator Tower Mode aligns shafts across floors.

Spawn Elevators adds elevator actors and terminals. Disabling it keeps the shaft openings so you can place your own traversal system. An empty shaft is an opening: provide your own elevator, barriers or other gameplay before allowing players to use it.

Elevator Auto Call On Pawn Overlap is optional and off by default. When disabled, use terminal commands or your own authoritative game logic to move the platform. Terminal Auto Link Search Radius controls the nearby-elevator fallback. For manual setups or closely spaced elevators, explicitly link each terminal with Set Elevator on the server.

CONNECT YOUR INPUT TO TERMINALS Version 2.0.0 uses callable interaction functions. It does not bind E, W, S or arrow keys automatically. Existing projects that relied on those bindings must connect their own input actions.

Example Blueprint flow using the built-in world-space terminal menu: 1. Add a DAB Interaction Component to your player Pawn or Character Blueprint. In multiplayer, the pawn must replicate, be spawned by the server and be possessed by the owning player. The component must exist on the server as well as the client; do not create it only on the client. 2. Use your own targeting or interaction system to obtain the relevant DAB Auto Elevator Terminal Actor reference. A trace, nearby interaction list or explicit reference can supply it. 3. On your local Interact input action, call Can Interact on that terminal with your pawn. If allowed, call Interact with the same pawn. 4. The first interaction opens the floor selection. Connect your Previous and Next actions to Select Previous Floor and Select Next Floor on that terminal. 5. Call Interact again to confirm. Leaving the terminal's interaction range closes its menu and cancels its local queued destination.

Bind discrete actions to a pressed/started event rather than dispatching a reliable request every frame. Interact returning true means that the local interaction entry was accepted; it is not a server movement acknowledgement.

If the platform is elsewhere, the built-in flow first calls it to the terminal's floor, then submits the queued destination when it arrives while the interacting pawn remains in range. Test boarding and trigger placement with your own character and movement system.

USE YOUR OWN UI OR THIRD-PARTY INTERACTION SYSTEM You can skip the built-in selection menu. On the owning pawn's DAB Interaction Component, call Request Terminal Stop with the terminal and a zero-based stop index. The component routes client requests through the owned pawn. The server checks the pawn, terminal range, destination and elevator linkage again.

Request Terminal Stop returning true means accepted locally for dispatch. The server can still reject it. Requests are rate-limited. Observe the elevator's replicated state to update your UI.

When the platform is not at the terminal's floor, a request first calls it there. A custom UI must submit the desired destination after arrival; this direct API does not create the built-in menu's local destination queue. Keep the pawn in interaction range for terminal requests.

For a server-side interaction framework, call Request Stop For Pawn on the terminal from authority with the actual interacting pawn. For scripted elevator control without a terminal, call Set Target Stop Index on the elevator from server game logic. Do not rely on a client calling an RPC directly on an unowned world elevator.

The built-in terminal menu stores one local interaction selection per terminal instance. It is not a separate per-player split-screen UMG system. Use your own per-player UI and the component entry point for that design.

RUNTIME ELEVATOR REFERENCE Initialize Elevator: configure two stops using travel height, platform size, thickness and speed. Initialize Elevator Stops: configure surface heights relative to the elevator actor. Stops are sorted, duplicates removed and the count limited to 128. Initialize and change shared settings from authority. Set Target Stop Index: zero-based destination index; invalid indices are rejected. Get Stop Count: number of valid stops. Get Target Stop Index: commanded destination. Get Current Stop Index: arrival index, or -1 while in transit. Treat -1 as Moving in your UI rather than indexing an array with it. Initialize Terminal / Initialize Terminal Floors: configure terminal floor labels and the terminal's own floor. Keep the floor mapping consistent with the linked elevator's sorted stops. Set Elevator: explicitly link a terminal to its elevator on authority. Set Platform Mesh Override / Set Terminal Mesh Override: configure mesh fitting. Configure Elevator Audio: configure ambient and movement sounds. Use a looping sound asset when looping movement audio is selected.

MULTIPLAYER AND PROJECT RESPONSIBILITIES Door state and elevator movement are server-authoritative. Terminal commands from remote clients use the replicated interaction component on their owned pawn. Generated static geometry is part of the saved/cooked map; it is not a streamed runtime layout-generation service.

Custom spawned actors, navigation, AI, character movement, passenger behavior, collision channels and game rules belong to your project. Include the dungeon map and its referenced assets in your packaging configuration. Validate traversal and passenger behavior with your actual character, network settings and target hardware.

UPGRADING EXISTING CONTENT The generated dungeon actor and legacy basic door actor now reside in the Runtime module so saved geometry can exist in cooked games. Class redirects preserve references from the old Editor module. Open and save affected maps and Blueprints after updating. Regenerate old output that depended on a temporary merged mesh; a redirect cannot restore mesh data that was never saved.

TROUBLESHOOTING Nothing changes on Generate/Clear: verify that the intended level is current and unlocked, and review the Output Log for invalid settings or asset errors. Geometry is missing after reopening: save the map; for merged output also save the generated asset. Regenerate legacy temporary output. Custom meshes are offset: check bounds alignment and the configured wall/door width axis. The character falls through geometry: inspect collision on the selected source meshes and your character's collision responses. Also check whether an intentionally carved elevator shaft has a working platform. Terminal responds locally but not on a remote client: verify the replicated pawn's ownership and server-created DAB Interaction Component, interaction range, server link and valid stop index. Terminal does not react to keys: wire the callable interaction functions to your project's input actions. Elevator appears to ignore a requested destination: it may be returning to the terminal's floor first. Check target/current indices and handle -1 as in transit. No sound: assign appropriate sound assets, attenuation and looping settings, then check your project's audio configuration.

SUPPORT Discord: https://discord.gg/9Zc4wbwqG9