Welcome to the support thread for the Dungeon Crawler Toolkit! This toolkit, which is available for purchase on FAB.
This asset provides all the essential components you need to start making your own first-person grid-based dungeon crawler, in the style of classics like Eye of the Beholder, Dungeon Master and Legend of Grimrock. Let players create a party of varied character classes and have them fight, solve puzzles and loot their way through intricate, multi-level dungeons. The project is built on well-organized and commented blueprints, using a heavily data driven design which makes modifying and extending the toolkit simple, even for non-programmers.
This toolkit contains many assets that were not made by me, but which are licences under liberal creative commons licenses. I am extremely grateful that these amazing content creators have made their assets freely available. Without having access to these assets it would have been a much bigger challenge to create good looking game examples. You do not need to buy the toolkit to use these assets as they are freely available elsewhere. The included assets are as follows:
Passive powers now increase base rather than current stats.
Parameterized head bob height and playtime in dungeon pawn.
Removed default pawn camera tilt.
Moved screen interact events in PC to interface.
Removed “Test text” from slot description widget, preventing it from showing up for items without effect blueprints.
FIXED: If derived ability points from level was not a whole number the calculation would incorrectly round up in some scenarios, resulting in too many points rewarded.
Player light source manager that lets the player equip light emitting items, cast light spells etc. Added glowing sword and Light spell to demonstrate this.
Scrolls (single use items for Powers).
Added skill tomes that permanently increase stats when read.
Optimization: Slots enabling on level up (for powers) now event based rather than on tick and only for Power slots.
You can now specify which slot effects should run when an item is loaded
FIXED: Dart was missing the Consumable use rule and did not decrease on use.*
FIXED: Reverted LevelTransition actors to use name variables to hold the target level. Workaround for engine bug that clears soft references at runtime.
UI Arrow button input option for movement (for an old school feel or for touch screens).
“Max load” stat based on strength. If carrying items waying more than max load for any character the player cannot move.
Instantaneous movement option (can be toggled in menu).
Fresnel outline is displayed on items and interactables when they are in range and the player mouses over them.
Added two new monsters made by Quaternius. A dragon and a mushroom. These replace the fire and ice slimes in the demo maps.
FIXED: Curve_Float_Steps did not output correct values, resulting in several derived stats (like Ability Points) not updating properly (UE5.2 specific)
FIXED: Monsters sometimes turn back and forth a few times when blocked by another monster.
FIXED: Check to see if monster was facing player was too sensitive. Sometimes caused monsters not to attack or to path incorrectly.
FIXED: The key for the keyholes in the demo dungeon would sometimes drop to the floor instead of unlocking doors.
Improved lighting performance.
Number keys can now be used to activate mini character slots.
Adding powers to starting equipment of character classes by default (so they are already equipped at startup).
Parameter for showing and hiding the debug decal helper grid of the Dungeon Manager (and is now enabled by default).
Improved the look of the default UI somewhat.
Replaced the default fonts with Source Sans and Source Serif
Using metasound for choosing random step sounds in pawn
Translucent backgrounds for powers
Replaced BP_Item adjacency check with interact range set in the item for picking up items.
v.1.4 (live 10.01.23): (for UE5.1)
Updated all input to Enhanced Input
Monsters now prioritize moving forward if the remaining distance to the player is equivalent to turning AND turning would not line the monster up for a ranged attack (if in range)
Added randomness to monster pathfinding to make them less predictable/exploitable
Debug option that display’s a monster’s location on the grid
Debug option for showing monster pathfinding
FIXED: When PlayerStart is placed on a higher level, the player pawn will occasionally spawn on the level below
FIXED: Carrying item through level transitions removes the held visual and throws an error
FIXED: Using shield of faith and moving to another level will make the increase permanent
FIXED: Pathfinding movement cost calculations were incorrect (which was inconsequential as they were not used before, but now they are)
v1.3.1 (live 07.12.22) (for UE5.1)
FIXED: Picked up item widgets no longer following the mouse (5.1 issue)
FIXED: Compile error for player character (5.1 issue)
FIXED: If you no longer have the mana to use a power due to using another power, the first power will not be greyed out
FIXED: Save and wave text blocks input
Enabled one way level transitions if setting Transition Target to None
Level transitions now handled by object references (fixes a 5.1 error that causes maps not to be packaged if they are only reference by name)
Removed some ugly geometry in Dungeon level
v1.3 (live 03.11.22) (for UE5.0)
FIXED: Items on the ground could be picked up through stats and powers menus
FIXED: Updaing derived stats and switching classes during character creation lets you increase derived stats to infinity
FIXED: Items can be dropped through inventory if moving mouse quickly enough that cursor overlaps the dragged item icon
FIXED: Name and graphics settings in character creation is hard to see due to text color
ESC and “M” now close the character sheet instead of opening the menu if it is open
Made floating text sharper
Preventing monster movement while attacking
Improved formatting of graphics quality button
v1.2 (live 24.09.21) (for UE4.27)
Starting items can now be added to character classes in DT_CharacterClasses
Items dropped on character portraits will now be added to the first available slot in their inventory
Fixed issue where clicking the split stack button would let you stack non-stackable items in hand
Fixed issue where items without a tooltip implementation (like the Key) said “Stats” in their tooltip
Fixed issue where clicking a power while holding an item left the item widget floating on the screen
Removed EStat enum (was unused)
v1.11 (live 18.08.21) (for UE4.26)
Improved turning precision
Item weight from data table. Currently used for pressure plates.
Fixed issue where stat penalties would not be subtracted when switching classes/races during character creation.
Fixed issue where weapon damage was always displayed as 0
A new tutorial for the Dungeon Crawler Toolkit is live. The tutorial explains how to add new stats to DCT and use these to add new game mechanics. As an example I show how to implement a hunger system in DCT.
Hi Schoonology, this is not a known issue. Are you seeing this error in the log? Does it crash the engine or the game? Are you running this on Windows or something else?
There are five enemies included. Three different slimes (normal, fire and ice) and two skeletons (normal and lich). They have varying difficulty, size and abilities. But perhaps you meant something else?
Hi All, What Could be the best way to incorporate a third person view showing the actuals 4 characters? and how one could link the animation, items, and characters to the DCT RPG Logic…? Thanks again
Hi DredyKabal, this is a pretty complex question, so I thought the best way to answer is would be to give you the steps for achieving this. The suggestion below is a relatively quick mock up, so there is plenty of room for improvement, and depending on how you’re designing your game you might want to do things differently. But this should hopefully be enough to get you started.
I will be using the SK_Slime skeletal mesh as a placeholder for representing the player characters. I modify the skeleton of this skeletal mesh and add two sockets to its hands for holding items:
https://i.imgur.com/ijvmmqJ.png
Next I’m creating a new blueprint for representing our visual player characters in the game. I’m calling it BP_CharacterActor. I add the slime skeletal mesh and a couple of empty static mesh components for holding items. I attach these components to the two sockets we just made:
https://i.imgur.com/AND8sPt.png
Next in the event graph of this actor I add two events that respectively move or turn the actor. These will be driven externally by our DungeonPawn:
https://i.imgur.com/WqqsfTZ.png
I also add some code for changing the appearance of our held item meshes when an item is equipped, as well as an event for animating the skeletal mesh when an item is used:
https://i.imgur.com/k7yPMqx.png
Ok, our new blueprint is done. Time to hook it up to our DungeonPawn. In BP_DungeonPawn I’m creating a new variable that will hold references to all our CharacterActors, as well as keep them paired with the appropriate BP_PlayerCharacter object. It is a TMap with a BP_PlayerCharacter reference as a key and BP_CharacterActor as a value. I’m calling it CharacterActors. At BeginPlay I loop through all the PlayerCharacters stored in the game state, create a CharacterActor for each, place it in a simple grid surrounding the center of our pawn and add them to our CharacterActors TMap, like so:
https://i.imgur.com/8mzjIEN.png
I increase the length of the SpringArm to 200 and hit play. We’re getting somewhere:
https://i.imgur.com/cv4BIRZ.png
As soon as we move the slimes stay put, though. Time to hook up the pawn movement code to the events we made in our CharacterActors earlier.
This is part of the MoveStep event:
https://i.imgur.com/aAwNrnQ.png
And this is part of the MoveTurn section:
https://i.imgur.com/qmndKYI.png
Great, now we’ve got our slimes moving along with our pawn, but we still cannot visualize them equipping items. This is going to take some work.
We go to WBP_Slot, the widget blueprint representing inventory slots. We want to add functionality that can affect other blueprints in our projects, like our CharacterActors without making our code too spaghettified. Event Dispatchers are a good fit for this. I add two new event dispatchers to WBP_Slot, to be called when items are equipped, unequipped or used. I have them take a WBP_Item blueprint as a parameter:
https://i.imgur.com/3PLArgg.png
I call them in them in the following places:
https://i.imgur.com/dVLsw6C.png
https://i.imgur.com/19vZw6f.png
Ok, so far so good. Now we need to tie these interface events to the appropriate slots and call our item equip and use events from there. We can use WBP_MiniCharacter for this, which is the tiny “character sheet” that shows our portrait, health and what items are equipped in our hands. Here is what I do:
https://i.imgur.com/g1COQI6.png
https://i.imgur.com/cxbQgKG.png
And there we are! We are visualizing our characters, they are moving along with our pawn, can equip items and animate when the items are used. Clearly there is much room for improvement, but this should give you something to build upon:
Hi, I asked this on the discord, but maybe it’s better here for posterity. Does the DCT integrate with your other kit, the Advanced Turn Based Tile Toolkit? That would be some awesome functionality if it did.
Hey, they don’t integrate super easily out of the box, but with a bit of work it should be possible for them to borrow quite a lot from each other. I am planning on creating a tutorial for this in the future.
Just submitted a new DCT update to Epic! It should be live in a few days. Check out my Trello for an overview (The list titles v.1.1): Trello
The biggest change is the modular item rules, which allow you to define rules for when and where items can be added to/removed from slots and when they can be used. Rules are added to two new arrays in the item data table and defined within two new types of Object blueprints. This consolidates a lot of the rules that were previously spread over multiple locations, such as needing to have enough mana to use an item, not being allowed to pick up passive powers, having to wait for item cooldown etc.
Utilizing these new rules I’ve also added bows that require ammo and a greataxe that requires two hands to use.
Also: Secret doors!
v1.1 (sent to Epic)
Modular item rules for when items can be added to/removed from slots and when they can be used
I have tested converting DCT to UE5 early access and everything seems to be working fine. The appearence of the UI is different due to different defaults in the engines, but I can’t see any issues in the gameplay logic. If you are porting over a dungeon map from UE4 to UE5 you might have to recompile some of the BP_Interactable actors in the scene to make sure their grid placement is updated, but that is the only small issue I’ve encountered so far. I’ll be continuing to test DCT out in UE5 and will do my best to make sure that converting a project is hassle free.