Skip to content
Eureka Phone: Duo

Apps and what they need

The apps the phone ships, what each one needs from your server, and what stays off until an adapter is verified.

The system apps are always on: phone, messages, contacts and settings, with voicemail, group conversations, receipts and SIM slots. Everything else is an optional app you turn on with duo_apps. An app whose requirement is missing does not break the phone: it answers unavailable and shows its reason, and the rest keeps working.

Catalog

App ID What it does Needs
notes Notes, up to duo_notes_max per character. Nothing.
mail In-game mail at @duo.mail, with service senders from other resources. Nothing.
photos Photo library and albums. Media (duo_media_provider s3).
camera Taking photos in game. Media and a screenshot integration.
reminders Reminders with due times. Nothing.
wallet Transfers between characters. A verified money adapter and duo_wallet "on".
invoices Invoices between characters and from job accounts. Money adapter; business invoices also need a society adapter.
crypto A fictional coin with a server-set price. Money adapter and duo_crypto "on".
microblog Short posts, mentions, tags, trending. Nothing. Staff moderate with duo_mod.
photofeed A photo feed with stories. Media.
classifieds The Yellow Pages: player-posted ads by category. Nothing. Business ads need a verified jobs adapter.
marketplace Listings with photos and prices (no checkout or escrow). Media for photos.
dating Profiles, likes, matches and private chats. Nothing. Staff cannot read dating chats.
crews Crews with chat, invites and pings. Pings need OneSync and duo_crews_pings "on".
darkchat Anonymous channels, gated by an item. duo_app_items "darkchat:<item>" and an inventory adapter.
garage Vehicles, valet and remote find or lock. duo_garage naming a verified garage resource; valet needs OneSync.
keys Vehicle key grants. duo_keys naming a verified keys resource.
homes Homes, doorbell and guest access. duo_housing naming a verified housing resource.
services The official services directory from config/services.lua, with requests to on-duty employees. A verified jobs adapter for requests.
emergency 911 reports to the services in config/emergency.lua. A verified jobs adapter for responders.
jobs Job center listings from config/jobs.lua. A verified jobs adapter for employers.
news Articles by journalists, by job or staff grant. Media for photos.
rides Taxi requests to on-duty drivers. OneSync and duo_rides_driver_jobs.
location Pins and live location sharing. OneSync.

Also built in since setup arrived: Eureka ID accounts, passcode and Face Pass (a presentation lock: the server does not refuse requests while a phone is locked), the Island for live activities, AirDrop, and a cosmetic flashlight.

What stays off until verified

The phone fails closed by design. On a server whose framework or inventory version has not passed the live adapter smoke test, the core refuses to start unless duo_adapter_verification is warn (staging only). Beyond that:

  • Money: wallet, invoices, crypto and billing purchases need a money adapter verified on your framework version.
  • Jobs: responders, employees, employers, job-gated drivers and journalists by job need a verified jobs adapter. Emergency reports are still stored and can be read in the phone.
  • Vehicles and homes: garage, keys and homes need their resource's adapter verified, with OneSync for valet.
  • Live positions: rides, location sharing, crew pings, 911 locations and AirDrop discovery need OneSync.
  • Camera capture needs a screenshot integration; voicemail audio and paid apps are unavailable in this build.

Numbers, data and limits worth knowing

  • Numbers follow duo_number_prefix and duo_number_length; existing numbers never change when you change these.
  • Senders may delete their own messages for duo_message_delete_window_seconds (10 minutes by default).
  • Media storage is duo_media_quota_bytes per character; unattached media is deleted after duo_media_unattached_hours.
  • AirDrop files are limited per character per day (duo_airdrop_daily_bytes, 1 GiB by default) and need a store that enforces signed checksums.
  • Island activities live in memory: a resource restart clears them and ends calls in progress.
  • Passcode and Eureka ID passwords have no recovery flow; staff can delete an account.

Importing from another phone

The migration tool has an import command that reads a JSON interchange file (eureka-duo-import, version 1) and writes characters, lines, contacts, conversations and messages. No converter for a named phone resource ships: write one for your old phone's installed schema that outputs that file, then run the import as a dry run before applying. Never run two phones that assign numbers at the same time.

Last updated October 2, 2026