◦•●❤♡ ᴄᴏɴᴛᴀᴄᴛ Dekomori on discord ꜰᴏʀ ꜱᴜᴘᴘᴏʀᴛ ♡❤●•◦
Native Minecraft Version: 1.13
Tested Minecraft Versions: 1.13 / 1.14 / 1.15 / 1.16 / 1.17 / 1.18
Languages Supported: Plugin comes with a configuration & language file
Add a MMORPG Feel to your server by adding Races to your server that has
endless customization!
Races of Thana was created to bring a more realistic RPG-feel to Minecraft in the form of truly custom races as opposed to just the addition of potion effects as a permanent passive, and a set of permissions.
Some of the core features include but are not limited to:
Soft Dependencies: PlaceholderAPI (Placeholders), LuckPerms, LoreAttributesRecoded (v5.0.2)
MythicMobs support: Able to check race within MM's configuration by using a custom condition
Exclusive Armor-specific Addon: Will address item restrictions / limitations per race.
Race experience: Upgrade-able races, gain experience by doing various things per race.
<> = mandatory arguments || [] = optional arguments
Aliases: [traces, thanar, thanaraces, racesofthana, rot, races, race]
May there be lack of clarity in 1 of the configuration files, please let me know here!
Click here to view the default configuration file (config.yml).
The files for the default races are created when starting up the plugin for the first time.
Language Config (lang.yml):
PvP Config (pvpconfig.yml):
The permission-node per race is racesofthana.race.<racename>
So for example, a kitsune would need: racesofthana.race.kitsune
While this value is set to true, players will not see the races they don't have permissions to within the GUI.
(Operators and users with * permissions will see it at all times)
Did everything work the way you wanted? Do you perhaps have a problem with the config, or do you need help with making a race?
Join my Discord Community to get help and get all the latest information about the Races of Thana!
Placeholders (PlaceholderAPI Support):
Player's race: %racesofthana_player_race%
Displayname of the player's race: %racesofthana_player_race_displayname%
Total count of a certain race: %racesofthana_totalcount_racename%
Online count of a certain race: %racesofthana_onlinecount_racename%
(replace racename with the name of an existing race)
Config command placeholders:
- %player_name%
- %player_displayname%
- %player_race%
- %player_race_displayname%
- %totalcount_racename%
- %onlinecount_racename%
(replace racename with the name of an existing race)
Race GUI Menu
Supports NBT Data, Custom Flags, and Durability Values for those of you wishing to make custom Resource packs for your Race GUI Menus.
Per-race Permissions
Permission Handler that is compatible with LuckPerms, supporting negated permission nodes.
You have the possibility to restrict players from selecting (and seeing) certain races within the race-selection GUI (Toggleable).
Passive, Day & Night Effects
Races can have specific potion effects during the day, night, or at all times. You can give your custom race Night Vision ONLY during the night, and Strength ONLY during the day if you'd like. This removes the pesky problem of having Night Vision during the day. This'll give you even more flexibility to the race you'd like to make! (Toggleable).
All available potion effects can be found here.
Language File
Able to change the messages as you wish, very self-explanatory.
Attributes
You can give each race their own set of attributes. All attributes can be found here.
Adding an attribute is as simple as adding it to a list along with a value:
Races of Thana also offers unique and custom attributes! These go beyond vanilla's limitations and can be used in the same way as vanilla attributes.
Current available custom attributes:
- SOFT_LANDING
Percentage-based feather falling without needing an enchantment. If you set it to 50, 50% of the fall damage will be negated. Set it to 100 and 100% of the fall damage will be negated.
Example usage for negating 80% of fall damage:
- VAMPIRE
Tick-based ignite when being outside in the sunlight. Recommended to keep the value at 20 ticks, which will burn the player for 1 second when they come in contact with sunlight.
Example usage:
- NYCTO
Nyctophobia is an extreme fear of night or darkness. This attribute is the opposite of vampire: When the player's area has a light level lower than 4, it'll deal damage to the player. The value is the amount of damage per second.
Example usage:
Force Race
If you'd like your players to select a race upon joining, you can make that happen by simply setting force-race-on-join to true in the config.yml.
If you don't, that's fine too. Set it to false, I won't judge you.
Hurt Sounds*
Custom race sounds! Are you a catlike creature and meow when being hit? Set it to ENTITY_CAT_HURT. Want your Werewolf to sound like a Wolf instead? Use ENTITY_WOLF_HURT instead!
The hurting sound can be changed per race to give you the feeling of actually being that race as specified in the config according to the sound you chose.
Default value is set to the default player hurt sound.
A list of all compatible Entity Sounds can be found here.
Death Sounds*
Depending on which race you are, you can have your own death-sound as well! Catlike creatures could play the ocelot's death sound, while others have the death sound of a dragon. Cool, right?
Default value is set to the default player death sound.
A list of all compatible Entity Sounds can be found here.
* You can modify the volume of both these sounds by changing the sound-volume value (defaults to 0.5) in the config.yml.
Values not in the range of 0.0 (0%) to 1.0 (100%) will be ignored.
Commands Executed Upon Changing / Choosing your Race and Day- / Night-time
Upon race selection, you can execute self-defined commands depending on which race they've become.
You can use commands from any plugin and execute them here too. Everything from starter kits, to just helpful information. (Toggleable)
For example, do you have a plugin like LibsDisguises? Or another plugin that compliments a Race you've specifically made in your config file? Use this to your advantage. A wonderful example would be changing a Werewolf Race's skin, to that of an actual Werewolf at night time, instead of just keeping your basic skin on all the time.
Change back into your original skin once daylight has come to give the feel that you're actually changing into a Werewolf. (Toggleable)
This is just a small example of what you COULD do with the day- and night-based commands. There are so many possibilities. From giving Bonus Effects for a specific amount of time to disabling a Race's ability to fight in the dark with a PvP plugin.
Damage / Immunity
You can change the way each race interacts with water and lava (+ fire, optionally).
Race Tokens
These are items that can be used to change your Race. You can have a predetermined amount of these items be required to change your race. You could have 1 Token, or you could require 5 tokens to change your race. These "tokens" are physical items which you can modify to your own likings in the config.
Tokens also support Durability & Item-Flags to further customize the look and feel of your token.
This also supports Citizens 2 with a custom race trait that allows you to specifically make a NPC take your race-token from you, to grant you a race-change without the need of a plugin to assign the NPC a command. Making the RPG-experience so much better, instead of using a command to redeem your race token if you dislike doing so.
You can do this by making a NPC and assigning it the racechanger trait. (/trait racechanger) This will take the token from the player and open the race-selection GUI for the player to change their race.
You can enable / disable the race tokens inside the config by setting race-token-enabled to either true (enable) or false (disable).
Do you want to enable this module / feature? If disabled, it'll ignore everything else.
If race 1 has race 2 as ally, but race 2 doesn't have race 1 as ally, race 1 won't be able to attack race 2, but race 2 will still be able to attack race 1!
GUI customization & Word of Knowledge
The GUI is a really detailed part of this plugin. It makes creating races as simple as it can possibly be, or as detailed as you possibly can imagine.
TIP: Don't want a race to show up in the GUI? Set the slot to 99!
Hooks
A lot of plugins will sooner or later become exclusively compatible with Races of Thana. To hook Races of Thana with another plugin, simply add the plugin's name to the hooks list in the config.yml.
・ This section is NOT automatically added to the configuration file.
This is a full list of all compatible plugins so far. Feel free to remove any plugin-names you do not need:
Native Minecraft Version: 1.13
Tested Minecraft Versions: 1.13 / 1.14 / 1.15 / 1.16 / 1.17 / 1.18
Languages Supported: Plugin comes with a configuration & language file
Original Link: https://www.spigotmc.org/resources/...-attributes-day-night-effects-and-more.59110/Add a MMORPG Feel to your server by adding Races to your server that has
endless customization!
Races of Thana was created to bring a more realistic RPG-feel to Minecraft in the form of truly custom races as opposed to just the addition of potion effects as a permanent passive, and a set of permissions.
Some of the core features include but are not limited to:
- Custom Races
- Truly custom races. Give every race their own set of attributes (& custom attributes!), passive effects, day & night effects, permissions, sounds, and much more!
- By being able to trigger things on time (day / night events), it has never before become easier to change the skin of people from a certain race.
- Your own Race Selection GUI
- By being in full control of what the Race Selection GUI looks like, you can make it fit to your server's style.
- You can limit who's able to see certain races, effectively limiting the races they can choose from. Great for progression-based servers, but also as a perk!
- You can even set up a NPC which will take in a token and allow you to change your race.
- Extremely easy to use & understand
- With a single drag & drop, you'd already be good to go. To customize your races, simply modify the configuration file(s) as you'd like and type /races reload. That's it, literally.
- Extensive explanations are down below. It has all the information you need.
- In need of support? I'd love to help you out via the Discord server or discussion thread.
Soft Dependencies: PlaceholderAPI (Placeholders), LuckPerms, LoreAttributesRecoded (v5.0.2)
Exclusive Armor-specific Addon: Will address item restrictions / limitations per race.
Race experience: Upgrade-able races, gain experience by doing various things per race.
<> = mandatory arguments || [] = optional arguments
Aliases: [traces, thanar, thanaraces, racesofthana, rot, races, race]
May there be lack of clarity in 1 of the configuration files, please let me know here!
Click here to view the default configuration file (config.yml).
The files for the default races are created when starting up the plugin for the first time.
Language Config (lang.yml):
YAML:
prefix: "&9Races of Thana&c:"
refund-token: "&cYou were given back your token!"
give-wrong-item: "&cThat is not a race-token!"
teleport-race-spawn: "&cYou have been teleported!"
PvP Config (pvpconfig.yml):
YAML:
pvp-module-enabled: true
races:
elf:
enabled: true
allies: human
human:
enabled: true
allies: elf
dummy:
enabled: true
allies: elf,human
YAML:
permissions:
racesofthana.gui:
default: op
racesofthana.gui.others:
default: op
racesofthana.racechat:
default: true
racesofthana.reload:
default: op
racesofthana.setrace:
default: op
racesofthana.unsetrace:
default: op
racesofthana.setspawn:
default: op
racesofthana.spawn:
default: true
racesofthana.spawn.override:
default: op
racesofthana.token:
default: op
racesofthana.token.use:
default: op
racesofthana.inspect:
default: true
racesofthana.inspect.others:
default: op
racesofthana.count:
default: true
racesofthana.preview:
default: true
racesofthana.about:
default: true
The permission-node per race is racesofthana.race.<racename>
So for example, a kitsune would need: racesofthana.race.kitsune
While this value is set to true, players will not see the races they don't have permissions to within the GUI.
(Operators and users with * permissions will see it at all times)
Did everything work the way you wanted? Do you perhaps have a problem with the config, or do you need help with making a race?
Join my Discord Community to get help and get all the latest information about the Races of Thana!
Placeholders (PlaceholderAPI Support):
Player's race: %racesofthana_player_race%
Displayname of the player's race: %racesofthana_player_race_displayname%
Total count of a certain race: %racesofthana_totalcount_racename%
Online count of a certain race: %racesofthana_onlinecount_racename%
(replace racename with the name of an existing race)
Config command placeholders:
- %player_name%
- %player_displayname%
- %player_race%
- %player_race_displayname%
- %totalcount_racename%
- %onlinecount_racename%
(replace racename with the name of an existing race)
Race GUI Menu
Supports NBT Data, Custom Flags, and Durability Values for those of you wishing to make custom Resource packs for your Race GUI Menus.
Per-race Permissions
Permission Handler that is compatible with LuckPerms, supporting negated permission nodes.
You have the possibility to restrict players from selecting (and seeing) certain races within the race-selection GUI (Toggleable).
YAML:
permissions:
- race.permission # the player will have this permission node
- -negated.permission # the player will have this negated permission node if your permission plugin supports that
Passive, Day & Night Effects
Races can have specific potion effects during the day, night, or at all times. You can give your custom race Night Vision ONLY during the night, and Strength ONLY during the day if you'd like. This removes the pesky problem of having Night Vision during the day. This'll give you even more flexibility to the race you'd like to make! (Toggleable).
All available potion effects can be found here.
YAML:
potions:
enabled: true # whether or not to active this module
potion-bubbles: false # whether or not to show the potion bubbles around the player for these potion effects
potioneffects: # these are always active
- DAMAGE_RESISTANCE:0
day-effects: # these are only active during the day
- MOVEMENT_SPEED:0
night-effects: # these are active during the night
- DAMAGE_RESISTANCE:1
- NIGHT_VISION:0
Language File
Able to change the messages as you wish, very self-explanatory.
YAML:
prefix: '&9Races of Thana&c:'
refund-token: '&cYou were given back your token!'
give-wrong-item: '&cThat is not a race-token!'
teleport-race-spawn: '&cYou have been teleported!'
Attributes
You can give each race their own set of attributes. All attributes can be found here.
Adding an attribute is as simple as adding it to a list along with a value:
YAML:
attributes:
- GENERIC_MAX_HEALTH: 18
- GENERIC_ATTACK_SPEED: 8
Current available custom attributes:
- SOFT_LANDING
Percentage-based feather falling without needing an enchantment. If you set it to 50, 50% of the fall damage will be negated. Set it to 100 and 100% of the fall damage will be negated.
Example usage for negating 80% of fall damage:
YAML:
attributes:
- SOFT_LANDING: 80
Tick-based ignite when being outside in the sunlight. Recommended to keep the value at 20 ticks, which will burn the player for 1 second when they come in contact with sunlight.
Example usage:
YAML:
attributes:
- VAMPIRE: 20
Nyctophobia is an extreme fear of night or darkness. This attribute is the opposite of vampire: When the player's area has a light level lower than 4, it'll deal damage to the player. The value is the amount of damage per second.
Example usage:
YAML:
attributes:
- NYCTO: 2
If you'd like your players to select a race upon joining, you can make that happen by simply setting force-race-on-join to true in the config.yml.
If you don't, that's fine too. Set it to false, I won't judge you.
YAML:
Code (YAML):
force-race-on-join: true
Custom race sounds! Are you a catlike creature and meow when being hit? Set it to ENTITY_CAT_HURT. Want your Werewolf to sound like a Wolf instead? Use ENTITY_WOLF_HURT instead!
The hurting sound can be changed per race to give you the feeling of actually being that race as specified in the config according to the sound you chose.
Default value is set to the default player hurt sound.
A list of all compatible Entity Sounds can be found here.
YAML:
death-sound: ENTITY_CAT_DEATH
Depending on which race you are, you can have your own death-sound as well! Catlike creatures could play the ocelot's death sound, while others have the death sound of a dragon. Cool, right?
Default value is set to the default player death sound.
A list of all compatible Entity Sounds can be found here.
YAML:
hurt-sound: ENTITY_CAT_HURT
Values not in the range of 0.0 (0%) to 1.0 (100%) will be ignored.
Commands Executed Upon Changing / Choosing your Race and Day- / Night-time
Upon race selection, you can execute self-defined commands depending on which race they've become.
You can use commands from any plugin and execute them here too. Everything from starter kits, to just helpful information. (Toggleable)
For example, do you have a plugin like LibsDisguises? Or another plugin that compliments a Race you've specifically made in your config file? Use this to your advantage. A wonderful example would be changing a Werewolf Race's skin, to that of an actual Werewolf at night time, instead of just keeping your basic skin on all the time.
Change back into your original skin once daylight has come to give the feel that you're actually changing into a Werewolf. (Toggleable)
This is just a small example of what you COULD do with the day- and night-based commands. There are so many possibilities. From giving Bonus Effects for a specific amount of time to disabling a Race's ability to fight in the dark with a PvP plugin.
YAML:
commands:
enabled: true # enable/disable this module
race-change-commands: # commands executed when the player becomes this race
- bc %player_name% became a(n) %player_race_displayname%!
race-commands-day: # commands executed when it turns day in the world this player is in
- tellraw %player_name% {"text":"The sun has risen","color":"red"}
race-commands-night: # commands executed when it turns night in the world this player is in
- tellraw %player_name% {"text":"The night has fallen","color":"red"}
You can change the way each race interacts with water and lava (+ fire, optionally).
YAML:
damage:
enabled: true # enable this module
water-damage: false
lava-damage: true # do we want to alter the way this race interacts with lava?
affect-fire: true # do we want the race to react to fire (and fire ticks) the same way as lava
water-damage-amount: 2
lava-damage-amount: -1 # Setting damage to -1 makes this race immune to it
These are items that can be used to change your Race. You can have a predetermined amount of these items be required to change your race. You could have 1 Token, or you could require 5 tokens to change your race. These "tokens" are physical items which you can modify to your own likings in the config.
Tokens also support Durability & Item-Flags to further customize the look and feel of your token.
This also supports Citizens 2 with a custom race trait that allows you to specifically make a NPC take your race-token from you, to grant you a race-change without the need of a plugin to assign the NPC a command. Making the RPG-experience so much better, instead of using a command to redeem your race token if you dislike doing so.
You can do this by making a NPC and assigning it the racechanger trait. (/trait racechanger) This will take the token from the player and open the race-selection GUI for the player to change their race.
You can enable / disable the race tokens inside the config by setting race-token-enabled to either true (enable) or false (disable).
YAML:
race-token:
display-name: '&6Race Token' # display name of the item
material: GLOWSTONE_DUST # item's material
durability: 11 # durability (for texture packs)
lore: # item's lore
- '&eGive this to the race npc'
- '&eto change your race!'
item-flags: # item flags
- HIDE_ATTRIBUTES [code]
All available material types can be found here and all item flags can be found here. More about GUI customization can be found below (GUI customization & Word of Knowledge)
PvP Module
Player combat can go the way you want when it comes to races facing other races.
With the simple but powerful config stated above, you can now make allies!
We'll go through the config step by step:
[code=yaml] pvp-module-enabled: true/false
YAML:
races:
werewolf: // The race you're modifying
enabled: false // Whether or not this particular section (per race) should be enabled or not (false by default)
allies: "example1,example2" // The race(s) it'll be unable to hit divided by a comma
GUI customization & Word of Knowledge
The GUI is a really detailed part of this plugin. It makes creating races as simple as it can possibly be, or as detailed as you possibly can imagine.
TIP: Don't want a race to show up in the GUI? Set the slot to 99!
Enchantments
You're able to put enchantments on the items within the GUI. This can also be hidden using the HIDE_ENCHANTS item-flag (covered below)
Skull/Head Material
You can set a race's GUI item to a custom head by simply setting the material to "skull:" followed by a value from a custom head. I highly recommend using Minecraft Heads. Pick a custom head and scroll to the bottom, copy the bottom value (under Minecraft-URL) and paste it after "skull:", like so:
Item-Flags:
Allows you to set flags on any item in the GUI. HIDE_ENCHANTS, HIDE_ATTRIBUTES, etc. HIDE_ATTRIBUTES would hide the item's attributes that it has Mending, or Sharpness on the GUI item. That would look bad to your players. What this ALSO can do, is HIDE durability values (Read further for more information regarding that). We have 2 custom flags, which are "GLOWING" and "UNBREAKABLE". GLOWING gives the item a random enchantment and hides the enchantments, meaning that it'll look like a glowing item. UNBREAKABLE simply sets the item to an unbreakable state, meaning that it'll hide durability. (Handy for custom packs!)
Durability:
Allows you to set a durability value to any item in the GUI. This opens up a world of opportunity to you artists out there making custom Resource Packs, to make your GUI items look the way you want them too. With the HIDE_ATTRIBUTES, MENDING, UNBREAKABLE and HIDE_UNBREAKABLE, the GUI would show an item that has the look of an enchanted item, while hiding the fact that it has a durability value, as well as hiding the "UNBREAKABLE, MENDING" words on the item itself. Leaving you open to make the GUI icon look cleaner.
If you are not going to be using a custom resource pack, you can ignore the durability part altogether, and just use HIDE_ATTRIBUTES, and a random enchantment of your choice.
You're able to put enchantments on the items within the GUI. This can also be hidden using the HIDE_ENCHANTS item-flag (covered below)
Skull/Head Material
You can set a race's GUI item to a custom head by simply setting the material to "skull:" followed by a value from a custom head. I highly recommend using Minecraft Heads. Pick a custom head and scroll to the bottom, copy the bottom value (under Minecraft-URL) and paste it after "skull:", like so:
Code:
skull:e2274bbf9f179002a1127c1730e470add89c26655b0556b484778f3430086424
Item-Flags:
Allows you to set flags on any item in the GUI. HIDE_ENCHANTS, HIDE_ATTRIBUTES, etc. HIDE_ATTRIBUTES would hide the item's attributes that it has Mending, or Sharpness on the GUI item. That would look bad to your players. What this ALSO can do, is HIDE durability values (Read further for more information regarding that). We have 2 custom flags, which are "GLOWING" and "UNBREAKABLE". GLOWING gives the item a random enchantment and hides the enchantments, meaning that it'll look like a glowing item. UNBREAKABLE simply sets the item to an unbreakable state, meaning that it'll hide durability. (Handy for custom packs!)
Durability:
Allows you to set a durability value to any item in the GUI. This opens up a world of opportunity to you artists out there making custom Resource Packs, to make your GUI items look the way you want them too. With the HIDE_ATTRIBUTES, MENDING, UNBREAKABLE and HIDE_UNBREAKABLE, the GUI would show an item that has the look of an enchanted item, while hiding the fact that it has a durability value, as well as hiding the "UNBREAKABLE, MENDING" words on the item itself. Leaving you open to make the GUI icon look cleaner.
If you are not going to be using a custom resource pack, you can ignore the durability part altogether, and just use HIDE_ATTRIBUTES, and a random enchantment of your choice.
Hooks
A lot of plugins will sooner or later become exclusively compatible with Races of Thana. To hook Races of Thana with another plugin, simply add the plugin's name to the hooks list in the config.yml.
・ This section is NOT automatically added to the configuration file.
This is a full list of all compatible plugins so far. Feel free to remove any plugin-names you do not need:
YAML:
hooks:
- LoreAttributesRecoded