Installation
Emote Menus
RP Emotes/DP Emotes, insert these in client > animationlist.lua > RP.Props (DP.Props for dpemotes)
["market"] = {
"missfbi4prepp1",
AnimationOptions = {
Prop = "bzzz_prop_shop_basket_a",
PropBone = 57005,
PropPlacement = {
0.34, -0.25, -0.24, -146.0, 115.0, 19.0
},
EmoteLoop = true,
EmoteMoving = true
}
},
["market2"] = {
"missfbi4prepp1",
AnimationOptions = {
Prop = "bzzz_prop_shop_basket_b",
PropBone = 57005,
PropPlacement = {
0.34, -0.25, -0.24, -146.0, 115.0, 19.0
},
EmoteLoop = true,
EmoteMoving = true
}
},
["dufbag"] = {
"move_weapon@jerrycan@generic",
"idle",
"Duffel Bag",
AnimationOptions = {
Prop = "bkr_prop_duffel_bag_01a",
PropBone = 28422,
PropPlacement = {
0.2600,
0.0400,
0.00,
90.00,
0.00,
-78.99
},
EmoteLoop = true,
EmoteMoving = true
}
},
["guncase"] = {
"move_weapon@jerrycan@generic",
"idle",
"Guncase",
AnimationOptions =
{
Prop = "prop_gun_case_01",
PropBone = 57005,
PropPlacement = {
0.10,
0.02,
-0.02,
40.0,
145.0,
115.0
},
EmoteLoop = true,
EmoteMoving = true
}
},
["shopbag3"] = {
"move_weapon@jerrycan@generic",
"idle",
"Shopping Bag 3",
AnimationOptions = {
Prop = "prop_cs_shopping_bag",
PropBone = 28422,
PropPlacement = {
0.24,
0.03,
-0.04,
0.00,
-90.00,
10.00
},
EmoteLoop = true,
EmoteMoving = true
}
},
Scully Emotes
insert these in shared > data > emotes > prop_emotes.lua
{
Label = 'Market 1',
Command = 'market',
Animation = 'idle',
Dictionary = 'missfbi4prepp1',
Options = {
Flags = {
Loop = true,
Move = true,
},
Props = {
{
Bone = 57005,
Name = 'bzzz_prop_shop_basket_a',
Placement = {
vector3(0.34, -0.25, -0.24),
vector3(-146.0, 115.0, 19.0),
},
},
},
},
},
{
Label = 'Market 2',
Command = 'market2',
Animation = 'idle',
Dictionary = 'missfbi4prepp1',
Options = {
Flags = {
Loop = true,
Move = true,
},
Props = {
{
Bone = 57005,
Name = 'bzzz_prop_shop_basket_b',
Placement = {
vector3(0.34, -0.25, -0.24),
vector3(-146.0, 115.0, 19.0),
},
},
},
},
},
{
Label = 'Duffel Bag',
Command = 'dufbag',
Animation = 'idle',
Dictionary = 'move_weapon@jerrycan@generic',
Options = {
Flags = {
Loop = true,
Move = true,
},
Props = {
{
Bone = 28422,
Name = 'bkr_prop_duffel_bag_01a',
Placement = {
vector3(0.260000, 0.040000, 0.000000),
vector3(90.000000, 0.000000, -78.989998),
},
},
},
},
},
{
Label = 'Guncase',
Command = 'guncase',
Animation = 'idle',
Dictionary = 'move_weapon@jerrycan@generic',
Options = {
Flags = {
Loop = true,
Move = true,
},
Props = {
{
Bone = 57005,
Name = 'prop_gun_case_01',
Placement = {
vector3(0.100000, 0.020000, -0.020000),
vector3(40.000000, 145.000000, 115.000000),
},
},
},
},
},
{
Label = 'Shopping Bag 3',
Command = 'shopbag3',
Animation = 'idle',
Dictionary = 'move_weapon@jerrycan@generic',
Options = {
Flags = {
Loop = true,
Move = true,
},
Props = {
{
Bone = 28422,
Name = 'prop_cs_shopping_bag',
Placement = {
vector3(0.240000, 0.030000, -0.040000),
vector3(0.000000, -90.000000, 10.000000),
},
},
},
},
},
PLEASE NOTE YOU MAY ALREADY HAVE THESE EMOTES INSTALLED SO PLEASE CHECK AND MAKE SURE
Making New Shops
The "storeType" value determines the emote you do, so if you wanted to do a grocery store (the basket emote), you would put "storeType = 'Grocery'," as seen below:
["ballas247"] = {
basketLocation = vector3(-54.21, -1754.48, 29.42),
checkoutLocation = vector3(-48.37, -1757.91, 29.42),
storeType = 'Grocery',
zones = {
{
label = "Fruits",
location = vector3(-55.44, -1753.16, 29.42),
items = {
{ name = "apple", label = "Apple", price = 2, icon = "fa-solid fa-utensils" },
{ name = "orange", label = "Orange", price = 2, icon = "fa-solid fa-utensils" },
{ name = "banana", label = "Banana", price = 2, icon = "fa-solid fa-utensils" }
}
},
{
label = "Snacks",
location = vector3(-49.39, -1758.38, 29.42),
items = {
{ name = "airheads", label = "Air Heads", price = 1, icon = "fa-solid fa-utensils" },
{ name = "bzzz_peanuts", label = "Peanuts", price = 2, icon = "fa-solid fa-utensils" },
{ name = "bzzz_pretzels", label = "Pretzels", price = 3, icon = "fa-solid fa-utensils" }
}
},
{
label = "Essentials",
location = vector3(-52.52, -1752.01, 29.42),
items = {
{ name = "mdbutter", label = "Butter", price = 2, icon = "fa-solid fa-utensils" },
{ name = "chocolate", label = "Chocolate", price = 2, icon = "fa-solid fa-utensils" },
{ name = "flour", label = "Flour", price = 3, icon = "fa-solid fa-utensils" },
{ name = "bakingsoda", label = "Baking Soda", price = 4, icon = "fa-solid fa-utensils" }
}
},
{
label = "Drinks",
location = vector3(-54.17, -1747.98, 29.42),
items = {
{ name = "water", label = "Water", price = 2, icon = "fa-solid fa-wine-glass" },
{ name = "ecola", label = "E-Cola", price = 3, icon = "fa-solid fa-wine-glass" },
{ name = "sprunk", label = "Sprunk", price = 3, icon = "fa-solid fa-wine-glass" },
{ name = "bzzz_energy", label = "Energy Drink", price = 4, icon = "fa-solid fa-wine-glass" },
}
}
}
},
However, if you wanted to do a gunstore, with the gun case emote, you would put "storeType = 'Gun',", as seen below:
["gunstorelegion"] = {
basketLocation = vector3(16.75, -1113.02, 29.8),
checkoutLocation = vector3(22.4, -1106.88, 29.8),
storeType = 'Gun',
zones = {
{
label = "Armor",
location = vector3(18.37, -1110.02, 29.8),
items = {
{ name = "armor", label = "Armor", price = 120, icon = "fa-solid fa-utensils" },
{ name = "heavyarmor", label = "Heavy Armor", price = 2, icon = "fa-solid fa-utensils" }
}
},
{
label = "Ammo",
location = vector3(22.62, -1109.62, 29.8),
items = {
{ name = "ammo-45", label = ".45 ACP Ammo", price = 25, icon = "fa-solid fa-utensils" },
{ name = "ammo-rifle", label = "Rifle Ammo", price = 45, icon = "fa-solid fa-utensils" },
{ name = "ammo-shotgun", label = "Shotgun Ammo", price = 60, icon = "fa-solid fa-utensils" }
}
},
{
label = "Guns",
location = vector3(20.06, -1106.0, 29.8),
items = {
{ name = "weapon_pistol", label = "Pistol", price = 450, icon = "fa-solid fa-utensils" },
{ name = "weapon_assaultrifle", label = "Assault Rifle", price = 3600, icon = "fa-solid fa-utensils" },
{ name = "weapon_pumpshotgun", label = "Pump Shotgun", price = 4500, icon = "fa-solid fa-utensils" }
}
}
}
},
The store types are: Grocery, Gun, Leisure, and Other
If using ps dispatch for "shop lifting"
Add this to ps-dispatch > client > alerts under the custom alert function
local function basketrobbery()
local coords = GetEntityCoords(cache.ped)
local vehicle = GetVehicleData(cache.vehicle)
local dispatchData = {
message = locale('basketrobbery'), -- add this into your locale
codeName = 'basketrobbery', -- this should be the same as in config.lua
code = '10-35',
icon = 'fas fa-store',
priority = 2,
coords = coords,
street = GetStreetAndZone(coords),
heading = GetPlayerHeading(),
jobs = { 'leo' }
}
TriggerServerEvent('ps-dispatch:server:notify', dispatchData)
end
exports('basketrobbery', basketrobbery)
Add this to ps-dispatch > shared > config under the Config.Blips section
['basketrobbery'] = { -- Need to match the codeName in alerts.lua
radius = 0,
sprite = 119,
color = 1,
scale = 1.5,
length = 2,
sound = 'Lose_1st',
sound2 = 'GTAO_FM_Events_Soundset',
offset = false,
flash = false
},
If you perfer item images over icons
Replace line 283 in client with this
icon = "nui://ox_inventory/web/images/"..item.name..".png",
Enjoy! You can let us know if theres any issues or if you have any questions here
Last updated