• 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.
  • Eevee Expo's webhost has been having technical issues since Nov. 20th and you might be unable to connect to our site. Staff are also facing issues connecting, so please send a DM to Cat on-site or through Discord directly for faster service!
Modern Quest System + UI

Resource Modern Quest System + UI 1.1.0

gengardelaisla93

Novice
Member
Joined
Aug 9, 2023
Posts
11
Dude, I literally wrote ":Quest1". The error was literally saying "The 'quest' argument should be a symbol, e.g. ':Quest1'." Why do you write it without the ":"?
Ok Mate, now it works. Sorry, i'm italian and I don't understand English well.
Since I use the Modular Menu, do you have any idea how to add the or put it in the pokegear?
 

SalyaDarken

Breeder?
Member
Joined
Jan 3, 2022
Posts
52
I'm might be missing something but I got a few questions.

1. How do I complete a quest? Like my quest 1 is a battle any one pokemon.
2. How do I give how the reward?

I read over all of the comments and can't find the answers.
 

rafahbit

Trainer
Member
Joined
Oct 21, 2020
Posts
53
I'm might be missing something but I got a few questions.

1. How do I complete a quest? Like my quest 1 is a battle any one pokemon.
2. How do I give how the reward?

I read over all of the comments and can't find the answers.
for the player to accept the quest, you call the activateQuest(quest id) script in an event. to complete, it is also necessary to call an event (as far as I know), the script to complete the quest is: completeQuest(quest id)


You can do the following, if the mission is to catch any Pokémon and have it on your team, you can do the following:

1. Event to accept the quest, in the quest description it states that upon catching the specific Pokémon, the player needs to return to the NPC/event to complete the quest.

2. Put in the same event a local switch to call a new page when accepting the quest.

3. In this new event page, add a conditional branch to check if the Pokémon is in the party or not, for example: $player.has_species?(:PIKACHU). If it returns as true, there is a Pikachu in the party, you state that the quest was completed with the mentioned script above.
If the player talks to the NPC and there is no Pikachu in the party, you include in the exception a message stating that there is no Pokémon and that they should come back and catch it.

3.5 If it's any random Pokémon to complete the quest, you need to call a conditional branch with: $player.pokemon_count. And state that if the party has 2 or more Pokémon, the quest will be completed. If there are not 2 or more, in the exception, you put a message that the player did not catch the Pokémon. (Honestly, I've never used this script and don't know how it actually works, I mention it because I remembered its existence in the essentials wiki.)

To give the reward, you call the script: pbReceiveItem(:POTION)If it's more than 1 item you put it as (:POTION,2) and if they are different items you call them in separate scripts separately.If you're using the Key Items plugin or want to give a badge or another type of reward like money, you have to call the specific script. In the case of money, you can call: $player.money += 1000 or in the event itself the RPG Maker has the option to add more money.

If you can't do this, I can make an example in my game and see how it would work correctly and send it to you later. Right now, I'm writing this on my phone and here in Brazil it's already 1 a.m. hahaha.
 
Last edited:

SalyaDarken

Breeder?
Member
Joined
Jan 3, 2022
Posts
52
for the player to accept the quest, you call the activateQuest(quest id) script in an event. to complete, it is also necessary to call an event (as far as I know), the script to complete the quest is: completeQuest(quest id)


You can do the following, if the mission is to catch any Pokémon and have it on your team, you can do the following:

1. Event to accept the quest, in the quest description it states that upon catching the specific Pokémon, the player needs to return to the NPC/event to complete the quest.

2. Put in the same event a local switch to call a new page when accepting the quest.

3. In this new event page, add a conditional branch to check if the Pokémon is in the party or not, for example: $player.has_species?(:PIKACHU). If it returns as true, there is a Pikachu in the party, you state that the quest was completed with the mentioned script above.
If the player talks to the NPC and there is no Pikachu in the party, you include in the exception a message stating that there is no Pokémon and that they should come back and catch it.

3.5 If it's any random Pokémon to complete the quest, you need to call a conditional branch with: $player.pokemon_count. And state that if the party has 2 or more Pokémon, the quest will be completed. If there are not 2 or more, in the exception, you put a message that the player did not catch the Pokémon. (Honestly, I've never used this script and don't know how it actually works, I mention it because I remembered its existence in the essentials wiki.)

To give the reward, you call the script: pbReceiveItem(:POTION)If it's more than 1 item you put it as (:POTION,2) and if they are different items you call them in separate scripts separately.If you're using the Key Items plugin or want to give a badge or another type of reward like money, you have to call the specific script. In the case of money, you can call: $player.money += 1000 or in the event itself the RPG Maker has the option to add more money.

If you can't do this, I can make an example in my game and see how it would work correctly and send it to you later. Right now, I'm writing this on my phone and here in Brazil it's already 1 a.m. hahaha.
I set up quest 1 to battle and catch a random pokemon, then go back to talk to Faye, who gives out the quest but nothing happens. I'm going to play around with it some more but I don't know...
 

rafahbit

Trainer
Member
Joined
Oct 21, 2020
Posts
53
I set up quest 1 to battle and catch a random pokemon, then go back to talk to Faye, who gives out the quest but nothing happens. I'm going to play around with it some more but I don't know...
I can do something that might please you.

