Skip to main content
The phone app system manages which apps are available to players based on job, permissions, reputation, and phone type.

Overview

App Restrictions

Job, permission, and reputation gates

Phone Types

Android, burner, and custom types

Settings

Wallpaper, ringtone, volume, zoom

Permissions

Per-app permission system

Available Apps

App IDDescriptionRestriction
phonePhone dialer and call logNone
contactsContact managementNone
messagesSMS messagingNone
emailEmail inboxNone
galleryPhoto galleryNone
settingsPhone settingsNone
bankBanking appNone
cryptoCryptocurrency walletNone
garageVehicle managementNone
twitterSocial media (Bleeter)None
advertsClassified advertisementsNone
storeApp storeNone
documentsID and documentsNone
ircIRC chat channelsNone
laborLabor/side jobsNone
loansLoan managementNone
pingemPlayer pingingNone
casinoCasino appNone
homemanageProperty managementNone
bluelinePolice MDTJob: police
leoassistLEO assistance toolsJob: police
govtGovernment managementJob: government
comanagerCompany managementJob-based
redlineStreet racingPermission-based
lsundergroundUnderground marketReputation-based
trapphoneBurner phone messagingPhone type: burner
dyn8Real estateJob: realestate

App Restriction Types

Apps can be restricted by multiple criteria:

Job Restriction

App is only available to players with a specific job.
{
    job = 'police',
    workplace = 'lspd',        -- Optional: specific workplace
    gradeLevel = 2             -- Optional: minimum grade
}

State Restriction

App requires a specific character state.
{
    state = 'onDuty'           -- Character must be on duty
}

Job Permission

App requires a specific job permission flag.
{
    jobPermission = 'mdt_access'
}

Phone Permission

App requires a phone-level permission.
{
    phonePermission = 'create'  -- e.g., redline race creation
}

Reputation

App requires minimum reputation level.
{
    reputation = 'underground',
    level = 5
}

Default Settings

New characters are created with these default phone settings:
{
    wallpaper = "wallpaper",       -- Default wallpaper
    ringtone = "ringtone1.ogg",    -- Default ringtone
    texttone = "text1.ogg",        -- Default text tone
    colors = {
        accent = "#1a7cc1"         -- UI accent color
    },
    zoom = 75,                     -- UI zoom level
    volume = 100,                  -- Volume (0-100)
    notifications = true,          -- Global notification toggle
    appNotifications = {}          -- Per-app notification overrides
}

Default Permissions

{
    redline = {
        create = false             -- Cannot create races by default
    }
}

Phone Character Data

The phone stores data in the character’s data under these keys:
KeyTypeDescription
Appstable{ installed = {}, home = {}, dock = {} }
PhoneSettingstableWallpaper, ringtone, volume, etc.
PhonePermissionstablePer-app permissions
PhoneTypestring"android", "burner", etc.
AliastablePer-app aliases { [appName] = {...} }

Text Tones

IDLabel
textText Tone 1
text2Text Tone 2

Next Steps

Phone - Exports

Phone API methods

Phone - Events

Phone events

Jobs API

Job system for restrictions