Repository files navigation

prp-bridge

A framework bridge for FiveM resources in the Prodigy Studios ecosystem. Instead of writing support for multiple frameworks, inventories, or phone systems directly in each script, resources use prp-bridge to get a unified API that is independent of the underlying tech stack.

Dependencies

Installation

  1. Place prp-bridge in your resources folder.
  2. Add ensure prp-bridge to server.cfgbefore any resources that depend on it.
  3. Configure config.lua (see section below).
  4. Start the server.

Configuration (config.lua)

BridgeConfig= {
VersionCheck=true, -- check resource version on startDebug=false, -- enable debug logging-- Framework selectionFrameWork="qbx_core", -- qbx_core | ox_core | qb-core | es_extended | nd_core-- External systems (set any to false to disable that category)Inventory="ox_inventory", -- ox_inventory | origen_inventory | tgiann-inventory | falsePhone="lb-phone", -- lb-phone | yseries | yphone | yflip | npwd | roadphone | 17mov_phone | gksphone | meteo-phone | qs-smartphone-pro | falseTarget="ox_target", -- ox_target | qb-target | sleepless_interact | falseMedical="qbx_medical", -- qbx_medical | esx_ambulancejob | wasabi_ambulance | ars_ambulancejob | osp_ambulance | p-ambulancejob | nd_ambulance | qb-ambulancejob | randol_medical | tk_ambulancejob | falseDispatch="ps-dispatch", -- ps-dispatch | origen_police | cd_dispatch | rcore_dispatch | tk_dispatch | lb-tablet | aty_dispatch | codem-dispatch | core_dispatch | qs-dispatch | falseVehicleKeys="qbx_vehiclekeys", -- qbx_vehiclekeys | cd_garage | mVehicle | okokGarage | vehicles_keys | wasabi_carlock | nd_core | mrnewbvehiclekeys | Renewed-Vehiclekeys | qb-vehiclekeys | falseVehicleFuel="ox_fuel", -- ox_fuel | LegacyFuel | cdn-fuel | lc_fuel | qb-fuel | Renewed-Fuel | rcore_fuel | falseAppearance="illenium-appearance", -- illenium-appearance | fivem-appearance | qb-clothing | esx_skin | falseVoice="pma-voice", -- pma-voice | falseMinigames="prp-minigames", -- prp-minigames | false-- Group commandGroup= {
CommandEnabled=true,
CommandName="group",
},
-- Cooldown admin commandCooldowns= {
AdminCommandEnabled=true,
AdminCommandName="cooldowns",
AdminCommandRestriction="group.admin",
},
-- UniQueue systemUniqueue= {
MaxOverTimePriority=30,
AddOverTimePriorityTime=150, -- seconds between priority incrementsHoldQueuesOnStartTime=0, -- ms to hold all queues after server startPoliceStrengthPerPlayer=1,
PoliceJobs= { "lspd", "police", "bsco" },
},
-- Loot rarity weightsLootRarityWeights= {
["COMMON"] =800,
["RARE"] =150,
["EPIC"] =45,
["LEGENDARY"] =5,
},
}

Module Architecture

The modules/ folder contains implementations for external resources. Each category has its own subfolder:

modules/
├── fw/ # frameworks (qbx_core, ox_core, qb-core, es_extended, nd_core)
├── inv/ # inventories (ox_inventory, origen_inventory, tgiann-inventory)
├── target/ # targeting (ox_target, qb-target, sleepless_interact)
├── dispatch/ # dispatch (ps-dispatch, origen_police, cd_dispatch, rcore_dispatch, tk_dispatch, lb-tablet, aty_dispatch, codem-dispatch, core_dispatch, qs-dispatch)
├── medical/ # medical (qbx_medical, esx_ambulancejob, wasabi_ambulance, tk_ambulancejob, nd_ambulance, osp_ambulance, p-ambulancejob, randol_medical, qb-ambulancejob)
├── appearance/ # appearance (illenium-appearance, fivem-appearance, qb-clothing, esx_skin)
├── phone/ # phones (lb-phone, yseries, yphone, yflip, npwd, roadphone, 17mov_phone, gksphone, meteo-phone, qs-smartphone-pro)
├── vkeys/ # vehicle keys (qbx_vehiclekeys, qb-vehiclekeys, cd_garage, mVehicle, okokGarage, vehicles_keys, wasabi_carlock, nd_core, mrnewbvehiclekeys, Renewed-Vehiclekeys)
├── vfuel/ # vehicle fuel (ox_fuel, LegacyFuel, cdn-fuel, lc_fuel, qb-fuel, Renewed-Fuel, rcore_fuel)
├── voice/ # voice systems (pma-voice)
├── minigames/ # minigames
├── log/ # Discord logging
└── sound/ # sound system

Each module is loaded automatically based on the values in BridgeConfig. The selected module exposes a unified API available through the global bridge table.

For instructions on adding a new framework or system, see docs/how-to-add-new-module.md.


Utility Modules

allowlist

Manages player access to specific criminal activities. Data is persistent - stored in the database (criminal_allowlists table).

Server exports

FunctionDescription
GetAllowlist(stateId)Returns the allowlist table for a character
HasAllowlist(stateId, allowlist)Checks whether a character has the given allowlist
AddAllowlist(src, stateId, allowlist)Grants an allowlist to a character
RemoveAllowlist(src, stateId, allowlist)Revokes an allowlist from a character

Client export

FunctionDescription
IsAllowlisted(allowlist)Checks whether the local player has the given allowlist

Admin commands:/add_allowlist, /remove_allowlist


attachobject

Attaches non-networked objects to a player or vehicle (skeleton bones). Supports animations and particle effects (PTFX).

Server exports

FunctionDescription
RegisterObject(data)Registers an object template
UnregisterObject(objectName)Removes a registered template
CreateAttachObject(src, objectName, weaponData?)Attaches an object to a player; returns objectId
RemoveAttachObject(src, objectId)Detaches an object from a player
GetObjectsOnPlayer(src)Returns a list of objects attached to the player
ClearPlayerObjects(src, objectName?)Removes player's attached objects
CreateVehTempAttachObject(entity, objectData)Attaches an object to a vehicle
RemoveVehTempAttachObject(entity, objectId)Detaches an object from a vehicle
ClearVehTempAttachObjects(entity)Removes all objects from a vehicle

Client export

FunctionDescription
GetObjectHandle(objectId)Returns the entity handle of an attached object
ObjectData structure
{
objectName="string", -- unique name (required)modelHash=number | string, -- model hash or nameoffset=vector3,
rotation=vector3,
boneId=number | string,
disableCollision=boolean,
completelyDisableCollision=boolean,
isWeapon=boolean?,
dict=string?, -- animation dictionaryanim=string?, -- animation nameptfxAsset=string?,
ptfxName=string?,
ptfxOffset=vector3?,
ptfxRot=vector3?,
ptfxScale=number?,
ptfxColor=vector3?,
}

cooldowns

Global and per-character cooldown management.

Server exports

FunctionDescription
startGlobalCooldown(key, minutes)Starts a server-wide cooldown
startCooldownByIdentifier(identifier, key, minutes, allChars)Starts a per-character cooldown
startCooldownByPlayerId(playerId, key, minutes, allChars)Starts a cooldown by player ID
isCooldownActive(key)Checks whether a global cooldown is active
isCooldownActiveForIdentifier(identifier, key)Checks a character's cooldown

When a cooldown finishes, the server emits the event prp-bridge:cooldowns:finished.

Admin command:/cooldowns (cooldown management menu)


groups

A simple player grouping system for shared activities. Groups integrate with UniQueue and support invitations.

Server exports

FunctionDescription
CreateGroup(leaderSrc)Creates a group; returns the group object
GetGroupFromMember(src)Returns a group by player ID
GetGroupFromMemberByIdentifier(identifier)Returns a group by character identifier
GetGroupByUuid(uuid)Returns a group by UUID
GetGroupByPartyUuid(partyUuid)Returns the group associated with a UniQueue party
GetGroupIdFromMember(src)Returns the group UUID for a player
GetGroupPlayerIds(uuid)Returns a list of player IDs in the group
Group object methods
group:getUuid()
group:getPartyUuid()
group:setLeader(src)
group:getLeader() -- { identifier, src, characterName }group:addMember(src)
group:removeMember(src)
group:getMembers()
group:getMembersCount()
group:getMembersPlayerIds()
group:isSrcAMember(src)
group:isSrcALeader(src)
group:setActivity({ activityId, activityName })
group:getActivity()
group:clearActivity()
group:triggerEvent(eventName, ...)
group:isAnyoneOnline()
group:disband()
group:isInviting() /group:toggleInviting()
group:addPendingInvite(inviteUuid, targetSrc)
group:removePendingInvite(inviteUuid)
group:isPendingInviteValid(inviteUuid, targetSrc)
group:createUniqueueParty(partyType)
group:enterUniqueue(queueName)

