So it's a drill tool so when you press a key it switches stances, it works fine, animations are good, no errors. But the position of the gun, it only shows on the Client and not also the Server, does anyone know why?
Video Example: https://streamable.com/kz5vkc
This is what is inside the tool: https://media.discordapp.net/attachments/462676564815904768/840644481279197244/unknown.png
Code (in a regular script)
local Tool = script.Parent local player = script.Parent.Parent.Parent local char = game.Workspace:WaitForChild(player.Name) local Humanoid = char.Humanoid local OrderArms=Humanoid:LoadAnimation(script.Parent.OrderArms) local OrderToShoulder=Humanoid:LoadAnimation(script.Parent.OrderToShoulder) local ShoulderArms=Humanoid:LoadAnimation(script.Parent.ShoulderArms) local ShoulderToPresent=Humanoid:LoadAnimation(script.Parent.ShoulderToPresent) local PresentArms=Humanoid:LoadAnimation(script.Parent.PresentArms) local PresentToShoulder=Humanoid:LoadAnimation(script.Parent.PresentToShoulder) local ShoulderToOrder=Humanoid:LoadAnimation(script.Parent.ShoulderToOrder) local Salute=Humanoid:LoadAnimation(script.Parent.Salute) Tool.Equipped:connect(function(mouse) wait() local motorr = Instance.new("Motor6D",script.Parent.Parent["Right Arm"]) motorr.Name="HandleMotor6D" motorr.Part0=script.Parent.Parent["Right Arm"] motorr.Part1=script.Parent.Handle motorr.Parent.RightGrip:Destroy() wait() OrderArms:Play() script.Parent.Stance.Value = "Order" bounce = false end) Tool.Unequipped:Connect(function() char["Right Arm"]:WaitForChild("HandleMotor6D"):Destroy() end) script.Parent.DrillEvent.OnServerEvent:connect(function(player,movement) if movement=="OrderToShoulder" then script.Parent.Stance.Value = "Transitioning" bounce = true OrderToShoulder:Play() OrderArms:Stop(3) wait(1.6) ShoulderArms:Play() OrderToShoulder:Stop(3) script.Parent.Stance.Value = "Shoulder" elseif movement=="ShoulderToPresent" then script.Parent.Stance.Value = "Transitioning" Humanoid.WalkSpeed=0 ShoulderToPresent:Play() ShoulderArms:Stop(3) wait(2) PresentArms:Play() ShoulderToPresent:Stop(3.75) script.Parent.Stance.Value = "Present" elseif movement=="PresentToShoulder" then script.Parent.Stance.Value = "Transitioning" PresentToShoulder:Play() PresentArms:Stop(2) wait(1.3) ShoulderArms:Play() PresentToShoulder:Stop(5) script.Parent.Stance.Value = "Shoulder" Humanoid.WalkSpeed=16 elseif movement=="ShoulderToOrder" then script.Parent.Stance.Value = "Transitioning" ShoulderToOrder:Play() ShoulderArms:Stop(2) wait(2.5) OrderArms:Play() ShoulderToOrder:Stop(5) script.Parent.Stance.Value = "Order" elseif movement=="SaluteUp" then script.Parent.Stance.Value = "Saluting" Salute:Play() wait(0.5) Salute:AdjustSpeed(0) script.Parent.Stance.Value = "SaluteUp" elseif movement=="SaluteDown" then script.Parent.Stance.Value = "Saluting" Salute:AdjustSpeed(1) wait(0.5) Salute:Stop() script.Parent.Stance.Value = "Shoulder" elseif movement=="AllStop" then OrderArms:Stop() OrderToShoulder:Stop() ShoulderArms:Stop() PresentArms:Stop() PresentToShoulder:Stop() ShoulderToPresent:Stop() ShoulderToOrder:Stop() Salute:Stop() end end)
Code: (Local Script)
local Tool = script.Parent Tool.Equipped:connect(function(mouse) local function onKeyPress(actionName, userInputState, inputObject) if userInputState == Enum.UserInputState.Begin and script.Parent.Stance.Value == "Order" then script.Parent.DrillEvent:FireServer("OrderToShoulder") elseif userInputState == Enum.UserInputState.Begin and script.Parent.Stance.Value == "Present" then script.Parent.DrillEvent:FireServer("PresentToShoulder") end end local function onKeyPress2(actionName, userInputState, inputObject) if userInputState == Enum.UserInputState.Begin and script.Parent.Stance.Value == "Shoulder" then script.Parent.DrillEvent:FireServer("ShoulderToPresent") elseif userInputState == Enum.UserInputState.Begin and script.Parent.Stance.Value == "Present" then script.Parent.DrillEvent:FireServer("PresentToShoulder") end end local function onKeyPress3(actionName, userInputState, inputObject) if userInputState == Enum.UserInputState.Begin and script.Parent.Stance.Value == "Shoulder" then script.Parent.DrillEvent:FireServer("ShoulderToOrder") end end local function onKeyPress4(actionName, userInputState, inputObject) if userInputState == Enum.UserInputState.Begin and script.Parent.Stance.Value == "Shoulder" then script.Parent.DrillEvent:FireServer("SaluteUp") elseif userInputState == Enum.UserInputState.Begin and script.Parent.Stance.Value == "SaluteUp" then script.Parent.DrillEvent:FireServer("SaluteDown") end end Tool.Unequipped:connect(function(mouse) script.Parent.DrillEvent:FireServer("AllStop") end) game.ContextActionService:BindAction("keyPress", onKeyPress, false, Enum.KeyCode.Y) game.ContextActionService:BindAction("keyPress2", onKeyPress2, false, Enum.KeyCode.H) game.ContextActionService:BindAction("keyPress3", onKeyPress3, false, Enum.KeyCode.T) game.ContextActionService:BindAction("keyPress4", onKeyPress4, false, Enum.KeyCode.G) end) Tool.Unequipped:connect(function() script.Parent.Stance.Value = "Unequipped" end)