How do you render NPC's on the client?

So I’ve been struggling with rendering server movement on the client
image

In the server the NPC is really just 3 values, the ObjectValue “Army1”, the Position of it “ArmyPosition”, and where its heading “Destination”

As of now the script reaches 15% script activity with only 72 Army1’s
image

And as for the script
image
I know how unoptimized this script is, but I’m basically looking for a way to get up to 500 npcs moving at the same with little to no lag

There are a many problems with your script which to the point you gotta be asking yourself “Is this REALLY a good Idea?”. But basically you could have a RemoteEvent which you can fire to all Players. That Remote Event then moves the NPCs on the Client using TweenService.

Wouldn’t they eventually go out of sync?

They wouldn’t since TweenService ensures that the tween is completed in time ( also you would only fire the remote event to where you want the NPC to move ). TweenService is for context a Service which allows you to change a property smoothly ( like a number going slowly to 10 ).