Documentation rewrite The new documentation can be found at https://fortitude.islandearth.net/category/rpgregions. This new site has a better search feature and superior navigation to the old site (though it shall be missed).
Fauna Fauna is a new feature that allows you to add discoveries for entities. RPGRegions also adds a bestiary - similar to the discoveries GUI, but instead a book detailing what animals the player has discovered.
You will need to take steps if upgrading to ensure RPGRegions will work. Please read below.
RPGRegions 1.4.5 is a significant QoL, feature and performance update.
Firstly, thank you to the people who have contributed code over the last few months and also tested the plugin.
READ ME vvvvv
You should backup your database and RPGRegions folder first.
You MUST update your language files to use MiniMessage formatting, and include missing keys. Default:
Code (YAML):
next_page: "<gradient:green:yellow>Next Page" previous_page: "<gradient:red:yellow>Previous Page" regions: "Regions" discovered_on: "<gradient:gray:white>Discovered on: %s" discovered_title: -
"<light_purple>%s discovered!" discovered_subtitle: -
"<white>Keep exploring to discover more!" already_discovered_title: -
"<light_purple>%s entered!" already_discovered_subtitle: -
"<white>Already discovered!" teleport: "<green>Click to teleport" teleport_cooldown: "<red>Teleport is on cooldown." teleport_cost: "<yellow>Teleport will cost %d%s" teleport_no_money: "<red>You do not have enough money to teleport." cannot_teleport: "<red>We can't teleport you because you don't meet the requirements for that area!" unknown_region: "Unknown Realm" exit: "<red>Exit" cannot_enter: "<red>You require %s to enter this area." previous_page_lore: -
"<white>Go to the previous page" next_page_lore: -
"<white>Go to the next page" exit_lore: -
"<white>Exit the GUI" cooldown: "<red>That is currently on cooldown." region_enter_actionbar: "<green>%s" discovering_area_placeholder: "<gold>Discovering a new area (%d%)..." requirement_met: "<gradient:dark_green:green>✔ %s" requirement_not_met: "<gradient:dark_red:red>✘ %s" coordinates: "<gray>Coordinates: %d, %d"
READ ME ^^^^^
MiniMessage formatting RPGRegions now uses adventure and MiniMessage for message formatting. This leads to significant UI improvements, and the default message file has been overhauled.
Additionally, messages that did not have translations available have now been added.
Massive database rewrite - significant performance improvements and more The database storage system has been rewritten and is now more efficient in RAM and CPU performance. This includes, but is not limited to:
Idle players will no longer be kept in the cache.
Fixed issues with players being prevented from joining due to "data already loaded".
A significant performance improvement at higher player counts due to analysing hot spots in the code with 100+ bots, and using a caffeine cache.
SQL databases will now be migrated. Currently, your databases will be migrated to include the increased varchar limit on region names change.
Commands rewrite using Cloud, and Folia support All of RPGRegion's commands have been rewritten using cloud. This means commands now take better advantage of brigadier, have help lists, and significantly better tab completion.
Also in this commit, support for Folia has been added.
New plugins support, and multiple support for plugins, including MultiVerse fixed Support for CustomStructures and GriefDefender have been added.
Additionally, support for multiverse worlds has been fixed. Support for UltraRegions, and Dynmap has been fixed.
Dynmap now has options for opacity of the line and area itself.
Teleport costs You can now specify a teleport cost for regions. There is also a "permission-based teleport costing system that can calculate distance" - please note I haven't written docs for this yet. The technologically experienced can read https://gitlab.com/SamB440/rpgregions-2/-/merge_requests/7.
New commands /rpgri whereami - shows current regions you are in (for RPGRegions integration) /rpgrd worldid <world> - gets the UUID of a world, if you need to change it inside the json file of an RPGRegion
Hi everyone, it's been a while. I am currently working on other things so unable to update as often.
This update has been tested by various people and should be relatively stable.
As always, ensure you have backups of both your RPGRegions files and databases. This update makes changes to both.
The current config looks like this, if you see any options you don't have, add them!
Code (YAML):
# This is the config for RPGRegions. # ------ Useful information ------ # Documentation can be found at https://fortitude.islandearth.net # Sounds can be found at https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html # Materials can be found at https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html # ------ Support ------ # Found a bug? Create an issue at https://gitlab.com/SamB440/rpgregions-2/issues # Need help? Join our discord at https://discord.gg/fh62mxU # ------ Setting explanation ------ # See wiki for more detailed information. # search-offline-players: Tab complete will list offline players where possible. This can cause lag with lots of offline players due to Bukkit loading all of their data. # worlds.forceload: Forcefully load worlds on startup to ensure RPGRegions recognises them. ONLY ENABLE IF YOU KNOW WHAT YOU ARE DOING! # settings.metrics.send_custom_info: Disable if experiencing bStats lag spikes. # ------ Other config files ------ # See lang folder for language settings. # See regions folder for editing region files. settings:
metrics:
send_custom_info: true
# Send extra info to bStats. May want to disable if experiencing lag spikes from bStats. dev:
debug: false
# Enables debug output. Will spam console! disable-slow-storage-warn: false
# Should we send a warning if storage response times are slow? integration:
name: RPGRegions
# Name of the integration: WorldGuard, Residence, GriefPrevention, UltraRegions, Lands, RPGRegions external:
dynmap: true
# Enable dynmap support storage:
mode: file
# Storage mode to use: sqlite, file, mysql. If you are dealing with lots of players, please use a mysql database. sql: # SQL settings host: localhost
# If you are in a docker container, please use the docker IP. Should be something like 172.18.0.1 for pterodactyl users. port: 3306
db: RPGRegions
user: user
pass: pass
server:
tabcomplete:
search-offline-players: true
# Show offline players in tab completion results. discoveries:
discovered:
name-colour: GREEN
# The colour of item titles in the discovery GUI title:
fadein: 20
stay: 60
fadeout: 20
animation_speed: 20
# Controls how fast the animation moves to the next frame cooldown: 0
animation_sound: BLOCK_TRIPWIRE_CLICK_ON
# Sound to play during animation animation_sound_pitch: 1
sound:
name: UI_TOAST_CHALLENGE_COMPLETE
pitch: 1
undiscovered:
name-colour: RED
# The colour of undiscovered item titles in the discovery GUI date:
format: dd-MM-yyyy HH:mm:ss
# https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/SimpleDateFormat.html gui: # ! READ ME FIRST ! # RPGRegions allows full control of GUIs and thus configuration may be complex. # Please read about panes first: https://github.com/stefvanschie/IF/wiki/Panes and https://fortitude.islandearth.net/en/rpgregions-2/installation/configuration#panes # Please read about masks as well: https://fortitude.islandearth.net/en/rpgregions-2/installation/configuration#masks # The first pane (back) will be explained fully, as it has common values of all panes. # If you want to disable a pane, set `show` to `false`. # ! READ ME FIRST ! default_region_icon: TOTEM_OF_UNDYING
# Default icon of regions in the discovery GUI. Can reset icons with /rpgr forceupdateicons general:
rows: 6
# Amount of rows in the GUI back:
posX: 0
# Position on the X axis within the back pane posY: 5
# Position on the Y axis within the back pane length: 1
# Length of the pane (usually the amount of items present) height: 1
# Height of the pane back: ARROW
# Item to display forward:
posX: 8
posY: 5
length: 1
height: 1
forward: ARROW
exit:
posX: 4
posY: 5
length: 1
height: 1
command: ''
show: true
exit: BARRIER
pane:
posX: 1
posY: 1
length: 7
height: 4
outlinePane: # This is the outside pane posX: 0
posY: 0
length: 9
height: 6
show: true
mask: - '111111111'
- '100000001'
- '100000001'
- '100000001'
- '100000001'
- '111111111'
outlinePane: GRAY_STAINED_GLASS_PANE
# Item to fill the outline pane with innerPane: # This is the pane where all your regions are displayed posX: 1
posY: 1
length: 7
height: 4
show: true
mask: - '1111111'
- '1111111'
- '1111111'
- '1111111'
innerPane: WHITE_STAINED_GLASS_PANE
# Item to fill the inner pane with if no region to display worlds: # Do not touch this section unless you know what you're doing forceload: false
# Forcefully load worlds that do not exist for RPGRegions
RPGRegions 1.4.3 is a major update. Caution is advised whilst updating.
This update primarily adds support for 1.19, adds timed regions, Lands support, automatic region generation for Lands, and updates to Languagy 3.
There are many, many other changes than the main parts listed here. See the full changelog for everything.
Languagy 3 Languagy 3 brings better performance and live language file reloading, and all translations (where possible) will work with lists.
Timed regions Timed regions may now be added (see the editor GUI, sand block). These force players to actually walk around for a certain amount of time to be able to discover the region.
The en_gb.yml has had the following default added to support this:
Code (YAML):
discovering_area_placeholder: "&6Discovering a new area (%0%)..."
%0 is replaced with the percentage discovered so far.
This update contains an important security fix for the default RPGRegions integration. A permission node was missing, so anyone could edit your RPGRegions integrated regions.
You can use the rpgregions.integration permission to manage this now.
This update contains a lot of changes so as always please do your own testing and take backups.
Major changes:
Removed 1.14 and 1.15 support According to bStats,
nobody is using these versions and so I have removed it from official support. If you are one of the rare people using this version, contact me and I may be able to provide a jar specifically for you.
A note on legacy support In the future, if it permits, I may readd some legacy support depending on how much work it takes.
Added our own region integration You will no longer need to rely on seperate plugins to run RPGRegions - you can now use the new RPGRegions integration which is in-built within the plugin. It currently supports cuboid and polygon regions, but is very basic and still work in progress.
Added region fog support With the new fog effect, you can now add per-region fog to your areas! However, this currently only supports 1.17 and may have some unknown issues. To achieve this, some packets are messed with and a lot of things could go wrong.
Config comments! The configuration file is now filled with comments on what does what. Comments will not appear unless you regenerate your config.yml. Default config with comments is below.
Code (YAML):
# This is the config for RPGRegions. # ------ Useful information ------ # Documentation can be found at https://fortitude.islandearth.net # Sounds can be found at https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html # Materials can be found at https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html # ------ Support ------ # Found a bug? Create an issue at https://gitlab.com/SamB440/rpgregions-2/issues # Need help? Join our discord at https://discord.gg/fh62mxU # ------ Setting explanation ------ # See wiki for more detailed information. # search-offline-players: Tab complete will list offline players where possible. This can cause lag with lots of offline players due to Bukkit loading all of their data. # worlds.forceload: Forcefully load worlds on startup to ensure RPGRegions recognises them. ONLY ENABLE IF YOU KNOW WHAT YOU ARE DOING! # settings.metrics.send_custom_info: Disable if experiencing bStats lag spikes. # ------ Other config files ------ # See lang folder for language settings. # See regions folder for editing region files. settings:
metrics:
send_custom_info: true
# Send extra info to bStats. May want to disable if experiencing lag spikes from bStats. dev:
debug: false
# Enables debug output. Will spam console! integration:
name: RPGRegions
# Name of the integration: WorldGuard, Residence, GriefPrevention, UltraRegions, RPGRegions external:
dynmap: true
# Enable dynmap support storage:
mode: file
# Storage mode to use: sqlite, file, mysql. If you are dealing with lots of players, please use a mysql database. sql: # SQL settings host: localhost
# If you are in a docker container, please use the docker IP. Should be something like 172.18.0.1 for pterodactyl users. port: 3306
db: RPGRegions
user: user
pass: pass
server:
tabcomplete:
search-offline-players: true
# Show offline players in tab completion results. discoveries:
discovered:
name-colour: GREEN
# The colour of item titles in the discovery GUI title:
fadein: 20
stay: 60
fadeout: 20
animation_speed: 20
# Controls how fast the animation moves to the next frame cooldown: 0
animation_sound: BLOCK_TRIPWIRE_CLICK_ON
# Sound to play during animation animation_sound_pitch: 1
sound:
name: UI_TOAST_CHALLENGE_COMPLETE
pitch: 1
undiscovered:
name-colour: RED
# The colour of undiscovered item titles in the discovery GUI date:
format: dd-MM-yyyy HH:mm:ss
# https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/SimpleDateFormat.html gui: # ! READ ME FIRST ! # RPGRegions allows full control of GUIs and thus configuration may be complex. # Please read about panes first: https://github.com/stefvanschie/IF/wiki/Panes and https://fortitude.islandearth.net/en/rpgregions-2/installation/configuration#panes # Please read about masks as well: https://fortitude.islandearth.net/en/rpgregions-2/installation/configuration#masks # The first pane (back) will be explained fully, as it has common values of all panes. # If you want to disable a pane, set `show` to `false`. # ! READ ME FIRST ! default_region_icon: TOTEM_OF_UNDYING
# Default icon of regions in the discovery GUI. Can reset icons with /rpgr forceupdateicons general:
rows: 6
# Amount of rows in the GUI back:
posX: 0
# Position on the X axis within the back pane posY: 5
# Position on the Y axis within the back pane length: 1
# Length of the pane (usually the amount of items present) height: 1
# Height of the pane back: ARROW
# Item to display forward:
posX: 8
posY: 5
length: 1
height: 1
forward: ARROW
exit:
posX: 4
posY: 5
length: 1
height: 1
command: ''
show: true
exit: BARRIER
pane:
posX: 1
posY: 1
length: 7
height: 4
outlinePane: # This is the outside pane posX: 0
posY: 0
length: 9
height: 6
show: true
mask: - '111111111'
- '100000001'
- '100000001'
- '100000001'
- '100000001'
- '111111111'
outlinePane: GRAY_STAINED_GLASS_PANE
# Item to fill the outline pane with innerPane: # This is the pane where all your regions are displayed posX: 1
posY: 1
length: 7
height: 4
show: true
mask: - '1111111'
- '1111111'
- '1111111'
- '1111111'
innerPane: WHITE_STAINED_GLASS_PANE
# Item to fill the inner pane with if no region to display worlds: # Do not touch this section unless you know what you're doing forceload: false
# Forcefully load worlds that do not exist for RPGRegions
Other There have been several fixes and changes to the way region titles work, especially in regards to the animation of titles. One specific bug fixed is that discovered titles were not working.
Translation files no longer need to be regenerated - we will force add keys that do not exist.
Many performance fixes and improvements to the codebase have been made.
Java 16 is now required, 1.14+ is still supported, you can use J16 with it 1.17.1 support has been added This is a watered down changelog, to see the full changelog go to
https://gitlab.com/SamB440/rpgregions-2/-/commits/master
This update fixes some important problems, including a region requirement bypass. Also, dynmap support has been added.
The following configuration options have been added:
Code (Text):
settings.server.tabcomplete.search-offline-players: Tab complete will list offline players where possible. This can cause lag with lots of offline players due to Bukkit loading all of their data.
settings.external.dynmap: Whether Dynmap support is enabled.
Several fixes to the editor and a potential crash caused by bStats not sending data async has been fixed. Placeholder requirements also fixed when using integer comparisons.
RPGRegions 1.3.5 is a large update and contains breaking API changes. Please make sure to update plugins using the RPGRegions API and take a backup of your plugins/RPGRegions folder before installing.
It is also recommended to delete language files for them to regenerate.
Screenshots are at the bottom (click read more).
Important changes
1.12 support has been removed.
This was not announced until now, but as I was working on the GUI I realised it was time, otherwise things would get tricky. Only ~4 people are using 1.12.
If you are running a 1.12 server, I may be able to provide a custom 1.12-only jar file for the next few updates, just send me a DM on Spigot or Discord.
There is a new in-game editor! (see screenshots below)
Possibly dropping Java 8 support in 1.18, replacing with Java 11. 1.12+ should still work with Java 11. Most hosts will already be on Java 11 due to Paper requiring this from 1.17. Mojang also plans to drop Java 8 support.
Possibly dropping some legacy support in 1.17/1.18. I have staved this off as much as possible, however other dependencies we rely on have updated past us with vast improvements - including performance and cutting down on the amount of code needed.
More info on this soon.
More rewards, such as a TeleportReward, DiscoveryReward, AlonsoLevelReward
More requirements
More control over entry prevention
A fully-fledged particle system for regions to make them look beautiful
Some type of music implementation to play NBS (noteblock sound files) or similar
Full RGB MiniMessage support
Respawnable loot
Further optimise regeneration of regions, maybe write our own implementation? (this would mean support for more than WorldGuard, too)
More player-focussed: some features should be exposed more to a general player
Our own region implementation, so you do not have to rely on external plugins.
Better commands: currently it's just plonked into one class and could be improved on to be more intuitive
Supporting new features of modern Minecraft versions
A better API so people can access more from just the API jar
Better in-game editing, because json is tricky. Coding in-game editors is harder though
I am also working on a new plugin that will be released soon. It is an advanced quest plugin and will integrate well with RPGRegions, but I cannot reveal much yet!
Ending the year This is just a small feature update. No bugs have been found and the plugin is working fine on 1.16.4, so I would presume it is mostly stable. I will focus on more features in the future. Have a nice Christmas.
Information regarding per-region fog Spigot as of now lacks support for the new custom worlds feature entirely. There is a thread detailing this:
https://www.spigotmc.org/threads/sky-fog-color-packet.456700/. Until Spigot adds the API required for this, or that thread is solved, I cannot add support for fog.
Schematic regeneration Support for regeneration via schematics has been added (/rpgregions setschematic). Warnings and confirmations have also been added to regeneration-related commands due to how dangerous they can be.
Please note that MiniMessage support is still work in progress and some messages may not support it yet. Please let us know if you find a translation key that does not support MiniMessage.
You must update to Languagy 2.0.2, or delete the Languagy plugin.
Languagy is no longer required. RPGRegions still utilises Languagy but is shaded into the plugin. Having the Languagy plugin on your server will enable the additional features languagy offers.
This means the "hint" value in your region configs will no longer work. Migrate over to the new "hints" introduced a few updates ago.
Future values may be deprecated. You will be alerted of these at least one update before they are removed.
x, y, z has been deprecated. This will be replaced by a Location for more usability (pitch, yaw) in the next update (1.2.9), and the values removed in v1.3.0.
"iconCommands" value has been deprecated and will be removed in 1.2.9. Migrate to "iconCommand".
Basically, region regeneration will regenerate the entire area of your region to its vanilla state, along with options to regenerate entities. I was able to regenerate an entire end city. You can use the command /rpgregions regen <region> to regenerate manually.
Note that this only works with WorldGuard.