You cannot access the player’s character from the server, characters are rendered only on client side, you do not need a player’s character to do so, I already explained how.
To access a player’s record and all their different objects/data, require the “ServerModule” and grab their playerRecord.
local playerRecord = ServerModule:GetPlayerByUserId(ID)
then from there you can access their data, if I am not incorrect you can get their chickynoid and then their simulation to teleport them like this:
local playerRecord = ServerModule:GetPlayerByUserId(MyID)
local chickynoid = playerRecord.chickynoid
local simulation = chickynoid.simulation
simulation:SetPosition(Position, true)
I encourage you to read around the modules and their functions and see what they do, chickynoid isn’t documented, so before I leave, I’ll explain some of the basics.
Simulation
This is the class that takes care of doing the physics work for chickynoids, all the physics are done here along with the math libraries like “CollisionModule”, simulations have a state table, this state table ensures that data inside stays in sync with server and client, whenever the state.pos desyncs it will resync all values inside.
there is also a constants table which contains stuff like movement variables, I suggest reading the “MoveTypeWalking” and “NicerHumanoid” mods to check out how constants are being used.
CharacterData
The characterData objects basically just holds data related to the character itself, it is often used to copy data from simulation.state and other places to be stored here, characterData is sent to all other clients so they can render said data, data sent by characterData is serialized to use less bandwith.
In order to add data to the “serialized” table inside characterData you must set up these steps.
Set your data inside the serialized table
Define the lerp function
Add it to the keys table
Choose a pack function
Add the write function to the SerializeTobitBufferFast function
CharacterModel
The characterModel script is a client only script, it is used by a player’s client to render data from a characterData object replicated to them, characters are not instantly created upon being constructed, make sure to use the FastSignals in them to wait for them properly.
CharacterMods
These scripts are pretty much where you will write any sort of movement code, you can also write other things but this is the most common thing you will write on them.
They have a Start function which runs code upon entering the MoveType, an End function which runs when exiting the MoveType, a function called AlwaysThink which runs at all times regardless if we are on that MoveType, and lastly a Think function which only runs when inside the MoveType.
they work like states on a state machine, I encourage you to read the MoveTypeWalking and MoveTypeFlying scripts for more info.
those are some of the basics.