Config Files
All configuration is done inside config.js in the root of the resource. The file is unescrowd and fully editable.
Theme
theme: 'vice-city'
Sets the active color theme. Options: 'vice-city', 'cyberpunk', 'minimal-glass'. See the Themes page for details.
Background
background: {
video: true,
videoSrc: 'assets/video/cinematic.mp4',
images: [
'assets/images/bg1.jpg',
'assets/images/bg2.jpg',
],
slideshowInterval: 6000,
}
| Field | Type | Description |
|---|---|---|
video | boolean | true = use video background, false = use image slideshow |
videoSrc | string | Path to the background video file |
images | array | List of image paths for the slideshow |
slideshowInterval | number | Milliseconds between image crossfades (default: 6000) |
Video takes priority when video: true. The images array is only used when video: false.
Header Branding
header: {
logo: 'assets/images/logo.png',
title: 'Vice Studios',
subtitle: 'The city never sleeps',
}
| Field | Type | Description |
|---|---|---|
logo | string | Path to your logo image. Set to null or '' to hide |
title | string | Server name shown in the header |
subtitle | string | Tagline shown below the title |
Header Buttons
buttons: [
{ label: 'Discord', icon: 'fab fa-discord', action: 'url', url: 'https://discord.com/invite/...' },
{ label: 'Website', icon: 'fas fa-globe', action: 'url', url: 'https://your-site.com' },
{ label: 'Staff', icon: 'fas fa-users', action: 'staff' },
{ label: 'Rules', icon: 'fas fa-scroll', action: 'rules' },
]
| Field | Type | Description |
|---|---|---|
label | string | Button text |
icon | string | FontAwesome icon class |
action | string | 'url' opens a link, 'rules' opens rules modal, 'staff' opens staff modal |
url | string | URL to open (only needed when action: 'url') |
You can add, remove, or reorder buttons freely.
Music Player
music: [
{
name: 'Miami',
artist: 'Will Smith',
url: 'assets/music/Miami.mp3',
cover: 'assets/images/miami.png',
},
{
name: 'Track Name',
artist: 'Artist',
url: 'https://www.youtube.com/watch?v=...',
cover: '',
},
]
| Field | Type | Description |
|---|---|---|
name | string | Track name displayed in the player |
artist | string | Artist name displayed in the player |
url | string | Local path to an .mp3 file, or a full YouTube URL |
cover | string | Path to album art image. Leave '' to use the default icon |
Both local MP3 files and YouTube stream URLs are supported. Set music: [] to hide the music player entirely.
Server Rules
rules: [
{
title: 'Respect Everyone',
description: 'Treat all players and staff with respect.',
},
]
Each rule has a title and a description. Rules are displayed in a numbered modal when the Rules button is clicked. Add as many as you need.
Staff Team
staff: [
{
name: 'Foxer',
role: 'Owner & Lead Developer',
avatar: 'assets/images/foxer.gif',
},
]
| Field | Type | Description |
|---|---|---|
name | string | Staff member's name |
role | string | Their role/title |
avatar | string | Path to their avatar image. Leave '' to use the default icon |
External Shutdown (Advanced)
If you use ESX or another framework that controls when the loading screen closes, you can enable external shutdown via a convar in your server.cfg:
set loadscreen:externalShutdown "true"
When this is set, the loading screen will wait for the convar to be set to "true" before closing, instead of relying on the default engine signal.