How do I make a GUI shop appear on screen in certain areas?

I am not sure if this topic is under the right category.

I am trying to make a ScreenGui frame that only appears on the screen when your character steps into a certain area in the game, but I do not know how that would work.

Here is the shop with the spot that I want the players to step in:

Here is the GUI that I want to appear on the player’s screen:

If you know how it would be done, please reply, thank you.

1 Like

I would assume what you would need to do is make that a seperate part from the regular map and detect if the player is touching the part, if so, bring up the gui, and if the player steps off of the part, remove the gui

1 Like

Detect when the player comes into contact with the ring around the shop, then fire a remote event to a local script that makes the gui’s appear.

e.g.

--server
local shop = script.Parent --finds the part you want hit
local event = game.ReplicatedStorage:WaitForChild("RemoteEvent") --finds the event

shop.Touched:Connect(function(hit) --detects when the part is hit
  if hit.Parent:FindFirstChild("Humanoid") then --checks to see if a player hit the part
     event:Fire(hit.Parent) --hit.Parent is the player
   end
end

--local
local event = game.ReplicatedStorage:WaitForChild("RemoteEvent") --finds the remote event
local gui = script.Parent --finds gui you want visible

event.OnClientEvent:Connect(function() --fires when the event is recieved
    gui.Visible = true --makes gui visible
end
3 Likes

Nice, thanks for your help! :+1: :slightly_smiling_face: