Very cool, but I don’t see this becoming the next best character replacement due to the fact there’s a ton, I mean a ton of bug’s in the system not to mention this in its self is a bad idea,
You’re making two objective claims without explanation or evidence:
What kind of deal-breaking bugs are there in the system?
Why is a server-authoritative character controller a bad idea? I think it’s a really clever solution.
Currently, in most games, the player’s character is owned by the client. It’s an easy solution, but very exploitable.
The idea of Chickynoid is to let the server own the character. By using deterministic movement code, the client can provide an input and run the outcome before the server can respond and come to the same solution. So, input lag is minimal and the security is bulletproof.
Of course, it requires a lot of development since the entire character controller is being written from scratch. But once this is production-ready or if Roblox takes attention, character-based exploits are practically ineffective.
tl;dr: Chickynoid is not an anti-exploit. It does not respond reactively to abuse at the edge. Instead, it solves the problem at the root.
I have been using it for developement and have not found any issues that are game breaking or anything, the maximum I found was the fast delta time exploit to slightly give players a higher jump boost (its like very minimal).
Also saying this is a bad idea is a bit silly considering all triple A titles out there you see use this solution already.
The mod has been released as an alpha, and I think its on a semi stable state, and also utilizes chickynoid features and works with mods!
Make sure to check it out if you are interested in learning about writing mods for chickynoid or wanna learn how to make simple networking with it, or you are just looking for an inventory system for chickynoid.
does it work for R6? because I only found R15 examples
Yes it does!
Get an R6 rig and name it to “R15Rig” then simply use it to replace the one located on here
Then go into the CharacterModel module script and make sure to have the hip set to this or your preference for your R6 rig to not be clipping into the ground
Make sure to put all your deffault animations inside the Rig’s humanoid’s animator as animation instances with these names
Simple as that!
Thank you for writing that up! You should submit it as a documentation PR
Is this still under development? The last update to the GitHub was 4 months ago.
It’s in a stable state. Games are shipping with it atm. It’ll get some updates when new roblox tech comes along like unreliable remotes
Can you post a few games that use it? Would work good as an example to show how well it works!
Here is a prototype of a game built on chickynoid: (10) project rails prototype - Roblox
Its simple but cool
@MrChickenRocket
I have a question, should we use commands for anything related to sending data between clients and server or should we use a mix of commands and remote events, I am asking this because I am not sure if it’s very effective sending data every frame for some things.
If you’re worried about how much data is in commands it should be possible to use table delta compression on the commands. It’s already used in a few other places.
If the input needs to be predicted, use a command, else use whatever you like.
@MrChickenRocket I got an error saying this when I inserted Chickynoid inside
the game Flee the Mall
ReplicatedFirst.Packages.Chickynoid.Simulation.CollisionModule:892: ReplicatedFirst.Packages.Chickynoid.Simulation.CollisionModule:847: attempt to index nil with 'GetDescendants'
did you just copied the chickynoid module and inserted it to your game, because if so then its not gonna work, You need to insert the module, the server mods, and also you must have a script that sets up the necesary mods such as generate command and the other one i forgot its name.
Uhh yes I did also idk where to put the scripts in github
i recommend you to download the roblox place file and grab everything from there.
I have the file and I added everything from the uncopylocked place
Make sure you set the workspace up correctly
Yeah now that I remember its probably because you need to insert a folder into the workspace called GameArea, its probably erroring because since it doesnt exist it cannot get its descendants