Quest System

[FONT=Century Gothic]Quest System Plugin

7b2b09c95197b7ac738e483ffb63261aff8b5421.jpeg

Now available on UE Marketplace
**
Description:**

Multi-purpose quest system plugin, which will fit for any type of game.
Add Quest Manager to PlayerState blueprint(or in Player Controller or Character, if you’re not planning to use it in multiplayer or with different pawns) and you can start to use the system.
All you need to do is to set some params in a quest or task blueprints(like quest description), implement reaction on events, like OnQuestCompleted and place a few nodes in proper places according to your story, like AcceptQuest to start the journey.

Features:

  • Easy-to-use Quest Manager
  • Suit for any type of game
  • Create any type of quests with any number of tasks with blueprints or C++
  • Make complex story with multiple endings by using quest branching
  • Multiplayer Support - Each player can have their own quests - like in MMORPG
  • Easy to Save/Load
  • Requirements check before quest or task can be started or completed
  • Tasks can be completed parallel or in a sequence
  • Lots of events are available to use (like OnQuestCompleted, OnQuestTaskFailed, etc)
  • Add or remove new tasks for quests at runtime, if you need it
  • Add or remove rewards for quests or tasks at runtime, if you need it
  • Add or remove requirements for quests or tasks at runtime, if you need it
  • Set additional params to your quests, tasks, etc, and use them later
  • Source code included - adapt quest system for your own needs
  • Free example project with a lot of usage examples
  • Active Quest and Quest Journal widgets with multiplayer support are included in example project
  • Modular approach - you can reuse tasks, requirements, and rewards in multiple quests
  • Behavior Tree Tasks and Decorators for Quest System
  • Timed quests and quest tasks are supported
  • Repeatable quests support (you can also specify how many times it can be repeated)
  • Daily quests support - set required delay before player can take a quest again
  • You can set how many tasks from available should be completed to complete a quest
  • Migrate quests between different pawns (good for vehicles)

List of rooms with examples:

  • Introduction
  • Quest with single task
  • Quest with multiple parallel tasks
  • How to add new quest task at runtime
  • How to remove quest task at runtime
  • Quest requirements check example
  • Quest task requirements check example
  • Quest branching example
  • Optional task example with different rewards
  • How to fail a quest if task was failed
  • Repeatable quest example
  • Timed quest example
  • Delay between quest repeat
  • How to migrate quests between pawns
  • How to add quest requirement at runtime
  • How to remove quest requirement at runtime
  • How to add quest task requirement at runtime
  • How to remove quest task requirement at runtime
  • How to add quest reward at runtime
  • How to remove quest reward at runtime
  • How to add quest task reward at runtime
  • How to remove quest task reward at runtime
  • How to set the desired amount of tasks, required to complete a quest
  • Kill N enemies quest example
  • Example of Save/Load/Reset for quest system
  • How to interact with actors inside the level in a quest blueprint.
  • Multiple start/finish points for quests.
  • Quest example in C++
  • How to autostart a new quest after completion of existing
  • Timed quest task example

Example Project: https://gum.co/HbOB
Supported engine versions: 4.12 - 4.16
Price: 50$

72b877763340330a4b95fff5d452ff6224f006ee.jpeg

508e1cd1e89a608c1c87c9084dcde6e9241ba02b.jpeg

Currently available nodes:

1375e3be4189c84b2927d2f3824206180e0bdeb8.jpeg

You don’t need to use them all, because most of them works automatically. But if you need fine control over your quests, you will get it.

As you can see, you don’t need a lot of direct references for quests or tasks(manage them can be a pain) inside your actors(like NPC), just select required class from list.
Which means that your blueprints will be a little clearer and easier to extend.

I am interested :slight_smile:

Nice work, I’m very interested. Do you have an ETA on when it’ll be submitted to the marketplace?

If everything will be good, it can be available in January-February 2017.

What’s new today:

  • 5 new usage examples in demo project
  • Now you can set how many tasks from available should be completed to complete quest - might be useful if you’re adding a lot of dynamic tasks during the game - like infinite amount of waves of enemy and player should survive only a certain amount to win, but can continue to play until he live. I remember such quest in StarCraft 2 for example. :slight_smile:
  • Reset Quest Manager node - if you want to drop all quests at once.
  • Save/Load support - 2 new blueprint nodes - Get Quests For Save and Load Quests. I tested it both in single player and in multiplayer and it works well in both cases.

Today was a day of code optimization and refactoring.
I also started to work on a quest journal example.

What’s new today:

  • Now you can make a quests not only with blueprints, but with C++ too. I also added an example to demo project, which shows how to do that.
  • You can make a quest and complete it even if you don’t have a tasks in it. Might be useful for discovery quests - just complete quest in the right point.
  • Stability improvements and additional code checks.
  • New example: how to autostart a new quest if you’re completed current quest.
  • Now you can specify additional params for each Quest System Entity, like QuestTask or QuestReward, which you can use later in your game logic.
    Supported params: arrays of int, bool, float, text, vector, transform.
    It might be useful, if you want to show additional information, like target location, in Quest Journal.
  • Timed quest tasks support.

It took more time and efforts than expected to implement Active Quest widget and Quest Journal widget, which are support multiplayer, but finally, I did it.

Today I remade the whole showcase level for example project, so now it looks better.

Old version:

59b10eb4f3b7340609ef15ded27ae7d75e9b2aec.jpeg

New version:

72b877763340330a4b95fff5d452ff6224f006ee.jpeg

I added list of rooms with examples.
Supported engine versions: 4.12 - 4.14
However it possible could work in a previous versions of engine, if you will build a plugin for them.
I’m not providing support for them because otherwise it would be harder to add new features for this plugin in future.

does the system also provide a basic inventory to reference the quests to? e.g. check if a item is inventory to proceed in the quest logic?

I’m not providing inventory example in demo project for plugin. And plugin is purely about Quest System (not about dialogs, inventory, skills or other RPG elements, because it’s not only for RPG).
But of course, if you have an inventory system, you can make any kind of checks for it in requirements blueprints(for quests and quest tasks).
For example you can check if item is exist in inventory and if it’s not, the player can’t complete a quest or task.
Because requirement checks is universal thing(you have an implementable function with boolean as a return type), you can check everything what you want.

Looks very interesting, any ETA on release?

If everything will be good, it can be available in January-February 2017.

I’ve made some videos.
Some of them just showing what’s inside the example project.
Some of them are little tutorials, so you can understand how to use this plugin.

Good news for everyone, who use behavior tree based dialogue systems (like this one).
Now Quest System Plugin has built-in tasks and decorators, so you can easily accept, complete or add progress to your quests or tasks.

Tasks:

  • AcceptQuest
  • AddProgressToQuestTask
  • CompleteQuest

Decorators:

  • CanAcceptQuest
  • CanCompleteQuest
  • CanAddProgressToTask

Example:

This is really cool. Cannot wait to get my hands on this :slight_smile:

I’m looking forward to this… it looks great!

Looks awesome. I will look forward to this!