• 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.
Quest Log

Resource Quest Log 1.0

Yumil

Novice
Member
Joined
Aug 28, 2021
Posts
18
Yumil submitted a new resource:

Quest Log - Adds a quest log menu to the Poké Gear to let the player keep track of the sidequests of the game.

Originally made for Pokemon Desolation, I decided to port this over to Essentials 19 since it'd probably see some use here.

This adds a Quest Log button to the Poké Gear. Button opens another menu with two tabs : one for Main Quests, one for Side Quests. Quests have a "state" where they're either undiscovered (and show up as question marks on the menu), in progress (self-explanatory), or finished(have a [DONE] prefix and are moved to the bottom of the list). Each quest is comprised of...

Read more about this resource...
 

Yumil

Novice
Member
Joined
Aug 28, 2021
Posts
18
I suppose you're thinking of displaying what reward the quest would yield ? Because if you mean "how would I reward the player for completing a quest", well, you're already calling the script in places where they'd complete the quest so nothing stops you from making another script call to give an item.

Currently there's no way to display the rewards on the quest screen. Aside, I dunno, using the first goal of the quest to display it or some kind of dirty fix. Caz never really felt the need for them back when I developed it for Desolation and I didn't really think about it while porting it.

I can see why one would need it and I'm not against implementing them in an update, I'm just not sure of a good way to add them right now. It goes without saying, but I'm open to feedback and suggestions ! Don't hesitate to let me know if more people would like something like this added.
 

DeltaZ

Novice
Member
Joined
Jul 25, 2021
Posts
17
Can you do a collecting quest with the plugin? E.g. collect 10 pokeballs?
 
Can you do a collecting quest with the plugin? E.g. collect 10 pokeballs?
That's one of the examples in the screencaps-
6899
 

Jos_Louis

Developer of Pokemon Soulstones
Member
Joined
Sep 3, 2020
Posts
147
The documentation is worded a bit confusingly and I'm not understanding how to use the pbSetQuestGoal properly.

What I want to do is I want to talk to NPC A, he will reveal the quest in the quest log so it goes from ??? to actually discovered in the main quest page. Then if I talk to NPC B, I want the first part of the quest text to actually disappear and only show the next "stage" of the quest.

["Picnic at the Lake","0","true",
[["1","Step 1 revealed"],
["2","Step 2 revealed and Step 1 disappears."],
["3","Step 3 revealed and Step 2 disappears."]]],

How do I construct this in the 0-PBSFileWorkaround.rb and call the pbSetQuestGoal in an event in both NPC A and NPC B?
 

Yumil

Novice
Member
Joined
Aug 28, 2021
Posts
18
Can you do a collecting quest with the plugin? E.g. collect 10 pokeballs?
-While TechSkylander offered an answer already, i'd advise against this solution. Tracking count of a single item is not quite the same thing as gathering various items and is going to be a lot more tedious. Like, you'd have ten goals "gather a poké ball" ? That doesn't sound practical. also how would you handle shopping and buying all of them at once ? Are you gonna tinker with the shopping code ? sounds like a lot of work for not much.

-What you could do: You could update the text of one of the goals to include the current count of the item in your bag. Like, $QuestLog[1][3][1][1]= "Collect ten Poké balls ("+$PokemonBag.pbQuantity(:POKEBALL).to_s+"/10)". That way the count would be linked to the number of balls in your bag.

However, don't do this. While it sounds like a decent solution, you'd have to add a way to update the count, and the state of the goal whenever the number of pokeballs in your bag changes. With like, an event listener or something. Idk, I never tried that yet in rpgmaker. I know it's doable, and you could probably do it if you tried, but it's work that A) I can't (at least I think ? I'd be curious to be proven wrong, actually) really automate for you since it'd be quest specific, B) that you probably shouldn't do in the first place. I make those things so game makers have to look at less code, not more.

