SALESup to -59%Sales are live in the shop: see the deals
← All scripts

NC Party — Configuration guide

This guide explains what every option of config.lua does. Everything is changed from the config: no need to touch the code. The server decides everything (who is in the party, invites, leader, damage, loot): players only send requests, with rate limits. Distances in metres, times in milliseconds (Ms) or seconds (Seconds) as the name says.

1. General

OptionWhat it doesDefault
Config.LocaleLanguage of the texts: it en de fr es pt zh ja ko (Chinese, Japanese and Korean show only in the panel and the boxes). A missing key uses English.'it'
Config.Debugtrue = writes the [DEBUG] messages in the console, turns on the /pt_* test commands and the data/debug.log file with the hits between players (test tools, keep it off on the live server).false

2. Commands and keys

OptionWhat it doesDefault
Config.CommandCommand that opens the party panel (Party, Find, Friends, Chat tabs), for all players. Without /.'party'
Config.PanelKeyKey that opens the panel ('' = no key). Each player can change it in Settings > Key Bindings > FiveM. Examples: 'F6', 'P'.''

The boxes command is Config.Hud.toggleCommand (section 12), the PM one is Config.Chat.pmCommand (section 9).

3. Permissions

OptionWhat it doesDefault
Config.AcePermissionACE permission needed to use the party ('' = everyone). Example: 'group.vip'.''

4. Anti-spam

OptionWhat it doesDefault
Config.RateLimitGeneral limit of the requests to the server: at most maxRequests every windowMs milliseconds per player. Invites, friends and chat also have their own limit (sections 6, 8, 9). Over the limit the request is refused and the reason goes to the console.5 every 2000

5. Party — Config.Party

FieldWhat it doesDefault
maxMembersMaximum players in a party, leader included (from 2 to 10).5
membersCanInvitetrue = members too, not only the leader, can invite.false
newLeaderWho becomes leader when the leader leaves: 'oldest' (the member who joined first) or 'random'. The party is disbanded when only one person is left.'oldest'

6. Invites — Config.Invite

FieldWhat it doesDefault
expireSecondsSeconds to accept an invite (or a join request) before it expires.30
nearDistanceMetres for "invite the nearby player": the nearest one, in the same routing bucket.5.0
perMinuteMaximum invites and join requests per minute per player.6
focustrue = when an invite, a join request or a friend request arrives the cursor shows: Accept / Refuse can be clicked at once (Esc = refuse). No answer = nobody joins. false = the window says to open the panel.true

7. Party finder — Config.Find

The leader sets the party to "looking for members" (with a note), a player without a party sets "looking for a party". The list reaches only who has the Find tab open. "Ask to join" sends the leader a request to accept (same expiry and same per-minute limit as the invites, Config.Invite). You leave the list by yourself when the party is full, you join a party, you leave the server or if enabled becomes false.

FieldWhat it doesDefault
enabledfalse = Find tab off. On: a party can set "looking for members", a player without a party "looking for a party".true
noteMaxLengthMaximum characters of the note (e.g. "need a tank"). The server cuts the rest and removes < >.60

8. Friends — Config.Friends

Friends list saved on the server (resource KVP, no database), per player licence. You add an online player (by id): they receive the request to accept or refuse; if they had already asked you, adding them counts as accepting. When a friend joins the server you get the "is online" notice. The max and maxPending limits also apply to whoever receives the request (full list = request refused).

FieldWhat it doesDefault
enabledfalse = Friends tab off.true
maxMaximum friends per player.50
maxPendingMaximum pending friend requests (sent + received).10
perMinuteMaximum friend actions (add, accept, refuse, remove) per minute per player.10

9. Chat and PM — Config.Chat

The chat reaches only the party members; a PM only whoever receives it and whoever sends it (to a party mate, or to an online friend if pmFriends = true). Chat and PM share the same perWindow limit. PMs are not kept in memory; the last chat messages are lost when the party is disbanded or the resource restarts.

FieldWhat it doesDefault
enabledfalse = party chat and private messages off.true
pmCommandCommand for a private message: /pm <id> <text> ('' = no command; PMs stay in the panel).'pm'
maxLengthMaximum characters of a message (the server cuts the rest and cleans the text).160
historyLast party messages kept in memory (not saved) for who opens the chat later; 0 = none.30
perWindow / windowMsAt most perWindow messages every windowMs milliseconds per player.4 every 5000
pmFriendstrue = PMs also to online friends who are not in the party.false
toastMsMilliseconds of the short on-screen notice for a message when the panel is closed (0 = no notice).4000

