• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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.

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
removed the quotient still not working...
only the default bg is working, not The BattleBack=battlebg8.png
You don't need to include ".png" - that's added automatically during the game.

BattleBack=Mystic means it will use files called battlebgMystic.png, playerbaseMystic.png and enemybaseMystic.png.


This question still remains

Also, I am getting a bizarre bug with the pokemon evolutions. I have a Fakemon in my game that evolves into two separate species depending on gender, and while both evolutions work, the evolved form seems to revert back to the previous level before they evolve.

In the spoiler there is an example as to what precisely happens:
Spoiler:


In addition, here is the data for both Antmando and Antrooper:
Code:
[510]
Name=ANTROOPER
InternalName=ANTROOPER
Kind=Worker
Pokedex=When it finds food, it secretes a trail of strong-smelling fluid from its end to attract more ANTROOPER to the area.
Type1=BUG
BaseStats=50,80,78,75,20,55
Rareness=255
BaseEXP=50
Happiness=70
GrowthRate=[COLOR=Red]Fast[/COLOR]
StepsToHatch=5120
Color=Brown
EffortPoints=0,1,0,0,0,0
Abilities=COMPOUNDEYES, PICKUP
WildItemRare=LEFTOVERS
Compatibility=3,5
Height=0.7
Weight=2.8
GenderRate=Female25Percent
Moves=1,POISONSTING,2,BUGBITE,6,FURYCUTTER,7,POISONJAB,8,DIG,12,ROCKTHROW,13,TAUNT,14,SLASH
EggMoves=TICKLE,STRINGSHOT,PURSUIT,AGILITY,SPIKES,MAGNITUDE,BODYSLAM
Evolutions=ANTMANDO,LevelMale,10,ANQUEEN,LevelFemale,25
BattlerPlayerY=41
BattlerEnemyY=13
BattlerAltitude=0
[511]
Name=ANTMANDO
InternalName=ANTMANDO
Kind=Guardian
Pokedex=They are typically seen guarding an ANTROOPER nest. They fight using their powerful pincers to grapple opponents.
Type1=BUG
Type2=FLYING
BaseStats=65,118,80,105,95,58
Rareness=200
BaseEXP=123
Happiness=70
GrowthRate=[COLOR=Red]Medium[/COLOR]
StepsToHatch=5120
Color=Brown
EffortPoints=0,2,0,0,0,0
Abilities=COMPOUNDEYES, HYPERCUTTER
Compatibility=3,5
Height=1.0
Weight=5.2
GenderRate=AlwaysMale
Moves=1,POISONSTING,1,BUGBITE,1,FURYCUTTER,1,POISONJAB,1,DIG,15,QUIVERDANCE,20,XSCISSOR,31,AIRCUTTER,42,AERIALACE,53,BUGBUZZ,64,CLOSECOMBAT
EggMoves=
Evolutions=
BattlerPlayerY=41
BattlerEnemyY=13
BattlerAltitude=0
Any way to fix this?
The problem is the inconsistent growth rate for Antrooper and Antmando. The Pokémon keeps the same amount of experience points, but in the Fast growth rate that amount corresponds to Level 10 while in the Medium growth rate it corresponds to Level 9.

All species in a particular family should have the same growth rate to avoid this problem.
 

Nickalooose

--------------------
1,309
Posts
16
Years
  • Seen Dec 28, 2023
Yea i just saw that and im pretty sure everything is capatalized now but im still getting the same error.


NEW STATS-
[494]
Name=LEALIL
InternalName=LEALIL
Kind=NORMAL
Pokedex=Nothing can be said about LEALIL.
Type1=GRASS
Type2=POISON
Basestats=50,75,35,40,70,30
Rareness=255
BaseEXP=84
Happiness=70
GrowthRate=Parabolic
Stepstohatch=5120
Color=Green
Habitat=Forest
EffortPoints=0,1,0,0,0,0
Abilities=CHLOROPHYLL
Compatibilty=7,7
Height=0.7
Weight=4.0
GenderRate=Female50Percent
Moves=1,VINEWHIP,6,GROWTH,11,WRAP,15,19,STUNSPORE,23,ACID,30,SWEETSCENT,37,RAZORLEAF,45,SLAM
EggMoves=
Evolutions=
BattlerplayerY=11
BattlerEnemyY=16
BattlerAltitude=0

I GOT IT!!!!IDK HOW BUT I GOT IT!!!! THANK YOU FOR HELPED ME GREATING APPREACIATE IT!!!!

Maybe, check the moves, after wrap you have 2 numbers... Remove one! Just an idea. X
 

KoolKat vs. Lucas

