Alrighty, as the OP has mentioned that the issue happens with the Attack IVs, I can answer this question.
Why that is happening
First of all, let's teambuild. We're taking a Ditto in a Gen 8 format, and we're giving it Transform without changing anything else. Let's see the results.
Exactly what the OP mentioned -- the Attack IVs changed to 30. This happens because Transform is a status move. The reason behind this is simple, too. The Showdown! teambuilder automatically changes the attack IVs to either 30 or 0 if a Pokémon has only status or special moves, or a combination of both of them. This is mainly to reduce damage from Foul Play and Strength Sap. This is the norm automatically set at the teambuilder level, if you want to deviate from it you'll have to do it manually. Even though it might seem weird for the teambuilder to change the IVs for just two moves, there was an uproar around the X/Y era, when 2HKOs after some chip turned into OHKOs, so some developers like DaWoblefett introduced this to the teambuilder, and the practise has continued since then. Also, when a Pokémon has only Transform (be it any Pokémon), the attack IVs change to 30, whereas when a Pokémon has special and/or status moves, the said IVs change to 0.
When you put Imposter as the Ability in a Gen 8 format, its Attack IV drops to 0.
commented 14 hours ago by J™
That is also true. Whenever you add a Pokémon to a team and not change anything except the ability, the attack IVs, again, change to zero. I don't know exactly why this happens, but it's universal and must be something which works alongside the attack IVs teambuilder norm.
What source do I have for this, though? I'll get to it right now, in the next part of the answer.
To verify, we'll have to teambuild, again, but not with Ditto's this time. We'll teambuild with:
- A Pokémon with only special moves (older Gen)
- A Pokémon with only status moves (current Gen)
- A Pokémon with a combination of both
- A Pokémon (not Ditto) with Transform (and nothing else changed)
Let's try #1 first.
As you can see, the attack IVs changed to 0 here also. This is Arceus in Gen 4 Anything Goes, and Foul Play doesn't exist in Gen 4, but still the IVs reverted to the builder norm, so now our "assumption" is almost concrete now. This would also be similar for current gen, I tried it with an older gen because I wanted to test if sumwun's comment about the differentiation between generations (that's how I took it).
Anyways, off to #2 and this is gonna be shorter.
Gen 8 Anything Goes Giratina. Here also, the attack IVs changed to zero because it had only status moves. Assumption: almost true. If you notice that the speed IVs also changed to zero, don't worry lol it's because I manually did 0 speed on the Giratina.
Let's get over with #3 too.
Gen 6 Pure Hackmons Xerneas. Same thing here as above, said IVs changed to zero because of only status moves + special moves, nothing out of the box here. What we assumed at the beginning of the answer (that the attack IVs change to zero in certain conditions) is now verified. But Transform changing the IVs to 30 and not 0 isn't verified yet. So now let's do a Pokémon with only Transform which isn't Ditto.
Voilà! The attack IVs changed to thirty here also, and now we know that Transform will change it to thirty IVs. So, out supposition is now proved.
I'll summarise whatever I said here below.
So now we can safely conclude our strings of experiments (lol). We now know the following:
- The attack IVs change to 30 when a Ditto has Transform only because of the teambuilder norm (scroll above, first section of the answer, for more on it).
- The attack IVs change to 0 when a Pokémon has only status/special moves or a mix of both because of the teambuilder norm.
- All this is normal and will happen in almost all situations.
That's all, hope it helped!