Quest Journal
Version: 2.1c
Author: modern algebra
Date: February 17, 2012
Version History
- < Version 2.1c> 2012.02.17 - Fixed a bug where the scrolling window would not be large enough
- <Version 2.1b> 2011.08.16 - Fixed a bug with removing quests
- <Version 2.1a> 2011.05.11 - Fixed a bug where selecting an empty slot in the Quest Shop would cause an error
- <Version 2.1> 2011.05.09 - Added features to show client, location, and level and also made it so you could change the order in which each section appears. Also added a feature to distribute rewards and made compatibile with Dargor's Custom Commands
- <Version 2.0a> 2011.05.05 - Clarified compatibility with other menu scripts (must be pasted below!) and added a feature to turn off justified text
- <Version 2.0> 2011.05.01 - A complete rewrite of the script and including tons of new features, including page scrolling, rewards, easier script calls, quest shops, and more.
- <Version 1.1> 2008.04.10 - A minor bug fix involving quests with ID 4. A few added functions for tracking quests, including the ability to conceal given quests as well as uncompleting and unfailing objectives. This older version is still supported and you can find the demo attached (Just in case anyone downloads this thinking otherwise, this is obviously the demo for 1.1, not 2.0)
- <Version 1.0> 2008.03.25 - Original release
Description
This script provides a graphical interface for showing quest progress. It is objective based, meaning that you choose when to reveal objectives and you can set it so that they show up as complete or failed. That said, this script does not build quests for you; it is only a supplementary scene for showing them. As such, you need to event all of the quests yourself and update/monitor quest progress via script call. Therefore, pay close attention to the instructions both here and in the EDITABLE REGIONS.
For people already using 1.1 and wanting to convert their projects to the new Quest Journal 2.0, you don't have to TOTALLY restart making all of your quests. Just go to line 392 and replace the when branches there with the ones you made for 1.1. Then, if you wanted to make use of the new features like rewards, you can add those lines. Otherwise, the quests you setup will look and operate exactly like they did in 1.1. Similarly, all of the old commands, like $game_party.quests[id].reveal_objective (y) still work, so you won't need to go changing every event you ever used it for. But there are easier ways to do it now.
Features
- Supports hundreds of objective-based quests (only limited by the Bitmap size limit), all of which are uniquely created by you!
- Vastly configurable! You can change anything from the font of subtitles to the windowskins to the very order in which the sections of the quest information are laid out
- Quests are updated and monitored by short and easy to use script calls (For instance, rather than the $game_party.quests[5].reveal_objective (0) of previous versions, it is simply reveal_objective (5, 0) and you can even reveal more than one objective at a time)
- If the information is too much to fit on one page, you can select the quest and use the vertical directional keys to scroll it up and down
- Customizable categories. Not only are you no longer required to have the four default categories, you can change their order and create new categories
- You can create quest shops where the player can purchase quests from a vendor and have it revealed to them
- You can change the details (like name, description, rewards) in-game
- You can now set rewards to a quest and it will list them
- You can now show a banner at the top of a quest
- Can assign quests a common event which it will call the moment it is completed.
- Built in to the default menu, but you could also cancel that and have it accessible by key from the map
- Can call the quest menu up to a specific quest
- If using the Special Codes Formatter, can use special message codes to draw icons, change the colour of text, etc...
Screenshots A simple, completed quest which has a banner. As it has too much information to fit, you can select the quest and scroll down to see the rest. Moreover, notice that I have changed the labels (Missions, Summary, etc...), the fonts, the colors, and even the size of the text. All of this is customizable unlike in previous versions.
A pretty ugly screenshot to show that the order of everything can be changed. Want the description to show up first, then the name, then the banner, then the client, etc... you can do that!
This is the brand new Quest Purchasing scene! Here you can have the player pay gold to reveal a new quest.
You can use a background image behind the quest menu if you so desire. That one does not mesh well at all; it's just a sample I found at
http://1024x.net/65/-/Colorful_Pattern_Background/. You can also make the windows totally transparent if you want.
Instructions
Paste this script into the Script Editor (F11) in its own slot above Main and below Materials.
I would recommend separating the Configuration module from the Script itself in two different slots, as I think it makes it neater. That is totally optional though. If you do want to do it though, instructions on where to make the split are located in the Script Header at line 20.
Instructions for creating, updating and monitoring quests, as well as for changing the settings, are all in the Script header and in the two EDITABLE REGIONS. It is highly recommended that you take the time to familiarize yourself with them in detail.
In brief, however, the following codes are used to update quest progress:
reveal_objective (quest_id, objective_id_1, ..., objective_id_n)
quest_id : the integer ID of the quest you want to access.
objective_id_1, ..., objective_id_n : a list of the IDs of the
objectives you want to operate on. It can be as few as one or as
many as all of them.
conceal_objective (quest_id, objective_id_1, ..., objective_id_n)
complete_objective (quest_id, objective_id_1, ..., objective_id_n)
uncomplete_objective (quest_id, objective_id_1, ..., objective_id_n)
fail_objective (quest_id, objective_id_1, ..., objective_id_n)
unfail_objective (quest_id, objective_id_1, ..., objective_id_n)
change_reward_status (quest_id, value)
The following codes are used in a conditional progress to monitor quest progress (each of the objective_etc? will only return as true if the quest is also revealed):
quest_revealed? (quest_id)
quest_id : the integer ID of the quest you want to access.
objective_revealed? (quest_id, objective_id_1, ... objective_id_n)
objective_id_1, ..., objective_id_n : a list of the IDs of the
objectives you want to operate on. It can be as few as one or as
many as all of them.
quest_complete? (quest_id)
objective_complete? (quest_id, objective_id_1, ... objective_id_n)
quest_failed? (quest_id)
objective_failed? (quest_id, objective_id_1, ... objective_id_n)
quest_rewarded? (quest_id)
For details on what each of these does, see the script. As well, there are lots of other instructions in the script you should pay attention to. Read them carefully!
You can also change the attributes of quests in-game with any of the following codes:
quest (quest_id).method = new_value
method : the attribute you want to change. This can be either:
banner; name; description; objectives; prime_objectives; rewards;
common_event_id; icon_index; or custom_categories.
new_value : this is the value that you are changing it to. It must
be of the same form as the original (ie. a string for name or
description, an array of strings for objectives, an integer for
icon_index, etc...)
Script
This script is too long to post, so please retrieve it from
Pastebin.
You can also get it from the
demo, but if you do, you need to take both the configuration module and the Implementation part. I recommend you take the clean configuration copy.
NB: This script
REQUIRES the
Paragraph Formatter! The
Special Codes Formatter (found under the Addons in that same topic) is also recommended. If you want the Description box rounded, then you need the
Bitmap Addons script.
Credit
Support
Please post in this thread at RMRK if you encounter any bugs or incompatibilities or errors, and I will do my best to resolve it. Feel free to post also if you have any suggestions or simply want to talk about the script.
Known Compatibility Issues
This script is designed to automatically insert itself in the default menu, if you turn that option on. It is also made to do the same with YEM Main Menu Melody, my own Full Status Custom Menu System, my own Phantasia-esque Custom Menu System, and Dargor's Custom Commands. It has to be
pasted below them in the Script Editor, however. It may work if you place it below other Menus as well, but it was not designed for them and so there might be an incompatibility there. You can always turn MENU_ACCESS off and insert it manually into the other menu script if need be.
Other than menu systems, there probably aren't very many scripts with which it would be incompatible. If you encounter any, please post in this topic and I will try to help you out.
Demo
Please see
attached (need to be logged in)