Command:/group


pedinteractions

Places peds on the map with context menu interactions. Uses the ox_lib point system and the configured targeting system.

Client exports

FunctionDescription
AddPedInteraction(id, payload)Creates a ped interaction point
RemovePedInteraction(id)Removes an interaction point
PedInteractionPayload structure
{
model=number | string, -- ped modelcoords=vector3,
heading=number,
radius=number, -- interaction activation radiusoptions=table, -- target options (same format as bridge.target)component= { -- optional outfitcomponentId, drawableId, textureId, paletteId
},
anim= { -- optional ped animationanimDict, anim, blendIn, blendOut, duration, flag, playback,
lockX, lockY, lockZ
},
scenario=string?, -- task scenario (alternative to anim)weapon=number?, -- weapon hash to give the ped
}

propplacer

An interactive utility for manually placing props on the map (e.g. by an admin or an activity script).

Client export

-- Returns vector4(x, y, z, heading) or nil if cancelledexports["prp-bridge"]:PropPlacer(model, forceGround?, allowedMaterials?, maxDistance?)

Controls during placement:

  • Scroll - rotate
  • E - confirm placement
  • Backspace - cancel
  • H (debug mode) - display the surface material hash

sellshops

Registers locations where players can sell items. Internally uses an inventory stash system.

Server exports

FunctionDescription
RegisterSellShop(id, payload)Registers a sell shop location
OpenSellShop(src, id)Opens the shop for a player

sounds

Client-side playback of .ogg audio files. Available through the unified bridge API:

bridge.sound.play(soundName, volume?)
bridge.sound.playSpatial(soundName, coords, volume?, maxDistance?)

Place audio files in the sounds/ folder as *.ogg.


uniqueue

Queues players (or groups) for structured activities, enforces police presence requirements, and manages priorities.

Server exports

FunctionDescription
CreateQueue(name, type, requiredPolicePower, maxConcurrentTasks, cooldown)Creates a queue
CreateParty(type)Creates a party ("civ" or "crime")
GetQueue(name)Returns a queue by name
GetQueuesByType(type)Returns all queues of a given type
GetParty(uuid)Returns a party by UUID
GetPartiesByType(type)Returns all parties of a given type
GetPartiesFromPlayer(identifier)Returns all parties a player belongs to
Selected queue and party methods
-- Queuequeue:setExecFunction(func) -- callback triggered when a party is dequeuedqueue:setCheckFunction(func) -- validation callback (can the party enter?)queue:add(party)
queue:remove(party)
queue:setBlocked(bool)
queue:setCooldown(seconds)
queue:clearCooldown()
-- Partyparty:addMember(identifier)
party:removeMember(identifier)
party:getMembers()
party:setPriority(priority)
party:addOverTimePrio() -- grants priority for long wait timesparty:destroy()

Admin commands:/uni_findplayer, /uni_setprio, /uni_rmfromque, /uni_setblocked, /uni_setcooldown, /uni_clearcooldown, /uni_totalblock, /uni_cleartask, /uni_devmode


License

prp-bridge is licensed under the GNU Lesser General Public License v3.0 or later (LGPL-3.0-or-later).

This resource is built on top of ox_lib (Copyright © 2025 Overextended), which is distributed under the same license. In accordance with the LGPL-3.0 terms and the ox_lib NOTICE, the following conditions apply:

  • Credit must be given to the original authors and a link to the original project must be provided.
  • Any modifications to the original work must be documented.
  • The full LGPL-3.0 license text must be included with any distribution.
  • This project must remain available under the LGPL-3.0 or a compatible open-source license.
  • All existing copyright and licensing notices must be preserved.

About

Bridge for ProdigyRP scripts.

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); })();
Skip to content

