Why is uint32 some times used instead of bool

I haven’t looked at the code for this, but 95% sure it would make no difference. The replication system works on the property level, it has to copy out the property value from wherever it’s stored and then serialize it into a state for sending over the network. Undoubtedly this code will be packing things together as efficiently as it can based on property type and should pay no attention to in what way the properties are stored on the container struct/class.