NPC Pro – talking, remembering street NPCs with trust, gossip and errands NPC PRO - talk to ANY ped. They remember, they gossip, they snitch. €29.99 See NPC PRO
What it is

Documentation

Core ILikeGlow Loading – 3D neon highway loading screen documentation

v1.0.7 Updated 10 sections · 11 min
On this page
  1. What it is
  2. Features
  3. Commands, exports and events
  4. Requirements
  5. Config files
  6. Convars
  7. Scene settings
  8. Browser demo
  9. FAQ and troubleshooting
  10. Support

A loading screen for FiveM where the player drives down a neon highway at night while the game loads. It's free and the code is open to edit.

nCore Development · intelnpc.com · Resource: ncore_ilikeglow_loading · Version: see fxmanifest.lua

What it is#

The road, the towers, the lamps and the gates are a real 3D scene. The gates and the buildings light up as the progress rises, and at 100% there's a finale with a speed surge and a title. In front of it sit the server name, a progress bar, the status chip, tips, rules, news and staff.

It needs no framework, no database and no other resource. No music ships with it, you add your own tracks.

Features#

The highway scene#

  • A real-time WebGL 2 scene: striped sun, sky and stars, a road with glowing lane dashes, a neon median and edge lines, and lamp light pools.
  • Three rows of towers on each side with flickering windows and neon signs, 29 street lamps per side, 7 neon gates over the road and 6 sweeping searchlights.
  • Traffic in both lanes with head lights one way and tail lights the other, plus light streaks.
  • Bloom glow, with a cheap fake glow when bloom is off.
  • The progress raises the speed, lights up the buildings and gates and widens the view.
  • The music reacts: beats add speed and glow. With no music, a soft pulse keeps the scene alive.
  • Finale at 100%: a forward surge, a flash, every gate lit, "Connection established" and a large "Entering the city" title. scene.finale: false leaves it out.
  • Four quality levels: minimal, low, medium and high. scene.quality takes 'auto' (the default), 'low', 'medium' or 'high'. Auto starts integrated graphics and CPUs with 2 threads or fewer on medium, other GPUs on high and software rendering on minimal, then steps down when frames get slow. The Scene settings table has the numbers per level and the other keys.
  • While the rules gate is open, the scene drops to half resolution and at most 30 fps.
  • Without WebGL 2, if the scene fails, or if it hasn't started after 15 seconds, a 2D fallback takes over: a retro sun, a moving grid road and particles. scene.enabled: false gives everyone the 2D version.
  • The scene pauses while the window is hidden and shuts down after the fade out.
  • Over a background video or image the scene fades out, or stays as a light overlay (scene.withMedia).
  • With reduced motion on in the system, the speed is cut and the flashes are off.

Look#

  • Theme colors: 23 colors drive the interface and the scene.
  • Background video with an ordered source list and fallbacks, or an image slideshow. Both are off by default. A video is a file in assets/video or a direct .mp4 or .webm link, and assets/video/README.txt explains the formats.
  • Logo beside, above or in place of the title, or a neon hexagon monogram with the first letter.
  • Pre-title, title, subtitle and footer. Leave the title empty and it shows the server name with color codes removed.
  • Pattern overlay, scrim, vignette, film grain, corner brackets and rising particles, each with a switch.

Status, progress and tips#

  • A status chip with the Online label and dot, players against slots and ping.
  • A progress bar with stage ticks, a glowing spark and "Stage nn / total" with 7 stage names. It moves by itself up to 90% until the game reports progress, then follows it.
  • The game's own log lines show under the bar for a moment.
  • Rotating tips with F-keys and /commands drawn as key caps.
  • A welcome line with the FiveM name. On QBox, QBCore or ESX it switches to the character name when the framework's playerLoaded event arrives, but that event usually comes after the loading screen has closed, so most players still see their FiveM name. playerName in the config only sets the name in the browser preview.

Music#

  • Your own .mp3 or .ogg tracks with previous, play/pause, next, a volume slider with mute, a popup track list and the elapsed time.
  • Shuffle, loop and autoplay. The first click or key press starts the music if the browser blocks it.
  • A spectrum visualizer (4 to 48 bars, 5 by default) and a waveform line, with a synthetic fallback. If any track is a link starting with http, https or //, the visualizer always uses the synthetic signal.
  • The volume is remembered for the next join.

