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
ensure oos-chat
ensure oos-scoreboard
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

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

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

oos-chat

OOS Chat

terminal Admin Command

In-game chat
/chatmanager

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

settings Configuration

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

config.lua — oos-chat
Config = {}

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

                                    --[[ GENERAL SETTINGS ]]
                                    Config.ServerName = 'My Server'
                                    Config.Locale = 'en'
                                    Config.DateFormat = '%H:%M'

                                    --[[ STAFF PERMISSIONS ]]
                                    -- These require a server restart when changed
                                    Config.StaffPermissions = {
                                        acePermission = 'oos.chat.staff',
                                        frameworkGroups = { 'admin', 'superadmin', 'god' },
                                        requireBoth = false
                                    }

admin_panel_settings Admin Panel

Navigate to the in-game chat manager to fully configure and moderate the real-time chat experience.

1

Open the manager

Type /chatmanager in the chat (requires ace permission oos.chat.staff or an admin group).

2

Live Moderation

Instantly clear the entire chat, clear an individual player's chat history, or monitor active messages effectively from the sleek UI.

3

Custom Commands

Easily create, customize, or delete custom commands natively via the web panel. Define jobs, permissions, colors, and specific functionality—all with dynamic command suggestions automatically showing in chat.

4

Dynamic Settings

Toggle features like Out Of Character (OOC) chat, automatic command suggestions, or visual themes dynamically, without needing to touch a single line of code.

Ace Permissions & Groups: To grant a player access to the chat manager, 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.chat.staff allow
                                    -- or for a group:
                                    add_ace group.admin oos.chat.staff allow

oos-scoreboard

OOS Advanced Scoreboard

keyboard Open Scoreboard

Keybind / In-game chat
Press F10 or type /scoreboard

terminal Admin Command

In-game chat
/scoreboardadmin

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

settings Configuration

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

config.lua — oos-scoreboard
Config = {}

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

                                    --[[ GENERAL SETTINGS ]]
                                    Config.ServerName = false -- Set to string, or false to use Locale default
                                    Config.Locale = 'en'

                                    --[[ STAFF PERMISSIONS ]]
                                    -- These require a server restart when changed
                                    Config.StaffPermissions = {
                                        acePermission = 'oos.scoreboard.staff',
                                        frameworkGroups = { 'admin', 'superadmin', 'god' },
                                        requireBoth = false
                                    }

                                    --[[ KEYBIND ]]
                                    -- The key the player presses to open the scoreboard.
                                    -- Players can rebind this in the FiveM keybindings menu after first launch.
                                    Config.Keybind = 'F10'

                                    --[[ COMMANDS ]]
                                    -- /scoreboard opens the scoreboard (alternative to the keybind).
                                    -- /scoreboardadmin opens the admin panel for staff.
                                    Config.OpenCommand = 'scoreboard'
                                    Config.AdminCommand = 'scoreboardadmin'

admin_panel_settings Admin Panel

Navigate to the in-game scoreboard admin panel to configure the scoreboard layout, player lists, robberies and more.

1

Open the manager

Type /scoreboardadmin in the chat (requires ace permission oos.scoreboard.staff or an admin group).

2

Configure Player Count & Lists

Dynamically enable or disable the player list, adjust the maximum number of visible players, and choose whether to hide or show specific elements.

3

Manage Robberies & Jobs

Easily define online job requirements for various robberies or activities, and toggle their visibility directly in the admin panel.

4

Appearance Settings

Instantly change visual elements such as the server logo and the overall layout without touching any code or restarting the server.

Ace Permissions & Groups: To grant a player access to the scoreboard admin, 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.scoreboard.staff allow
                                    -- or for a group:
                                    add_ace group.admin oos.scoreboard.staff allow