- Pokémon Essentials Version
- v21.1 ✅
- Also compatible with
- v21.1
- v21
- v20.1
- v20
- v19.1
- v19
This resource can be used to add a flexible quest system to your game, together with an HGSS-inspired UI for viewing quest information! This is a heavily edited version of mej71's original implementation for earlier versions of Pokémon Essentials. Other credits go to derFischae for upgrading and maintaining mej71's script for v17.2 and v18/18.1, Marin's Easy Questing Interface for inspiring some of the UI components, Phantombass for helping out with testing, and lots of people in various Discord servers for their valued feedback.
Features
The image below shows how the quest description pages look. This summarises what the player should know about the selected quest. The text colour here is not set in stone. I just picked different colours for fun. If you want to change these colours, you'll need to make some small edits in 003_Quest_UI.rb. Search for
Installation (v21/21.1)
1. Download the .zip file from the MediaFire link by clicking on "Go to download" in the top right of this page.
2. Once downloaded, open the .zip file.
3. Drag the Audio, Graphics and Plugins folders you see into your project's main folder (where you have Game.exe), allowing them to merge with your existing folders.
4. Compile your game.
Installation (v20/20.1)
1. Download the .zip file from this MediaFire link.
2. Once downloaded, open the .zip file.
3. Drag the Graphics and Plugins folders you see into your project's main folder (where you have Game.exe), allowing them to merge with your existing folders.
4. Compile your game.
Installation (v19/19.1)
1. Download the .zip file from this MediaFire link.
2. Once downloaded, open the .zip file.
3. Drag the Audio, Graphics and Plugins folders you see into your project's main folder (where you have Game.exe), allowing them to merge with your existing folders.
4. Compile your game.
How to use
I have put detailed instructions on how to use this resource in the Plugins/MQS/meta.txt file that comes with the download of this resource. You should take the time to read those instructions.
For an overview, there are four key methods that you'll need to use:
1.
2.
3.
4.
The
Accessing the UI
I suggest allowing the player to access the quest UI via the pause menu or Pokégear, as you prefer. I'll describe how to bring up the quest UI from the default pause menu. It's up to you to work out how to do the same if you're using a custom pause menu.
Put the following code at the bottom of the UI_PauseMenu script:
Feel free to rename "Quests" to whatever you like to suit your game, like "Mission Log" or similar. Edit the value defined by
Controls
Press the left/right arrows to move between active/completed/failed quest lists and to swap quest description pages.
Press the up/down arrows to navigate the main quest list.
Press A/S to jump down/up when looking at the main quest list.
Press C/Space/Enter to view the highlighted quest's details.
Press X/Esc to close the UI.
If you're still with me, I want to say "thank you" for reading that wall of text. I really hope it made some sort of sense. Please report any crashes or bugs in the discussion section. Alternatively, you can reach me on Discord (ThatWelshOne_#3324).
Thanks for reading!
Features
- Easy-to-use and flexible quest system.
- No limit on the number of stages a particular quest can have.
- Lots of colour options with the ability to add your own.
- An indicator (exclamation mark) for when a quest is updated. No guessing involved!
- Some customisation is possible with more to come in the future!
SHOW_FAILED_QUESTS
in the config script.The image below shows how the quest description pages look. This summarises what the player should know about the selected quest. The text colour here is not set in stone. I just picked different colours for fun. If you want to change these colours, you'll need to make some small edits in 003_Quest_UI.rb. Search for
colorQuest
and you should see what you need to change.Installation (v21/21.1)
1. Download the .zip file from the MediaFire link by clicking on "Go to download" in the top right of this page.
2. Once downloaded, open the .zip file.
3. Drag the Audio, Graphics and Plugins folders you see into your project's main folder (where you have Game.exe), allowing them to merge with your existing folders.
4. Compile your game.
Installation (v20/20.1)
1. Download the .zip file from this MediaFire link.
2. Once downloaded, open the .zip file.
3. Drag the Graphics and Plugins folders you see into your project's main folder (where you have Game.exe), allowing them to merge with your existing folders.
4. Compile your game.
Installation (v19/19.1)
1. Download the .zip file from this MediaFire link.
2. Once downloaded, open the .zip file.
3. Drag the Audio, Graphics and Plugins folders you see into your project's main folder (where you have Game.exe), allowing them to merge with your existing folders.
4. Compile your game.
How to use
I have put detailed instructions on how to use this resource in the Plugins/MQS/meta.txt file that comes with the download of this resource. You should take the time to read those instructions.
For an overview, there are four key methods that you'll need to use:
1.
activateQuest(quest)
- for activating a quest and adding it to the quest log2.
advanceQuestToStage(quest, stageNumber)
- for advancing a quest to the given stage (if applicable)3.
completeQuest(quest)
- for marking a quest as complete4.
failQuest(quest)
- for marking a quest as failedThe
quest
argument should be the symbolic name of the relevant quest defined in module QuestModule
. You'll read more about this in the file I mentioned above. The stageNumber
argument should be a number that represents progress towards completing a quest. This is only needed for the advanceQuestToStage
method.Accessing the UI
I suggest allowing the player to access the quest UI via the pause menu or Pokégear, as you prefer. I'll describe how to bring up the quest UI from the default pause menu. It's up to you to work out how to do the same if you're using a custom pause menu.
Put the following code at the bottom of the UI_PauseMenu script:
Ruby:
MenuHandlers.add(:pause_menu, :quests, {
"name" => _INTL("Quests"),
"order" => 50,
"condition" => proc { next hasAnyQuests? },
"effect" => proc { |menu|
pbPlayDecisionSE
pbFadeOutIn {
scene = QuestList_Scene.new
screen = QuestList_Screen.new(scene)
screen.pbStartScreen
menu.pbRefresh
}
next false
}
})
order
to change where the UI element appears (a value of 50 puts it between the trainer card and Save).For pre-v20 only!
Go to UI_PauseMenu and find this line:
Paste this below it:
Next, find this line:
Paste this below it:
Finally, find this line:
Paste this chunk of code above it:
Like this, "Quests" will only appear if you have any quests. You can put these new lines in different places to vary where "Quests" appears in the pause menu. You can also change "Quests" to whatever you want, like "Mission Log" or similar.
Go to UI_PauseMenu and find this line:
cmdBag = -1
Paste this below it:
cmdQuest = -1
Next, find this line:
commands[cmdPokegear = commands.length] = _INTL("Pokégear") if $Trainer.has_pokegear
Paste this below it:
commands[cmdQuest = commands.length] = _INTL("Quests") if hasAnyQuests?
Finally, find this line:
elsif cmdPokegear>=0 && command==cmdPokegear
Paste this chunk of code above it:
Ruby:
elsif cmdQuest>=0 && command==cmdQuest
pbPlayDecisionSE
pbFadeOutIn {
pbViewQuests
@scene.pbRefresh
}
Like this, "Quests" will only appear if you have any quests. You can put these new lines in different places to vary where "Quests" appears in the pause menu. You can also change "Quests" to whatever you want, like "Mission Log" or similar.
Controls
Press the left/right arrows to move between active/completed/failed quest lists and to swap quest description pages.
Press the up/down arrows to navigate the main quest list.
Press A/S to jump down/up when looking at the main quest list.
Press C/Space/Enter to view the highlighted quest's details.
Press X/Esc to close the UI.
If you're still with me, I want to say "thank you" for reading that wall of text. I really hope it made some sort of sense. Please report any crashes or bugs in the discussion section. Alternatively, you can reach me on Discord (ThatWelshOne_#3324).
Thanks for reading!
- Credits
- ThatWelshOne_
mej71
derFischae
Marin