When you pass an array that is missing the first key, it will automatically convert all the keys to strings. It is expected that the keys would remain as numbers
When you pass an array that is missing > 1 key in sequence, all data after the missing keys will be lost
-- Keys remain as numbers as expected
game.ReplicatedStorage.RemoteEvent:FireServer({[1] = true, [2] = true, [3] = true})
-- Keys converted to strings, expected to remain as numbers
game.ReplicatedStorage.RemoteEvent:FireServer({[2] = true, [3] = true, [4] = true})
-- Keys remain as numbers as expected
game.ReplicatedStorage.RemoteEvent:FireServer({[1] = true, [3] = true, [4] = true, [6] = true})
-- Keys remain as numbers, all data after hole in array (5, 6) is lost!
game.ReplicatedStorage.RemoteEvent:FireServer({[1] = true, [2] = true, [5] = true, [6] = true})
Output from above code
Repro, all code in ReplicatedStorage
NetworkBugs.rbxl (45.5 KB)