• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • The Eevee Expo Game Jam has concluded! 🎉 Head on over to the game jam forum to play through the games.
    Don't forget to come back September 21st to vote for your favorites!
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Modern Quest System + UI

Resource Modern Quest System + UI 1.1.0

ThatWelshOne_

Champion
Member
ThatWelshOne_ submitted a new resource:

Modern Quest System + UI - A flexible and easy-to-use quest system!

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...

Read more about this resource...
 
Great job!!!!
Is support for v18.1 possible?

This does work in v18 with minimal edits and some tweaking of the positioning of the text. I won't release a separate script for that, but I'm happy to help you do it.

You install the quest system in a similar way to the instructions in the main post, except you'll need to copy/paste the contents of the four script files above Main in this order: 001_Quest_Config.rb, 002_Quest_Main.rb, 003_Quest_UI.rb, 004_Quest_Data.rb.
I'm not entirely sure that order matters, but stick to the same order I went with when I was writing the scripts to be safe.

Then, in 003_Quest_UI.rb, delete this line at the top of the script:
RPG::Cache.retain("Graphics/Pictures/selarrow")
And change any mentions of Input::BACK to Input::B and Input::USE to Input::C.

After that, it will work. As I said, the text will be a few pixels off, but I'll leave that to you.
 
Last edited:
Would there be a way to add the Quest Menu to Voltseon's Pause Menu?
 
Would there be a way to add the Quest Menu to Voltseon's Pause Menu?

Yes, certainly. I'm not familiar with that resource, but after a quick look, I think you'll need to open Plugins/Voltseon's Pause Menu/005_VoltseonMenu_Entries.rb and paste this block of code at the bottom of that script:
Ruby:
Expand Collapse Copy
#-------------------------------------------------------------------------------
# Entry for MQS
#-------------------------------------------------------------------------------
class MenuEntryQuests < MenuEntry
    def initialize
        @icon = "menuDebug"
        @name = "Quests"
    end

    def selected(menu)
        pbFadeOutIn {
          pbViewQuests
        }
    end

    def selectable?; return hasAnyQuests?; end
end
I think you'll also need to open 001_VoltseonMenu_Config.rb and add "MenuEntryQuests" into the MENU_ENTRIES array starting around line 24.
There might be other things you need to change, but see what happens with these changes first.
 
Would there a way to record and save what time you completed any quest, similar to how the quest start time does?
 
Hey, your questing system sounds awesome. I have just tried to load it (carefully following your steps) but I get the following error. Do you have any idea why this is? Just before trying this I successfully ran the game with the Following Pokemon EX plugin.

[Pokémon Essentials version 19.1]
[v19.1 Hotfixes 1.0.1]

Exception: NoMethodError
Message: undefined method `width' for nil:NilClass

Backtrace:
UI_Load:170:in `pbSetParty'
UI_Load:301:in `pbStartLoadScreen'
Main:6:in `main'
Main:34:in `mainFunctionDebug'
Main:18:in `block in mainFunction'
Errors:70:in `pbCriticalCode'
Main:18:in `mainFunction'
Main:44:in `block in <main>'
Main:43:in `loop'
Main:43:in `<main>'
 
Hey, your questing system sounds awesome. I have just tried to load it (carefully following your steps) but I get the following error. Do you have any idea why this is? Just before trying this I successfully ran the game with the Following Pokemon EX plugin.

[Pokémon Essentials version 19.1]
[v19.1 Hotfixes 1.0.1]

Exception: NoMethodError
Message: undefined method `width' for nil:NilClass

Backtrace:
UI_Load:170:in `pbSetParty'
UI_Load:301:in `pbStartLoadScreen'
Main:6:in `main'
Main:34:in `mainFunctionDebug'
Main:18:in `block in mainFunction'
Errors:70:in `pbCriticalCode'
Main:18:in `mainFunction'
Main:44:in `block in <main>'
Main:43:in `loop'
Main:43:in `<main>'

