Preview Video | Download Demo | Quick Setup Guide | Tutorials (below)
Step by Step Tutorials:
Quick Setup Guide (Text & Video)
How to Make a Quest Step by Step (Text & Video)
Item System Integration (Video & Text)
Introducing my Unreal Engine 5 Tag Driven Quest System. This easy to use blueprint system gives you the tools you need to add quests to your single player game.
So how exactly does it work? This system uses Actor Tags to connect everything. If you already built your level, you don’t have to worry about needing to redo anything to use your current actors as starting points, turn in point, or even as objectives for your quests, all you need to do is tag them. You can use any actor in your level as part of your quest, even just a static mesh.
Quests can have prerequisites, including requiring other quests to be completed first, which can be used to let you create quest chains. I also included an easy way for you to tap in your own prerequisite logic, like requiring a player to be of a certain level using your own XP system before the quest becomes available to them.
You can also use the same actor for multiple quests, and quests start at multiple locations, or turn in at multiple locations.
Your quests can even start in one level, and turn in, or have objectives, in another, and there is even a save system which will handle saving and loading everything related to quests for you.
Each quest can have multiple objectives, and this system is set up to let you easily make your own objectives. Included you will find objectives to travel to an actor, interact with an actor, pick up an actor, defeat an actor, and a jump off point to give required items (powered by your own inventory system) to an actor.
When the state of a quest shifts (like when you accept a quest, or turn one in) you can fire off custom logic like spawning or removing actors in your level, or giving items to the player. I call these Quest Events, and I’ve included the ones I mentioned as well as an example to play a cutscene. The state of a quest can also be controlled externally from custom logic in your game.
Quests also have a variety of reward options, from guaranteed rewards where the player gets all of the items, to choice rewards where the player can only pick one of the items, and of course a set of numeric rewards for things like experience, currency and reputation. Each reward type has its own function to let you easily tap it into your other systems.
To get you started I’ve included quest types for a Main Story Quest line, Side Quests, and Repeatable Quests. The key difference between the quest type is the styling of the indicator and UI. Main Story and Side Quests function the same way, and both can have quest chains.
The repeatable quest type works just like the others, but also includes the additional logic needed to make the quest available again once it is completed by the player.
Indicators are based on the quest state, and can be customized for each quest type. You can change the mesh, material, animation, easing, animation speed, and even play animations in reverse.
Project Integration
Project implementation requires you to attach a component to your player controller, and it will handle the rest. You make quests by adding data to a data table, and the way you connect your quest to actors in your level is through actor tags. I have step by step instructions with videos, and full documentation to help guide you through it.
I created this system to give you a jump off point, but if there are specific features you would like to see me add, or if you have any questions, or find any bugs with this, or any of my other unreal engine 5 blueprint systems, please let me know.
Do you have an idea for a tutorial related to using this system? Please let me know.
The included demo level is based on the Third Person BP project. If you are using this demo level as a starting point you will want to make sure you create a Third Person project, then add this system to it. Alternatively, you can change the game mode attached to the world settings and use your own Player Character / Controller in this Demo level.