Basically, I have a tool that uses a Motor6D for animation, simple stuff. The thing is, I actually have it so the the handle is on the left hand, which has actually exposed a bit of a flaw with this.
Basically obviously due to how it works, the motor6d can’t be literally instantly overriding the handle weld, so there is a frame where it uses the regular handle weld before getting overridden by the Motor6D. In that frame, the tool looks extremely odd since its not set up to be on that hand, and it really triggers me and I wonder if there is a way to fix this.
Here is a video showing what I’m talking about:
And here is my tool’s client sided code:
local PlayerService = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local tool = script.Parent
local event = tool:WaitForChild("DrillRigEvent")
local animations = tool.Animations
local player = PlayerService.LocalPlayer
local character = player.Character
local humanoid = character:FindFirstChild("Humanoid")
local idleAnimation = humanoid.Animator:LoadAnimation(animations.DrillRigIdleAnimation)
local connection = nil
local function UserInput(input:InputObject,gameProcessedEvent:boolean)
if gameProcessedEvent then return end
end
local function Equipped()
connection = UserInputService.InputBegan:Connect(UserInput)
idleAnimation:Play()
event:FireServer("SetupMotor")
end
local function Unequipped()
connection:Disconnect()
idleAnimation:Stop()
end
local function Start()
tool.Equipped:Connect(Equipped)
tool.Unequipped:Connect(Unequipped)
end
Start()
And here is my tool’s server sided code:
local tool = script.Parent
local handle = tool.Handle
local handleGrip = handle.PrimaryMotor
local event = tool:WaitForChild("DrillRigEvent")
local function EventCalled(player:Player,eventType:string)
local character = player.Character
local humanoid = character:FindFirstChild("Humanoid")
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
local leftArm = character:FindFirstChild("Left Arm")
local rightArm = character:FindFirstChild("Right Arm")
if eventType == "SetupMotor" then
rightArm.RightGrip:Destroy()
handleGrip.Part0 = leftArm
end
end
event.OnServerEvent:Connect(EventCalled)
And I guess I’ll also provide the tool hierachy:
