I have a 2D script, it works perfectly on my game, but I inserted some Ro-Soccer tools and also a football, yet I can't kick it, does this have something to do with the 2D Script, here is the script:

2D SCRIPT:

function GetMass(object)
	local mass = 0
	if pcall(function() return object:GetMass() end) then
		mass = object:GetMass()
	end
	for _,child in pairs(object:GetChildren()) do
		mass = mass + GetMass(child)
	end
	return mass
end

function onPlayerRespawned(newPlayer)
	wait()
	local torso = newPlayer.Character.Torso 
	local bp = Instance.new("BodyPosition")
	bp.Name = "TwoD"
	bp.position = torso.Position
	bp.P = 1000000
	bp.D = 1000
	bp.maxForce = Vector3.new(0, 0, 1000000)
	bp.Parent = torso
	local bf = Instance.new("BodyForce")
	bf.force = Vector3.new(0, 100*GetMass(newPlayer.Character), 0)
	bf.Parent = torso
	newPlayer.Character.Humanoid.WalkSpeed = 24
	script.LocalScript:Clone().Parent = torso.Parent
	newPlayer.Character.DescendantAdded:connect(function()
		bf.force = Vector3.new(0, 100*GetMass(newPlayer.Character), 0)
	end)
	newPlayer.Character.DescendantRemoving:connect(function()
		bf.force = Vector3.new(0, 100*GetMass(newPlayer.Character), 0)
	end)
end

function onPlayerEntered(newPlayer)
	if newPlayer.Character then
		onPlayerRespawned(newPlayer)
	end
	newPlayer.Changed:connect(function (property)
		if (property == "Character") and newPlayer.Character then
			onPlayerRespawned(newPlayer)
		end
	end)
end

game.Players.PlayerAdded:connect(onPlayerEntered)

Local Script inside of the 2D SCRIPT:

lockCamera = true
	distance = 30
	height = 3

local torso = script.Parent.Torso
local center = Instance.new("Part")
center.Name = script.Parent.Name .. " Center"
center.Transparency = 1
center.CanCollide = false
center.Size = Vector3.new(1,1,1)
center.Position = torso.Position
center.CFrame = CFrame.new(Vector3.new(0,0,0),Vector3.new(0,0,-1))
center.Parent = game.Workspace
local bp = Instance.new("BodyPosition")
bp.position = center.Position
bp.maxForce = Vector3.new(1000000, 1000000, 1000000)
bp.Parent = center
local bg = Instance.new("BodyGyro")
bg.maxTorque = Vector3.new(9e+005, 9e+005, 9e+005)
bg.cframe = center.CFrame
bg.Parent = center
local cam = game.Workspace.CurrentCamera
cam.CameraSubject = center
cam.CameraType = Enum.CameraType.Attach

while torso.Parent do
	wait()
	center.BodyPosition.position = torso.Position
	if lockCamera then
		cam.CoordinateFrame = CFrame.new(Vector3.new(center.Position.x + distance,center.Position.y + height,center.Position.z))
	end
end

center:Remove()