Chickynoid, server authoritative character replacement

I would say it’s extremely more than reliable enough, especially for roblox. Also if you’re able to lower an aimbots accuracy by any percent, I’d consider that a win. I see a lot of people complain that certain anti cheats aren’t 100% perfect so therefore don’t bother and they’ll shut you down. If that’s the case, you’re never going to be satisfied with any security measures.

1 Like

how about maybe a vote kick system, where if the anti cheat system detects you are cheating you are put up for a votekick and that way players will judge if you are aimbotting, considering most FPS games have a way to check the head movement a real player can tell an aimbotter so that way they can judge him for themselves and vote him out.

Also I have been thinking of making a record/replay system on chickynoid for character positions, the reason I wanna do this is because nowdays people usually have “chat servers” for posting clips of someone cheating but nowdays its pretty easy to record a fake clip having a cheater look on your client like another player with exploits, and basically get him falsely banned with false evidence, So how about a replay system that you can use to record a player via the server and then tell if he is cheating once a moderator gets on and reviews the replay.

Vote kick system could be good, could also be abused. Also, thinking back, I think chickynoid already lets you see on the server where a player was at a certain time, and it’d be more accurate as it’s what’s being replicated to other players, so you could get really precise and reliable with it.

Thats why I suggested only pulling out the votekick system when the anti cheat detects it, a player cannot call a votekick, only the server can.

Does anyone knows how to play animation tracks from the server on chickynoid?, I have tried to look into how to do it but it’s so complex and it uses Enums for some weird reason to the point it is making me go insane, Does anyone knows how?, Because if not ill resort to having to fire clients and play the animations on their character copies so it gets replicated and that will be tedius.

Expand the enums to include all the animations you want (to be honest, doing this somewhat sucks atm but can be done via mod)
Play the animation on the characterData in the simulation.

1 Like

Im kinda confused here, so for the past days I have been trying to implement this but its kinda hard

So from what I understood I first need to expand Enums.Anims[“AnimName”], So that way when you do characterModel:PlayAnimation(Enums.Anims[“AnimName”]), it detects it and plays it, But do I have to load the animations from the client for each character copy?, I read the code and the server never run’s once :LoadAnimation(),

So if I have a sword for example, Do I need to first fire a command to the server which the server then does :SendEventToClient() to all clients which causes them to load the animations of the sword into their character copy of the Sword owner

and then after that I just do :PlayAnimation() from the server???

Im so confused here, I don’t know what the intended way of doing this is?

Edit: I am going insane I have tried everything, and it doesnt works I think im about to lose my marbles.

I dont understand why my script is not working?

I have placed all the Enums for the animations
image

I dont exactly know how to load the animations, so I placed them all on the starter rig, since the code loads these automatically and places them into the “tracks” table.
image

I have made sure the characterData Exists, the animations are loaded (they even show on the tracks table upon being printed)

I dont understand why is it not working?, I have also tried using a different anim channel.

Hey, currently it seems like both the “dev.project.json” and “default.project.json” are partially broken when being immediately loaded in from a fresh github clone.

“dev.project.json” gives errors about a shared folder not existing when trying to run the game, while “default.project.json” gives errors when trying to initialize it through rojo. I’ve also gone ahead and fixed default.project.json, but now this error starts flooding when ingame for a few seconds.
RobloxStudioBeta_UJKaA7de9z
(All I’ve done on my end is run :Setup on both the client and server)
It seems like it’s trying to use a registered mod when the default.json file never has anything calling the registermod/registermods function, and it doesn’t seem like any mods are synced in the first place (could be wrong)

Is there a guide on how to set up chickynoid from the github anywhere?

No but that’s a good bug report, ty. I’ll fix it when I get back from gdc :slight_smile:

I am at late hours writing code, possibly figuring it out, and someone just pointed why it wasnt working, apparently it’s not working because its not even designed to work, chickynoid cannot even play 2 animations at once, even the characterModel:PlayAnimation() function is designed to stop all anims when another one plays, which does gets called by Think() in order to play all the anims we give it via the characterData:PlayAnimation() function, In fact AnimChannels dont even do anything.

Wow honestly no wonder no one was telling me how to do it, it’s because there is no way to do it, and now I am forced to fork the code once again, Aint that wonderfulll.

:confused:

Edit:

if anyone wants this fork here it is lol:
CharacterModel fork.lua (8.2 KB)

just replace the CharacterModel script inside client with this one and thats all.

1 Like

Little follow-up, I did some tinkering around and managed to get it working through the dev.project.json installation after fixing some hierarchies and swapping some dependencies (one of the modules seem to be expecting chickynoid to exist inside of a “Shared” folder in replicatedstorage while another one expects it to exist in a “Packages” folder in replicatedfirst)

Now another issue crept up; for some reason, the character moonwalks!

I thought it might’ve been because the waist’s motor6d being backwards in the rig but, applying my own rig to it lead to the same issue. Now all things considered, you could probably fix this by making the player’s waist motor6d backwards but that seems like a very bandaid fix.

I’ll keep tinkering around and see if I can find anything else that’s immediately broken in the original installation.

I’m not familiar with wally so I won’t be making any pull request from fear of breaking wally support. Here’s hoping that informing you about these issues is enough to get these problems looked at as it may prevent people from using chickynoid.

Edit: Another issue found, may be related to your character facing the wrong direction. You can’t walk up stairs. You have to jump, despite that not being the case in the example place.
Speaking of, the example place seems to have a strange extremely prominent camera lag when jumping. That didn’t seem to be the case a few months ago. Any idea what’s up with that?

1 Like

He just likes being michael jackson, let him do his thing and moonwalk.

4 Likes

This is a really cool resource! Unfortunately I am currently developing a competitive time-based obby game, and, correct me if I am wrong, the input lag would make this not feasible for by use case! Definitely will look into using this for other projects, though!

1 Like

from what i know the input lag is the same as you would normally get with humanoids

1 Like

Theres no input lag, The client has it’s own simulation, it sends it’s inputs to the server so the server can run those same inputs on the server simulation. That way it feels responsive and works perfectly.

2 Likes

cc: @jake_4543

Ah, my bad! Well maybe I’ll look into using this for my game. Thanks for the heads up!

1 Like

No problem, just be aware it’s not easy to use if you wanna do more advanced things and the physics are way more different than humanoid ones, but theres a lot of properties to change to adjust it to your needs.

1 Like

New issue, copied test place to a personal place to test why exactly the player is lagging behind and it just consistently crashes roblox when trying to play. Is there some sort of missing game setting that needs to be set?


The game loads in as usual and after it finds a server it slows to a crawl before completely crashing.

1 Like

I have not changed anything in the test place for a long time!
Edit: published a new version, just in case I broke something.