I took the premise that it is an initial quest, where the objective is for the player to obtain a second pokemon after choosing the initial one.

The event looked like this:
page 1.png
page 2.png
page 3.png



I recorded how it works so you can see, I added a pokemon in debug mode but it will work if you capture the pokemon, and it doesn't matter what its state is, if it is fainted or not.

 

SalyaDarken

Breeder?
Member
Joined
Jan 3, 2022
Posts
52
Well got pass the pokemon count part. Now it's the quest complete part is messing up now.

Edit: Nevermind. I forgot the : . lol But I got it to work. Thank you so much. ^_^
 
Last edited:

LinKazamine

Champion
Member
Joined
May 24, 2023
Posts
683
Question: is there a way to get a quest and complete a quest without talking to someone?
Well, you can. Activating and completing a quest is merely putting the code for them in an event and activating it. Since the event can also be activated automatically (or run in parallel) or by having the player touch it, you can activate and complete a quest by having the player pass over the event, for example.
 

Banshee

Rookie
Member
Joined
Feb 22, 2024
Posts
4
hey there, I've been trying to get the resource running but run into some problems. Everything is seemingly working with regard to setting up the quests, but when i go to check the menu (I'm using Voltseon's pause menu btw) there isn't a button to access the quests. There is, however, a string of text on the screen saying that there is a new quest added- so I'm not quite sure where the issue is. Any help would be appreciated! :)
I'm currently having the same problem :/
 

Banshee

Rookie
Member
Joined
Feb 22, 2024
Posts
4
I'm not sure why that's happening. What version of Essentials are you using?
Hi, thank you for answering. I'm currently using v21.1

I also have a bunch of other Plugins, don't know if some of them could be messing up with yours?

As the other comment I mentioned said, the quest itself gets activated and everything works just fine. It also shows (in the Pause Menu) that there is a new quest, but the "Quest button" doesn't show up and you can't access/read the quest itself
 

ThatWelshOne_

Champion
Member
Hi, thank you for answering. I'm currently using v21.1

I also have a bunch of other Plugins, don't know if some of them could be messing up with yours?

As the other comment I mentioned said, the quest itself gets activated and everything works just fine. It also shows (in the Pause Menu) that there is a new quest, but the "Quest button" doesn't show up and you can't access/read the quest itself
This might be because neither this resource nor VPM have been updated for v21.1, I think. This resource seems to work fine in v21.1 as is (I've only just tried for the first time >.<), so the issue might be with VPM? You could try asking there.
 

Banshee

Rookie
Member
Joined
Feb 22, 2024
Posts
4
I, fixed it?
For anybody else wondering:

First thing, add an icon in "Graphics/Pictures/VPM" and call it "menu_quests" (I went in "Graphics/Pictures/QuestUI" and copied the "new.png" then pasted it. Make sure the icon is 48x48 pixels, if not, make it be 48x48 pixels).
Then, copy the "sel_arrow.png" file from "Graphics/UI" (it's not in a folder) and paste it in "Graphics/Pictures" and rename it "selarrow.png"

Then, in the Script Editor, scroll down and go to "UI_PauseMenu" and at the end add:

MenuHandlers.add(:pause_menu, :quests, {
"name" => _INTL("Quests"),
"icon_name" => "menu_quests",
"order" => 35,
"condition" => proc { next hasAnyQuests? },
"effect" => proc { |menu|
pbPlayDecisionSE
pbFadeOutIn {
scene = QuestList_Scene.new
screen = QuestList_Screen.new(scene)
screen.pbStartScreen
}
next false
}
})

1.png

(should look like this)

Idk how I did it but It works and everything shows properly.
I haven't fully tested everything but it should work!
 

ThatWelshOne_

Champion
Member
I, fixed it?
For anybody else wondering:

First thing, add an icon in "Graphics/Pictures/VPM" and call it "menu_quests" (I went in "Graphics/Pictures/QuestUI" and copied the "new.png" then pasted it. Make sure the icon is 48x48 pixels, if not, make it be 48x48 pixels).
Then, copy the "sel_arrow.png" file from "Graphics/UI" (it's not in a folder) and paste it in "Graphics/Pictures" and rename it "selarrow.png"

Then, in the Script Editor, scroll down and go to "UI_PauseMenu" and at the end add:

MenuHandlers.add(:pause_menu, :quests, {
"name" => _INTL("Quests"),
"icon_name" => "menu_quests",
"order" => 35,
"condition" => proc { next hasAnyQuests? },
"effect" => proc { |menu|
pbPlayDecisionSE
pbFadeOutIn {
scene = QuestList_Scene.new
screen = QuestList_Screen.new(scene)
screen.pbStartScreen
}
next false
}
})

View attachment 26890
(should look like this)

Idk how I did it but It works and everything shows properly.
I haven't fully tested everything but it should work!
Interesting. Thanks for sharing.
 

UnOvA

VesitaBoy
Member
Joined
Sep 24, 2023
Posts
95
Hey guys, I tried to implement the plugin (for v20.1) and all but it just wont show inside the pause menu? I have added the script which adds the new handler but it just doesnt show up. Do I have to make some extra changes?
 
Back
Top