Which EasingStyle does the rotating Roblox Logo in the default Loading Screen use?

So, everytime you join a game, in the lower right corner is a rotating Roblox Logo. My question is which EasingStyle does the Logo use?

1 Like

The answer is

Cubic - Out (roblox reversed the output)

Yesterday I was looking roblox’s loading screen core scripts to make my own similar to it and I found this function:

local function spinnerEasingFunc(a, b, t)
	t = t * 2
	if t < 1 then
		return b / 2 * t*t*t + a
	else
		t = t - 2
		return b / 2 * (t * t * t + 2) + b
	end
end

If you want to make exactly same gui as roblox’s then gollow these steps:

1. Play your game in studio and copy loading screen gui from CoreGui (you need to do it fast because gui will gone)
2. Create a localScript inside ReplicatedFirst and insert gui that you copied into it
3. Paste code below into localScript (dont rename anything)

local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local StarterGui = game:GetService("StarterGui")

local LoadingScreen = script:WaitForChild("RobloxLoadingGui")
local spinnerImage = LoadingScreen:WaitForChild("BlackFrame"):WaitForChild("GraphicsFrame"):WaitForChild("LoadingImage")

local fadeCycleTime = 1.7

local loadingTime = 10

local backgroundFadeStarted = false



LoadingScreen.Parent = Players.LocalPlayer:WaitForChild("PlayerGui")

StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false)

local function spinnerEasingFunc(a, b, t)
	t = t * 2
	if t < 1 then
		return b / 2 * t*t*t + a
	else
		t = t - 2
		return b / 2 * (t * t * t + 2) + b
	end
end

local rotatingConnection = RunService.RenderStepped:Connect(function(deltaTime)

	local currentTime = tick()
	local fadeAmount = deltaTime * fadeCycleTime
	local turnCycleTime = 2
	local timeInCycle = currentTime % turnCycleTime
	local cycleAlpha = spinnerEasingFunc(0, 1, timeInCycle / turnCycleTime)
	spinnerImage.Rotation = cycleAlpha * 360
end)

4. If you change your game’s icon then you will need to do these steps again.

Result:
robloxapp-20210804-1758253.wmv (192.9 KB)
It is exactly the same as roblox’s

To remove loading screen after some time you can write your own function that willl fade transparency. Also dont forget to turn Enabled property of ScreenGui off when transparency will fade and enable all core guis using this function: StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, true).

2 Likes