Description
A recorded interview room that turns interrogations into a real RP beat: the officer reads Miranda, logs the suspect's statements, and presents collected evidence to ratchet up a pressure meter until the suspect breaks. Servers sell it because it gives detectives an actual mechanic instead of pure freeform talk, and every record lives server-side for later review.
Prompt Template
Build a FiveM interview-room resource for QBCore (with a QBox-compatible export…
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
See content/expected-outputs/police/25-interrogation-interview-room.lua — a client that plays the seated anim and drives the interview NUI, and a server that owns the session record, gates evidence…
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
- Pressure raised client-side, letting players spoof confessions.
- Anim played before the dict finished loading (suspect T-poses).
- One side missing AddEventHandler, so pressure updates never reach NUI.
- Evidence accepted before Miranda was read.
Corrective re-prompt: "Move the pressure score and confession flag fully to the server, reject any evidence event until the server-side miranda flag is true, and confirm RequestAnimDict is awaited with while not HasAnimDictLoaded(dict) do Wait(0) end before TaskPlayAnim."
Framework Integration
ESX: Not targeted here; swap isOfficer to xPlayer.job.name == 'police' via ESX.GetPlayerFromId if porting.
QBCore: Resolve QBCore:GetCoreObject() and gate isOfficer on Player.PlayerData.job.name == 'police'.
QBox: Use exports.qbx_core:GetPlayer(src) and check player.PlayerData.job.type == 'leo'.
Profit Potential
$250–$3500/mo on Tebex (expected ~$900). [INFERRED] priced within the $50-389 script band against the signal-scraper tebex_snapshot corpus (n=100, median seller $11.85K/mo), scaled to a rising civic-RP niche.
Trend Signal
↗ rising — inferred: Non-AI recorded interview/Miranda rooms are a rising civic-RP layer (AI-dialogue version is MASTER-200 id-093 Negotiator NPC).
Sales Angle
Position as the detective realism layer that MDT/dispatch packs leave out; bundle-friendly with records terminals. Recommended Tebex price $89.
Difficulty & Ship Time
intermediate · ships in 1 day.