This most likely due to an attempt to reference the Instance through an immediate variable declaration; the Script runs faster than the Server can actually load the assets within the game, this you must compensate for.
You can use two popular functions of Instance to tell the program how to retrieve and handle the Instance you with to store within a variable
local Part = workspace:FindFirstChild("Part")
FindFirstChild will attempt to retrieve the object as a child of workspace, if it cannot find it, it'll return nil and continue forth instead of throwing an exception
local Part = workspace:WaitForChild("Part")
WaitForChild will yield the Script until the given object exists (wait for it); this is the method you should use, as it'll ensure the object can be found, and is valid.
APPLYING THIS FIX TO YOUR PROGRAM
local ServerStorage = game:GetService("ServerStorage")
local Gui = ServerStorage:WaitForChild("Gui")
local Player = game:GetService("Players").LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")
Gui:WaitForChild("Tutorial"):Clone().Parent = PlayerGui
local TutorialNew = PlayerGui:FindFirstChild("PlayerGui")
local Button = script.Parent
local Open = false
Button.MouseButton1Click:Connect(function()
TutorialNew.Frame:TweenPosition(UDim2.new(0.335, 0,0.715, 0))
wait()
TutorialNew.Frame.Label.LocalScript.Disabled = false
end)
Remember, don't forget to accept this answer if it helps!
2 comments
I will add the script so you can see what i'm working with.
@XxWingKing this is the solution