[STANDALONE] Store Robberies by SpecialStos - v1.1.2

Store Robberies - Buy Now on Tebex

YOUTUBE IN-DEPTH SHOWCASE:

https://www.youtube.com/watch?v=AZ6Hz6kzNp0

Screenshots:

Expand

More soon.




Features:

Expand
  • Unique Stores: Every store can differ from another and you can have as many as you want. You are able to set what kind of safe will be at the back, which cameras it disables, how many cops are needed and all the payouts!
  • Shopkeepers with personality: Every store has a shopkeeper which changes by time as well to make it look like a real city with job shifts. Every shopkeeper has it’s own personality, that means some shopkeepers get easier scared where the others ones will fight back. They have configurable options such as, calling the cops early, giving the safe code, their willingness to fight back for the shop and what weapons to they carry with them into the shop.
  • Register Lockpicking: So in case the shopkeeper is not there or it has died there is always an option to lockpick the register and still get the money. The lockpicking is quite hard, check the video.
  • 2 Types of Safes: So we provide you with 2 types of safes, a keypad safe whereas the shopkeeper must give you the code or a padlock one which you need to crack yourself through an advanced minigame.
  • Server-Sided Synchronization: So this script is synchronized through the server. This is done so we have all of the things done working for everyone live without bugs/exploits.
  • Ped-Handler: We created our own ped handler which makes sure the maximum spawned peds would be 1 (Pretty much deletes the peds if you are far away). This is done so you won’t get crashes regarding pool sizes and for optimization.
  • Fully Customizable Config: Just from the config alone you can change anything without the need of any advanced coding skills.

Optimization:

Expand

Store Robberies are well optimized. Including the ped handler makes it a lot better actually.

  • Store Robberies : 0.01-0.02 ms.
  • Draw 3D Text : 0.04-0.05 ms. (This is completely changeable depending if you wanna use it in your server)
  • Garbage Collector: 0.00ms

Dependencies and Compatibility:

Expand

Framework Dependencies: none (This can be standalone or work with ANY framework)

Sql Resource Dependencies: none

Resource Dependencies: none

Locales/Translations: English, changeable through languages.lua

OneSync Compatibility
:white_check_mark:

Non-OneSync Compatibility
:white_check_mark:

Config:

Expand
Config = {}

--IMPORTANT STUFF--
Config.CheckVersion =  true -- Enable/Disable version checker. Prints on serverside console.
Config.Language = 'en' --Default language, make your own language under the languages section.
Config.Framework = "NONE" --Set this between "ESX" or "QBUS" or "NONE"
Config.UseCopJob = false --Use police check to see if the player can rob the place.\
Config.UsingSurveillanceSystem = true --Enable this if you are using SurveillanceSystem by Voxit. Check it out here: https://store.voxit.xyz/
Config.CopJobs = { --Set your police job names here.
    "police",
    "police2"
}
Config.ShopkeeperResetTime = 1000 * 60 * 30 --ShopKeeper reset timer. Default is 30 minutes, so every 30 minutes the shopkeeper at every shop changes. Just to make it look unique.
Config.UseBlips = true --Set to true if you want to have store blips.
Config.PoliceCall = true --Set to true if you want to have robbery blips.
Config.PoliceCallTimer = 300 -- Police robbery timer in seconds.
Config.PoliceCallSpamPrevention = 30 -- Police robbery timer in seconds.
Config.UseMeleeRobbing = true
--IMPORTANT STUFF--


--CONTROLS--
Config.EmptyRegisterButton = 46 --Default is 46 (E).
Config.DisableCamerasButton = 74 --Default is 74 (H).
Config.LockpickRegisterButton = 46 --Default is 46 (E).
Config.SafeButton = 46 --Default is 46 (E).
--CONTROLS--


