so for some reason the tween im using still affects the part even after the tween has been destroyed
heres my script
self.result = workspace:Raycast(ROOT.Position, ROOT.CFrame.LookVector * -100 + Vector3.new(0, 3, 0), self.will_enemy_collide)
if self.result then
self.instance = self.result.Instance
self.pos = self.result.Position
local tween = game:GetService("TweenService")
local info = TweenInfo.new(.2, Enum.EasingStyle.Linear, Enum.EasingDirection.In, 0, false, 0)
local goals = {Position = self.pos}
self.smash = tween:Create(ROOT, info, goals)
self.smash:Play()
local x; x = self.smash.Completed:Connect(function()
local smashFX = ROOT.Slam:GetChildren()
game.Workspace["Ground-Slam"]:Play()
for _, v in smashFX do
v:Emit(20)
end
self.smash:Destroy()
end)
end
Was it destroyed locally? That might be the problem. If so, instead of destroying it in the client sided script, fire a remote event from that script and add some code into a script in serverscriptservice that destroys it on recieving the remote event.
so i managed to fix this problem
i noticed that the random movement of the ROOT would stop when its position was changed, thus i just changed the position of the root as soon as it got hit.
its surprisingly unnoticable, but if someone figures out what was happening, PLEASE let me know!