OpsLab Books
Realplay Scripts /RPS BossMenu Developer API
Help Sign in Sign up
RPS BossMenu

πŸ‘¨β€πŸ’» RPS BossMenu Developer API

Server Exports Documentation

RPS BossMenu provides a powerful collection of server exports that allow developers to integrate businesses, suppliers, transactions, permissions, and marketplace functionality into their own resources.

All exports are called using:

exports['rps_bossmenu']:ExportName(...)

πŸ“š Table of Contents

  • Jungle Shop API
  • Business Management API
  • Permissions API
  • Verification API
  • Society Logs API
  • Examples
  • Best Practices

πŸ›’ Jungle Shop API

The Jungle Marketplace allows businesses to buy stock from suppliers.


CreateJungleShop

Creates (or updates) an online supplier shop.

Syntax

exports['rps_bossmenu']:CreateJungleShop(shopId, name, logo, categories, items)

Parameters

Parameter Type Description
shopId string Unique shop identifier
name string Shop display name
logo string Logo URL
categories table Shop categories
items table Products available

Example

exports['rps_bossmenu']:CreateJungleShop(
    "mechanic_supply",
    "Mechanic Supply Co.",
    "https://yourdomain.com/logo.png",
    {
        "Parts",
        "Tools"
    },
    {
        {
            item = "repairkit",
            label = "Repair Kit",
            price = 500
        },
        {
            item = "advancedrepairkit",
            label = "Advanced Repair Kit",
            price = 1500
        }
    }
)

GrantBusinessJungleAccess

Allows a business to purchase from a supplier.

Syntax

exports['rps_bossmenu']:GrantBusinessJungleAccess(jobName, shopId)

Parameters

Parameter Type Description
jobName string Business job name
shopId string Jungle shop ID

Example

exports['rps_bossmenu']:GrantBusinessJungleAccess(
    "mechanic",
    "mechanic_supply"
)

PlaceJungleOrder

Places an order automatically.

Syntax

local success, orderId = exports['rps_bossmenu']:PlaceJungleOrder(
    sellerShopId,
    buyerJob,
    items,
    totalPrice,
    skipPayment
)

Parameters

Parameter Type Description
sellerShopId string Supplier shop
buyerJob string Business placing the order
items table Purchased items
totalPrice number Total order value
skipPayment boolean Skip society payment

Returns

success
orderId

Example

local success, orderId = exports['rps_bossmenu']:PlaceJungleOrder(
    "mechanic_supply",
    "mechanic",
    {
        {
            item = "repairkit",
            amount = 10
        }
    },
    5000,
    false
)

if success then
    print("Order Created:", orderId)
end

🏒 Business Management API


CreateBossmenu

Registers a business.

Syntax

exports['rps_bossmenu']:CreateBossmenu(
    jobName,
    ownerCid,
    minBossGrade,
    allowedShops
)

Parameters

Parameter Type
jobName string
ownerCid string
minBossGrade number
allowedShops table

Example

exports['rps_bossmenu']:CreateBossmenu(
    "mechanic",
    "ABC12345",
    4,
    {
        "mechanic_supply",
        "general_parts"
    }
)

SetBossmenuDeliveryCoords

Sets the delivery parking location.

Syntax

exports['rps_bossmenu']:SetBossmenuDeliveryCoords(
    jobName,
    vector4(x, y, z, w)
)

Example

exports['rps_bossmenu']:SetBossmenuDeliveryCoords(
    "mechanic",
    vector4(
        -345.12,
        -133.55,
        39.01,
        90.0
    )
)

πŸ” Employee Permissions API


SetEmployeePermissions

Modify an employee's permissions.

Syntax

exports['rps_bossmenu']:SetEmployeePermissions(
    jobName,
    citizenId,
    permsTable
)

Permission Table

{
    deposit = true,
    withdraw = false,
    webshop = true,
    master = false
}

Example

exports['rps_bossmenu']:SetEmployeePermissions(
    "mechanic",
    "ABC12345",
    {
        deposit = true,
        withdraw = true,
        webshop = true,
        master = false
    }
)

βœ… Verification API


HasBossAccess

Checks if a player has boss access.

Syntax

local hasAccess = exports['rps_bossmenu']:HasBossAccess(
    citizenId,
    jobName
)

Returns

true
false

Example

if exports['rps_bossmenu']:HasBossAccess(
    citizenId,
    "mechanic"
) then
    print("Player is Boss")
end

πŸ’° Society Transaction API


LogSocietyTransaction

Adds an entry to the business ledger.

Syntax

exports['rps_bossmenu']:LogSocietyTransaction(
    jobName,
    typeStr,
    amount,
    reason,
    by
)

Valid Transaction Types

  • "Deposit"
  • "Withdraw"
  • "Order"

Example

exports['rps_bossmenu']:LogSocietyTransaction(
    "mechanic",
    "Deposit",
    5000,
    "Vehicle Repair Income",
    "John Smith"
)

πŸ“œ Society Logs API


GetSocietyLogs

Returns the last 50 transactions.

Syntax

local logs = exports['rps_bossmenu']:GetSocietyLogs(jobName)

Example

local logs = exports['rps_bossmenu']:GetSocietyLogs("mechanic")

for _, log in pairs(logs) do
    print(
        log.type,
        log.amount,
        log.reason
    )
end

πŸ’‘ Complete Integration Example

exports['rps_bossmenu']:CreateBossmenu(
    "mechanic",
    "ABC12345",
    4,
    {
        "mechanic_supply"
    }
)

exports['rps_bossmenu']:GrantBusinessJungleAccess(
    "mechanic",
    "mechanic_supply"
)

exports['rps_bossmenu']:SetBossmenuDeliveryCoords(
    "mechanic",
    vector4(-345.0, -130.0, 39.0, 90.0)
)

exports['rps_bossmenu']:SetEmployeePermissions(
    "mechanic",
    "ABC12345",
    {
        deposit = true,
        withdraw = true,
        webshop = true,
        master = true
    }
)

πŸ›‘οΈ Best Practices

  • Always validate user input before calling exports.
  • Use unique shopId values to avoid conflicts.
  • Check the return value of PlaceJungleOrder() before assuming the order was created.
  • Restrict sensitive exports to trusted server-side resources.
  • Log important business actions using LogSocietyTransaction() to maintain a complete financial history.
  • Keep permission tables consistent to avoid unintended access.

πŸ“– Notes

  • All exports are server-side only.
  • These exports are intended for integration with custom jobs, businesses, economy systems, and third-party resources.
  • Future updates may introduce additional exports while maintaining backwards compatibility where possible.