addShop

You can add shops without a config by using this export.

ShopPayload

---@class ShopSettings
---@field useStock? boolean
---@field useCategories? boolean
---@field fluctuatePrices? boolean

---@class ShopPaymentMethods
---@field buy? string[]
---@field sell? string[]

---@class ShopItem
---@field name string
---@field category? string
---@field price number
---@field stock? number
---@field metadata? table<string, any>

---@class ShopItemsWithSelling
---@field buy ShopItem[]
---@field sell ShopItem[]

---@class ShopLocationOptions
---@field coords vector3
---@field label? string
---@field icon? string
---@field iconColor? string
---@field distance? number
---@field skipBlip? boolean

---@class ShopPedLocation: ShopLocationOptions
---@field ped string | number
---@field heading number

---@class ShopZoneLocation: ShopLocationOptions
---@field size vector3
---@field rotation number
---@field drawSprite boolean

---@class ShopPointLocation: ShopLocationOptions
---@field type? number
---@field scale? [number, number, number]
---@field color? [number, number, number]
---@field opacity? number
---@field options table<string, any>

---@class ShopBlip
---@field sprite number
---@field label? string
---@field color number
---@field scale number
---@field isShortRange? boolean

---@class ItemRequirement
---@field name string
---@field count number
---@field metadata? table<string, any>

---@class ShopConfig
---@field icon? string
---@field label string
---@field description? string
---@field group? string | table<string> | table<string, number>
---@field requiredItem? ItemRequirement | ItemRequirement[]
---@field settings? ShopSettings
---@field paymentMethods? ShopPaymentMethods
---@field items ShopItemsWithSelling | ShopItem[]
---@field model? number | number[] | string | string[]
---@field locations? table<ShopPedLocation | ShopZoneLocation | ShopPointLocation>
---@field blip? ShopBlip
---@field blipReference? number

---@class ShopPayload: ShopConfig
---@field id string

Export

---**`server`**
---@param payload ShopPayload
---@param id string?
---@return boolean, string?
function exports.fd_shops:addShop(payload, id) end

Example

exports.fd_shops:addShop({
    id='remote_shop',
    label = 'Shop',
    description = 'A small convenience store that is open 24/7.',
    paymentMethods = {
        buy = { 'cash', 'bank' },
        sell = { 'cash' }
    },
    settings = {
        useStock = false,
        useCategories = true,
        fluctuatePrices = true
    },
    blip = {
        sprite = 59, color = 69, scale = 0.8
    },
    items = {
        buy = {
            { name = 'burger', price = 10 },
            { name = 'water',  price = 10 },
            { name = 'cola',   price = 10 },
        },
        sell = {
            { name = 'burger', price = 10 },
        }
    },
    locations = {
        { coords = vec3(25.06, -1347.32, 29.7),   size = vector3(0.7, 0.5, 0.4), rotation = 0.0,   distance = 1.5 },
        { coords = vec3(-3039.18, 585.13, 8.11),  size = vector3(0.6, 0.5, 0.4), rotation = 15.0,  distance = 1.5 },
        { coords = vec3(-3242.2, 1000.58, 13.03), size = vector3(0.6, 0.6, 0.4), rotation = 175.0, distance = 1.5 },
        { coords = vec3(1728.39, 6414.95, 35.24), size = vector3(0.6, 0.6, 0.4), rotation = 65.0,  distance = 1.5 },
        { coords = vec3(1698.37, 4923.43, 42.26), size = vector3(0.5, 0.5, 0.4), rotation = 235.0, distance = 1.5 },
        { coords = vec3(1960.54, 3740.28, 32.54), size = vector3(0.6, 0.5, 0.4), rotation = 120.0, distance = 1.5 },
        { coords = vec3(548.5, 2671.25, 42.36),   size = vector3(0.6, 0.5, 0.4), rotation = 10.0,  distance = 1.5 },
        { coords = vec3(2678.29, 3279.94, 55.44), size = vector3(0.6, 0.5, 0.4), rotation = 330.0, distance = 1.5 },
        { coords = vec3(2557.19, 381.4, 108.82),  size = vector3(0.6, 0.5, 0.4), rotation = 0.0,   distance = 1.5 },
        { coords = vec3(373.13, 326.29, 103.77),  size = vector3(0.6, 0.5, 0.4), rotation = 345.0, distance = 1.5 },
    }
})

Copyright © 2025 Felis Development