Eureka Phone: iPhone-style
Installation
Install the iPhone-style page on a new server, or add it next to the Duo on a server that already runs the core.
Pick the path that matches your server.
A. New server, iPhone-style only
Follow the Duo's Installation steps 1 to 3 as written: check the archive, create the database and the two accounts, apply the migrations. Then:
Resources. Copy
resource/eureka_phoneandresource/eureka_iphoneinto your server'sresourcesfolder. Keep both folder names.Inventory item. Define the item the page lists in
models(iphoneby default) withstack = false.data/items.lua (ox_inventory) ['iphone'] = { label = 'Phone', weight = 190, stack = false, close = true, },server.cfg. Set the item in
duo_phone_itemsand start the page after the core.server.cfg set mysql_connection_string "mysql://duo_runtime:<runtime-password>@<db-host>:3306/eureka_duo" set duo_framework "qbox" # qbcore | esx | standalone set duo_inventory "ox_inventory" set duo_phone_items "iphone" ensure oxmysql ensure pma-voice ensure eureka_phone ensure eureka_iphoneFirst start. Look for
[eureka_phone] info READYand work through the console lines as in the Duo's first start.
B. Adding it next to the Duo
Your server already runs eureka_phone and eureka_duo.
Keep one core. Compare the two releases' versions in
RELEASE.txt. Keep the newereureka_phone; if the iPhone-style archive is newer, upgrade the core as the Duo's Upgrading page describes (migrations included), then continue.Add the page. Copy
resource/eureka_iphonenext toeureka_duo.Add the item to your inventory (
iphone,stack = false) and toduo_phone_items:server.cfg set duo_phone_items "phone,iphone" ensure eureka_phone ensure eureka_duo ensure eureka_iphoneMedia. If you use an object store, add the page's origin
https://cfx-nui-eureka_iphoneto the bucket's CORS rule next to the Duo's.Restart in order.
restart eureka_phonestops every page; follow it withensure eureka_duoandensure eureka_iphone. Thenrefreshis not needed unless the folder is new to this server start.
A phone item that no installed page lists opens on the page the player used last. If the iPhone-style page does not open for a player holding an iphone item, check that the item name matches models in eureka_iphone/config/client.lua exactly and that it is in duo_phone_items.
Smoke test
Before players: give one character an iphone item and open it with the phone key; send a message and place a call to a second client; if the Duo is installed too, give a character both items and confirm that opening the other phone hands over once (the first page hides, the other opens). See Running both designs.
Last updated October 2, 2026