Everything you need to get OOS Scripts running on your server.
All OOS Scripts follow the same installation process.
After purchasing, head to portal.cfx.re → My Assets, find the script and download the latest version.
Unzip the file and place the folder in your server's resources/
directory.
Add only the scripts that you use to your server.cfg.
ensure oos-notify ensure oos-advancedstorecreator
Each script has its own config.lua. Refer to the sections below for all
available options.
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.
A clean and lightweight notification system for FiveM. Supports multiple notification types, server announcements, sound effects, and native txAdmin event hooks — all fully configurable.
Open config.lua in the oos-notify folder
and adjust to your server.
--[[ 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)'
Trigger notifications from any resource on your server using exports or client events.
Client side
exports['oos-notify']:Alert('Title', 'Message', 5000, 'type')
Server side
TriggerClientEvent('oos-notify:alert', source, 'Title', 'Message', 5000, 'type')
-- 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()
-- 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)
| 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 | — |
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:
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.
/storecreator
Opens the store creator admin panel. Requires an ace permission or a qualifying framework group (see config below).
Open config.lua in the oos-advancedstorecreator folder
and adjust to your server.
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, } }
After starting the script and getting into your server, use the admin command to open the store creator panel.
Type /storecreator in chat (requires ace permission oos.storecreator or an admin group).
Brands are the parent of your shops (e.g. "Burgershot", "24/7"). The brand name is used as the shop display name.
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.
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.
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.
add_ace identifier.steam:110000112345678 oos.storecreator allow -- or for a group: add_ace group.admin oos.storecreator allow
Connect your Discord account to automatically claim your Customer Role, get priority support, and access exclusive server giveaways!