Admin Guide

Every /phone command, player keys, the in-game settings editor section by section, the admin tools inside the phone's apps, and how to grant admin access in oxide-phone.

This guide covers every command that comes with oxide-phone, the in-game settings editor you use to set up the phone, the admin tools inside the phone's apps, and how to give someone admin access.

Most of your setup happens in one place: type /phone settings in game. Changes you save there go live straight away, with no restart and no file editing.

Commands Overview

/phone is one command. The word you type after it picks what it does. Where the table says "Yes" under Server console, you can also type the command (without the /) into your server console, the text window where your server prints its messages (or Live Console in txAdmin).

CommandWhat it doesWho can use itServer console
/phoneShows the list of phone commands (players who are not admins get "You do not have permission.")AdminsYes
/phone settingsOpens the settings editorAdminsNo
/phone device <id>Shows the phone a player is usingAdminsYes
/phone resetpin <id>Removes the passcode from the phone a player is usingAdminsYes
/phone apppassword <app> <username>Removes the password from a phone app account and signs every phone out of itAdminsYes
/phone battery <id> <percent>Sets the battery of the phone a player is usingAdminsYes
/phone charger [clear]Places a charging station in front of you, to look atAdminsNo
/phone calltest <id>Tests that nobody can listen in on a callAdminsNo
/phone streamsLists the live streams from apps on the phoneAdminsYes
/phone endstream <id>Ends a live streamAdminsYes
/phone feedverify <handle> [on|off]Gives or takes a Feed account's verified badgeAdminsYes
/phone simlost <number>Reports a registered SIM lost for its ownerAdminsYes
/phone simreplace <number> <id>Gives the owner a free replacement for a SIM reported lostAdminsYes
oxide-phone:mapmode [mode]Shows or changes how the Maps app draws the islandsAdminsYes

Who can use it means:

  • Admins: only players who pass the admin check (see Permissions). Anyone else gets "You do not have permission." (oxide-phone:mapmode says "You do not have permission to change map settings.")

<id> is the player's server ID, the number shown next to their name in the player list.

Players never need a command to use the phone: they use the phone item or press the Open phone key (see Player Keys).

Command Details

/phone

Shows which phone commands exist.

Usage:

/phone

Typing /phone on its own, or with a word it doesn't recognise, shows an admin a usage line listing every subcommand, for example:

  • "Usage: /phone <settings|calltest|device|resetpin|apppassword|battery|charger|streams|endstream|feedverify|simlost|simreplace>"

Run from the server console, it also prints one line per subcommand with a short description.


/phone settings

Opens the Phone Settings editor, where you change every setting of the phone. See The Settings Editor.

Usage:

/phone settings

Who can use it: admins. Server console: no. From the console it prints [PhoneSettings] This command must be run in-game.

Output:

  • Success: the Phone Settings window opens. If your own phone was open, it is put away first.
  • Failure: "You do not have permission."

/phone device

Shows the phone a player is using: the phone they have open, or else the phone in their lowest inventory slot.

Usage:

/phone device <id>

Parameters:

ParameterTypeRequiredDescription
idnumberYesThe player's server ID

Examples:

/phone device 12        -- the phone player 12 is using
phone device 12         -- the same, typed in the server console

Output:

  • Success: Device 86xxxxxxxxxxxxx | number 213-555-0142 | battery 100% | power on | PIN no | owner John Smith. The number shows "none" when the phone has no SIM, and the owner is the phone's registered owner.
  • "No player with that id." means nobody with that server ID is online.
  • "That player is not carrying a phone."

Notes:

  • If that phone has never been used, looking it up gives it its device ID, the same way using it would.

/phone resetpin

Removes the passcode from the phone a player is using, and ends any wrong-passcode lockout. Use it when a player forgot their passcode.

Usage:

/phone resetpin <id>

Parameters:

ParameterTypeRequiredDescription
idnumberYesThe player's server ID

Examples:

/phone resetpin 12      -- remove the passcode from player 12's phone

Output:

  • Success: "PIN removed from phone 86xxxxxxxxxxxxx."
  • Failure: "No player with that id." or "That player is not carrying a phone."

Notes:

  • The phone opens without a passcode from now on. The player can set a new one in Settings → Passcode.
  • A player who is looking at the lock screen when you run it can unlock straight away.

/phone apppassword

