Technically an FPS limit is a muzzle energy limit
when people say "420fps on .20s", that's a muzzle energy limit, not a speed limit.
Because of joule creep, being most prevalent in gas rifles, but also possible in AEG's, it's most effective to chrono a gun with the weight of ammo it will be using in game.
As opposed to chroning with .20s, ASSUMING the joule curve is linear, and allowing what is actually a hot gun into play.
For example, my WE PDW:
Shoots 380fps on .20s, which is 1.34j
But shoots 345fps on .28s, which is 1.54j, and also ABOVE the 1.48j limit that was in place at the time.
That's a short barreled gun, longer barreled guns can be significantly more drastic.
So don't be ignorant and think joule creep is a 20-30fps problem, because I've seen it go much higher.
It's really NOT difficult to chrono on a given weight.
Why the hell do you need to know the exact muzzle energy they are shooting? YOU DON'T.
All you need to know is that they're UNDER the limit. Stop making this complicated with conversion rates and airsoft calculators and all that useless time consuming crap.
This is a picture of my chrono, it has the maximum fps for a given joule limit of the most popular weights of ammo.
It's fast. It's effective. It's ACCURATE. And it works.
Yes, some people may lie about running heavier or lighter ammo than they actually have, but if you're chroning with .20s, then YOU as the ADMIN are potentially lying to yourself and everyone else because none of those muzzle energy readings are necessarily anywhere near accurate.
If you really don't trust your players, then chrono everyone on .28s. It's the most common ammo type next to .25, and it'll tell you for SURE if they've got a joule creep issue.
I've been through the accuracy, loopholes, and ways to cheat a chrono with many other very intelligent people. What we determined is that in order to be 100% safe, a field would need to provide multiple weights of top quality ammo in a different color for each weight, and then provide everyone with a gun.