Hey guys,
with this script I want to present my enhanced clothesshop!
This script comes with an optional myClothes API, which makes the wardrobe work together with a Multichar system (which doesn’t worked with esx_addonaccount). More information below.
Features:
-
Torso bug prevention: For every torso of the male and female skin, there is a suitable t-shirt and arms configured. So when you scroll through the Torsos, the script will automatically adapt your t-shirt and arms. When you change your arms afterwards manually, they can still bug, but a suitable example is always given.
If you have modded clothing parts , you can also configure this prevention for those. - Script spawns NPC sellers to make it more realistic
→ to avoid bugs and increase performance the npc is being deleted when you are out of focus.
- Beautiful UI using NativeUI. As well as menu headers, which depends on the location where you are
- You can set up different shops: Default is one shop for main clothes, one shop for accessoires, and a mask shop. (You can disable every shop type in the config!)
- As usual the script comes with a full translation Config and default support for German and English.
- You can access saved outfits in the clothesshops (Can be disabled in Config)
Update 12.01.2021:
- You can now block certain clothes from being bought in the Clothesshops, so you can for example block Police/EUP uniforms and avoid abuse.
Update 02.02.2022
- You can now create as many different clothesshops as you want
→ with different (restricted) content. Also added option for a required job.
Showcase:
Shop menu:
Regarding Escrow
This script is managed through the FiveM Keymaster.
Regarding this we paid the highest attention to the opportunity that everybody can simply modify everything without any encryption.
For this matter we only included about 2-3 pretty small functions, which never have to be modified and can’t cause any problems into the escrow file. So I can promise 100% that you will not even notice this protection, when you aren’t willed to leak the script.
Config
Config.Locale = 'en'
Config.useESXClothesData = true -- Clothing is saved in esx_addonaccount.
Config.useMyClothesAPI = false -- Optimized API to work with a Multichar script. If you don't use myProperties, you need to edit your property script!
Config.Price = 149
Config.NormalShopPed = "s_f_m_fembarber"
Config.HATersShopPed = "a_f_y_runner_01"
Config.MaskShopPed = "u_m_y_pogo_01"
Config.NormalBlipColour = 4
Config.Shops = {
{type = 'shopui_title_highendfashion', x = -164.94119262695, y = -302.57022094727, z = 39.733283996582, rot = 249.01162719727},
{type = 'shopui_title_lowendfashion', x = 73.976188659668, y = -1392.4613037109, z = 29.376148223877, rot = 269.44592285156},
{type = 'shopui_title_highendfashion', x = -708.56243896484, y = -151.98893737793, z = 37.415138244629, rot = 115.29697418213},
{type = 'shopui_title_lowendfashion2', x = 427.12158203125, y = -806.90734863281, z = 29.491146087646, rot = 93.260101318359},
{type = 'shopui_title_lowendfashion2', x = -822.896484375, y = -1071.9536132813, z = 11.32811164856, rot = 204.75247192383},
{type = 'shopui_title_highendfashion', x = -1449.1019287109, y = -238.50553894043, z = 49.813743591309, rot = 50.546726226807},
{type = 'shopui_title_lowendfashion2', x = 5.5428671836853, y = 6510.9501953125, z = 31.877834320068, rot = 45.513442993164},
{type = 'shopui_title_lowendfashion2', x = -822.896484375, y = -1071.9536132813, z = 11.32811164856, rot = 204.75247192383},
{type = 'shopui_title_midfashion', x = 127.06841278076, y = -224.28421020508, z = 54.55782699585, rot = 69.159606933594},
{type = 'shopui_title_lowendfashion2', x = 1695.4453125, y = 4822.890625, z = 42.063125610352, rot = 93.038833618164},
{type = 'shopui_title_midfashion', x = 612.69256591797, y = 2762.6242675781, z = 42.088088989258, rot = 272.66879272461},
{type = 'shopui_title_lowendfashion2', x = 1196.9788818359, y = 2711.7102050781, z = 38.222637176514, rot = 183.91091918945},
{type = 'shopui_title_midfashion', x = -1194.1501464844, y = -766.68597412109, z = 17.315553665161, rot = 217.00065612793},
{type = 'shopui_title_midfashion', x = -3169.0966796875, y = 1043.171875, z = 20.863214492798, rot = 61.406246185303},
{type = 'shopui_title_lowendfashion', x = -1102.4339599609, y = 2711.7355957031, z = 19.10786819458, rot = 227.7255859375},
{type = 'HAT', x = -1127.3669433594, y = -1439.6357421875, z = 5.2283296585083, rot = 286.5080871582},
{type = 'MASK', x = -1337.1248779297, y = -1278.2264404297, z = 4.8689041137695, rot = 118.77864837646},
}
Config.shopContent = { -- normal shop
{componentID = 11, name = 'torso_1', name2 = 'torso_2', label = 'Torso', zoomOffset = 0.75, camOffset = 0.15, type = 1},
{componentID = 8, name = 'tshirt_1', name2 = 'tshirt_2', label = 'T-Shirts', zoomOffset = 0.75, camOffset = 0.15, type = 1},
{componentID = 3, name = 'arms', name2 = nil, label = 'Arms', zoomOffset = 0.75, camOffset = 0.15, type = 1},
{componentID = 4, name = 'pants_1', name2 = 'pants_2', label = 'Pants', zoomOffset = 0.8, camOffset = -0.5, type = 1},
{componentID = 6, name = 'shoes_1', name2 = 'shoes_2', label = 'Shoes', zoomOffset = 0.8, camOffset = -0.8, type = 1},
{componentID = 7, name = 'chain_1', name2 = 'chain_2', label = 'Chain', zoomOffset = 1.0, camOffset = 0.45, type = 1},
{componentID = 1, name = 'glasses_1', name2 = 'glasses_2', label = 'Glasses', zoomOffset = 0.6, camOffset = 0.65, type = 2},
{componentID = 2, name = 'ears_1', name2 = 'ears_2', label = 'Ear accessoires', zoomOffset = 0.4, camOffset = 0.65, type = 2},
}
Config.HATersContent = { -- accessoires shop
{componentID = 5, name = 'bags_1', name2 = 'bags_2', label = 'Bags', zoomOffset = 0.75, camOffset = 0.15, type = 1},
{componentID = 0, name = 'helmet_1', name2 = 'helmet_2', label = 'Helmet', zoomOffset = 0.6, camOffset = 0.65, type = 2},
{componentID = 6, name = 'watch_1', name2 = 'watch_2', label = 'Watch', zoomOffset = 0.8, camOffset = 0.1, type = 2},
}
Config.MaskContent = {
{componentID = 1, name = 'mask_1', name2 = 'mask_2', label = 'Mask', zoomOffset = 0.6, camOffset = 0.65, type = 1},
}
Translations
Translation = {
['de'] = {
['press_e_interact'] = 'Drücke ~g~E~s~, um mit der Verkäufer zu sprechen',
['blip_normal'] = 'Kleidungsladen',
['blip_haters'] = 'HATers Shop',
['blip_mask'] = 'Vespucci Maskenladen',
['menu_buy_clothes'] = 'Klamotten kaufen?',
['menu_confirm'] = 'Bestätigen',
['menu_abort'] = 'Abbrechen',
['title_haters'] = 'Accessoires Shop',
['change_colour'] = '~s~Farbe ändern',
['saved'] = '~g~Outfit ~w~',
['saved_2'] = '~g~ gespeichert.',
['not_enough_money'] = '~r~Du hast nicht genügend Geld.',
['buy_complete'] = '~y~Verkäuferin~s~: Vielen Dank für Ihren Einkauf und bis zum nächsten Mal.',
},
['en'] = {
['press_e_interact'] = 'Press ~g~E~s~, to change clothes',
['blip_normal'] = 'Clothes shop',
['blip_haters'] = 'HATers shop',
['blip_mask'] = 'Vespucci masks',
['menu_buy_clothes'] = 'Buy clothes?',
['menu_confirm'] = 'Confirm',
['menu_abort'] = 'Abort',
['title_haters'] = 'Accessoires shop',
['change_colour'] = '~s~Change variation',
['saved'] = '~g~Outfit ~w~',
['saved_2'] = '~g~ was saved.',
['not_enough_money'] = '~r~You do not have enough money.',
['buy_complete'] = '~y~Seller~s~: Thank you for your purchase and see you next time.',
}
}
Optional myClothesAPI
Because some of you told me they always had problems with the wardrobe, using a multichar script, I’ve developed a small script, which handles the storage of clothes.
For my property script I’ve added also a Config option, to simply switch to this API.
Dependencies:
- ESX or QB
- NativeUIReloaded
Price: 7.50€
Download at https://luis-scripts.tebex.io/package/4251745