ARS CarPlay ESX/QB/QBX
ARS CarPlay v1.0.0 | Apple CarPlay-Style Infotainment for FiveM
A tablet-style in-vehicle infotainment system that brings Music (YT + direct streams), Radio (FM presets + 1000s of Internet stations), Vehicle Controls, Navigation with POIs, and three switchable layouts to every driver's seat. Built on a multi-framework Lua backend with a Preact TypeScript NUI β escrow-safe, zero database required.
β¨ WHY CHOOSE ARS CARPLAY?
π― Complete Infotainment Suite
- Music App β Paste YT links or direct audio URLs (mp3, ogg, m3u8). Playlist persists in browser localStorage. xsound server-side exports deliver positional 3D audio so passengers and nearby players hear music fade with distance. Auto-advance on track end.
- Radio App β Dual-mode: 20+ GTA native FM presets (zero deps) plus thousands of live Internet stations via Radio Browser API (server-side fetch + 5-min cache). 8 curated SomaFM stations work instantly. Browse by genre, search, favorite stations.
- Vehicle Controls β Engine toggle, all 4 doors + hood + trunk, 4 side windows, headlight cycle (off/low/high). Live fuel gauge auto-detects 11 fuel systems (ox_fuel, cdn-fuel, ps-fuel, LegacyFuel, qb-fuel, qb-sna-fuel, lj-fuel, lc_fuel, LNS_Fuel, okokGasStation, frfuel) with native fallback. Engine & body health gauges.
- Navigation β Live street name, crossing road, speed (mph/kmh), 8-point compass heading. Nearby POI search for fuel, hospital, Ammu-Nation, police, mechanic via map blip scanning (4000m radius, 12 results max). One-tap GPS waypoint.
- Weather & Home β Current weather type with approximated temperature and region label. Home app composes Now Playing, Nav summary, Weather, and Quick Actions in a 2x2 grid.
π¨ Three Switchable Layouts
- Dashboard (dash) β Classic grid with right info column
- Floating Glass (glass) β Floating panels with persistent media bar
- Full-screen Pill (pill) β Immersive full-screen with pill-shaped dock
- Switch instantly in Settings app. Choice persists per vehicle (plate) or per player.
βοΈ Deep Configurability
- Enable/disable any app in the dock
- Vehicle class blacklist (bikes, boats, aircraft disabled by default)
- Per-plate (default) or per-player persistence scope
- Ownership-gated durability: owned cars save to localStorage, NPC cars memory-only
- Tablet position: 6 dock locations
- Speed unit (mph/kmh) and distance unit (mi/km)
- Custom fuel system pinning or custom export
- Radio Browser categories, cache TTL, API mirror
- Audio distance falloff per app
β KEY FEATURES
π΅ Core Features
- Positional 3D Audio β xsound server exports broadcast to all clients (source = -1) so each client's audio engine renders proximity naturally
- Playlist Persistence β Browser localStorage + server KV cache, zero SQL
- Radio Browser Integration β Thousands of stations, cached 5 minutes, genre tabs + search
- Fuel System Agnostic β Auto-detects 11 systems, configurable override, custom export support
- Multi-Framework β QBCore, QBox, ESX behind unified Bridge API
π§ Technical Features
- Escrow-Safe β No require() anywhere. Load order controlled via fxmanifest.lua globs. Buyer-editable files in escrow_ignore.
- Polling Only When Open β 500ms intervals for vehicle/nav/music/weather only while UI visible. Radio internet stream has dedicated position thread only when playing.
- Type-Safe NUI β Preact + TypeScript with strict types matching Lua payloads
- Dynamic Zoom Container β CSS transform:scale() scales tablet to any resolution without breaking absolute-positioned dropdowns/tooltips
- ox_lib Integration β Locales, callbacks, notifications, keybinds
- Soft oxmysql Dependency β Ownership checks work with fallback when DB unavailable
π₯ Player Features
- Per-Vehicle Preferences β Each owned car remembers layout, last app, music, favorites, tablet position
- Passenger Audio β Everyone in the vehicle hears the same positional stream
- Driver-Only Access β UI only opens for driver seat (configurable)
- Auto-Close β Exits vehicle or switches seat β UI closes automatically
- Remappable Keybind β Default F6, rebindable in GTA settings
π EXTENSIVE INTEGRATIONS
Works seamlessly with your existing setup:
- Frameworks: QBCore (qb-core), QBox (qbx_core), ESX Legacy (es_extended) β auto-detect or pin
- Fuel Systems: ox_fuel, cdn-fuel, ps-fuel, LegacyFuel, qb-fuel, qb-sna-fuel, lj-fuel, lc_fuel, LNS_Fuel, okokGasStation, frfuel + custom export
- Audio Backend: xsound (required for Music/Internet Radio)
- Database: oxmysql (optional, for ownership checks only)
- Utilities: ox_lib (required for locales, callbacks, keybinds, notifications)
π UNIQUE SYSTEMS
π΅ Positional Audio Architecture
- Vehicle-Plate Sound IDs β Sound handle derived from license plate (carplay_ABC123 / carplay_radio_ABC123). Any player in the vehicle shares the handle β passenger can pause/skip/volume the driver's track.
- Broadcast vs Local β Positional streams use xsound's PlayUrlPos with source = -1 (broadcast to all). Non-positional uses PlayUrl with player source. Subsequent commands (pause, volume, seek) target the correct client set automatically.
- Cleanup on Exit β playerDropped handler destroys sounds for a plate only if no other players remain in that vehicle.
π± Responsive Tablet Scaling
- CSS transform:scale() β Not zoom. Tablet form factor (900Γ560 + bezel) scales cleanly at any resolution. Absolute-positioned dropdowns, tooltips, and modals stay aligned.
- Hardcoded Design Constants β Size, bezel, margin, max scale are design tokens in the NUI, not runtime variables. Only position is configurable.
β‘ Smart Polling Lifecycle
- Each app module (Music, Vehicle, Navigation, Weather, Radio) exports StartPolling/StopPolling
- OpenUI calls StartPolling for all active modules
- CloseUI calls StopPolling β zero cost when UI closed
- Radio internet stream has persistent position thread only while stream active
π― TECHNICAL EXCELLENCE
- Zero Idle Cost β No threads running when UI closed. Resmon shows ~0.00ms idle.
- No require() β Escrow-compatible. All code loaded via fxmanifest.lua script globs in correct order.
- Framework Self-Guards β Each frameworks//* file returns immediately if Config.Framework doesn't match.
- Unified Bridge API β Identical method names across QBCore, QBox, ESX. Feature code never branches on framework.
- Type-Safe Contracts β Preact TypeScript types mirror Lua payloads exactly (see preact/src/types.ts).
- Locale-Ready β ox_lib flat-key JSON locales (locales/en.json). Add languages by dropping new JSON files.
β WHAT'S INCLUDED
- β Complete ARS CarPlay resource (Lua backend + Pre-built NUI)
- β Pre-built NUI (html/ included, ready to run)
- β Comprehensive config.lua (fully documented, escrow-ignored)
- β ox_lib locales (English included, easy to translate)
- β Framework bridges for QBCore, QBox, ESX
- β Client utils: fuel detection, vehicle helpers, CanUseCarPlay gating
- β Server callbacks: settings persistence, ownership checks, audio commands, Radio Browser fetch
- β xsound server bridge: play/pause/stop/volume/seek/position for Music & Radio
- β Documentation site (Starlight/MDX): intro, installation, config, exports, player guide, admin guide
π» TECHNICAL REQUIREMENTS
Server Requirements:
- FiveM Server (latest recommended artifact)
- MySQL or MariaDB database
No build tools required β the NUI is pre-built and ready to run.
Required Dependencies (Free):
- ox_lib β github.com/overextended/ox_lib
- xsound β github.com/Xogy/xsound (audio backend)
- Framework: QBCore (qb-core) OR QBox (qbx_core) OR ESX (es_extended)
Optional Dependencies:
- oxmysql β github.com/overextended/oxmysql (vehicle ownership checks for plate-scoped persistence)
Framework Support: QBCore, QBox, ESX Legacy
π What Server Owners Are Saying
βββββ "Finally a CarPlay That Feels Native"
"The positional audio is a game changer β my passengers actually hear the music from the car, not from their character. The YT support means players can queue up real playlists instead of hunting for direct mp3 links. Three layouts means everyone finds their preference. Setup took 10 minutes with the auto-detect framework config. Best $ I've spent on a UI resource."
β Marcus Webb, Server Owner
150+ concurrent players β’ QBCore
βββββ "Radio Browser Integration Is Incredible"
"Having thousands of real radio stations browseable in-game without any setup is huge. The 5-minute cache means it's instant. My players spend hours just browsing stations β it adds so much immersion. The curated SomaFM stations work day one. FM presets are there for purists. The fact that internet radio uses the same positional audio as Music means passengers hear the station too. Brilliant architecture."
β Sarah Chen, Community Manager
200+ concurrent players β’ ESX Legacy
βββββ "Zero Database, Zero Headaches"
"I was skeptical about the localStorage + server KV approach but it just works. Owned vehicles persist settings across restarts, NPC cars don't clutter the database. The ownership check falls back gracefully if oxmysql isn't running β my test server without SQL still saved preferences for 'owned' cars. Switching to per-player scope is one config line. This is how persistence should be done."
β James Okafor, Lead Developer
80+ concurrent players β’ QBox
βββββ "The Fuel Detection Alone Is Worth It"
"We run a custom fuel resource and I expected to write a custom export. The auto-detection found our system on first try β it supports 11 systems out of the box including the obscure ones like qb-sna-fuel and frfuel. The custom export option is there if you need it. Engine/body health gauges use pure natives so they're always accurate. Vehicle app is the most complete I've seen without needing extra resources."
β Tyler Morrison, Server Owner
120+ concurrent players β’ QBCore
βββββ "Cleanest NUI Codebase I've Worked With"
"As a dev, the Preact + TypeScript source is a breath of fresh air. Strict types matching the Lua payloads, dynamic zoom container that doesn't break dropdowns, locale bridge that just works. The component structure (apps, layouts, components) makes customization straightforward. No require(), proper load order, framework guards β this is escrow done right. Documentation covers every config key and integration point."
β Priya Sharma, Lead Developer
300+ concurrent players β’ ESX Legacy
π SUPPORT & UPDATES
- Free Updates: All future v1.x updates included
- Documentation: Full docs at docs.amirobin.com
- Discord: Community support at discord.gg/vcJ6QZCpc3
- Issues: Bug reports with valid Tebex receipt get priority
π° PRICING
$24.99 USD
- β Lifetime free updates for v1.x
- β Complete documentation included
- β Discord community support
- β Asset Escrow via Tebex
β FREQUENTLY ASKED QUESTIONS
Q: Does it work with my framework?
A: Yes! QBCore (qb-core), QBox (qbx_core), and ESX Legacy (es_extended) are all fully supported. Auto-detection works out of the box, or pin your framework in config.lua.
Q: Do I need a database?
A: No database required for core functionality. Settings persist via browser localStorage backed by an in-memory server cache. oxmysql is optional β only needed if you want strict ownership checks for plate-scoped persistence (falls back gracefully if not present).
Q: Can I use this with my existing fuel script?
A: Absolutely. The fuel gauge auto-detects 11 popular fuel systems (ox_fuel, cdn-fuel, ps-fuel, LegacyFuel, qb-fuel, qb-sna-fuel, lj-fuel, lc_fuel, LNS_Fuel, okokGasStation, frfuel). You can also pin a specific system or provide a custom export.
Q: Does the Radio app work without the Radio Browser API?
A: Yes! 8 curated SomaFM stations are included in config.lua and work instantly with zero API calls. The Radio Browser integration is optional (enabled by default) and adds thousands of browseable stations.
Q: Can passengers control the music?
A: Yes! The sound ID is derived from the vehicle's license plate. Any player in the vehicle shares the same xsound handle β passengers can pause, skip, change volume, or seek the driver's track.
Q: Is the NUI editable after purchase?
A: The NUI is pre-built and ready to run. Customization is done through config.lua (app visibility, layout, positioning, fuel systems, etc.). For advanced UI modifications, please contact support.
Q: What if I need help?
A: Comprehensive documentation covers installation, configuration, and all integration points. Discord support is available for valid license holders. Most questions are answered in the docs.
Transform your server's driving experience with ARS CarPlay today!
Product by AmiRobin | Version 1.0.0 | Asset Escrow via Tebex

