Decrease the Desync in Multiplayer Portion of my Game?

Hey everyone, I’m able to start working on my project again but I am at a bit of an impasse with the multiplayer portion. I’m not really sure what the issue is that is catching me but the game really desyncs quick fast and in a hurry online. I think it’s my variables on my unit object, but I am not certain. I have a lot of variables on the units because in single player mode you can posses an enemy unit and change their stats alongside their loadout after you posses them.

I actually do like that and it runs fine in singleplayer on my computer and my phone. I thought about just duplicating each type of unit with a single player version and a multiplayer version but there is also the opportunity to gut every NPC to be like the multiplayer object version and just use that in both single player and multiplayer.

In the photos the uh . . . . first 5 photos are the regular NPC variables. The 6th is the current Multiplayer setup. Adjusting that has allowed me to double the amount of units on the screen before Desync really sinks in. I thought about doing the same to my player units and then using global/scene variables to dictate their stuff but was unsure if that would actually really help.

The way I understood it was that variables didn’t matter in multiplayer unless they were actively being changed. The game plays in a top down view and I am looking to keep it as responsive as Hotline Miami but inside of a world like GTA 1 or 2 but with 2d assets only. I haven’t started doing massive levels yet so I haven’t implemented chunk loading.

Here are the other things I have done. Separation only occurs when collisions happen. Nothing off screen is animated. Unit decisions are not instant, depending on what they are determines how fast they can think. So like zombies can only alter their choices every 2 seconds where a human can every second. Any and all feedback is appreciated.