I recently asked a questions about why my functions in the script of my tool wouldn't run on button press. The person who answered my first question told me to run my functions individually and my functions wont even run on Activated() I'm not sure if there's an error in my variables, or my code. Here is the entire code from what I have so far.
tool = script.Parent
player = tool.Parent
handle = tool.Handle
blastsound = handle.Blast
blast = Instance.new("Part")
blast.Name = "ElectricBall"
blast.BrickColor = BrickColor.new("Cyan")
blast.Material = "Neon"
blast.FormFactor = "Custom"
blast.Size = Vector3.new(4, 4, 4)
blast.TopSurface = "Smooth"
blast.BottomSurface = "Smooth"
blast.Locked = true
blast.CanCollide = false
blastsound:Clone().Parent = blast
blast.Blast.Volume = 1
Lift = Instance.new("BodyForce")
Lift.force = Vector3.new(0, blast:GetMass() *196.25, 0)
Lift.Parent = blast
game.Lighting.Lightning:Clone().Parent = blast
Enabled = false
Damaging = false
function poweron()
if Enabled == false then
game.Lighting.Aura:Clone().Parent = player.Torso
player.Humanoid.WalkSpeed = 25
local light = Instance.new("PointLight")
light.Parent = player.Torso
light.Brightness = 15
light.Color = Color3.new(0, 255, 255)
light.Range = 8
Enabled = true
end
end
function poweroff()
if Enabled == true then
player.Torso.light:Destroy()
player.Torso.Aura:Destroy()
player.Humanoid.WalkSpeed = 16
end
end
function shoot()
if Enabled == true then
local d = player.Torso
local newblast = blast:Clone()
newblast.CFrame = tool.Parent.Torso.CFrame + (handle.Position - tool.Parent.Torso.Position).Unit * (handle.Position - tool.Parent.Torso.Position).Magnitude
newblast.Velocity = (d.CFrame.lookVector * 180) + Vector3.new(math.random(-20, 20), 0, math.random(-20, 20))
newblast.Touched:connect(BlastHit)
newblast.Parent = game:GetService("Workspace")
newblast.Blast:Play()
end
end
function BlastHit(Part)
if Part ~= nil and Part.Parent ~= nil and Part.Parent:FindFirstChild("Humanoid") ~= nil and Part.Parent ~= tool.Parent then
Part.Parent.Humanoid:TakeDamage(40)
Part.Parent.Humanoid.Jump = true
wait(0.1)
if tool.Parent:FindFirstChild("Torso") ~= nil then
Part.Velocity = Part.Velocity + (tool.Parent.Torso.Position - Part.Position).Unit * 150
tool.Parent.Torso.Velocity = (Part.Position - tool.Parent.Torso.Position).Unit * 200
else
Part.Velocity = Part.Velocity - Part.CFrame.lookVector * 120
end
end
How would I go about running the functions on button press while the tool is equipped?