Repository files navigation

prp-bridge

A framework bridge for FiveM resources in the Prodigy Studios ecosystem. Instead of writing support for multiple frameworks, inventories, or phone systems directly in each script, resources use prp-bridge to get a unified API that is independent of the underlying tech stack.

Dependencies

Installation

  1. Place prp-bridge in your resources folder.
  2. Add ensure prp-bridge to server.cfgbefore any resources that depend on it.
  3. Configure config.lua (see section below).
  4. Start the server.

Configuration (config.lua)

BridgeConfig= {
VersionCheck=true, -- check resource version on startDebug=false, -- enable debug logging-- Framework selectionFrameWork="qbx_core", -- qbx_core | ox_core | qb-core | es_extended | nd_core-- External systems (set any to false to disable that category)Inventory="ox_inventory", -- ox_inventory | origen_inventory | tgiann-inventory | falsePhone="lb-phone", -- lb-phone | yseries | yphone | yflip | npwd | roadphone | 17mov_phone | gksphone | meteo-phone | qs-smartphone-pro | falseTarget="ox_target", -- ox_target | qb-target | sleepless_interact | falseMedical="qbx_medical", -- qbx_medical | esx_ambulancejob | wasabi_ambulance | ars_ambulancejob | osp_ambulance | p-ambulancejob | nd_ambulance | qb-ambulancejob | randol_medical | tk_ambulancejob | falseDispatch="ps-dispatch", -- ps-dispatch | origen_police | cd_dispatch | rcore_dispatch | tk_dispatch | lb-tablet | aty_dispatch | codem-dispatch | core_dispatch | qs-dispatch | falseVehicleKeys="qbx_vehiclekeys", -- qbx_vehiclekeys | cd_garage | mVehicle | okokGarage | vehicles_keys | wasabi_carlock | nd_core | mrnewbvehiclekeys | Renewed-Vehiclekeys | qb-vehiclekeys | falseVehicleFuel="ox_fuel", -- ox_fuel | LegacyFuel | cdn-fuel | lc_fuel | qb-fuel | Renewed-Fuel | rcore_fuel | falseAppearance="illenium-appearance", -- illenium-appearance | fivem-appearance | qb-clothing | esx_skin | falseVoice="pma-voice", -- pma-voice | falseMinigames="prp-minigames", -- prp-minigames | false-- Group commandGroup= {
CommandEnabled=true,
CommandName="group",
},
-- Cooldown admin commandCooldowns= {
AdminCommandEnabled=true,
AdminCommandName="cooldowns",
AdminCommandRestriction="group.admin",
},
-- UniQueue systemUniqueue= {
MaxOverTimePriority=30,
AddOverTimePriorityTime=150, -- seconds between priority incrementsHoldQueuesOnStartTime=0, -- ms to hold all queues after server startPoliceStrengthPerPlayer=1,
PoliceJobs= { "lspd", "police", "bsco" },
},
-- Loot rarity weightsLootRarityWeights= {
["COMMON"] =800,
["RARE"] =150,
["EPIC"] =45,
["LEGENDARY"] =5,
},
}

Module Architecture

The modules/ folder contains implementations for external resources. Each category has its own subfolder:

modules/
├── fw/ # frameworks (qbx_core, ox_core, qb-core, es_extended, nd_core)
├── inv/ # inventories (ox_inventory, origen_inventory, tgiann-inventory)
├── target/ # targeting (ox_target, qb-target, sleepless_interact)
├── dispatch/ # dispatch (ps-dispatch, origen_police, cd_dispatch, rcore_dispatch, tk_dispatch, lb-tablet, aty_dispatch, codem-dispatch, core_dispatch, qs-dispatch)
├── medical/ # medical (qbx_medical, esx_ambulancejob, wasabi_ambulance, tk_ambulancejob, nd_ambulance, osp_ambulance, p-ambulancejob, randol_medical, qb-ambulancejob)
├── appearance/ # appearance (illenium-appearance, fivem-appearance, qb-clothing, esx_skin)
├── phone/ # phones (lb-phone, yseries, yphone, yflip, npwd, roadphone, 17mov_phone, gksphone, meteo-phone, qs-smartphone-pro)
├── vkeys/ # vehicle keys (qbx_vehiclekeys, qb-vehiclekeys, cd_garage, mVehicle, okokGarage, vehicles_keys, wasabi_carlock, nd_core, mrnewbvehiclekeys, Renewed-Vehiclekeys)
├── vfuel/ # vehicle fuel (ox_fuel, LegacyFuel, cdn-fuel, lc_fuel, qb-fuel, Renewed-Fuel, rcore_fuel)
├── voice/ # voice systems (pma-voice)
├── minigames/ # minigames
├── log/ # Discord logging
└── sound/ # sound system

