Text button doesn't work when pressed

Hi, so I am making mobile buttons for my game, I already have tools for pc that work. The only problem is when i converted the tools into mobile, they wont work at all.

Snippet of code:

--general
tool = script.Parent
debris = game:GetService("Debris")
rs = game:GetService("ReplicatedStorage")
remotes = rs:WaitForChild("GameRemotes")
anims = rs:WaitForChild("Animations")
dribble = anims:WaitForChild("Shoot")
eremote = remotes:WaitForChild("ESA_REMOTE")
aremote = remotes:WaitForChild("ANTI_EXPLOIT")

--player
local players = game:GetService("Players")
local plr = players.LocalPlayer
local backpack = plr:WaitForChild("Backpack")
local char = plr.Character
if not char or not char.Parent then
	char = plr.CharacterAdded:wait()
end
local hum = char:WaitForChild("Humanoid")

--body parts
rl = char:WaitForChild("Right Leg")
ll = char:WaitForChild("Left Leg")
ra = char:WaitForChild("Right Arm")
la = char:WaitForChild("Left Arm")
to = char:WaitForChild("Torso")
head = char:WaitForChild("Head")
hrp = char:WaitForChild("HumanoidRootPart")

--required
local module = require(backpack:WaitForChild("Main"))

--variables
llreact = false
rlreact = false
rareact = false
lareact = false
toreact = false
headreact = false
eqp = true
power = 0 
force = Vector3.new(9e+009, 9e+009, 9e+009)

dbri = 0.3

--cooldowns
didhit = false
deb = false



active = {}

function stop()
	for i,n in pairs(active) do
		n:Stop()
		table.remove(active, i)
	end
end


game:GetService("UserInputService").InputBegan:connect(function(input, gp)
	if eqp == false then return end
	if module.GetDebounce() then return end 
	if gp == true then return end
	if backpack:FindFirstChild('Fouled') then return end

	if input.UserInputType == Enum.UserInputType.Touch then
		script.Parent:FindFirstChild("SideHeader").MouseButton1Down:Connect(function()
			module.SetDebounce(true)
			rreleased = false
			using = "r"
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
			module.Tween(to["Head"], CFrame.new(0, 1.5, 0.4) * CFrame.fromEulerAnglesXYZ(-math.pi / -8, 0, 0), 0.2)
			local MaxPower = 80
			local StartPower = 40
			Angle = 0
			Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
			repeat
				wait()
				if MaxPower > Power then
					Power = Power + 2.5
					Angle = Angle + 31
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
				else
					module.FullPB()
				end
			until rreleased == true
			local p1 = head.Position
			local p2 = workspace.CurrentCamera.CFrame.Position
			local h = (p2 - p1).magnitude
			local y = p2.Y - p1.Y
			local angle
			if h == 0 then
				angle = 0
			else
				angle = math.asin(y / h)
				if angle > math.rad(25) then
					angle = math.rad(25)
				elseif angle < math.rad(-55) then
					angle = math.rad(-55)
				end
			end
			if module.GetFoot() == 'r' then
				module.ResetWelds()
				module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
				module.Tween(to["Head"], CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, -1.5, 0), 0.1)
			else
				module.ResetWelds()
				module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
				module.Tween(to["Head"], CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, 1.5, 0), 0.1)		
			end

			power = Power
			force = Vector3.new(4000000, Angle*4, 4000000)
			headreact = true
			wait(0.5)
			stop()
			module.ResetPB()
			module.Speed()
			if module.GetFoot() == 'r' then
				module.ResetWelds()
				module.EditWeld(head.Name,  CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, -1.5, 0))
				module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)
			else
				module.ResetWelds()
				module.EditWeld(head.Name,  CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, 1.5, 0))
				module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)	
			end			
			using = ""
			headreact = false
			wait(0.1)
			module.ResetWelds()
			wait()
			module.SetDebounce(false)
		end)
		end
end)


function clickedC()
end
script.Parent.Shoot.MouseButton1Up:Connect(clickedC)




game:GetService("UserInputService").InputEnded:connect(function(input)
	if not eqp then
		return
	end

	if clickedC() then
	shootreleased = true
end

end)

If you want the full code, ask.
Any help would be appreciated, thanks!

2 Likes

I haven’t worked with mobile before, but these lines look weird:

You are using input service to detect a touch event (which is fine), however the code for the touch event leads to a :Connect() event, meaning that after it has been touched then it will begin registering .MouseButton1Down. If I’m not mistaken this will lead to more listeners every Touch input.

Perhaps switching to UserInputService or .MouseButton1Down would be better. In this case it seems like you have a potentially fully functioning .MouseButton1Down implementation, so I would try that out first.

1 Like

Activated should do the trick.
https://developer.roblox.com/en-us/api-reference/event/GuiButton/Activated

1 Like

I completly removed UserInputService, but it still will not work.

--general
tool = script.Parent
debris = game:GetService("Debris")
rs = game:GetService("ReplicatedStorage")
remotes = rs:WaitForChild("GameRemotes")
anims = rs:WaitForChild("Animations")
dribble = anims:WaitForChild("Shoot")
eremote = remotes:WaitForChild("ESA_REMOTE")
aremote = remotes:WaitForChild("ANTI_EXPLOIT")

--player
local players = game:GetService("Players")
local plr = players.LocalPlayer
local backpack = plr:WaitForChild("Backpack")
local char = plr.Character
if not char or not char.Parent then
	char = plr.CharacterAdded:wait()
end
local hum = char:WaitForChild("Humanoid")

--body parts
rl = char:WaitForChild("Right Leg")
ll = char:WaitForChild("Left Leg")
ra = char:WaitForChild("Right Arm")
la = char:WaitForChild("Left Arm")
to = char:WaitForChild("Torso")
head = char:WaitForChild("Head")
hrp = char:WaitForChild("HumanoidRootPart")

--required
local module = require(backpack:WaitForChild("Main"))

--variables
llreact = false
rlreact = false
rareact = false
lareact = false
toreact = false
headreact = false
eqp = true
power = 0 
force = Vector3.new(9e+009, 9e+009, 9e+009)

dbri = 0.3

--cooldowns
didhit = false
deb = false



active = {}

function stop()
	for i,n in pairs(active) do
		n:Stop()
		table.remove(active, i)
	end