KoolKat Gold
178
Posts
12
Years
  • Seen Nov 30, 2013
I have a game where you can choose the Rival's Pokemon. (Will have type advantage anyway) and need some help. I am using version of 10-3-11. I want to make it so you battle him with the right Pokemon. I need a script to make it so he gets that Pokemon. Just so you know, his trainer battles are:
RIVAL [it says his name here]
Pokemon: Squirtle Level 5
or
RIVAL [it says his name here]
Pokemon: Totodile Level 5

His trainer sprites show him with his starter, but I need him to get it in the data. Could someone give me a script that could do this?
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
I have a game where you can choose the Rival's Pokemon. (Will have type advantage anyway) and need some help. I am using version of 10-3-11. I want to make it so you battle him with the right Pokemon. I need a script to make it so he gets that Pokemon. Just so you know, his trainer battles are:
RIVAL [it says his name here]
Pokemon: Squirtle Level 5
or
RIVAL [it says his name here]
Pokemon: Totodile Level 5

His trainer sprites show him with his starter, but I need him to get it in the data. Could someone give me a script that could do this?
The wiki has a page called Rival. It helps. There's also a page on choosing a starter, which also helps. Everything else is basic RMXP skills.

Since the rival's sprites are different for each starter option, you will have a different trainer type for each of them (because the trainer's sprite depends on the trainer type). That shouldn't be any problem, but it's just something to bear in mind.
 

KoolKat vs. Lucas

KoolKat Gold
178
Posts
12
Years
  • Seen Nov 30, 2013
The wiki has a page called Rival. It helps. There's also a page on choosing a starter, which also helps. Everything else is basic RMXP skills.

Since the rival's sprites are different for each starter option, you will have a different trainer type for each of them (because the trainer's sprite depends on the trainer type). That shouldn't be any problem, but it's just something to bear in mind.

I already know all that stuff. I need a script that basically says pbAddRivalPokemon(dex#,level)
 

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 32
  • Seen Nov 20, 2017
I already know all that stuff. I need a script that basically says pbAddRivalPokemon(dex#,level)
You seem to misunderstand "what" a rival is. It's not another player. It's the illusion of another player. Your rival is no different from other trainers in your game. You have to add your rival just like you would a normal trainer (you define their name and team), by putting appropriate entries in trainers.txt and trainertypes.txt. No scripts are necessary at all. You'll need to use the script CALLS in the event that handles the intro, trainer check, and trainer end functions. However, these are the exact same as what's in the default trainer events in Essentials (you just need to make sure you change the trainer name and type in the script call that's already in the event). The wiki, as Maruno pointed out, covers this whole topic in general.

So here's the general explanation: your "rival" isn't a "rival" per se. It's just a series of events that call battles based on certain conditions so that it APPEARS to be the same "person." The "rival" event you set up to fight you after choosing your starter is not the same event you encounter later on. They're two different events, in two different places. The illusion that it's the same comes from calling a trainer battle with a trainer of that same name each time. You have trainer Gary 1, who has one weak Pokemon. Then you have trainer Gary 2, who has stronger Pokemon. These Garys are not the same, they just have the same sprite, trainer type, and name. You define them separately.

In short, your idea of using a script called pbAddRivalPokemon(species,level) can't work, since there's no "rival" to give that Pokemon to. It's just a series of consistent events. However, if you really wanted to add Pokemon to the rival trainer without simply typing it in the txt file (check the PBS folder), then you'd have to have enough scripting skill to read the txt data file, send and receive properly formatted parameters, then write it to the txt file (something that takes a sound understanding of programming, or lots of trial and error + tutorials. Though even good programmers may resort the latter when walking into unknown territory). Alternatively (and probably just as complex, albeit in a different way), you could find where the trainer's Pokemon are determined based on the contents of the txt file and inject different Pokemon in there (conditionally, so it doesn't happen to all trainers) when the trainer event is run. Also requires scripting knowledge.

Your best bet is to practice eventing. Everything you're wanting to do can (and is intended to be) done via events.
 

zingzags

PokemonGDX creator
536
Posts
15
Years
You seem to misunderstand "what" a rival is. It's not another player. It's the illusion of another player. Your rival is no different from other trainers in your game. You have to add your rival just like you would a normal trainer (you define their name and team), by putting appropriate entries in trainers.txt and trainertypes.txt. No scripts are necessary at all. You'll need to use the script CALLS in the event that handles the intro, trainer check, and trainer end functions. However, these are the exact same as what's in the default trainer events in Essentials (you just need to make sure you change the trainer name and type in the script call that's already in the event). The wiki, as Maruno pointed out, covers this whole topic in general.

So here's the general explanation: your "rival" isn't a "rival" per se. It's just a series of events that call battles based on certain conditions so that it APPEARS to be the same "person." The "rival" event you set up to fight you after choosing your starter is not the same event you encounter later on. They're two different events, in two different places. The illusion that it's the same comes from calling a trainer battle with a trainer of that same name each time. You have trainer Gary 1, who has one weak Pokemon. Then you have trainer Gary 2, who has stronger Pokemon. These Garys are not the same, they just have the same sprite, trainer type, and name. You define them separately.

In short, your idea of using a script called pbAddRivalPokemon(species,level) can't work, since there's no "rival" to give that Pokemon to. It's just a series of consistent events. However, if you really wanted to add Pokemon to the rival trainer without simply typing it in the txt file (check the PBS folder), then you'd have to have enough scripting skill to read the txt data file, send and receive properly formatted parameters, then write it to the txt file (something that takes a sound understanding of programming, or lots of trial and error + tutorials. Though even good programmers may resort the latter when walking into unknown territory). Alternatively (and probably just as complex, albeit in a different way), you could find where the trainer's Pokemon are determined based on the contents of the txt file and inject different Pokemon in there (conditionally, so it doesn't happen to all trainers) when the trainer event is run. Also requires scripting knowledge.

Your best bet is to practice eventing. Everything you're wanting to do can (and is intended to be) done via events.

The notes or advance notes in the kit also covers rivals, its basically a player supplied name, then like everyone else is saying you make a for example the entire first paragraph kitsune covered its like making a regular old trainer, but this one is a bit more special depending on what you do.
 
21
Posts
12
Years
  • Seen Aug 23, 2016
Hey guys, i have a big error.. Every time i create a new trainer or select to battle an existing one, i get some error: NoMethodError
Pokemon trainer 66 in pbconverttrainerdata

and some other things. I would post i link to a picture(i posted it on imageshack) but i am not allowed to post link here yet.
 

aquakip

Art Director, Pokemon Ethereal Gates
192
Posts
15
Years
Hey all!

I was wondering if anyone could help me out with a little problem I'm having. I really want to animate our region map (you know, clouds scrolling along above, waves crashing, etc.) and I was wondering if there was any way how that would require as little scripting as possible, unless someone wanted to script it for me (but I don't really want to be a burden).

So if anyone knew how, could they tell me...?

Thanks,
Aquakip ~
 

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 32
  • Seen Nov 20, 2017
Hey all!

I was wondering if anyone could help me out with a little problem I'm having. I really want to animate our region map (you know, clouds scrolling along above, waves crashing, etc.) and I was wondering if there was any way how that would require as little scripting as possible, unless someone wanted to script it for me (but I don't really want to be a burden).

So if anyone knew how, could they tell me...?

Thanks,
Aquakip ~
If gifs worked ok, you could take that route (since it doesn't require scripting), but otherwise it'll take some scripting. It's not too complex, since you only have to play around in one particular spot, but it depends on how you want to go about it. You're probably going to need a few still shots with the water in different positions to simulate the water animating, but for the clouds you'll want an image with just the clouds on a transparent background (that way you can just move them around). Now, I'll tell you exactly where to work your magic and how (assuming you have the latest kit. the only difference in this case should be the line numbers):
About 2/3 of the way down the PokemonRegionMap script section (line 196 for me), you should find something like this:
Code:
  def pbMapScene(mode=0)
    xOffset=0
    yOffset=0
    newX=0
    newY=0
    @sprites["cursor"].x=-8+(@mapX*16)
    @sprites["cursor"].y=-8+(@mapY*16)
   [COLOR=SeaGreen] [COLOR=Magenta][B]loop do[/B][/COLOR][/COLOR]
      Graphics.update
      Input.update
      pbUpdate
That loop is what you want. You need to make a counter (stick a variable and make it = 0 above the loop) that increments by 1 each time it loops. I'll demonstrate below. Then you need to use that counter to determine when to switch images to get the water animating effect. For the clouds, you can just increment the x/y values to make them move. You could use two instances of the image for a wrapping effect too (which I'll also demonstrate below).
Code:
  def pbMapScene(mode=0)
    xOffset=0
    yOffset=0
    newX=0
    newY=0
