• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Archive] Pokemon Essentials: Starter Kit for RPG Maker XP

Status
Not open for further replies.

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 33
  • Seen Nov 20, 2017
Shiny!

It seems that disposeSpritesets causes a bit of lag, but it seems to work without it. I also built on what you said to remove a bit more potential lag (by making the spriteset refresh only for the current map). The only problem now is that creating a new spriteset wipes out any animations that were going on at the time (namely the grass rustling animation). I have yet to find a solution to that, but it's cosmetic. You're welcome to see my code if you want to help look for a solution to this last bit.

So rejoice! This probably means we'll have sooty grass in the next update. Get your Soot Sacks at the ready. :)

Incidentally, the same kind of thing can be used to implement Cut's old grass-mowing effect (but I won't be putting that in myself).



That's an interesting idea. Some of the useless event commands could be reinstated. On further inspection, though, it'd probably just be a waste of time unless things were radically changed (which they won't be).

What's wrong with Button Input Processing?
I didn't actually bother to check if both were necessary, I just figured they were meant to be paired and left them both since it worked. Now I know to only use one.

Now, this is just off the top of my head, but would it be possible to create a second spriteset strictly for animations? I haven't delved too far into that yet (and it might be terribly complicated), but if animations were somehow kept separate from everything else, it could be controlled. I could probably say more if I checked into how the individual elements are handled in the spriteset (there's probably just a for loop that displays or disposes all at once). It may be possible to just exempt certain sprites if they have an animation tag of some kind, but I'd have to look into how RMXP recognizes animations vs other graphics (or if it differentiates at all).

Button Input Processing doesn't (or at least didn't the last time I used it months ago) function correctly (it always interpreted every input as down, if I remember correctly). If I'm not mistaken, that's actually what my entire first post on this community was about. I later just commented out Poccil's code related to it, which made it work again and didn't seem to break anything. However, I ought to find and analyze what I was actually commenting out now that I understand scripting better (it may have had some importance). It's actually the command that Pokemon Raptor used for its evented menu system. I personally found it a helpful command when I was doing mostly event-related stuff, but now that I'm scripting more it's become fairly irrelevant to me.

On a final note, we seem to be in the 3rd gen spirit today, as I think I may have found an adequate solution for implementing a functional Secret Base system to go along with that sooty grass (which is actually how you procure a couple of decorations in gen 3). Without the incredibly long and complex (and only half functional) events I tried last time.



Edit: It keeps slipping my mind, but I've found that Windows 7 (and presumably Vista) lag quite a bit. The processor on my W7 machine is comparable to (or maybe even slightly better than) the one on my XP machine, but it runs much faster on XP. Even the initial loading of the RGSS window is fairly slow. So all that talk of lag we had here before might have been because of the users choice of OS, rather than Essentials itself. I can have 10 programs and a browser with 20+ tabs running in XP and Essentials hardly lags. In W7 with RMXP being the only open program, it still lags (most noticeably at startup though).
 
Last edited:
189
Posts
14
Years
  • Seen Nov 23, 2023
In lieu of my music problem, I've decided to just avoid the problem by radically changing the scene in which it occurs. However, I have also found the same issue occurs for my Pokemon Centres, Marts, and other buildings with different music to the town theme. At present, I've put all the building inners for a town on the same map, with an approximate layout congruency. I found it to be convenient and also reduces the amount of maps I need, but now the music problem affecting it irks me. Unless someone can come up with a solution, I think it's best if I just make separate maps for those buildings affected by the situation.

Onto something else. Can someone explain how the tone changes function? Also, how would one define "periods" of the day? What I want to achieve is to have four time periods of the day; Night from 9pm to 5am, Morning from 5am to 9am, Day from 9am to 5pm, and Evening from 5pm to 9pm, each with their own single tone for the whole time period. I'm not sure how the tone updates but if it were a smooth fade lasting about a second or two that would be nice.

EDIT: Oh and one other thing, with the PbPokeCenterPC script is it possible to add an extra option called say "Internet" that calls an event I have set up on a different map? I already have a system in place for said "Internet" on the computer in the player's room, and if it were able to be accessed elsewhere it would be really nice.
 
