Home Creators Posts Import Register Favorites Logout

Downloads

Content

This quest system allows automatic tracking, categories of quests, pinning quests, sorting, a quest board scene, and much more.

! SEE BOTTOM OF POST FOR UPDATES !

Hi all,

Today we have my biggest (in terms of line count) plugin to date: a quest system. It allows you to have a full quest system including categories of quests, sorting of quests by different categories (right now, type/difficulty/location/length), pinning quests to the top of the list, failing and completing quests, automatic and manual tracking of quest objectives, as well as an easy drag+drop method of changing which elements in the quest log display and in what order they display in.

Furthermore, there are also 2 additional scenes: (1) A quest accept scene, where the player can accept or decline a single quest and see a preview of the quest and (2) a quest board scene where the player will see a short blurb about multiple quests which they can accept from the quest board. Accepted quests will be removed from the board.

The big news here is that categories now have an icon parameter, which can help your player quickly recognize certain types of quests. Of course, since categories can be 4 different types (category, length, difficulty, location), the category icon will only display when that category type is relevant.

One area which the new category icon can display is the new Legend window for the Quest Board scene. It is optional to include in your quest board scene, and looks like this:

It can handle as many categories as appear on the quest board, but will start making the text quite small to accommodate many categories. In the future, I may make this window scroll if there are a certain amount of categories to display.

Besides the visual updates, some quality of life features that have been requested were also implemented. You can now have a switch turn ON automatically whenever a quest is started. There are parameters to change the header line gradient color in the quest log scene. You can hide gold/exp rewards if they are 0. The Quest Accept scene now optionally supports the cancel bind, instead of forcing the player to select Accept or Decline.

There was also a bug fixed with the list window, where text could overflow the window. Finally, the plugin now uses the icon selector ui for icon properties.

This update adds Toast Manager integration. Now you can show toast windows when a quest is discovered, started, completed, or failed. You can also show a toast window when an objective is completed.

This update also adds a quality of life improvement, the option to automatically turn a switch on when an objective is completed. This should hopefully make eventing around the quest system easier.

This update adds the option to automatically cause a quest to become unpinned if it is failed or completed.

This update also fixed a few bugs, such as a crash when trying to turn a switch on after completing an auto-tracked objective, and a bug with the display window not scrolling if it was displaying a long category description. This update also makes it so that invalid JSON as a result of incorrectly set up plugin parameters will not warn in the dev tools console instead of crash.

Finally, this update makes it so that you no longer need to fill out the Category Sort Order parameter to get your quests to show in the quest log. Previously, this was the sole way the plugin knew which order to show the categories in, and if they were not listed in this parameter they would not be shown. This also caused quests to not show because the quests are tied to the category. Now, the plugin will show categories in this parameter first in the order they are listed, but it will also then show any categories not included in this parameter as well.

This update adds the option to allow your players to accept quests directly from the quest log window. Quests in the quest log can be discovered but not yet started, and without this option enabled it would direct the player to go talk to the quest giver to start the quest. However, you may want your player to be able to accept the unstarted quest directly from the quest log. Now you can allow that. Here is how it looks:

 This update also added quite a bit of options around pinning quests. You can now allow your player to pin quests directly from the list window, without first needing to activate the display window and then click again to bring up the pin window. You can also now prevent players from manually pinning completed or failed quests.

Some additional customization options were also added for the quest log scene. You can now opt to always display objectives for quests that have been completed as complete, regardless of whether the objective was actually completed or not. Options were also added to allow you to change every window's background opacity, padding, and tone.

This update adds the heavily requested on-map tracker window so your player can track quest objectives and see their progress on the map. This quest tracker uses the built in pin functionality, so if the player pins a quest it will show up in the map tracker. You do not need to use the tracker at all if you do not want to, even if you want to allow the player to pin quests. Below is a gif of how the quest tracker may look:

So, how does the quest tracker work? If enabled, when the player pins a quest, they will see it in the quest tracker window. The quest tracker window itself can be configured to only show a certain amount of quests, even if more are pinned. You can also set the x, y, width, and max height the window can take up on screen. The x, y, and width values are unchanging, while the height will resize based on the text displayed up to the maximum height. You can also set whether or not clicking within the quest tracker window blocks touch ui movement or not.

There were also a few other things changed in this update. All text should now support text codes, and additional customization for header lines has been added. A small bug that accidentally declared a global variable was fixed, and a bug with auto-tracked objectives not automatically completing in some cases was also fixed. The date format now takes the user's locale into account. Integrations were added for [CGMZ] Scene Backgrounds and [CGMZ] Controls Window. The order of this plugin and [CGMZ] Toast Manager should no longer matter in the Plugin Manager.

This version focuses a lot on the recently added Quest Tracker to provide some user requested features that its initial creation was missing.