end

       
	if eqp == false then return end
	if module.GetDebounce() then return end 

	if backpack:FindFirstChild('Fouled') then return end


		script.Parent:FindFirstChild("SideHeader").MouseButton1Down:Connect(function()
			module.SetDebounce(true)
			rreleased = false
			using = "r"
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
			module.Tween(to["Head"], CFrame.new(0, 1.5, 0.4) * CFrame.fromEulerAnglesXYZ(-math.pi / -8, 0, 0), 0.2)
			local MaxPower = 80
			local StartPower = 40
			Angle = 0
			Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
			repeat
				wait()
				if MaxPower > Power then
					Power = Power + 2.5
					Angle = Angle + 31
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
				else
					module.FullPB()
				end
			until rreleased == true
			local p1 = head.Position
			local p2 = workspace.CurrentCamera.CFrame.Position
			local h = (p2 - p1).magnitude
			local y = p2.Y - p1.Y
			local angle
			if h == 0 then
				angle = 0
			else
				angle = math.asin(y / h)
				if angle > math.rad(25) then
					angle = math.rad(25)
				elseif angle < math.rad(-55) then
					angle = math.rad(-55)
				end
			end
			if module.GetFoot() == 'r' then
				module.ResetWelds()
				module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
				module.Tween(to["Head"], CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, -1.5, 0), 0.1)
			else
				module.ResetWelds()
				module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
				module.Tween(to["Head"], CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, 1.5, 0), 0.1)		
			end

			power = Power
			force = Vector3.new(4000000, Angle*4, 4000000)
			headreact = true
			wait(0.5)
			stop()
			module.ResetPB()
			module.Speed()
			if module.GetFoot() == 'r' then
				module.ResetWelds()
				module.EditWeld(head.Name,  CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, -1.5, 0))
				module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)
			else
				module.ResetWelds()
				module.EditWeld(head.Name,  CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, 1.5, 0))
				module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)	
			end			
			using = ""
			headreact = false
			wait(0.1)
			module.ResetWelds()
			wait()
			module.SetDebounce(false)
		end)


	
		script.Parent:FindFirstChild("Header").MouseButton1Down:Connect(function()
		module.SetDebounce(true)
		qreleased = false
		using = "q"
		module.PowerBar()
		module.ResetWelds()
		module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, 0.4) * CFrame.fromEulerAnglesXYZ(-math.pi / -8, 0, 0), 0.2)
		local MaxPower = 80
		local StartPower = 40
		Angle = 0
		Power = StartPower
		game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				Power = Power + 2.5
				Angle = Angle + 31
				module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
			else
				module.FullPB()
			end
		until qreleased == true
		local p1 = head.Position
		local p2 = workspace.CurrentCamera.CFrame.Position
		local h = (p2 - p1).magnitude
		local y = p2.Y - p1.Y
		local angle
		if h == 0 then
			angle = 0
		else
			angle = math.asin(y / h)
			if angle > math.rad(25) then
				angle = math.rad(25)
			elseif angle < math.rad(-55) then
				angle = math.rad(-55)
			end
		end
		stop()
		module.ResetWelds()
		module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, -0.4) * CFrame.fromEulerAnglesXYZ(-angle, 0, 0), 0.1)
		power = Power
		force = Vector3.new(4000000, Angle*4, 4000000)
		headreact = true
		wait(0.5)
		stop()
		module.ResetPB()
		module.Speed()
		module.ResetWelds()
		module.EditWeld(head.Name,  CFrame.new(0, 1.5, -0.4) * CFrame.fromEulerAnglesXYZ(-angle, 0, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)
		using = ""
		headreact = false
		wait(0.1)
		module.ResetWelds()
		wait()
		module.SetDebounce(false)
	

	
		script.Parent:FindFirstChild("DivingHeader").MouseButton1Down:Connect(function()
		module.SetChangeable(false)
		module.SetChangeable(false)
		module.SetDebounce(true)
		using = "z"
		creleased = false
		module.PowerBar()

		local MaxPower = 100
		local StartPower = 50
		Angle = 0
		Power = StartPower
		game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				Power = Power + 2

				if Power < 110 then
					Angle = Angle + 15
				else
					Angle = Angle + 15
				end
				module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
			else
				module.FullPB()
			end
		until creleased == true
		local track = hum:LoadAnimation(dribble.DivingHeader)
		track:Play()
		wait(0.2)
		hum.JumpPower = 0
		hum.WalkSpeed = 2
		local float = Instance.new("BodyVelocity")
		float.Velocity = Vector3.new(0, 0, 0)
		float.MaxForce = Vector3.new(0, 2.25e+003, 0)
		float.Name = "FloatVelocity"
		float.Parent = char.Torso
		debris:AddItem(float, 0.4)
		headreact = true
		wait(0.3)
		module.ResetPB()
		headreact = false
		rlreact = false
		llreact = false
		hum.WalkSpeed = 5
		using = ""
		wait(0.86)
		creleased = false
		hum.JumpPower = 45
		module.Speed()
			module.SetDebounce(false)
		end)
	




	if module.GetFoot() == 'r' then

			script.Parent:FindFirstChild("Shoot").MouseButton1Down:Connect(function()
			module.SetChangeable(false)
			module.SetDebounce(true)
			didhit = false


			using = "click"

			shootreleased = false
			module.ResetWelds()
			module.PowerBar()
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(rl.Name, CFrame.new(0.5, -2, 0))
			module.Tween(to["Right Leg"], CFrame.new(0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
			local MaxPower = 135
			local StartPower = 81
			Angle = 10
			Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
			repeat
				wait()
				if MaxPower > Power then
					module.SetSpeed(module.GetSpeed() - 0.1)
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
					if Power <= 81 then
						Power = Power + 2.5
						Angle = Angle + 50.9
					elseif Power > 85 and Power < 111 then
						Power = Power + 2.5
						Angle = Angle + 50.91
					elseif Power >= 111 and Power <= 130 then
						Power = Power + 1.8
						Angle = Angle + 33.63
					else
						Power = Power + 1
						Angle = Angle + 23
					end
				else
					module.FullPB()
				end


			until shootreleased == true
			module.ResetWelds()
			module.EditWeld(rl.Name, CFrame.new(0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0))
			module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.Tween(to["Right Leg"], CFrame.new(0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
			rlreact = true
			local hitbefore = module.NearestBall()
			wait(0.5)
			module.ResetPB()
			rlreact = false
			module.ResetWelds()						
			module.EditWeld(rl.Name, CFrame.new(0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0))
			module.EditWeld(la.Name,  CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			module.Tween(to["Right Leg"], CFrame.new(0.5, -2, 0), 0.1)
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
			if module.NearestBall() == nil then 
				wait(0.12)
				module.Speed()
				module.SetDebounce(false)
				using = ""
				module.SetChangeable(false)
				shootreleased = false
			else

				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 7.5 or (hit.Position - head.Position).Magnitude < 7.5 or (hitbefore.Position - to.Position).Magnitude < 7.5 or (hitbefore.Position - head.Position).Magnitude < 7.5)  then

					rlreact = false
					module.Ankle()
					didhit = false
					using = ""
					module.ResetWelds()
				else

					didhit = false
					rlreact = false
					module.ResetWelds()
					wait(0.22)
					using = ""
					module.Speed()
					module.SetDebounce(false)
					shootreleased = false
				end
			end
end)



		
		
			script.Parent:FindFirstChild("Volley").MouseButton1Down:Connect(function()
			module.SetChangeable(false)
			module.SetChangeable(false)
			module.SetDebounce(true)
			using = "e"
			ereleased = false
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
			module.EditWeld(rl.Name, CFrame.new(0.5, -2, 0))
			module.Tween(to["Right Leg"], CFrame.new(1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
			local MaxPower = 110
			local StartPower = 70
			Angle = 0
			Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
			repeat
				wait()
				if MaxPower > Power then
					Power = Power + 1.7
					module.SetSpeed(module.GetSpeed() - 0.1)
					if Power < 110 then
						Angle = Angle + 0
					else
						Angle = Angle + 0
					end
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
				else
					module.FullPB()
				end
			until ereleased == true
			module.ResetWelds()
			module.EditWeld(rl.Name,  CFrame.new(1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0.8))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name,  CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.Tween(to["Right Leg"], CFrame.new(1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, 0.5, 0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
			rlreact = true
			wait(0.5)
			module.ResetWelds()						
			module.EditWeld(rl.Name, CFrame.new(1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, 0.5, 0.8))
			module.EditWeld(la.Name,  CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			module.Tween(to["Right Leg"], CFrame.new(0.5, -2, 0), 0.1)
			module.ResetPB()
			rlreact = false
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
			if module.NearestBall() == nil then 
				wait(0.06)
				module.Speed()
				module.SetDebounce(false)
				using = ""
				module.SetChangeable(false)
				ereleased = false
			else

				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 9 or (hit.Position - head.Position).Magnitude < 9)  then

					rlreact = false
					module.Ankle()
					didhit = false
					using = ""
					module.ResetWelds()
				else

					didhit = false
					rlreact = false
					module.ResetWelds()
					wait(0.16)
					using = ""
					module.Speed()
					module.SetDebounce(false)
					ereleased = false
				end
			end
end)
		
			script.Parent:FindFirstChild("BK").MouseButton1Down:Connect(function()
			xreleased = false
			module.SetChangeable(false)
			module.SetDebounce(true)
			using = "x"
			Angle = 0
			Power = 80
			local track = hum:LoadAnimation(dribble.BK)
			track:Play()
			hum.WalkSpeed = 5
			wait(0.2)
			hum.JumpPower = 0
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)
			wait(0.05)	
			rlreact = true
			wait(0.3)
			module.ResetPB()
			llreact = false
			rlreact = false
			llreact = false
			using = ""
			wait(1.1)
			xreleased = false
			hum.JumpPower = 45
			module.Speed()
				module.SetDebounce(false)
			end)

		

	else


		
			script.Parent:FindFirstChild("Shoot").MouseButton1Down:Connect(function()
			module.SetChangeable(false)
			module.SetChangeable(false)
			module.SetDebounce(true)
			using = "click"
			shootreleased = false
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(ll.Name, CFrame.new(-0.5, -2, 0))

			module.Tween(to["Left Leg"], CFrame.new(-0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
			local MaxPower = 135
			local StartPower = 81
			Angle = 10
			Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
			repeat
				wait()
				if MaxPower > Power then
					module.SetSpeed(module.GetSpeed() - 0.1)
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
					if Power <= 81 then
						Power = Power + 2.5
						Angle = Angle + 50.9
					elseif Power > 85 and Power < 111 then
						Power = Power + 2.5
						Angle = Angle + 50.91
					elseif Power >= 111 and Power <= 130 then
						Power = Power + 1.8
						Angle = Angle + 33.63
					else
						Power = Power + 1
						Angle = Angle + 23
					end
				else
					module.FullPB()
				end
			until shootreleased == true
			module.ResetWelds()
			module.EditWeld(ll.Name, CFrame.new(-0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, 0))
			module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))

			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0), 0.1)
			llreact = true
			wait(0.5)
			module.ResetPB()
			llreact = false
			module.ResetWelds()
			module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.EditWeld(ll.Name, CFrame.new(-0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0))
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -2, 0), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
			if module.NearestBall() == nil then 
				wait(0.12)
				module.Speed()
				module.SetDebounce(false)
				using = ""
				module.SetChangeable(false)
				shootreleased = false
			else

				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 9 or (hit.Position - head.Position).Magnitude < 9)  then

					llreact = false
					module.Ankle()
					didhit = false
					using = ""
					module.ResetWelds()
				else

					didhit = false
					llreact = false
					module.ResetWelds()
					wait(0.22)
					using = ""
					module.Speed()
					module.SetDebounce(false)
					shootreleased = false
				end
			end
end)
		


	
			script.Parent:FindFirstChild("Volley").MouseButton1Down:Connect(function()
			module.SetChangeable(false)
			module.SetChangeable(false)
			module.SetDebounce(true)
			using = "e"
			ereleased = false
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(ll.Name, CFrame.new(-0.5, -2, 0))
			module.Tween(to["Left Leg"], CFrame.new(-1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, -0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
			local MaxPower = 110
			local StartPower = 70
			Angle = 0
			Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
			repeat
				wait()
				if MaxPower > Power then
					Power = Power + 1.7
					module.SetSpeed(module.GetSpeed() - 0.1)
					if Power < 110 then
						Angle = Angle + 0
					else
						Angle = Angle + 0
					end
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
				else
					module.FullPB()
				end
			until ereleased == true
			module.ResetWelds()
			module.EditWeld(ll.Name, CFrame.new(-1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, -0.8))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))

			module.Tween(to["Left Leg"], CFrame.new(-1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, -0.5, -0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
			llreact = true
			wait(0.5)
			module.ResetPB()
			llreact = false
			module.ResetWelds()
			module.EditWeld(ll.Name, CFrame.new(-1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, -0.5, -0.8))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -2, 0), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
			if module.NearestBall() == nil then 
				wait(0.06)
				module.Speed()
				module.SetDebounce(false)
				using = ""
				module.SetChangeable(false)
				ereleased = false
			else

				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 9 or (hit.Position - head.Position).Magnitude < 9)  then

					llreact = false
					module.Ankle()
					didhit = false
					using = ""
					module.ResetWelds()
				else

					didhit = false
					llreact = false
					module.ResetWelds()
					wait(0.16)
					using = ""
					module.Speed()
					module.SetDebounce(false)
					ereleased = false
			end
			end
			
end)
		
			script.Parent:FindFirstChild("BK").MouseButton1Down:Connect(function()
			xreleased = false
			module.SetChangeable(false)
			module.SetDebounce(true)
			using = "x"
			Angle = 0
			Power = 80
			local track = hum:LoadAnimation(dribble.BKL)
			track:Play()
			hum.WalkSpeed = 5
			wait(0.2)
			hum.JumpPower = 0
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)
			wait(0.08)	
			llreact = true
			wait(0.3)
			module.ResetPB()
			llreact = false
			rlreact = false
			llreact = false
			using = ""
			wait(1.1)
			xreleased = false
			hum.JumpPower = 45
			module.Speed()
				module.SetDebounce(false)
		end)
		
		end
	
end)

function clickedC()
end
script.Parent.Shoot.MouseButton1Up:Connect(clickedC)

function clickedQ()
end
script.Parent.Header.MouseButton1Up:Connect(clickedQ)

function clickedE()
end
script.Parent.Header.MouseButton1Up:Connect(clickedE)

function clickedZ()
end
script.Parent.Header.MouseButton1Up:Connect(clickedZ)

function clickedX()
end
script.Parent.Header.MouseButton1Up:Connect(clickedX)

function clickedR()
end
script.Parent.Header.MouseButton1Up:Connect(clickedR)




	if not eqp then
		return
	end

	if clickedC() then
		shootreleased = true
	elseif clickedE() then
		ereleased = true
	elseif clickedQ() then
		qreleased = true
	
	elseif clickedR() then
		rreleased = true
	
	
	elseif clickedZ() then
		zreleased = true
elseif clickedX() then
		xreleased = true
	end





head.Touched:Connect(function(b)
	if b.Name == "TPS" then
		if b.Size ~= Vector3.new(2.5, 2.5, 2.5) then 
			aremote:FireServer("Ball Resize")
		end

		if headreact then
			if using ~= "z" then
				module.Force("CFrame", b, head, power, force, 0.3, true, false)
			else
				force = Vector3.new(4000000, Angle, 4000000)
				power = (hrp.CFrame * CFrame.fromEulerAnglesXYZ(0.5,0,0)).lookVector * ((Power/1.08) * Vector3.new(1, 0, 1)) + Vector3.new(0, 15, 0)
				module.Force("Animation", b, head, power, force, 0.1, true, false)
			end
		end
	end
end)


rl.Touched:Connect(function(b)
	if b.Name == "TPS" then
		if b.Size ~= Vector3.new(2.5, 2.5, 2.5) then 
			aremote:FireServer("Ball Resize")
		end

		if rlreact then
			if using == "click" then
				didhit = true
				power = (hrp.CFrame *  CFrame.fromEulerAnglesXYZ(0.5,0,0)).lookVector * (Power * 1.055 * Vector3.new(1, 0, 1)) + Vector3.new(0, Angle/32, 0)

				force = Vector3.new(15000, Angle*3.15, 15000)
				b.Velocity = Vector3.new(0, 0, 0)
				b.RotVelocity = Vector3.new(0, 0, 0)
				b.Anchored = false
				module.Force("Animation", b, rl, power, force, 0.3, true, false, "val")

				local magnus = Instance.new("BodyForce")
				magnus.Force = Vector3.new(0, 150, 0)
				magnus.Parent = b
				game:GetService("Debris"):AddItem(magnus, 1)
				power = to.CFrame.lookVector * Power
				power = power * Vector3.new(1, 0, 1)
				if Power <= 100 then
					Angle = Angle / 1.25
				end
				--[[power = power + Vector3.new(0, Angle, 0)
				force = Vector3.new(math.huge, 3000, math.huge)]]
				b.Anchored = false
				local Direction
				local a = to.Position
				local af = to.CFrame
				local x = b.Position + Vector3.new(0, to.Position.Y - b.Position.Y, 0)
				local dot = af.lookVector:Dot(x - a)
				local angletorso = math.acos(dot / (x - a).magnitude)

				if angletorso > math.rad(-90) and (b.Position - la.Position).magnitude > (b.Position - ra.Position).magnitude and rlreact then rlreact = false
					Direction = "R"
					module.Force(b, rl, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					rlreact = false
				elseif angletorso > math.rad(30) and (b.Position - la.Position).magnitude < (b.Position - ra.Position).magnitude and rlreact then rlreact = false
					Direction = "L"
					module.Force(b, rl, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					rlreact = false
				elseif rlreact then rlreact = false
					Direction = "F"
					module.Force(b, rl, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					rlreact = false
				end

			elseif using == "f" then
				power = 0 
				force = force * Vector3.new(1, 0, 1)
				module.Force("CFrame", b, rl, power, force, 0.3, true, true)
			elseif using == "e" then
				didhit = true
				force = Vector3.new(4000000, math.huge, 4000000)
				power = ((hrp.CFrame * CFrame.fromEulerAnglesXYZ(0.25,0.4,0.25)).lookVector * Power * 1.05) * Vector3.new(1, 0, 1) + Vector3.new(0, 3, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false, "val")
			elseif using == "c" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (hrp.CFrame.lookVector * Power/1.08)
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, 30, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			elseif using == "x" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (rl.CFrame.lookVector * Power)
				power = power * Vector3.new(1, 0.5, 1)
				power = power + Vector3.new(0, 10, 0)

				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			elseif using == "v" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (hrp.CFrame.rightVector * Power/1.08)
				power = power * Vector3.new(-1, 0, -1)
				power = power + Vector3.new(0, 25, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			end

			llreact = false
			rlreact = false
		end
	end
end)

----------------------^^^^^^--------------------RL ^^^ | LL vvv-----------------------^^^^^^-----------------------

ll.Touched:Connect(function(b)
	if b.Name == "TPS" then
		if b.Size ~= Vector3.new(2.5, 2.5, 2.5) then 
			aremote:FireServer("Ball Resize")
		end
		if llreact then
			if using == "click" then
				didhit = true
				power = (hrp.CFrame *  CFrame.fromEulerAnglesXYZ(0.5,0,0)).lookVector * (Power * 1.055 * Vector3.new(1, 0, 1)) + Vector3.new(0, Angle/32, 0)

				force = Vector3.new(15000, Angle*3, 15000)
				b.Velocity = Vector3.new(0, 0, 0)
				b.RotVelocity = Vector3.new(0, 0, 0)
				b.Anchored = false
				module.Force("Animation", b, ll, power, force, 0.3, true, false, "val")

				local magnus = Instance.new("BodyForce")
				magnus.Force = Vector3.new(0, 150, 0)
				magnus.Parent = b
				game:GetService("Debris"):AddItem(magnus, 1)
				power = to.CFrame.lookVector * Power
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, Angle, 0)
				force = Vector3.new(math.huge, 3000, math.huge)
				b.Anchored = false

				local Direction
				local a = to.Position
				local af = to.CFrame
				local x = b.Position + Vector3.new(0, to.Position.Y - b.Position.Y, 0)
				local dot = af.lookVector:Dot(x - a)
				local angletorso = math.acos(dot / (x - a).magnitude)

				if angletorso > math.rad(-90) and (b.Position - la.Position).magnitude < (b.Position - ra.Position).magnitude and llreact then
					llreact = false
					Direction = "L"
					module.Force(b, ll, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					llreact = false
				elseif angletorso > math.rad(30) and (b.Position - la.Position).magnitude > (b.Position - ra.Position).magnitude and llreact then llreact = false
					llreact = false
					Direction = "R"
					module.Force(b, ll, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					llreact = false
				elseif llreact then llreact = false
					Direction = "F"
					module.Force(b, ll, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					llreact = false
				end

			elseif using == "f" then
				power = 0 
				force = force * Vector3.new(1, 0, 1)
				module.Force("CFrame", b, ll, power, force, 0.3, true, true, "val")
			elseif using == "e" then
				didhit = true
				force = Vector3.new(4000000, math.huge, 4000000)
				power = ((hrp.CFrame * CFrame.fromEulerAnglesXYZ(0.25,-0.4,0.25)).lookVector * Power * 1.05) * Vector3.new(1, 0, 1) + Vector3.new(0, 3, 0)
				module.Force("Animation", b, ll, power, force, 0.3, true, false, "val")

			elseif using == "c" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (rl.CFrame.lookVector * Power/1.08)
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, 25, 0)
				module.Force("Animation", b, ll, power, force, 0.3, true, false)
			elseif using == "x" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (rl.CFrame.lookVector * Power/1.08)
				power = power * Vector3.new(1, 0.5, 1)
				power = power + Vector3.new(0, 50, 0)
				module.Force("Animation", b, ll, power, force, 0.3, true, false)
			elseif using == "v" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (hrp.CFrame.rightVector * Power/1.08)
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, 25, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			end

			rlreact = false
			llreact = false
		end
	end
end)

(this is the full script)

1 Like

Use Activated instead of MouseButton1Down?

1 Like

I don’t know for sure if @Forummer’s answer will work, but it would be logical to have an event for Touch which isn’t called MouseButton1. Try using .Activated instead.

1 Like

Activated does not work either.

Here is the PC script if you are interested (local script, parent is a tool , this works btw)

--general
tool = script.Parent
debris = game:GetService("Debris")
rs = game:GetService("ReplicatedStorage")
remotes = rs:WaitForChild("GameRemotes")
anims = rs:WaitForChild("Animations")
dribble = anims:WaitForChild("Shoot")
eremote = remotes:WaitForChild("ESA_REMOTE")
aremote = remotes:WaitForChild("ANTI_EXPLOIT")

--player
local players = game:GetService("Players")
local plr = players.LocalPlayer
local backpack = plr:WaitForChild("Backpack")
local char = plr.Character
if not char or not char.Parent then
	char = plr.CharacterAdded:wait()
end
local hum = char:WaitForChild("Humanoid")

--body parts
rl = char:WaitForChild("Right Leg")
ll = char:WaitForChild("Left Leg")
ra = char:WaitForChild("Right Arm")
la = char:WaitForChild("Left Arm")
to = char:WaitForChild("Torso")
head = char:WaitForChild("Head")
hrp = char:WaitForChild("HumanoidRootPart")

--required
local module = require(backpack:WaitForChild("Main"))

--variables
llreact = false
rlreact = false
rareact = false
lareact = false
toreact = false
headreact = false
eqp = false
power = 0 
force = Vector3.new(9e+009, 9e+009, 9e+009)
keybinds = plr:WaitForChild("Keybinds")
binds = keybinds:WaitForChild("Shoot")
dbri = 0.3

--cooldowns
didhit = false
deb = false

tool.Equipped:Connect(function()
	eqp = true
end)

tool.Unequipped:Connect((function()
	eqp = false
end))

active = {}

function stop()
	for i,n in pairs(active) do
		n:Stop()
		table.remove(active, i)
		end
end
game:GetService("UserInputService").InputBegan:connect(function(input, gp)
	if eqp == false then return end
	if module.GetDebounce() then return end 
	if gp == true then return end
	if backpack:FindFirstChild('Fouled') then return end
				if input.KeyCode == Enum.KeyCode[binds.R.Value] then
		module.SetDebounce(true)
		rreleased = false
		using = "r"
		module.PowerBar()
		module.ResetWelds()
		module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, 0.4) * CFrame.fromEulerAnglesXYZ(-math.pi / -8, 0, 0), 0.2)
		local MaxPower = 80
		local StartPower = 40
		Angle = 0
		Power = StartPower
		game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				Power = Power + 2.5
				Angle = Angle + 31
				module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
			else
				module.FullPB()
			end
		until rreleased == true
		local p1 = head.Position
		local p2 = workspace.CurrentCamera.CFrame.Position
		local h = (p2 - p1).magnitude
		local y = p2.Y - p1.Y
		local angle
		if h == 0 then
			angle = 0
		else
			angle = math.asin(y / h)
			if angle > math.rad(25) then
				angle = math.rad(25)
			elseif angle < math.rad(-55) then
				angle = math.rad(-55)
			end
		end
		if module.GetFoot() == 'r' then
		module.ResetWelds()
		module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, -1.5, 0), 0.1)
		else
		module.ResetWelds()
		module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, 1.5, 0), 0.1)		
		end
		
			power = Power
				force = Vector3.new(4000000, Angle*4, 4000000)
		headreact = true
		wait(0.5)
		stop()
		module.ResetPB()
		module.Speed()
		if module.GetFoot() == 'r' then
		module.ResetWelds()
		module.EditWeld(head.Name,  CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, -1.5, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)
		else
		module.ResetWelds()
		module.EditWeld(head.Name,  CFrame.new(0,1.5,-0.32) *  CFrame.fromEulerAnglesXYZ(-math.pi/20, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)	
        end			
		using = ""
		headreact = false
		wait(0.1)
		module.ResetWelds()
		wait()
		module.SetDebounce(false)
	end


										if input.KeyCode == Enum.KeyCode[binds.Q.Value] then
		module.SetDebounce(true)
		qreleased = false
		using = "q"
		module.PowerBar()
		module.ResetWelds()
		module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, 0.4) * CFrame.fromEulerAnglesXYZ(-math.pi / -8, 0, 0), 0.2)
		local MaxPower = 80
		local StartPower = 40
		Angle = 0
		Power = StartPower
		game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				Power = Power + 2.5
				Angle = Angle + 31
				module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
			else
				module.FullPB()
			end
		until qreleased == true
		local p1 = head.Position
		local p2 = workspace.CurrentCamera.CFrame.Position
		local h = (p2 - p1).magnitude
		local y = p2.Y - p1.Y
		local angle
		if h == 0 then
			angle = 0
		else
			angle = math.asin(y / h)
			if angle > math.rad(25) then
				angle = math.rad(25)
			elseif angle < math.rad(-55) then
				angle = math.rad(-55)
			end
		end
		stop()
		module.ResetWelds()
    	module.EditWeld(head.Name, CFrame.new(0, 1.5, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, -0.4) * CFrame.fromEulerAnglesXYZ(-angle, 0, 0), 0.1)
			power = Power
				force = Vector3.new(4000000, Angle*4, 4000000)
		headreact = true
		wait(0.5)
		stop()
		module.ResetPB()
		module.Speed()
		module.ResetWelds()
			module.EditWeld(head.Name,  CFrame.new(0, 1.5, -0.4) * CFrame.fromEulerAnglesXYZ(-angle, 0, 0))
		module.Tween(to["Head"], CFrame.new(0, 1.5, 0), 0.1)
		using = ""
		headreact = false
		wait(0.1)
		module.ResetWelds()
		wait()
		module.SetDebounce(false)
	end
														if input.KeyCode == Enum.KeyCode[binds.Z.Value] then
						module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "z"
		creleased = false
			module.PowerBar()
			
					local MaxPower = 100
		local StartPower = 50
		 Angle = 0
		Power = StartPower
		game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				Power = Power + 2
				
				if Power < 110 then
					Angle = Angle + 15
				else
					Angle = Angle + 15
				end
				module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
			else
				module.FullPB()
			end
		until creleased == true
		local track = hum:LoadAnimation(dribble.DivingHeader)
		track:Play()
		wait(0.2)
		hum.JumpPower = 0
		hum.WalkSpeed = 2
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)
			headreact = true
			wait(0.3)
		module.ResetPB()
        headreact = false
		rlreact = false
		llreact = false
		hum.WalkSpeed = 5
		using = ""
		wait(0.86)
		creleased = false
		hum.JumpPower = 45
		module.Speed()
		module.SetDebounce(false)
		end
	
	
	
	
	if module.GetFoot() == 'r' then
		if input.UserInputType == Enum.UserInputType.MouseButton1 then
		module.SetChangeable(false)
		module.SetDebounce(true)
			didhit = false
			
			
			using = "click"
			
			shootreleased = false
			module.ResetWelds()
			module.PowerBar()
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(rl.Name, CFrame.new(0.5, -2, 0))
			module.Tween(to["Right Leg"], CFrame.new(0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
					local MaxPower = 135
		local StartPower = 81
		Angle = 10
		Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				module.SetSpeed(module.GetSpeed() - 0.1)
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
					if Power <= 81 then
										Power = Power + 2.5
						Angle = Angle + 50.9
					elseif Power > 85 and Power < 111 then
																Power = Power + 2.5
						Angle = Angle + 50.91
					elseif Power >= 111 and Power <= 130 then
										Power = Power + 1.8
						Angle = Angle + 33.63
					else
															Power = Power + 1
						Angle = Angle + 23
					end
			else
				module.FullPB()
				end
				
				
		until shootreleased == true
			module.ResetWelds()
						module.EditWeld(rl.Name, CFrame.new(0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0))
			module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.Tween(to["Right Leg"], CFrame.new(0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
			rlreact = true
			local hitbefore = module.NearestBall()
			wait(0.5)
		module.ResetPB()
		rlreact = false
			module.ResetWelds()						
			module.EditWeld(rl.Name, CFrame.new(0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0))
			module.EditWeld(la.Name,  CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			module.Tween(to["Right Leg"], CFrame.new(0.5, -2, 0), 0.1)
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
		if module.NearestBall() == nil then 
		wait(0.12)
		module.Speed()
		module.SetDebounce(false)
		using = ""
		module.SetChangeable(false)
		shootreleased = false
		else
			
				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 7.5 or (hit.Position - head.Position).Magnitude < 7.5 or (hitbefore.Position - to.Position).Magnitude < 7.5 or (hitbefore.Position - head.Position).Magnitude < 7.5)  then
				
					rlreact = false
					module.Ankle()
					didhit = false
							using = ""
					module.ResetWelds()
				else
				
					didhit = false
					rlreact = false
					module.ResetWelds()
		wait(0.22)
		using = ""
		module.Speed()
		module.SetDebounce(false)
		shootreleased = false
				end
		end
			
			
			
	
										elseif input.KeyCode == Enum.KeyCode[binds.F.Value] then
		module.SetChangeable(false)
		module.SetDebounce(true)
	using = "f"
		freleased = false
			module.ResetWelds()
		
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(rl.Name, CFrame.new(0.5, -2, 0))
			module.Tween(to["Right Leg"], CFrame.new(0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
					local MaxPower = 135
		local StartPower = 81
		Angle = 10
		Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				--module.SetSpeed(module.GetSpeed() - 0.1)
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
					if Power <= 81 then
										Power = Power + 2.5
						Angle = Angle + 50.9
					elseif Power > 85 and Power < 111 then
																Power = Power + 2.5
						Angle = Angle + 50.91
					elseif Power >= 111 and Power <= 130 then
										Power = Power + 1.8
						Angle = Angle + 33.63
					else
															Power = Power + 1
						Angle = Angle + 23
					end
			else
				module.FullPB()
			end
		until freleased == true
			module.ResetWelds()
						module.EditWeld(rl.Name, CFrame.new(0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0))
			module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.Tween(to["Right Leg"], CFrame.new(0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
			rlreact = true
			local hitbefore = module.NearestBall()
			wait(0.5)
		module.ResetPB()
		rlreact = false
			module.ResetWelds()						
			module.EditWeld(rl.Name, CFrame.new(0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0))
			module.EditWeld(la.Name,  CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			module.Tween(to["Right Leg"], CFrame.new(0.5, -2, 0), 0.1)
			wait(0.1)
			module.ResetWelds()
		wait(0.05)
		module.Speed()
		module.SetDebounce(false)
		using = ""
		module.SetChangeable(false)
		freleased = false
																elseif input.KeyCode == Enum.KeyCode[binds.E.Value] then
								module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "e"
		ereleased = false
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
module.EditWeld(rl.Name, CFrame.new(0.5, -2, 0))
			module.Tween(to["Right Leg"], CFrame.new(1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
					local MaxPower = 110
		local StartPower = 70
		 Angle = 0
		Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				Power = Power + 1.7
				module.SetSpeed(module.GetSpeed() - 0.1)
				if Power < 110 then
					Angle = Angle + 0
				else
					Angle = Angle + 0
				end
				module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
			else
				module.FullPB()
			end
			until ereleased == true
			module.ResetWelds()
						module.EditWeld(rl.Name,  CFrame.new(1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, -0.5, 0.8))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name,  CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.Tween(to["Right Leg"], CFrame.new(1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, 0.5, 0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
			rlreact = true
			wait(0.5)
						module.ResetWelds()						
			module.EditWeld(rl.Name, CFrame.new(1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, 0.5, 0.8))
			module.EditWeld(la.Name,  CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			module.Tween(to["Right Leg"], CFrame.new(0.5, -2, 0), 0.1)
		module.ResetPB()
			rlreact = false
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
		if module.NearestBall() == nil then 
		wait(0.06)
		module.Speed()
		module.SetDebounce(false)
		using = ""
		module.SetChangeable(false)
		ereleased = false
		else
			
				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 9 or (hit.Position - head.Position).Magnitude < 9)  then
					
					rlreact = false
					module.Ankle()
					didhit = false
							using = ""
					module.ResetWelds()
				else
				
					didhit = false
					rlreact = false
					module.ResetWelds()
		wait(0.16)
		using = ""
		module.Speed()
		module.SetDebounce(false)
		ereleased = false
				end
		end
		
																elseif input.KeyCode == Enum.KeyCode[binds.X.Value] then
						xreleased = false
								module.SetChangeable(false)
		module.SetDebounce(true)
		using = "x"
		 Angle = 0
		Power = 80
		local track = hum:LoadAnimation(dribble.BK)
		track:Play()
		hum.WalkSpeed = 5
		wait(0.2)
		hum.JumpPower = 0
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)
			wait(0.05)	
			rlreact = true
			wait(0.3)
		module.ResetPB()
        llreact = false
		rlreact = false
		llreact = false
		using = ""
		wait(1.1)
		xreleased = false
		hum.JumpPower = 45
		module.Speed()
		module.SetDebounce(false)
		
														elseif input.KeyCode == Enum.KeyCode[binds.C.Value] then
						module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "c"
		zreleased = false
			
		 Angle = 0
		Power = 80
		local track = hum:LoadAnimation(dribble.Scorp)
		track:Play()
		wait(0.2)
		hum.JumpPower = 0
		hum.WalkSpeed = 5
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)	
			rlreact = true
			wait(0.3)
		module.ResetPB()
        llreact = false
		rlreact = false
		llreact = false
		using = ""
		wait(0.87)
		zreleased = false
		hum.JumpPower = 45
		module.Speed()
		module.SetDebounce(false)
		
														elseif input.KeyCode == Enum.KeyCode[binds.V.Value] then
						module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "v"
		vreleased = false
			
		Power = 80
		local track = hum:LoadAnimation(dribble.Scissor)
		track:Play()
		wait(0.2)
		hum.JumpPower = 0
		hum.WalkSpeed = 5
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)	
			wait(0.15)
			rlreact = true
			wait(0.4)
        llreact = false
		rlreact = false
		llreact = false
		using = ""
		wait(1.15)
		vreleased = false
		hum.JumpPower = 45
		module.Speed()
		module.SetDebounce(false)
	end
	
	else
	
		
												if input.UserInputType == Enum.UserInputType.MouseButton1 then
		module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "click"
		shootreleased = false
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(ll.Name, CFrame.new(-0.5, -2, 0))
			
		module.Tween(to["Left Leg"], CFrame.new(-0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
					local MaxPower = 135
		local StartPower = 81
		Angle = 10
		Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				module.SetSpeed(module.GetSpeed() - 0.1)
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
					if Power <= 81 then
										Power = Power + 2.5
						Angle = Angle + 50.9
					elseif Power > 85 and Power < 111 then
																Power = Power + 2.5
						Angle = Angle + 50.91
					elseif Power >= 111 and Power <= 130 then
										Power = Power + 1.8
						Angle = Angle + 33.63
					else
															Power = Power + 1
						Angle = Angle + 23
					end
			else
				module.FullPB()
			end
			until shootreleased == true
			module.ResetWelds()
						module.EditWeld(ll.Name, CFrame.new(-0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, 0))
			module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0), 0.1)
			llreact = true
			wait(0.5)
		module.ResetPB()
		llreact = false
			module.ResetWelds()
						module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.EditWeld(ll.Name, CFrame.new(-0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0))
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -2, 0), 0.1)
module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
		if module.NearestBall() == nil then 
		wait(0.12)
		module.Speed()
		module.SetDebounce(false)
		using = ""
		module.SetChangeable(false)
		shootreleased = false
		else
			
				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 9 or (hit.Position - head.Position).Magnitude < 9)  then
					
					llreact = false
					module.Ankle()
					didhit = false
							using = ""
					module.ResetWelds()
				else
					
					didhit = false
					llreact = false
					module.ResetWelds()
		wait(0.22)
		using = ""
		module.Speed()
		module.SetDebounce(false)
		shootreleased = false
				end
		end
		
												elseif input.KeyCode == Enum.KeyCode[binds.F.Value] then
		module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "f"
		freleased = false
			module.ResetWelds()
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
			module.EditWeld(ll.Name, CFrame.new(-0.5, -2, 0))
			
		module.Tween(to["Left Leg"], CFrame.new(-0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
					local MaxPower = 135
		local StartPower = 81
		Angle = 10
		Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				--module.SetSpeed(module.GetSpeed() - 0.1)
					module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
					if Power <= 81 then
										Power = Power + 2.5
						Angle = Angle + 50.9
					elseif Power > 85 and Power < 111 then
																Power = Power + 2.5
						Angle = Angle + 50.91
					elseif Power >= 111 and Power <= 130 then
										Power = Power + 1.8
						Angle = Angle + 33.63
					else
															Power = Power + 1
						Angle = Angle + 23
					end
			else
				module.FullPB()
			end
			until freleased == true
			module.ResetWelds()
						module.EditWeld(ll.Name, CFrame.new(-0.5, -1.5, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, 0))
			module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			
			module.Tween(to["Left Arm"], CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0), 0.1)
			llreact = true
			wait(0.5)
		module.ResetPB()
		llreact = false
			module.ResetWelds()
						module.EditWeld(la.Name, CFrame.new(-1.6, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.6, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.EditWeld(ll.Name, CFrame.new(-0.5, -1.5, -1) * CFrame.fromEulerAnglesXYZ(0.3, 0, 0))
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -2, 0), 0.1)
module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			wait(0.1)
			module.ResetWelds()
		wait(0.05)
		module.Speed()
		module.SetDebounce(false)
		using = ""
		freleased = false
			module.SetChangeable(false)
		
		
														elseif input.KeyCode == Enum.KeyCode[binds.E.Value] then
						module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "e"
		ereleased = false
			module.PowerBar()
			module.ResetWelds()
			module.EditWeld(ra.Name, CFrame.new(1.5, 0, 0))
module.EditWeld(la.Name, CFrame.new(-1.5, 0, 0))
module.EditWeld(ll.Name, CFrame.new(-0.5, -2, 0))
			module.Tween(to["Left Leg"], CFrame.new(-1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, -0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4), 0.1)
					local MaxPower = 110
		local StartPower = 70
		 Angle = 0
		Power = StartPower
			game:GetService("RunService").RenderStepped:wait()
		repeat
			wait()
			if MaxPower > Power then
				Power = Power + 1.7
				module.SetSpeed(module.GetSpeed() - 0.1)
				if Power < 110 then
					Angle = Angle + 0
				else
					Angle = Angle + 0
				end
				module.UpdatePB((Power - StartPower) / (MaxPower - StartPower))
			else
				module.FullPB()
			end
			until ereleased == true
			module.ResetWelds()
						module.EditWeld(ll.Name, CFrame.new(-1.3, -1.2, 1) * CFrame.fromEulerAnglesXYZ(-math.pi / 4, 0.5, -0.8))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, 4, 4))
			
			module.Tween(to["Left Leg"], CFrame.new(-1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, -0.5, -0.8), 0.1)
			module.Tween(to["Left Arm"], CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4), 0.1)
			module.Tween(to["Right Arm"], CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4), 0.1)
			llreact = true
				wait(0.5)
		module.ResetPB()
		llreact = false
			module.ResetWelds()
						module.EditWeld(ll.Name, CFrame.new(-1.3, -1.2, -1) * CFrame.fromEulerAnglesXYZ(math.pi / 5, -0.5, -0.8))
			module.EditWeld(la.Name, CFrame.new(-1.5, 0.5, 0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, -4))
			module.EditWeld(ra.Name, CFrame.new(1.5, 0.5, -0.5) * CFrame.fromEulerAnglesXYZ(-math.pi / 1, -4, 4))
			module.Tween(to["Left Leg"], CFrame.new(-0.5, -2, 0), 0.1)
module.Tween(to["Right Arm"], CFrame.new(1.5, 0, 0), 0.1)
module.Tween(to["Left Arm"], CFrame.new(-1.5, 0, 0), 0.1)
			local hit = module.NearestBall()
			wait(0.1)
			module.ResetWelds()
		if module.NearestBall() == nil then 
		wait(0.06)
		module.Speed()
		module.SetDebounce(false)
		using = ""
		module.SetChangeable(false)
		ereleased = false
		else
			
				if not didhit and hit:FindFirstChild("Ankle") and module.CheckAnkle(hit.Owner.Value) and ((hit.Position - to.Position).Magnitude < 9 or (hit.Position - head.Position).Magnitude < 9)  then
					
					llreact = false
					module.Ankle()
					didhit = false
							using = ""
					module.ResetWelds()
				else
					
					didhit = false
					llreact = false
					module.ResetWelds()
		wait(0.16)
		using = ""
		module.Speed()
		module.SetDebounce(false)
		ereleased = false
				end
		end
		
																elseif input.KeyCode == Enum.KeyCode[binds.X.Value] then
				xreleased = false
								module.SetChangeable(false)
		module.SetDebounce(true)
		using = "x"
		 Angle = 0
		Power = 80
		local track = hum:LoadAnimation(dribble.BKL)
		track:Play()
		hum.WalkSpeed = 5
		wait(0.2)
		hum.JumpPower = 0
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)
			wait(0.08)	
			llreact = true
			wait(0.3)
		module.ResetPB()
        llreact = false
		rlreact = false
		llreact = false
		using = ""
		wait(1.1)
		xreleased = false
		hum.JumpPower = 45
		module.Speed()
		module.SetDebounce(false)
														elseif input.KeyCode == Enum.KeyCode[binds.C.Value] then
						module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "c"
		zreleased = false
			
		 Angle = 0
		Power = 80
		local track = hum:LoadAnimation(dribble.ScorpL)
		track:Play()
		wait(0.2)
		hum.JumpPower = 0
		hum.WalkSpeed = 5
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)	
			llreact = true
			wait(0.3)
		module.ResetPB()
        llreact = false
		rlreact = false
		llreact = false
		using = ""
		wait(0.85)
		zreleased = false
		hum.JumpPower = 45
		module.Speed()
		module.SetDebounce(false)
														elseif input.KeyCode == Enum.KeyCode[binds.V.Value] then
						module.SetChangeable(false)
				module.SetChangeable(false)
		module.SetDebounce(true)
		using = "v"
		vreleased = false
		
		Power = 80
		local track = hum:LoadAnimation(dribble.ScissorL)
		track:Play()
		
		wait(0.2)
		hum.JumpPower = 0
		hum.WalkSpeed = 5
			local float = Instance.new("BodyVelocity")
			float.Velocity = Vector3.new(0, 0, 0)
			float.MaxForce = Vector3.new(0, 2.25e+003, 0)
			float.Name = "FloatVelocity"
			float.Parent = char.Torso
			debris:AddItem(float, 0.4)
			wait(0.15)
			llreact = true
			wait(0.4)
        llreact = false
		rlreact = false
		llreact = false
		using = ""
		wait(1.15)
		vreleased = false
		hum.JumpPower = 45
		module.Speed()
		module.SetDebounce(false)
	end
			end
	end)

game:GetService("UserInputService").InputEnded:connect(function(input)
	if not eqp then
		return
	end
	
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		shootreleased = true
	elseif input.KeyCode == Enum.KeyCode[binds.E.Value] then
		ereleased = true
	elseif input.KeyCode == Enum.KeyCode[binds.Q.Value] then
		qreleased = true
	elseif input.KeyCode == Enum.KeyCode[binds.F.Value] then
		freleased = true
 	elseif input.KeyCode == Enum.KeyCode[binds.R.Value] then
		rreleased = true
		 	elseif input.KeyCode == Enum.KeyCode[binds.V.Value] then
		vreleased = true
		 	elseif input.KeyCode == Enum.KeyCode[binds.Z.Value] then
		creleased = true
		 	elseif input.KeyCode == Enum.KeyCode[binds.C.Value] then
		zreleased = true
		 	elseif input.KeyCode == Enum.KeyCode[binds.X.Value] then
		xreleased = true
	end
end)

head.Touched:Connect(function(b)
	if b.Name == "TPS" then
		if b.Size ~= Vector3.new(2.5, 2.5, 2.5) then 
			aremote:FireServer("Ball Resize")
		end
		
		if headreact then
			if using ~= "z" then
				module.Force("CFrame", b, head, power, force, 0.3, true, false)
			else
				force = Vector3.new(4000000, Angle, 4000000)
				power = (hrp.CFrame * CFrame.fromEulerAnglesXYZ(0.5,0,0)).lookVector * ((Power/1.08) * Vector3.new(1, 0, 1)) + Vector3.new(0, 15, 0)
				module.Force("Animation", b, head, power, force, 0.1, true, false)
			end
		end
	end
end)


rl.Touched:Connect(function(b)
	if b.Name == "TPS" then
		if b.Size ~= Vector3.new(2.5, 2.5, 2.5) then 
			aremote:FireServer("Ball Resize")
		end
		
		if rlreact then
			if using == "click" then
											didhit = true
		power = (hrp.CFrame *  CFrame.fromEulerAnglesXYZ(0.5,0,0)).lookVector * (Power * 1.055 * Vector3.new(1, 0, 1)) + Vector3.new(0, Angle/32, 0)

force = Vector3.new(15000, Angle*3.15, 15000)
				b.Velocity = Vector3.new(0, 0, 0)
		b.RotVelocity = Vector3.new(0, 0, 0)
		b.Anchored = false
				module.Force("Animation", b, rl, power, force, 0.3, true, false, "val")
				
				local magnus = Instance.new("BodyForce")
				magnus.Force = Vector3.new(0, 150, 0)
				magnus.Parent = b
				game:GetService("Debris"):AddItem(magnus, 1)
				power = to.CFrame.lookVector * Power
				power = power * Vector3.new(1, 0, 1)
				if Power <= 100 then
					Angle = Angle / 1.25
				end
				--[[power = power + Vector3.new(0, Angle, 0)
				force = Vector3.new(math.huge, 3000, math.huge)]]
				b.Anchored = false
				local Direction
				local a = to.Position
				local af = to.CFrame
				local x = b.Position + Vector3.new(0, to.Position.Y - b.Position.Y, 0)
				local dot = af.lookVector:Dot(x - a)
				local angletorso = math.acos(dot / (x - a).magnitude)
				
		if angletorso > math.rad(-90) and (b.Position - la.Position).magnitude > (b.Position - ra.Position).magnitude and rlreact then rlreact = false
			Direction = "R"
			module.Force(b, rl, power, force)
			module.ApplyCurve(Direction, b, Power * 1.45)
			rlreact = false
		elseif angletorso > math.rad(30) and (b.Position - la.Position).magnitude < (b.Position - ra.Position).magnitude and rlreact then rlreact = false
			Direction = "L"
			module.Force(b, rl, power, force)
			module.ApplyCurve(Direction, b, Power * 1.45)
			rlreact = false
		elseif rlreact then rlreact = false
			Direction = "F"
			module.Force(b, rl, power, force)
			module.ApplyCurve(Direction, b, Power * 1.45)
			rlreact = false
		end
		
			elseif using == "f" then
				power = 0 
				force = force * Vector3.new(1, 0, 1)
				module.Force("CFrame", b, rl, power, force, 0.3, true, true)
			elseif using == "e" then
												didhit = true
force = Vector3.new(4000000, math.huge, 4000000)
power = ((hrp.CFrame * CFrame.fromEulerAnglesXYZ(0.25,0.4,0.25)).lookVector * Power * 1.05) * Vector3.new(1, 0, 1) + Vector3.new(0, 3, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false, "val")
			elseif using == "c" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (hrp.CFrame.lookVector * Power/1.08)
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, 30, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			elseif using == "x" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (rl.CFrame.lookVector * Power)
				power = power * Vector3.new(1, 0.5, 1)
				power = power + Vector3.new(0, 10, 0)
						
				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			elseif using == "v" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (hrp.CFrame.rightVector * Power/1.08)
				power = power * Vector3.new(-1, 0, -1)
				power = power + Vector3.new(0, 25, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			end
			
			llreact = false
			rlreact = false
		end
	end
end)

----------------------^^^^^^--------------------RL ^^^ | LL vvv-----------------------^^^^^^-----------------------

ll.Touched:Connect(function(b)
	if b.Name == "TPS" then
		if b.Size ~= Vector3.new(2.5, 2.5, 2.5) then 
			aremote:FireServer("Ball Resize")
		end
		if llreact then
			if using == "click" then
														didhit = true
		power = (hrp.CFrame *  CFrame.fromEulerAnglesXYZ(0.5,0,0)).lookVector * (Power * 1.055 * Vector3.new(1, 0, 1)) + Vector3.new(0, Angle/32, 0)

force = Vector3.new(15000, Angle*3, 15000)
				b.Velocity = Vector3.new(0, 0, 0)
		b.RotVelocity = Vector3.new(0, 0, 0)
		b.Anchored = false
				module.Force("Animation", b, ll, power, force, 0.3, true, false, "val")
				
				local magnus = Instance.new("BodyForce")
				magnus.Force = Vector3.new(0, 150, 0)
				magnus.Parent = b
				game:GetService("Debris"):AddItem(magnus, 1)
				power = to.CFrame.lookVector * Power
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, Angle, 0)
				force = Vector3.new(math.huge, 3000, math.huge)
				b.Anchored = false

				local Direction
				local a = to.Position
				local af = to.CFrame
				local x = b.Position + Vector3.new(0, to.Position.Y - b.Position.Y, 0)
				local dot = af.lookVector:Dot(x - a)
				local angletorso = math.acos(dot / (x - a).magnitude)
				
				if angletorso > math.rad(-90) and (b.Position - la.Position).magnitude < (b.Position - ra.Position).magnitude and llreact then
					llreact = false
					Direction = "L"
					module.Force(b, ll, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					llreact = false
				elseif angletorso > math.rad(30) and (b.Position - la.Position).magnitude > (b.Position - ra.Position).magnitude and llreact then llreact = false
					llreact = false
					Direction = "R"
					module.Force(b, ll, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					llreact = false
				elseif llreact then llreact = false
					Direction = "F"
					module.Force(b, ll, power, force)
					module.ApplyCurve(Direction, b, Power * 1.45)
					llreact = false
				end
				
			elseif using == "f" then
				power = 0 
				force = force * Vector3.new(1, 0, 1)
				module.Force("CFrame", b, ll, power, force, 0.3, true, true, "val")
			elseif using == "e" then
				didhit = true
force = Vector3.new(4000000, math.huge, 4000000)
power = ((hrp.CFrame * CFrame.fromEulerAnglesXYZ(0.25,-0.4,0.25)).lookVector * Power * 1.05) * Vector3.new(1, 0, 1) + Vector3.new(0, 3, 0)
				module.Force("Animation", b, ll, power, force, 0.3, true, false, "val")
				
			elseif using == "c" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (rl.CFrame.lookVector * Power/1.08)
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, 25, 0)
				module.Force("Animation", b, ll, power, force, 0.3, true, false)
			elseif using == "x" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (rl.CFrame.lookVector * Power/1.08)
				power = power * Vector3.new(1, 0.5, 1)
				power = power + Vector3.new(0, 50, 0)
				module.Force("Animation", b, ll, power, force, 0.3, true, false)
			elseif using == "v" then
				force = Vector3.new(4000000, math.huge, 4000000)
				power = (hrp.CFrame.rightVector * Power/1.08)
				power = power * Vector3.new(1, 0, 1)
				power = power + Vector3.new(0, 25, 0)
				module.Force("Animation", b, rl, power, force, 0.3, true, false)
			end
			
			rlreact = false
			llreact = false
		end
	end
end)
1 Like
script.Parent.Header.MouseButton1Up:Connect(clickedR)




	if not eqp then
		return
	end

	if clickedC() then
		shootreleased = true
	elseif clickedE() then
		ereleased = true
	elseif clickedQ() then
		qreleased = true
	
	elseif clickedR() then
		rreleased = true
	
	
	elseif clickedZ() then
		zreleased = true
elseif clickedX() then
		xreleased = true
	end

i think its this part thats bugging

1 Like

Your code is over 1000 lines, I think I would try to shorten it a bit if I were you. I don’t even know where to start and stop looking sadly. Try moving similar things to function calls, makes everything a lot more readable.

Below is a rather quick and crude example of how you may shorten the code. Wherever you write the same thing twice you have the possibility to shorten.

function whateverThisDoes(direction, yMult, yAdd, limb) -- Wherever it can access force, power, Power & module
	force = Vector3.new(4000000, math.huge, 4000000)
	power = (direction * Power/1.08)
	power = power * Vector3.new(1, yMult, 1)
	power = power + Vector3.new(0, yAdd, 0)
	module.Force("Animation", b, limb, power, force, 0.3, true, false)
end
----------------------
...
else
	local usingTable = {
		c = function()
			whateverThisDoes(rl.CFrame.lookVector, 0, 25, ll)
		end,
		x = function()
			whateverThisDoes(rl.CFrame.lookVector, .5, 50, ll)
		end,
		...
	}
	usingTable[using]()
end

As for your reply, I believe the issue is that you are still using MouseButton1Up here. Look at which events may exist for mobile, such as Activated replacing MouseButton1Down.

Note: This “shortening” is not really doing to well in that form, using a if-else statement just as you have works a little better space-wise, but not performance-wise I believe.

1 Like

Can I at least check if a button is released? I will mark your reply as the solution, thanks for your help

1 Like