Last edited:

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 33
  • Seen Nov 20, 2017
In lieu of my music problem, I've decided to just avoid the problem by radically changing the scene in which it occurs. However, I have also found the same issue occurs for my Pokemon Centres, Marts, and other buildings with different music to the town theme. At present, I've put all the building inners for a town on the same map, with an approximate layout congruency. I found it to be convenient and also reduces the amount of maps I need, but now the music problem affecting it irks me. Unless someone can come up with a solution, I think it's best if I just make separate maps for those buildings affected by the situation.

Onto something else. Can someone explain how the tone changes function? Also, how would one define "periods" of the day? What I want to achieve is to have four time periods of the day; Night from 9pm to 5am, Morning from 5am to 9am, Day from 9am to 5pm, and Evening from 5pm to 9pm, each with their own single tone for the whole time period. I'm not sure how the tone updates but if it were a smooth fade lasting about a second or two that would be nice.

EDIT: Oh and one other thing, with the PbPokeCenterPC script is it possible to add an extra option called say "Internet" that calls an event I have set up on a different map? I already have a system in place for said "Internet" on the computer in the player's room, and if it were able to be accessed elsewhere it would be really nice.
I would suggest making them all separate maps anyways, since incredibly large maps (most especially when populated with numerous events) tend to have more lag. However, the music problem could possibly be corrected by using switches or variables. So if you enter the PokeCenter, turn on switch 123, or the PokeMart, turn on switch 456 and so on. Then have a parallel process common event that checks the switches/variables and plays the appropriate BGM accordingly (I don't event much anymore, so I can't come up with something specific off hand).

For the second issue, if you are referring to Poccil's day/night system that comes with Essentials, I don't suggest trying to edit it without plenty of scripting knowledge. However, since you said you don't want to script if you don't have to, you can disable the day/night feature (the wiki explains this I believe), then set up a parallel process common event that checks the time of day and activates a screen tone change command accordingly.

Your third issue can also be a common event (not parallel process this time. I don't normally suggest making them parallel process anyways because of lag). You can't call an event on a different map, however you could just put the contents of that event into a common event, and call the common event at the PC. However, you will have to script if you want to make it a part of the pbPokeCenterPC script. But, there's an easier solution. At the PC, make a Show Choices command to let the player choose between starting up the PC (just put the whole pbPokeCenterPC script command under that choice), or start the internet function (put the common event call under that choice).
 
189
Posts
14
Years
  • Seen Nov 23, 2023
Spoiler:
I already tried that suggestion with the music, parallel process events with variables and what not. The kind of stuff I used to use on 2k3. However when I loaded a game with them in effect, it just hanged the game. I'm at a loss to explain why. Perhaps I'll give it another go.

For the second thing, I disable the included system and make a common event with four clauses for each time period, and put a screen change event right? How do I set the conditions for the time? It would be a script wouldn't it...

And the third thing, you're basically saying copy paste my existing event into a common event, and instead of having the original event run, have the event page just call the common event, yes? The show choices part is easy enough for the other PCs.

Thanks very much for the advice.
 

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 33
  • Seen Nov 20, 2017
I already tried that suggestion with the music, parallel process events with variables and what not. The kind of stuff I used to use on 2k3. However when I loaded a game with them in effect, it just hanged the game. I'm at a loss to explain why. Perhaps I'll give it another go.

For the second thing, I disable the included system and make a common event with four clauses for each time period, and put a screen change event right? How do I set the conditions for the time? It would be a script wouldn't it...

And the third thing, you're basically saying copy paste my existing event into a common event, and instead of having the original event run, have the event page just call the common event, yes? The show choices part is easy enough for the other PCs.

Thanks very much for the advice.
I'm not surprised it hangs. Without actually trying it, I think it's probably just calling the BGM over and over (since it always meets the condition to trigger unless you turn off the switch/change the variable or whatever). So you'll probably need to add something to the bottom of the common event to basically tell it to quit after the first check (like turning off the switch).

There should be a page on time sensitive events on the wiki. I don't know the actual commands off hand, but you can use them in an event (the wiki should tell you what the exact commands are so you can copy/paste them).

And for the third thing, that's exactly what I was meaning. Events are restricted to only the map they are on (though you could script a workaround to this.), but common events work anywhere. They're basically just glorified events.
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
Now, this is just off the top of my head, but would it be possible to create a second spriteset strictly for animations? I haven't delved too far into that yet (and it might be terribly complicated), but if animations were somehow kept separate from everything else, it could be controlled. I could probably say more if I checked into how the individual elements are handled in the spriteset (there's probably just a for loop that displays or disposes all at once). It may be possible to just exempt certain sprites if they have an animation tag of some kind, but I'd have to look into how RMXP recognizes animations vs other graphics (or if it differentiates at all).

