Erm… Animations are supposed to be played on the client-side, not server-side. It will automatically replicate the animation to everyone else in the server. Playing it on the server will just cause unnecessary lag, you wouldn’t want that.
yeah that makes me question it as well, can I just use a server script to load the animation? what if it loads the animation for everyone? I mean I do have the server set to give the necessary items to one player only.
You already have the permission check created when you add those floating lights, you can just include at the end the following:
local Humanoid = chr:WaitForChild("Humanoid")
local Animator = Humanoid:WaitForChild("Animator")
local Animation = Instance.new("Animation")
Animation.Parent = Hum
Animation.AnimationId = "rbxassetid://17300216850"
local Anim = Animator:LoadAnimation(Animation)
Anim.Looped = true
Anim:Play()
also this is the updated script on the server:
this is the updated scripts I have:
**SERVER SCRIPT**
```lua
PLAYERS.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function(chr)
if plr:GetRankInGroup(GROUP_ID) >= 250 then
local HRP = chr:WaitForChild("HumanoidRootPart")
local HUM = chr:WaitForChild("Humanoid")
local FOOT = chr:WaitForChild("RightFoot") or chr:WaitForChild("Right Leg")
local AURAS = HAVEN:WaitForChild("HAVEN_Aura"):Clone()
local SPIN = HAVEN:WaitForChild("SpinningAura")
local SCRIPT = HAVEN:WaitForChild("Animator"):Clone()
AURAS.Parent = HRP
SCRIPT.Parent = HUM
local Spin_Center = SPIN.Anchor_Spin:Clone()
Spin_Center.Parent = chr
local MT6D_2 = Instance.new("Motor6D")
MT6D_2.MaxVelocity = 0.1
MT6D_2.Name = "Center"
MT6D_2.Parent = HRP
MT6D_2.Part0 = HRP
MT6D_2.Part1 = Spin_Center
Spin_Center.Position= Vector3.new(0, 2, 0) + HRP.Position
local Spin_1 = SPIN.Spinning_Part1:Clone()
Spin_1.Parent = chr
local MT6D_3 = Instance.new("Motor6D")
MT6D_3.MaxVelocity = 0.1
MT6D_3.Name = "Spin1"
MT6D_3.Parent = Spin_Center
MT6D_3.Part0 = Spin_Center
MT6D_3.Part1 = Spin_1
Spin_1.Position= Vector3.new(0, 2, 3) + HRP.Position
Spin_1.ToBottom.Beam.Attachment1 = AURAS.BottomAura
local Spin_2 = SPIN.Spinning_Part2:Clone()
Spin_2.Parent = chr
local MT6D_4 = Instance.new("Motor6D")
MT6D_4.MaxVelocity = 0.1
MT6D_4.Name = "Spin2"
MT6D_4.Parent = Spin_Center
MT6D_4.Part0 = Spin_Center
MT6D_4.Part1 = Spin_2
Spin_2.Position= Vector3.new(0, 2, -3) + HRP.Position
Spin_2.ToBottom.Beam.Attachment1 = AURAS.BottomAura
end
end)
end)
These is how it looks like on the Rig
The items are just copied in the Character’s Model.
The performance is identical whether you trigger the animationn on the client or the server After all it is not server animating the character, but just telling the client to do the animation
There is absolutely no reason to play it on the server since playing on localscripts will replicate the animation for all clients on the server
The misconception is the “laggy” part. If a server triggers an animation on a client character, the server isn’t animating anything. It just tells the client “Hey, I’d like you to dance” and client handles the rest.
exactly but playing animations on client-side will tell the client to play it ON the server so my point still stands. again the difference with both is playing animations on the server is laggier than on the client. back to the original topic please
Your statement didn’t define what laggy means There is no lag difference. The network isn’t using more bandwidth etc. If you mean more delayed I can agree since it still takes time to replicate it first, but in OP’s use-case they are sending a localscript to tell the player and the server to run an animation which can be simplified and get better performance by just starting the animation on the server
where did you even get this
this is where you’re wrong. playing animations on the server can make the animation look choppy and glitchy because it relies on the user’s internet connection with the server.
like i said before, playing animations on the client is objectively better because it is more performance-wise, it wouldn’t make sense to play animations on the server since localscript animations are client-to-server anyway
so, can we get back to the topic with why my animation isn’t working? xd I already have set the animation, and the animation is saved under the same group the game is made as well.
i still don’t have enough information about the issue
are you even sure the animation is playing?
the reason could be that the parts are locked in place making animations completely useless. i could be wrong
Does your localscript happen to be called “Animator” as well
yep
(character limit here zzzzzzzzzzzzzzzz)
Your waitForChild(“Animator”) is finding this localscript instead of the actual animator object How about try renaming it?
Could be false. From your previous posts he should now have his variables set like this:
local chr = player.Character or player.CharacterAdded:Wait()
local Hum = chr:WaitForChild("Humanoid")
local Animator = Hum:WaitForChild("Animator")
[code i sent is self-explanatory. has the OP updated their localscript?]
I only remove a few lines of code in the local-script
not sure what those “few lines of code” are. could you send the updated script?
This localscript is parented inside the Humanoid as seen here:
And is apparently is also named “Animator”. This leaves 2 Instances inside the Humanoid that are called “Animator” and WaitForChild would pick one of them (Usually the script that is literally running the code). Hence Animator == localscript running, hence renaming would fix it.