Local NPC System for large scale NPC

Currently attempting to convert my server side AI enemies over to a local - server system.

I have tried a few approaches now but honestly getting to the point where I’m not sure what to do. I tried making a test place, using the newer ControllerManager, I used no humanoid on the server, ControllerManager only. Created just invisible HumanoidRootPart, with a ControllerManager. With 50 NPC, I was seeing 70-90 kbs on the received network. Mainly because of MovingDirection needed to be calculated rapidly. After this attempt i just tried using a humanoid root part and a humanoid, at 50 NPC i was seeing about 60 kbs using humanoid:MoveTo().

I tested my current serverside enemies, that have modules in each one, an animate script in each one, and all of this is done on the server. My received network was 200-230 kbs. I did the same test, with the same amount of enemies with just HumanoidRootParts , and a Humanoid. And saw MORE network received at about 220 average kbs. How could single floating blocks, with no animation and a humanoid have more network traffic than the R15 model with a humanoid and a server side animation script?

Is there anymore approaches to creating large scale NPC? I know about tweening i just dont know how exactly id impliment jumping falling etc. If i an avoid having to recreate the humanoid and ControllerManager id like to.

1 Like

I attempted tweenService and that seems like a disaster.

For an autonomous car system I made, I only move the server side [psition once a second, then the clients update the CFrame of their representative cars positions every heartbeat until after 1 second it reaches the updated position and it all starts again.