FreeScriptsDocsCustomSupport

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

FreeScriptsDocsCustomSupport

Legal

Terms of ServiceRefunds

Tebex

Tebex ImpressumTebex TermsTebex Privacy

Socials

DiscordYouTube