My suggestion : Just make a goal to report to someone/something once you have your 10 poke balls. It's waaaaay easier to event if you're not familiar with programming, it doesn't come with dumb complications to account for in another place of the code. You just put an event that checks the amount of poké balls in your bag, does something if you meet the count and updates your quest log there, and you're done with it. You lose the cool factor of having a notification whenever the item count change, but unless you've already got some coding chops, it's probably not worth it.

The documentation is worded a bit confusingly and I'm not understanding how to use the pbSetQuestGoal properly.

What I want to do is I want to talk to NPC A, he will reveal the quest in the quest log so it goes from ??? to actually discovered in the main quest page. Then if I talk to NPC B, I want the first part of the quest text to actually disappear and only show the next "stage" of the quest.
Sorry about that ! Sometimes I forget how to english.
First, your quest is built properly, so you can just add it to pbsfileworkaround as is. Just. Don't put it last. Or if you do, remember to add a coma to the last quest block and not to put one at the end of this one.

Second, in your event that updates the quest goal, just type this :

1635437378729.png

1635437355885.png


I hope this helps !

I've also slightly edited the documentation to help with that part. Yeah, you're not wrong, it is kinda confusing. I think past me was expecting people to look at the events of the quests on the example to get a sense of what to do, but it doesn't hurt to throw an example line in there, at bare minimum.
 
Last edited:

Jos_Louis

Developer of Pokemon Soulstones
Member
Joined
Sep 3, 2020
Posts
147
Hi again,
I got a continuation of my earlier question from a few weeks ago with a few new problems.

I was able to use your instructions to build my quest event as follows:

1640251891555.png


What I was doing here was I was on stage 5 of the quest, and when I talk to an NPC, he makes stage 5 disappear and stage 6 appear, but then immediately set stage 6 to "2" (i.e. complete).

I think I had seen a screenshot in the instructions that showed that when a stage of the quest is now on stage 6 and completed, the text will turn to green if I click on the quest detail. Also, on the main menu, the quest is supposed to go to the bottom of the quest log and have a [DONE] next to it and be in a grey colour, isn't it? But that isn't happening.

1640252214519.png


Separately, when I save and close the game and then restart, I notice my quest log goes back to ??? so I can't see what the status is of the quest I'm on. What am I doing wrong? I tried looking at the documentation but I'm still pretty confused when reading it because of the way it's worded so I'm not sure what I need to adjust when looking at the example events.
 
Last edited:

Yumil

Novice
Member
Joined
Aug 28, 2021
Posts
18
Hi again! I should really set up notifications for this thread so I stop missing those posts for three weeks straight.
So, If I get this right, I see there are two different problems at hand :

What I was doing here was I was on stage 5 of the quest, and when I talk to an NPC, he makes stage 5 disappear and stage 6 appear, but then immediately set stage 6 to "2" (i.e. complete).

I think I had seen a screenshot in the instructions that showed that when a stage of the quest is now on stage 6 and completed, the text will turn to green if I click on the quest detail. Also, on the main menu, the quest is supposed to go to the bottom of the quest log and have a [DONE] next to it and be in a grey colour, isn't it? But that isn't happening.
- So, you want that once you've set stage 6 to 2, the quest sets itself to complete, is that correct ?
try this :
1642268671423.png


Here's how it works :
pbSetQuestGoal can actually take a couple more parameters. You just usually don't have to worry about them cause they're set to false if you don't pass them so the program only has to behave differently when you want to pass one of them at true.
The first one (passed here as false), determines whether or not the script should set the next goal in the quest to state 1. I find it useful when completing the previous objective, as it means you can write

- pbSetQuestGoal("Picnic at the lake", 4,2,true)

instead of

-pbSetQuestGoal("Picnic at the lake", 4,2)
-pbSetQuestGoal("Picnic at the lake",5,1)

and get the same result.

