gta6/prompts
phone
Vaultbeginnerphone

Contacts Manager

ESX/QB contacts manager — add/edit/share/block/favorite contacts with photos and a proximity vCard swap between two nearby phones, persisted server-side per identifier.

NON-TESTÉ — the reference Lua is syntax-validated, not run in a live FiveM server. Adapt and test on your own dev server before shipping.
Est. Lua
~96 loc
Claude
Claude Opus 4.x / Sonnet 4.x
Validation
syntax-validated
Updated
2026-06-25

Description

A contacts manager for ESX or QB: add, edit, favorite, block and share contacts with photos, plus a proximity vCard swap that beams a contact between two nearby phones. It is commoditized CRUD, so it sells as the polished connective tissue of a phone bundle rather than a standalone product.

Prompt Template

You are writing a FiveM resource for esextended (stable, exports getSharedObject).

🔒 Eyes-only — locked prompt body

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.

Core$49one-time
  • 60 prompts + syntax-validated reference Lua
  • Lifetime access — pay once
Most Popular · Best Value
Vault$199one-time
  • All 510 prompts — the full library
  • Per-prompt profit/trend intelligence (CSV + playbook)
  • Lifetime free updates — new niches as the market moves
Get the Vault — $199

$49 for 60 · $199 for all 510 + intelligence — one-time, no subscription.

Expected Output

The reference Lua lives at content/expected-outputs/phone/08-contacts-manager.lua. It implements a server-owned per-identifier contacts table with add/edit/delete/favorite/block, and a…

🔒 Eyes-only — locked prompt body

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.

Core$49one-time
  • 60 prompts + syntax-validated reference Lua
  • Lifetime access — pay once
Most Popular · Best Value
Vault$199one-time
  • All 510 prompts — the full library
  • Per-prompt profit/trend intelligence (CSV + playbook)
  • Lifetime free updates — new niches as the market moves
Get the Vault — $199

$49 for 60 · $199 for all 510 + intelligence — one-time, no subscription.

Known Failure Modes & Corrective Prompt

  • Client-trusted list — Claude keeps contacts in a local table and writes straight to the UI; nothing persists and a modder injects contacts for another identifier. Keep the table server-side keyed by owner identifier.
  • Anim before load — the vCard-swap TaskPlayAnim no-ops if the dict is not loaded; always RequestAnimDict + a HasAnimDictLoaded wait loop.
  • One-sided net eventcontacts:sync on only one side leaves the second phone without the swapped vCard; both sides use RegisterNetEvent + AddEventHandler.

Corrective re-prompt: "Move the contacts table into server.lua keyed by owner identifier, persist every mutation to phone_contacts, and in contacts:swap validate the target is in range with GetEntityCoords server-side before pushing the requester's card into the target — never trust a contact the client sends."

Framework Integration

  • ESX: local ESX = exports['es_extended']:getSharedObject(); key the table by xPlayer.identifier and persist via MySQL.prepare on phone_contacts.
  • QBCore: local QBCore = exports['qb-core']:GetCoreObject(); key by Player.PlayerData.citizenid and store contacts in players.charinfo JSON or a side table.
  • QBox: exports.qbx_core:GetPlayer(src); reuse the citizenid key and ox_lib notifications for the swap result.

Profit Potential

$80–$1200/mo on Tebex (expected ~$300). [INFERRED] within the $50-389 script band against the signal-scraper tebex_snapshot corpus (n=100, median seller $11.85K/mo), sized for a saturated contacts-CRUD niche.

Trend Signal

saturated — inferred: Table-stakes contacts CRUD; commoditized; sells only as a polished bundle piece.

Sales Angle

Position as a polished bundle component, not a standalone hero — lead the listing with the proximity vCard swap, the one feature most free contacts apps lack. Recommended Tebex price $59.

Difficulty & Ship Time

beginner · ships in 1 day.