I think you mean "no direct effect on damage", by which I mean stuff that is either a modifier in the damage formula or a modifier to a Pokémon's Attack, Defense, Special Attack, or Special Defense; stuff like Anger Point which are not themselves modifiers to damage or stats that govern damage, but can generate modifiers to damage (like stat stages), have an indirect effect.
The damage calculator lets you freely fiddle with values like Ability, typing, and Base Stats.
Also, I have something to say that has nothing to do with other posts in this thread: I have noticed a lack of Substitute in the damage calculator, though I am not entirely sure how necessary it is. Since it takes off 25% of its user's maximum HP to create what amounts to a separate "shield" health bar with an amount of HP equal to the amount of HP used to create it, and since most attacks in competitive Pokémon take off more than 25% of their target's HP, the usual practical effect of Substitute is to cap the damage of the next hit taken to 25% of the user's max HP. There are cases where an attack would not take off 25% or more of the target's HP, such as Seismic Toss used on a Pokémon with a huge HP stat like Blissey or Wailord (I'd mention Wobbuffet, but it can't learn Substitute), in which case the Substitute survives with a reduced amount of remaining HP, but leftover damage from the hit that breaks the Substitute still isn't transferred to the Pokémon behind it, so it still imposes a cap on the effective damage from the hit that breaks it. I think this cap only applies to the damage that would be taken by the Pokémon behind the Substitute; it doesn't apply to other things that are a function of the dealt damage, like healing from moves such as Drain Punch or Giga Drain or recoil damage from moves such as Double-Edge or Wild Charge. A Substitute also prevents most status moves, like Leech Seed, Toxic, Hypnosis, Thunder Wave, etc. from connecting with the Pokémon behind the substitute, and also prevents secondary effects like status effects or stat drops from an attack that hits a Substitute, but it does not prevent indirect damage such as weather, poison, burn, Curse, Leech Seed, etc. (though a lot of these, like poison and Leech Seed, require that the indirect damage in question starts before the Substitute goes up, others, like weather, can start happening regardless of whether or not a Substitute exists), nor does a Substitute prevent the Pokémon behind it from deducting its own HP to use moves like Curse (as a Ghost), Belly Drum, or Mind Blown (though not Substitute itself, as it fails if used while a Substitute already exists), taking recoil damage from moves like Double-Edge and Wild Charge, reducing its own stats or afflicting itself with status conditions by using certain moves (such as Close Combat or Outrage), or taking damage from self-attacking by confusion (though, again, the confusion usually has to be inflicted before the Substitute goes up). These are all things that should be known by competitive Pokémon players, and they may not be relevant to the damage calculator (though it may do things like change 6HKOs to 7HKOs, I'm not sure). Where it gets interesting is when Substitute is ignored or transferred.
Pokémon with Infiltrator bypass an opponent's Substitute with any move they use, and sound-based moves bypass Substitute regardless of whether or not their user has Infiltrator. This means that the damage calculation will be the same regardless of whether or not a Substitute exists. Also, while a Substitute usually vanishes immediately when the Pokémon behind it is switched out (or when it faints), it stays in place if the Pokémon behind it was switched out by using Baton Pass. When this happens, the Substitute's HP remains the same as it was when the Pokémon behind it used Baton Pass and exited the field, but a Substitute does not have defensive stats of its own; the
damage a Substitute takes from an attack is determined by the type, Defense/Special Defense, Ability, and held item of the Pokémon which is currently behind it (as well as global modifiers such as weather and terrain). This means that Baton Pass can be used to give a Pokémon a Substitute with more HP than a Substitute that Pokémon could create itself could have, and that a Pokémon can get a Substitute without sacrificing any of its own HP. While this scenario will not come up in most Smogon-based battles due to our Baton Pass clause, people will use this calculator for battles with or without that clause. So we need to be able to factor in damage based strictly on the HP the Substitute itself has, using the type, stats, Ability, and held item of the Pokémon behind it (we don't really need to worry about damage in excess of a Substitute's HP, since that isn't transferred to the Pokémon behind it). A Substitute could be broken in one hit when its original creator is attacked, but that same attack could fail to break that same Substitute if it is transferred to another Pokémon.