10. No friendly fire — Config.NoFriendlyFire

Members of a party with the block on do not damage each other: firearms, melee and explosions (grenades, railgun). The server cancels the hits between mates and every member is put in a GTA "team" of the party with friendly fire off; leaving the party everything goes back as before and damage with other players stays normal. The leader turns it off or back on for their party only if leaderCanToggle = true; all the members get the notice. If another resource uses the GTA teams (SetPlayerTeam) or changes friendly fire, nc_party sets it again every few seconds while the party exists.

FieldWhat it doesDefault
enabledtrue = members of the same party do not damage each other. It is the starting value of every new party.true
leaderCanToggletrue = the leader can turn it off/on for their party from the panel.true

11. Loot — Config.Loot

How the loot that other resources pass to nc_party is split (for example the rewards of mobs, bosses and rifts of nc_rift).

FieldWhat it doesDefault
modesModes the leader can choose (remove the ones you don't want): 'free' = whoever takes it, 'round' = in turn, 'random' = at random, 'split' = money in equal parts (the rest to whoever takes it) and items in turn, 'leader' = all to the leader (if near, otherwise to whoever takes it).all 5
defaultModeMode of a new party (must be in modes).'free'
distanceMetres: only members within this distance (from the loot point, for example where the boss died, or from whoever takes it) and in the same routing bucket get loot.60.0

12. Side boxes — Config.Hud

One box per member: photo, name, level, health, armour, mana. The leader is always on top. Without a party nothing shows.

FieldWhat it doesDefault
enabledfalse = boxes off for everyone.true
toggleCommandCommand to hide/show the boxes ('' = no command). Each player's choice stays saved on their PC. Symbols and blips stay (they have their own options).'partyhud'
sideSide of the screen: 'left' or 'right'.'left'
offsetX / offsetYDistance from the side edge / from the top, in % of the screen.1.0 / 30.0
scaleSize of the boxes (1.0 = normal).1.0
showSelftrue = your own box is shown too.true
showArmortrue = armour bar under the health.true
headshottrue = player photo (taken only for nearby members); false = initial of the name.true
farDistanceMetres beyond which a member is shown as "far".150.0
vitStepHealth/armour/mana are sent to the others only if they change by at least this value (out of 100). Higher = less network.2
vitMinMsAnd not more often than these milliseconds.500

How they look: the leader has the crown and is always first; the mana bar appears only if the server has mana (section 13); "Far" = more transparent, "Down" = empty health and faded photo, "Disconnected" = no bars. Colours come from the theme (Config.UI.Theme): health like the nc_rift boss bar, armour and mana from the --bb-arm and --bb-mana variables of the nc_bridge/web/themes/<theme>.css files (they can be changed there). With side = 'right' the boxes are under the notices on the right: if they touch, raise offsetY.

13. Level and mana

Config.Level (server side)

Where the level shown in the boxes comes from.

FieldWhat it doesDefault
source'auto' = nc_rift if started, otherwise no level; 'export'; 'statebag'; 'none' = no level.'auto'
resource / exportServer export that receives the player id and returns a number (for 'auto' and 'export').'nc_rift' / 'GetPlayerXP'
stateKeyKey of the player state bag with the number (for 'statebag').'level'
xpPerLevelAbove 0: the number is EXP and the level = EXP / xpPerLevel + 1. 0 = the number is already the level.1000

Config.Mana (client side)

Where the mana comes from: each player reads their own and sends it to the mates. Without mana the bar is hidden.

FieldWhat it doesDefault
source'none' = no mana; 'export'; 'statebag'.'none'
resource / exportClient export of another resource that returns the current mana (and, if it has it, the maximum as second value).'' / ''
stateKeyKey of the player state bag with the current mana (for 'statebag').'mana'
maxStateKeyKey with the maximum mana ('' = use max).''
maxMaximum mana when the resource does not give it.100

Another mana system? You can change the OpenClient.GetMana function in the open file open/client/mana.lua (it must return the current and maximum mana, or nothing if the server has no mana). Mana is read only while the player is in a party with at least one mate.

14. Symbol over the head — Config.Marker

Symbol over the mates' heads: only the party members see it. The leader has a different symbol. It is drawn only for nearby mates, on screen and (with hideBehindWalls) not behind a wall; if none must be drawn the resource does not work every frame. The icons are in the nc_party_ui.ytd file of the nc_assets resource, one per theme (colours of the same theme as the boxes) and per shape; a little smaller on far mates.

FieldWhat it doesDefault
enabledfalse = no symbol.true
distanceMaximum metres at which it is seen (lower = less CPU, maximum 100).40.0
hideBehindWallstrue = disappears when the mate is behind a wall.true
scaleSize of the symbol (1.0 = normal).1.0
heightMetres above the head.0.45
memberIcon / leaderIconMember and leader icon, in the style of the chosen theme: 'gem', 'crown', 'star', 'arrow' (arrow pointing down). A wrong name = gem / crown.'gem' / 'crown'

15. Minimap blips — Config.Blips

A blip with the name for every mate, even when far away. Near (in your game range) the blip follows the mate by itself; far (beyond about 400 m or in another dimension / routing bucket) it moves to the position sent by the server every intervalMs. The server works only while at least one party exists. In the map legend the mates are under "Other players".

FieldWhat it doesDefault
enabledfalse = no blips.true
intervalMsEvery how many milliseconds the server sends the positions of the far mates (higher = less CPU).3000
sprite / color / scaleLook of the blip (GTA blip numbers: sprite 1 = circle, color 3 = blue).1 / 3 / 0.8
leaderSpriteLeader blip (0 = like the others).0

16. Interface — Config.UI

FieldWhat it doesDefault
ThemeStyle of ALL the graphics (panel, boxes, invites, symbol): 'fantasy', 'scifi', 'horror', 'steampunk', 'dieselpunk'.'fantasy'
followRifttrue = use the same theme as nc_rift if it is started (otherwise Theme).true
NotifyNotices when Config.Integrations.notify is not started: 'nui' = our own in the theme (they also write Chinese, Japanese, Korean), 'native' = GTA notification (does not write zh/ja/ko).'nui'
NotifyMsHow long a 'nui' notice stays on screen, in milliseconds.4500
scale'auto' (follows the screen height, 1080p = 1) or a number.'auto'
multiplierMultiplies the scale (e.g. 1.1 = 10% bigger).1.0
Config.SoundsGTA sounds (no files): enabled = false turns all off; invite = invite, join request or friend request; chat = a mate writes in the party chat; pm = someone sends you a private message (chat and pm at most one per second). name / set = PlaySoundFrontend sound and soundset ('' = off).invite = 'CHALLENGE_UNLOCKED' / 'HUD_AWARDS', chat = 'SELECT' / 'HUD_FRONTEND_DEFAULT_SOUNDSET', pm = 'Text_Arrive_Tone' / 'Phone_SoundSet_Default'

17. Integrations

OptionWhat it doesDefault
Config.BridgeFramework and player names (fields below). The code is in the bridge/ folder (open files).—
Config.IntegrationsNotices through another resource, only if it is started (it receives text and type 'info'/'error'); empty = Config.UI.Notify notices (section 16). See the commented example in the config.empty

Config.Bridge:

FieldWhat it doesDefault
Framework'auto' = finds it by itself (Qbox, then QBCore, then ESX, otherwise no framework); 'qbx', 'qb', 'esx', 'standalone' to force it. If the forced one is not started it goes back to 'auto' (notice in the console). nc_party also works without a framework.'auto'
NameName shown to the others: 'character' = character name from the framework (if missing, the FiveM name); 'player' = always the FiveM name. At most 32 characters, without < >.'character'
InventoryWhere the loot split by nc_party goes (Distribute export, for example the nc_rift rewards): 'auto' = ox_inventory, then qb-inventory, then the framework inventory (Qbox, QBCore, ESX); 'ox_inventory', 'qb-inventory', 'framework' to force it; 'none' = nc_party gives nothing (the calling resource gets ok = false and gives it itself). Money always goes to the framework ('money'/'cash' = cash, 'bank', 'black_money'...); without a framework but with ox_inventory only cash, as the money item. If the chosen one is not started: nothing is given (notice in the console). Other inventories: change NCB.GiveItem / NCB.GiveMoney in nc_bridge/lib/inventory.lua (open file).'auto'

Note: the GTA notification does not write Chinese, Japanese and Korean; with Config.Locale 'zh', 'ja' or 'ko' keep Config.UI.Notify = 'nui' (nc_party's themed notices write them).

The full guide in 9 languages is also in the resource's docs/ folder.