LoadGui — Animated Loading Screen System
A clean, plug-and-play loading screen GUI for Roblox games. This kit provides a fully scripted, visually polished loading experience that replaces the default Roblox loader — complete with asset preloading, animated transitions, a spinning logo, real-time progress text, and automatic default UI removal. Drop it into ReplicatedFirst and it works out of the box.
What's Included
ScreenGui — LoadingScreen A full-screen GUI that covers the screen immediately on join. Configured with ResetOnSpawn = false and IgnoreGuiInset = true so it fills the entire screen edge-to-edge without gaps on any device.
Frame — Fade A full-screen black overlay frame used for the fade-in and fade-out transitions. Set at a high ZIndex (4) to ensure it renders above everything else during loading.
ImageLabel — LoadingImg A centered loading image/logo displayed during the loading sequence. Uses a custom asset image (rbxassetid://17687447043) with UIAspectRatioConstraint to keep it perfectly proportioned at all screen sizes, and a UICorner for rounded styling.
TextLabel — LoadingText Displays real-time loading status to the player (e.g., "Scanning assets...", progress like "(3/20) - assetname", and "Finalizing..."). Uses the Press Start 2P pixel font (PressStart2P.json) for a stylized retro look. Includes a UITextSizeConstraint for responsive text scaling across devices.
LocalScript — LocalScript The main controller script. It handles:
- Removing default Roblox loading UIs (Health bar, Backpack, Chat, LeaderStats, EmotesMenu) via StarterGui:SetCoreGuiEnabled
- Scanning all descendants of a container using GetDescendants() to build a full asset list
- Safe batch preloading designed for mobile compatibility — assets load in small batches with brief task.wait(0.05) yields to avoid freezing low-end devices
- Live progress display: updates LoadingText with the current asset count and name as each one loads via ContentProvider
reloadAsync
- Fade transition: fades in from black on start, then fades out to reveal the game world once loading completes using TweenService (Quad/Out easing, 0.75s duration)
- A spinning rotation tween on the LoadingImg (360° linear loop, plays throughout loading)
- Connects to .Completed to cleanly destroy the GUI after the reveal
Script — README An in-model README script with setup instructions. Instructs users to open the LocalScript to set their game name, edit the theme, and customize the GUI. No external dependencies required.
Model — LoadGui (root container) Houses all of the above inside a single droppable model, organized for ReplicatedFirst placement.
Features at a Glance
- Plug-and-play — place in ReplicatedFirst and it works immediately
- Asset preloading with real-time progress counter
- Mobile-safe batch loading to prevent frame freezes
- Animated logo — continuous spin tween throughout loading
- Fade in/out transitions using TweenService (Quad easing)
- Removes default Roblox GUIs (backpack, health, chat, leaderboard, emotes)
- Responsive layout — UIAspectRatioConstraint + UITextSizeConstraint for all screen sizes
- Custom font — Press Start 2P (pixel/retro style, built into Roblox fonts)
- Rounded corners via UICorner
- Fully editable — change logo, colors, font, text, and timing in one script
- Headphone message — customizable subtitle text ("Best experience with headphones!" by default)
Technical Details
- Format: .rbxm — drag into ReplicatedFirst in Explorer
- Scripts: 1× LocalScript (main loader), 1× Script (README/instructions)
- GUI Elements: ScreenGui, Frame (Fade), ImageLabel (Logo), TextLabel (Status)
- UI Constraints: UIAspectRatioConstraint, UICorner, UITextSizeConstraint
- Services used: Players, UserInputService, TweenService, StarterGui, ContentProvider, ReplicatedStorage, ReplicatedFirst, Workspace
- No external modules — fully self-contained
