Reroll


Reroll

The Reroll feature allows players to place an item and reroll its stats in order to obtain better or more desirable stat values.

Reroll GUI

How Reroll Works

When the item is placed into the item slot and the confirm button is pressed, the item's stats will be rerolled based on the defined configuration.

Permission

Each station has its own permission requirement in order to be used. Of course, you can customize or change the permission to suit your needs.

settings:
  permission: nwmmoupgrade.reroll.sword

Features

1. Material Item

If enabled, this means the operation of the station will require the specified materials in order to function as intended. You can define one or more material items, and the station will only execute if the player provides the required materials.

materials:
  enabled: false
  items:
    - type: MATERIAL
      id: STEEL_INGOT
      amount: 5
      slot: 30
      #match-item-type: SWORD #filter option
      #match-tier-type: RARE #filter option

Note:

  • type is the type of the MMOItem.

  • id is the ID of the MMOItem.

  • amount is the quantity of the material required.

  • slot is the GUI slot where the material must be placed.

Options

These are additional conditions that enhance material requirements:

  • match-item-type: The material will only be accepted if the item placed in the item slot has the matching type specified here.

  • match-item-tier: The material will only be accepted if the item placed in the item slot has the matching tier specified here.


2. Chance Item

If enabled and used in conjunction with chance-based mechanics, the Chance Item provides an additional success rate boost on top of the existing base chance. This item acts as a support to increase the overall likelihood of success during actions such as upgrading

chance-item:
  enabled: false
  items:
    - type: MATERIAL
      id: RARE_DIAMOND
      amount: 5
      slot: 32
      chance: 50
      #match-item-type: SWORD #filter option
      #match-tier-type: RARE #filter option
    - type: MATERIAL
      id: SILVER_INGOT
      amount: 1
      slot: 32
      chance: 50
      #match-item-type: ARMOR #filter option
      #match-tier-type: RARE #filter option

Note:

  • type is the type of the MMOItem.

  • id is the ID of the MMOItem.

  • amount is the quantity of the material required.

  • slot is the GUI slot where the material must be placed.

  • chance This sets the success chance for the Chance Item

Options

These are additional conditions that enhance material requirements:

  • match-item-type: The material will only be accepted if the item placed in the item slot has the matching type specified here.

  • match-item-tier: The material will only be accepted if the item placed in the item slot has the matching tier specified here.


3. Material Formula

The Material Formula feature provides a highly flexible way to dynamically calculate the cost and material requirements for item.

Material Increase

When this feature is enabled (enabled: true), the quantity of material items required for an gem add socket will increase as the item's level rises. This ensures that higher-level upgrades demand a greater investment from players, providing a more balanced progression.

The increase is determined by a custom formula you define, giving you precise control over the scaling.

In Short:

  • Level Up = Material Requirements.

Formula Configuration

The core of this feature lies in the formula field, where you can define a mathematical expression.

  • Basic: you can use the basic default chance calculation or create your own custom formula to control how the chance is calculated.

  • Custom Placeholders: The formula supports specific placeholders that will be replaced with dynamic values during calculation.

material-formula:
  enabled: true
  formula: "1"

4. Cost Upgrade

This feature allows you to use Vault (Money) for each Upgrade addition. And it also supports using custom placeholders from the system itself.

cost:
    enabled: false #Cost
    amount: 5000
cost:
    enabled: true # Enable/disable cost system
    amount: "{gem_add_item_custom_advance_cost_item}" # cost amount

5. Default Chance

This feature allows you to set the success chance of this station yourself, in cases where Tier is not enabled.

options:
    ....
    default-chance: 0

6. Tiers

This feature allows you to set the success chance based on the tiers of the item placed in the item slot. If the item's tier matches the specified tiers, the chance will be applied accordingly. If none of the tier conditions are met, the chance will be taken from the no-tier-chance setting.

options:
    ....
    tiers:
      enabled: false
      no-tier-chance: 10
      tiers:
      enabled: false
      no-tier-min: 10
      no-tier-max: 10
      no-tier-chance: 10
      tier-list:
        - tier: COMMON
          min: 1-10
          max: 20
          chance: 2
        - tier: RARE
          min: 11
          max: 20
          chance: 15

