local dss = game:GetService("DataStoreService") local ds = dss:GetOrderedDataStore("DailyEggsData1.0") local resetTime = 30

local lbModel = script.Parent.Parent.Parent.Parent

local storedValueName = "DailyEggs"

local suffixes = {'','K','M','B','T','Qd','Qn','sx','Sp','O','N','de','Ud','DD','tdD','qdD','QnD','sxD','SpD','OcD','NvD','Vgn','UVg','DVg','TVg','qtV','QnV','SeV','SPG','OVG','NVG','TGN','UTG','DTG','tsTG','qtTG','QnTG','ssTG','SpTG','OcTG','NoAG','UnAG','DuAG','TeAG','QdAG','QnAG','SxAG','SpAG','OcAG','NvAG','CT'} local function format(val) for i=1, #suffixes do if tonumber(val) < 10^(i*3) then return math.floor(val/((10^((i-1)*3))/100))/(100)..suffixes[i] end end end

local cache = {} function getUserIdFromUsername(name) if cache[name] then return cache[name] end local player = game.Players:FindFirstChild(name) if player then cache[name] = player.UserId return player.UserId end local id local success, err = pcall(function() id = game.Players:GetUserIdFromNameAsync(name) end) cache[name] = id return id end

local characterAppearances = {}

function getCharacterApperance(userID) if characterAppearances[userID] then return characterAppearances[userID] end local humanoiddesc

local success, err = pcall(function()
	humanoiddesc = game.Players:GetHumanoidDescriptionFromUserId(userID)
end)
if not success then
	warn(err)
	while not success do
		local success, err = pcall(function()
			humanoiddesc = game.Players:GetHumanoidDescriptionFromUserId(userID)
		end)
		if success then
			break
		else
			wait(3)
		end
	end
end
characterAppearances[userID] = humanoiddesc
return humanoiddesc

end

local function Handler() local Success, Err = pcall(function() local Data = ds:GetSortedAsync(false, 100) local Page = Data:GetCurrentPage()

	local names = {}
	for Rank, Data in ipairs(Page) do
		local Name = Data.key
		local Amount = Data.value
		local NewObj = script.Template:Clone()
		NewObj.PlrName.Text = Name
		local retrievedValue = Data.value ~= 0 and (1.0000001 ^ Data.value) or 0
		if Rank == 1 then
			NewObj.BG.BackgroundColor3 = Color3.fromRGB(216, 175, 13)
		elseif Rank == 2 then
			NewObj.BG.BackgroundColor3 = Color3.fromRGB(98, 98, 98)
		elseif Rank == 3 then
			NewObj.BG.BackgroundColor3 = Color3.fromRGB(165, 77, 0)
		end
		if game.Players:FindFirstChild(Name) then
			names[Name] = Rank
		end
		NewObj.Eggs.Text = format(math.round(retrievedValue))
		NewObj.Rank.Text = "#"..Rank
		NewObj.Parent = script.Parent
	end
end)
if not Success then
	warn(Err)
end

end

local timeUntilReset = resetTime

while wait(1) do timeUntilReset = timeUntilReset - 1 script.Parent.Parent.eeee.Text = "Resetting in ".. tostring(timeUntilReset).." Seconds" if timeUntilReset == 0 then

	timeUntilReset = resetTime
	for _,Player in pairs(game.Players:GetPlayers()) do
		local storedValue = Player.Hidden[storedValueName].Value ~= 0 and math.floor(math.log(Player.Hidden[storedValueName].Value) / math.log(1.0000001)) or 0
		ds:SetAsync(Player.Name, storedValue)
	end
	for _,v in pairs(script.Parent:GetChildren()) do
		if v:IsA("Frame") then
			v:Destroy()
		end
	end
	Handler()
end

end

Handler()

game.Players.PlayerRemoving:Connect(function(Player) local storedValue = Player.Hidden[storedValueName].Value ~= 0 and math.floor(math.log(Player.Hidden[storedValueName].Value) / math.log(1.0000001)) or 0 local success, err = pcall(function() ds:SetAsync(Player.Name, storedValue) end) if success then print("leaderboard stats successfully saved") else local count = 0 while not success do local success, errormsg = pcall(function() ds:SetAsync(Player.Name, storedValue) end) count += 1 if success then print("Took ".. count .." to successfully save leaderboard stats") break else warn(errormsg) wait(3) end end end

end)