Documentation

Everything you need to get OOS Scripts running on your server.

download Installation

All OOS Scripts follow the same installation process.

1

Download from the CFX Portal

After purchasing, head to portal.cfx.re → My Assets, find the script and download the latest version.

2

Extract into your resources folder

Unzip the file and place the folder in your server's resources/ directory.

3

Add to server.cfg

Add only the scripts that you use to your server.cfg.

server.cfg
ensure oos-notify
ensure oos-advancedstorecreator
4

Open config.lua and configure

Each script has its own config.lua. Refer to the sections below for all available options.

5

(Optional) Customization

Many OOS scripts feature open-source files that you can modify. These allow you to fully customize the logic or UI to match your server's unique needs.


oos-notify

OOS Notify

A clean and lightweight notification system for FiveM. Supports multiple notification types, server announcements, sound effects, and native txAdmin event hooks — all fully configurable.

palette Notification Types

check_circle success
cancel error
info info
warning warning
payments money

settings Configuration

Open config.lua in the oos-notify folder and adjust to your server.

config.lua — oos-notify
--[[
    OOS Notify - Configuration
    https://oos-scripts.com/
]]

Config = {}

-- ============================================================
--  SOUNDS
-- ============================================================

-- Volume for notifications (0.0 - 1.0)
Config.SoundVolume         = 0.5

-- Volume for announcements (0.0 - 1.0)
Config.AnnouncementVolume  = 0.9

-- ============================================================
--  NOTIFICATIONS
-- ============================================================

-- Default display time in ms (5000 = 5 seconds)
Config.DefaultDuration    = 5000

-- Max notifications visible at once
Config.MaxNotifications  = 5

-- Slide animation speed in ms
Config.AnimationDuration = 800

-- ============================================================
--  POSITION
-- ============================================================

-- Options: 'top-right', 'top-left', 'bottom-right', 'bottom-left'
Config.Position = 'top-right'

-- Offset from the vertical edge in pixels
Config.OffsetY = 40

-- Offset from the horizontal edge in pixels
Config.OffsetX = 19

-- ============================================================
--  ANNOUNCEMENTS
-- ============================================================

-- Display time for announcements in ms
Config.AnnouncementDuration       = 10000

-- Enable/disable individual txAdmin event integrations
Config.EnableTxAdminAnnouncements  = true
Config.EnableTxAdminShutdown       = true
Config.EnableTxAdminRestart        = true
Config.EnableTxAdminRestartSkipped = true

-- ============================================================
--  LABELS
--  Title text shown in announcement banners
-- ============================================================

Config.Labels = {
    ServerAnnouncement = 'SERVER ANNOUNCEMENT',
    ServerOffline      = 'SERVER OFFLINE',
    Restart            = 'RESTART',
    RestartCancelled   = 'RESTART CANCELLED',
    SaveProgress       = 'Save your progress!',
    By                 = 'By',
}

-- ============================================================
--  COLORS
--  Accent colors per notification type (valid CSS color values)
-- ============================================================

Config.Colors = {
    success = {
        from = '#10b981',
        to   = '#059669',
    },
    error = {
        from = '#ef4444',
        to   = '#dc2626',
    },
    info = {
        from = '#3b82f6',
        to   = '#2563eb',
    },
    warning = {
        from = '#fbbf24',
        to   = '#f59e0b',
    },
    money = {
        from     = '#ffd700',
        mid      = '#ffb700',
        to       = '#ff8c00',
        glow     = 'rgba(255, 215, 0, 0.5)',
        iconGlow = 'rgba(255, 215, 0, 0.6)',
    },
    announcement = {
        from = '#fbbf24',
        to   = '#fcd34d',
    },
}

-- ============================================================
--  BACKGROUNDS
--  Use rgba() to control transparency (4th value = opacity)
-- ============================================================

-- Background of notification cards
Config.NotificationBackground = 'rgba(35, 35, 40, 0.85)'

-- Background of the announcement banner
Config.AnnouncementBackground = 'rgba(35, 35, 40, 0.85)'

code Usage & Exports

