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

How to fix the error LocalScript.lua:87: attempt to index nil with 'WaitForChild'?

Asked by 4 years ago
Edited 4 years ago

Basically I was working on a plugin for hours and this error popped up saying "LocalScript.lua:87: attempt to index nil with 'WaitForChild'" I don't really know what I have done wrong but here's the script! Please tell me the problem with my script!

-- Create new 'DockWidgetPluginGuiInfo' object
local WidgetInfo = DockWidgetPluginGuiInfo.new(
    Enum.InitialDockState.Float,  -- Widget will be initialized in floating panel
    true,   -- Widget will be initially enabled
    false,  -- Don't override the previous enabled state
    500,    -- Default width of the floating window
    500,    -- Default height of the floating window
    500,    -- Minimum width of the floating window (optional)
    500     -- Minimum height of the floating window (optional)
)

-- Create new widget GUI
local Interface = plugin:CreateDockWidgetPluginGui("CurrencyMaker", WidgetInfo)
Interface.Title = "Currency Maker!"

local Toolbar = plugin:CreateToolbar("WIP")
local Button = Toolbar:CreateButton("WIP","WIP","")
Button.Click:Connect(function()
    Interface.Enabled = not Interface.Enabled
end)

local Background = Instance.new("Frame",Interface)
Background.Size = UDim2.new(1,0,1,0)
Background.Position = UDim2.new(0,0,0,0)
Background.BackgroundColor3 = Color3.fromRGB(150,150,150)

local CreateButton = Instance.new("TextButton",Interface)
CreateButton.Position = UDim2.new(0.5,0,0.8,0)
CreateButton.AnchorPoint = Vector2.new(0.5,0.5)
CreateButton.Size = UDim2.new(0,320,0,84)
CreateButton.Style = "RobloxRoundButton"
CreateButton.Text = "Create Currency!"
CreateButton.Font = Enum.Font.GothamBold
CreateButton.TextSize = 35
CreateButton.TextColor3 = Color3.fromRGB(0,0,0,0)

local CurrencyName = Instance.new("TextBox",Interface)
CurrencyName.Position = UDim2.new(0.5,0,0.2,0)
CurrencyName.Size = UDim2.new(0,325,0,90) 
CurrencyName.AnchorPoint = Vector2.new(0.5,0.5)
CurrencyName.TextScaled = true
CurrencyName.PlaceholderText = "Currency Name"
CurrencyName.Text = ""
CurrencyName.PlaceholderColor3 = Color3.fromRGB(100,100,100)
CurrencyName.TextColor3 = Color3.fromRGB(0,0,0,0)
CurrencyName.Font = Enum.Font.GothamSemibold
CurrencyName.BorderSizePixel = 3
CurrencyName.BorderMode = Enum.BorderMode.Outline
CurrencyName.BorderColor3 = Color3.fromRGB(55,55,55)

local StartingValue = Instance.new("TextBox",Interface)
StartingValue.Position = UDim2.new(0.5,0,0.4,0) 
StartingValue.Size = UDim2.new(0,325,0,90) 
StartingValue.AnchorPoint = Vector2.new(0.5,0.5)
StartingValue.TextScaled = true
StartingValue.PlaceholderText = "Starting Value"
StartingValue.Text = ""
StartingValue.PlaceholderColor3 = Color3.fromRGB(100,100,100)
StartingValue.TextColor3 = Color3.fromRGB(0,0,0,0)
StartingValue.Font = Enum.Font.GothamSemibold
StartingValue.BorderSizePixel = 3
StartingValue.BorderMode = Enum.BorderMode.Outline
StartingValue.BorderColor3 = Color3.fromRGB(55,55,55)

local AutosavingToggle = Instance.new("TextLabel",Interface)
AutosavingToggle.Position = UDim2.new(0.5,-20,0.6,0)
AutosavingToggle.Size = UDim2.new(0, 315,0, 25)
AutosavingToggle.AnchorPoint = Vector2.new(0.5,0.5)
AutosavingToggle.BackgroundTransparency = 1
AutosavingToggle.Text = "Enable Autosaving"
AutosavingToggle.Font = Enum.Font.GothamSemibold
AutosavingToggle.TextScaled = true

local Toggle = Instance.new("TextButton",AutosavingToggle)
Toggle.Position = UDim2.new(0.880, 0,0.158, 0) 
Toggle.Size = UDim2.new(0, 25,0, 25)
Toggle.BorderSizePixel = 3
Toggle.BorderMode = Enum.BorderMode.Outline
Toggle.BorderColor3 = Color3.fromRGB(49,49,49)
Toggle.BackgroundColor3 = Color3.fromRGB(125,125,125)
Toggle.Text = ""

local AutosavingEnabled = false

CreateButton.MouseButton1Click:Connect(function()
    if AutosavingEnabled == true then
        local WithSave = script.Parent.CurrencyWithAutoSave
        WithSave:Clone()
        WithSave.Disabled = false
        WithSave.Parent = game.ServerScriptService
    else
        local WithoutSave = script.Parent.CurrencyWithoutAutoSave
        WithoutSave:Clone()
        WithoutSave.Disabled = false
        WithoutSave.Parent = game.ServerScriptService
    end
end)



StartingValue:GetPropertyChangedSignal("Text"):Connect(function()
    if tonumber(StartingValue.Text) or StartingValue.Text == "" then
        StartingValue.Text = StartingValue.Text
    else
        print("The amount you've entered isn't a number or it simply the amount you've entered is sort of malformed. Please make sure the amount only contains numbers!")
    end
end)

Also, I coded this using a local script so yeah

0
what is line 87 royaltoe 5144 — 4y
0
royaltoe the whole script I've shown is actually at line 85 to line 103 DizzyGuy70 38 — 4y
0
wonky, can you print(script)? royaltoe 5144 — 4y
0
There's no line 103 or 85. killerbrenden 1537 — 4y
View all comments (2 more)
0
Please post your whole script as the error line does not match the code. killerbrenden 1537 — 4y
0
Ok I've posted the whole entire script! So now can anyone tell me the problem? DizzyGuy70 38 — 4y

Answer this question