Lifetime deal
Fixitfy Studio | CFX Marketplace Creator
Supported Frameworks
- QBCore
- Qbox
- ESX
FX-TATTOOS is a server-validated tattoo shop built to replace xnTattoos, rewritten from scratch around the exploits and performance problems that script shipped with.
Price is never sent by the client. The client sends a tattoo name, the server looks the price up in its own catalog, checks distance, ownership and rate limit, then charges. There is no payload a player can craft to get a tattoo free, at a negative price, or from across the map — the three things the old script allowed.
It solves the problem every tattoo script eventually hits: GTA has no such thing as decoration opacity. Darkness is faked by stamping the same tattoo repeatedly, and every step of darkness eats a slot from the ped's decoration pool. When that pool fills, GTA silently stops drawing — tattoos bought after a certain point simply never appear, with no error anywhere. FX-TATTOOS tracks the budget, shows it in the menu as a live counter, and refuses the purchase server-side when it would overflow. Nothing ever vanishes silently.
Two people opening the shop at once used to stand inside each other, because both get teleported to the same edit coordinate. Here each player entering the menu is moved into a routing bucket reserved for them alone, and restored on exit, disconnect, or resource restart.
It plugs into illenium-appearance rather than fighting it: one compatibility flag and tattoos survive every clothing change instead of being wiped by ClearPedDecorations.
INFORMATION
- Server-Authoritative Pricing — the Client Sends a Name, Never a Price
- Server-Side Distance, Ownership and Rate-Limit Checks on Every Action
- Database-Level Duplicate Protection via a Unique Constraint, Not Just Application Logic
- Decoration Budget Tracking That Prevents GTA's Silent Draw Failure
- Live Capacity Counter in the Menu — Purchase Refused Before Anything Is Lost
- Per-Player Routing Bucket So Two Customers Never Stand Inside Each Other
- Bucket Restored on Exit, Disconnect and Resource Restart
- illenium-appearance Integration — Tattoos Survive Every Clothing Change
- Built as a Drop-In Replacement for xnTattoos, With a Documented Migration Path
- Migration Backs Up the Original playerskins JSON and Supports Rollback
- One Database Query per Session, Cached in Memory Afterwards
- Zero Frame Loops With ox_target; Distance-Based Wake-Up as the Fallback
- Catalog Pre-Grouped by Body Zone, Decorations Reapplied Only on Change
- Configurable Economy — Divisor, Minimum Price, Cash or Bank, Removal Cost or Percentage
- Adjustable Opacity Layers Trading Darkness Against Capacity, Both Documented
- NEW Badge Driven by Collection or Individual Name, Sent Once per Menu Open
- Automatic Framework Detection Across QBCore, Qbox and ESX
- Optional ox_target, With an E-Key Fallback When It Is Absent
- Schema Created Automatically on First Start — Idempotent, With a Manual SQL File Included
- Two Server Exports for Other Scripts: Read a Player's Tattoos, Check Session State
- Non-Blocking Export That Returns Immediately and Warms the Cache in the Background
- Config, Catalog, Framework Adapter and SQL Outside Escrow — Editable After Purchase
- Premium UI/UX Symmetry Experience and 24/7 Technical Support