Info panel and rules gate#

  • A side panel with a tab rail for Rules, News and Staff. News only shows when there is news, by default 8 entries.
  • Staff cards with avatar letter, name, role and a badge. Social buttons with icons.
  • The rules gate is off by default. Set setr ilg:rulesGate 1 to hold the screen until the player accepts. Options: scroll to the end, a Decline button that disconnects with a reason in your language, a dimmed background, once per version (ilg:rulesVersion) or every join (ilg:rulesMode always).
  • If another resource closes the loading screen while the gate is open, the same panel opens again above the game.
  • Acceptances go to data/rules_accepted.json with the identifier, version, time and player name. That is personal data. The gate runs in the client script, so it works as a prompt and the server doesn't enforce it.

Live news and tips#

  • data/news.json and data/tips.json, or JSON links (ilg:newsUrl, ilg:tipsUrl) refreshed every ilg:contentRefreshMinutes (5 by default). data/README.txt shows the file format.
  • SetNews and SetTips let other resources push content. Pushed content comes first, then the links, then the files.
  • Up to 12 news entries and 30 tips, plain text only. If a link fails, the content that is already loaded stays.

Connecting#

  • At connect the server hands over the player's name, count, slots, server name, the newest 4 news and 10 tips, so the first frame has data. Ping arrives a moment later. This needs a FiveM build with deferrals.handover.
  • It works next to queue, whitelist, allowlist and anticheat resources, and next to monitor, vmenu and easyadmin. Detection is by resource name. When one of them runs, the data rides on that resource's connect deferral and this one doesn't take its own. ilg:useDeferrals forces it either way, and the server console prints the mode when the first player connects.
  • When the player's session starts, the screen fades out over 0.7 seconds and the music goes quiet with it. With the rules gate on, it waits for the answer first.

Languages and tools#

  • 10 languages: English, Hungarian, German, French, Italian, Spanish, Brazilian Portuguese, Polish, Czech and Dutch. Copy locales/en.json to add yours.
  • demo.html plays a scripted take of the screen in your browser, about 51 seconds, with 6 color presets, language and speed options and hotkeys. See Browser demo.
  • The optional dev dock (devDock) adds a Replay button. Each part of the screen starts on its own, so a failing part only logs and disables itself.
  • Fonts, icons and the 3D library ship inside the resource. The screen makes no outside request unless you set a video, image or music link.

Commands, exports and events#

Name Side What it does
ilg_reload Server console or ACE command.ilg_reload Re-reads the data files, fetches the links, prints the counts
ilg_rules_reset <all or me or server id or identifier> Server console or ACE command.ilg_rules_reset Clears saved acceptances so the gate asks again
IsLoadingScreenDone() Client export True once the screen and the gate are done
ncore_ilikeglow_loading:finished Client event Fires once when the screen is done
SetNews(list), SetTips(list) Server exports Also the local events ncore_ilikeglow_loading:setNews and :setTips
Lua
-- client
if exports.ncore_ilikeglow_loading:IsLoadingScreenDone() then
    -- the screen is gone and the rules gate is answered
end

AddEventHandler('ncore_ilikeglow_loading:finished', function()
    -- fires once, when the screen is done
end)

-- server: returns true when at least one entry was usable
exports.ncore_ilikeglow_loading:SetNews({
    { title = 'Winter update', date = '2026-07-24', tag = 'Update', body = { 'Two new legal jobs at the docks.' } }
})
exports.ncore_ilikeglow_loading:SetTips({ 'Press F1 to open your phone.' })

Pushed lists replace the links and the files until you push again. Push an empty list and the links or the files are used again.

Requirements#

  • A player PC and browser with WebGL 2 for the 3D scene. Others get the 2D fallback.
  • Nothing else. QBox, QBCore and ESX are optional, for the character name, and even with them the welcome line usually shows the FiveM name.
  • Instant first-frame data needs a FiveM build with deferrals.handover.