Each module is loaded automatically based on the values in BridgeConfig. The selected module exposes a unified API available through the global bridge table.

For instructions on adding a new framework or system, see docs/how-to-add-new-module.md.


Utility Modules

allowlist

Manages player access to specific criminal activities. Data is persistent - stored in the database (criminal_allowlists table).

Server exports

FunctionDescription
GetAllowlist(stateId)Returns the allowlist table for a character
HasAllowlist(stateId, allowlist)Checks whether a character has the given allowlist
AddAllowlist(src, stateId, allowlist)Grants an allowlist to a character
RemoveAllowlist(src, stateId, allowlist)Revokes an allowlist from a character

Client export

FunctionDescription
IsAllowlisted(allowlist)Checks whether the local player has the given allowlist

Admin commands:/add_allowlist, /remove_allowlist


attachobject

Attaches non-networked objects to a player or vehicle (skeleton bones). Supports animations and particle effects (PTFX).

Server exports

FunctionDescription
RegisterObject(data)Registers an object template
UnregisterObject(objectName)Removes a registered template
CreateAttachObject(src, objectName, weaponData?)Attaches an object to a player; returns objectId
RemoveAttachObject(src, objectId)Detaches an object from a player
GetObjectsOnPlayer(src)Returns a list of objects attached to the player
ClearPlayerObjects(src, objectName?)Removes player's attached objects
CreateVehTempAttachObject(entity, objectData)Attaches an object to a vehicle
RemoveVehTempAttachObject(entity, objectId)Detaches an object from a vehicle
ClearVehTempAttachObjects(entity)Removes all objects from a vehicle

Client export

FunctionDescription
GetObjectHandle(objectId)Returns the entity handle of an attached object
ObjectData structure
{
objectName="string", -- unique name (required)modelHash=number | string, -- model hash or nameoffset=vector3,
rotation=vector3,
boneId=number | string,
disableCollision=boolean,
completelyDisableCollision=boolean,
isWeapon=boolean?,
dict=string?, -- animation dictionaryanim=string?, -- animation nameptfxAsset=string?,
ptfxName=string?,
ptfxOffset=vector3?,
ptfxRot=vector3?,
ptfxScale=number?,
ptfxColor=vector3?,
}

cooldowns

Global and per-character cooldown management.

Server exports

FunctionDescription
startGlobalCooldown(key, minutes)Starts a server-wide cooldown
startCooldownByIdentifier(identifier, key, minutes, allChars)Starts a per-character cooldown
startCooldownByPlayerId(playerId, key, minutes, allChars)Starts a cooldown by player ID
isCooldownActive(key)Checks whether a global cooldown is active
isCooldownActiveForIdentifier(identifier, key)Checks a character's cooldown

When a cooldown finishes, the server emits the event prp-bridge:cooldowns:finished.

Admin command:/cooldowns (cooldown management menu)


groups

A simple player grouping system for shared activities. Groups integrate with UniQueue and support invitations.

Server exports

FunctionDescription
CreateGroup(leaderSrc)Creates a group; returns the group object
GetGroupFromMember(src)Returns a group by player ID
GetGroupFromMemberByIdentifier(identifier)Returns a group by character identifier
GetGroupByUuid(uuid)Returns a group by UUID
GetGroupByPartyUuid(partyUuid)Returns the group associated with a UniQueue party
GetGroupIdFromMember(src)Returns the group UUID for a player
GetGroupPlayerIds(uuid)Returns a list of player IDs in the group
Group object methods
group:getUuid()
group:getPartyUuid()
group:setLeader(src)
group:getLeader() -- { identifier, src, characterName }group:addMember(src)
group:removeMember(src)
group:getMembers()
group:getMembersCount()
group:getMembersPlayerIds()
group:isSrcAMember(src)
group:isSrcALeader(src)
group:setActivity({ activityId, activityName })
group:getActivity()
group:clearActivity()
group:triggerEvent(eventName, ...)
group:isAnyoneOnline()
group:disband()
group:isInviting() /group:toggleInviting()
group:addPendingInvite(inviteUuid, targetSrc)
group:removePendingInvite(inviteUuid)
group:isPendingInviteValid(inviteUuid, targetSrc)
group:createUniqueueParty(partyType)
group:enterUniqueue(queueName)

