I am not the best at scripting so I took lines 16-18 from a different script which happens to be the problem here. Someone has explained to me about values and objects but never clearly enough to be understood!
The output on studio showed this: ": attempt to perform arithmetic on local 'decal' (a nil value)" Here is the script;
-- Sodaghost13
local frame = script.Parent
local tl = frame:WaitForChild("TextLabel")
local input = frame:WaitForChild("Input")
local settings = frame:WaitForChild("Settings")
local confirm = frame:WaitForChild("Confirm")
local open = frame.Parent:WaitForChild("Open")
local baseid = "http://www.roblox.com/asset/?id="
open.MouseButton1Down:connect(function()
frame.Visible = not frame.Visible
end)
confirm.MouseButton1Down:connect(function()
local decal = tonumber(tostring(input.Text))
open.Image = baseid..tostring(decal-1)
input.Text = tostring(decal)
end)

3 comments
"imput" Word of the day. https://www.google.ca/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=input
IT WAS 2AM DUDE PLEASE! I even had to re-write a function because I spelled it as 'funtion', twice! :/
Looks like you attempted tonumber on something that was not a number string, which returns nil.