Description
A working QBCore tattoo studio: the player browses a catalog of body-zone tattoos, a camera zooms to the selected zone (arm, torso, neck) for a close preview, and each applied tattoo is purchased server-side from a priced catalog. Tattoos can be removed and the full decoration set is re-applied cleanly. Tattoo apply/remove is in every appearance pack, so the zoned zoom camera is what clears the polish bar buyers expect.
Prompt Template
You are writing a FiveM resource for qb-core (exports['qb-core']:GetCoreObject()).
The full prompt template and its reference Lua are part of a one-time pack. Pick your depth β both are lifetime access, no subscription, ever.
- 60 prompts + syntax-validated reference Lua
- Lifetime access β pay once
- All 510 prompts β the full library
- Per-prompt profit/trend intelligence (CSV + playbook)
- Lifetime free updates β new niches as the market moves
$49 for 60 Β· $199 for all 510 + intelligence β one-time, no subscription.
Expected Output
The reference Lua lives at content/expected-outputs/appearance/03-tattoo-studio-zoned.lua. It implements a catalog of zoned tattoos, a per-zone zoom camera, decoration apply/remove viaβ¦
The full prompt template and its reference Lua are part of a one-time pack. Pick your depth β both are lifetime access, no subscription, ever.
- 60 prompts + syntax-validated reference Lua
- Lifetime access β pay once
- All 510 prompts β the full library
- Per-prompt profit/trend intelligence (CSV + playbook)
- Lifetime free updates β new niches as the market moves
$49 for 60 Β· $199 for all 510 + intelligence β one-time, no subscription.
Known Failure Modes & Corrective Prompt
- Client-applied catalog β Claude lets the client pick any decoration and pay locally; validate the name against a server Prices table and charge there.
- Anim before load β the pose no-ops if the dict isn't loaded; always
RequestAnimDict+while not HasAnimDictLoaded(dict) do Wait(0) end. - One-sided net event β
tattoo:buy/tattoo:boughton only one side breaks the purchase; both sides useRegisterNetEvent+AddEventHandler. - Stale decorations β applying without
ClearPedDecorationsfirst stacks duplicates; re-apply the whole set each change.
Corrective re-prompt: "In the server tattoo:buy handler, reject any name not in the Prices table, verify GetMoney('bank') covers it, RemoveMoney once and only then fire tattoo:bought with the name. The client applies the decoration only after the server confirms; never apply or charge locally."
Framework Integration
- ESX: swap to
exports['es_extended']:getSharedObject()and charge withxPlayer.removeMoney(price)against the catalog. - QBCore: as written β
Player.Functions.RemoveMoney('bank', price, 'tattoo-studio'). - QBox: use
exports.qbx_core:GetPlayer(src)thenplayer.Functions.RemoveMoney('bank', price); decoration logic is identical.
Profit Potential
$90β$1150/mo on Tebex (expected ~$300). [INFERRED] priced inside the $50-389 script band against the signal-scraper tebex_snapshot corpus (n=100, median seller $11.85K/mo); a saturated category where the zoom-camera polish carries the sale.
Trend Signal
β saturated β corpus: Tattoo apply/remove ships in every major appearance resource; zoned zoom camera is the standard polish bar.
Sales Angle
The tattoo studio with per-zone zoom and server-validated catalog pricing that meets the polish bar buyers compare against β sold to servers that want a believable parlor. Recommended Tebex price $99.
Difficulty & Ship Time
intermediate Β· ships in 4-6h.