Button Input Processing doesn't (or at least didn't the last time I used it months ago) function correctly (it always interpreted every input as down, if I remember correctly). If I'm not mistaken, that's actually what my entire first post on this community was about. I later just commented out Poccil's code related to it, which made it work again and didn't seem to break anything. However, I ought to find and analyze what I was actually commenting out now that I understand scripting better (it may have had some importance). It's actually the command that Pokemon Raptor used for its evented menu system. I personally found it a helpful command when I was doing mostly event-related stuff, but now that I'm scripting more it's become fairly irrelevant to me.

On a final note, we seem to be in the 3rd gen spirit today, as I think I may have found an adequate solution for implementing a functional Secret Base system to go along with that sooty grass (which is actually how you procure a couple of decorations in gen 3). Without the incredibly long and complex (and only half functional) events I tried last time.



Edit: It keeps slipping my mind, but I've found that Windows 7 (and presumably Vista) lag quite a bit. The processor on my W7 machine is comparable to (or maybe even slightly better than) the one on my XP machine, but it runs much faster on XP. Even the initial loading of the RGSS window is fairly slow. So all that talk of lag we had here before might have been because of the users choice of OS, rather than Essentials itself. I can have 10 programs and a browser with 20+ tabs running in XP and Essentials hardly lags. In W7 with RMXP being the only open program, it still lags (most noticeably at startup though).
I was thinking more like save the animations to a temporary variable, create the spriteset again and copy the animations back in. There might be a bit of an issue with where they end up displaying, but I haven't looked into that yet.