Hey there! This error says that you're missing the player walking sprite. If you look at your PBS/metadata.txt file, you should see these lines near the top:
Ruby:
Expand Collapse Copy
PlayerA = POKEMONTRAINER_Red,trainer_POKEMONTRAINER_Red,boy_bike,boy_surf,boy_run,boy_surf,boy_fish_offset,boy_fish_offset
PlayerB = POKEMONTRAINER_Leaf,trainer_POKEMONTRAINER_Leaf,girl_bike,girl_surf,girl_run,girl_surf,girl_fish_offset,girl_fish_offset
The second entries here (trainer_POKEMONTRAINER_Red and trainer_POKEMONTRAINER_Leaf) are the prefixes for the player walking sprites. If you then look in Graphics/Characters, you should have files called trainer_POKEMONTRAINER_Red.png and trainer_POKEMONTRAINER_Leaf.png. If you instead see that the files are called trchar000 and trchar001, then you can manually rename them. If you have a bunch of files called trcharXXX.png, then you can run a sprite renamer from the Debug menu: Other options... > Rename Old Sprites
 
Hey there! This error says that you're missing the player walking sprite. If you look at your PBS/metadata.txt file, you should see these lines near the top:
Ruby:
Expand Collapse Copy
PlayerA = POKEMONTRAINER_Red,trainer_POKEMONTRAINER_Red,boy_bike,boy_surf,boy_run,boy_surf,boy_fish_offset,boy_fish_offset
PlayerB = POKEMONTRAINER_Leaf,trainer_POKEMONTRAINER_Leaf,girl_bike,girl_surf,girl_run,girl_surf,girl_fish_offset,girl_fish_offset
The second entries here (trainer_POKEMONTRAINER_Red and trainer_POKEMONTRAINER_Leaf) are the prefixes for the player walking sprites. If you then look in Graphics/Characters, you should have files called trainer_POKEMONTRAINER_Red.png and trainer_POKEMONTRAINER_Leaf.png. If you instead see that the files are called trchar000 and trchar001, then you can manually rename them. If you have a bunch of files called trcharXXX.png, then you can run a sprite renamer from the Debug menu: Other options... > Rename Old Sprites

Thank you so much for the quick help! Turns out the graphic files were named correctly, but the PBS/metadata.txt file had trchar000 instead of trainer_POKEMONTRAINER_Red in it, for some reason. Changed it and now it works again :).

The quest UI is not showing up yet, but that's probably because no quests have been started yet. Will get going on that! Thanks again.
 
I'm using Radial Menu Script and I managed to make the Quest System work, but for my surprise it only works in debug mode, when I start my game the Quest Menu just doesn't appear. Any idea of what happened?
 
I'm using Radial Menu Script and I managed to make the Quest System work, but for my surprise it only works in debug mode, when I start my game the Quest Menu just doesn't appear. Any idea of what happened?

There are two things that might have happened:
1. You don't have any quests.
2. You have a if $DEBUG check in the code.

If you think it's neither of these things, then I'll have a look at setting up this resource with the Radial Pause Menu.
 
There are two things that might have happened:
1. You don't have any quests.
2. You have a if $DEBUG check in the code.

If you think it's neither of these things, then I'll have a look at setting up this resource with the Radial Pause Menu.
I solved the problem, it was something in the Radial Menu config, but you did help with your information ;) thanks
 
Hey! Im trying to make a quest to defeat three trainers. Is there a way to increase the stage of a quest by one? Like, I get how its stage 1, 2,3 and how you can set the quest to those stages, but I am wondering if there is a way to just... Stage +1 basically. The three trainers have no given order to fight them in, so I need all of them to "add one to quest stage" instead of setting to 1 2 or 3.

Edit: I came up with a way to it using the global variables, but thats a workaround. I wonder if theres any method to return current quest stage, but Im too scared to try and add a method myself.. Thanks so far anyway!
 
Hey! Im trying to make a quest to defeat three trainers. Is there a way to increase the stage of a quest by one? Like, I get how its stage 1, 2,3 and how you can set the quest to those stages, but I am wondering if there is a way to just... Stage +1 basically. The three trainers have no given order to fight them in, so I need all of them to "add one to quest stage" instead of setting to 1 2 or 3.

Edit: I came up with a way to it using the global variables, but thats a workaround. I wonder if theres any method to return current quest stage, but Im too scared to try and add a method myself.. Thanks so far anyway!
This should get the current quest stage for the given quest:
Ruby:
Expand Collapse Copy
def getCurrentStage(quest)
  $PokemonGlobal.quests.active_quests.each do |s|
    return s.stage if s.id == quest
  end
  return nil
end
Put it in 002_Quest_Main.rb
Use getCurrentStage(:Quest1), for example, to get the stage for :Quest1.
 
I use the Modular Pause menu v.19.1 How do I get it going? I would also use it in Pokegear, but I don't know how I have to change it in UI Pokegear. I ask for help.
 
Back
Top