Trigger notifications from any resource on your server using exports or client events.

# Displaying a notification

Client side

Lua — client side
exports['oos-notify']:Alert('Title', 'Message', 5000, 'type')

Server side

Lua — server side
TriggerClientEvent('oos-notify:alert', source, 'Title', 'Message', 5000, 'type')

Client Examples

Lua — client side
-- Alert(title, message, duration, type)
exports['oos-notify']:Alert('Success', 'Item purchased!', 5000, 'success')
exports['oos-notify']:Alert('Error', 'Not enough money.', 5000, 'error')
exports['oos-notify']:Alert('Info', 'Server restarts in 10 minutes.', 8000, 'info')
exports['oos-notify']:Alert('Warning', 'You are in a restricted area.', 5000, 'warning')
exports['oos-notify']:Alert('Salary', 'You received $500.', 5000, 'money')

-- Announcement(title, message, duration)
exports['oos-notify']:Announcement('EVENT', 'A new race has started!', 10000)

-- Update the visible announcement
exports['oos-notify']:UpdateAnnouncement('EVENT', 'Race ends in 2 minutes!', 8000)

-- Hide the current announcement
exports['oos-notify']:HideAnnouncement()

Server Examples

Lua — server side
-- Send a notification to a single player (use -1 for all)
TriggerClientEvent('oos-notify:alert', source, 'Info', 'Your shift has started.', 5000, 'info')

-- Broadcast a notification to all players
TriggerClientEvent('oos-notify:alert', -1, 'Event', 'A heist is now active!', 8000, 'warning')

-- Show a server announcement to all players
TriggerClientEvent('oos-notify:announcement', -1, 'ANNOUNCEMENT', 'Welcome to the server!', 10000)

-- Hide the announcement for all players
TriggerClientEvent('oos-notify:hideAnnouncement', -1)

Available Events & Exports

Name Side Parameters
exports['oos-notify']:Alert Client title, message, duration, type
exports['oos-notify']:Announcement Client title, message, duration
exports['oos-notify']:UpdateAnnouncement Client title, message, duration
exports['oos-notify']:HideAnnouncement Client
oos-notify:alert Client event title, message, duration, type
oos-notify:announcement Client event title, message, duration
oos-notify:updateAnnouncement Client event title, message, duration
oos-notify:hideAnnouncement Client event

admin_panel_settings txAdmin Integration

OOS Notify hooks into txAdmin events automatically. It handles restarts, shutdowns and announcements — so you get a consistent UI instead of overlapping native alerts.

To ensure OOS Notify handles these correctly, navigate to your txAdmin panel and go to:

Settings > Game > Notifications Settings

And Disable the following:

  • Hide Announcement Notifications
  • Hide Scheduled Restart Warnings

oos-advancedstorecreator

OOS Advanced Store Creator

Create and manage fully custom shops entirely in-game — no server restarts needed. Supports blips, shopkeeper peds, buy/sell items, tax rates, animations and more. Works on ESX, QBCore and Qbox out of the box, with support for framework groups and job permissions.

Most setup happens in-game. Shop locations, items, prices, blips and peds are all configured through the in-game admin menu. The config.lua below only covers global defaults and system settings.

terminal Admin Command

In-game chat
/storecreator

Opens the store creator admin panel. Requires an ace permission or a qualifying framework group (see config below).

settings Configuration

Open config.lua in the oos-advancedstorecreator folder and adjust to your server.

config.lua — oos-advancedstorecreator
Config = {}

--[[ FRAMEWORK SETTINGS ]]
-- Options: "auto", "ESX", "QBCore", "Qbox", "custom"
Config.Framework = "auto"

--[[ NOTIFICATION SYSTEM ]]
-- Options: "auto", "oos-notify", "ox_lib", "wasabi_notify", "okoknotify", "qbcore", "custom"
Config.Notifications = "auto"

--[[ TEXT UI SYSTEM ]]
-- Options: "auto", "oos-textui", "okoktextui", "ox_lib", "ps-ui", "qb-core", "custom"
Config.DrawText = "auto"

