I was curious to know if there was any way to make a GUI change only for one person who touches a certain brick? I would be using It as a way for them to tell what the temperature in-game is. For instance going outside into a desert area would make the temp go up. Thanks!
Yes. There is no extra coding required for this either, ScreenGUIs are always client based so any code that is inserted will only effect that player's GUI.
Here is an example: If you are in a game and open a menu, the menu only opens for you, nobody else. Same concept with your idea, the temperature will only change for the local player.
Yes, you can use the Touched
function to access a gui in the player.
game.Workspace.NameOfPart.Touched:connect(function(plr) if plr.Parent:FindFirstChild("Humanoid") then plr.PlayerGui.NameOfGuiYouWantToChange end)
Hope I helped! Please accept my answer if I answered your question!
This is an example of what you need.
Make a script inside the brick you want to be Touched
.
Then make a local script inside StarterGui
.
Name your local and normal script something
In this case ill name the local script
"Loc"
and the normal script "nor"
This is for the normal script inside the part.
local tochPart = script.Parent local nor = game:GetService("StarterGui").nor nor.Enabled = false tochPart.Touched:connect(function() wait(.1) nor.Enabled = true end)
Then for the local script
. Make variables with a number value for the temperature. Then make a GUI
for a temperature bar. After that use tweening
for making the temperature bar raising. I suggest making a invisible wall that the player can walk through that has a Touched
Event for change the GUI
bar.
EX.
local desTemp = 100 -- temperature of desert local snoTemp = 10 -- temperature of snow local desWall = game.workspace.desWall -- desert enter wall local snoWall = game.workspace.snoWall -- snow enter wall local tempGui = script.Parent.TempFrame -- GUI bar for temperature desWall.Touched:connect(function() tempGui:TweenSize(Udim2.new(desTemp,0 ,0,0), "In" ,"Quad", 1 ) end) snowWall.Touched:connect(function() tempGui:TweenSize(Udim2.new(snoTemp,0 ,0,0), "In" ,"Quad", 1 ) end)