Shop everywhere | Player-owned shops/markets [ESX]

Shop everywhere A dynamic player-driven shop system for FiveM, inspired by classic MMORPGs :convenience_store:

Core Features

Advanced Shop Creation and Management Your players can establish their own shops anywhere in the world with extensive control:

  • Custom shop names displayed as 3D text above the kiosk
  • Complete item price management
  • Multiple shops per player (configurable limit)
  • Map blips with custom settings
  • Real-time sales notifications
  • Full inventory management with price adjustments
  • Items are safely returned to owner on script/server restart
  • Shops retain their position and inventory after restarts
  • Visual customization of shop appearance

Comprehensive Item Management Shop owners have complete control over their inventory:

  • Add items directly from inventory to shop
  • Set custom prices for each item
  • Remove items back to inventory at any time
  • View all items and their prices
  • Change prices of existing items
  • Automatic inventory synchronization
  • Full metadata support for all items

Advanced Money Handling

  • Secure automatic payment processing
  • Offline payment system - money is stored when owner is offline
  • Transaction logging and history
  • Automatic bank transfers
  • Configurable shop creation costs
  • Safe item and money handling during server restarts

Extensive Admin Controls Comprehensive tools for server management:

/ashop - Shows all shops with their IDs and owners
/ashop nearest - Closes the nearest shop to admin
/ashop name [shopname] - Manages shop by name
/ashop id [shop_id] - Manages shop by ID
  • Full shop monitoring capabilities
  • Remote shop management
  • Shop removal with automatic item return
  • Zone management for shop placement
  • Complete activity logging

Configuration
Everything is easily customizable through the config file:

Config = {}

-- Shop Creation Settings
Config.ShopCreation = {
    Command = 'createshop',
    MaxShopsPerPlayer = 3,
    Cost = 5000, -- Cost to create a shop
    SpawnOffset = {
        x = 2.0,
        y = 0.0,
        z = -0.93
    }
}

Config.AdminCommand = {
    CloseShop = 'ashop', -- Shorter command name for easier use
    AllowedGroups = {'admin', 'superadmin', 'owner', 'god'}
}
-- /ashop - Displays a list of all shops with their IDs and owners
-- /ashop nearest - Deletes the nearest shop to the admin
-- /ashop name Pepův obchod - Deletes a shop by name
-- /ashop id player_shop_1 - Deletes a shop by ID

-- Shop Properties
Config.Shop = {
   DefaultSlots = 50,
   DefaultWeight = 100000,
   PropModel = 'prop_pier_kiosk_02',
   InteractionDistance = 4.0,
   Text3DDistance = 15.0,
   ShowName = true, -- Allow/Disallow display of the shop name
   EnableBlips = true, -- Allow/Disallow blips
   BlacklistedItems = { -- Items that cannot be sold
       'weapon_pistol',
       'money',
       -- Add more banned items
   }
}

-- Blip Settings
Config.Blip = {
    Sprite = 52,
    Color = 2,
    Scale = 0.8,
    ShortRange = true,
    DisplayName = true
}

-- Notification Settings
Config.Notifications = {
    Success = {
        ShopCreated = 'Shop was successfully created!',
        ItemAdded = 'Item was successfully added to the shop!',
        ShopDeleted = 'Shop was successfully deleted!'
    },
    Error = {
        AlreadyHasShop = 'You already have a created shop!',
        ShopNotFound = 'Shop not found!',
        NoPermission = 'You do not have permission to manage this shop!',
        InsufficientItems = 'You do not have enough items!',
        FailedToRemoveItems = 'Failed to remove items from inventory!',
        FailedToAddItems = 'Failed to add item to the shop!'
    }
}

-- Menu Settings
Config.Menu = {
    Shop = {
        Title = 'Shop Management',
        AddItems = {
            Title = 'Add Items',
            Description = 'Add new items to the shop'
        },
        ManageItems = {
            Title = 'Manage Items',
            Description = 'Manage items in the shop'
        },
        CloseShop = {
            Title = 'Close Shop',
            Description = 'Close this shop',
            ConfirmHeader = 'Confirmation',
            ConfirmContent = 'Are you sure you want to close this shop? All items will be returned to your inventory.'
        }
    },
    Target = {
        ManageIcon = 'fas fa-cog',
        ManageLabel = 'Manage Shop',
        BuyIcon = 'fas fa-shopping-basket',
        BuyLabel = 'Buy Items'
    }
}

-- Text Display Settings
Config.Text3D = {
    Scale = 0.40,
    Font = 4,
    BackgroundOpacity = 150,
    BackgroundColor = {r = 0, g = 0, b = 0},
    TextColor = {r = 255, g = 255, b = 255, a = 255},
    WidthMultiplier = 1.5,
    HeightOffset = 2.0,
    BoxHeight = 0.03
}

-- Shop Zone Restrictions
Config.ZoneRestrictions = {
    Mode = 'none', -- 'none', 'blacklist', 'whitelist'
    Zones = {
        -- Example zones:
        -- ['legion_square'] = {
        --     center = vector3(195.17, -934.0, 30.69),
        --     radius = 50.0,
        --     name = "Legion Square"
        -- }
    }
}

-- Shop Distance Restrictions
Config.ShopDistanceRestrictions = {
    MinimumDistance = 3.0, -- Minimum distance between shops in units
    Enabled = true -- Enable/Disable distance check
}

Config.Discord = {
    Enabled = false,
    Webhooks = {
        ShopCreation = "",  
        ShopDeletion = "", 
        Transactions = "", 
        ItemManagement = "",
        Errors = ""
    },
    Colors = {
        Success = 3066993,  -- Green
        Error = 15158332,   -- Red
        Info = 3447003,     -- Blue
        Warning = 15105570  -- Yellow
    },
    ServerName = "Your Server",
    FooterText = "Player Shop Logs",
    FooterIcon = "" -- URL icon for the footer
}

return Config

Installation

  1. Install all dependencies
  2. Add to resources folder
  3. Add ensure mn_shops to server.cfg
  4. Configure settings in config.lua
  5. Restart server

Tebex link: https://midnight-scripts.tebex.io/package/6669365

Price: 20€ + tax

Video Preview

Photo Preview




Code is accessible No, only some parts
Subscription-based No
Lines (approximately) 1700
Requirements ESX Legacy, ox_lib, ox_inventory, oxmysql
Support Yes

If only it was QBCore

1 Like

inventory css ?

Maybe in future updates.

would be great if you could also sell to players shops like in RedM servers, Be able to put up items you are buying etc and add money to it

Do you have any example?

Well essentially on RedM servers
You can have a store like this but for example you can add funds to the shop then set items you are buying in the shop for example phones you are buying and set what you buy them for and players can sell them to your shop.

You can also set limits to how many you are buying of X item and this creates an economy where players can sell to the shops as well as buy from and shop owners can make money from people selling items to them.

Isnt that basically the same? You have to put items in your shop too, you set price for items etc.

Oh i got it, you mean player are able to sell those items in the shops.
So i can add new button “sell” and owners will be able to configure sellable items.

I may do it in the future.

QBX Please

1 Like

Have you got the inventory css from the picture. if you have then i will like to have it too