Skip to content

Lumo Loading Screen ​

A living loading screen whose scene is driven by the load itself.

Version 1.0.0 · Frameworks QBCore · Qbox · ESX · standalone

Config files · Exports & events

A living loading screen for FiveM. Four layouts, each with its own scene drawn live in the browser: no background video to download, and the motion never loops. The load itself drives each scene, so players watch their own progress.

LayoutThe sceneProgress is…
SummitA generated mountain range from night to sunrise, a route up the peakthe climber's altitude, and the time of day
ArrivalsA dotted globe following a flight, a boarding pass with the player's name, a split-flap news boardthe plane on its route
BroadcastA live news channel over a night skyline: headlines, "up next" events, a tickerthe city switching its lights on, and the signal meter
Night DriveA freeway into the city, your name on the hills, a car dashboardthe speedometer, and the distance on the road sign

Also included:

  • a welcome line with the player's name, visit number and when they were last seen
  • a music player: a playlist, or a generative soundtrack made live for each layout (0 MB)
  • sound cues at each loading stage (singing bowl, airport chime, …)
  • an info panel (Tab) with news, events, updates, rules, team, keys and music credits
  • clickable socials (Discord, store, YouTube, …) and the players online
  • keys for players: L switches layout, H hides the interface, Space plays/pauses the music, arrow keys change track and volume
  • a fade-out when the game is ready, and exports for other resources

Works on QBCore, Qbox, ESX and standalone. It needs no framework and no dependencies.

Install ​

  1. Drop lumo-loading into your resources folder.
  2. Remove or stop any other loading screen resource (only one loadscreen can run).
  3. Add ensure lumo-loading to server.cfg.
  4. Edit config.lua and restart the resource.

Configure ​

Everything lives in config.lua, with a comment on every option. The main ones:

  • Config.Layout: 'summit', 'arrivals', 'broadcast', 'nightdrive', 'random' or 'rotate'.
  • Config.Server: your name, short brand, tagline and logo.
  • Config.Theme.accent: one colour for the whole screen.
  • Config.Background: keep the animated scene, or use your own picture, slideshow or video.
  • Config.Music: 'playlist', 'ambient' (generative) or 'off'.
  • Config.Tips, News, Events, Rules, Changelog, Team, Socials.
  • Config.Layouts.<name>: per-layout options and the text of all six loading stages.
  • Config.Locale: every word on screen, for translating.
  • Config.Performance: frame rate and resolution of the scenes.

Your own files go in media/ (media/images, media/music, media/video) and are referenced as 'media/images/my-shot.jpg'. Every player downloads them on connect, so keep them small.

Preview in game ​

After you spawn, type /loadingpreview to see the screen again with a fake load: /loadingpreview arrivals opens one layout, /loadingpreview demo shows them all in turn, and Esc closes it. It is admin-only by default (Config.Preview.adminOnly); servers with add_ace group.admin command allow already allow it. Change config.lua, ensure lumo-loading, run the command again.

Preview without the game ​

Open html/index.html in Chrome. It runs a fake load with demo content. Useful URLs:

index.html?layout=arrivals          one layout
index.html?layout=summit&p=0.6      frozen at 60 %
index.html?layout=summit&ready=1&p=1   the arrived state
index.html?demo=1                   showcase: every layout in turn

(The preview uses the built-in demo content; your config.lua is used in game.)

Closing the screen ​

Config.Shutdown.mode = 'framework' (default): your multicharacter or core closes the loading screen, as QBCore, Qbox and ESX do. Use 'auto' on a server without one; the screen then closes itself once the game is ready.

To close it with the fade-out from your own script:

lua
exports['lumo-loading']:Close()                            -- fade out and close
exports['lumo-loading']:SetStatus('Preparing your characters')  -- your own status line

Credits ​

Music. All four tracks may be redistributed; the CC BY track needs its credit, which the in-game info panel shows under Keys → Music credits.

TrackArtistLicenceSource
Midnight DrivecongusbongusCC0OpenGameArt
Passion (Atmosphere Phonk)Alexi ActionCC BY 3.0Wikimedia Commons
Cyberpunk BeautyTarush SinghalCC0OpenGameArt
Lofi AgainomfgdudeCC0OpenGameArt

Fonts (SIL Open Font License 1.1, texts in html/fonts/): Barlow Semi Condensed, Oxanium, Anton, JetBrains Mono, Cormorant Garamond.

Globe land outline: Natural Earth, public domain.

Made by Lumo.