Correct sound and material names must be used. Refer to the Spigot docs for more information:
Sounds: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
Materials: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
To enable legacy support for WorldGuard integrations, you will need to set the integration to
WorldGuard_Legacy
. Note: This is currently not available for recent RPGRegions versions.
settings.integration.name: name of protection plugin to use (default: WorldGuard*)
settings.storage.mode: type of storage to use, either file or sql (default: file)
settings.sql.host: IP of the sql server (default: localhost)
settings.sql.port: Port of the sql server (default: 3306)
settings.sql.db: database name to use (default: RPGRegions)
settings.sql.user: username to connect with (default: user)
settings.sql.password: password to connect with (default: pass)
settings.server.gui.*: individual gui pane settings
You can find out how to format dates here.
settings.server.discoveries.date.format: format of dates shown to users
settings.server.discoveries.discovered.title.fadein: title fadein time (Ticks)
settings.server.discoveries.discovered.title.stay: title stay time (Ticks)
settings.server.discoveries.discovered.title.fadeout: title fadeout time (Ticks)
settings.server.discoveries.discovered.sound.name: default sound to play
settings.server.discoveries.discovered.sound.pitch: pitch of sound
next_page: "&aNext Page"
previous_page: "&cPrevious Page"
regions: "Regions"
discovered_on: "&7Discovered on: %0"
discovered_title:
- "&d%0 discovered!"
discovered_subtitle:
- "&fKeep exploring to discover more!"
already_discovered_title:
- "&d%0 entered!"
already_discovered_subtitle:
- "&fAlready discovered!"
teleport: "&aClick to teleport"
cannot_teleport: "&cWe can't teleport you because that world doesn't exist!"
unknown_region: "Unknown Realm"
exit: "&cExit"
cannot_enter: "&cYou require %0 to enter this area."
previous_page_lore:
- "&fGo to the previous page"
next_page_lore:
- "&fGo to the next page"
exit_lore:
- "&fExit the GUI"
cooldown: "&cThat is currently on cooldown."
region_enter_actionbar: "&a%0"
Language files are reloaded at a 5 minute interval, so just edit what you need and the changes will be reflected in-game after a while.
If you want to add a language, you must create a new file with the following format: <language_code>.yml
.
A list of valid language codes can be found at https://minecraft.fandom.com/wiki/Language#Languages (see "in-game" column).
RPGRegions takes advantage of InventoryFramework, an advanced GUI framework. Most of RPGRegion's GUIs are configurable via config.yml
.
See the Inventory Framework Wiki for more information.
Panes, put simply, are a section of the GUI. They can contain any number of items, and their position is determined by the posX and posY in the config.yml sections.
It is important the posY does not exceed that of the GUI as a whole.
It is also important the height does not exceed it either.
Some panes can contain masks. Masks define where the items within a pane will be placed. An example is the outline pane:
- '111111111'
- '100000001'
- '100000001'
- '100000001'
- '100000001'
- '111111111'
This will place items all around the inventory border. 0 is empty and 1 is filled. It is important the length and height match that of the maximum inventory size.
See api for making your own rewards.
The following are rewards served by or for external plugins.
See api for making your own effects.
See api for making your own requirements.
It is important to have a basic understanding of the format of JSON. You should also use an editor that is able to validate JSON files, such as Visual Studio Code.
Before editing a region file, you will want to ensure the current data in-game has been saved to its file. Run /rpgregions save
to do this.
After editing, you will want to run /rpgregions reload
to reload the file to the server.
IconCommands are for executing commands when the player clicks on the region icon in the discovery menu.
An IconCommand looks like the following in your json files:
"iconCommand": [
{
"command": "say",
"clickType": "DISCOVERED",
"cooldown": 0
},
{
"command": "say command2",
"clickType": "UNDISCOVERED",
"cooldown": 0
}
]
The "command" value is the command to execute (supports placeholders), the "clickType" value is whether to run this command when clicked when the region is DISCOVERED by the player or UNDISCOVERED. The "cooldown" is how long, in ticks, a player has to wait to execute this command again.
Find the following in your region config:
"title": null,
"subtitle": null,
"discoveredTitle": null,
"discoveredSubtitle": null,
The first title settings are for when the player first discovers it. The second set is for when the player has already discovered the region.
These take an array, so you can animate them. Here's an example that we used to create this:
You will likely need to edit the plugin's config.yml to adjust the speed of the title so it works properly if you choose to use animated titles.
The length of the two arrays must be equal: this is why we repeat the "title" value to match the "subtitle" length in the example below.
"title": [
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH",
"\u0026c\u0026lADVENTURER\u0027S PATH"
],
"subtitle": [
"\u00267\u0026oA",
"\u00267\u0026oAr",
"\u00267\u0026oAre",
"\u00267\u0026oArea ",
"\u00267\u0026oArea D",
"\u00267\u0026oArea Di",
"\u00267\u0026oArea Dis",
"\u00267\u0026oArea Disc",
"\u00267\u0026oArea Disco",
"\u00267\u0026oArea Discov",
"\u00267\u0026oArea Discove",
"\u00267\u0026oArea Discover",
"\u00267\u0026oArea Discovere",
"\u00267\u0026oArea Discovered"
],
Be sure to save the file and then reload it to RPGRegions using /rpgr reload
.
Region configs are defined in a json file. These can be found under plugins/RPGRegions/regions/
. An example file is created and updated every time the plugin starts (exampleconfig.json
);
Items are encoded in Base64 which is why it will appear as random letters in the config. All items can be edited in-game, so you don't have to worry about this.
{
"world": null,
"id": "exampleconfig",
"customName": "ExampleConfig",
"rewards": [
{
"type": "net.islandearth.rpgregions.rewards.ExperienceReward",
"properties": {
"xp": 10,
"alwaysAward": false,
"timeBetweenReward": 0
}
},
{
"type": "net.islandearth.rpgregions.rewards.ItemReward",
"properties": {
"item": "rO0ABXNyABpvcmcuYnVra2l0LnV0aWwuaW8uV3JhcHBlcvJQR+zxEm8FAgABTAADbWFwdAAPTGphdmEvdXRpbC9NYXA7eHBzcgA1Y29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4ABHhwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAA3QAAj09dAABdnQABHR5cGV1cQB+AAYAAAADdAAeb3JnLmJ1a2tpdC5pbnZlbnRvcnkuSXRlbVN0YWNrc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAACzF0AAlJUk9OX0JBUlM\u003d",
"alwaysAward": false,
"timeBetweenReward": 0
}
},
{
"type": "net.islandearth.rpgregions.rewards.PlayerCommandReward",
"properties": {
"command": "say I discovered a region!",
"alwaysAward": false,
"timeBetweenReward": 0
}
},
{
"type": "net.islandearth.rpgregions.rewards.ConsoleCommandReward",
"properties": {
"command": "say Server sees you discovered a region!",
"alwaysAward": false,
"timeBetweenReward": 0
}
},
{
"type": "net.islandearth.rpgregions.rewards.MessageReward",
"properties": {
"messages": [
"\u0026aExample message as a reward"
],
"alwaysAward": false,
"timeBetweenReward": 0
}
}
],
"sound": "AMBIENT_UNDERWATER_EXIT",
"icon": "WOODEN_AXE",
"undiscoveredIcon": "TOTEM_OF_UNDYING",
"iconCommand": [
{
"command": "say",
"clickType": "DISCOVERED",
"cooldown": 0
}
],
"showCoords": false,
"location": null,
"hints": [],
"showHint": false,
"teleportable": false,
"hidden": false,
"discoverable": true,
"effects": [
{
"type": "net.islandearth.rpgregions.effects.PotionRegionEffect",
"properties": {
"potionEffect": {
"type": "GLOWING",
"duration": 100,
"amplifier": 1,
"ambient": true,
"particles": true,
"icon": true
},
"wearingRequired": true,
"ignoreItems": [
"rO0ABXNyABpvcmcuYnVra2l0LnV0aWwuaW8uV3JhcHBlcvJQR+zxEm8FAgABTAADbWFwdAAPTGphdmEvdXRpbC9NYXA7eHBzcgA1Y29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4ABHhwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAA3QAAj09dAABdnQABHR5cGV1cQB+AAYAAAADdAAeb3JnLmJ1a2tpdC5pbnZlbnRvcnkuSXRlbVN0YWNrc3IAEWphdmEubGFuZy5JbnRlZ2VyEuKgpPeBhzgCAAFJAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cAAACzF0AA9JUk9OX0NIRVNUUExBVEU\u003d"
],
"ignorePerm": true
}
}
],
"requirements": [],
"discoveredLore": [],
"alwaysShowTitles": false,
"title": null,
"subtitle": null,
"discoveredTitle": null,
"discoveredSubtitle": null,
"regenerate": {
"schematicName": null,
"origin": null,
"regenerateInterval": 50000,
"loadChunks": false,
"regeneratingEntities": [
{
"entityType": "SHULKER",
"validSpawnSurfaces": [
"PURPUR_BLOCK",
"PURPUR_PILLAR"
],
"maxPerChunk": 5,
"rarity": 30,
"isMythicEntity": false
}
],
"onDiscover": false,
"onlyEntities": true
},
"teleportCooldown": 0,
"showActionbar": true,
"colour": "13369344",
"lineColour": "13369344",
"dynmap": true
}
This file cannot be edited and will not be loaded at start.
This file will contain every single reward option available, so you can add them manually into your region configurations.
To automatically add reward configurations, there are some commands available.