The second parameter determines whether or not the script should set the quest as complete (reminder that a quest's completion state is entirely unrelated to the completion state of it's goals in order to allow branching/optionnal goals).

Do note that while those last two parameters are optionnal, their order isn't. If you write pbSetQuestGoal("Picnic at the Lake",6,2,true), it will try to set goal 7 to state 1. if you want to set a quest as complete, you always have to add the other parameter, even if it is only to set it as false.

All that being said, I just noticed that for some reason even once the quest is set as [DONE], it doesn't move to the bottom. I investigated the matter and I found I had a small typo in my code breaking the sort. It's included in the update I should have pushed shortly after this post.


Separately, when I save and close the game and then restart, I notice my quest log goes back to ??? so I can't see what the status is of the quest I'm on. What am I doing wrong? I tried looking at the documentation but I'm still pretty confused when reading it because of the way it's worded so I'm not sure what I need to adjust when looking at the example events.
Right, I went back and checked and it turns out that's a thing for me too that I hadn't noticed. It turns out I bungled something on the way I handled saving. Had to battle a bit but I fixed it - altho it might break your old saves. I'm sorry about that, that's all on me for not catching it to begin with.

Hopefully this should fix your problems. I hope you have a good day with this !
 

Yumil

Novice
Member
Joined
Aug 28, 2021
Posts
18
You mean the icon in the pokégear ?
simply paste the icon you have in mind here in you're graphics folder, replacing icon_questlog.
1642366637683.png
 

Jos_Louis

Developer of Pokemon Soulstones
Member
Joined
Sep 3, 2020
Posts
147
Hi again! I should really set up notifications for this thread so I stop missing those posts for three weeks straight.
So, If I get this right, I see there are two different problems at hand :


- So, you want that once you've set stage 6 to 2, the quest sets itself to complete, is that correct ?
try this :
View attachment 8522

Here's how it works :
pbSetQuestGoal can actually take a couple more parameters. You just usually don't have to worry about them cause they're set to false if you don't pass them so the program only has to behave differently when you want to pass one of them at true.
The first one (passed here as false), determines whether or not the script should set the next goal in the quest to state 1. I find it useful when completing the previous objective, as it means you can write

- pbSetQuestGoal("Picnic at the lake", 4,2,true)

instead of

-pbSetQuestGoal("Picnic at the lake", 4,2)
-pbSetQuestGoal("Picnic at the lake",5,1)

and get the same result.

The second parameter determines whether or not the script should set the quest as complete (reminder that a quest's completion state is entirely unrelated to the completion state of it's goals in order to allow branching/optionnal goals).

Do note that while those last two parameters are optionnal, their order isn't. If you write pbSetQuestGoal("Picnic at the Lake",6,2,true), it will try to set goal 7 to state 1. if you want to set a quest as complete, you always have to add the other parameter, even if it is only to set it as false.

All that being said, I just noticed that for some reason even once the quest is set as [DONE], it doesn't move to the bottom. I investigated the matter and I found I had a small typo in my code breaking the sort. It's included in the update I should have pushed shortly after this post.



Right, I went back and checked and it turns out that's a thing for me too that I hadn't noticed. It turns out I bungled something on the way I handled saving. Had to battle a bit but I fixed it - altho it might break your old saves. I'm sorry about that, that's all on me for not catching it to begin with.

Hopefully this should fix your problems. I hope you have a good day with this !
By any chance, does this script not play nicely with the multiple save files script? https://eeveeexpo.com/threads/3436/page-3#post-30766

I re-downloaded the script and started a new save file. I tried to activate my quest, verified that it was in my Pokegear, then saved and closed the game. I re-opened the game but then the quest still isn't in the log even though you had said you had fixed it in the latest patch? I'm wondering if there's a conflict with this script as it's the only one I can think of that I have that affects save data.

EDIT: That isn't it. I tried to remove my multiple save files script temporarily but the quest content still doesn't save to the log when I close the game and re-open it. Here's a snippet of my 0-PBSFileWorkaround.rb. Do you see any issues with what I'm doing?

