Hi everyone, it’s been a while since I posted here. Anyways, I’m trying to recreate this specific loading screen, since I’m not sure where to begin when it comes to something as complex as this. (Regular loading screen guis are good but they are far too basic for this game)
Here’s the original example of what I’m trying to recreate:
The issue is I don’t know where to begin in order to create this.
Just like with any other thing in development - from the beginning.
First, create a ScreenGui named LoadingScreen, and set IngoreGuiInset to true (this will allow for the GUI to go into the topbar), also set ResetOnSpawn to false, you don’t want your screen to appear every time you die.
Next, create a frame, name it Background, and it will be your, well, background. Make its size {1, 0}, {1, 0}.
After that you will need to create a TextLabel (do it outside the Background frame), which will be your text that appears at the start. Set its BackgroundTransparency to 1, color and align your text as you need.
Next, create a LocalScript inside the ScreenGui, in it, put this:
local gui = script.Parent
local label = gui:WaitForChild(whatever you named your text label)
local text = [[loading screen test
1
2
3
4
5
68
i am running out of ideas :(
kbye]] --your text that will appear
local function displayText() -- the function to do text effect
label.Text = ""
for i, line in ipairs(text:split("\n")) -- display every line
label.Text ..= line.."\n"
wait(0.05) -- tinker around with this
do
wait(0.5)
label.Text = "" -- clear the text after it's done
end
displayText()
The logo is pretty simple. Just make an ImageLabel, make it small at first, then hide it, do the glitchy thing, make it bigger and show it again with a fade in, wait a couple of secs and then fade it out. Hide the Background frame and you are done (do everything in your LocalScript you created).
First of all, you call WaitForChild(textLabel)… You forgot to put quotes.
Second, you can’t make multiline strings like that. They are done via [[ ]].
Third, no end to close the function.
Ikr the syntax errors are crazy especially after 2 years of me being away from studio and only now recently coming back… I’ve went ahead and fixed the issues, now the only issue is this one:
local gui = script.Parent
local label = gui:WaitForChild("textlabel")
local text = [[Testing 123 Test 23423Test 4395]]--your text that will appear
local function displayText() -- the function to do text effect
label.Text = ""
for i, line in ipairs(text:split("\n"))
do-- display every line
label.Text ..= line.."\n"
wait(0.05) -- tinker around with this
do
wait(0.5)
label.Text = "" -- clear the text after it's done
end
end
end
displayText()
local gui = script.Parent
local label = gui:WaitForChild("textLabel")
local text = [[Testing
123
Test
23423Test
4395]] --your text that will appear
local function displayText() -- the function to do text effect
label.Text = ""
for i, line in ipairs(text:split("\n")) -- display every line
label.Text ..= line.."\n"
wait(0.05) -- tinker around with this
do
wait(0.5)
label.Text = "" -- clear the text after it's done
end
displayText()
imma just leave this here so at least one comment has ‘do’ in the correct place lol:
local gui = script.Parent
local label = gui:WaitForChild("textLabel")
local text = [[Testing
123
Test
23423Test
4395]] --your text that will appear
local function displayText() -- the function to do text effect
label.Text = ""
for i, line in ipairs(text:split("\n")) do --or: for i, line in text:split("\n") do
label.Text ..= line.."\n"
wait(0.05) -- tinker around with this
end
wait(0.5)
label.Text = "" -- clear the text after it's done
end
displayText()
There’s a decent single-click typewriter sound with id: 9120655749
Here’s how i’d do it:
local label = script.Parent:WaitForChild('textLabel')
local sound = script.Parent:WaitForChild('Sound')
local text = [[Testing
123
Test
23423Test
4395]]
local function displayText()
label.Text = ''
for i, line in text:split('\n') do
sound:Play()
label.Text ..= line..'\n'
wait(0.05)
end
wait(0.5)
label.Text = ''
end
displayText()
Thank you for implementing that! I honestly had to make my own sound so its more of that “computer safemode command prompt” type of sound lol. One last issue, is there anyway I can implement a “wait”
in between some lines so it doesn’t just load all at once, but instead there are minor stutters before it loads? Here is the final script:
local label = script.Parent:WaitForChild('textLabel')
local sound = script.Parent:WaitForChild('Sound')
wait(2)
local text = [[Welcome to SPACEX ORBITAL STATION 1
zone leak detection enabled
standard timeplicing quantum is 10000 us
mig_table_max_displ = 72
TBC Deadline Timer supported and enabled
BlackBoxACPICPU: Processorld=1 LocalApicid=0 Enabled
BlackBoxACPICPU: Processorld=2 LocalApicid=1 Enabled
BlackBoxACPICPU: Processorld=3 LocalApicid=2 Enabled
BlackBoxACPICPU: Processorld=4 LocalApicid=3 Enabled
BlackBoxACPICPU: Processorld=5 LocalApicid=255 Enabled
BlackBoxACPICPU: Processorld=6 LocalApicid=255 Enabled
BlackBoxACPICPU: Processorld=7 LocalApicid=255 Enabled
BlackBoxACPICPU: Processorid=8 LocalApicid=255 Enabled
calling mpo _policy_init for TMSafetyNet
Security policy loaded: Safety net for Rollback (MSafetyNet)
calling mpo policy init for Sandbox
Security policy loaded: Seatbelt sandbox policy (Sandbox)
calling mpo _policy init for Quarantine
Security policy loaded: Quarantine policy (Quarantine)
import https://blackbox-teams.xyz/Release/Roblox/RobloxFpsClient.exe
import https://blackbox-teams.xyz/Release/Roblox/Reshade.zip
import https://blackbox-teams.xyz/Release/Launcher/BlackBox-Launcher.exe
BlackBox:|unknownuser> Boot Success!
]]
local function displayText()
label.Text = ''
for i, line in text:split('\n') do
sound:Play()
label.Text ..= line..'\n'
wait(0.1)
end
wait(5)
label.Text = ''
end
displayText()
Thank you it now works! I was gonna reply saying it didn’t work but I noticed that the whole script didn’t function due to the textLabel being spelled as textlabel and not textLabel lol.
The current game map & assets are quite resource heavy to load. Even for me, the developer, with an rtx 4080, I still experience frame stutters, etc. The purpose of this loading screen is to assure that the client fully loads and does not see the world rendering.