ModularJobs
Guides

Boosts

Timed, item, and upgrade boosts — conditions, policies, and the admin commands.

The idea

Boosts multiply what a job action pays for a while. They come from timed admin grants, items, or upgrade nodes.

basics

You can run jobs with no boosts at all. Sources are extra configuration.

Everyday

Admins grant timed boosts with /jobs boost and players see active ones with /jobs boosts.

Advanced

Advanced — you do not need this to get started.

Conditions, item PDC, and upgrade-sourced boosts are later machinery.

Boost families

The boost engine aggregates three source families when paying a job action:

FamilyWhere it livesExample
Timed boostsMySQL (time_boosts), granted by admins/jobs boost apply @global modularjobs:mining_boost 1d
Item boostsConsumables / passive items in inventory/jobs boost item modularjobs:mining_boost 30m 1
Upgrade boostsSkill-tree node effects/jobs upgrade miner

Evaluation is deterministic: a BoostContext (action type, progression, player, world, payable, condition snapshot) is evaluated against every source; each source's highest-priority matching rule wins, and boosts never double-apply the same source (identity keyed by target + source).

Conditions

A boost rule matches when its condition evaluates truthy against the player snapshot. Available condition kinds include:

ConditionApplies when
alwaysAlways
worldPlayer is in the named world
biomePlayer is in the named biome
sneaking / sprintingPlayer is (not) sneaking / sprinting
weatherWeather state matches
potion_effectPlayer has the potion effect (duration / amplifier)
resourcePlayer resource (health / hunger / experience) compares via relational operator
modularjobs:jobPlayer has the job (via snapshot extras)
modularjobs:job_levelPlayer's job level compares

Conditions compose with and / or / not trees in JSON.

Boost sources

boost_sources_default.json ships 19 starter sources under boost_sources. Each source is a namespaced key with a description and a rules array; a rule is priority + conditions + boost:

{
  "key": "modularjobs:mining_boost",
  "description": "Enhanced mining rewards - Highest boost in the Nether while sneaking",
  "rules": [
    {
      "priority": 100,
      "conditions": {
        "type": "and",
        "conditions": [
          { "type": "world", "value": "world_nether" },
          { "type": "sneaking", "value": true }
        ]
      },
      "boost": { "type": "multiplicative", "amount": 3.0 }
    },
    {
      "priority": 10,
      "conditions": { "type": "always" },
      "boost": { "type": "multiplicative", "amount": 1.25 }
    }
  ]
}

/jobs boost sources lists sources; sources info <key> shows a source's rules; sources reload re-reads the file.

Admin commands

All boost commands require modularjobs.admin (op by default).

CommandEffect
/jobs boost apply <target> <source> <duration>Grant a timed boost to @global, @all, or one online player
/jobs boost remove <target> <source>Remove a timed boost from the global target or a player
/jobs boost list [target]List timed, passive item, and upgrade boosts for a target
/jobs boost item <source> <duration> [amount]Create consumable items carrying a timed boost source
/jobs boost sourcesList / reload boost sources
/jobs boostsView your own active boosts

Duration formats: 1d, 30m, 1h30m, etc.

Permission gate

Boost administration is never available to normal players. /jobs boost, /jobs editor, and /jobs applyedits all require modularjobs.admin.

mcMMO ability booms

When mcMMO is installed, it contributes a multiplicative boost source during player ability activation: it listens for McMMOPlayerAbilityActivateEvent / DeactivateEvent, tracks the active SuperAbilityType per player, and emits a configured multiplicative boost.

Persistence

Timed boosts persist in MySQL (time_boosts + time_boost_identity) — nothing is in-memory only for production timed boosts. Condition serializer bytes and rule priority travel inside SerializableBoostData JSON; item storage embeds that JSON in a PDC DataBag (BYTE_ARRAY, format id 1).

On this page