Chickynoid, server authoritative character replacement

Probably just added there for testing purposes, if you want to get rid of them just delete them, if you also want to get rid of fly you also need to go to the “NicerHumanoid” script and remove this

image

1 Like

Yeah, these are specifically the types of cheats that the system is designed to block :slight_smile: Pull them out when you don’t need 'em anymore.

1 Like

So while reading how Weapons worked when equipped, I noticed how the server can only equip weapons, and then tell our client to equip that on its world state, while this is mostly fine, sometimes when latency is bad it can screw us over. So, I modified a bit the ClientWeapons script and made it so clients instantly equip weapons via a command and also do it from the server to stay synced.

It works with the default chickynoid weapons included!, I still need to re add the og behavior just in case the server dictates that we should unequip our weapons and then replicate it to our client.

is it possible for chickynoid to accurately traverse unions and if so how would i make it do that?

Not yet, but soon, max it can do is convexhulls on meshparts, I suggest you to put colliders on said unions to work arround the issue.

Chickynoid seems to be a great way to manage player movement, but what about fast paced games?
When character can teleport, dash, wall run and other stuff that makes it hard to handle

If they’re implemented correctly, fast paced player movement is what chickynoid does best :slight_smile:

1 Like

Can I change the CollisionSize for each player?

Not without updating the collision module to support variable sized queries. It’s not a big job, but not default supported.

Can someone explain how are characters keep getting duplicated on the client when I set my custom character?
image

I lost :sob:

Does anyone knows a way to get player collisions?, In my game the hit registration feels horrible because players collide into each other causing hit regs to just miss them, and also its annoying fighting people and having them just walk through you.

I am aware that if player collisions were turned un running into people would cause rollbacks because the positions of other players are delayed, so if the client’s simulation just resolves the collision against a player, the server wont agree because that player was not there. As far as I know client prediction isn’t a thing in chickynoid so this is probably what would happen.

I don’t mind having these rollbacks as they would be 10 times better than having people clip through you.

Sorry if you’ve been asked this numerous times before but will there be a chance that we’ll be getting documentation soon?

I modified the MoveTypeWalk script to play 4 directional animations!

if anyone wants to do this, just use this logic on the part where the walk anim is played and change it to this:
– Play animation according to direction the player is facing and wish direction

			-- Convert data to CFrame
			local AngleCFrame = CFrame.fromEulerAngles(0, self.state.angle + math.rad(180), 0)
			local WishDirCFrame = CFrame.fromEulerAngles(0,MathUtils:PlayerVecToAngle(wishDir) + math.rad(180),0)
			-- Get dot products
			local LookDotProduct = AngleCFrame.LookVector:Dot(WishDirCFrame.LookVector)
			local RightDotProduct = AngleCFrame.RightVector:Dot(WishDirCFrame.LookVector)
			-- Pick Animation
			if LookDotProduct > 0.5 then
				self.characterData:PlayAnimation(Enums.Anims.FrontWalk, Enums.AnimChannel.Channel0, false)
			elseif RightDotProduct > 0.5 then
				self.characterData:PlayAnimation(Enums.Anims.RightWalk, Enums.AnimChannel.Channel0, false)
			elseif RightDotProduct < -0.5 then
				self.characterData:PlayAnimation(Enums.Anims.LeftWalk, Enums.AnimChannel.Channel0, false)
			elseif LookDotProduct < -0.5 then
				self.characterData:PlayAnimation(Enums.Anims.BackWalk, Enums.AnimChannel.Channel0, false)
			end

Obviously make sure to load these anims first and also write the Enums for the anims into the Enums module.

3 Likes

Check if hitboxes intersect, if so apply velocity in the opposite direction like how boids are separated, I used this for bots so I just updated their move command accordingly instead.

Hey, can someone tell me what should I do regarding this error?
: While I am trying to export chicynoid to my own place, there are two errors that occur:

I tried fixing them but I didn’t have enough time. Has anyone encountered a similar issue or has a solution to it?> Thanks in advance

@MrChickenRocket , it looks like the demo scene isn’t working anymore. Could you take a look please?

1 Like

I’ll get on that this weekend still traveling Atm

1 Like

All done, version online now loads again.

1 Like

It seems that the animate script on the visual humanoid doesn’t load mood animations properly? It loads the default mood regardless of which one is set.

Awesome resource, and I’m really glad this exists! I’ve been thinking about implementing rollback since 2020, but so many devforum threads thought it to be “impossible”. Boy you proved em wrong. On another note, do you think you could provide some more in depth tutorials on how to implement this into a game? I’ve been developing a 3d platform fighter for 2 years now and I’ve been really wanting a robust character replication system. For the past few months I’ve been using Roblox’s Beta Character Physics Controller (which is great), but still relies on delay based netcode (and is really buggy when switching the network owner). I really would like to use this system, but obviously it’s completely incompatible with Roblox Physics forces. Perhaps a more in depth documentation would help me achieve my goals and make implementation just a tad bit easier.