Smart Quest System View on Asset Store (opens in new tab)

Package details

Latest version
1.0.0
Last updated
First released
Unity version
6000.5.4 or later
Package size
213 KB
Files
91
Favorites
1
Views in the past week
7

Price tracking

Last checked
Tracked since
Lowest recorded
$24.49 on

Keywords

Smart Quest System

by RealCut (opens in new tab)

No ratings yet

A quest system that always tells players why a quest is locked. The logic is plain C# you can unit test, and quests are ScriptableObjects you can diff in Git.

Price $34.99

Buy on Asset Store (opens in new tab)

Affiliate link · Purchases support this site

Price history

Last 6 months

USD
Price history for Smart Quest System, 6 months Current $34.99; lowest $24.49; highest $34.99 in this period. $0 $25 $50 Oct Nov

Asset preview

1 / 13

Smart Quest System screenshot 1

Smart Quest System screenshot 1

About this asset

I built this because the same thing kept breaking in every quest system I

tried. A quest wouldn't show up, or a player got stuck, and there was no

fast way to see why. So that's the whole idea here. Every condition a

quest checks hands back a real reason in words, not just true or false.

When a quest is locked it can say "Requires at least level 3, you have 1."

That same line shows up in the quest log, in a tooltip, and in the

debugger, and you can drop it into your own UI, because it gets worked out

in one place.

Two things come out of that, and you can check both before you buy. The

quest logic lives in a plain C# core that never touches UnityEngine, so it

runs in unit tests without you entering Play mode. I put 130 of those

tests in the package so you can run them yourself. And every quest is just

a ScriptableObject, so when a teammate edits one you read it as an

ordinary line in a Git diff instead of opening a graph editor to work out

what moved.

It stays out of your way. Rewards are data in your own words, and the

framework never hands anything to the player. You register one small hook

and your economy stays yours. Objectives handle the common cases: count

something like "collect 3 ore", check a live world state like "have 3

ore" (which drops back to incomplete if the player spends it), or count

distinct things like "visit 3 different shrines". Anything unusual is a

custom objective in about ten lines. Chains, choices, timed quests, repeat

rules and fail states are fields you set in the inspector, not classes you

have to inherit from.

Any game that tracks goals fits, from an RPG to a survival game to a

tutorial to a side questline in a shooter. The quest log, tracker and

popups are an optional uGUI prefab with a single theme asset. Restyle it,

replace it, or skip it and use your own. Nothing here depends on it, and

nothing depends on any other asset I sell. You get the full C# source. No

DLLs.

From the publisher's Asset Store listing.

Technical details

• Every unlock condition returns a written reason instead of a bool. A

  reason is a key plus arguments plus a fallback string, so you can

  localize it.

• The core is pure C# compiled with noEngineReferences, so it runs in

  tests without the engine. 130 EditMode tests are included.

• Quests are ScriptableObjects and diff cleanly in version control. No

  node graph is required, though a read-only graph view is there if you

  want to inspect chains and branches.

• Objective types: counter, live world-state check, distinct-key counter,

  and a one-interface seam for your own.

• Completion rules: all, any, at least N, or in order. Objectives can be

  required or hidden. A chain is just a prerequisite pointing at another

  quest.

• Rewards go through one IRewardGranter hook. The framework never touches

  your economy, and an ungranted reward is flagged so you notice it

  instead of losing it silently.

• Choices resolve when a quest completes. Fail states always store a

  reason, whether it came from a rule, a deadline, or an explicit fail

  call.

• Save and restore is tolerant. Remove an objective, retarget a quest, or

  lower a target, and old saves still load, with a report of what changed.

• A JSON serializer is included. Swap in your own through IQuestSerializer.

• Optional uGUI UI (quest log, HUD tracker, toast popups) driven by one

  theme asset. Built on TextMeshPro.

• Editor tools: a quest creator, a validator that checks across quests,

  and a live debugger.

• Full C# source, no DLLs. Assembly definitions keep UI, core and

  persistence apart.

• Tested on Unity 6 (6000.5). Works with built-in, URP and HDRP, and with

  the old Input Manager and the new Input System.

Compatibility

Render pipelines supported in each Unity version
Unity version Built-in URP HDRP
6000.5.4f1 Compatible Compatible Compatible

Smart Quest System has no rendering of its own. The framework is pure C#, and the optional UI uses uGUI and TextMeshPro, which render the same on Built-in, URP and HDRP. Import TMP Essential Resources once and the UI works on any of them. It supports both the legacy Input Manager and the new Input System, with mouse or touch. Verified on Unity 6 (6000.5).

As listed on the Asset Store.