Quest System Pro

Version 1.0.10

  • Updated general library

Version 1.0.9

  • Updated general library

Version 1.0.6

  • [FIX] DialogueManager setters fixed
  • [FIX] Fixed demo scenes when floor object dissapeared
  • [NEW] DialogueUI warnings when a prefab isn't found
  • [NEW] ForceReset() method for quests to reset them to their original state.
  • [NEW] Removed internal updater for now; We're changing up the general library and adding versions & release channels

Version 1.0.5

  • [FIX] Removed objectUseDistance from Quest settings (fixes #31)
  • [FIX] Fixed AutoFocus fails when using GoToNode (fixes #37)
  • [FIX] Quest SetProgress on inactive task that is in TaskOrder.Single no longer sets progress (fixes #27)
  • [FIX] Click button issue fixed for dialogue editor (fixes #25)
  • [FIX] Updated API calls for Unity 2017_1 and newer
  • [FIX] General code cleanup
  • [FIX] Updated demo script for Unity 2017.1 (NavmeshAgent)
  • [FIX] GettingStartedEditor fix
  • [FIX] Updated inventory pro bridge manager - Now removes the player changed event listener when destroyed
  • [NEW] SetVariable node and IfVariable edge condition added
  • [NEW] Built-in quest system player now uses motion info and audio info per user node
  • [NEW] Added try and catch to dialogue nodes to avoid crashing the editor. Error is displayed in dialogue status & tooltip

Version 1.0.4

  • HasItemInInventory typo fixed
  • First version editor improvements. Edges can now be connected before, between or after existing edges; This makes re-routing and rewiring a lot easier.
  • Larger connectors
  • Better copy / pasting of nodes and a group of nodes
  • PlayerDecisionNode couldn't be copied, fixed
  • Status message returns an empty string if the statusMessage format is invalid instead of throwing an exception
  • Minimap slightly tweaked and zoom indicator removed for now
  • Copy pasting lines of text doesn't copy the editor along with it

Version 1.0.3

  • [ADD] SimpleAchievementEdgeCondition
  • [ADD] RandomEdgeNode component, which choses an edge to a node at random.
  • [ADD] TaskProgressRowUI has a task description UI element
  • [FIX] Detailed queet windowUI doesn't fail when quest is null
  • [FIX] Fixed issue where task progress UI (quest and achievement) didn't repaint quest / achievement names.

Version 1.0.2

  • Navigation handler now has the option to select the first element if none of the elements have been selected yet + an option to force the first selection.
  • HasItemInInventory edge condition threw an error when no item was set (fixes #16)
  • questDetailsWindow on DetailedQuestWindowUI field is now required
  • Quest triggers became inactive when triggered while the quest was not activated yet - Fixed
  • Fixed issue where detailed quest window didn't show quest details when a quest was selected (when a button was clicked).
  • Renamed editor to Quest System Pro editor, makes it easier to find when docked (fixes #17)
  • Added Quest status component enabler to enable / disable components based on quest status. Uses reflection to find 'enabled' on UnityEngine.Component inherited components (for some reason enabled isn't on the UnityEngine.component, but all inherited components).
  • New QuestStatusObjectSpawner; This will spawn an object and destroy it based on quest status. This could be used for (interactive) objects, but also a prefab with a playmaker component to run that.
  • Added Quest completed and quest task progress UI components to display quest progress / status in the UI + fixed issue with buggy progress bar
  • Unregistered events (fixes issues with loading new scenes)
  • Renamed public bool AreTasksProgressedSufficientlyToCompleteQuest() to public bool AreRequiredTasksCompletable()
  • Unregistering UI listeners to avoid issues when loading new scenes
  • Fixed easysave2 error about trying to overwrite save file
  • Waypoint and custom monster Unity 5.5+ ready

Version 1.0.1

  • Waypoint systemwith actions and conditions per waypoint. Can be used for various different game types including delivery and escrot quests, walking NPCs through the map (ecosystem), etc.
  • LipSync (Pro) integration
  • Added tag option to progress trigger - By default it searches for the player, when tag is set it only allows objects with set tag. Could be used to keep an object in an area for N seconds or let an NPC pass (useful for transport quest)
  • Updated affector and progress editors, looks cleaner now
  • Navigation handler + IAchievementUIRepaintable renamed to IAchievementStatusBlockUI
  • New UI navigation options for Node decision UI elements. By default the first node option will be selected (for controller support) + navigation options to set the navigation of the decisions to automatic, explicit or none, this prevents the focus from being lost on the decisions (See: NavigationHandler and INavigationHandler)
  • Module editor added (modules that belong to a component are now shown inside the component editor, makes it clearer what belongs to what)
  • Added tests for achievements task progress checks
  • SetQuestProgressOnTrigger now only activates if the object and compnent are enabled, actions are ignored otherwise
  • UI Repaint blocks now have events so you can set extra UI elements if needed
  • Updated to latest Devdog.General
  • New action set quest progress on trigger object (Devdog.GEneral.Trigger)
  • Quest status animator, which can animate an object when a quest's status has changed
  • Added QuestProgressDecorator and QuestStatusDecorator, these 2 classes handle quest statuses and quest progress and avoid a lot of boilerplate + custom editors to warn the user if a task with the set name can't be found (updated existing affectors and spawners to use these new classes) Breaking change: Quests and task names will have to be re-assigned to affectors and progress setters (setup wizard warns about this)
  • Sealed quest status object enabler and destructor (they're super small so instead of inheriting just create a new script)
  • (Devdog.General) Added rating tool to request ratings on assets (can be ignored if you don't want to leave a rating / review)
  • (Devdog.General) Rewired window input handler can now enable and disable input maps.
  • (Devdog.General) Minmax value helpers for int, float and vector3
  • My custom monster SetDestination error fixed
  • Quest task progress could be set directly by calling the task's set method instead of the quest's set method. The task set now also validates if progress can be set
  • Fixed issue with dragging an item into the object picker field (cast exception). The component is now grabbed from the gameObject
  • (Devdog.General) Updated UIWindowPage to prevent the curernt page from being overwritten by the default when showing it
  • (Devdog.General) OnTriggerUnUsed fixed, now stops callbacks when a callback receiver consumes it
  • (Devdog.General) Updated reflectionUtility to now only scan the UnityEngine and custom assemblies (much faster)
  • (Devdog.General) Removed scriptable object creation in EditorReflectionUtility.DeepClone(), it's now used as a reference instead

Version 1.0

  • Love/Hate integration
  • Spawner: Texture based distribution + Volumes + Perlin noise + Relevancy + Waves + Randomization
  • Spawner data cell generation (breaks texture data down into a spatial tree for faster lookups)
  • Improved dialogue editor workflow
  • Updated usings and removed un-used using statements
  • Cleanup overall code
  • RT Voice updated to latest
  • Added pre-generated AOT converters for Devdog.General and QuestSYstemPro
  • SetQuestProgress action trigger moved from demo to core
  • Quest status object enabler improved, now more configurable + added to Add component menu
  • Added QuestStatus to OnQuestStatusChanged and OnAchievementStatusChanged, which is more in line with the other events
  • Dialogue owner's animator and audio source are now protected and added method GetComponents which is virtual
  • Changed using System.Linq to using Devdog.General.ThirdParty.UniLinq;
  • Added pre-calculated AOT converters for Devdog.General LocalizedAudioClipInfo and MotionInfo
  • Disabled mono behaviour script name warning, it caused a lot of confusion...
  • Transform extenion methods to reset transform, rotation and scale on an object in a single call
  • Minmax value helpers for int, float and vector3
  • Added IObjectRelevancy, which can be used to determine if an object is relevant at a given momvent, when not it can be disabled to save performance (also useful for network gameplay)
  • Removed scriptable object creation in EditorReflectionUtility.DeepClone(), it's now used as a reference instead
  • Salsa demo scene - audio clips relinked: works as expected now
  • Updated demo scenes (missing references, RT-Voice added some prefab to the scenes)
  • Updated the ShowQuestWIndowNode, now works expected
  • Fixed save in dialogue editor + fixed issue with itemAmountRow not setting value when object changed

Version 0.3

  • Localization - All nodes now have localized strings, and localized audio clips
  • OnEnter for dialogue nodes to allow changing the node's content before events are fired (which are used by the UI)
  • Updated to latest devdog.general library + NodeBase now receives IDialogueOwner in OnEnter and OnExecute
  • DialogueOwner consumes trigger callback event and prevents others from receiver it (anything after dialogue owner) + Added log message to avoid confusion
  • Nodes are now using the LocalizedAudioClip instead of regular AudioClip
  • Dialogue editor has a validation option that validates the dialogue and resyncs nodes if necesarry
  • All demo scenes update
  • Devdog.Internal to Editor only to avoid building issues
  • Node remained selected even after deslecting, this preventing nodes from being deleted
  • Fixed bug where dialogue UI didn't set owner icon properly; Renamed to speakerIcon, as it can also contain the player's (or others owner's) icons.
  • Change quest status node now uses +QuestStatusAction instead of QuestStatus (cleaner code); Status may have to be re-assigned
  • VariablesStringFormatter handles unfound variables accordingly

Version 0.2

  • RT Voice Added
  • EasySave 2 Added
  • Using Devdog.General library
  • Serialization and deserialization per local identifier (save & load quests)
  • AddComponentMenu to managers
  • Removed ReflectionDrawerUtility.GetDerivedTypesFrom() cache - No utilities now use a cache
  • AddComponentMenu for quest trigger (triggers / components that can change a quests' progress)
  • ArrayDrawer and dropdown now use the same utility code for generics + Reflection drawer utility handles the generics through a single method so it can't be messed up. + Removed groups on variables container in variables panel
  • Demos updated
  • Cleanup array drawer GetDerivedTypesInfo
  • Dialogue editor Sidebars updated
  • Renamed audioClip to audioInfo and created dataobject for Motion (MotionInfo)
  • Removed useless useAutoFocus = false on action nodes
  • Action node base overrides message and auto focus bool, just to be safe with deserialization
  • SetQuestStatus using QuestStatusAction (cleanup)
  • Removed unused _player from SalsaPlayerBridge + Updated node UI prefabs to have some more space for player decisions (useful for demo)
  • Updated demo scenes + buttons - Salsa + WebGL doesn't work, so removed it from the demos
  • Not all player decision edges have to be set (will no longer throw an error and just ignore the decisions)
  • Player trigger handler for 2D + QuestSystemPlayer2D + 2D Demo scene
  • Updated 2D Demo scene
  • Added serialization (saving & loading for user data) + Updated 3rd party FullSerializeri to latest
  • Achievements can no longer be cancelled or declined and will ignore the calls
  • Achievements with progress are saved in quest states (and can be saved in a player specific object)
  • Updated detailed quest window
  • Updated questwindow prefab
  • Removed event from triggers to avoid spagetti code -> ITriggerCallbacks is now used to call OnTriggerUsed and OnTriggerUnUsed on the first active callback component on the object
  • Extendable Issue detector (used to detect issues in the active scene for faulty configurations, empty fields, etc)
  • Cleanup default node editor
  • Removed editor styles (moved to general) + renamed achievements & Quests editro
  • Getting started editor + integration editor updated to use new General base classes
  • Renamed EditorWindowBase to BetterEditorWindow
  • Moved rewired UIWindow input handlers to general project (works for all devdog projects)
  • Variable names are now required in dialogues
  • Updated quest giver rule - Added select object
  • DialogueOwner and QuestGiver now implement the ITriggerWindowContainer
  • Moved quest givers to Quests folders
  • APACHE2 license of opensans removed
  • QuestSystemPlayer component that works in tandem with Devdog.General.Player
  • DialogueManager and QuestManager UI references are now required
  • Reflection drawers cleanup + made labelwidth variable
  • SceneLoaderHelper using new SceneUtility
  • Updated scripts to use the UIUtility -> Moved to namespace Devdog.General.UI
  • DialogueEditor update -> using new EditorReflectionUtility for deep clone
  • New character walker implements the IPlayerInputCallbacks to handle input for triggers
  • Updating naming conventions to Inventory Pro 2.5+
  • Updated serialization to avoid wrapping everything in Asset<> blocks (only recursive types have to -> Adding a Quest inside a Quest object would cause an infinite serialization loop, wrap these in Asset<>)
  • Updated scriptable objects
  • QuestGiver icons moved to QuestGiverUI for single reponsibility
  • Updated dialogue editor, can now ping a node() easily and focus on nodes + added Dialogue nodes game rule for testing dialogues
  • Quest window repaints as it should when task progress changes
  • Reflection drawers - Generics in arrays are now handled properly
  • Unity object picker inheritance fixed -> Assignable type is reversed
  • Dialogue event  OnNodeChanged not firing on dialogue.Stop() fixed
  • Open vendor node fixed with new triggers

About us

We're a developer and publisher of best-in-class tools and asset for the Unity game engine. We develop and sell but also publish products like Odin for talented developers and artists around the world.