NT-Rpg - Plugin which brings RPG features into minecraft

Can you create default configurations for races, classes etc ?.. I need it, because hard to configure them without examples.

Sorry for my bad english.

Here is a vanilla configuration:

some things may be broken with recent updates to the code; report them there and i’ll handle them.

Thank you very much!

I would suggest you to jump on the discord server where you can already find more examples, much stable builds, and its easiest way to contact me directly, im not very active on sponge forums.

A new version has been released for NT-Rpg, it is available for download here.


Features

  • Plugin now supports any modded inventory (eg.: baubles)

  • Plugin now supports any item from mods

  • Formated experience gain above boss bar to two decimal digits

  • Fixed and pretified some texts in inventory menus

  • Added /char list command which displays all player’s characters

  • All mob configuration was merged into one file. MobHealth.properties MobDamage.properties and MobExperiences.properties file may now be removed from the config folder

  • Mob experiences, health and damage now has to be defined per each world

  • Improved Javascript bindings

  • Added skill manashield

…And much more

Bugfixes

  • Players now respawn with full hp
  • Fixed a bug where classes may not gain any experiences from Minning stuff
  • Fixed a check for permission node check race selection
  • Fixed a but which might cause experience loss during save operation
  • Fixed damage calculation for projectiles
  • Fixed bug related to healing spells
  • Fixed bug, where loading configuration for a skill with type of SkillItemAccess thew NPE if there item array had size of > 1
  • Fixed a bug where option PLAYER_AUTO_CHOOSE_LAST_PLAYED_CHAR was incorrectly choosing a player’s character if a player had more than one instance stored in db.
  • Fixed a bug which was causing that a player might not equip an armor piece
  • Fixed a bug where skill with damage type ice caused skilltree not displaying
  • Fixed multiple problems in skilltree views which were happening when a played tried to navigate in the skilltree by pressing up/down/right/left buttons

…And much more

The plugin requires at least SpongeForge 1.12.2-2655-7.1.0-BETA-3079 (or similar version of spongevanilla) otherwise inventories will glitch.

Thanks to @hellbringer616 There are some configuration examples now!

For any more information/or support jump on my discord server https://discord.gg/YerUbgd

2 Likes

A new version has been released for NT-Rpg, it is available for download here.


Bugfixes:

  • Fixed some bugs related to inventory menus

Current stable release of Sponge (both vanilla and forge platforms) contains a critical bug related to inventories, which may lead to the server crash

It’s required to use at least Sponge Vanilla 1.12.2-7.1.0-BETA-70, or SpongeForge 1.12.2-2705-7.1.0-BETA-3227, where the issue has been fixed

1 Like

I wonder if thats the source of my issue; not likely but hey! i’ll give it a shot!

Can I share this nice plugin to the MCBBS?
This the biggest froum in China.
If you allow me to do that.
I’ll link the cursegorge page. Thank U

Can I share this nice plugin to the MCBBS?
This is the biggest forum in CHina.
And can you write a passage to tell us how to create the job?
As far as I know,this plugin will collide with UltimateChat.
That means switch the char and it can caused the server shout down.
How can i solve this problem?
Thank U for your checking!

Sorry im not very active on sponge forums.

Can I share this nice plugin to the MCBBS?

Yes you can. Remember that you have to link NTCore as well, otherwise it wont work.

And can you write a passage to tell us how to create the job?

What do you mean “create the job”?

As far as I know,this plugin will collide with UltimateChat.
That means switch the char and it can caused the server shout down.

That sounds strange, but thanks for reporting. I’ll check that.
If that happened on your server and you do have the log related to the server crash upload it somewhere. It will save some time on my end.

Can we have different Damage types, like Magical and Physical or Fire, Water, Earth and Air? And of course, a way to define weakness for each armor items to some damage types

Best way to make requests is to use the github. NeumimTo rarely checks Sponge.

Yes you can create skills with different damagetypes.
You also can create armor pieces with custom enchantments which increase or decrease player resistance to specific type of damage

A new version has been released for NT-Rpg, it is available for download here.


  • Added basic support for translation, added czech and polish localization (not yet 100% done)
  • Mob experiences gained after kill may now be adjusted on a race or class level
  • Improved tab-autocompletition for skills
  • Parts of the plugin now may be reload at runtime, the goal is to make all configurations reloadable on the fly
  • Added yet another way how to create skills.
    • Its a mix of HOCON configurations and a very simplified JavaScript code
    • To simplify JavaScript code as much as possible there are now some fuctions which reduce boilerplate code.
    • NeumimTo / NT-Rpg
    • Skills are defined in the file Skills-Definition.conf

Example configuration:

Skills: [
{
    #This skill is equivalent of a javaskill cz.neumimto.skills.active.SkillMegabolt.
    # Id must be unique
    Id: "ntrpg:megabolt2"

    # The name of the skill.
    # Name may be changed per each skilltree, but there must not be multiple skills with the same name
    # skills may be executed via /skill <skill:id> or /skill <skill-name>
    Name: megabolt

    # Parent node defines if the skill is type of Active/passive - its requires to target an entity etc
    # Parent node may change which variables maz be referenced in the Script section.
    # Eg. Inheriting from active wont make accessible varible _target
    Parent: active

    # Skill types
    Skill-Types: [
        "ntrpg:aoe",
        "ntrpg:lightning"
    ]

    # If the skill may deal damage there must be node DamageType.
    # If the skill deals no damage to anyone (eg simple healing) this node should not be defined
    Damage-Type: "magic"

    # Optional node, some extra informations related to skills, skill lore can be found in ingame inventory menus
    Lore: [
        line1
        "&4line2"
    ]
    # Brief description of the skill, skill description can be found in some ingame inventory menus
    Description: "Damages nearby entities with a lightning strike"

    # Default config nodes you with to use, this section has to have all nodes, if you wish to execute skills via /nadmin command, otherwise it may be left empty
    Settings: {
        "damage": 10
        "damage_levelbonus": 5
        "range": 15
        "range_levelbonus": 1
        "mana": 10
        "mana_levelbonus": 10
    }
    # How you with to load the skill, lets keep there js for now
    Loader: js

    # The bussines logic for a sklll
    # The script is called AFTER all validations such as mana pool check, cooldowns etc
    # If you need to debug anything simply call function log(<data>)
    # For more documentations check out wiki, or functions.md file
    Script:
      """
      var totalDamage = param("damage", _context);
      var totalRange = param("range", _context);

      for_each_nearby_enemy(_caster, totalRange, function(entity) {
              var location = get_location(entity);
              if (damage(_caster, entity, totalDamage, _context)) {
                  spawn_lightning(location);
              }
            }
      );
      """
}
  • fixed lots of bugs related to inventory menus, skill execution etc…

  • Refactored large portion of skills which makes entire system more flexible.

  • Make some changes to prepare the plugin to allow skill packs (jar files) to be reloadable on the fly

  • Changed way how the plugin manages the database schema. If you are running mysql or postgres hibernate no longer generates tables automatically, this approach is generally more safe.

  • Bunch of another features which i already forgot about.

  • Added some placeholders which you can use together with placeholderapi

    • race - returns characters race
    • class - returns characters primary class
    • char_name - returns character name
    • primary_class_or_spec - returns a name of a primary class, or a highest tier of its specialization
    • primary_class_level - returns a level of a primary class
    • mana - returns current amount of mana
    • max_mana - returns maximal volume of manapool
  • Its now possible to configurate skills that they will cost specific amount of items to be casted.

    • If the player has not enough items to cast the skill its possible either deny the attempt to cast the spell, or adjust its configuration, for example change skill cooldown.
    • Its possible to define whenever the items should be removed from players inventory

Example:

InvokeCost {
      Items: [
          {
            Amount: 10
            ItemType: "minecraft:paper"
            Consume: false
          }
      ],
      Insufficient: [
        {
          Id: "ntrpg:adjusted_skill_settings_value"
          Key: "cooldown"
          Value: "{{value}} + 25000"
        }
      ]
    }

You can grab skills here:

(as usual you place the skills jar to the ntrpg config addons directory)

Very simple examples how to setup classes, races and skilltrees may be found here.

The documentation is lacking and due to complexity its not so easy to configure this correctly :frowning: For more question reach me out on discord:

1 Like

A new version has been released for NT-Rpg, it is available for download here.


  • Fixed some minor bugs
  • Ore now displays dependencies

A new version has been released for NT-Rpg, it is available for download here.


  • Fixes problems related to inventories.
  • Requires at least 1.12.2-2768-7.1.5-RC3542 version of SpongeForge or or 1.12.2-7.1.5-RC148 version of SpongeVanilla
  • If you are upgrading from previous version you have to edit file Itemgroups.conf.

Replace InventorySlots section with following code:

InventorySlots: [
    {
        type: "net.minecraft.entity.player.InventoryPlayer"
        slots: [
            "9;ANY"
            "10;ANY"
            "11;ANY"
            39
            38
            37
            36
        ]
    }
    {
        type: "baubles.api.cap.BaublesContainer"
        slots: [
            9
            10
            11
            12
            13
            14
            15
        ]
    }
]

A new version has been released for NT-Rpg, it is available for download here.


  • Reworked the class system

    • Plugin now allows multi-classing per character
    • For more informations see: NeumimTo / NT-Rpg
    • Removed concept of races
    • The configs are not compatible with previous versions
  • Minor changes to skill trees - skills dependencies now require to define minimal skill level as well.

  • Optimized character initializations

Its required to update skillpack
Ore still do not support multiple jars per version so you will have to grab it from github.

NT-RPG-Skills-3.0.0.jar

!! The skills jar goes into /config/nt-rpg/addons folder
!! do not put it into mods folder, it wont load from there

!!! Plugin still requires NeumimTo / NT-Core to run

A new version has been released for NT-Rpg, it is available for download here.


  • Fixed a bug which caused wrong damage output with an empty hand, if previous item broke

  • Added a command /nadmin invoke .

    • can be used to open inventory GUIs on a client
    • /nadmin invoke NeumimTo classes Primary
    • Opens an class selection gui for a player NeumimTo
  • Added two new experience sources:

    • Fishing - gain experiences when a player catches a fish
    • Farming - gain experiences when a player harvest eg.: a wheat

A new version has been released for NT-Rpg, it is available for download here.


  • Fixed a bug which caused the plugin not to load on mysql.

  • This version requires at least NT-Core-13-Snapshot-9
    NeumimTo / NT-Core

A new version has been released for NT-Rpg, it is available for download here.


Updating from previous SNAPSHOTs:

Bugfixes

  • Fixed a bug which caused
  • Optimalized updating CharacterClass JPA entity when a player gains experiences. It no longer warns about duplicate object within one session.
  • Fixed a bug which caused wrong damage calculation if the character was automatically activated during login process
  • Fixed a bug which might cause hibernate to fail during loading previously saved character from database
  • Fixed multiple NPE here and there
  • Error messages which may occur during class selection are now meaningful.
  • Added missing localization texts