[COLOR=Blue][COLOR=Black]    @sprites["cursor"].x=-8+(@mapX*16)
    @sprites["cursor"].y=-8+(@mapY*16)[/COLOR]
    clouds=IconSprite.new(0,0,@viewport)
    clouds2=IconSprite.new(-Graphics.width,0,@viewport)
    clouds.setBitmap("Graphics/Pictures/[COLOR=Red][B]clouds image[/B][/COLOR]")
    clouds2.setBitmap("Graphics/Pictures/[B][COLOR=Red]clouds image[/COLOR][/B] [COLOR=Red][B]again[/B][/COLOR]")
    frame=0
    picture=0
    [COLOR=Black]loop do[/COLOR]
      frame+=1
      if frame==20
        picture=1
      elsif frame==40
        picture=2
      elsif frame==60
        picture=0
        frame=0
      end
      if picture == 0
        @sprites["map"].setBitmap("Graphics/Pictures/[B][COLOR=Red]map image 1[/COLOR][/B]")
      elsif picture == 1
        @sprites["map"].setBitmap("Graphics/Pictures/[B][COLOR=Red]map image 2[/COLOR][/B]")
      elsif picture == 2
        @sprites["map"].setBitmap("Graphics/Pictures/[B][COLOR=Red]map image 3[/COLOR][/B]")
      end
      clouds.x+=1
      clouds2.x+=1
      if clouds.x>Graphics.width
        clouds.x=-Graphics.width
      end
      if clouds2.x>Graphics.width
        clouds2.x=-Graphics.width
      end[/COLOR]
      Graphics.update
      Input.update
      pbUpdate
When I tested this, there was a 1 pixel gap between the images (no matter how much I played with the x values), so you should make your cloud image 1 pixel wider (the image should be the same size as the screen for this to work as intended) than normal. Add the blue stuff to your PokemonRegionMap script as indicated above, change the red parts to the graphics you want to use, and expand it if necessary (you can use more than three images. Just expand the if statements). Other than that, you can mess with the parts that check frame to speed up/slow down the animation speed. You can also increase the increment on the x value of the clouds so they cross the screen faster.

Poccil also did something to make that cool effect on the PC box background, but it's 2am so I don't know if I could comprehend it right now.



@PokemonEssentials: did you try checking the wiki? It should have a page on adding new trainers. Also, when adding new ones, it's best to copy existing ones and just edit the values so that you know you got the formatting right. Unless you're using the editor (in which case it might be buggy or something. I don't use it so I wouldn't know).
 

Awkward Squirtle

,@,e .ºoO
110
Posts
12
Years
  • Seen Jan 29, 2016
Can't you use the Plane graphics class? IIRC it automatically tiles itself over the whole screen, and you can change its relative position by changing the origin (ox and oy). I don't know whether Essentials has a custom version like the IconSprite class above.
 

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 32
  • Seen Nov 20, 2017
Can't you use the Plane graphics class? IIRC it automatically tiles itself over the whole screen, and you can change its relative position by changing the origin (ox and oy). I don't know whether Essentials has a custom version like the IconSprite class above.
Probably, but he doesn't want to worry about scripting, so I kept it simple (the part that could have used a plane, the clouds, was already pretty simple anyways). I've also never bothered to look into planes (and it was 2am so I probably would have been vegging out if I tried to look into it), but I'm kind of interested now. I wouldn't be surprised if Poccil changed it for Essentials though, as he played with the tilemap and spriteset (which has caused me some headaches when trying to port cool stuff I figure out in standard RMXP). Guess I better look into that. Thanks for the suggestion.
 

KoolKat vs. Lucas

KoolKat Gold
178
Posts
12
Years
  • Seen Nov 30, 2013
The notes or advance notes in the kit also covers rivals, its basically a player supplied name, then like everyone else is saying you make a for example the entire first paragraph kitsune covered its like making a regular old trainer, but this one is a bit more special depending on what you do.

I did that exactly. It doesn't help. I added a metadata called "Rival Data" that uses the same trainer to create multiple battles easily, but I can't create my own script. I am pretty good at this.

I did that exactly. It doesn't help. I added a metadata called "Rival Data" that uses the same trainer to create multiple battles easily, but I can't create my own script. I am pretty good at this.

Never Mind. Got it under control. Now I have THIS error. It happens every time i create a trainer type/battle. What does it mean?----------------------------
Pokemon Essentials
---------------------------
Exception: NoMethodError

Message: undefined method `pbSaveTrainerNames' for nil:NilClass

PokemonTrainers:66:in `pbConvertTrainerData'

PokemonTrainers:99:in `pbNewTrainer'

PokemonEditor:3411:in `pbTrainerBattleEditor'

PokemonEditor:3368:in `pbListScreenBlock'

PokemonEditor:1522:in `loop'

PokemonEditor:1547:in `pbListScreenBlock'

PokemonEditor:3368:in `pbTrainerBattleEditor'

