Eureka Phone: iPhone-style
Page settings
The iPhone-style page has one client settings file. Everything else is a core setting shared with the Duo.
All server behaviour (numbers, calls, media, apps, limits) is configured once on the core; see the Duo's Server settings. The page resource has a single file.
The page file
eureka_iphone/config/client.lua is the only file. Downloaded by every client, so it holds no secret and grants nothing: the server checks every request again.
| Setting | Default | Notes |
|---|---|---|
models |
{ 'iphone' } |
The inventory items this page shows. Each must also be in duo_phone_items. Change it if your server already uses another item name for this phone. |
keys |
{} |
The iPhone-style phone has no keys of its own. The key that opens the phone is the core's (phoneKey in eureka_phone/config/client.lua, F1). |
timeouts |
open 13 s, sync 10 s, default 6 s | How long the bridge waits for the server before telling the page there is no answer yet. Keep each below the page's own timeouts. |
forgetSeconds |
30 |
A request that timed out is still matched for this long; a late answer reaches the page. |
maxPending |
32 |
Requests in flight per player; more answer RATE_LIMITED. |
maxPayloadBytes |
262144 |
The largest request sent to the server. Keep it above twice duo_notes_max_bytes and duo_mail_max_bytes. |
offlineAfterTimeouts |
3 |
Timeouts in a row before the page shows the service as offline. |
keepInput |
false |
true keeps game input while the phone has focus, except while a text field is in use. |
typingKeepControls |
{ 249 } |
Controls left working while typing with keepInput on (249 is push-to-talk). |
aliveIntervalMs / aliveMisses |
3000 / 3 |
The page must answer a ping this often; after that many misses the bridge takes focus back, so a stuck page cannot keep the player's keyboard. |
EurekaIphone.ClientConfig = {
models = { 'iphone' },
keys = {},
timeouts = { open = 13000, sync = 10000, default = 6000 },
forgetSeconds = 30,
maxPending = 32,
maxPayloadBytes = 262144,
offlineAfterTimeouts = 3,
keepInput = false,
typingKeepControls = { 249 },
worldIntervalMs = 1000,
compassIntervalMs = 100,
pausePollMs = 250,
aliveIntervalMs = 3000,
aliveMisses = 3,
}The open key
phoneKey in eureka_phone/config/client.lua ({ key = 'F1', label = 'Phone: open or close' }) opens whichever page is current for the player. Players rebind it under the game's key bindings (FiveM section), and a saved binding wins. A change to that file needs restart eureka_phone, then ensure of each page.
Core settings that mention this page
duo_phone_itemsmust listiphone(or your item name).- The object store CORS rule must allow
https://cfx-nui-eureka_iphonefor media and AirDrop files.
Players' settings travel with the phone, not the page: appearance, language, passcode and Eureka ID are stored by the core, so a character who switches from the Duo to the iPhone-style phone keeps their number, contacts, conversations and account.
Last updated October 2, 2026