Skip to content
Eureka Phone: iPhone-style

Running both designs

How one core serves the Duo and the iPhone-style phone at once, and what a player sees when they carry both.

One server, one core, two page resources. Players choose their phone by the item they carry; the core routes each phone to the page that lists its item.

How the core picks the page

The core's router keeps one current page per player:

  1. the page of the phone item the player opened last (remembered on their machine),
  2. else the page that was current,
  3. else the first page that started.

The phone key (F1) shows the current page. When the server opens a phone whose item another page lists, the first page hands over once: it hides, and the other page shows and opens again. A player who closed the phone while that answer was on its way gets no phone back. An item that no installed page lists opens on the current page, so any page can show any phone.

A player carrying both

  • The server decides which phone opens: the one that was open before, else the player's own, else the lowest inventory slot. A page cannot ask for the other.
  • The first open after switching to the other design shows the first page briefly, then hands over. This happens once per switch.
  • Only the current page talks to the server. Pushes and call states reach only that page, and NUI focus is taken only for a page that is shown.

Operating two pages

Task What to do
Add a page Copy its folder, add its item to the inventory and to duo_phone_items, ensure it after the core.
Restart the core restart eureka_phone stops every page and does not start them again: follow with ensure eureka_duo and ensure eureka_iphone.
Upgrade Keep one eureka_phone, the newer of the two releases; every page speaks the same contract.
Media Allow both origins in the bucket's CORS rule: https://cfx-nui-eureka_duo and https://cfx-nui-eureka_iphone.
Keys The open key is the core's. Only the Duo has a fold key (F2); the iPhone-style page defines none.
server.cfg
set duo_phone_items "phone,iphone"

ensure eureka_phone
ensure eureka_duo
ensure eureka_iphone

Troubleshooting

  • The wrong design opens. The player's last-opened item wins. Have them close the phone, make sure they hold the item they want and open again; the page hands over once.
  • Nothing opens for one item. The item is missing from duo_phone_items, or does not match models in that page's config/client.lua.
  • A page is blank after a core restart. The page was stopped with the core; ensure it again.
  • Uploads fail on one design only. Its origin is missing from the object store's CORS rule.

Last updated October 2, 2026