Hello! So basically I have this script I made so that when you have the ball and you tap e, you would shoot the ball and it would play a jumpshot animation. I’m having trouble figuring out whats wrong with my code. Can you please help me?

Client:

local player = game.Players.LocalPlayer
local character = player.Character
local rep = game:GetService("ReplicatedStorage")
local uis = game:GetService("UserInputService")
local jumpshot = rep.Animations:WaitForChild("jumpshot animation")
local jumpshotanimation = character.Humanoid:LoadAnimation(jumpshot)
local shoot = rep.Events:WaitForChild("shoot")
local Basketball = game.Workspace.Basketball
local ShotBall = false
local Debounce = true

uis.InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.E and not Debounce and not ShotBall and character.Humanoid:FindFirstChild(Basketball) then
		ShotBall = true
		Debounce = false
		jumpshotanimation:Play()
		wait()
		Debounce = true
		ShotBall = false
		shoot:FireServer()
	end
end)

Server:

local rep = game:GetService("ReplicatedStorage")
local shoot = rep.Events:WaitForChild("shoot")
local GoalPart = game.Workspace.Hoop.GoalPart
local Basketball = game.Workspace.Basketball
local ShotBall = false

shoot.OnServerEvent:Connect(function(player)
	local mag = (GoalPart.Position - player.Character.HumanoidRootPart.Position).Magnitude
	local unit = (GoalPart.Position - player.Character.HumanoidRootPart.Position).Unit
	if ShotBall == false then
		Basketball.Velocity = (unit * mag) + Vector3.new(0, 70, 0)
		Basketball.Ball.Part0 = nil
		Basketball.Parent = workspace
		ShotBall = true
	end
	ShotBall = false
end)

I would really appreciate your help. Thank you and remember to stay safe.

3 comments

0

What's wrong?

0

It won't play the animation and it won't shoot the ball.

0

There is literally a blog post exactly for a basketball shooting system.