Config files#

  • config.js for the scene, theme, media, music, panels and gate look.
  • locales/*.json for all texts.
  • data/news.json and data/tips.json (see data/README.txt).
  • server.cfg convars, see below.

Install steps are in INSTALLATION.md.

Convars#

Set them with setr above ensure ncore_ilikeglow_loading.

Convar Default What it does
ilg:rulesGate 0 1 turns the rules gate on
ilg:rulesVersion 1 Change it and everyone is asked again
ilg:rulesMode version always asks on every join
ilg:newsUrl empty JSON link for the news. A document with news and tips keys fills both lists when ilg:tipsUrl is empty
ilg:tipsUrl empty JSON link for the tips
ilg:contentRefreshMinutes 5 Minutes between reloads of the files and the links. 0 loads them once at start
ilg:useDeferrals auto 1 always takes the connect deferral, 0 turns the connect handover off. auto takes it only when none of the resources named under Connecting is running

The files in data/ are also read again when a player connects, so a saved change shows up for the next one.

Scene settings#

All under scene in config.js.

Key Default What it does
enabled true false uses the 2D version for everyone
quality 'auto' 'low', 'medium' or 'high' fixes the level. Only auto steps down by itself
maxFps 60 Frame cap, 15 to 240
renderScale 1 0.25 to 1, lowers the resolution further
bloom on enabled, strength, radius and threshold of the glow
speed 1 Driving speed, 0 to 4
reactToMusic, reactToProgress true Beats and progress move the scene
withMedia 'off' 'overlay' keeps the scene over a video or image at overlayOpacity (0.6)
finale true The surge and the title at 100%
fov, sway 62, 1 Field of view (40 to 100) and camera sway (0 to 3)
traffic, streaks 1, 1 Amount of cars and light streaks, 0 to 2
searchlights true The sweeping beams
Level Pixels at most Frame cap Searchlights
minimal about 1024 x 576 24 fps 3
low about 1280 x 720 30 fps 4
medium about 1600 x 900 maxFps 6
high about 2560 x 1440 maxFps 6

No level renders above the window size. Minimal is only used by auto mode. Lower levels also draw fewer light streaks.

Browser demo#

Double-click demo.html and the screen opens in your desktop browser, straight from the folder. It reads your config.js and plays the tracks in music.tracks. Opened from disk the visualizer follows the built-in signal, in game it follows the real spectrum. Players never download the demo files.

Add options after demo.html?, joined with &, for example demo.html?theme=sunset&clean=1.

Option What it does
theme= glow, sunset, ultraviolet, arctic, toxic or inferno. The presets only exist in the demo. To use one on the server, copy its colors from demo/demo.js into theme in config.js
lang= One of the 10 language codes
speed= 0.25 to 4, timeline speed
loop=1 Restart after every take
gate=0 Leave the rules gate out
clean=1 Hide every demo element, for recording

Hotkeys: H help, Space pause, R restart the take, 1 to 9 jump the progress to 10 to 90%, 0 finish loading and play the finale, G show the rules gate, A scroll the gate and accept, T next tab, P playlist, M music, F fade out, C next color preset, L push a game log line, N push extra news.

FAQ and troubleshooting#

Problem What to check
Players see the flat 2D road Their PC or browser has no WebGL 2, or the scene failed. F8 shows 3D scene unavailable with the reason.
The scene is slow on some PCs Leave scene.quality on 'auto', it steps down by itself. Lower scene.maxFps or scene.renderScale, or set scene.bloom.enabled to false.
No music plays music.tracks is empty in the shipped config. Put .mp3 or .ogg files in assets/audio and list them, as a path or as { title, src }. Other formats are not packed by the manifest. If the browser blocked autoplay, the first click or key press starts it.
The video doesn't show Open F8. video source failed names the file and the media error code, and video timed out means no data came for 6 seconds. assets/video/README.txt has the ffmpeg lines to convert it to .webm.
The 3D road is gone after I added a video That's the default. Set scene.withMedia: 'overlay' to keep it over the video.
How do I change the server name Set brand.title in config.js. Leave it null or empty and the screen shows sv_projectName (or sv_hostname) without the color codes. The other texts are in locales/<lang>.json.
My changes in locales/*.json don't show in demo.html The demo reads the copy in demo/locales.js. In game the files in locales are used. Texts you set in config.js show in both.
The player count is 0 in the browser The browser preview uses status.playersCurrent, playersMax and ping from config.js. In game the server sends the live numbers.
The screen doesn't close It closes when the player's session starts. With the rules gate on it waits for Accept. Make sure no other loading screen resource is running.
The welcome line shows the FiveM name That's expected most of the time. The character name from QBox, QBCore or ESX only arrives if the character loads before the screen closes.
The rules gate doesn't show Check setr ilg:rulesGate 1. A player is asked once per ilg:rulesVersion, so use ilg_rules_reset all in the server console, or ilg_rules_reset me in game with the ACE, to see it again.
News or tips don't change The server console prints a line when data/news.json or data/tips.json isn't valid JSON and when a link fails. Pushed content wins over the link, and the link wins over the files. ilg_reload reads everything again.

Support#

Support is on intelnpc.com and I reply within 72 hours. New versions are announced on intelnpc.com.

nCore ILikeGlow Loading is made by nCore Development. It is not approved, sponsored or endorsed by Rockstar Games.