• Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
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...
 

ThatWelshOne_

Champion
Member
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:

DragonNexus

Still looking for the One Piece
Member
Joined
Jul 18, 2019
Posts
1
Would there be a way to add the Quest Menu to Voltseon's Pause Menu?
 

ThatWelshOne_

Champion
Member
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:
#-------------------------------------------------------------------------------
# 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.
 

Prof. Tree

Rookie
Member
Joined
Sep 6, 2020
Posts
2
Would there a way to record and save what time you completed any quest, similar to how the quest start time does?
 

Dionyus

Rookie
Member
Joined
Jun 17, 2021
Posts
2
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>'
 

ThatWelshOne_

Champion
Member
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:
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
 

Dionyus

Rookie
Member
Joined
Jun 17, 2021
Posts
2
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:
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.
 

briochhe

Rookie
Member
Joined
May 31, 2021
Posts
7
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?
 

ThatWelshOne_

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

briochhe

Rookie
Member
Joined
May 31, 2021
Posts
7
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
 

ZeDivingDutchman

Novice
Member
Joined
Feb 9, 2021
Posts
14
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!
 

ThatWelshOne_

Champion
Member
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:
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.
 

DeltaZ

Novice
Member
Joined
Jul 25, 2021
Posts
17
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