If you find out what you did to fix Button Processing, let me know and I'll look into it. It's supposed to work (it's not on the list of "event commands that don't work any more"), so it really should work properly.

The secret base thing should be nice.

I'm using W7, but aside from what I mentioned regarding disposeSpritesets, I haven't experienced any lag (that I've noticed). It may well be the case that lag is just something Essentials can't fix, as the problem is with the user's computer instead. I haven't heard any complaints recently since I downgraded the day/night system, so maybe there's nothing left to it (I can always hope).


EDIT: Oh and one other thing, with the PbPokeCenterPC script is it possible to add an extra option called say "Internet" that calls an event I have set up on a different map? I already have a system in place for said "Internet" on the computer in the player's room, and if it were able to be accessed elsewhere it would be really nice.
Look in the script section PokemonStorage, and look at the very bottom. Add a similar line for your Internet there, and have it call the class that deals with the Internet. The StorageSystemPC and TrainerPC classes that are used are just above those lines, so have a look at them to see how they work (TrainerPC is as simple as it gets).

I shouldn't think there's a need to fiddle around with events as KitsuneKouta suggests.
 

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 33
  • Seen Nov 20, 2017
I was thinking more like save the animations to a temporary variable, create the spriteset again and copy the animations back in. There might be a bit of an issue with where they end up displaying, but I haven't looked into that yet.

If you find out what you did to fix Button Processing, let me know and I'll look into it. It's supposed to work (it's not on the list of "event commands that don't work any more"), so it really should work properly.

The secret base thing should be nice.

I'm using W7, but aside from what I mentioned regarding disposeSpritesets, I haven't experienced any lag (that I've noticed). It may well be the case that lag is just something Essentials can't fix, as the problem is with the user's computer instead. I haven't heard any complaints recently since I downgraded the day/night system, so maybe there's nothing left to it (I can always hope).



Look in the script section PokemonStorage, and look at the very bottom. Add a similar line for your Internet there, and have it call the class that deals with the Internet. The StorageSystemPC and TrainerPC classes that are used are just above those lines, so have a look at them to see how they work (TrainerPC is as simple as it gets).

I shouldn't think there's a need to fiddle around with events as KitsuneKouta suggests.
I just tried it out in the 8-13-11 kit, with the same results. I found my old kit I fixed it in, applied the same fix, and it worked fine. On line 574 of PokemonMessages, command_105 is redefined, and just as I remembered, EVERY input is considered down. I had a little evented menu back then which would change the picture and script call based on the player hitting either up or down. Left and right directed the menu to its current state, so it should visually show nothing. However, leaving Button Input Processing as is resulted in every input up, down, left, right, and even X, C, enter and space, being interpreted as down (and so saves 2 as the value in the variable every time). Commenting out that small redefinition doesn't affect the text entry screen, nor does it affect choice selections or Input Number. It just fixes Button Input Processing from what I can tell. I thought maybe it was because of the method it calls, but commenting out that call makes no difference.

I'm also using a different version of RMXP on 7, so maybe that has something to do with it.

And of course, the scripted solution to jim42's problem is far superior to the evented one. I only suggested an event solution since he didn't want to code (though I think everyone should at least attempt to code at some point. It's not too hard once you get the hang of it).
 
189
Posts
14
Years
  • Seen Nov 23, 2023
Alright, here's what I did following Maruno's advice about the script:
Code:
#CHANGED to insert following 12 lines of code, 29 OCT 2011 1504 HOURS

class InternetPC
  def shouldShow?
    return true
  end
  
  def name 
    return _INTL("Sarubyaa.net")
  end
  
  def access
    Kernel.pbMessage(_INTL("\\se[accesspc]The Sarubyaa.net News Feed was accessed."))
    pbTrainerPCMenu
  end
end

  
  
def pbPokeCenterPC
  Kernel.pbMessage(_INTL("\\se[computeropen]{1} booted up the PC.",$Trainer.name))
  loop do
    commands=PokemonPCList.getCommandList()
    command=Kernel.pbMessage(_INTL("Which server should be accessed?"), #CHANGED "PC" TO "server" in preceding _INTL(text), 29 OCT 2011 1506 HOURS
       commands,commands.length)
    if !PokemonPCList.callCommand(command)
      break
    end
  end
  pbSEPlay("computerclose")
end

PokemonPCList.registerPC(StorageSystemPC.new)
PokemonPCList.registerPC(TrainerPC.new)
PokemonPCList.registerPC(InternetPC.new)
How's that? The inserted code displays the new option in the choice window and what not, the only concern I have now is that in my new code I don't know what to do in relation to calling my event. At present, I have made each of the existing pages of the event their own common event, named "Sarubyaa.net1/2/3/etc...". Each of the events displays an image depicting "Sarubyaa.net" and a series of lines of text formatted to fit the image.

What I would like to do is after selecting Sarubyaa.net from the PC menu, the player can choose to read the current news story or quit the browser. When the player completes certain parts of the story (i.e. activating certain switches) the current story will update, and they will be informed as such when they try to access the site. Once the story has been read, the event changes to note this and ask if the player wants to read it again anyway.
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
I just tried it out in the 8-13-11 kit, with the same results. I found my old kit I fixed it in, applied the same fix, and it worked fine. On line 574 of PokemonMessages, command_105 is redefined, and just as I remembered, EVERY input is considered down. I had a little evented menu back then which would change the picture and script call based on the player hitting either up or down. Left and right directed the menu to its current state, so it should visually show nothing. However, leaving Button Input Processing as is resulted in every input up, down, left, right, and even X, C, enter and space, being interpreted as down (and so saves 2 as the value in the variable every time). Commenting out that small redefinition doesn't affect the text entry screen, nor does it affect choice selections or Input Number. It just fixes Button Input Processing from what I can tell. I thought maybe it was because of the method it calls, but commenting out that call makes no difference.

I'm also using a different version of RMXP on 7, so maybe that has something to do with it.

And of course, the scripted solution to jim42's problem is far superior to the evented one. I only suggested an event solution since he didn't want to code (though I think everyone should at least attempt to code at some point. It's not too hard once you get the hang of it).
I wonder why Poccil changed it, then? Perhaps he originally used it for inputting, then came up with a better way but forgot to put Button Processing back.


Alright, here's what I did following Maruno's advice about the script:
Code:
#CHANGED to insert following 12 lines of code, 29 OCT 2011 1504 HOURS

class InternetPC
  def shouldShow?
    return true
  end
  
  def name 
    return _INTL("Sarubyaa.net")
  end
  
  def access
    Kernel.pbMessage(_INTL("\\se[accesspc]The Sarubyaa.net News Feed was accessed."))
    [COLOR=Red]pbTrainerPCMenu[/COLOR]
  end
end

  
  
def pbPokeCenterPC
  Kernel.pbMessage(_INTL("\\se[computeropen]{1} booted up the PC.",$Trainer.name))
  loop do
    commands=PokemonPCList.getCommandList()
    command=Kernel.pbMessage(_INTL("Which server should be accessed?"), #CHANGED "PC" TO "server" in preceding _INTL(text), 29 OCT 2011 1506 HOURS
       commands,commands.length)
    if !PokemonPCList.callCommand(command)
      break
    end
  end
  pbSEPlay("computerclose")
end

PokemonPCList.registerPC(StorageSystemPC.new)
PokemonPCList.registerPC(TrainerPC.new)
PokemonPCList.registerPC(InternetPC.new)
How's that? The inserted code displays the new option in the choice window and what not, the only concern I have now is that in my new code I don't know what to do in relation to calling my event. At present, I have made each of the existing pages of the event their own common event, named "Sarubyaa.net1/2/3/etc...". Each of the events displays an image depicting "Sarubyaa.net" and a series of lines of text formatted to fit the image.

What I would like to do is after selecting Sarubyaa.net from the PC menu, the player can choose to read the current news story or quit the browser. When the player completes certain parts of the story (i.e. activating certain switches) the current story will update, and they will be informed as such when they try to access the site. Once the story has been read, the event changes to note this and ask if the player wants to read it again anyway.
That's exactly what you would do to add a new option to the PC menu. The line I coloured in red is what actually starts the storage screen/item screen/whatever, and you'd need to change that.

As for what you want, that'd be a bit more complicated. You'd need a def (that is called by whatever you replace the red line with, e.g. pbNewsItemList), which lists all available articles and marks the unread ones, and then depending on what the player chooses, call one of the common events (or integrate the articles themselves into the def).

It's an interesting challenge, not too difficult for those who know scripting, and involves things like remembering which articles are visible and read, sorting a list of commands (possibly), displaying screens of text and so forth.
 
Last edited:
189
Posts
14
Years
  • Seen Nov 23, 2023
That's exactly what you would do to add a new option to the PC menu. The line I coloured in red is what actually starts the storage screen/item screen/whatever, and you'd need to change that.

As for what you want, that'd be a bit more complicated. You'd need a def (that is called by whatever you replace the red line with, e.g. pbNewsItemList), which lists all available articles and marks the unread ones, and then depending on what the player chooses, call one of the common events (or integrate the articles themselves into the def).

It's an interesting challenge, not too difficult for those who know scripting, and involves things like remembering which articles are visible and read, sorting a list of commands (possibly), displaying screens of text and so forth.

I'd figured I'd need to change that red line, can't have my new function calling the item storage can we? As for the def, that would just go in the same script page thing I assume, and it would take the form of:
Code:
def pbNewsItemList
  *code depicting the news stories*
end
What to put in the actual def is where I get stuck though, being as inexperienced as I am. At present the articles are a series of text boxes over an image, formatted with <centre> and <br> and what not to make them fit the image. I presume scripting instead would allow the text to draw itself within the desired area of the image automatically, without fiddling around with <code> or having that stupid extra line after the centering closes.

Alternatively, I already have a working system with my common events that sets a variable "StoriesRead" to the number of the article, which triggers a condition in the respective common event to ask the player if they want to reread the article, quitting the event if no is selected and jumping to the article events if yes is selected. Of course, what this does not do is allow the player to read articles older than the current one.

I figure this variable would easily be integrated into a scripted alternative, as well as its activation. As for notification of new stories, I think it would work to check the aforementioned variable value, and based on it, check to see if the respective switch for the next article to be activated is on. Then a conditional thing would say whether or not a new article is available. Ooh boy this is heading quickly into scripting territory... probably a stupid question, but figuring out how to script the articles instead would be easier and more accessible in the long run, wouldn't it?
 
189
Posts
14
Years
  • Seen Nov 23, 2023
Mate there's plenty of tile sets around, you just have to look. You can't just sit back and expect everyone to hand you free stuff. Try deviantart and make sure the tiles you find are noted as being PUBLIC. Try Google Images, you can at times find stuff in there. Try the resources section of this very site, tile sets abound in there. If it doesn't have what you want on it, try making it yourself, it's not that hard even without a tutorial.
 

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 33
  • Seen Nov 20, 2017
You know I am still waiting for those tilesets.
You should ask for resources in the Help & Resource Center rather than here (which jim42 also pointed out). But before you ask there either, you should use the search function and see if that resource has already been requested and linked to (which it probably has).
 
Last edited:
67
Posts
12
Years
G'day, I have a short script question, which I wasn't able to find in the other forums. Is it possible, when you have DarkMap=true, to place several lighted locations such a fire-hazard in the screen. I believe they had it in HG/SS in the Ghostcity gym. I can't find the script for doing that, any ideas?
 

IceGod64

In the Lost & Found bin!
624
Posts
15
Years
Is it possible to trigger evolution within an event?

I essentially want a moss rock in my game, except instead of triggering the evolution by leveling up near it, the rock will sparkle or shine, and the player will check it and be given the option to let their pokemon evolve. For example..

A mossy rock in Entragreen Forest:
"This odd rock is covered in moss."
"EEVEE seems to be attracted to the rock."
"Will you let it touch the rock?"
>Yes
*Trigger evolution to Leafeon*
>No
"You didn't let it touch the mossy rock."
 

Pharetra

zzzz
451
Posts
12
Years
  • Age 28
  • Seen Apr 22, 2024
I'd like to have some help with MGC's NeoMode7 script. I want to use it in my Pokémon Essentials game, but it shows the following error:
Spoiler:

I'd like to know where and how I can initialize Game_Player::CENTER_Y.

In case you´re wondering, the reason I´ve posted this here is because this error only shows up in Pokémon Essentials, not in standard RPG Maker XP.

Thank you in advance!
 
189
Posts
14
Years
  • Seen Nov 23, 2023
Is it possible to trigger evolution within an event?

I essentially want a moss rock in my game, except instead of triggering the evolution by leveling up near it, the rock will sparkle or shine, and the player will check it and be given the option to let their pokemon evolve. For example..

A mossy rock in Entragreen Forest:
"This odd rock is covered in moss."
"EEVEE seems to be attracted to the rock."
"Will you let it touch the rock?"
>Yes
*Trigger evolution to Leafeon*
>No
"You didn't let it touch the mossy rock."

I'm no expert, but wouldn't you be able to define an evolution method that evolves when a certain switch is turned on? After that just make the event turn the switch on when you click yes, and have it turn off again afterwards so it can be reused.
 

Rayquaza.

Lead Dev in Pokémon Order and Chaos
702
Posts
12
Years
Hi can anyone tell me how to fix this problem iv'e got with the 'outdoor' metadata setting, it won't let me play the game, but at random times it will;
here's the error message:

Exception: ArgumentError
Message: time must be positive
PokemonUtilities:585:in `at'
PokemonUtilities:585:in `getToneInternal'
PokemonUtilities:584:in `each' PokemonUtilities:584:in`getToneInternal'
PokemonUtilities:353:in `getTone'
PokemonUtilities:2095:in `pbDayNightTint'
Sprite_Character:124:in `update_or'
PerspectiveTilemap:408:in `shadow_update'
Shadow:179:in `update'
Sprite_Character:33:in `perspectivetilemap_initialize'
 
772
Posts
13
Years
  • Age 35
  • UK
  • Seen Apr 19, 2024
There no fix for that error other than replacing your PokemonUtilities script with that of the latest version
 
Status
Not open for further replies.
Back
Top