--Shops--
Config.Shops = {
    [1] = {
        name = "Limited Ltd Grove St", --Name of the shop
        blip = vector3(-46.62, -1758.12, 29.42),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-46.62, -1758.12, 29.42), --The shopkeeper's coords.
        shopKeeperHeading = 49.53, --Shopkeeper's heading.
        shopKeeperState = false, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-47.08, -1757.73, 29.42), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-43.92, -1748.08, 29.42),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {4}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [2] = {
        name = "Rob's Liqour Prosperity St", --Name of the shop
        blip = vector3(-1486.2, -377.96, 40.42),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-1486.2, -377.96, 40.42), --The shopkeeper's coords.
        shopKeeperHeading = 131.43, --Shopkeeper's heading.
        shopKeeperState = false, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-1486.72, -378.52, 40.42), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-1478.61, -375.75, 39.38),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "padlock", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {5}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [3] = {
        name = "Rob's Liqour San Andreas Ave", --Name of the shop
        blip = vector3(-1221.93, -908.53, 12.57),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-1221.93, -908.53, 12.57), --The shopkeeper's coords.
        shopKeeperHeading = 32.08, --Shopkeeper's heading.
        shopKeeperState = false, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-1222.36, -907.92, 12.57), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-1478.61, -375.75, 39.38),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "padlock", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {5}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [4] = {
        name = "Limited Ltd Ginger St", --Name of the shop
        blip = vector3(-705.99, -913.71, 19.28),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-705.99, -913.71, 19.28), --The shopkeeper's coords.
        shopKeeperHeading = 88.93, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-706.59, -913.71, 19.28), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-710.21, -904.12, 19.28),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {7}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    }, 
    [5] = {
        name = "24/7 Supermarkt Innocence Blvd", --Name of the shop
        blip = vector3(24.35, -1347.24, 29.52),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(24.35, -1347.24, 29.52), --The shopkeeper's coords.
        shopKeeperHeading = 271.4, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(24.95, -1347.24, 29.52), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(28.24, -1338.81, 29.52),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {8}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    }, 
    [6] = {
        name = "Rob's Liqour El Rancho Blvd", --Name of the shop
        blip = vector3(1134.25, -982.44, 46.37),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(1134.25, -982.44, 46.37), --The shopkeeper's coords.
        shopKeeperHeading = 277.42, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(1134.7, -982.38, 46.37), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(1126.79, -979.69, 45.42),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "padlock", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {9}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    }, 
    [7] = {
        name = "Limited Ltd West Mirror Drive", --Name of the shop
        blip = vector3(1164.78, -322.77, 69.29),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(1164.78, -322.77, 69.29), --The shopkeeper's coords.
        shopKeeperHeading = 99.78, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(1164.19, -322.88, 69.29), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(1158.9, -314.18, 69.29),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {10}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [8] = {
        name = "24/7 Supermarkt Clinton Ave", --Name of the shop
        blip = vector3(372.25, 326.58, 103.64),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(372.25, 326.58, 103.64), --The shopkeeper's coords.
        shopKeeperHeading = 253.58, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(372.97, 326.38, 103.64), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(378.22, 333.77, 103.64),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {11}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
        },
    [9] = {
        name = "Limited Ltd Banham Canyon Dr", --Name of the shop
        blip = vector3(-1819.93, 794.31, 138.05),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-1819.93, 794.31, 138.05), --The shopkeeper's coords.
        shopKeeperHeading = 131.68, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-1820.4, 793.93, 138.05), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-1829.68, 798.21, 138.05),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {12}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [10] = {
        name = "Rob's Liqour Great Ocean Hwy", --Name of the shop
        blip = vector3(-2966.14, 390.81, 15.18),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-2966.14, 390.81, 15.18), --The shopkeeper's coords.
        shopKeeperHeading = 84.82, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-2967.02, 390.95, 15.18), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-2959.69, 386.63, 13.92),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "padlock", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {13}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [11] = {
        name = "24/7 Supermarkt Ineseno Road", --Name of the shop
        blip = vector3(-3038.94, 584.26, 7.53),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-3038.94, 584.26, 7.53), --The shopkeeper's coords.
        shopKeeperHeading = 7.72, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-3039.04, 585.0, 7.53), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-3048.39, 585.4, 7.53),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {14}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [12] = {
        name = "24/7 Supermarkt Barbareno Rd", --Name of the shop
        blip = vector3(-3242.29, 999.78, 12.68),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(-3242.29, 999.78, 12.68), --The shopkeeper's coords.
        shopKeeperHeading = 354.44, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(-3242.22, 1000.53, 12.68), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(-3250.37, 1004.47, 12.81),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {15}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [13] = {
        name = "24/7 Supermarkt Route 68", --Name of the shop
        blip = vector3(548.96, 2671.27, 42.1),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(548.96, 2671.27, 42.1), --The shopkeeper's coords.
        shopKeeperHeading = 98.49, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(548.36, 2671.24, 42.1), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(546.45, 2662.35, 42.1),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {16}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [14] = {
        name = "Rob's Liqour Route 68", --Name of the shop
        blip = vector3(1165.91, 2711.01, 38.28),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(1165.91, 2711.01, 38.28), --The shopkeeper's coords.
        shopKeeperHeading = 180.74, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(1165.95, 2710.26, 38.28), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(1169.76, 2717.82, 37.43),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "padlock", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {17}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [15] = {
        name = "24/7 Supermarkt Senora Fwy", --Name of the shop
        blip = vector3(2677.91, 3279.15, 55.25),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(2677.91, 3279.15, 55.25), --The shopkeeper's coords.
        shopKeeperHeading = 332.0, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(2678.26, 3279.81, 55.25), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(2672.26, 3286.97, 55.25),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {18}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [16] = {
        name = "24/7 Supermarkt Alhambra Dr", --Name of the shop
        blip = vector3(1959.97, 3739.98, 32.28),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(1959.97, 3739.98, 32.28), --The shopkeeper's coords.
        shopKeeperHeading = 300.9, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(1960.48, 3740.28, 32.28), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(1959.0, 3749.42, 32.28),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {19}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
    [17] = {
        name = "24/7 Supermarkt Senora Fwy", --Name of the shop
        blip = vector3(1727.52, 6415.41, 35.2),
        copsNeeded = 1, --Cops needed to start the robbery
        shopKeeper = nil, --Don't touch.
        shopKeeperCoords = vector3(1727.52, 6415.41, 35.2), --The shopkeeper's coords.
        shopKeeperHeading = 242.78, --Shopkeeper's heading.
        shopKeeperState = nil, --Don't touch.
        shoperKeeperSpawned = false, --Don't touch.
        registerCoords = vector3(1728.2, 6415.1, 35.2), --The register's coords.
        registerMoney = {50, 400}, --The money you can get from the register, from low to high.
        safeCoords = vector3(1735.1, 6421.3, 34.79),
        safeMoney = {400, 2200}, --The money you can get from the safe, from low to high.
        safeType = "keypad", --Type of safe. 2 options: "keypad" and "padlock"
        safeCode = nil, --Don't touch.
        cooldown = {hour = 1, minute = 0, second = 0}, --Cooldown till the shop resets.
        camera = {19}, --Example: {1,2,3} for multiple cameras.
        registerOpened = nil, --Don't touch.
        safeOpened = nil, --Don't touch.
        canRob = nil, --Don't touch.
        copsCalled = nil,  --Don't touch.
    },
}
--Shops--

--ShopKeepers--
Config.Shopkeepers ={ --https://docs.fivem.net/docs/game-references/ped-models/ to see the models.

   [1] =  {
        model = `a_m_y_yoga_01`,
        CallCopsEarlyChance = 70,
        FightBackChance = 15,
        GiveSafeCodeChance = 30,
        ScaredChance = 50,
        DisableCamerasFakeChance = 70,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
            [5] = `weapon_sawnoffshotgun`,
            [6] = `weapon_dbshotgun`,
        }
    },

   [2] = {
        model = `a_f_m_downtown_01`,
        CallCopsEarlyChance = 50,
        FightBackChance = 10,
        GiveSafeCodeChance = 20,
        ScaredChance = 80,
        DisableCamerasFakeChance = 20,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
        }
    },
   
   [3] = {
        model = `a_f_m_skidrow_01`,
        CallCopsEarlyChance = 80,
        FightBackChance = 50,
        GiveSafeCodeChance = 10,
        ScaredChance = 30,
        DisableCamerasFakeChance = 80,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
            [5] = `weapon_sawnoffshotgun`,
            [6] = `weapon_dbshotgun`,
        }
    },

   [4] = {
        model = `a_f_m_soucent_01`,
        CallCopsEarlyChance = 70,
        FightBackChance = 30,
        GiveSafeCodeChance = 40,
        ScaredChance = 70,
        DisableCamerasFakeChance = 70,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
        }
    },

   
   [5] = {
        model = `a_f_m_soucent_02`,
        CallCopsEarlyChance = 70,
        FightBackChance = 30,
        GiveSafeCodeChance = 40,
        ScaredChance = 70,
        DisableCamerasFakeChance = 30,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
        }
    },

   [6] = {
        model = `a_f_y_hipster_02`,
        CallCopsEarlyChance = 70,
        FightBackChance = 30,
        GiveSafeCodeChance = 40,
        ScaredChance = 60,
        DisableCamerasFakeChance = 40,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
        }
    },

   [7] = {
        model = `a_m_m_fatlatin_01`,
        CallCopsEarlyChance = 50,
        FightBackChance = 10,
        GiveSafeCodeChance = 50,
        ScaredChance = 90,
        DisableCamerasFakeChance = 10,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
            [5] = `weapon_sawnoffshotgun`,
            [6] = `weapon_dbshotgun`,
        }
    },

   [8] = {
        model = `cs_jimmyboston`,
        CallCopsEarlyChance = 90,
        FightBackChance = 75,
        GiveSafeCodeChance = 10,
        ScaredChance = 10,
        DisableCamerasFakeChance = 90,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
            [5] = `weapon_sawnoffshotgun`,
            [6] = `weapon_dbshotgun`,
        }
    },

   [9] = {
        model = `csb_chef`,
        CallCopsEarlyChance = 80,
        FightBackChance = 60,
        GiveSafeCodeChance = 20,
        ScaredChance = 40,
        DisableCamerasFakeChance = 60,
        Weapons = {
            [1] = `weapon_pistol`,
            [2] = `weapon_heavypistol`,
            [3] = `weapon_revolver`,
            [4] = `weapon_snspistol`,
            [5] = `weapon_sawnoffshotgun`,
            [6] = `weapon_dbshotgun`,
        }
    }
}
--ShopKeepers--

