Pulse Phone docs
Requirements
2. Requirements
| What | Required? | What happens without it |
|---|---|---|
| OneSync on | Required | The start-up check fails with OneSync ... off. Add set onesync on. |
| Game build 2699 or newer | Required | The handset model does not stream. Set sv_enforceGameBuild. |
| oxmysql (or ghmattimysql, mysql-async) on MariaDB 10.6+ or MySQL 8 | Recommended | Data is kept in the resource's own key/value store. It persists, but you can't query it, and past about 30 players you should use MySQL. |
| A voice script: pma-voice, mumble-voip, SaltyChat, TokoVOIP or YACA | Recommended | Calls connect but carry no audio. |
| screenshot-basic | Recommended | The camera frames shots but cannot save photos. |
| A framework | Optional | The phone runs standalone: phones keyed to the player's licence, and the phone keeps its own bank. |
A complete server.cfg block:
set onesync on
set sv_enforceGameBuild 2699 # or newer
ensure oxmysql
# ... your framework, then your inventory, banking, garage and housing scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone
# ... scripts that use the phone ...The database. With oxmysql running, the phone creates its tables on first start and adds new
ones by itself after every update. It tests the connection with a real query first and gives a
database that is still starting 30 seconds. If the database never answers, the phone stores
nothing, says so in the console, and keeps retrying every 15 to 60 seconds; the moment the
database answers, it finishes starting by itself. On a test server you can let it use the
key/value store instead with set phone_db_fallback "kvp" (that data is never copied into SQL
later). Every query also has a 10-second deadline: a query the database never answers is
reported as failed to the app that asked, and the console names that query once.
phone.sql is only for hosts that don't let a resource create tables. It is safe to run on an
existing database, and running the new one again after an update adds only what is missing.
Without a database the key/value store keeps everything across restarts. Past about 30 players, or if the console warns that saving the store is slow, use MySQL.
sv_stateBagStrictMode can stay on. Everything other players see of a phone (the hold
animation, the handset in the hand, its screen, the flashlight) is set by the server after it
checks the value, never by the player's game.
Switching phones
Another phone's tables. If a phone you used before left tables with the same names (for
example phone_messages), they are renamed to old_<name> at first start, so Pulse Phone can
create its own. Nothing is deleted. If your database user may not rename tables, the start-up
check shows [FAIL] Database with the table names: give the user ALTER rights, or rename each
to old_<name> in your database tool (HeidiSQL, phpMyAdmin), and restart.