Description
A working QBCore barbershop: the player sits in the chair, a camera slowly orbits their ped for a 360° showcase, and they preview hair, hair color, beard and eyebrow combinations live. Confirming charges per-item pricing server-side. Barber is a commodity storefront every roleplay server lists, so the sell is the polish — the rotating camera and clean checkout.
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/02-barbershop-styling-station.lua. It implements the seated pose, an orbiting scripted preview camera, live hair/beard/eyebrow/color…
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 charge — Claude removes money on the client; a packet skips it. Total and
RemoveMoneyserver-side. - Anim before load — the seated pose no-ops if the dict isn't loaded; always
RequestAnimDict+while not HasAnimDictLoaded(dict) do Wait(0) end. - Orphan camera — failing to
DestroyCam+RenderScriptCams(false)on cancel locks the player's view; always tear the cam down on exit. - One-sided net event —
barber:buy/barber:purchasedon only one side breaks checkout; both sides useRegisterNetEvent+AddEventHandler.
Corrective re-prompt: "Move the charge into the server barber:buy handler: total the Prices table, verify GetMoney('cash') covers it, RemoveMoney once, then fire barber:purchased. The client only previews and renders the orbit camera; never deduct money client-side."
Framework Integration
- ESX: swap to
exports['es_extended']:getSharedObject()and charge withxPlayer.removeMoney(total)after axPlayer.getMoney()check. - QBCore: as written —
Player.Functions.RemoveMoney('cash', total, 'barbershop'). - QBox: use
exports.qbx_core:GetPlayer(src)thenplayer.Functions.RemoveMoney('cash', total); preview logic is identical.
Profit Potential
$80–$1100/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 commodity, so volume hinges on UX polish over price.
Trend Signal
↘ saturated — corpus: Barber is core to every appearance pack (illenium/fivem-appearance); commodity but a mandatory storefront on Tebex.
Sales Angle
The clean standalone barber with a rotating showcase camera and server-validated pricing — for servers that want a premium-feeling chair without a whole appearance suite. Recommended Tebex price $69.
Difficulty & Ship Time
beginner · ships in 2-4h.