Changelogs:

Expand

v1.0.1
Small hotfix regarding spawning peds.

v1.0.2
Added the option to have blips for servers that do not have built in stores already. Small hotfix as well.

v1.0.3
JS, and NUI fixes regarding lockpicking. Optimization done as well.

v1.0.4
Fixed ped spawning errors. Changed html/css/js code, and also made the keypad safebox different. Looks way better now. Lastly optimizations were done regarding distances.

v1.0.5
Added fightback function when you open the safe, shopkeeper comes with BAT. Some fixes, optimization. Now your able to rob with melee weapons, and robbery blips for police. Lastly we have a new security measure so cheaters can’t spawn money from this script.

v1.0.6
FightBack function synchronized from server.

v1.0.7
Small hotfix.

v1.0.8
Fixed fightback function, added new method of fightback as well.

v1.0.9
Cops alert fix.

v1.1.0
Polished animations server-sidedly, updated safe bug, general optimization of the resource and added melee as a new way to rob.

v1.1.1
Fixed safe exploit. Added a configurable timer on police alerts. Added a version checker. Re-organized the structure and the code of the resource, easier to understand now.

v1.1.2
Fixed spamming event. Fixed ESX code, added full support to QBUS as well. Just switch through the config what framework your using.

Check out fully our Tebex store at https://store.voxit.xyz

Take care, peace. <3

2 Likes

Bro this looks so great. Is it obfuscated? That’s my only concern.

Edit: Ah, yes it is. I believe you need to put that in your thread in order to sell here.

Hey mate,

As per new rules, obfuscation is not allowed anymore. If you have any further questions feel free to either pm me through here or post on the topic below.

Thanks for reading,
Cisoko

So is it unobfuscated? It says on the site that it is obfuscated.

It was obfuscated into some extend but because i just read about the rules, i haven’t had the time to update the appropriate html text on the store as well.

It is unobfuscated now though.

Thanks for reading,
Cisoko

Fantastic, thanks man! Very excited about this.

Bro I see some scripts from qbus. Does the whole thing work on qbus ?

Are this included in 1 script or as different ones?

Everything you see in any of the Screenshots and Photos are included in Store Robberies as it is a standalone resource.

As for the qbus thing, yes they look similar as it is pretty much creativity forcing me with this ui :stuck_out_tongue:

This is a complete standalone script, and you can use it in ANY framework or even in an empty FiveM server.

I dont belive that the lockpick is made by you The image itself is from qbus

and the pin keypad is also from qbus

The lockpick minigame was an open source code i was advised by a customer to use from github. As for the keypad i’ve used them same html code my old developer has used in our server. Honestly i don’t even know if it is from QBus or not :stuck_out_tongue:

All .lua files though are written from scratch.

Maybe you are right, but i do know my work so i’ll stick with it. If i need to compare code and such i would still be happy to. You’ll see from there, really :stuck_out_tongue:

Thanks for reading,
Cisoko

2 Likes

Is this Ip locked ?

are you authrozied to resell qbus stuff? :slight_smile:

Hey there Nyambura,

No one has ever said i resell QBus stuff. In fact, i would like to clear some things up as many people are going to read this comment.

