You could implement a PlayerAdded event into this, defining the leaderstats & such and using a Changed event for the Value you want to detect for, and check if the Player has enough to enable the UI
Code example:
local GoalRequirement = 50
--Server Script inside ServerScriptService
game.Players.PlayerAdded:Connect(function(Player)
local PlayerGui = Player:WaitForChild("PlayerGui")
--Define our leaderstats and such here
Value.Changed:Connect(function(NewValue)
if NewValue > GoalRequirement then
PlayerGui.ScreenGui.Enabled = true
end
end)
end)