This is an old revision of the document!


Classes

One of the main features of MMOCore is the class system. Setting up classes and giving them detailed and individualized statistics per class is one of the greatest things you can do. Each class can have its own stats, skills, leveling curves, etc.

Our class system aims to provide a completely user created class system that looks good, and works great. We are trying to fill in the holes where other plugins fell short.

Choosing a class for a player is as simple as having them run (or running for them) /class, and they can view the customized class selection GUI from there. There is also a command to force a player into a class.

Players will always belong to a default class that you setup, so even if you don't plan on using MMOCores class system, you are able to utilize every feature of this plugin while the class system remains hidden.

Class Points

Choosing a class requires a “class point” and these can be given via admin command however you want. This is our way of letting the admins decide how often or when players should get to choose or change classes.

Classes tie into plugins like MMOItems in order to provide class restrictions on items and even class bonuses. MMOItems also has these restrictions and benefits built into the Crafting Stations that the plugin offers. A smithing profession can gain experience from using custom MMOItems smithing stations.

Class Triggers

Class triggers are one of the most versatile part of classes. These can be used to perform very specific actions, and the list will always continue to grow. They can be used to give leveling rewards on certain levels, or even give a special mana to certain classes when they deal damage.

Currently the available events are:

  level-up
  level-up-(x)
  level-up-(profession)
  level-up-(profession)-(x)
  melee-damage
  physical-damage
  magic-damage
  class-chosen
  

In those examples, the placeholders (x) stand for you being able to put in a specific level that the actions happen.

All of those listed triggers go under the triggers: header in your class files. The full list of actions will be available on the actions page located elsewhere in the manual. These triggers listed above will cause the actions to occur. A few of the possible ones are command, item, mmoitem, experience, and money.

Class Behavior

Within the classes folder on your server, each YML file stands for a specific class. You can only have one class per YML file and you can not sub folder them currently. We provide 7 class files by default for you to learn with, mess with, or use. 5 of the classes are normal classes, 1 is a default class, and 1 is a subclass example.

Something to note is that player data is saved per class. If you level up a mage to level 5, and decide to switch to warrior, you will be reset to a level 1 warrior where none of your MMOCore information saves. If you switch back to the mage, you will get back your level 5 profile with all of that data. This can not affect inventories or location in the world. But you can use the class-chosen triggers to do as you wish.

Every class must have:

      display:
      name: 'Human'
  options:
      default: true
      display: false
      

configured in order for it to work. You only want ONE of your classes to have default set to true. Your default class should also have display set to false. All of your main classes should have display set to true in order to show up in the /class menu. Your subclasses should have display set to false, as they will not show up until the requirements are met.

Example

  display:
      name: 'Mage'
      lore:
      - 'The Mage has mastered the power of the'
      - 'Arcanes, taking down any enemy on his path'
      - 'using powerful magic & ranged abilities.'
      attribute-lore:
      - '&a+ &7Mana Regeneration'
      - '&a+ &7Health Regeneration'
      - '&a+ &7Max Mana'
      - '&c- &7Max Health'
      - ''
      - '&8&lStrength'
      - '&7  Attack Damage: &c1 &7(+&c0&7)'
      - '&7  Attack Speed: &c4 &7(+&c0&7)'
      - '&7  Max Health: &c18 &7(+&c0&7)'
      - ''
      - '&8&lDexterity'
      - '&7  Knockback Resistance: &a0% &7(+&a0%&7)'
      - '&7  Movement Speed: &a20 &7(+&a0&7)'
      - '&7  Speed Malus Reduction: &a0% &7(+&a0%&7)'
      - ''
      - '&8&lIntellect'
      - '&7  Max Mana: &927 &7(+&91.2&7)'
      - '&7  Health Regen: &90.13 &7(+&90&7)'
      - '&7  Mana Regen: &90.2 &7(+&90.04&7)'
      item: BLAZE_POWDER
  # Players cannot go further than Lvl 100
  max-level: 100
  triggers:
      level-up:
      - 'command{format="mmocore admin skill-points give %player% 1"}'
  mana:
      char: ■
      color: BLUE
      name: 'Mana'
  cast-particle:
      particle: SPELL_INSTANT
  options:
      off-combat-health-regen: true
  attributes:
      max-health:
          base: 18
          per-level: 0
      max-mana:
          base: 27
          per-level: 1.2
      mana-regeneration:
          base: .2
          per-level: .04
      health-regeneration:
          base: 0.13
          per-level: 0
  subclasses:
      ARCANE_MAGE: 10
  skills:
      FIRE_STORM:
          level: 1
          max-level: 30
      
      # Specific skill modifiers based on class.
      # Arcane mage's fire storm may deal more damage
      # than an apprentice mage's fire storm.
      damage:
          base: 5.0
          per-level: 3.0
      ignite:
          base: 2.0
          per-level: 0.1
      mana:
          base: 15.0
          per-level: 2.0
      cooldown:
          base: 5.0
          per-level: -0.1
          max: 5.0
          min: 1.0
  POWER_MARK:
      level: 3
      max-level: 30
  FIREBALL:
      level: 5
      max-level: 30
  MINOR_HEALINGS:
      level: 6
      max-level: 30
  ICE_SPIKES:
      level: 8
  AMBERS:
      level: 9
      max-level: 30
  WEAKEN:
      level: 10
      max-level: 30
  WARP:
      level: 13
      max-level: 30
  GREATER_HEALINGS:
      level: 15
      max-level: 30
  # Experience sources for main class experience.
  main-exp-sources:
  - 'killmob{type=ZOMBIE;amount=1-3}'
  - 'killmob{type=ENDERMAN;amount=6-9}'

classes.1577589147.txt.gz · Last modified: 2020/07/01 03:13 (external edit)