This script protected escrow system
[Discord]
izzy-tattooshop β Tattoo Shop & Live Preview for FiveM
π¦ Overview
* Visit tattoo shops on the map and get ink on your character
* Works with ESX and QBCore (auto-detect β qb, qbold, esx, esxold)
* ox_lib zones β hint when youβre close, press E to open the menu
* Tattoos are saved in the database β they stay when you leave and come back
* 450+ ready-made tattoos in editable/tattos.lua β price and body zone set in config
π Shops & map
* 6 shop locations in config (Los Santos, Sandy, Paleto, and more)
* Map blip β on/off, icon, color, and name via Config.Blip
* Default blip name: Tattoo Shop
π€ Character & preview
* Your character strips down in the menu so you see tattoos on your body live
* Your character name loads from the server
* Separate tattoo look for male and female models (automatic)
* Selected tattoos apply instantly on your body β try before you buy
π§ Body zones
* Head, torso, left arm, right arm, left leg, right leg
* Clickable zones on your body β camera focuses on that part
* Zone labels editable in Config.Locales
π¨ Tattoo menu
* Pick a zone β tattoos for that area are listed
* Search box β filter by name
* Price on each tattoo; ones you own show as Owned
* Select multiple tattoos β total price shown at the bottom
* You only pay for tattoos you donβt already own
π° Payment
* Pay with cash (warning if you donβt have enough)
* Not enough money: You don't have enough money.
* Successful purchase: Tattoo purchased successfully.
π· Camera controls
* Drag to rotate your character
* Mouse wheel to zoom in and out
* Dedicated camera angle per body zone
* Reset camera β back to the default view
* ESC to close the menu
πΎ Save & load
* Tattoos stored in izzy_tattoshop by your identifier
* Server cache writes to the DB on an interval (Config.ServerCacheToDbInterval)
* Tattoos reapply when you load in (Config.ClientLoadTattos β QB/ESX event set in config)
* /refreshtatto β reload your tattoos
* Config.DisableAutoRefreshing to turn off background refresh
π Clothing compatibility
* Your outfit returns when you leave the shop
* Supported appearance: qb-clothing, illenium-appearance, skinchanger, rcore_clothing
π Text & language
* All menu text, notifications, and zone names live in Config.Locales
* Store name, info text, search, back, buy, owned, etc. edited in one place
* Default strings are English β switch to Turkish by changing locale values in config
βοΈ Performance (config)
* Config.ClientCacheUpdate β client tattoo refresh interval
* Config.ServerCacheToDbInterval β DB save interval
* No unnecessary refresh while the shop menu is open
π οΈ Setup (server owners)
* Requires ox_lib + oxmysql
* Run sql.sql to create the table
* editable/config.lua β framework, shop coords, blip, locales, performance
* editable/tattos.lua β tattoo list, price, collection, zone
* editable/c_framework.lua / s_framework.lua β custom framework hooks
* Escrow ignore: client, server, and all editable files
* Exports: loadTattos, showTattos