EditorMain:252:in `pbEditorMenu'

EditorMain:252:in `pbFadeOutIn'

EditorMain:252:in `pbEditorMenu'



This exception was logged in

C:\Users\Roberts\Saved Games/Pokemon Essentials/errorlog.txt.

Press Ctrl+C to copy this message to the clipboard.
---------------------------
OK
---------------------------
 
Last edited:
67
Posts
12
Years
Hi all,
Does someone know the additional script for an autonomous movement towards an event. Instead of for an event; 'move towards the player' - 'move towards EV001'??? It must be possible somehow, but probably only with a specific script for in the script option.
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
Never Mind. Got it under control. Now I have THIS error. It happens every time i create a trainer type/battle. What does it mean?----------------------------
Pokemon Essentials
---------------------------
Exception: NoMethodError
Message: undefined method `pbSaveTrainerNames' for nil:NilClass
PokemonTrainers:66:in `pbConvertTrainerData'
PokemonTrainers:99:in `pbNewTrainer'
PokemonEditor:3411:in `pbTrainerBattleEditor'
PokemonEditor:3368:in `pbListScreenBlock'
PokemonEditor:1522:in `loop'
PokemonEditor:1547:in `pbListScreenBlock'
PokemonEditor:3368:in `pbTrainerBattleEditor'
EditorMain:252:in `pbEditorMenu'
EditorMain:252:in `pbFadeOutIn'
EditorMain:252:in `pbEditorMenu'

This exception was logged in C:\Users\Roberts\Saved Games/Pokemon Essentials/errorlog.txt.

Press Ctrl+C to copy this message to the clipboard.
---------------------------
OK
---------------------------
It means you should wait for the next release, or at least search this thread for the answer I provided maybe last week. Or edit trainertypes.txt manually rather than using the Debug option in-game.

Three choices for you. Pick one.
 

KitsuneKouta

狐 康太
442
Posts
14
Years
  • Age 32
  • Seen Nov 20, 2017
Hi all,
Does someone know the additional script for an autonomous movement towards an event. Instead of for an event; 'move towards the player' - 'move towards EV001'??? It must be possible somehow, but probably only with a specific script for in the script option.
Actually, no script is needed. Just some eventing (so from that you should be able to tell this question doesn't really belong here). In an event, set up a control variable whose value equals the desired event's x, another for that event's y, one for the player's x, and the last for the player's y. Then make a conditional branch that compares these values (i.e. if variable1 (event's x) > variable3 (player's x)), then does a set move route (if variable1 > variable3, move player right). You'd have something similar for the y values (variable2 and variable4), and you'd have to check < and > on both. Then just loop this, and check to see if the player's position (you'll have to update variable3 and variable4 each time you loop in case the player moves) is where you want it in relation to the event so you can break the loop and continue the game. You can probably figure it out from here.
 

IceGod64

In the Lost & Found bin!
624
Posts
15
Years
So, I thought of something and I have a question. Not sure if it belongs here, but...

Say on my bag screen I want the item description for TM's and HM's to automatically grab the moves description from moves.txt instead of the item description.

Would this be possible? I have 110 combined TMs and HMs in my game and that a lot to go through and manually paste the descriptions.
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
So, I thought of something and I have a question. Not sure if it belongs here, but...

Say on my bag screen I want the item description for TM's and HM's to automatically grab the moves description from moves.txt instead of the item description.

Would this be possible? I have 110 combined TMs and HMs in my game and that a lot to go through and manually paste the descriptions.
It's a question about Essentials, so it definitely belongs here (at least until we get a new forum sub-section). I haven't tested this but:

In PokemonBag, find the following code (line 421):
Code:
@sprites["itemtextwindow"].text=(itemwindow.item==0) ? _INTL("Close bag.") : 
   pbGetMessage(MessageTypes::ItemDescriptions,itemwindow.item)
Replace it with:
Code:
if pbIsMachine?(itemwindow.item)
  description=pbGetMessage(MessageTypes::MoveDescriptions,$ItemData[itemwindow.item][ITEMMACHINE])
else
  description=pbGetMessage(MessageTypes::ItemDescriptions,itemwindow.item)
end
@sprites["itemtextwindow"].text=(itemwindow.item==0) ? _INTL("Close bag.") : description
There are 3 other places that will also need to be edited, two of which in a similar way to above (all four cases are: viewing the Bag, choosing from the Bag, item storage in the PC, and in the Mart). Search the scripts for ItemDescriptions to find them, and do so.

You can now write any old rubbish for a TM's/HM's description, and it won't be shown.
 
Status
Not open for further replies.
Back
Top