Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

LocalScript I'm trying to get to run based around displaying a Tool's stats. What am I doing wrong?

So, I'm trying to have a Gui display what item the character is holding (Its image, name and tooltip). Here's my script in its entirety:

local player = game.Players.LocalPlayer
local character = player.Character
if not character then
	character = player.CharacterAdded:wait()
end
character = player.Character

local frame = script.Parent.Frame
local image = frame.ItemImage
local name = frame.ItemName
local tooltip = frame.ItemToolTip

character.Changed:connect(function()
	if character:FindFirstChildOfClass("Tool") then
		name.Text = character:FindFirstChildOfClass("Tool").Name
		tooltip.Text = character:FindFirstChildOfClass("Tool").ToolTip
		image.Image = character:FindFirstChildOfClass("Tool").TextureId
	end
end)

When I run it and pull out a tool, nothing changes. I don't get any errors... Anyone know what I'm doing wrong?

P.S. This is in a LocalScript within the StarterGui.

1 answer

It seems that you are trying to edit the GUI elements in StarterGui. The problem is that StarterGui is what is cloned into the player's GUI when they spawn. To fix this, you can use a for loop with the :GetPlayers() function to directly edit the player's GUI.

If you're just trying to edit the GUI of the person who equipped the tool, you can change the frame variable to the location in the player's PlayerGui.

For example:

local frame = player.PlayerGui.ScreenGui.Frame --or whatever

More info here

This discussion is preserved as it was. New answers, comments, and votes are closed.