I’m assuming it’s part based. To create a character controller, you’ll first need to give the player network ownership of the assembly. This allows the player to control the character from the client. After this, you’ll just need to use the UserInputService or another input handler to get and act on user input.
https://developer.roblox.com/en-us/api-reference/function/BasePart/SetNetworkOwner
If it is GUI based you should look into nature2d and remote events.