# Objectives

Objectives are the main source of job XP and Income for players.

Jobs can have unlimited amount of objectives with different Work Types for each of them. This means that it's not necessary for, say, Miner job to mine blocks to get money - it can be expanded to craft & repair pickaxes, smelting ores, etc.

Objectives configuration located in the job's directory: ExcellentJobs/jobs/<jobId>/objectives.yml

# Configuration

Here is a small example of how you do create and configure job objectives.

grass_blocks:
  Type: block_break
  Display:
    Name: Grass Blocks
    Icon:
      Material: GRASS_BLOCK
  Objects:
  - dirt
  - grass_block
  Payment:
    vault:
      Chance: 100.0
      Min: 0.03
      Max: 0.07
    coinsengine_coins:
      Chance: 100.0
      Min: 0.03
      Max: 0.07
  Job_XP:
    Chance: 25.0
    Min: 1.0
    Max: 2.0
  Unlock_Level: 1
  SpecialOrder:
    Allowed: true
    Objects_Amount:
      Min: 1
      Max: 3
    Objects_Count:
      Min: 1
      Max: 100

Where grass_blocks is an unique objective identifier. It's recommended to use only latin letters and numbers.

  • Type - Sets Work Type for the objective.
  • Display Name - Sets objective display name to show in GUIs and messages.
  • Display Icon - Sets objective Icon to show in GUIs.
  • Objects - List of actual objects that player have to "do" according to the objective's Type. You can use wildcard * to include all possible objects.
  • Payment - List of possible Incomes based on Currency ID .
  • Job_XP - Possible job XP reward. Integers only.
  • Unlock_Level - Job level requirement. If player's job level is below this value, player will gain no XP and Income for this objective.
  • SpecialOrder - Controls whether this objective can be used by Special Orders feature.
    • Objects_Amount - Sets amount of possible Objects picked.
    • Objects_Count - Sets amount per picked object.