How to install Nopixel 3.5 Full Server Discover the Ultimate NoPixel 3.5 Full Server for FiveM: Boost Your Gaming Experience Today with amazing nopixel server maps and mods! Introducing our top-of-the-line NoPixel 3.5 Full Server Download, designed to provide an unparalleled FiveM gaming experience. This NoPixel New Server is based on the latest QBCore [...]
In this premium QBCore guide, we focus on clarity, performance, and real-world developer workflows. You will get a clean mental model of the process, plus practical takeaways you can apply immediately.
Key Takeaways
- Follow a developer-friendly workflow for FiveM + QBCore.
- Use clean structure so your scripts stay maintainable.
- Improve stability with practical optimization habits.
- Ensure server behavior is predictable and easy to troubleshoot.
- Apply best practices immediately after reading.
Discover the Ultimate NoPixel 3.5 Full Server for FiveM: Boost Your Gaming Experience Today with amazing nopixel server maps and mods!
Introducing our top-of-the-line NoPixel 3.5 Full Server Download, designed to provide an unparalleled FiveM gaming experience. This NoPixel New Server is based on the latest QBCore Framework and is fully optimized to handle over 500 players simultaneously on both OneSync Infinity and Legacy. With premium maps, custom scripts, vehicles, and EUPs, our FiveM NoPixel Server Files are perfect for those seeking an high-impact role-playing environment.
Why Choose Our NoPixel 3.5 Server?
Our NoPixel 3.5 Server Files stand out among the competition, offering a plethora of unique features that require no additional developer support. Simply install it on your host, and you’re ready to invite players and start playing right away!
Not a Custom Core-based server, our package only includes pure, newer version QBCore compatible scripts. You’ll receive the base server identical to the Test server, which you can access after contacting us. We’ve thoroughly tested these servers for performance and features, ensuring they’re the ideal choice for premium, optimized FiveM experiences.
Incredible Features You’ll Love:
Heavily inspired by NoPixel 3.5 with the latest QBCore Framework
Over 20 Heists & Robberies and 6 types of drugs
More than 60 Jobs & Activities, including Police, EMS, Mechanic, Car Dealer, etc.
Enhanced Gang, Banking, Multiple Character & Spawning Systems
Refined UI, Job grades/ranks with Boss menus
Discord Integration, Rich presence (with Server Logs), and Anti-cheat
New EmoteMenu featuring Custom Emotes & 3000+ Dances like NoPixel
Exclusive Assets for an high-impact Experience:
Massive Clothing Pack with 15,000+ assets
Upgraded CAYO PERICO Island
Premium housing shells and Custom Job Vehicles
200+ Custom Vehicles (Including Premium Vehicles)
And more, perfect for any serious RP!
For a complete list of features, visit our page: NoPixel Inspired QBCore Roleplay Server
Elevate your gaming experience with our NoPixel 3.5 Full Server Download today and become a part of the proven role-playing community on FiveM!
Windows Installation
How to install FiveM Server on Windows
Database Configuration
Install XAMPP and HeidiSQL.
Start XAMPP and start the first two boxes, “Apache” and “MySQL”
Marking the checkbox will install the corresponding service on your machine
HeidiSQL
Open HeidiSQL, click the green circle with the plus sign and name it something
Press new to create a session
Rename this to whatever you’d like and press open
Artifact and txAdmin
Make a new folder on your desktop and name it whatever you want, download the latest recommended FiveM artifacts, then extract them to the folder you made
The webpage for downloading an artifact version
Double click on FXServer.exe to run it. Once loaded, it should open a web browser page
txAdmin is already bundled in with the FiveM artifacts so running the server starter will launch it
After you link your FiveM account, which it should do automatically, make a password. Then you will be greeted with step
txAdmin starting page after logging in
When you get to step number 3, click “Local Server Data”
Choosing a deployment type
When you get to step number 4, put your server-data folder path and clock next two times.
server-data path
Click Save & Start Server.
Go to keymaster and generate a key and paste in your server.cfg.
changing server license key
Then click “Save”
Now open settings of txadmin then FXServer and set Onesync to Legacy(Without infinity) and save settings.
Changing server to onesync legacy
Last Step is restart your server.
Once this is complete, we recommend Read Setting Permissions to configure your server.cfg with any players you’d like to give elevated permissions!
Setting Permissions
Learn how to configure permissions on your new QBCore server! Nopixel 3.5 Full Server
Server Config
At the bottom of your server.cfg file you will see a permissions section
## Permissions ##
add_ace group.admin command allow # allow all commands
{{addPrincipalsMaster}} # This is the way txAdmin assigns permissions to the server owner
# Resources
add_ace resource.qb-core command allow # Allow qb-core to execute commands
# Gods
add_ace qbcore.god command allow # Allow all commands
# Inheritance
add_principal qbcore.god group.admin # Allow gods access to the main admin group used to get all default permissions
add_principal qbcore.god qbcore.admin # Allow gods access to admin commands
add_principal qbcore.admin qbcore.mod # Allow admins access to mod commands
Different types of identifiers
FiveM ID
Rockstar license (what qbcore uses)
Discord ID
To get a FiveM or GTA license you can look up the player on your txAdmin web panel
If they are currently connected to the server, you will get all available identifiers
After gathering the desired identifiers, go to your server.cfg and add the Players section as shown below
Δ Note : qbcore.god and group.admin share the same permissions you can use either one.
## Permissions ##
add_ace group.admin command allow # allow all commands
{{addPrincipalsMaster}} # This is the way txAdmin assigns permissions to the server owner
# Resources
add_ace resource.qb-core command allow # Allow qb-core to execute commands
# Gods
add_ace qbcore.god command allow # Allow all commands
# Inheritance
add_principal qbcore.god group.admin # Allow gods access to the main admin group used to get all default permissions
add_principal qbcore.god qbcore.admin # Allow gods access to admin commands
add_principal qbcore.admin qbcore.mod # Allow admins access to mod commands
# Players
add_principal identifier.license:xxxxxx qbcore.god # Player Name
add_principal identifier.license:xxxxxx qbcore.admin # Player Name
add_principal identifier.license:xxxxxx qbcore.mod # Player Name
Setting users permissions in the server
While you have permissions you can set users permissions either using commands or the admin menu
Setting permissions using the command
While in the server type in the command /addpermission [id] [addpermissions]
It will look something like this /addpermission 1 god
Setting permissions through the admin menu
In chat enter the command /admin
Access the “Player Management” tab and select the player you want to give permissions to
Locate a menu item called “Permissions”
Set the user group for that user then press “submit”
Allowing commands to specific permissions
In qb-core/config.lua find QBConfig.Server.Permissions = {'god', 'admin', 'mod'}
Located at the bottom of this picture
Here you can add more groups, lets say I wanted to make one for police I would have QBConfig.Server.Permissions = {'god', 'admin', 'mod', 'leo'}
Then in my server.cfg I would but below admins like so add_principal identifier.license:xxxxxxx qbcore.leo #players name
Making a command for only leo can access would look like
QBCore.Commands.Add('spikes', 'Place spike strips', {}, false, function(source)
-- Run code
end, 'leo')
So now when you add this command using the qbcore function it will automatically generate an ace called qbcore.leo with an ace of command.spikes! Now you can add a principal of a player with add_principal identifier.license:xxxx qbcore.leo and now that command will be restricted to only those with that permission as well as remove the chat suggestion for anyone without this permission! Imagine if you used this when setting a players job or when a player clocked in/out to dynamically remove the permission. This also completely eliminates the need to ever check job permissions on a command like this because the command itself will already be restricted (Nopixel 3.5 Full Server)
Script Optimization
Learn how to write optimized code!
General Practices
Localize as many functions and variables as possible. Lua can read them faster
myVariable = false -- Don't use this
local myVariable = false -- Use this
function someFunction() -- Don't use this
print('Im a global function!')
end
local function someFunction() -- Use this
print('Im a local function!')
end
Instead of using table.insert use tableName[#tableName+1] = data
function someFunction()
local table = {}
table.insert(table, {}) -- Don't use this
table[table+1] = {} -- Use this
end
Instead of using if something ~= nil use if something then. This method checks for nil and/or false at the same time
function someFunction()
local bool = nil
if bool ~= nil then -- Don't use this
print('bool was not nil but also could be false!')
end
if bool then -- Use this
print('bool was neither nil or false!')
end
end
If you are creating a function or an event, make it so that it can be used in different scenarios with different variables. Keep it universal basically
local function someFunction(param1, param2, param3)
print('Im a function that accepts 3 parameters which allows for multiple conditions!')
if param1 == 'something' then
print('I met condition number one!')
elseif param2 == 'somethingelse' then
print('I met condition number two!')
elseif param3 == 'somethingelsemore' then
print('I met condition number three!')
end
end
RegisterNetEvent('someEvent', function(param1, param2, param3)
print('Im an event that accepts 3 parameters which allows for multiple conditions!')
if param1 == 'something' then
print('I met condition number one!')
elseif param2 == 'somethingelse' then
print('I met condition number two!')
elseif param3 == 'somethingelsemore' then
print('I met condition number three!')
end
end)
When writing code use what’s known as “short returns” for failed conditions
local function someFunction(param1, param2, param3)
if not param1 then return end
print('I met condition number one!')
if not param2 then return end
print('I met condition number two!')
if not param3 then return end
print('I met condition number three!')
end
Native Usage
Always replace GetPlayerPed(-1) with PlayerPedId()
local function someFunction()
local ped = GetPlayerPed(-1) -- Don't use this
local ped = PlayerPedId() -- Use this
end
Always replace GetDistanceBetweenCoords with lua math aka #(vector3 - vector3)
local function someFunction()
local ped = PlayerPedId()
local pCoords = GetEntityCoords(ped)
local coords = vector3(-29.53, -1103.67, 26.42)
local dist = GetDistanceBetweenCoords(pCoords, coords, true) -- Don't use this
local dist = #(pCoords - coords) -- Use this
if dist > 5 then
print('Im within 5 distance units of the coords!')
end
end
Loops
Control your while loops and when they run
local function exampleLoop()
CreateThread(function()
while listen do
print('running while loop only when needed')
Wait(1)
end
end)
end
local listen = false
CreateThread(function()
LoopZone = CircleZone:Create(vector3(-851.63, 74.36, 51.86), 5.0, {
name = "ExampleLoop",
debugPoly = true,
})
LoopZone:onPlayerInOut(function(isPointInside)
if isPointInside then
listen = true
exampleLoop() -- Initiate loop
else
listen = false -- turns off when your outside the zone
end
end)
end)
If you do have to create a thread that includes a “while” loop, always avoid using “while true do” if able. If you have to use this, follow the next tip, and it won’t impact performance as much
Control your thread times by using a variable that changes the wait time retroactively. So you can set the thread wait time to say 1000ms which checks for your if statement every second and if it makes it into the statement you can lower the wait time by just changing the variable value. Wait(sleep) (Nopixel 3.5 Full Server)
CreateThread(function()
while true do
Wait(1)
inRange = false
local pos = GetEntityCoords(PlayerPedId())
if #(pos - vector3(-829.11, 75.03, 52.73))
inRange = true
print('Im in range and the loop runs faster')
else
print('Im not in range so i run only onces every 2.5 seconds')
end
if not inRange then
Wait(2500)
end
end
end)
If you have job specific loops, make sure they only apply to players with that job. There’s no reason for someone who is not a cop to be running a loop on their machine that does not apply to them
local function exampleJobLoop()
local job = QBCore.Functions.GetPlayerData().job.name
CreateThread(function()
while job == 'police' do
print('im a policeman!')
Wait(1)
end
end)
end
Security
A surplus amount of security in a code is not a bad thing. Don’t be afraid to add in multiple if checks or create random variables to pass through your events
Never do any type of transaction with the player regarding money or items on the client side of a resource
Event Handlers
When setting variables inside your resource, handlers come in especially handy due to not needing to constantly run checks
-- These are client-side examples
local isLoggedIn = false
local PlayerData = {}
AddStateBagChangeHandler('isLoggedIn', nil, function(_, _, value) -- FiveM native method
if value then
isLoggedIn = true
PlayerData = QBCore.Functions.GetPlayerData()
else
isLoggedIn = false
PlayerData = {}
end
end)
AddEventHandler('QBCore:Client:OnPlayerLoaded', function() -- Don't use this with the native method
isLoggedIn = true
PlayerData = QBCore.Functions.GetPlayerData()
end)
RegisterNetEvent('QBCore:Client:OnPlayerUnload', function() -- Don't use this with the native method
isLoggedIn = false
PlayerData = {}
end)
RegisterNetEvent('QBCore:Client:OnJobUpdate', function(JobInfo)
PlayerData.job = JobInfo
end)
RegisterNetEvent('QBCore:Player:SetPlayerData', function(val)
PlayerData = val
end)
Miscellaneous Guides
Keymapping
What is Keymapping?
Allows you to take a REGISTERED command, using the RegisterCommand native, and apply a key binding to it. So instead of having to type in the slash command in the chat, you can just press a single key and execute it. This does NOT work with QBCore.Commands.Add.
Example
RegisterKeyMapping(‘togglelocks’, ‘Toggle Vehicle Locks’, ‘keyboard’, ‘L’)
The purpose of this system is so that players can completely customize their experience on the server and not be subjected to hard-coded key binds.
How to change a bind
Open your pause menu in game
Navigate to settings
Select settings —> keybinds
Select FiveM
Find the command you want to change the key for and select it.
Press the desired key you’d like and that’s it
Weapon License
By default only a citizen ID and drivers license is redeemable from City Hall. For a player to get a weapons license he needs to see a police officer who will do /grantlicense [id] weapon for that player to be “granted” access in City Hall.
Police can also do /revoke [id] [licenseType] to revoke a players ability to purchase a hard copy of the specified license. Revoking the license will not remove the hard copy from the players’ inventory if they have one, it will simply remove the ability for them to purchase a new one.
If you would like the players to be granted by default look for this set of code in qb-core/server/player.lua
PlayerData.metadata["licences"] = PlayerData.metadata["licences"] ~= nil and PlayerData.metadata["licences"] or {
["driver"] = true,
["business"] = false,
["weapon"] = false
}
and change ["weapon"] = false to ["weapon"] = true
Once a player has been granted a weapons license they will be able to purchase weapons from gun stores that have the requiresLicense variable set to true. To restrict weapon sales to individuals with a weapons license see the example config below from qb-shops/config.lua
[4] = {
name = "weapon_pistol",
price = 2500,
amount = 5,
info = {},
type = "item",
slot = 4,
requiresLicense = true
},
Adapting Your Scripts
This is not an easy thing to describe because the code varies so you have to use your own judgement sometimes. With infinity enabled, there is what is called a “scope” and the client (player/you) has a “scope range”. Now everything INSIDE this range the client will load via their machine but if something is OUTSIDE the scope then the client is not aware of it. Easiest example being if i am standing in the city and another player is standing in paleto, my machine has no idea that player is there at all. So if i had a teleport to player that was not setup for this then when i tried to go to them i would go to myself because i can not get the other players coords. Now the server DOES know that players coords so what we have to do as developers is gather that information from the server and send it to the client side. Also another big deal is obviously since we do not know about players outside of our scope, if we need a full list of players in the server then we need to get that info from the server as well. (Nopixel 3.5 Full Server)
Getting The Coords
This one is relatively simple, you can use the native GetEntityCoords on the server side and then pass that through an event or a callback. If you want more info on how to use this native then you can view that here
Getting the Players
To get a list of players on the server we must use either a native that is like this
for _, player in ipairs(GetActivePlayers()) do
local ped = GetPlayerPed(player)
-- do stuff
end
Using the QB function you can do it like this
for _, player in pairs(QBCore.Functions.GetPlayers()) do
local ped = GetPlayerPed(player)
-- do stuff
end
Spawning A Vehicle At A Distance
Note : If you have a script that requires you to create a vehicle at a distance that is outside the infinity scope, you must use the code like below on the SERVER side
local SpawnPoints = {
vector4(-1327.479736328, -86.045326232910, 49.31, 52),
vector4(-2075.888183593, -233.73908996580, 21.10, 52),
vector4(-972.1781616210, -1530.9045410150, 4.890, 52),
vector4(798.18426513672, -1799.8173828125, 29.33, 52),
vector4(1247.0718994141, -344.65634155273, 69.08, 52),
}
QBCore.Functions.CreateCallback('qb-truckrobbery:server:spawntruck', function(source, cb)
local coords = SpawnPoints[math.random(#SpawnPoints)]
local CreateAutomobile = GetHashKey("CREATE_AUTOMOBILE")
local truck = Citizen.InvokeNative(CreateAutomobile, GetHashKey('stockade'), coords, coords.w, true, false)
while not DoesEntityExist(truck) do
Wait(25)
end
if DoesEntityExist(truck) then
local netId = NetworkGetNetworkIdFromEntity(truck)
cb(netId)
else
cb(0)
end
end)
Note : This will spawn the entity and callback the entity id which you can then use on the client side to check if the entity exists. It will NOT exist until a client(player) gets within range of it! While a client is NOT in range, the server “owns” the entity. So whenever a client gets into infinity range it then takes ownership of that entity and can be used by them. I know this one is a bit confusing but there’s no good way to explain it.
Database Connection
Note : txAdmin does this automatically already but if needed then in your server.cfg put this and fill it in with the correct information. For the database wrapper oxmysql
Installation
Download the latest build of oxmysql (not the source code).
Extract the contents of the archive to your resources folder.
Start the resource near the top of your resources in your server.cfg.
If you have a lot of streamed assets, load them first to prevent timing out the connection.
Configuration
You can change the configuration settings by using convars inside your server.cfg. Reference the following for an idea of how to set your connection options. You must include one of the following lines, adjusted for your connection and database settings.
set mysql_connection_string "mysql://root:12345@localhost/es_extended?charset=utf8mb4"set mysql_connection_string "user=root;database=es_extended;password=12345;charset=utf8mb4"
Certain special characters are reserved or blocked and may cause issues when used in your password. For more optional settings (such as multiple statements) you can reference pool.d.ts and connection.d.ts.
You can also add the following convars if you require extra information when testing queries.
set mysql_slow_query_warning 150set mysql_debug true
Using the UI
Before using the UI first you have to make sure you have the mysql_ui convar set to true:
set mysql_ui true
Also make sure that you have command ace permission access, then you should be able to use the mysql command in game to open up the UI and see your query data.
Nopixel 3.5 Full Server
Visual Studio Code
A free, lightweight, text editor with many extension options!
Download
Visit the Visual Studio Code website and download the program
Make sure you check the “Open with code” boxes!
Extensions
Sumneko lua extension
Gccfeli lua formatter
Prettier code formatter (JavaScript, TypeScript, CSS, HTML, Vue, JSX)
\FiveM natives
QBCore code snippets
Material icon theme (cosmetic only)
One Dark Pro (cosmetic only)
Fonts
Fira Code
Download the file, double-click the FiraCode.zip [544KB]
File -> Preferences -> Settings -> Font Family -> Fira Code
JetBrains Mono
Download the file, double-click the JetBrainsMono-2.242.zip [4MB]
File -> Preferences -> Settings -> Font Family -> JetBrains Mono
Extension Settings
You can search for these through File -> Preferences -> Settings
Sumneko
Built-in lua diagnostics
undefined-global
err-nonstandard-symbol
unknown-symbol
Trim trailing whitespace on file save
One Dark Pro
Selecting a theme
Opening a folder
You can also do File -> Open Folder…
Global Searching
Can be accessed via the magnifying glass or using the keyboard shortcuts Shift + CTRL + F (varies by user if you’ve changed them)
GitHub Integration
Must have git installed!
There is some configuring to do with these extensions but most of it is just signing into your GitHub account and exploring the “source control” tab on the left!
Extensions
Download the Git Extension Pack
Download GitHub Pull Requests and Issues
Sign up for GitHub Copilot and install (optional)
Useful Links
A list of helpful links relevant to developing on FiveM!
Lua 5.4 Reference Manual: https://www.lua.org/manual/5.4/
CFX lua: https://github.com/citizenfx/lua/blob/luaglm-dev/cfx/README.md
FiveM Windows artifacts https://runtime.fivem.net/artifacts/fivem/build_server_windows/master/****
FiveM docs: https://docs.fivem.net/docs/****
Setting up fxmanifest.lua https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest/****
Lua FiveM scripting guide: https://docs.fivem.net/docs/scripting-manual/runtimes/lua/****
C# FiveM Scripting Guide: https://docs.fivem.net/docs/scripting-manual/runtimes/csharp/****
JavaScript FiveM Scripting Guide https://docs.fivem.net/docs/scripting-manual/runtimes/javascript/****
FiveM Controls: https://docs.fivem.net/docs/game-references/controls/****
FiveM Blips https://docs.fivem.net/docs/game-references/blips/****
FiveM Markers https://docs.fivem.net/docs/game-references/markers/****
FiveM Ped Models https://docs.fivem.net/docs/game-references/ped-models/****
GTA V Props https://forge.plebmasters.de/
GTA V Assets (clothing) https://tobii.space/****
GTA V Vehicles https://www.gtabase.com/grand-theft-auto-v/vehicles
Stream Clothing: https://forum.cfx.re/t/how-to-stream-custom-clothes/167805
Console Commands: https://docs.fivem.net/docs/client-manual/console-commands/
FiveM Input Map Keys: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
Vehicle Meta File: https://forums.gta5-mods.com/topic/3850/tutorial-vehicles-meta****
Vehicle Handling File: https://forums.gta5-mods.com/topic/3842/tutorial-handling-meta
Setting up a server: https://docs.fivem.net/docs/server-manual/setting-up-a-server/****
Server commands/variables: https://docs.fivem.net/docs/server-manual/server-commands/****
Introduction to resources: https://docs.fivem.net/docs/scripting-manual/introduction/introduction-to-resources/****
Creating your first script in Lua: https://docs.fivem.net/docs/scripting-manual/introduction/creating-your-first-script/****
Creating your first script in C#: https://docs.fivem.net/docs/scripting-manual/introduction/creating-your-first-script-csharp/****
Creating your first script in JavaScript: https://docs.fivem.net/docs/scripting-manual/introduction/creating-your-first-script-javascript/****
Working with events: https://docs.fivem.net/docs/scripting-manual/working-with-events****
User interfaces with NUI: https://docs.fivem.net/docs/scripting-manual/nui-development****
Using scaleform: https://docs.fivem.net/docs/scripting-manual/using-scaleform****
Using the profiler: https://docs.fivem.net/docs/scripting-manual/debugging/using-profiler/****
Resource manifest: https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest****
Client functions: https://docs.fivem.net/docs/scripting-reference/client-functions****
Server functions: https://docs.fivem.net/docs/scripting-reference/server-functions****
Client events: https://docs.fivem.net/docs/scripting-reference/events/client-events****
Server events: https://docs.fivem.net/docs/scripting-reference/events/server-events****
Core events: https://docs.fivem.net/docs/scripting-reference/events/list/****
Convars: https://docs.fivem.net/docs/scripting-reference/convars****
Game references ie, controls, keys, blips, markers, etc: https://docs.fivem.net/docs/game-references/****
Support/Issues/Debugging/FAQ: https://docs.fivem.net/docs/support/****
Full native list:https://docs.fivem.net/natives/
What You Will Learn
This blog post, Nopixel 3.5 Full Server inspired fivem server with qbcore framework, is written to help you improve how your FiveM server builds and evolves with QB Core and ESX. Instead of vague advice, it focuses on decisions you can implement, validate, and keep maintainable during real updates.
You will learn how to translate the idea from the post into an install-ready plan, how to confirm dependencies and compatibility, and how to reduce conflicts that often appear when resources change. The goal is to help admins and developers ship reliably without slowing down server operations.
Why this matters
Better documentation and structured development reduce downtime and prevent regressions. When your team follows a consistent workflow, your resources stay stable and your players get to enjoy updates sooner.
FAQ
Is this for QB Core or ESX? The post is designed for FiveM development, with emphasis on QB Core compatibility and practical ESX integration patterns.
How do I apply this in my next update? Start with staging testing, follow the compatibility checks described, and then adapt the final steps to your server’s current framework version.