Description
A property-tier upgrade module: the owner walks to an upgrade point inside their home, presses E, and the server charges their bank, bumps the tier (basic → standard → luxury), and unlocks more stash and furniture slots. It is the classic recurring money-sink that gives players a long-term spending goal and gives servers an inflation drain.
Prompt Template
You are writing a FiveM script for QBCore (qb-core, exports GetCoreObject) with…
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 at content/expected-outputs/housing/17-interior-upgrade-tiers.lua implements the proximity prompt and upgrade anim on the client and a server handler that confirms ownership,…
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-side charge — Claude removes money and raises the tier on the client; a spoofed event grants a free luxury upgrade.
- Non-persistent tier — the tier lives in a Lua table that resets on restart.
- No ownership check — anyone on the marker can upgrade another player's house.
Corrective re-prompt: Move ALL money and tier logic into the server handler; resolve the player with QBCore.Functions.GetPlayer(source), confirm ownership by matching the owner citizenid in the SELECT before charging, and persist tier + stash_slots with an oxmysql UPDATE — never a Lua table.
Framework Integration
- ESX: swap to
ESX.GetPlayerFromId(source), charge withxPlayer.removeAccountMoney('bank', price), and key the ownership row offidentifier. - QBCore: as written —
QBCore.Functions.GetPlayer,Player.Functions.RemoveMoney('bank', price, 'interior-upgrade'), citizenid ownership. - QBox: use
exports.qbx_core:GetPlayer(source)and the sharedPlayer.Functions.RemoveMoneyAPI; the citizenid/oxmysql schema is identical to QBCore.
Profit Potential
$150–$2000/mo on Tebex (expected ~$500). [INFERRED] priced inside the $50-389 script band against the signal-scraper tebex corpus (median seller $11.85K/mo, n=100), scaled down for a stable upsell-module niche.
Trend Signal
→ stable — inferred: [INFERRED] tier-upsell money-sink commoditizing; monetization layer on the housing framework (id-046).
Sales Angle
Position as the money-sink upsell every housing framework lacks out of the box. Recommended Tebex price $59 — cheap enough to be an impulse add-on for server owners already running a housing script.
Difficulty & Ship Time
intermediate · ships in 2-4h.