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

How do I make my script repeat itself when you call the same function?

So, I am currently working on a game, and I made a LocalScript in the StarterGui that controls a ProximityPrompt in the Workspace. Basically, what the script does is it makes the player sit down after the ProximityPrompt is triggered.

This is the LocalScript in the StarterGui:

local prox = game.Workspace:WaitForChild("Setup").Chair1.Chair1.ProximityPart.ProximityPrompt
local humanoidRPart = game.Players.LocalPlayer.Character:WaitForChild("HumanoidRootPart")
local humanoid = game.Players.LocalPlayer.Character:WaitForChild("Humanoid")
local chair = game.Workspace:WaitForChild("Setup").Chair1.Chair1.Seat

local cam = game.Workspace.CurrentCamera

local camPart = game.Workspace:WaitForChild("Setup").ComputerCamPart

local function camSnap()
	repeat
		cam.CameraType = Enum.CameraType.Scriptable
		wait(0.1)
	until cam.CameraType == Enum.CameraType.Scriptable
	
	cam.CFrame = camPart.CFrame
end

local UIS = game:GetService("UserInputService")

local cooldown = 1
local debounce = false
local sitting = false

local function onSit()
	if debounce == false then
		camSnap()
		debounce = true
		chair.Disabled = false
		humanoidRPart.CFrame = CFrame.new(36.2, 3.46, -174.2)
		humanoid.Sit = true
		prox.Enabled = false
		humanoid.JumpPower = 0
		wait(cooldown)
		debounce = true
		script.Parent.MainPcBackground.Enabled = true
		script.Enabled = false
	end
end

prox.Triggered:Connect(onSit)

After the player sits down, a Gui Pops-Up, where there is an Exit Button that the players can click to make the Gui disappear and re-enable the ProximityPrompt.

local cam = game.Workspace.CurrentCamera
local player = game.Players.LocalPlayer
local character = player.Character
local humanoid = character:WaitForChild("Humanoid")

local seat = game.Workspace:WaitForChild("Setup"):WaitForChild("Chair1"):WaitForChild("Chair1"):WaitForChild("Seat")
local prox = seat.Parent:WaitForChild("ProximityPart"):WaitForChild("ProximityPrompt")

local ExitButton = script.Parent

ExitButton.MouseButton1Click:Connect(function()
	ExitButton.Visible = false
	script.Parent.Parent.Parent.Enabled = false
	wait(1)
	cam.CameraType = Enum.CameraType.Custom
	cam.CFrame = character:WaitForChild("Head").CFrame
	humanoid.JumpPower = 50
	humanoid.Jump = true
	seat.Disabled = true
	prox.Enabled = true
	wait(1)
	script.Parent.Visible = true
end)

These two scripts work just fine, and there are No Errors. However, my problem is that it doesn't do anything when the ProximityPrompt Re-Enables, after the player Triggers it a second time. Is there a way to make it so that when you Exit the GUI, the ProximityPrompt will work again?

1 answer

Nevermind Everyone. I just solved the issue. I used a different method to get the player to sit down.

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