The discussion is hidden in comments, so lets do a basic example here.
Regular Example
We have a game with 3 players, A, B and C, and the Arbitrating Server, AS
Game Frame is started.
Player A selects their weapon, and their angle. They fire, and a "Fire" packet is sent with (WeaponId, Angle, Amount of Power) data.
AS receives this packet, sends it to all other players.
Players B and C simulate the game as well.
Player B is shot, so their worm is moved elsewhere, the position has changed.
All players send the state of the worms, what weapons they have, their position and their facing to the AS.
AS confirms that the data is the same from all the players, so players are in sync. This frame is concluded, and a new frame starts.
Cheating Example
Now what would happen if A was cheating and modified the number of ammo they had?
Game Frame is started.
Player A changes the number of rockets they have from 0 to 10.
Player A selects the Rocket weapon, and their angle. They fire, and a "Fire" packet is sent with (WeaponId, Angle, Amount of Power) data.
AS receives this packet, sends it to all other players.
Players B and C try to simulate the game, but notice that A has no ammo. They send this discontinuity to the AS.
AS broadcasts an "Out of Sync" message, and the game is terminated.
Keep in mind that this is a simplified look at how it works, but the premise always remains the same.