![RPProfessions [1.17 - 1.20] icon](https://images.polymart.org/product/3585/thumbnail.png?t=1677509002&v=3)
RPProfessions [1.17 - 1.20] 1.5.1
Create Immersive RP Professions Focused on Crafting | Now supports ItemsAdder!
General Improvements
Make a BACKUP of your RPProfessions folder BEFORE updating!
(Certain) files will now be versioned. Meaning, a 'VERSION: x' line will be automatically added to (some of) your .yml files. This version allows RPProfessions to known if it should perform updating operations on your data. Doing so, it prevents you from manually changing previously working data in your files.
Items data change:
Importing items from other plugins is now working the same way with recipe ingredients. This means that a prefix must be put in front of your items id, followed by ':'.
Before 1.5.1:
BRONZE_INGOT:
mmo-item: BRONZE_INGOT
station: FORGE
category: MATERIAL
recipe:
'0': COPPER_INGOT
'1': COPPER_INGOT
'2': COPPER_INGOT
'3': mi:TIN_INGOT
'4': mi:TIN_INGOT
'5': mi:TIN_INGOT
'6': COPPER_INGOT
'7': COPPER_INGOT
'8': COPPER_INGOT
amount: 8
reagent:
material: REDSTONE
amount: 3
required-level: 20
allow-multiple: true
level-gain: 0
After 1.5.1:
BRONZE_INGOT:
item: mi:BRONZE_INGOT # Changed
station: FORGE
category: MATERIAL
recipe:
'0': COPPER_INGOT
'1': COPPER_INGOT
'2': COPPER_INGOT
'3': mi:TIN_INGOT
'4': mi:TIN_INGOT
'5': mi:TIN_INGOT
'6': COPPER_INGOT
'7': COPPER_INGOT
'8': COPPER_INGOT
amount: 8
reagent:
material: REDSTONE
amount: 3
required-level: 20
allow-multiple: true
level-gain: 0
As said earlier, these changes will be done automatically for you.
I will update the wiki to reflect these changes.
If you notice any bug or issue, please open a ticket in the issue section on Github.
New (Requested) Feature
RPProfessions now supports ItemsAdder. You can use items from ItemsAdder in your recipes/configurations.
BRONZE_SWORD:
ia-item: BRONZE_SWORD # Get the ItemsAdder named 'BRONZE_SWORD'
category: SWORD
dynamic: true
recipe:
1: BRONZE_INGOT
4: BRONZE_INGOT
6: STRING
7: STICK
8: STRING
required-level: 25
level-gain: 1
level-cap: 40
ICESTEEL_INGOT:
mmo-item: ICESTEEL_INGOT
station: FORGE
category: MATERIAL
recipe:
1: ia:STEEL_INGOT # Use the ItemsAdder 'STEEL_INGOT' in the recipe
3: ia:STEEL_INGOT
4: WEAK_ICE_CORE
5: ia:STEEL_INGOT
7: ia:STEEL_INGOT
reagent: SNOWBALL
reagent-amount: 8
amount: 4
required-level: 55
level-gain: 1
dynamic: true
default: false
You can use 'ia-item:' and 'ia:' interchangeably.
As it is a new feature, please report any bug at the issue section!
New (Requested) Features
There's now a new button in the workstation menu allowing you to view your recipes without having to leave the workstation and type '/recipes'.
Items are now properly put back in the player's inventory when closing a filled workstation GUI. Previously, items would simply be dropped near the player.
If you notice any bug or issue, please open a ticket in the issue section on Github.
New (Minor) Feature
It is now possible to showcase craftable items from your professions in the /professions menu. For each profession, an additional "insight" menu exists. It shows a specific item to promote its profession to players navigating through the profession selection menu. If the showcased item has a crafting recipe, clicking on it will show its recipe.


To select an item to showcase in the menu, add the 'example-craft: x' line in the "profession.yml" file :
BLACKSMITH:
workstations:
- ANVIL
- FORGE
display-name: "&c&lBlacksmith"
icon: IRON_CHESTPLATE
description:
- ""
- "&7Specialised in crafting plate and"
- "&7heavy plate armor and weapons"
privileges:
- ARMORS
- WEAPONS
example-craft: FIRESTEEL_SWORD # This will showcase the 'FIRESTELL_SWORD' item in the insight menu.
New (Requested) Feature
You can now use Oraxen blocks and furniture (as long as it is clickable) for your workstation's blocks.
ENCHANTING_TABLE:
materials:
- ENCHANTING_TABLE
- oraxen:table
display-name: "&dEnchanting Table"
restricted: false
station: ENCHANTING_TABLE
In the given example, interacting (shift + right click, or right click with the right tool) with the "table" furniture/block of Oraxen will open up the enchanting table workstation GUI.
If you notice any bug or issue, please open a ticket in the issue section on Github.
New (Requested) Feature
As recently requested by a user, RPProfessions can now use PlaceholderAPI to fetch values from RPProfessions.
Currently, 3 new placeholders exist:
- %rpprofessions_player_profession%: Returns the player's profession name, or 'None' if the player has no profession.
- %rpprofessions_player_profession_id%: Returns the player's profession id as named in the configuration files, or 'NULL' if the player has no profession.
- %rpprofessions_player_profession_level%: Returns the player's current profession level, or 0 if the player has no profession.
To try those placeholders, simply type: /papi parse <player> <placeholder>. The player must be online as RPProfessions do not load offline players data!
If you want to see more placeholders added, feel free to open a ticket in the issue section.
New Feature
You can now create items giving MMO stats when consumed. Right now it only works with stats from plugins using MythicLib. This means you can create consumables (potions and food) giving stats like bonus health, critical strike chance, armor, etc...
The effect name should be the in-game name of the effect, in full caps with underscores ("_") between each word. (e.g: "CRITICAL_STRIKE_CHANCE" for "Critical strike chance").
The effects work for a given amount of time and can be saved when the player leaves the server. Effects can persist through death as well.
A new configuration file was created to let you add your (MMO) effects:
CRITICAL_STRIKE_CHANCE_POTION_I:
# The MMO uid. A player can't have 2 effects with the same mmo-id. (can't stack I and II for a double buff).
mmo-id: CRITICAL_STRIKE_CHANCE_POTION
# Duration of the effect in seconds
duration: 900
# Whether the effects state should be saved when the player leaves the server. If set to false, the player looses the effects when leaving.
save-on-quit: true
# The MMO effects
mmo-stats:
CRITICAL_STRIKE_CHANCE: 0.5
ELIXIR_OF_VITALITY_I:
mmo-id: HEALTH_ELIXIR
# 1 hour
duration: 3600
# Dying doesn't clear the effects from the player
persistent-through-death: true
save-on-quit: true
mmo-stats:
MAX_HEALTH: 2
TOUGH_SKIN_POTION_I:
mmo-id: ARMOR_POTION
duration: 900
save-on-quit: true
mmo-stats:
ARMOR: 0.25
ARMOR_TOUGHNESS: 0.5
CRITICAL_STRIKE_CHANCE_POTION_II:
mmo-id: CRITICAL_STRIKE_CHANCE_POTION
duration: 900
save-on-quit: true
mmo-stats:
CRITICAL_STRIKE_CHANCE: 1.0
Simply add the 'effects' field to your consumable to link effects to it:
POTION_OF_PRECISION_I:
mmo-item: POTION_OF_PRECISION_I
station: BREWING_STAND
category: POTION
# You can link as many effects as you want
effects:
- CRITICAL_STRIKE_CHANCE_POTION_I
dynamic: true
receptacle:
material: POTION
potion-type: WATER
reagent: CARROT
fuel: WEAK_GREEN_COMPOUND
level-gain: 1
level-cap: 50
Since it's a completely new feature, please pay attention to any bug that may occur and make sure to report it in the issue tracker (linked on the main page).
New Feature
You can now easily develop other resources by accessing the plugin API.
private void loadRPProfessions() {
if(Bukkit.getServer().getPluginManager().isPluginEnabled("RPProfessions")) {
//initialize the field
rpProfessionsAPI = RPProfessions.getAPI();
Formatter.info("&aHooked onto RPProfessions.");
} else {
Formatter.info("RPProfessions not found.");
}
}
public Optional<ItemStack> getRPProfessionsItem(final String id) {
return rpProfessionsAPI.getItemStack(id);
}
public int getPlayerRPProfessionLevel(final Player player) {
return rpProfessionsAPI.getPlayerProfessionLevel(player);
}
Improvements
I made sure RPProfessions 1.3.1 is still compatible with Spigot for Minecraft 1.20.1. Compatibility with 1.20.2 is still untested but should still work as only API calls exist in the code (no NMS).
I fixed some bug/issues regarding the GUI. Should you encounter any more please use the issue section of the repository to post about it.
New Feature
It is now possible to attribute an RPProfession item as a workstation's tool. Players would have to be holding that item in their main hand to successfully open the workstation's GUI.
Example:
# The workstation ID (to be used in the profession configuration file)
ANVIL:
# The actual in-game blocks that allow to open the crafting menu
materials:
- ANVIL
- CHIPPED_ANVIL
- DAMAGED_ANVIL
display-name: "&8Anvil"
# The menu that is open when interacting with the listed materials
station: ANVIL
# The RPProfession item that must be held to use this workstation
tool: BLACKSMITH_HAMMER
# The anvil workstation's tool
BLACKSMITH_HAMMER:
category: TOOL
material: IRON_SHOVEL
display-name: "&fBlacksmith Hammer"
# Use the vanilla crafting station
station: WORKBENCH
recipe:
0: IRON_INGOT
1: IRON_INGOT
2: IRON_INGOT
3: IRON_INGOT
4: STICK
5: IRON_INGOT
7: STICK
required-level: 1
level-gain: 0
item-flags:
- HIDE_ATTRIBUTES
Improvements
I have improved the Profession selection menus and the recipes menu by adding more pages giving better explanations and informations on professions, workstations and recipes.
Several entires have been added/modified in the language.yml file to let you translate and customize these menus.
New Feature
It is now possible to use Oraxen's items as recipe results and ingredients.
Use "oraxen-item" option to set the recipe's result to an Oraxen item.
Use "oraxen:" prefix to set a recipe's ingredient to an Oraxen item.
EMERALD_CHESTPLATE:
category: PLATE
# Set the result of the recipe to an Oraxen item
oraxen-item: emerald_chestplate
station: ANVIL
recipe:
0: EMERALD
2: EMERALD
3: EMERALD
4: EMERALD
5: EMERALD
6: EMERALD
7: EMERALD
8: EMERALD
required-level: 10
level-cap: 15
RUBY_HELMET:
category: PLATE
oraxen-item: ruby_helmet
station: ANVIL
recipe:
# Set the ingredient to an Oraxen item
0: oraxen:ruby
1: oraxen:ruby
2: oraxen:ruby
3: oraxen:ruby
5: oraxen:ruby
required-level: 10
level-cap: 15
New Feature
It is now possible to use the vanilla crafting table as a crafting station. No extra configuration is needed to use it, simply change the id of the crafting station of your recipe to "WORKBENCH".
It is not yet possible to craft multiple items from the vanilla crafting table at once (shift click).
BLACKSMITH_HAMMER:
category: TOOL
material: IRON_SHOVEL
display-name: "&fBlacksmith Hammer"
# The WORKBENCH station exists by default and lets you use the vanilla crafting station
station: WORKBENCH
recipe:
0: IRON_INGOT
1: IRON_INGOT
2: IRON_INGOT
3: IRON_INGOT
4: STICK
5: IRON_INGOT
7: STICK
required-level: 1
level-gain: 1
Improvements
I modified the code controlling the GUIs of the plugin as its scaling was poor and made modifications too difficult.
There should be a few improvements and less issues on new updates but please pay attention to the GUIs behavior as I might have missed something since it's not always easy to test everything. Should you encounter any bug please write a ticket in the issue tracker.
Next update will allow to use the vanilla crafting table for custom profession recipes. It should arrive soon.
Improvements
Fixed an issue causing certain recipes to yield too many items on completion.
I checked RPProfessions' compatibilities with Minecraft 1.20.1 and didn't notice any issue/bug. Only RPProfessions was used on the test server.
Improvements
I improved the error handling regarding configuration loading. You should have much more and clearer information when you miss configured something. E.g. a wrong enchant name on some item will lead to an error message showing the incorrect enchant name for which item and profession.
I added new entries in the language file regarding recipes info in the recipe info menu.
Improvement
You can now allow players to craft multiple items at once, like in a regular crafting table. Work for both the normal and dynamic crafting.
To allow mutliple crafting for a specific recipe:
allow-multiple: true
By default the value is set to false (i.e. components of the recipe must exactly match the required amount, and not a multiple).
Here is a full example:
BRONZE_INGOT:
mmo-item: BRONZE_INGOT
station: FORGE
category: MATERIAL
recipe:
0: COPPER_INGOT
1: COPPER_INGOT
2: COPPER_INGOT
3: mi:TIN_INGOT
4: mi:TIN_INGOT
5: mi:TIN_INGOT
6: COPPER_INGOT
7: COPPER_INGOT
8: COPPER_INGOT
amount: 8
reagent:
material: REDSTONE
amount: 3
required-level: 20
allow-multiple: true
level-gain: 0
Fixed a couple of issues/bugs.
I haven't checked yet whether RPProfessions work on 1.20!
If you use non 1.20 compatible versions of dependencies (MMOItems, MythicMobs) in your config on a 1.20 server RPGProfessions will likely crash
New Feature Update
You can now add custom villager trades to your villagers
Read the entire update post!
New Feature:
- Added trades folder containing villager trades configuration
- Trades can use RPProfessions items and patterns, MMOitems items and Mythicmob items
- All trade options are configurable
Bug Fixes:
- Fixed an issue preventing monsters to drop items configured in the drops.yml file
To add villager trades go in /trades folder and create a .yml file named after the world you want those trades to be in (e.g. "survival_world1.yml")
Here is an example in /trades/world.yml:
# The villager profession. Must match one of the Minecraft villager profession
WEAPONSMITH:
trades-per-level: 1-2
IRON_TO_SWORD:
# The relative chance for this trade to be chosen
chance: 1
# The level the villager must be to offer this trade
level: 1
# Number of uses before the villager is depleted
max-use: 8
# The left trade input slot
first-ingredient:
material: IRON_INGOT
amount: 3
# The result of the trade
result:
material: IRON_SWORD
display-name: "&fSteel Sword"
enchantments:
unbreaking: 2
sharpness: 1
# Whether the player gets experience for completing that trade
experience-reward: true
villager-experience-reward: 2
COAL_TO_STEEL:
chance: 2
level: 1
max-use: 12
first-ingredient:
material: COAL
amount: 8
# The result is the RPProfession item named STEEL
result: STEEL_INGOT
experience-reward: true
villager-experience-reward: 1
villager-experience-reward: 1
COPPER_TO_EMERALD:
chance: 2
level: 1
max-use: 8
first-ingredient:
material: COPPER_INGOT
amount: 12
result: EMERALD
EMERALD_TO_STEEL:
# This trade is always added regardless of the trades per level value
chance: ALWAYS
level: 2
max-use: 4
first-ingredient:
material: EMERALD
amount: 10
# The right trade input slot
second-ingredient:
item: STEEL_INGOT
amount: 8
# The result is the pattern teaching the craft BRONZE_INGOT. See pattern section of the wiki for further information
result: pattern:BRONZE_INGOT
experience-reward: true
villager-experience-reward: 1
I will update the wiki soon to reflect the changes. For now use the provided example
Additions:
- You can now configure item drops (including patterns) in the drops.yml file.
Here is an example
# Must be in CAPITAL letters for vanilla mobs
ZOMBIE:
# The pattern drop
pattern:FIRESTEEL_INGOT:
chance: 0.01 # 1% chance to drop from any zombie
amount: 1
# An MMOItems item drop
mi:TOUGH_LEATHER:
chance: 0.08 # 8% chance to drop from any zombie
amount: 1-2 # 1 to 2 of them will drop
# A MythicMobs mob drop
SkeletalMinion:
pattern:ICESTEEL_INGOT:
chance: 0.025
amount: 1
mi:REINFORCED_LEATHER:
chance: 0.12 # 12%
amount: 1-2
New Feature Update
Additions:
- Added recipe pattern allowing players to learn specific recipes through them.
- Added the
option in the item configuration. Setting this value to false will prevent players from knowing the recipe by just reaching the required level. Players must learn the recipe by right clicking the matching pattern.default: true/false
- Added the pattern get and give commands.
- Added strings in the language.yml file.
Changes:
- Added missing strings in the language.yml file.
- If the language.yml file has missing strings the plugin will automatically add them by setting the values to the default (english) ones.
I will update the wiki to reflect those additions.
Additional updates regarding patterns will come in the near future. I'd like to let you configure where/how players could get those recipes as right now, only the get and give command work. You can still manually place the patterns in containers and menus (some other plugins let you customise the trades of villages by dragging and dropping items in a menu for example).
Additional string customisation in the language.yml file will also be in those next minor updates.
Changes:
You can customise the plugin messages and strings with the language.yml file. If no language.yml file exists one will be automatically created for you (containing the default english strings).