You can now automatically hide the quest tracker when a message displays. You can also control the quest tracker visibility with a game switch. The Tracker window no longer requires showing text at the top, to help save space. To use this, set the title text parameter to be blank. A bug with the quest tracker not resetting font opacity after drawing a completed objective if it was the last objective to draw has been fixed.

This update also has some general improvements. Complexity has been reduced by removing the Pin From List Window optional parameter. This is now the default and only way pinning works. Previously, you had the option to show the pin command only after the display window was selected, mainly so controller players could manually scroll the display window. Since they can now always do this without needing to activate the window, this option served no purpose.

This update also converts the recommended level color parameters to text code colors instead of HTML color text. This should make it easier for beginners to edit the colors, while advanced users can still create custom colors through these parameters by using [CGMZ] Infinite Colors. You can now also opt to not display the recommended level at all in the list window.

This version adds a bunch of user requests. The quest accept and quest board scenes now allow you to set a custom sound for when a quest is accepted. You can also disable the decline / cancel option in the quest accept scene. These were added to the plugin commands, but old plugin commands should still work as they did before.

Another heavily requested feature is that pinned quests will now appear in the order the player pinned them, with oldest pins on top and newest pins on bottom. This occurs both in the quest scene and in the quest tracker.

The quest displays have received a lot of work, and should now be much more responsive to custom font size changes. A missable flag was added to quests which you can also display. Quests can now have unique completed or failed quest descriptions. Custom Space and Blank Line display options were added to allow you to space your quest display line items exactly how you want. See below image for how it can look:

Some bugs were also fixed. The display window scrolls will no longer be very slightly off when using custom padding, and the reward divider should no longer print extra info in case there are no rewards.

IMPORTANT: This update changed the description parameter type from an array of notes to an array of multiline_strings. This change reduces the need to parse each note individually, lowering the chance for plugin error. However, it does mean you will need to edit your descriptions to remove some of the old json symbols such as the starting and ending quotation marks that will now be there, as well as the \n for new lines.

The new pinned quest order may be wrong for existing saves until you unpin all previously pinned quests and repin them. 

This version adds the option to hide rewards. This can be used to hide individual reward items, weapons, or armors on a per-item basis. A separate flag has been added to hide exp or gold too. This will hide them even if they are set to always display, which is more meant to display 0 for people who want to display 0 gold/exp as a reward. However, if planning to hide all rewards you should instead remove the reward line item from the display parameters.

This update also fixes a crash that occurs with the new [CGMZ] Core update when checking for automatic item quests.

This version adds an integration to [CGMZ] Window Settings, which is now where the windowskin, tone, padding, etc. parameters can be found. This should reduce the overall amount of parameters while providing even more control over your windows, making the plugin easier to learn and even more powerful than before.

If you had previously used the window options via this plugin, please re-create them via a preset in [CGMZ] Window Settings and then enter in your preset id here. This includes the "tranparent windows" option as now you can also choose to make your windows have the dim appearance via the integration.

This update also adds an integration with [CGMZ] Window Backgrounds, so you can now show images as your window backgrounds including scrolling animated parallax images.

A new property was added to the quest board plugin command to allow you to exit out of the scene if the player accepts a quest from the quest board. Old plugin commands should function as they did before, so you should not need to go through and update them if you do not want this new behavior.

This version adds a check for quest tracker visibility which comes from the config manager (options scene). You can create an option that allows the player to turn on/off the quest tracker window if they want to be more immersed in the game without so much UI on the map.

This update also added auto-tracking for switch objectives. You can now make a quest objective that automatically completes when a switch is turned ON.

This version improves the [CGMZ] Toast Manager integration by converting toasts to the toast manager preset system. You can still use the text code %questname to be replaced with the quest's name in the toast window.

Each quest can now have its own unique toasts. There is still the default toast, but if possible this plugin will use the toast set up in each individual quest's parameters first and only fall back to the default if no specific toast is set for the quest.

An option was also added to not discover quests the player declines in the quest accept / quest board scene.

This version focuses on the pinning mechanic, which is how quests appear in the on-map quest tracker. Previously, the player had to go in and pin quests manually, however now you can use a plugin command to pin the quest (or unpin, or even toggle pinned status). This could be important to make sure your main story quest gets pinned.

This update also added a way per-quest to disable the player's ability to unpin the quest, meaning it would only become unpinned through other means such as the new plugin command or being completed/failed if set to auto unpin during those scenarios. This can help you ensure your player can't remove important quests from the pins.

This update added an integration with [CGMZ] Drop Tables for quest rewards. Now you can have your quests reward something based on a drop table, which can provide more variety. As the reward is not hard-coded, it comes with a reward description parameter as well which is what will be shown to the player in places like the quest log or accept quest scene.

A bug was fixed with the Allow Pins parameter not disabling the player ability to pin/unpin quests if set to false. A parameter to change the list window quest entry height was added, in case you do not want the quest entries to be 2 lines tall. A bug was fixed when drawing quest rewards where every reward was set to be hidden. A bug was fixed with the sort touch ui button not re-appearing in all cases.

