Troubleshooting

Work down the list. Most of these are one config key.

Turn on debug first

debug: true in config.yml prints a console line per block break with the material, the multi-block count, and what each job paid. It answers most payout questions on its own. Turn it back off afterwards.

The plugin does not enable

Console shows a library error on first start

CoreJobs loads a few libraries the first time it runs. If the server cannot fetch them, it will not enable. Restart once, and if it keeps failing, copy the libraries folder from a server where CoreJobs has already started.

Console says something about an unsupported version

The server is on Java 16 or older. CoreJobs needs Java 17 or newer.

A yml fails to load

The console names the file and the line. It is almost always an indentation slip or a tab character. Fix it and restart, or delete the file to get a fresh default back.

Money problems

Players get xp but no money

Either Vault or an economy plugin is missing, or economy.use-vault is false. The console warns at startup when money is off.

Money is far too high or low at high levels

per-level compounds with every level. Check the payout at your max level, not level 1: /corejobs job setlevel <you> <job> 100 and read the pay line in the job hub.

Payout problems

A specific block pays nothing

Check, in order: the material is in that job’s blocks list, the crop is mature if require-mature is on, the player did not place that block, and the block is not a harvest block listed in the wrong place. Debug names the reason.

A multi-stage plant pays for one block only

multi-block.enabled must be true and the material must be in the right list: column for stacks, connected-up for chorus, connected-down for vines.

Right-clicked berries pay nothing

Sweet berries and cave vines belong in harvest-blocks, not blocks. They pay xp by default, and money only if the material has a money.per-block entry.

Everything pays twice

Check you are not running two copies of the jar. An old build left in plugins/ alongside the new one enables both.

Menu problems

A button is missing

Its slot is out of range for the menu’s rows, or two items share the same slot and one overwrote the other. Rows times nine is the slot count.

A menu shows raw text like menu.shop-name

The lang: route points at a key that does not exist in the language file in use. Add the key, or write literal text in menus.yml.

Menu text is in the wrong language

language in config.yml picks the file. A key missing from that file falls back or shows blank, so compare it against en.yml.

An ItemsAdder icon shows as a barrier

The namespaced id is wrong, or ItemsAdder loaded after CoreJobs. Check the id in ItemsAdder, then restart rather than reload.

Boost problems

A boost is in the menu but its time is not moving

It is waiting behind a stronger boost of the same category, which is what boosts.queue-lower does. Waiting boosts are listed after the running ones with the entry-paused icon, and the one at the front starts the moment the stronger one ends with its full time still on it.

A shop boost was bought but nothing started

boosts.as-item, or as-item on that shop entry, hands the boost over as an item instead of starting it. The player right clicks the item when they want it. A right click on a chest, a furnace or a door does not use it up unless the player is sneaking.

A boost lost time over a restart

A clean shutdown costs nothing, since every boost is frozen and its exact time left is written out. A crash costs up to 30 seconds, which is the gap between writes. boosts.pause-while-offline: false makes boosts count down through downtime on purpose.

Placeholder problems

A placeholder shows written out as %something%

Run /corejobs papi %something% in game. It prints the text as you wrote it, what PlaceholderAPI gave back, and whether the identifier is registered, which tells apart a missing PlaceholderAPI, a missing expansion, and a misspelled placeholder. Full walkthrough on Placeholders.

PlaceholderAPI was installed after CoreJobs

No restart needed. CoreJobs looks for PlaceholderAPI again on every line it renders until it finds it, so the placeholders start filling in on their own.

Ranking problems

Nothing posted to Discord

ranking.webhook.enabled must be true and url must be a full webhook URL. Test with /corejobs resetranking confirm, which posts immediately.

The month rolled over at the wrong time

timezone follows the server machine by default. Set a time zone id like Europe/Paris so the rollover matches your calendar.

Everyone shows 0 for last month

Expected on a fresh install until a month has actually rolled over. display.hide-last-month-until-set: true hides the line until then.

Config warnings

A console line about multi-block.connected

Configs written before that key was split still carry it. It was never migrated, so on the first start after updating it is deleted for you and the console says so once. Check connected-up and connected-down hold the blocks you want.

A warning about a shop entry

The console names the entry id and what is wrong: a slot outside the menu, a slot another entry already uses, type: boost with no boost block, a duration of 0, a multiplier of 1 or less, an unknown boost type, or a job that is not in jobs.yml. It warns on every start until the entry is fixed, switched off with enabled: false, or removed. See shop.yml.

A warning about a language line with a placeholder in it

A line in your language file holds a %placeholder% and PlaceholderAPI is not installed, so it reaches players written out. Install PlaceholderAPI or take the placeholder out of the line.

A warning about the time zone

The value is not a time zone the server recognises. The plugin falls back to the system clock. Use a full id like Asia/Kolkata, not a short form like IST.

Still stuck

Grab the console lines with [CoreJobs] in them and bring them to Support. The line right before the problem is usually the useful one.