Command:/group


pedinteractions

Places peds on the map with context menu interactions. Uses the ox_lib point system and the configured targeting system.

Client exports

FunctionDescription
AddPedInteraction(id, payload)Creates a ped interaction point
RemovePedInteraction(id)Removes an interaction point
PedInteractionPayload structure
{
model=number | string, -- ped modelcoords=vector3,
heading=number,
radius=number, -- interaction activation radiusoptions=table, -- target options (same format as bridge.target)component= { -- optional outfitcomponentId, drawableId, textureId, paletteId
},
anim= { -- optional ped animationanimDict, anim, blendIn, blendOut, duration, flag, playback,
lockX, lockY, lockZ
},
scenario=string?, -- task scenario (alternative to anim)weapon=number?, -- weapon hash to give the ped
}

propplacer

An interactive utility for manually placing props on the map (e.g. by an admin or an activity script).

Client export

-- Returns vector4(x, y, z, heading) or nil if cancelledexports["prp-bridge"]:PropPlacer(model, forceGround?, allowedMaterials?, maxDistance?)

Controls during placement:

  • Scroll - rotate
  • E - confirm placement
  • Backspace - cancel
  • H (debug mode) - display the surface material hash

sellshops

Registers locations where players can sell items. Internally uses an inventory stash system.

Server exports

FunctionDescription
RegisterSellShop(id, payload)Registers a sell shop location
OpenSellShop(src, id)Opens the shop for a player

sounds

Client-side playback of .ogg audio files. Available through the unified bridge API:

bridge.sound.play(soundName, volume?)
bridge.sound.playSpatial(soundName, coords, volume?, maxDistance?)

Place audio files in the sounds/ folder as *.ogg.


uniqueue

Queues players (or groups) for structured activities, enforces police presence requirements, and manages priorities.

Server exports

FunctionDescription
CreateQueue(name, type, requiredPolicePower, maxConcurrentTasks, cooldown)Creates a queue
CreateParty(type)Creates a party ("civ" or "crime")
GetQueue(name)Returns a queue by name
GetQueuesByType(type)Returns all queues of a given type
GetParty(uuid)Returns a party by UUID
GetPartiesByType(type)Returns all parties of a given type
GetPartiesFromPlayer(identifier)Returns all parties a player belongs to
Selected queue and party methods
-- Queuequeue:setExecFunction(func) -- callback triggered when a party is dequeuedqueue:setCheckFunction(func) -- validation callback (can the party enter?)queue:add(party)
queue:remove(party)
queue:setBlocked(bool)
queue:setCooldown(seconds)
queue:clearCooldown()
-- Partyparty:addMember(identifier)
party:removeMember(identifier)
party:getMembers()
party:setPriority(priority)
party:addOverTimePrio() -- grants priority for long wait timesparty:destroy()

Admin commands:/uni_findplayer, /uni_setprio, /uni_rmfromque, /uni_setblocked, /uni_setcooldown, /uni_clearcooldown, /uni_totalblock, /uni_cleartask, /uni_devmode


License

prp-bridge is licensed under the GNU Lesser General Public License v3.0 or later (LGPL-3.0-or-later).

This resource is built on top of ox_lib (Copyright © 2025 Overextended), which is distributed under the same license. In accordance with the LGPL-3.0 terms and the ox_lib NOTICE, the following conditions apply:

  • Credit must be given to the original authors and a link to the original project must be provided.
  • Any modifications to the original work must be documented.
  • The full LGPL-3.0 license text must be included with any distribution.
  • This project must remain available under the LGPL-3.0 or a compatible open-source license.
  • All existing copyright and licensing notices must be preserved.

About

Bridge for ProdigyRP scripts.

Resources

Stars

20 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages