Chickynoid, server authoritative character replacement

Not that we have anything to prove here, but here’s a couple of screenshots to help you understand what’s going on :slight_smile:

Roughly the same thing, but just doing things the stock-roblox way with server owned rigs+humanoids.

7 Likes

This stuff is awesome! besides for a couple things…

Platform snapping - When going up to a platform, instead of a smooth humanoid like transition between both planes, it just crudely snaps to the highest possible point.

Angled movement(?) - Even if the platform is less than a degree tilted, the player can still walk up it the same way it can with a near flat platform.

image
(get down from there)

Slope misprediction - When running down a sloped surface with a walkspeed somewhat higher than 16, the game will start snapping you about forward and back trying to figure out where you should be.


It gets reaaal bad here

Bad upload speed (me issue) - going into a live server with bad upload speed will toss you everywhere. :sad:

tldr; there are some issues, some bigger than others.

2 Likes

Truly baffled at some of the responses here… I’ve been watching the GitHub since you first tweeted about it. It’s looking incredible so far, great work!

4 Likes

Ill add slope maxangle soon! I am not sure why a slope would be mispredicting that badly though?

2 Likes

Is R6 support planned, and if so, when? I can’t use this until it supports R6.

1 Like

what happened to Configuration module

1 Like

Must of been a bad commit! Configuration module is going in the bin.

1 Like

It supports it, just edit some lines inside local sided modules or scripts with ready R6 rig (it should looks like R15 (specially talking about Animator inside of Humanoid).

1 Like

Anyways. Planning to add this game to my game.
I have few questions:

  1. What about combat stuff with teleports and high speeds (not talking about exploits)
  2. How often it would be updated. So i can be sure when i need to update my game with fresh version of this module.

Also as i can see, you are big fan of Unity engine, since i can see familiar methods and etc.

1 Like

@MrChickenRocket doesn’t seem to know how to add R6 support themself but they said PRs are welcome, so would you mind making a PR with your changes? That way we don’t have to fork.

1 Like

While I really would like a server-authoritative humanoid implementation, it seems that this one focuses too much on client-sided anti-exploit and not enough delivering a performant server-sided humanoid solution. Don’t get me wrong, there’s some cool stuff in here, it’s just… unfocused in my opinion. I think that any active anti-exploit for this should be handled in a separate project. Will keep an eye on the development of this though.

EDIT: For example, you have a dedicated method for spamming the server with fake arguments, wasting bandwidth and quite frankly CPU cycles for no apparent reason.

2 Likes

There are no client side anti-exploits in chickynoid. That is the point.

3 Likes

I’ll add R6 support at some point, mechanically it’s trivial. Its just that there isn’t a reliable way to determine if a user wants R6 or R15 from code and their user profiles. We’d need that info to spawn them the correct base model to load their appearance onto.
Easier to just make it a user setting or server setting, but it’s not high priority.

3 Likes

Quick question, how do i add hitboxes support.
For new APIs like workspace:GetPartsInBox()
Since theres no player instances on server (maybe a bug or idk)

1 Like

There are no parts on the server that correspond to the players. However if you query the server.playerRecords, that always contains a very accurate record of where all the players currently are (much more so than humanoids usually are)

There are no nice helper functions yet, but the data you want is:

playerRecord.chickynoid.simulation.state.pos

playerRecord = roblox connection information
(server)chickynoid = replication information, command management
simulation = code run on client and server to product the player physics
state = the current frame-by-frame simulation state (pos, vel, etc)

Also, for replication purposes there is state.characterData, which handles the replication of simulations on the server to all clients.

1 Like

K so, another question about playing custom animations and changing/editing player model

1 Like

Check out the supplied character rig.

Animation workflow is:

  • Defined directly on the R15 rig and in the Enums.Anims structure. (this is subject to improvements!)
  • Triggered by Simulation: self.characterData:PlayAnimation(Enum)
  • Rendered by the client CharacterModel
3 Likes

Is it even possible to change character model in real-time. For example like equipping a helmet or changing the whole model.

You could use Humanoid:AddAccessory()

i dont think thats the answer i need. I was asking about editing character model on server.
for example morphing and etc