A modern, highly customizable, and interactive FiveM loading screen created for Venta Rôleplay. It features a stunning 4K video background, a fully functional music player, and audio-reactive visual effects to keep your players entertained while joining your server.
Live preview available: https://nevylish.github.io/Venta-LoadingScreen/
Preview.mp4
Credits: Background video used for example: https://www.youtube.com/watch?v=nVnnSm00EUM
- 🎵 Custom Audio Player: A fully embedded music player displaying album covers, track titles, and artists. Includes interactive controls (clickable progress bar, volume slider, next/previous track buttons).
- 🔊 Audio-Reactive (Beat Detection): Visual background effects (subtle dimming/flashing) smoothly synchronized with the bass of the playing track using the Web Audio API.
- 🔄 FiveM Synchronization: A dynamic progress bar that communicates directly with native FiveM loading events (
loadProgressandnuiHandoverData) to show true loading states. - 📱 Responsive Design: Fully responsive CSS scaled for all displays, ranging from standard monitors all the way up to ultra-wide 4K (3840px) displays.
- ⚙️ Configurable: All features are configurable in
config.js.
- Download or clone this repository.
- Place the folder inside your FiveM server's
resourcesdirectory (e.g.,resources/[local]/venta-loadingscreen). - Add
ensure venta-loadingscreento yourserver.cfg. - Make sure your
fxmanifest.luais properly configured to loadindex.htmlas theloadscreen.
To change the background video, simply replace the video in the background folder
To add or modify the available songs, open config.js and edit the songs array. Make sure your .mp3 and cover image files are in the songs/ folder.
const songs = [
{
id: 'music1',
file: 'songs/song1.mp3',
icon: 'songs/song1.jpg',
title: 'Pump It Louder',
artist: 'Tiësto & Black Eyed Peas',
},
// Add more objects here...
];To change the default startup volume, you need to update two files so that the logic and the visual slider match.
In config.js: Adjust the base logic value (between 0 and 100).
const config = {
// ...
music: {
defaultVolume: 15, // Represents 15% volume
},
// ...
};By default, the loading screen displays the player's FiveM/Steam account name (e.g., "Bienvenue sur Venta Rôleplay, PlayerName"). This data is handed over from the server.
To change what name is sent to the loading screen, edit the server.lua file:
AddEventHandler('playerConnecting', function(_, _, deferrals)
local source = source
-- Modify 'name' to whatever you want the loading screen to display.
-- e.g., fetching a roleplay character's name from your database if allowed during connection.
deferrals.handover({
name = GetPlayerName(source)
})
end)The front-end (script.js) automatically reads window.nuiHandoverData.name to update the welcome text.