7. Applies To

You can specify more than one MMOItem type that this configuration applies to.

applies-to:
  - SWORD
  - PICKAXE

8. Use Reroll MMOItems

use-reroll-mmoitems enables the default reroll functionality from MMOItems. To use it, you must define the following parameters: base, scale, spread, and max-spread.

settings:
  ....
  use-reroll-mmoitems: true

9. Reroll

9.1 Default Reroll

Default reroll will reroll all stats on an item that are eligible for rerolling—such as ATTACK_DAMAGE or other stats in the form of Doubles. You can define the min and max values to control the lowest and highest possible stat values for each reroll.

options:
  ....
  default:
    min: 1-10
    max: 20

9.2 Tiers Reroll

Tiers Reroll works by checking the tier of the item to determine which conditions it matches. Each tier can have its own specific min and max values for rerolling, allowing different tiers to have unique reroll stat ranges.

options:
  ....
  tiers:
    enabled: false
    no-tier-min: 10
    no-tier-max: 10
    no-tier-chance: 10
    tier-list:
      - tier: COMMON
        min: 1-10
        max: 20
        chance: 2
      - tier: RARE
        min: 11
        max: 20
        chance: 15

9.3 Custom Stats Min Max

Custom Stats Min Max allows you to define reroll behavior for each individual stat in a variety of ways. This gives you more flexibility and control when customizing how each stat is rerolled.

options:
  ....
  custom-stats-min-max:
    enabeld: true
    lists:
      - "ATTACK_DAMAGE;1-20;20;RARE,LEGENDARY"
      - "ATTACK_SPEED;1-20;20;RARE"
      - "ATTACK_DAMAGE;1-10;10;COMMON"
      - "ATTACK_SPEED;1-10;10;COMMON"
      - "WEAPON_DAMAGE;1-10;10;"
      - "PVE_DAMAGE;7;15"
      - "PVE_DAMAGE;17;40;LEGENDARY"

Example:

"ATTACK_DAMAGE;1-20;20;RARE,LEGENDARY"

The configuration of this feature is divided as follows:

<stats>;<min>;<max>;<tier>

or

<stats>;<min>;<max>;<tier1>,<tier2>.....<tierX>

This means that the stat ATTACK_DAMAGE will be rerolled with values between 1 and 20, and this setting will only apply to items that belong to the RARE or LEGENDARY tiers.


10. Blacklist-Stat

blacklist-stat is used to prevent specific stats from being rerolled. As I mentioned before, when using the reroll feature, it will change any stat that is of type Double. Therefore, I recommend that you carefully blacklist the important stats you don’t want to be affected by the reroll process.

Note: If custom-stats-min-max is enabled, this feature will be ignored and will not apply.

options:
  ....
  blacklist-stat:
  enabled: true
  lists:
    - "CUSTOM_MODEL_DATA"
    - "MAX_DURABILITY"
    - "ATTACK_SPEED"
    - "ATTACK_DAMAGE"

11. Whitelist-Stat

whitelist-stat is used to filter and allow only the specified stats to be affected during the stat reroll process. If this feature is enabled, only the stats listed will be eligible for rerolling — all others will be ignored.

Note: If custom-stats-min-max is enabled, this feature will be ignored and will not apply.

options:
  ....
  whitelist-stats:
  enabled: true
  stats:
    - ATTACK_DAMAGE


Example Full Config

##########################################################################
#
#                         nwMMOUpgrade - Reroll
#      Created By Discord NN#7999 (Newworld Server)
#
#      Supports RGB and standard color codes.
#      1.RGB = &#ffffff
#      2.Standard = &f
#      3. MiniMessage = <red>
#      4. Legacy Hex = &x
#      https://www.birdflop.com/resources/rgb/
#
##########################################################################

#Contact&Support: https://discord.gg/gwXcr7c6Gq

#MMOItems Type
applies-to:
  - SWORD

# Sound settings
#https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
sounds:
  confirm-success: ENTITY_EXPERIENCE_ORB_PICKUP
  confirm-fail: BLOCK_ANVIL_DESTROY
  confirm-no-item: BLOCK_NOTE_BLOCK_PLING

