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)
