I welcome you CFX community!
Introducing a groundbreaking crate system that enhances your serverโs gameplay! This innovative resource enables you to unlock boxes, just like in real life, and receive rewards of varying degrees.
Setting up the entire resource is a breeze thanks to a straightforward configuration file, which enables you to add items quickly. Your players will be overjoyed with the numerous features this system offers. Set your server apart by providing something new and thrilling!
Demonstration of the system:
Example of a configuration file:
Configuration files
-- /*
-- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-- โโโโโโโฆโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-- โโโโโโโฆโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
-- โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ*/
Config = {}
-- Are you using ESX?
Config.UseESX = true
-- Enable this if ESX throws an error: Used the getSharedObject Event, this event no longer exists!
Config.UseESX_lib = false
-- Are you using QBCore?
Config.UseQB = false
-- Are you using Standalone?
Config.UseStandalone = false
-- Do you want to use items ?
Config.UseItem = true
-- Inventory item for crate.
Config.ItemNameCrate = "crate"
-- Interaction distance.
Config.interactDist = 3.0
-- Interaction Button.
Config.interactButton = 38
-- Translation.
Config.TranslationinteractDist = "Press to place"
-- Delete Button.
Config.delButton = 178
-- Translation.
Config.TranslationdelButton = "Press to cancel"
-- Rotate Button.
Config.rotateButtonR = 175
-- Translation.
Config.TranslationButtonR = "Press to rotate to the right"
Config.rotateButtonL = 174
-- Translation.
Config.TranslationButtonL = "Press to rotate to the left"
-- Translation.
Config.TranslationText1 = "Press ~INPUT_CONTEXT~ to ~g~interact"
-- Use Burevestnik Interaction Button (https://forum.cfx.re/t/free-standalone-interaction-button/4860169)
Config.UseBurevestnikInteractionButton = false
Config.BurevestnikInteractionButton = "E"
Config.BurevestnikInteractionButtonText = "Press to interact with the quest"
Config.BurevestnikInteractionButtonText2 = "Press to interact"
-- Use custom notifications
RegisterNetEvent("Burevestnik_crate:CustomNotifications")
AddEventHandler("Burevestnik_crate:CustomNotifications", function(type, name, amount)
if type == "rewardItem" then
HelpNotificationBottom("Your reward: ~g~" .. amount .. "x " .. name) -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
elseif type == "rewardMoney" then
HelpNotificationBottom("Your reward: ~g~" .. amount .. "$") -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
elseif type == "clientEvent" then
HelpNotificationBottom("Your reward: ~g~client event") -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
elseif type == "serverEvent" then
HelpNotificationBottom("Your reward: ~g~server event") -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
elseif type == "buy" then
HelpNotificationBottom("You bought: ~g~" .. amount .. "x " .. name) -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
elseif type == "noMoney" then
HelpNotificationBottom("~r~You do not have enough money!") -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
elseif type == "sell" then
HelpNotificationBottom("You sold: ~y~" .. amount .. "x " .. name) -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
elseif type == "noItem" then
HelpNotificationBottom("~r~You do not have enough items!") -- If you want to use custom notifications, just paste your export here. The 'text' variable is the text that your export will receive during the notification.
end
end)
-- Do you want to use shops ?
Config.UseShop = true
Config.shopName = "Crate shop"
Config.translateSale = "Sell"
Config.translate1 = "Buy"
Config.translate2 = "crate for"
Config.PurchaseQuantity1 = 1
Config.PurchaseQuantity2 = 5
Config.PurchaseQuantity3 = 10
Config.PurchaseQuantity4 = 20
Config.buyC = 100
Config.sellC = 90
Config.Shop = {
{
location = vector3(797.0630, -2988.8069, 6.0209), --Coordinates for shop and blip
useBlip = true, --The ability to use blip on the map for this ped.
blipID = 615, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 2, --Blip color.
blipText = "Crate shop" --Blip text.
},
}
Config.DroppingChanceTier1 = 0.4 -- 40% chance of tier 1
Config.DroppingChanceTier2 = 0.3 -- 30% chance of tier 2
Config.DroppingChanceTier3 = 0.3 -- 30% chance of tier 3
Config.rewards = {
{ --tier 1
{
model = `prop_spraygun_01`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "item", -- "item", "money", "clientEvent", "serverEvent"
rewardItemName = "bread",
rewardItemAmount = 1,
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 1" --Blip text.
},
{
model = `prop_anim_cash_pile_02`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "money", -- "item", "money", "clientEvent", "serverEvent"
rewardMoney = 100,
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 2" --Blip text.
},
{
model = `prop_cs_book_01`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "clientEvent", -- "item", "money", "clientEvent", "serverEvent"
eventName = "burevestnik_test_cl",
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 3" --Blip text.
},
{
model = `prop_old_boot`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "serverEvent", -- "item", "money", "clientEvent", "serverEvent"
eventName = "burevestnik_test_sv",
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 4" --Blip text.
},
},
{ --tier 2
{
model = `prop_spraygun_01`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "item", -- "item", "money", "clientEvent", "serverEvent"
rewardItemName = "water",
rewardItemAmount = 1,
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 5" --Blip text.
},
{
model = `prop_anim_cash_pile_02`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "money", -- "item", "money", "clientEvent", "serverEvent"
rewardMoney = 100,
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 6" --Blip text.
},
{
model = `prop_cs_book_01`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "clientEvent", -- "item", "money", "clientEvent", "serverEvent"
eventName = "burevestnik_test_cl",
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 7" --Blip text.
},
{
model = `prop_old_boot`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "serverEvent", -- "item", "money", "clientEvent", "serverEvent"
eventName = "burevestnik_test_sv",
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 8" --Blip text.
},
},
{ --tier 3
{
model = `prop_spraygun_01`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "item", -- "item", "money", "clientEvent", "serverEvent"
rewardItemName = "cola",
rewardItemAmount = 1,
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 9" --Blip text.
},
{
model = `prop_anim_cash_pile_02`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "money", -- "item", "money", "clientEvent", "serverEvent"
rewardMoney = 100,
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 10" --Blip text.
},
{
model = `prop_cs_book_01`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "clientEvent", -- "item", "money", "clientEvent", "serverEvent"
eventName = "burevestnik_test_cl",
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 11" --Blip text.
},
{
model = `prop_old_boot`, --model
useBlip = true, --The ability to use blip on the map for this ped.
rewardType = "serverEvent", -- "item", "money", "clientEvent", "serverEvent"
eventName = "burevestnik_test_sv",
blipID = 478, --Blip ID.
blipScale = 0.8, --Blip scale.
blipColor = 0, --Blip color.
blipText = "Crate 12" --Blip text.
},
},
}
Optimization (The script consumes):
0.00 ms in a quiet state.
0.01 ms in an active state.
What does this system include:
-
This system works on all versions of ESX, QBCore, as well as STANDALONE!
-
Items of various rarity!
-
Interactive crate opening!
-
Customizable chance of dropping items!
-
Various types of rewards (Items, money, events)!
-
Detailed configuration file!
-
Random artifacts in the zones!
-
Minimalistic user interface
-
You can completely change the user interface at will!
-
Of course support, Iโm ready to help you!
TOP SALES
You may also be interested in my other resources:
Code is accessible | Open source: Yes \ Escrow: No - Available only: config, ui |
Subscription-based | No |
Lines (approximately) | ~1000 |
Requirements | Standalone/ESX/QBCore and Game Build 2802+ |
Support | Yes |