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

How do you make a block that if touched then the other part changes its text?

Heres my script right now but it doesnt work

--Variables--
local Brick = script.Parent
local OtherBrick = game.Workspace.Part
local player = game.Players.LocalPlayer
--End--

--Code--
local function PlayerTouched(Part)
	local Parent = Part.Parent
	OtherBrick.SurfaceGui.TextLabel.Text = ""..player.Name..""
end
end

Brick.Touched:connect(PlayerTouched)

2 answers

Put this in a script in a part

function onTouched(part) -- function player humanoid touch part

 local h = part.Parent:findFirstChild("Humanoid")

	if h~=nil then

		script.Parent.SurfaceGui.TextLabel.Text = "hi" --changes text

		h.Text = "hi"--changes text

	

 end

end

script.Parent.Touched:connect(onTouched) --activated on touch

Make sure you have surfacegui in the part with a text lable inside the surface gui

If you are looking for the username of the player who touched the part, you would need a StringValue to access it. This is how I would advise you to do it.

First, put a script in your "OtherBrick" and put a StringValue in the script. Copy and paste the following code into this new script.

while wait() do
	script.Parent.Text = script.Value.Value
end

Then you would add this script into your touched brick.

OtherBrick = game.Workspace.Part

script.Parent.Touched:Connect(function(hit)
	if hit.Parent:FindFirstChild("Humanoid") then
		OtherBrick.SurfaceGui.TextLabel.Script.Value.Value = hit.Parent.Name
	end
end)

I would recommend changing the "OtherBrick" part name distinctly, due to lots of objects being named "Part" in most games. If you do change it, remember to change line 1's "Part" to whatever you name it.

Hopefully this works for you!

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