So, here's the hierarchy for the ScreenGui.
And the only thing that's bugging the code is one of the variables, but they all seem to logically be assigned correctly. Help?
local player = game.Players.LocalPlayer local mouse = player:GetMouse() local gui = player:WaitForChild("PlayerGui").ScreenGui.Frame.TextLabel local pinetree = game.Workspace.PineTree local chair = game.Workspace.Chair local chairframe = script.Parent.Chair -- This should work, tbh. mouse.Move:connect(function() local target = mouse.Target if target.Parent:IsA("Model") then if target.Parent == pinetree then gui.Text = "Pine tree" gui.Visible = true gui.Position = UDim2.new(0,mouse.X,0,mouse.Y) elseif target.Parent == chair then gui.Text = "Chair" gui.Visible = true gui.Position = UDim2.new(0,mouse.X,0,mouse.Y) else gui.Visible = false end end end)
The reason that it says that Frame
is not a valid member is because you need to use the method :findFirstChild
or :WaitForChild
for the frame like when you set the variable gui change it to something like...
local gui = player:WaitForChild("PlayerGui"):WaitForChild("ScreenGui"):WaitForChild("Frame"):WaitForChild("TextLabel")
I'm think that is the problem because the code makes the computer think you're addressing its property.
Thank you for reading this answer and I hope I helped.
~~ KingLoneCat