#GUI customization
gui:
  #GUI title, should support images normally.
  title: "&bReroll Stat Item"
  rows: 6 #GUI slots
  display-slots:
    item:
      material: LIME_STAINED_GLASS_PANE
      name: "<color:#00FF4F>Place the item to upgrade<color:#57E342>"
      lore:
        - "&7Drag and drop your item here"
      cmd: 1
    material:
      material: YELLOW_STAINED_GLASS_PANE
      name: "<color:#E7FF00>Place the materials<color:#F2FF08>"
      lore:
        - "&7Drag and drop the required materials here"
      cmd: 1
    chance:
      material: PINK_STAINED_GLASS_PANE
      name: "<color:#FF00F8>Place a chance-enhancing stone (if any)<color:#E68DFF>"
      lore:
        - "&7Drag and drop the chance-enhancing stone here"
      cmd: 1
  slots:
    #Slot for the item you want to add Gem slots to.
    item: 13
    confirm:
      material: BRICK
      name: "&a&lConfirm" #Button name
      lore: #Add your messages here.
        - "&7Click to add a Reroll"
        - ""
        - "&fCost: &a{cost}"
        - "&fSuccess Chance: &6{chance}%"
        - "&fMaterials:"
        - "{material}" # edit custom line -> missing-material-line: "- &4<gray>{material} <red>{amount}"
      slot:
        - 48-50
      #Supports custom model data.
      cmd: 2600
    filter:
      name: "&f" #Name
      material: BLACK_STAINED_GLASS_PANE
      cmd: 1

materials:
  enabled: false
  items:
    - type: MATERIAL
      id: STEEL_INGOT
      amount: 1
      slot: 30
      #match-item-type: SWORD #จะใส่หรือไม่ใส่ก็ได้
      #match-gem-type: GEM_STONE #จะใส่หรือไม่ใส่ก็ได้
      #match-tier-type: RARE

chance-item:
  enabled: false
  items:
    - type: MATERIAL
      id: RARE_DIAMOND
      amount: 5
      slot: 15
      chance: 1
      #match-item-type: SWORD #จะใส่หรือไม่ใส่ก็ได้
      #match-gem-type: GEM_STONE #จะใส่หรือไม่ใส่ก็ได้
      #match-tier-type: RARE #จะใส่หรือไม่ใส่ก็ได้


settings:
  permission: nwmmoupgrade.reroll.advance_reroll
  cost:
    enabled: true #Cost
    amount: "{reroll_custom_cost_item}"
  use-reroll-mmoitems: true
  options:
    material-formula:
      enabled: false
      formula: 1
    default-chance: 100
    default:
      min: 1-10
      max: 20
    tiers:
      enabled: false
      no-tier-min: 10
      no-tier-max: 10
      no-tier-chance: 10
      tier-list:
        - tier: COMMON
          min: 1-10
          max: 20
          chance: 2
        - tier: RARE
          min: 11
          max: 20
          chance: 15
  custom-stats-min-max:
    enabeld: true
    lists:
      - "ATTACK_DAMAGE;1-20;20;RARE,LEGENDARY"
      - "ATTACK_SPEED;1-20;20;RARE"
      - "ATTACK_DAMAGE;1-10;10;COMMON"
      - "ATTACK_SPEED;1-10;10;COMMON"
      - "WEAPON_DAMAGE;1-10;10;"
      - "PVE_DAMAGE;7;15"
      - "PVE_DAMAGE;17;40;LEGENDARY"
  blacklist-stat:
    enabled: true
    lists:
      - "CUSTOM_MODEL_DATA"
      - "MAX_DURABILITY"
      - "ATTACK_SPEED"
      - "ATTACK_DAMAGE"
  whitelist-stats:
    #Item Stats.
    #Check your main item for Stats lists
    #https://gitlab.com/phoenix-dvpmt/mmoitems/-/blob/master/MMOItems-API/src/main/java/net/Indyuce/mmoitems/ItemStats.java
    enabled: false
    stats:
      - ATTACK_DAMAGE

Last updated