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
| Option | What it does | Default |
|---|
Config.Locale | Language 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.Debug | true = 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
| Option | What it does | Default |
|---|
Config.Command | Command that opens the party panel (Party, Find, Friends, Chat tabs), for all players. Without /. | 'party' |
Config.PanelKey | Key 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
| Option | What it does | Default |
|---|
Config.AcePermission | ACE permission needed to use the party ('' = everyone). Example: 'group.vip'. | '' |
4. Anti-spam
| Option | What it does | Default |
|---|
Config.RateLimit | General 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
| Field | What it does | Default |
|---|
maxMembers | Maximum players in a party, leader included (from 2 to 10). | 5 |
membersCanInvite | true = members too, not only the leader, can invite. | false |
newLeader | Who 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
| Field | What it does | Default |
|---|
expireSeconds | Seconds to accept an invite (or a join request) before it expires. | 30 |
nearDistance | Metres for "invite the nearby player": the nearest one, in the same routing bucket. | 5.0 |
perMinute | Maximum invites and join requests per minute per player. | 6 |
focus | true = 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.
| Field | What it does | Default |
|---|
enabled | false = Find tab off. On: a party can set "looking for members", a player without a party "looking for a party". | true |
noteMaxLength | Maximum 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).
| Field | What it does | Default |
|---|
enabled | false = Friends tab off. | true |
max | Maximum friends per player. | 50 |
maxPending | Maximum pending friend requests (sent + received). | 10 |
perMinute | Maximum 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.
| Field | What it does | Default |
|---|
enabled | false = party chat and private messages off. | true |
pmCommand | Command for a private message: /pm <id> <text> ('' = no command; PMs stay in the panel). | 'pm' |
maxLength | Maximum characters of a message (the server cuts the rest and cleans the text). | 160 |
history | Last party messages kept in memory (not saved) for who opens the chat later; 0 = none. | 30 |
perWindow / windowMs | At most perWindow messages every windowMs milliseconds per player. | 4 every 5000 |
pmFriends | true = PMs also to online friends who are not in the party. | false |
toastMs | Milliseconds 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.
| Field | What it does | Default |
|---|
enabled | true = members of the same party do not damage each other. It is the starting value of every new party. | true |
leaderCanToggle | true = 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).
| Field | What it does | Default |
|---|
modes | Modes 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 |
defaultMode | Mode of a new party (must be in modes). | 'free' |
distance | Metres: 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.
| Field | What it does | Default |
|---|
enabled | false = boxes off for everyone. | true |
toggleCommand | Command 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' |
side | Side of the screen: 'left' or 'right'. | 'left' |
offsetX / offsetY | Distance from the side edge / from the top, in % of the screen. | 1.0 / 30.0 |
scale | Size of the boxes (1.0 = normal). | 1.0 |
showSelf | true = your own box is shown too. | true |
showArmor | true = armour bar under the health. | true |
headshot | true = player photo (taken only for nearby members); false = initial of the name. | true |
farDistance | Metres beyond which a member is shown as "far". | 150.0 |
vitStep | Health/armour/mana are sent to the others only if they change by at least this value (out of 100). Higher = less network. | 2 |
vitMinMs | And 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
Where the level shown in the boxes comes from.
| Field | What it does | Default |
|---|
source | 'auto' = nc_rift if started, otherwise no level; 'export'; 'statebag'; 'none' = no level. | 'auto' |
resource / export | Server export that receives the player id and returns a number (for 'auto' and 'export'). | 'nc_rift' / 'GetPlayerXP' |
stateKey | Key of the player state bag with the number (for 'statebag'). | 'level' |
xpPerLevel | Above 0: the number is EXP and the level = EXP / xpPerLevel + 1. 0 = the number is already the level. | 1000 |
Where the mana comes from: each player reads their own and sends it to the mates. Without mana the bar is hidden.
| Field | What it does | Default |
|---|
source | 'none' = no mana; 'export'; 'statebag'. | 'none' |
resource / export | Client export of another resource that returns the current mana (and, if it has it, the maximum as second value). | '' / '' |
stateKey | Key of the player state bag with the current mana (for 'statebag'). | 'mana' |
maxStateKey | Key with the maximum mana ('' = use max). | '' |
max | Maximum 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.
| Field | What it does | Default |
|---|
enabled | false = no symbol. | true |
distance | Maximum metres at which it is seen (lower = less CPU, maximum 100). | 40.0 |
hideBehindWalls | true = disappears when the mate is behind a wall. | true |
scale | Size of the symbol (1.0 = normal). | 1.0 |
height | Metres above the head. | 0.45 |
memberIcon / leaderIcon | Member 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".
| Field | What it does | Default |
|---|
enabled | false = no blips. | true |
intervalMs | Every how many milliseconds the server sends the positions of the far mates (higher = less CPU). | 3000 |
sprite / color / scale | Look of the blip (GTA blip numbers: sprite 1 = circle, color 3 = blue). | 1 / 3 / 0.8 |
leaderSprite | Leader blip (0 = like the others). | 0 |
16. Interface — Config.UI
| Field | What it does | Default |
|---|
Theme | Style of ALL the graphics (panel, boxes, invites, symbol): 'fantasy', 'scifi', 'horror', 'steampunk', 'dieselpunk'. | 'fantasy' |
followRift | true = use the same theme as nc_rift if it is started (otherwise Theme). | true |
Notify | Notices 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' |
NotifyMs | How long a 'nui' notice stays on screen, in milliseconds. | 4500 |
scale | 'auto' (follows the screen height, 1080p = 1) or a number. | 'auto' |
multiplier | Multiplies the scale (e.g. 1.1 = 10% bigger). | 1.0 |
Config.Sounds | GTA 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
| Option | What it does | Default |
|---|
Config.Bridge | Framework and player names (fields below). The code is in the bridge/ folder (open files). | — |
Config.Integrations | Notices 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:
| Field | What it does | Default |
|---|
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' |
Name | Name 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' |
Inventory | Where 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.