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 |
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.
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.
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 |
It prints for every block from every player. Use it to answer one question, then turn it back off.