Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
18

Does anybody have specific information about these Humanoid Limitations? [closed]

Asked by
Uglypoe 557 Donator Moderation Voter
7 years ago

Hi. This is probably a different question than you're used to seeing on this site, but I've been recently having an issue in my game revolving around the Roblox Humanoid. I've found that there appears to be several hidden limitations with it that can stop developers (such as myself) from creating very complex and intricate Custom Characters. Here is the information I've collected:

Limitation 1: Player "Bounce" Glitch

This glitch has been in Roblox for as long as I've played. It would take the form of your character seeming to fall into the ground before bouncing out. It would also make your character experience very strange effects when you use Shift Lock (you would usually fly across the game). After collecting some data, I've determined that the cause for this glitch is not what many of us developers have always thought it was. When thinking about the glitch, the obvious conclusion that comes to mind is that the weight of the parts attached to your character are too heavy, so they 'drag' you into the ground. I've proven that this is incorrect by creating a large custom character that weighs less than the normal Robloxian (the custom character weighed approximately 60% of the Robloxian's weight, yet the custom character was affected by the bounce glitch). The real cause for the glitch lies in how large the part attached to your character is. I've determined that the maximum size of a part that can be attached to your character without having it experience the glitch is approximately (6.3, 6.3, 6.3), whereas the glitch begins when the part has a size of (6.31, 6.31, 6.31). These values make it painfully obvious that for whatever reason, a limitation has been set on Roblox's end to prevent characters from having parts that are 'too large'.

Limitation 2: Packet Size Glitch

I've only very recently discovered this second glitch, which has to do with the amount of instances your Custom Character contains. From what I've discovered, having a custom character with more than 256 parts (each with a custom mesh) will cause the character to no longer replicate from the Client to the Server. The client will still be able to move around on their end, but the server will appear to see them as frozen in one place. When this glitch occurs, the output spits out a long line of information about Packet Size. Specifically, when one of my tests had 257 parts (with meshes), the glitch occurred and the error message stated "(ignored) readFast past end (Packet size: 1412, packet type:27)" along with the message "(ignored) Failed to read Quaternion (Packet size: 1412, packet type:27)". From the looks of it, Custom Characters have some sort of limitation as to how complex they can be.

Now to my main question: does anybody have specific information regarding to these limitations such as documentation relating to the Roblox Humanoid or something on the backend?

Thanks,

-Poe

0
I also experience this alot. I found that when scaling characters to large sizes it often helps to set the HumanoidRootPart size equal to the torso size. Toxicator1 4 — 7y
1
With R15, the bounce effect is less of a problem, but it is more of a problem when walking on parts or models that are not secured/anchored, the R15 will bounce into the model, and instead of flinging the player, (I think due to the Extra body parts of R15), it causes the model to fling. I've seen this many times before. Kulh 125 — 7y
0
I get the bounce glitch, You need to disable some settings in roblox studio greatneil80 2647 — 7y
0
or make less gravity to body maybe with bodygyros Lolamtic 63 — 7y

Locked by brokenVectors and Amiaa16

This question has been locked to preserve its current state and prevent spam and unwanted comments and answers.

Why was this question closed?

1 answer

Log in to vote
1
Answered by
gskw 1046 Moderation Voter
7 years ago
Edited 7 years ago

To answer on limitation #2:

TL;DR: you're facing a Roblox bug!

When Roblox physics are replicated on part that has Motors attached to it, the number of Motors is encoded as an 8-bit unsigned integer, meaning that the maximum number of motors that may exist is 255. This means that values such as 257 are actually truncated to 1. Generally, n_e = n_r (mod 256) where n_e is the encoded number of motors and n_r is the actual number of motors.

When Roblox then tries to read the physics replication for these motors, it will only read 1 motor, despite there actually being 257! This means that one of these motors will be read correctly, but Roblox will then continue reading from the packet, thinking it is going to read data describing the next part whose physics are replicated, when it is actually still reading the data for the motors. This will cause undefined behavior.

The networking code will actually log a warning internally if a part has more than 50 motors attached.

Ad