config.yml

Server-side settings: storage, economy, drops behaviour, leaderboards, and the monthly ranking.

Language and time

Key Default What it does
language en Which file in lang/ messages come from. Bundled: en, fr, es
timezone system Time zone for the monthly rollover. system follows the server clock, or use a time zone id like Europe/Paris
A bad time zone is not fatal

An unrecognised value warns in console and falls back to the system clock.

Storage

storage:
  type: sqlite
  sqlite:
    file: "data.db"
  mysql:
    host: "localhost"
    port: 3306
    database: "corejobs"
    username: "root"
    password: ""
    properties: "useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf8"
    table-prefix: "corejobs_"

Covered in full on Storage.

Economy

Key Default What it does
economy.use-vault true Pay job money through Vault. Needs Vault plus an economy plugin

With this off, or Vault missing, jobs still award xp and farmpoints but no money.

Feedback

Key Default What it does
feedback.xp-actionbar true Live action bar on every xp gain: job, xp gained, money paid, the block that paid, progress to the next level
feedback.actionbar-farmpoints true Put the farmpoints from the same block on the end of that line instead of overwriting it
feedback.progress-bar.length 20 Characters in the {bar} progress bar
feedback.progress-bar.character | The character repeated for each step of the bar
feedback.progress-bar.filled-color &a Colour of the part already earned
feedback.progress-bar.empty-color &8 Colour of the part still to go
feedback.boost-menu-refresh-ticks 20 How often an open boosts menu redraws, in ticks. 0 turns the redraw off

The wording comes from the job.xp-actionbar key in your language file. Level-up still prints in chat either way.

The line takes {job}, {gained}, {xp}, {xpnext}, {level}, {maxlevel}, {prestige}, {money}, {block}, {block_id}, {job_id}, and {bar}. Drop the ones you don’t want. Farmpoints come in through job.actionbar-points, which is stuck on the end when the same action dropped some.

You write the line once. Every token is filled per action, so {block} says stone on stone, oak log on oak log, cod on a catch and the mob name on a kill, with nothing configured per block. {block_id} is the same value as the raw key, oak_log instead of oak log, and {job_id} is the job id, miner. Those two are filled before PlaceholderAPI runs, so they can be built into another plugin’s placeholder that wants a material or a job name. See Placeholders for that.

With boost-menu-refresh-ticks above 0, the time left on a boost counts down while the menu sits open instead of only moving when it is reopened.

Anti place-and-break

Key Default What it does
anti-placement-dupe true A block the player placed by hand pays no xp, money, or drops when broken again

Blocks that grew on their own still pay in full, and so does a placed block that has since turned into something else. The record is kept in memory, so a restart forgets every placement.

Multi-stage plants

multi-block:
  enabled: true
  column:
    - SUGAR_CANE
    - CACTUS
    - BAMBOO
    - KELP
    - KELP_PLANT
  connected-up:
    - CHORUS_PLANT
    - CHORUS_FLOWER
  connected-down:
    - VINE
List Shape
column A straight vertical stack. Breaking one drops everything above it
connected-up A cluster growing upward off a base, counted from the broken block up
connected-down A cluster hanging downward off an anchor, counted from the broken block down

Price each block with xp.per-block and money.per-block in jobs.yml, or a sixteen block chorus tree pays the same as one stem.

An old connected key is removed for you

Configs written before the split still carry a single multi-block.connected list. It was never migrated, so on the first start after updating CoreJobs deletes it and says so in the console. Check connected-up and connected-down hold the blocks you want.

Reloading

Key Default What it does
auto-reload true Watch the plugin folder and reload the moment a yml is saved

Anyone with a CoreJobs menu open gets it rebuilt and reopened on the same page. Turn it off to control reloads with /corejobs reload.

Leaderboards

leaderboards:
  size: 10
  refresh-seconds: 120
  min-delay-seconds: 5
Key Default What it does
size 10 How many places each board keeps, and the highest n a top placeholder can ask for
refresh-seconds 120 The idle interval: how long the boards go without a rebuild before one is done anyway
min-delay-seconds 5 Shortest gap between two rebuilds triggered by a change

Two things rebuild a board. The idle interval is one. The other is a change worth showing at once: a level up, a prestige, or an admin setlevel, addlevel or setprestige. Those mark the boards out of date and the next rebuild runs within min-delay-seconds instead of waiting out refresh-seconds, so a player who just levelled is in the top list seconds later.

min-delay-seconds is the rate limit on that. Without it, everyone levelling on a busy server would ask the database for a full rebuild several times a second.

A scoreboard reads the cached copy, so a rebuild is the only database cost no matter how many players are online.

The farmpoints boards move on the interval

Only job levels and prestiges trigger an early rebuild. Farmpoint totals sit in the player cache until the autosave writes them, so the farmpoints and monthly boards pick them up on refresh-seconds.

Overall level

Key Default What it does
overall-level.count-untouched-jobs false Count a job the player has never worked as 1 instead of 0

Boosts

Boosts come in three categories, xp, money and farmpoints, and one of each can run at the same time.

Key Default What it does
boosts.affect-xp true Multiply job xp while an xp boost runs
boosts.affect-money true Multiply money while a money boost runs
boosts.affect-farmpoints true Multiply farmpoints from drops while a farmpoints boost runs, ranking points included
boosts.xp-also-money false The old behaviour, from before money had a category of its own, where an xp boost also multiplied money
boosts.stacking highest How two running boosts of the same category combine. highest counts the strongest one, add sums the bonuses so 2x and 2x give 3x, multiply gives 4x
boosts.same-boost extend Buying a boost you already have. extend adds the time to it, separate starts a second one
boosts.queue-lower true A weaker boost freezes while a stronger one of the same category over the same jobs runs, then picks up its full time left. This is what keeps it to one per category. Only used with stacking: highest
boosts.pause-while-offline true Boost time does not burn while the server is down
boosts.external-refresh-ticks 20 How often, in ticks, other plugins are asked what extra multiplier they are giving. 0 turns the refresh off
boosts.as-item false Hand a bought boost over as an item to right click later instead of starting it at once
boosts.item.material EXPERIENCE_BOTTLE The look of that item
boosts.item.custom-model-data 0 Resource pack model id for it
boosts.item.itemsadder "" ItemsAdder id, used instead of the material when set
boosts.item.glow true Give it the enchanted shimmer
boosts.item-money GOLD_INGOT Overrides the look above for money boost items. Anything left out falls back to boosts.item
boosts.item-farmpoints NETHER_STAR The same for farmpoints boost items

external-refresh-ticks only matters with a plugin registered against the Developer API. It feeds the total and external placeholders and the extra line in the boosts menu, and only keys a placeholder actually asked for are refreshed, so it costs nothing on a server with no such plugin.

Display and formatting

Key Default What it does
display.hide-last-month-until-set true Hide the “Last month” line until a month has rolled over
formatting.money #,##0.00 How money is printed. # is an optional digit, 0 is a forced one, so this gives 1,250.00
formatting.farmpoints #,##0 Same for farmpoints, with no decimals

Ranking

ranking:
  enabled: true
  top: 5
  auto-reset: true
  webhook:
    enabled: false
    url: ""
    username: "CoreJobs"
    avatar-url: ""
  rewards:
    1:
      - "broadcast {player} finished #1 in the monthly farmpoints ranking!"

Covered in full on Monthly Ranking.

Debug and metrics

Key Default What it does
debug false One console line per block break: material, multi-block count, and what each job paid
metrics true Anonymous usage stats through bStats
Debug is loud

It prints for every block from every player. Use it to answer one question, then turn it back off.