NoPixel 3.5 Full Server

Nopixel 3.5 Full Server inspired fivem server with qbcore framework

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 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 immersive 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.

 

NoPixel 3.5 Full Server

 

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 Immersive 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 ultimate 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)) < 10.0 then
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
Make sure you check the “Open with code” boxes!
Extensions
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

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart
Scroll to Top