FreeScriptsDocsSupport

Browse

  • Documentation
    • FAQ
  • 📱 Phone
    • 🧠 Installation
    • 🦄 Unique phones
    • 💿 Configure
      • 💄 Additional Features
      • 📸 Camera
      • 📹 Video Calls
      • 🍏 Apps
      • 🪵 Logs
      • 🔋 Battery System
      • 🖼️ Media Customization
      • 🗣️ Multi-Language Support
      • 🗃️ SIM Cards
      • 🚗 Valet System
      • 🖼️ Wallpapers App
      • ⛅ Weather Widget
    • ⏭️ Exports
      • Client side
        • 👁️‍🗨️ General
        • 📞 Calls
        • ☀️ Groups
        • 🏢 Companies
        • 🔧 Misc
        • 🗼 Signal Towers
      • Server side
        • 🆔 Identify Player
        • ☎️ Sim Cards
        • 📞 Calls
        • 💬 Messages
        • ☀️ Groups
        • 🌐 Cell Broadcast
        • 💸 YPay
        • 📧 Mail
        • 📪 Notifications
        • 📵 Screen Damage
        • 🗯️ Dark Chat
        • 🔧 Misc
    • 🪛 Commands
    • 📡 Events
      • Server side
        • 📨 Messages
        • 📱 Social Media
        • ☎️ Calls
    • 🍎 Custom apps
    • 🏦 Banking App
    • 📈 Markets App
    • 👜 State bags
  • ☎️ Boomer Phone
    • 🧠 Installation
    • 🦄 Unique phones
    • ⏯️ Exports
      • Client side
  • 🏠 Properties
    • 🧠 Installation
    • 💿 Configure
    • 🔗 Compatibility
      • Phones
        • YSeries
        • LB Phone
    • 📖 Guides
      • 🛏️ Starter Apartments
      • 🐚 Add More Shells
      • 🔑 Physical Keys
      • 🪑 Furniture As Items
      • 🛠️ Fix Interactable Points
      • 📋 Discord Logs Setup
    • ⏭️ Exports
      • Client side
        • GetCurrentPropertyId
        • GetCurrentProperty
        • IsPointInsideProperty
        • OpenPropertyMenu
        • AddKey
        • RemoveKey
        • SetWaypointToProperty
        • GetAllProperties
        • GetKeyHolders
        • PoliceRaidDoor
        • WrapIntoProperty
        • GetClosestDoor
        • GetEntryCoordinates
        • UseLockpick
        • PoliceRaidDoor
      • Server side
        • GetAllProperties
        • GetPropertyData
        • AddKey
        • RemoveKey
        • ToggleDoorlock
        • GetPlayersInProperty
        • GetKeyHolders
        • DeleteProperty
        • AddStarterApartment
        • SellProperty
        • TransferProperty
    • 🪝 Hooks System
      • buyProperty
      • rentProperty
      • sellProperty
      • deleteProperty
      • createDoor
      • saveSettings
      • setInteractablePoint
      • canEnter
      • canExit
    • 👜 State bags
  • 🏦 Banking
    • 🧠 Installation
    • 🪛 Commands
    • ⏯️ Exports
      • Client side
      • Server side
    • 🪵 Logs
    • 🪝 Hooks
    • 🏦 Banking App
  • 💸 Billing
    • 🧠 Installation
    • ⏭️ Exports
      • Client side
      • Server side
  • 📊 Hud
    • 🧠 Installation
    • ⏭️ Exports
      • Client side
  • 📦 Storage Units
    • 🧠 Installation
  • 🎰 Slots
    • 🧠 Installation
    • 📱 Phone app
  • 🎃 Minigames
    • 🎯 Exports and Usage
    • 🔧 Commands

🍏 Apps

Managing Apps

Adding/Removing Apps

You can add or remove apps from the phone by modifying the config/config.json file:

  1. Navigate to config/config.json
  2. Locate the apps section
  3. Add or remove app entries as needed
  4. Restart the phone system (preferably the whole server)