1642392155253.png


EDIT #2: I did some more testing. Weirdly enough, if I press F12 to reset the game, the quest log content saves and is at the point it was when I soft reset so is working properly. HOWEVER, if I close out the game entirely by pressing the X button on the top right of the game window and then play test again in RPG maker, the quest log content doesn't save. I didn't realize there would be a difference but not sure if that might help in narrowing down what is causing the bug or what I might be doing wrong?
 
Last edited:

Yumil

Novice
Member
Joined
Aug 28, 2021
Posts
18
I tried to remove my multiple save files script temporarily but the quest content still doesn't save to the log when I close the game and re-open it. Here's a snippet of my 0-PBSFileWorkaround.rb. Do you see any issues with what I'm doing?
Yeah, I do see one.

It's that this screenshot comes from a pre-update version of my scripts.

What you describe is exactly what I've ran into yesterday trying to fix the problem. so that's why, to fix this, 0-PBSFileWokraround now looks like this :
1642438283671.png


And in turn, 001-ScriptOverrides.rb looks like this :
1642438305942.png


and that's also why it breaks older saves to use this new version of the scripts.

I double checked and it turns out the mistake is on me - the download link to the latest version of the script changed, so the current link was still pointing to the old version. (that should have been deleted from mega, no idea how the hell it still pointed towards it). I've updated and checked the link, and it should work this time. So yeah, you'll need to re-download the thing again. Sorry about that.

I hope this helps ! Lemme know if it works.
 

Jos_Louis

Developer of Pokemon Soulstones
Member
Joined
Sep 3, 2020
Posts
147
That did the trick! I overwrote everything. I initially was trying to avoid a situation where I had to re-populate my quest log, because I had changed specific lines in your script to accommodate my custom UI, graphics and colour scheme I made for my own game, but I just needed to change that
Ruby:
Expand Collapse Copy
def initializeQuestLog
line and it's now working, and with the multiple save files script!

I need to test out your proposal on fixing the sort and the status of the quest to done next, and I'll report back if that produces any issues. Thanks for fixing that :) !
 

AveryTubeHD

Game Developer, Workaholic
Member
Joined
Feb 2, 2021
Posts
21
Hi! Sorry to bother you, but I'm having a similar issue. I was having the issue of the game not saving your progress in a quest, so I updated the script as you recommended above. However, now the game breaks whenever I try to start a new save file. I have a screenshot of the crash below if you're curious.

1642987175275.png


EDIT: I managed to prevent the game from breaking on load, but now I have a new issue. The game now crashes when I attempt to open the Quest Log itself.
 
Last edited:

Yumil

Novice
Member
Joined
Aug 28, 2021
Posts
18
Hi! Sorry to bother you, but I'm having a similar issue. I was having the issue of the game not saving your progress in a quest, so I updated the script as you recommended above. However, now the game breaks whenever I try to start a new save file. I have a screenshot of the crash below if you're curious.
This looks like the game doesn't manage to find the quest log method to fill it with default values.

Considering it looks like it worked for Jos_Louis, I'm enclined to think you might have a leftover file from the old version ?

Here's a quick screencap of what 0-PBSFileWorkaround and 01-ScriptOverrides should look like. If one of them doesn't match, then I suggest deleting and those files and using the ones fresh off a folder.
1643059828537.png

1643059835339.png


Alternatively maybe for some reason the script order is messed up ? make sure 0-PBSFileWorkaround comes BEFORE 01-ScriptOverrides. It probably should by all accounts, but you never know.
 

maxop333

Rookie
Member
Joined
Feb 1, 2022
Posts
6
I'm having an issue where any changes made in any of the quest log PBS files require a brand new save to see the changes made in-game. The documentation doesn't explain the process too well, is this intentional or can I do something to allow changes to be observed on the same game file?
 
Back
Top