Moved my combat system to a weapon module instead to develop easier, and also added a state machine to it, so now we can take advantage of the deffault state syncing on chickynoid and just set the state with the state machine.
Look at it, its beatifull!, only issues im having rn is self:SetPredictedState() being janky but thats prob bc i am an idiot and not using right,and I just gotta learn how to use antilag module to do the hit reg.
Hey @MrChickenRocket, fantastic framework! I am excited to see the future of Chickynoid.
Now, one thing that really is barring me and another from working on a game using this is support for non-convex hull collisions for complex meshparts, such as a tree with many branches for example. Is there any news on when there may be support for that?
I want to write a mod for adding more features to chickynoid, one of these features is adding the Roblox default system where characters point to where they are looking on first person/shiftlock, I am aware chickynoid.simulation.state.angle Already provides the angle and :ServerProcessCommand()command.fa already gives the camera angle/mouse position which can be used for head rotation.
However, this data doesnât seem to be replicated to other clients by default, should I just use :SendEventToClients() to replicate it every step? or add it somehow to the worldstate characters sent to clients?
I also want to know whatâs more efficient for this since hit points are not replicated anywhere to clients and I want to find a way to replicate them.
Good question! There is already a system for replicating visual data about each player to each player.
Simulation writes to a structure called CharacterData.
Add a new field to characterdata, write to it from simulation, and use it for rendering inside the client.
I am not 100% sure you can do this with just a mod, but you might be able to!
So I guess using the :Step() function from a server mod I grab all the characterDatas inside the playerRecords.chickynoid.simulation.characterData and then set itâs angle property to simulation.state.angle
You can sync the characterData through simulation or brute force it before itâs packed and sent out through ChickynoidServer:Think()
Make sure you have the default characterData structure updated beforehand(i.e packFunctions, lerpFunctions, and the metatable):
Player characterData is now shared between clients through ChickynoidClient.characters.
For updating humanoid health values, the Client>CharacterModel:Think() function reads the characterData via dataRecord by default. It can be used like this:
Playerâs designated humanoids now have their health/max health sync.
I also recommend updating the resimulation handler within ClientChickynoid:HandleNewState() so that it accounts for moveState changes on top of just a position magnitude change(ActiveAnimation is how I deal with animations and motion interpolation, so ignore that):
Ok but how do I even read otherplayerâs characterData from the client, all you can read is characterModelâs inside the Client.characters table. I literally just noticed the characterCreated event only provide the characterModel.
Oh yeah I just noticed that it was my issue, I also noticed angle is replicated already by default which is what I want, so ill only replicate the camera angle for the head movement then, thanks for the help!
There are basic guns included, They are weapon mods, I believe if you download the default chickynoid placefile you spawn in with a sniper rifle, Press Q to fire, you can also give yourself a submachine gun.