Removes the password from an account in a phone app (Hookr, Leakd, Glitch or any other app that uses the phone's accounts) and signs every phone out of it. Use it when a player forgot their app password. The account then has no password again: the phone with the SIM that made it signs in to it the next time the app opens, and the player can set a new password in Settings.

Usage:

/phone apppassword <app> <username>

Parameters:

ParameterTypeRequiredDescription
apptextYesThe app's id: hookr, leakd, glitch, or the id another app uses
usernametextYesThe account's username, with or without the @

Examples:

/phone apppassword hookr jamie.r      -- remove the password from @jamie.r on Hookr

Output:

  • Success: "Password removed from jamie.r on hookr. Every phone was signed out of it."
  • Failure: "No hookr account is called jamie.r."

A phone police hold as evidence stays signed in.


/phone battery

Sets the battery level of the phone a player is using. Use it to test battery drain, car charging and powerbanks, or to rescue a player whose phone ran flat.

Usage:

/phone battery <id> <percent>

Parameters:

ParameterTypeRequiredDescription
idnumberYesThe player's server ID
percentnumberYesThe new level, from 0 to 100

Examples:

/phone battery 12 100   -- fully charge player 12's phone
/phone battery 12 5     -- almost flat, to test the low-battery warning

Output:

  • Success: "Phone 86xxxxxxxxxxxxx battery set to 100%."
  • "Battery must be a number from 0 to 100."
  • "No player with that id." or "That player is not carrying a phone."

Notes:

  • If the player has the phone open, its status bar updates at once.
  • With batteries turned off (Config.Battery.enabled), a level you set stays exactly where you put it. Setting 0 then makes the phone dead ("The battery is dead.") until you set it higher again, because nothing charges it.

/phone charger

Places the phone's charging station model in front of you, standing on the ground and facing you. Use it to see the model in your world before you put stations on your map.

Usage:

/phone charger [clear]

Parameters:

ParameterTypeRequiredDescription
cleartextNoType clear to remove the stations you placed

Examples:

/phone charger          -- place a station in front of you
/phone charger clear    -- remove the stations you placed

Output:

  • Success: "Charging station placed. /phone charger clear removes it."
  • "Removed 2 charging stations."
  • "The charging station model could not be loaded. See the F8 console."
  • From the server console: "Run this in game: the station is placed in front of you."

Notes:

  • Nothing is saved. The stations disappear when you leave, when you run /phone charger clear, or when oxide-phone restarts.
  • The stations this command places are only for looking at: they don't charge phones. Working stations are added in /phone settings → World → Battery → Charging stations (see Configuration → Charging Stations).

/phone calltest

Checks the call privacy guard. Your own game tries to join another player's call channel in pma-voice, the way a cheater could, and the phone should throw you out at once.

Usage:

/phone calltest <id>

Parameters:

ParameterTypeRequiredDescription
idnumberYesThe server ID of a player who is in an answered call

Output:

  • Success: "Joining their call channel. You should be removed at once." The server console then shows:
    [WARN][oxide-phone][security] player joined a call channel they are not in; removed
  • "That player is not in an answered call."

Server console: no. From the console it prints [oxide-phone] /phone calltest must be run in game.

Notes:

  • Calls need pma-voice, so this test only makes sense on a server that runs it.

/phone streams

Lists every live stream: apps on the phone, such as Leakd and Glitch, can let players go live with the phone's camera (see Media → Live streams in /phone settings).

Usage:

/phone streams

Output: one line per stream with its id, the app, the player and the app account streaming, how many are watching and for how many minutes it has run, then the total, for example:

  • "s3qkzvbnfa glitch by Jordan Reyes (@jreyes) 6 watching 12 min"
  • "1 live, about 4.4 Mbps to viewers"
  • "Nobody is live." when there are none.

Notes:

  • The Mbps figure is the upload your server is spending on streams right now. Viewers past the Upload for viewers limit are refused.

/phone endstream

Ends a live stream. Its viewers are told it ended and the player's camera closes.

Usage:

/phone endstream <id>

Parameters:

ParameterTypeRequiredDescription
idtextYesThe stream id, from /phone streams

Output:

  • Success: "Stream s3qkzvbnfa ended."
  • "No live stream s3qkzvbnfa." when no stream has that id.

Notes:

  • The stream's evidence records that an admin ended it.

/phone simlost

Reports a registered SIM lost or stolen on its owner's behalf, the same as the owner doing it in Settings → SIM card. The SIM stops working at once, the phone holding it shows No SIM service, and phones signed in to the number's app accounts are signed out.

Usage:

/phone simlost <number>

Parameters:

ParameterTypeRequiredDescription
numbertextYesThe SIM's phone number, with or without dashes

Output:

  • Success: "The SIM for 310-555-0147 is reported lost and no longer works."
  • "No registered SIM serves 310-555-0147." for an unknown number or a burner.
  • "Could not report 310-555-0147 (reported)." when it was already reported.

Notes:

  • The carrier records note that an admin reported it.

/phone simreplace

Gives the registered owner a free replacement for a SIM reported lost: a SIM card item with the same number, or straight into the phone they are using where the inventory can't save item data.

Usage:

/phone simreplace <number> <id>

Parameters:

ParameterTypeRequiredDescription
numbertextYesThe phone number
idnumberYesThe server ID of the number's registered owner

Output:

  • Success: "Replacement SIM for 310-555-0147 given to Jordan." (the player's FiveM name)
  • "No replacement for 310-555-0147 (unknown)." when that player isn't the owner, or "(active)" when the number still works.
  • "Usage: /phone simreplace <number> <id>" when the number or the ID is missing, or nobody with that ID is online.

/phone feedverify

Gives a Feed account the verified badge, or takes it away. The badge is a blue seal with a tick next to the account's name everywhere it appears in the Feed app: posts, replies, quotes, the profile, search, follower lists, notifications and the suggestions while someone types an @handle. Players who tap the badge on a profile see what it means.

Usage:

/phone feedverify <handle> [on|off]

Parameters:

ParameterTypeRequiredDescription
handletextYesThe Feed handle, with or without the @. Capital letters don't matter
on|offtextNoon gives the badge, off takes it away. Leave it out to give it

Examples:

/phone feedverify @lsnews          -- verify @lsnews
/phone feedverify lsnews off       -- take the badge away again
phone feedverify lsnews            -- the same as the first, typed in the server console

Output:

  • Success: "@lsnews is now verified." or "@lsnews is no longer verified."
  • "@lsnews is already verified." or "@lsnews is not verified." when nothing needed to change.
  • "Handles are 3 to 20 letters, digits or _." when what you typed can't be a handle.
  • "No Feed profile has the handle @lsnews." when nobody has claimed that handle.
  • "Usage: /phone feedverify <handle> [on|off]" when the last word is not on or off.

Notes:

  • Every phone that has the Feed open shows the change at once. Nobody needs to reopen the app.
  • The server console logs handleVerified or handleUnverified with the handle and who did it (console from the server console), as well as commandUsed.
  • This is the same as Verify @handle in the Feed app's menus (see Admin Tools Inside the Phone).

oxide-phone:mapmode

Shows or changes how the phone's Maps app draws the islands. This command comes from o-link's shared map. The same choice is Map mode in /phone settings → General.

Usage:

oxide-phone:mapmode [mode]

In game, type it with a slash: /oxide-phone:mapmode combined.

Parameters:

ParameterTypeRequiredDescription
modetextNoinherit (use the o-link default), combined (both islands on one map), separate (separate island views) or disabled (hide Cayo Perico). Leave it out to see the current mode

Examples:

oxide-phone:mapmode             -- print the current mode
oxide-phone:mapmode combined    -- show both islands on one map

Output: printed in the server console, for example [oxide-phone] MapMode = combined. A word that isn't a mode prints [oxide-phone] Use oxide-phone:mapmode inherit|combined|separate|disabled.


Player Keys

These are not commands to type. Players find them in Esc → Settings → Key Bindings → FiveM and can change them.

Key bindingDefault keyWhat it does
Open phoneF1 (Config.OpenKey)Opens the phone in the lowest inventory slot, or puts it away
Phone: answer a call with the phone put awayEnter (Config.Calls.answerKey)Answers a ringing call without opening the phone
Phone: decline a call with the phone put awayBackspace (Config.Calls.declineKey)Declines a ringing call without opening the phone
Phone camera: switch to selfie and backRWhile the camera is up
Phone camera: hold the view in placeFWhile the camera is up
Phone camera: tilt leftZWhile the camera is up
Phone camera: tilt rightCWhile the camera is up
Phone camera: next modeF7While the camera is up; initial key set by Config.Camera.modeKey
Phone camera: flashEWhile the camera is up
Phone camera: full screenVWhile the camera is up
Phone camera: use the pointerQWhile the camera is up

A new default key only reaches players who have never joined your server. Everyone else keeps their own binding. On QBCore, stock qb-radialmenu also uses F1; see Installation → QBCore for how to pick another default.

The Settings Editor

/phone settings opens the Phone Settings window. Every value in it is saved to your database and applies straight away. Configuration explains every setting in detail.

How to use it:

  1. Pick a section in the left sidebar.
  2. Use the Basic and Advanced tabs at the top. Most settings are on Basic.
  3. Change values. A changed badge marks each one, and the bottom bar counts your unsaved changes.
  4. Press Save Changes. A setting that isn't allowed shows why; the rest are still saved.
  5. Close with Close or ESC. Closing throws away unsaved changes.

Reset to default puts one setting back to the value in shared/config.lua as it was when the phone last started. It saves at once.

The sections:

SidebarSectionWhat you set there
DeviceGeneralThe default open key, and the Maps map mode
DeviceItemsWhich items are phones, SIM cards, powerbanks and the phone wiper
DeviceNumbers & SIMsThe number format, area codes, the free SIM with a new phone, and the price of a replacement SIM
DeviceSecurityPasscode lengths and the wrong-passcode lockout
DeviceCalls & MessagesRing time, ring distance and sound; text limits; contacts; mail
DeviceMediaPhoto storage (with video and voice clip limits), walking with the camera, and live streams
PoliceEvidencePolice and authorizer jobs, search authorizations, extraction, stations, recovery, carrier records, traces and report destinations
PoliceEmergency911, 311 and the jobs they alert
WorldBatteryDrain, car charging, powerbanks and charging stations
WorldSignalNo signal indoors, and the no-signal areas you draw in the world
ScreenHome & AppsThe Store (preinstalled apps and how downloads behave), the default look, dock size, pages, extra wallpapers, and (Advanced tab) the app start timeout
ScreenAppsNotes, Maps, Dark Chat, Feed, Wallet and Gigs
ScreenNotificationsBanner time, notification sound, and how many notifications a phone keeps
ScreenAppearanceThe phone held in the hand: its colour, a colour per phone item, or another model
AdvancedCompatibilityModel replacements for your game build
AdvancedAdvanced(Advanced tab) How often the server checks phones, and Debug mode

Drawing in the world. Three kinds of setting are placed in the world instead of typed:

  • Forensics stations (Evidence): the crosshair button (Place in world) lets you pick the spot; Teleport here takes you to a saved one.
  • Charging stations (Battery): press Add under Stations, then the crosshair next to Spot. A see-through station follows your aim: scroll to turn it, left-click to put it down, then Save Changes. Aiming at a station already on your map snaps onto it. See Configuration → Charging Stations.
  • No-signal areas (Signal): Draw a zone starts o-link's zone builder to place the corners of an area; Redraw in the world reshapes one.

The editor hides itself while you place things and comes back when you're done. These tools need an o-link with in-world placement; with an older one the editor says "In-world placement needs an updated o-link."

Admin Tools Inside the Phone

Feed moderation. Admins (see Permissions) get more in the ... menu of every post in the Feed app:

  • Delete Post removes any post, not only their own. The server console logs postRemoved.
  • Mute the author for 24 hours stops that handle from posting and reposting for 24 hours. It shows on other people's posts. The author sees "A moderator has muted you for now." The server console logs authorMuted.
  • Unmute the author lifts a mute early. The server console logs authorUnmuted.
  • Verify @handle gives that handle the verified badge beside its name; Remove verification takes it away. It is also behind the shield button on a profile. It works exactly like /phone feedverify: every open Feed shows the change at once, and the server console logs handleVerified or handleUnverified.
  • Reported Posts: the shield button at the top of the Feed's Home tab (with the number of reported posts) lists every post players reported, oldest first, with how many reports and why. Remove Post deletes it, Dismiss closes its reports and Mute 24 h mutes its author. The server console logs reportedPostRemoved or reportsDismissed.

Debug mode. With Debug mode on (Advanced → Advanced, Advanced tab), the Store offers a Demo app that shows how apps from other resources work on the phone (it is also offered on oxide-tablet when that runs), and extra detail is printed to the server console and the F8 console. Turn it off on a live server.

Permissions

Every admin part of the phone (/phone settings, the admin /phone commands, oxide-phone:mapmode and Feed moderation) uses one check from o-link. A player passes if they have the admin or command permission. On ESX, members of an ESX admin group pass too. The server console (ID 0) always passes.

QBCore and QBX

Most QBCore and QBX servers already give their group.admin group the command permission in server.cfg, so existing admins work straight away. If your server.cfg has this line, you're done:

server.cfg
add_ace group.admin command allow

ESX

Players in an ESX admin group pass the check. You can also use the lines below.

Any Framework

Add these two lines to your server.cfg, replacing YOUR_LICENSE with the admin's license identifier:

server.cfg
add_principal identifier.license:YOUR_LICENSE group.admin
add_ace group.admin admin allow

The first line puts the player in the group.admin group. The second gives that group the admin permission. Restart your server after editing server.cfg.

When someone without permission tries an admin command, they see "You do not have permission." and the server console logs an admin command denied warning with the subcommand and their identifier. Every admin command that is allowed is logged too (commandUsed).

Next Steps