This version adds a plugin command to reset quests, which means you can now easily make repeatable quests! When you reset a quest, it will get reset as if the player has not yet discovered or started it. You can optionally specify if you only want the plugin command to work if the quest is finished, which can save you some eventing to check if a quest is finished (if that matters for your use case). A finished quest means either completed or failed.

This update also added statistic tracking for the quest system as a whole. It now keeps track of the total amount of quests the player has completed, started, failed, and objectives completed. If you reset a quest and complete it again, this will count as 2 completed quests for the statistic counter.

Some smaller user requests were also added. You can now set the column count in the quest board list window, you can reverse the order objectives are displayed, and you can queue a common event as a quest reward.

This version adds the option to automatically remove any automatic objectives' requirements when the objective is completed. Note that this only works for automatically tracked objectives. This is a new setting you can set to true or false when creating your objectives.

This version also adds an integration with [CGMZ] Rumble so you can now rumble the controller whenever a quest is completed or failed. You can set up different rumble settings for both scenarios.

This version focuses on the accept quest scene, which is where the player will see basic info for a single unstarted quest and can choose to accept or decline it. You can now choose with drag+drop what is displayed and where here, with new options for a blank line or custom space. You can also choose the description alignment here.

This update also added support for the automatic space after label text from [CGMZ] Core. Now, if you have that option enabled in [CGMZ] Core, the labels in this plugin will automatically have a space added after them.

This version is mostly put out to fix the slight flicker when first showing the quest tracker window, as it would initially appear at full size until it was set to the proper height needed. A short delay has been added so it can resize itself while still hidden, but after refresh.

This update also added size and position options for the quest accept scene window, so you can now set its width / height and add an x or y offset. The quest board scene had similar options added. I added a mechanic parameter to disable the level up messages from quest completions.

The scene parameter options have now been organized into Quest Log, Quest Accept, and Quest Board parents. This should help make it more clear what each parameter affects, and allow you to find them easier.

This version adds options to control both the title text at the top of the quest tracker window, and quest name text in the tracker window. This should give you some more control over how quests appear in the tracker window. I also added an option to set a different name to show for the quest in the tracker window, since there is limited space this might be useful. If no tracker name is set, it will use the standard Quest Name property.

The objective complete and failed icons now have x/y offset parameters, so you can more easily position where they get drawn.

The quest tracker can now also fade in and out based on if it is overlapping the player on the map, for example at the edge of a map where the player may walk behind the quest tracker. You can choose the fade opacity, so it does not disappear completely but rather becomes easy to see through. See below gif for how this can look.

This update fixes a crash that could occur when completing multiple auto tracked quests at the exact same time, such as if they all track the same item.

Files

Comments

Puppet Knight

Hey hey, subscribed just for this ^_^. Any plans to have a tracker that appears on the Map that players can track their pinned quests of their choosing? Would be a great QOL add in

Casper Gaming

Hi, yes I will be making one. Initially I planned to save it for CGMZ HUD, but due to the size of that plugin eventually I realized it would go against my typical more modular approach to require such a large extra plugin just for a quest tracker on the map scene. Also because CGMZ HUD has been taking a long time to make due to the size 😅. So I am now working on the on-map quest tracker as a part of CGMZ Quest System that doesn't require another plugin.

Penny

I cannot seem to get this plugin to work. I created a quest and have an npc Start it using the plugin command. When I go into the Quest screen though it doesn't show up. Is there a video or example project with this plugin in set up by any chance?

Casper Gaming

Hi, it seems you already received help from the Discord, but just to clarify what was going wrong is that you need to add any category that can show up in the window to the Category Sort Order parameter. Otherwise the plugin won't know where that category should display, so it will skip displaying it. Quests are tied to their category, so if the category doesn't show up then the quest also can't show up.

Robert

Hey Casper, love this plugin. Been looking for an auto tracking Quest plugin for a while now. Just wondering if it would be possible to have the ability to have quests board quests activated with a switch on, then removed on completion? Also is there any plans to add auto defeated Monsters to the tracking or is it that too difficult? My game has a progressive Quest board in it that has become a mess of show choices before I started using this plugin and I see the potential in the Quest board to make that a thing of the past. Also a conditional choices script check to check on a Quest/Objective's state (in progress/complete/failed/etc) would be helpful for the manually tracked quests

Robert

Sorry that was jumble of words that wasn't super clear. Basically I'd like the quests to only show in the quest board if a particular switch is on or some other pre requisite. Because you have to load the quests into the quest board when you call it, if a quest has a part 2/3/etc. that are all separate quests(not objectives) parts 2 and 3 need to be loaded into the board at the same time as part 1 and can be accepted and completed before intended. Hope that makes more sense.

IF

Help! I've been trying to get this to work but whenever I launch the project I get "ReferenceError CGMZ_Window_Selectable is not defined". I don't know what I'm doing wrong.

IF

Yes

IF

My console won't open

IF

Thanks you so much!