I've made this quest system and a gui brick which shows a gui for the set amount of time. I want the gui to only appear when you touch the gui brick only when the quest has been completed. I've been suggested to change the bool value and set the script to understand it by true or false but I don't want to alter the already made script.
Quest Completion Marker(for reference of how the mission becomes assigned complete):
script.Parent.Touched:connect(function(touchedpart) local player = game.Players:GetPlayerFromCharacter(touchedpart.Parent) if player then if player:FindFirstChild("Quest6") and player:FindFirstChild("Quest6").Value == "-[Get a Water Tank]" then player.Quest6.Value = "-[Completed]" game.Workspace.Data[player.Name].Socks.Value = game.Workspace.Data[player.Name].Socks.Value + 1 end end end)
GUI Projector:
local debounce = false function getPlayer(humanoid) local players = game.Players:children() for i = 1, #players do if players[i].Character.Humanoid == humanoid then return players[i] end end return nil end function onTouch(part) local human = part.Parent:findFirstChild("Humanoid") if (human ~= nil) and debounce == false then debounce = true local player = getPlayer(human) if (player == nil) then return end script.Parent:clone().Parent = player.PlayerGui wait(17) debounce = false player.PlayerGui.OnTouchGui:remove() wait() debounce = false wait(17) end end script.Parent.Parent.Touched:connect(onTouch)