[RELEASE][FREE] RY-SHOPS | Shop System with Categories, OxTarget and more

What is RY-SHOPS?
A fully configurable shop system with a modern and simple design.
With the ease of creating infinite shops each with different items and options.

preview

Config
RY = {}

RY.Options = {
    FrameWork = 'esx', -- esx or qb
    accountBlackMoney = 'black_money', -- account Name of Black Money
    oxTarget = false, -- if false it will enable markers/3dtext
}

RY.Messages = {
    purchaseCompleted = "Successfully Purchased (-%total%$), thank you!",
    noMoney = "You don't have enought money (You need %total%$)"
}

RY.Locations = {
    ['shop1'] = {
        shopName = 'SUPER MARKET',
        useBlackMoney = false, -- if true player have to pay with black money.
        menuCoords = vector3(25.63,-1347.48,29.48),

        -- Categorys
        categorysConfig = {'food', 'electronics', 'utilities'},

        -- OxTarget
        oxTargetConfig = {
            icon = 'fa-solid fa-cube',
            label = 'Shop',
        },

        -- Markers
        markersConfig = {
            markerMenu = {
                useKey = 38, -- E
                markerType = 2,
                markerSize  = {x = 0.3, y = 0.3, z = 0.3}, 
                markerColor = {r = 255, g = 255, b = 255},
                markerText = '[ ~g~E~w~ ] Shop'
            },
        },

        -- Blips
        blipsConfig = {
            blipMenu = {
                blipName = '24/7 Shop',
                blipSprite = 59,
                blipScale = 0.8,
                blipColor = 2,
                blipShow = true,
            },
        },

        -- Shop Items
        shopItems = {
            [1] = {
                itemName = "apple", -- item name in Database
                itemLabel = "Apple", -- item lable to display in UI
                itemImage = "apple.png", -- image in html/assets
                itemPrice = 5, -- item price
                itemCategory = 'food', -- item category
                -- IMAGE RESOLUTION --
                -- 150x100 Pixels --
                -- IMAGE RESOLUTION --
            },
            [2] = {
                itemName = "kiwi",
                itemLabel = "Kiwi",
                itemImage = "kiwi.png",
                itemPrice = 2,
                itemCategory = 'food',
            },
            [3] = {
                itemName = "phone",
                itemLabel = "Phone",
                itemImage = "phone.png",
                itemPrice = 100,
                itemCategory = 'electronics',
            },
            [4] = {
                itemName = "bandage",
                itemLabel = "Bandage",
                itemImage = "Bandage.png",
                itemPrice = 25,
                itemCategory = 'utilities',
            },
        }
    },

    ['blackmarket'] = {
        shopName = 'BLACK MARKET',
        useBlackMoney = true,
        menuCoords = vector3(-1.8970, -1400.0311, 29.2717),

        -- Categorys
        categorysConfig = {'ilegal'},

        -- OxTarget
        oxTargetConfig = {
            icon = 'fa-solid fa-cube',
            label = 'Black Market',
        },

        -- Markers
        markersConfig = {
            markerMenu = {
                useKey = 38, -- E
                markerType = 2,
                markerSize  = {x = 0.3, y = 0.3, z = 0.3}, 
                markerColor = {r = 255, g = 255, b = 255},
                markerText = '[ ~g~E~w~ ] BLACK MARKET'
            },
        },

        -- Blips
        blipsConfig = {
            blipMenu = {
                blipName = 'BLACK MARKET',
                blipSprite = 59,
                blipScale = 0.8,
                blipColor = 2,
                blipShow = false,
            },
        },

        -- Shop Items
        shopItems = {
            [1] = {
                itemName = "radio", 
                itemLabel = "Radio", 
                itemImage = "radio.png", 
                itemPrice = 250,
                itemCategory = 'ilegal',
            },
        }
    },
}

Updates - Latest 29/11/2023

UPDATE - 22/11/2023

  • Code completely redone.
  • Added support to ox-target.
  • Added category System (each store has its categories).
  • UI Redone, some changes and responsive resolutions.

UPDATE - 25/11/2023

  • Added Search Input
  • Added “Basket Empty” Message
  • Fixed checkout function (was repeating it several times).
  • Added %total% string in messages config, so you can use the total of the basket in the messages.

UPDATE - 27/11/2023

  • Added Clear Basket Button.
  • Added Green background to item total price to highlight more.

UPDATE - 28/11/2023

  • Design of basket products reworked.
  • Now each shop has its own oxTarget config.
  • Added Black Market example in config.

UPDATE - 29/11/2023

  • Added BlackMoney option (Configurable for each store).
    So Players can pay with blackmoney for blackmarket, for example.

  • If the store has blackmoney activated, the item price style will turn red and the bank/cash buttons will be replaced by a blackmoney button.

Download - Github

Code is accessible Yes
Subscription-based No
Lines (approximately) 1000
Requirements ESX or QB
Support Yes
13 Likes

Would love this for QBCore.

1 Like

It’s open source you can make it qbcore

1 Like

i have suggestion u can make an input box player can chose how much to buy like with left click u add 1+ but with right click u get input box where u chose to input amount

on checkout option another modal open ( cash or credit card )

just a suggestion

this looks soo good <3

1 Like

maybe in the future, many years working with esx :sweat_smile:
But like Tristan_Sanchez1 said, it’s open source so if you feel comfortable to contribute I will be happy to see!

2 Likes

suggestion pointed out, in the next update it will be included :wink:

<3 i’ll make a pr for qbcore

3 Likes

pertfect one boy

1 Like

UPDATE 08/08/2022

2 Likes

Nice :smiley:

1 Like

My boy redyy, working good again ! <3

1 Like

How is it possible to add seperate shops like “Food Store” with Food and “Phone Store” with only phones? Thanks! :slight_smile:

1 Like

Hello, not yet! But in the next update :smile:

Hello I have this installed on new qb-core and the shop pops up but when ‘checkout’ is clicked the shop closes and no items are received and no money is taken? Screenshot by Lightshot

Editing: I was able to catch a message that said no items in cart when i tried to make the purchase but I had bandages and water in the store/cart and those items are both in qbcore shared file.

dont can sell on this shops ?

Hello, sorry for the late but no. At this moment you can’t sell items in the shop, but in a future update yes

can u make this resource for multiple shop for each shop not same item sry for bad english

Change line 20 in the server.lua

local Money = Player.PlayerData.money[“cash”]
to
local Money = xPlayer.PlayerData.money[“cash”]

1 Like

sure, next update! :smile:

how long will it take sir? T^T