As said in the title, if an NPC’s body is set to massless on the server, it momentarily stutters from the client’s POV.
This is a problem for me because in order to use LinearVelocities (used for special abilities e.g. dashes, double jumps) I make the target massless to prevent the massive difference in force application between grounded and aerial humanoids.
As I cannot post in #bug-reports, I’ve come here for advice on any workarounds or different tools I can apply to prevent this from happening.
For anyone who’s interested in replicating this, the following is all you need to do:
Make a new place.
Create a new rig (I used blocky but any should work), leave it named “Rig”.
Paste the following into a script in ServerScriptService, and then press play:
local RunService = game:GetService("RunService")
local Rig = workspace.Rig
local Rig_Humanoid = Rig.Humanoid
local Delta_Count = 0
local Second_Timer = 1
local Third_Timer = 0.75
local Massless_Count = false
RunService.Heartbeat:Connect(function(Delta)
Delta_Count += Delta
if Delta_Count > Second_Timer then
Second_Timer += 1
Rig_Humanoid:MoveTo(Vector3.new(math.random(1, 50), 0, math.random(1, 50)))
end
if Delta_Count > Third_Timer then
if Massless_Count == false then
print("Setting massless now")
end
Third_Timer += 0.25
for _, Object in Rig:GetDescendants() do
if Object:IsA("BasePart") then
Object.Massless = not(Massless_Count)
end
end
Massless_Count = not(Massless_Count)
end
end)