Skip to main content
Jobs in Mythic Framework are defined with structured configuration that controls job types, grades, permissions, salaries, and organizational structure. This page covers how to configure and create custom jobs.

Job Definition Structure

Jobs are defined in configuration files under mythic-jobs/config/defaultJobs/:

Job Types

string
required
Job category for organization and behaviorOptions:
  • "Company" - Private businesses (restaurants, shops, etc.)
  • "Government" - Government agencies (police, medical, etc.)
Differences:
  • Government jobs typically have higher salaries and special permissions
  • Company jobs can be player-owned with business management
string
required
Unique job identifierRules:
  • Lowercase, no spaces
  • Use underscores for multi-word jobs
  • Must be unique across all jobs
Examples: "police", "ems", "beanmachine", "auto_exotics"
string
required
Display name shown to playersExamples: "Police", "Medical", "Bean Machine", "Auto Exotics"
number
required
Base salary amount per paycheck intervalGuidelines:
  • Entry-level jobs: $150-300
  • Skilled jobs: $300-600
  • Professional jobs: $600-1200
  • Government jobs: $800-1500
Note: Actual pay is multiplied by SalaryTier
number
required
Salary multiplier tier (1-5)Determines final paycheck amount: FinalPay = Salary * SalaryTier * (GradeLevel / 100)Examples:
  • Tier 1: Standard pay (1.0x)
  • Tier 2: Higher pay (1.5x)
  • Tier 3: Premium pay (2.0x)
  • Tier 4: Executive pay (2.5x)
  • Tier 5: Top pay (3.0x)
number
Unix timestamp of last configuration updateUsed for tracking changes and migrations

Job Structures

Simple Job Structure

For single-location businesses without departments:

Complex Job Structure (Workplaces)

For organizations with multiple departments or locations:
Workplaces are used when:
  • Job has multiple departments/locations
  • Each location has separate chain of command
  • Employees are assigned to specific workplace
  • Examples: Police departments, medical facilities, restaurant chains

Grade Configuration

Grades represent ranks or positions within a job:

Grade Fields

string
required
Unique identifier for this gradeRules:
  • Lowercase, no spaces
  • Unique within the job
  • Should not conflict across workplaces
Examples: "cadet", "officer", "sergeant", "chief"
string
required
Display name for the gradeExamples: "Cadet", "Officer", "Sergeant", "Chief of Police"
number
required
Numeric level representing rank hierarchy (1-99)Guidelines:
  • Entry level: 1-10
  • Junior: 11-25
  • Mid-level: 26-50
  • Senior: 51-75
  • Leadership: 76-90
  • Command: 91-99
Used for:
  • Salary calculations
  • Permission hierarchies
  • Promotion system
  • Rank comparisons
table
required
Table of permission keys with boolean valuesDetermines what actions this grade can perform

Grade Levels Best Practices


Permission System

Permissions control what actions employees can perform. They are boolean flags checked throughout the framework.

Common Permissions

Job Management:
Job Resources:
Fleet/Vehicles:
MDT (Mobile Data Terminal):
Banking:
Alerts:
Special Permissions:

Permission Hierarchy Example

Custom Permissions

You can create custom permissions for your resources:

Creating Custom Jobs

Step 1: Create Job Configuration File

Create a new file in mythic-jobs/config/defaultJobs/:

Step 2: Add to fxmanifest.lua

Ensure your job file is loaded:

Step 3: Restart Resource

Step 4: Assign Job to Players


Complete Job Examples

Restaurant Example

Mechanic Shop Example

Security Company Example


Best Practices

Space out grade levels to allow for expansion:
Higher grades should include lower grade permissions:
Balance salaries across jobs:
Use descriptive, consistent permission names:
Only use workplaces when necessary:Use workplaces for:
  • Multiple departments (LSPD, BCSO, SASP)
  • Different locations with separate management
  • Jobs where workplace assignment matters
Don’t use workplaces for:
  • Single-location businesses
  • Jobs with one hierarchy
  • Simple employee structure

Checking Permissions in Code

Server-Side Permission Checks

Client-Side Permission Checks

Callback Permission Check


Troubleshooting

Possible causes:
  1. Job file not loaded in fxmanifest.lua
  2. Syntax error in job definition
    • Check server console for Lua errors
    • Validate Lua syntax
  3. Resource not restarted
  4. Duplicate job ID
    • Ensure job ID is unique
    • Check for conflicts with existing jobs
Check:
  1. Permission spelling - Must match exactly
  2. Permission assigned to grade
  3. Character has correct job and grade
  4. On-duty requirement - Some features require being on duty
Verify:
  1. Salary configuration
  2. Paycheck interval - Check server configuration
  3. On-duty requirement - Paychecks only when clocked in
  4. Bank account setup - Ensure character has bank account
Formula:

Next Steps

Jobs - Exports

Job management methods

Jobs - Events

Job-related events

Jobs Feature Guide

Using the job system

Characters API

Character management
Permission Testing: Use /jobinfo command (if available) or check the F8 console to view your current job, grade, and permissions while testing.
Database Changes: After modifying job configurations, existing characters may need to be reassigned to their jobs or have their data migrated. Always backup your database before making significant job changes.