вот простенький скриптик, класть в ServerScriptService
в StarterGui создать BillboardGui, в котором Frame, в котором TextLabel
обрати внимание, что данная реализация отсчитывает время для каждого игрока независимо, из за чего цифры над головами сменяются несинхронно
чтобы это исправить, нужно отвязаться от события PlayerAdded и сделать нормальный менеджер данной фичи, который будет все делать для всех зашедших в матч игроков в одном цикле; но общее представление этот скрипт тоже дает
local playersSvc = game:GetService('Players')
local starterGuiSvc = game:GetService('StarterGui')
local ts_disp:BillboardGui = starterGuiSvc['timesystem-display']
local T_DELTA:number = -1
playersSvc.PlayerAdded:Connect(function(player)
local ch:Model = player.Character or player.CharacterAppearanceLoaded:Wait()
local new_disp:BillboardGui = ts_disp:Clone()
new_disp.Parent = ch.Head
new_disp.Enabled = true
local t_value:number = Random.new():NextInteger(15, 90)
local co:thread = coroutine.create(function()
while true do
task.wait(math.abs(T_DELTA))
t_value = t_value + T_DELTA
new_disp.Frame.value.Text = string.format('%02d:%02d', math.floor(t_value/60), t_value%60)
if t_value <= 0 then
return
end
end
end)
coroutine.resume(co)
end)
Тоесть не просто в лидерборде , а над головой
Систему времени в лидер борде я написал , хотелось бы еще над головой.