PokéBase - Pokémon Q&A
2 votes
376 views

Ok, I'm understanding Stat XP in Gen 1 much more so now. It now makes sense that when a Pokemon is defeated, stat xp is increased by the amount of the defeated Pokemon's base XP for that stat. But what if multiple Pokemon participated in the battle? Does only the Pokemon that actually got the knock out increase their stat xp? Does every Pokemon get the full benefit, or those who didn't pass the final blow only get half the benefit or something along those lines?

by
https://m.bulbapedia.bulbagarden.net/wiki/Effort_values#Stat_experience

https://m.bulbapedia.bulbagarden.net/wiki/Exp._Share

Edit due to new information:

I’m going to assume that stat experience works like normal experience , in that the values are shared amongst Pokémon that participated in Battle. If you have an Exp All item, both normal and stat experience are affected in the same way, which leads me to thinking that they also work the same way without the Exp All item!
Please don't answer when you don't know for sure.
@Yang Do you want me to put your question back on the unanswered list?
@sumwum if you would, please, yes.  Thank you!
Right. Well feel free to delete my comment if ‘being unsure’, even for the purpose of discussion and throwing hypotheses in the air to test them, isn’t the go around here. Because it looks like that I don’t have that privilege!
I appreciate your input, @The_Flying_Rodent102, and the time you put in to help me get an answer!
I just would've like it added as a "comment" rather than an "answer" without certainty, that way my question could remain in the "unanswered" questions list.  That way if someone does know for sure, it'd be easier to find the question.  Thank you though!
Comments for discussions, answers for definitive sure things. Makes sense, especially if an ‘answer’ makes it appear to outsiders that the question has been definitively answered.

Will do that next time. Apologies for being the ignorant new guy, I’ll stick to the system from now on. :P
No worries :)

1 Answer

3 votes
 
Best answer

Oook. I have a proper answer this time:

https://www.mediafire.com/file/hf13h8wyhpaqcxs/rby-v1.45.txt/file

Zerokid’s amazing guide is a work of art, and it contains just about anything you need to know about RBY. But for this question, we’re specifically after stat experience, which can be found on pg. 265 under the subhead [M03 - Stat Calculation].

Copy pasting from the guide:


Stat Experience Gained from Battle

Check section M03; 'Stat Calculation' for the basics of Stat Experience. Your Pokemon will gain stat experience for EACH stat equal to:

Stat Experience gained per stat = int(B/(N*E))

B = Base Stat of opposing Pokemon, as seen in my Pokedex. The stat used is the one you will gain stat experience in.
N = Number of Pokemon who saw the defeated opposing Pokemon and are not fainted.
E = 2 if carrying the Exp. All item, 1 otherwise.

If you are carrying the Exp. All item AND the Pokemon saw the defeated opposing Pokemon and is not fainted, that Pokemon has this formula multiplied by 2.

Example:

I am holding the Exp. All, and send my Pokemon, a Magikarp (why not?) into battle. Somehow, it wins, defeating a Rattata. How much stat Exp. does it gain?

  • B = ?: Whatever Rattata's base stat is for each stat.
  • N = 1: Magikarp is the only participant.
  • E = 2: I'm carrying the Exp. All.

Also, we must multiply the end result by 2 since I am carrying the Exp. All item, and Magikarp saw the defeated opposing Pokemon and is not fainted.

HP = 2*int(B/(N*E)) = 2*int(30/(1*2)) = 30. Attack = 2*int(56/(1*2)) = 56.

Defense = 2*int(35/(1*2)) = 34.
Etcetera for Sp. Atk, Sp. Def and Speed.

Note that Rattata's Base Defense is 35, and we only received 34 stat experience. Due to rounding, Exp. All sometimes gives slightly less stat experience when it is used, and this is the same for standard Experience points, as seen below.


With the above in mind, the general questions.

But what if multiple Pokemon participated in the battle? The formula in words is:

(Base Stat of Opposing Pokemon) / (Number of Pokemon that Participated) * ('EXP All Modifier') , rounded down to the nearest integer (this is how the 'int' function works in Assembly, which is the language that RBY is coded in).

Thus, stat experience is divided amongst those multiple Pokemon, as is the case for normal experience.

Example: If three Pokemon contributed to a battle against a Fearow (Base attack 90), then they would all receive 30 stat experience for Attack, regardless of who landed the knockout blow.

I believe that also answers the two follow-up questions to the one above.

Hope I helped!

by
selected by
RBY are just in assembly. There are actually disassembly projects to show this: https://github.com/pret/pokered
There is a comment on that answer saying it's inaccurate; I can also say through my own experience that whatever it says about "trade secret coding languages" and hindering piracy is rubbish.
(Edit was for fixing asterisks causing italics.)
Right.

Well: the point about the ‘int’ function and always rounding down, is the same in Assembly as it is in C. Slight edit to fix the wrong label!
Dang man, thank you so much for your diligence and help here!