With all due respect the certain individual (“Nyambura”) is one of the reasons the dev world of FiveM started encrypting code, since they leak stuff and resell things which they don’t own. I won’t go through more about it since it is bad at the end of the day, but we as developers tend to spend so much time and effort here that we know many other devs/leakers or anything of this type. It is quite a small world at the end of the day.

As i stated above i will stick with my writing since it is what it is, the people who do buy scripts from us do see our hard work. Haters, will always be haters and you can’t really change that. Especially when they get jealous when they don’t have knowledge in coding.

Anyways, you got my point. We’re not here to inflict drama, i do standalone resources which are unique and high quality and that’s what the goal will remain for the entirety of my stay in the FiveM community.

Expect more cool stuff soon,
Peace :slight_smile:

1 Like
  1. never resold something :slight_smile:
  2. yea, i had once the biggest leaking community ( hey sup, keep in mind you grow up out of this )
  3. did you forgot when you was asking for help on dms? on support channels? on your twitch lives? oh… let me guess… yes, you did.
  4. you’re selling 3 scripts, all of them are premade with some changes.
  5. current script files are from qbus, it is as it is, everyone knows n says same above our comments.
  6. :wink: call me to teach you some coding mate.

w/ love from daddy nyam
P.S , don’t claim your self as a developer :slight_smile:

1 Like

Hey there,

Honestly, professionalism will not allow me to reply anything on this comment. I respect your beliefs, but the facts lean in my direction.

I am happy you did clear out stuff, and I agree that people change from mistakes. So yeah, I hope you all the best. Keep your head down, focus more on your path, and don’t lose time into non-sense like hating this topic here.

Best regards,
Cisoko

Hey there everyone,

hoping you are all having a good day.

Store Robberies have been updated to v1.0.5. You may see changelogs above and new screenshots for the safe.

As for the frequently asked questions:

  1. Is the script encrypted and authenticated from our servers: No, we will be providing you full source code.

I wanted to share my experience with this seller. Let me start by saying I’m new to Cfx and FiveM. This is the first PAID mod I have attempted to use.

After purchasing I was sent a link to their discord. After verifying in their Discord I was sent a message from a bot on another Discord that I needed to verify my info to access the download. I was redirected to login.dcounter.space which requested me to login with Discord. Which I hesitantly did, then I was redirected again back to Discord and then it requested to have Admin access to my server. Which I promptly denied. I then sent a message to the seller stating my concerns and asking if all this was necessary. Which among other things he replied “Either you do not know how discord bots work, or you do live in your own world”

The truth is not I do not know anything about Discord bots. I do know that I purchased this mod and there were no details about this lengthy verification process. The bots and permissions granted may be totally harmless, but the fact is I have no way of knowing that. I was simply asking him about the process because I was concerned about my security.

I’ve worked in software development for 18 years and one thing I’ve learned is to never assume your users know anything. You should be transparent with your processes and especially don’t be rude to them.

Hey there,

Thank you for your kind feedback. I do accept any criticism as we do learn out of it. In your case, though, this is entirely not the case, and it does seem like you came to attack my resources specifically; maybe I am wrong, but it does seem so as we chatted already and you didn’t help the situation at all even though I explained to you the steps needed to proceed to download the resource.

Firstly about Discord bots. In our discord server, we DO NOT have bots that can collect any data about FiveM; I mean, is that even possible? The only thing we do use is a bot that prevents alt account; in your case, you have joined with two different accounts, I don’t know the reason, but that’s what happened. You granted access to the bot reading your DISCORD PROFILE. If you do want to read more about this bot, then feel free to head into this link as this is not a creation from Voxit: https://dcounter.space/.

The only thing I would accept from this is finishing the guides and making downloading easier, even if it is easy and already 120 customers had no issues at all except you.

The reason why I do use such “language” is that accusations are harmful, and primarily when you use them in places where you shouldn’t. Accusing me of “stealing” server information or such is firstly impossible and second not allowed by my standards. We do business as usual, and all our customers until now were happy. I am disappointed, though, regarding this case.

Lastly, I want to finish off since I did write everything; you can either go through my messages and proceed the same way as I already explained to you or I can happily fully refund you as posting non-sense to hit a resource is just a no-go.

Best Regards,
Cisoko

I’m not here to “attack your resources” I’m simply letting people know you provide horrible customer service. I did not accuse you of stealing anything. I simply asked you a for help to clarify your process because I was concerned about my security. You were unhelpful , rude, and you seemed to have stopped replying to me after I called you out for it. You could have just answered my questions, and maybe even apologized for your rudeness but no, here we are.