Description
A phone camera app where players frame a shot with a held-phone pose, capture a real screenshot that gets uploaded to a host and recorded in a server-owned gallery, then organize photos into albums and share to a public feed or a direct contact. The capture-upload-host pipeline is the differentiating engineering, which is why social-RP servers buy it instead of a bare screenshot keybind.
Prompt Template
You are writing a FiveM resource for esx/qb-core/qbox.
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/phone/25-camera-gallery-app.lua. It implements an anim-driven capture, a screenshot-upload callback that persists per-identifier photosβ¦
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 gallery β Claude keeps photos and shares in a client table; a modder forges or shares images. Persist the gallery server-side keyed to the identifier and verify ownership on every share.
- 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
camera:gallery/savePhotoon only one side breaks the upload round-trip; both client and server useRegisterNetEvent+AddEventHandler.
Corrective re-prompt: "Move all photo authority to the server: store the gallery keyed by player identifier, validate the uploaded URL, return the gallery only to its owner, and verify the player owns a photoId before any feed broadcast or DM. The client must only frame, capture and request β never hold the canonical gallery."
Framework Integration
- ESX: resolve the player with
exports['es_extended']:getSharedObject()and key the gallery onxPlayer.identifier; share targets resolve throughESX.GetPlayerFromId. - QBCore: use
exports['qb-core']:GetCoreObject()andQBCore.Functions.GetPlayer(src).PlayerData.citizenidas the gallery key instead of the raw license. - QBox: use
exports.qbx_core:GetPlayer(src)andplayer.PlayerData.citizenid; the capture/upload and share logic are identical.
Profit Potential
$150β$2000/mo on Tebex (expected ~$500). [INFERRED] priced inside the $50-389 script band against the signal-scraper tebex_snapshot corpus (n=100, median seller $11.85K/mo); a stable social-RP niche whose hosted-upload moat supports steady unit volume.
Trend Signal
β stable β inferred: Screenshot-capture + external upload/host pipeline is the hard, differentiating part.
Sales Angle
The social-RP camera that actually persists photos to a hosted gallery with albums and share-to-feed/DM, not just a screenshot keybind. Recommended Tebex price $229.
Difficulty & Ship Time
advanced Β· ships in 1 day.