Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Attack with a module script not working as it should why is this?

Asked by
hokyboy 270 Moderation Voter
3 years ago

Attack with a module script not working as it should

ServerScriptService.ATTACKS.UpdatedAttackScript:39: attempt to call a nil value

UpdatedAttackScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EventFolder = ReplicatedStorage:WaitForChild("EVENTS")
local AttackOne = EventFolder:WaitForChild("AttackOne")

local AttackModules = script.AttackModules

function DoModule(Player)
    local DataFolder = Player.Data
    local Grimoire = DataFolder.Grimoire
    local GrimoireName = Grimoire.Value
    if GrimoireName == "None" then
        warn("Player does not have a Grimoire")
    else
        local AttackModule = require(AttackModules:WaitForChild(GrimoireName))
        AttackModule.AttackOne(Player)

    end
end

AttackOne.OnServerEvent:Connect(function(Player)
    DoModule(Player)

The Module

local Debris = game:GetService("Debris")
local AttackModule = {}

function AttackOne(Player)
    Player.Character.Humanoid.WalkSpeed = 0
    Player.Character.Humanoid.JumpPower = 0
    wait(.5)
    warn("Event Recieved")
    local MeshOne = script.BallOne:Clone()
    local MeshTwo = script.BallTwo:Clone()
    local MeshThree = script.BallThree:Clone()
    local MeshFour = script.Wave:Clone()

    local Hurmp = Player.Character.HumanoidRootPart
    local SFX = script.Sound:Clone()
    SFX.Parent = workspace
    SFX:Play()

    MeshOne.CFrame = Hurmp.CFrame
    MeshTwo.CFrame = Hurmp.CFrame
    MeshThree.CFrame = Hurmp.CFrame
    MeshFour.CFrame = Hurmp.CFrame + Vector3.new(0,-2,0)

    MeshOne.Parent = workspace.Debris
    MeshTwo.Parent = workspace.Debris
    MeshThree.Parent = workspace.Debris
    MeshFour.Parent = workspace.Debris

    for i = 1,50 do
        wait(.005)
        MeshOne.Size = MeshOne.Size + Vector3.new(.1,.1,.1)
        MeshTwo.Size = MeshTwo.Size + Vector3.new(.1,.1,.1)
        MeshThree.Size = MeshThree.Size + Vector3.new(.1,.1,.1)
        MeshFour.Size = MeshFour.Size + Vector3.new(.1,0,.1)
    end
    Player.Character.Humanoid.WalkSpeed = 16
    Player.Character.Humanoid.JumpPower = 50
    Debris:AddItem(SFX)
    Debris:AddItem(MeshOne,.1)
    Debris:AddItem(MeshTwo,.1)
    Debris:AddItem(MeshThree,.1)
    Debris:AddItem(MeshFour,.1)
end


return AttackModule

Answer this question