Description
A QBCore reputation-gated tattoo parlor: each design carries a rep threshold and the parlor only applies it once the player's server-tracked tattoo reputation clears that bar — otherwise it shows a locked state with the rep needed. It converts flat, buy-anything tattoos into earned progression rewards, a defensible differentiator versus a commodity tattoo shop.
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/14-tattoo-rep-unlock.lua. It implements a client parlor catalog with the apply anim and a server-side rep read from player metadata that…
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-trusted rep — Claude compares the rep value on the client; a packet spoofs it and unlocks elite ink. Read
metadata.tattoorepand run the threshold check on the server. - Anim before load —
TaskPlayAnimno-ops if the dict is not loaded; alwaysRequestAnimDict+while not HasAnimDictLoaded(dict) do Wait(0) end. - One-sided net event — defining
tattoo:tryUnlock/tattoo:appliedon only one side breaks the round-trip; both sides useRegisterNetEvent+AddEventHandler.
Corrective re-prompt: "Read reputation only from Player.PlayerData.metadata.tattoorep on the server and run the threshold comparison there. The client must send tattoo:tryUnlock and react to tattoo:applied / tattoo:denied — never decide the unlock itself."
Framework Integration
- ESX: read/write rep with
xPlayer.set('tattoorep', n)/xPlayer.get('tattoorep')and gate in the server handler. - QBCore: as written —
Player.PlayerData.metadata.tattoorep+Player.Functions.SetMetaData('tattoorep', n). - QBox: use
exports.qbx_core:GetPlayer(src)thenplayer.Functions.SetMetaData/metadata reads; the threshold logic is identical.
Profit Potential
$250–$3500/mo on Tebex (expected ~$900). [INFERRED] priced inside the $50-389 script band against the signal-scraper tebex_snapshot corpus (n=100, median seller $11.85K/mo); a rising progression-cosmetic niche carries steady demand.
Trend Signal
↗ rising — strategy: Gating tattoos behind rep turns cosmetics into progression — differentiation vs a flat tattoo shop (matrix Def axis).
Sales Angle
The PROGRESSION tattoo parlor that makes ink an earned reward, not a flat purchase — perfect for servers building a grind loop. Recommended Tebex price $189.
Difficulty & Ship Time
intermediate · ships in 3-5h.