Local Script:
local uis = game:GetService("UserInputService")
local tool = script.Parent
local anim = tool:WaitForChild("Throw")
local track = nil
local event = tool:WaitForChild("ThrowingEvent")
local equipped = false
local player = game:GetService("Players").LocalPlayer
local mouse = player:GetMouse()
local char = player.Character or player.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local animator = hum:FindFirstChild("Animator") or Instance.new("Animator", hum)
local track = animator:LoadAnimation(anim)
local function throw()
wait(0.5)
event:FireServer()
end
uis.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
track:Play()
end
if input.UserInputType == Enum.UserInputType.Touch then
track:Play()
end
end)
mouse.Button1Down:Connect(throw)
Script:
local tool = script.Parent
local event = script.Parent:WaitForChild("ThrowingEvent")
local debris = game:GetService("Debris")
event.OnServerEvent:Connect(function(player)
local dynamite = tool.Handle:Clone()
dynamite.Parent = workspace
dynamite.CanCollide = true
local char = player.Character or player.CharacterAdded:Wait()
local hrp = char:WaitForChild("HumanoidRootPart")
local dir = hrp.CFrame.LookVector + hrp.CFrame.UpVector
dynamite.VectorForce.Force = dir * 10
tool:Destroy()
wait(0.2)
dynamite.VectorForce.Enabled = false
wait(1.5)
dynamite.ExploseSound:Play()
local vfx = workspace.Explosion_1:Clone()
vfx.Parent = workspace.vfx
vfx.Position = dynamite.Position
vfx.Anchored = true
vfx.Attachment.Explosion.Enabled = true
vfx.Attachment.Smoke.Enabled = true
dynamite.Transparency = 1
dynamite.Anchored = true
dynamite.CanCollide = false
debris:AddItem(dynamite, 2.2)
wait(0.7)
vfx:Destroy()
end)
So here’s what I have:
as you can see after you throw the dynamite disappears. The question is how to make it reappear in the hand and actually, the player can throw it again.