OB-MarketV2 is a modern, secure, and highly configurable market system developed for FiveM servers.
Standard stores, job-restricted department shops, and hidden black markets can all be managed through a single resource. Markets can be opened through an NPC, a target system, or directly from a configured location.
With support for QBCore, Qbox, and ESX, OB-MarketV2 can be integrated into different server infrastructures without rebuilding the entire resource.
E key interactionRight-to-left layout is supported when the Arabic language is selected.
Standard stores allow players to purchase food, drinks, medical supplies, tools, and other server items.
Each store can have its own products, prices, payment methods, NPC model, blip settings, and UI theme.
Black markets can be placed at hidden locations and configured with restricted products or special access requirements.
You can configure:
Create private stores for specific jobs and departments.
Example use cases:
Only players with the configured job and minimum grade can access the department store.
The job requirement is checked when the market is opened and validated again by the server during the purchase process.
OB-MarketV2 supports different visual themes depending on the selected market type.
Each department can have its own title, logo, colors, branding, and store name.
You do not need to manually define every product image inside the configuration.
OB-MarketV2 reads item information from the active inventory system and attempts to load the correct item image automatically.
Supported systems:
Custom image paths can also be configured for modified inventory systems.
All market locations are managed from a separate locations.lua file.
Adding a new market only requires a market type and coordinates.
Config.Locations = {
market = {
vector4(24.47, -1346.62, 29.50, 271.66),
vector4(1960.15, 3740.02, 32.34, 297.47)
},
blackmarket = {
vector4(1207.11, -3115.18, 5.54, 88.92)
}
}
Markets can also work directly from a location without spawning an NPC.
{
coords = vector4(372.61, 326.35, 103.57, 255.47),
ped = {
enabled = false
},
blip = {
enabled = false
}
}
Department store locations can be added through locations.lua.
department = {
{
id = 'police_supply_01',
department = 'police',
coords = vector4(441.84, -981.92, 30.69, 91.20)
},
{
id = 'ambulance_supply_01',
department = 'ambulance',
coords = vector4(307.12, -601.62, 43.28, 69.42)
}
}
Job access, minimum grades, products, and UI themes are managed from the main configuration.
Config.Departments = {
police = {
catalog = 'police',
access = {
jobs = {
police = 0
}
},
ui = {
brandText = 'POLICE',
theme = 'police'
}
}
}
E key.All important purchase checks are performed on the server. The resource does not directly trust prices or product data sent by the client.
OB-MarketV2 uses multiple validation layers to protect purchase transactions.
E key interactionlocations.lua