Important Notes:

  • JSON files don't support comments
  • If apps don't disappear after removal, ensure you completely removed the entry (don't just comment it out)
  • Always validate JSON syntax after modifications

Basic App Structure

json
{
    "key": "app_identifier",
    "name": "App Display Name",
    "description": "App Category/Description",
    "defaultApp": false
}

App Restrictions

Job-Based Restrictions

You can restrict apps based on player jobs using disabledJobs and allowedJobs arrays:

json
{
    "key": "darkchat",
    "name": "Dark Chat",
    "description": "Communication",
    "defaultApp": false,
    "disabledJobs": ["police"],
    "allowedJobs": ["cartel"]
}

Restriction Types

Disabled Jobs

  • Purpose: Prevent specific jobs from accessing the app
  • Usage: Add job names to disabledJobs array
  • Example: Police officers cannot access illegal communication apps
json
"disabledJobs": ["police", "sheriff", "fbi"]

Allowed Jobs

  • Purpose: Only allow specific jobs to access the app
  • Usage: Add job names to allowedJobs array
  • Example: Only cartel members can access dark chat
json
"allowedJobs": ["cartel", "gang", "mafia"]

Restriction Logic

  • If allowedJobs is defined: Only listed jobs can access the app
  • If disabledJobs is defined: All jobs except listed ones can access the app
  • If both are defined: allowedJobs takes precedence
  • If neither is defined: All jobs can access the app

Custom App Integration

Adding Custom Apps

  1. Create App Configuration:
json
{
    "key": "myapp",
    "name": "My Custom App",
    "description": "Utilities",
    "defaultApp": false,
    "allowedJobs": ["mechanic"]
}
  1. Implement App Logic:
    • Create UI components in the phone interface
    • Add server-side handlers if needed
    • Implement app-specific functionality

App Development Guidelines

  • Performance: Keep apps lightweight and responsive
  • Consistency: Follow existing app design patterns
  • Security: Validate all user inputs server-side
  • Permissions: Respect job restrictions and permissions

Configuration Examples

Security App (Police Only)

json
{
    "key": "police_mdt",
    "name": "Police MDT",
    "description": "Law Enforcement",
    "defaultApp": false,
    "allowedJobs": ["police", "sheriff", "fbi"],
    "icon": "shield"
}

Illegal Communications (No Police)

json
{
    "key": "encrypted_chat",
    "name": "Encrypted Chat",
    "description": "Communication",
    "defaultApp": false,
    "disabledJobs": ["police", "sheriff", "fbi", "ems"]
}

Universal Utility App

json
{
    "key": "calculator",
    "name": "Calculator",
    "description": "Utilities",
    "defaultApp": true
}

Troubleshooting

Common Issues

  1. Apps not appearing/disappearing:
    • Check JSON syntax validity
    • Ensure complete restart of resource/server
    • Verify app entries are properly formatted
  2. Job restrictions not working:
    • Check job names match exactly (case-sensitive)
    • Verify player job data is properly set
    • Test with different job assignments
  3. JSON parsing errors:
    • Use a JSON validator to check syntax
    • Remove any comments from JSON files
    • Check for trailing commas

Validation Steps

  1. JSON Validation: Use online JSON validators
  2. Job Testing: Test restrictions with different job roles
  3. Server Logs: Check console for configuration errors
  4. Player Testing: Have players with different jobs test access

Debug Commands

lua
-- Check current player job
/job

On this page

  • Managing Apps
  • Adding/Removing Apps
  • Basic App Structure
  • App Restrictions
  • Job-Based Restrictions
  • Restriction Types
  • Restriction Logic
  • Custom App Integration
  • Adding Custom Apps
  • App Development Guidelines
  • Configuration Examples
  • Security App (Police Only)
  • Illegal Communications (No Police)
  • Universal Utility App
  • Troubleshooting
  • Common Issues
  • Validation Steps
  • Debug Commands

All Rights Reserved

TeamsGG © 2026

Pages

FreeScriptsDocsSupport

Legal

Terms of ServiceRefunds

Tebex

Tebex ImpressumTebex TermsTebex Privacy

Socials

DiscordYouTube