--[[ INVENTORY SYSTEM ]]
-- Options: "auto", "ox_inventory", "ps-inventory", "qb-inventory", "codem_inventory", "custom"
Config.Inventory = "auto"

--[[ TARGET SYSTEM ]]
-- Options: "auto", "ox_target", "qb-target", "custom"
Config.Target = "auto"

-- Command to open the admin store creator menu
Config.AdminCommand = 'storecreator'

-- Admin permission settings
Config.AdminPermissions = {
    acePermission   = 'oos.storecreator',         -- add_ace identifier.xxx oos.storecreator allow
    frameworkGroups = { 'admin', 'superadmin', 'god' },
    requireBoth     = false                          -- true = need BOTH ace + group
}

-- Default tax rate as percentage (0 = no tax)
Config.DefaultTaxRate = 0

-- Default blip settings for new shops
-- Most blip settings can be changed per-shop in-game
Config.BlipDefaults = {
    enabled    = true,
    sprite     = 52,
    color      = 2,
    scale      = 0.7,
    shortRange = true
}

-- Interaction distance (metres)
Config.InteractionDistance = 2.0
Config.MarkerDrawDistance  = 15.0

-- Ground marker appearance
Config.Marker = {
    type          = 2,
    zOffset       = -0.15,
    width         = 0.4,
    height        = 0.2,
    color         = { r = 255, g = 204, b = 0, a = 200 },
    rotationSpeed = 0.8
}

-- Maximum items per purchase
Config.MaxPurchaseQuantity = 100

-- Rate limits (ms) — prevents spam
Config.RateLimits = {
    purchase  = 2000,
    sell      = 2000,
    adminSave = 1000
}

-- Session token expiry in seconds
Config.TokenExpiry = 300

-- Set to true to diagnose issues, false in production
Config.Debug = false

-- Active locale
-- Available: 'en', 'nl', 'de', 'es', 'fr', 'pt', 'tr', 'ar', 'pl'
-- Add your own by creating a file in locales/ and setting this value
Config.Locale = 'en'

-- Currency symbol shown in the shop UI
Config.CurrencySymbol = '$'

-- Default ped settings for new shops
-- Peds can be customised or disabled per-shop in-game
Config.PedDefaults = {
    enabled    = false,
    model      = 'mp_m_shopkeep_01',
    heading    = 0.0,
    scenario   = 'WORLD_HUMAN_STAND_IMPATIENT',
    distance   = 30.0,
    frozen     = true,
    invincible = true
}

-- NPC handover animation after a successful purchase
Config.NpcAnim = {
    enabled  = true,
    dict     = 'mp_common',
    anim     = 'givetake1_b',
    duration = 3000,
}

-- Player animations when interacting with shops
Config.Animations = {
    enabled  = true,
    shopOpen = {
        dict     = 'amb@prop_human_atm@male@idle_a',
        anim     = 'idle_a',
        duration = 1500,
    },
    payment = {
        dict     = 'missheistdockssetup1clipboard@idle_a',
        anim     = 'idle_a',
        duration = 1500,
    }
}

storefront In-Game Setup

After starting the script and getting into your server, use the admin command to open the store creator panel.

1

Open the panel

Type /storecreator in chat (requires ace permission oos.storecreator or an admin group).

2

Create a brand

Brands are the parent of your shops (e.g. "Burgershot", "24/7"). The brand name is used as the shop display name.

3

Create a shop under the brand

Walk to the location where you want the shop, open the panel and place it at your current position. Configure the blip, marker, ped and interaction type in the UI.

4

Add items

Add buy and/or sell items directly in the in-game panel. Set prices, quantities and the item name as it appears in your inventory.

5

Save & done

Hit Save — the shop is live immediately. No server restart needed.

Ace Permissions & Groups: To grant a player access to the store creator, you can use Ace permissions or framework groups. The script can check for specific groups in ESX, QBCore, etc.

server console / server.cfg
add_ace identifier.steam:110000112345678 oos.storecreator allow
-- or for a group:
add_ace group.admin oos.storecreator allow