🌟customdrops.yml

Custom Drops Configuration

LevelledMobs' customdrops.yml file allows you to build custom drops utilizing many different config options to create unique materials and custom commands to add to or replace an entity's drops.

View Latest Default File


Defaults:

These config options will apply to all drops constructed within CustomDrops unless you have modified a drops' individual properties to override these default settings. Each of these must have a value in order for LM's CD to function properly, but once it is set here, you do not need to set it within your individual drops if the value would not change. These defaults apply to all systems within the CD file, including Drop Tables.

For any value listed as a percent: 1.0 = 100% ; 0.0 = 0%

defaults:
  chance: 0.2
  use-chunk-kill-max: true
  amount: 1
  minLevel: -1
  maxLevel: -1
  damage: 0
  custommodeldata: -1
  min-player-level: -1
  max-player-level: -1
  player-level-variable: ''
  player-level-match-value: ''
  nomultiplier: true
  nospawner: false
  equipped: 1.0
  equip-offhand: true
  equip-on-helmet: false
  override: false
  maxdropgroup: 1
  group-limits:
    cap-select: -1
    cap-per-item: -1
    cap-total: -1
    cap-equipped: -1
    retries: 0
  priority: 0
  player-caused: true
  item_flags: ''
  groupid: ''
  overall_chance: 0.0
  nbt-data: ''
  only-drop-if-equipped: false
  name: ''
  lore:
    - ''
    - ''
  enchantments:
    ENCHANTMENT: X
  enchantments:
    ENCHANTMENT:
      shuffle: false
      default: 1
      X: 0.5
  overall_permission: ['']
  permission: ['']
  cause-of-death: ['']
  run-on-spawn: false
  run-on-death: true
  delay: 0
Config Line OptionDescription

chance:

This represents the percent chance of an individual CD being dropped. Supports sliding values.

use-chunk-kill-max:

If the chunk kill count system is enabled in rules.yml, then setting this to true will cause the custom drop to not drop once the threshold has been met, until the cooldown time expires.

amount:

This represents the number of individual CD being dropped. This may be ranged, such as 1-3, where a value is randomly selected from between the two min/max values.

minLevel: maxLevel:

This represents the minimum and maximum level required of the entity before an individual CD will drop. Replace with -1 to disable the particular level check.

damage:

The amount of damage the item will have. Can use a number or a number range. The higher the value, the more damaged it will be.

custommodeldata:

This is an advanced config option; This represents a custom model to apply to the material CD.

nomultiplier:

This represents the check whether a CD will or will not multiply according to the item-drop: value of the killed entity.

nospawner:

This represents the check whether a CD will or will not apply to an entity spawned by a Spawner Cube.

equipped:

This represents the percent chance of an individual CD being equipped by the entity if it is able to. It will first attempt to place in the hands, then the skull, and otherwise will ignore if the entity could not normally equip an item (such as Silverfish). Supports sliding values.

equip-offhand:

If equipped: was successful, and this setting is true, then it will equip the item to the off-hand rather than primary if it is unoccupied.

equip-on-helmet:

When set to true, if an item successfully equipped to a mob, that mob will attempt to equip the item to their helmet slot.

name:

This represents the name to apply to the material drop when it is used on a MATERIAL or PLAYER_HEAD drop. When used for a customCommand, it is merely a debug value. You can use Minecraft's color code or if your server software supports it, HEX colors.

lore:

This structure of config options allows you to set multiple lines of lore to apply to a MATERIAL or PLAYER_HEAD drop. You can use Minecraft's color code or if your server software supports it, HEX colors.

enchantments: ENCHANTMENT: X ENCHANTMENT: X: 0.5 shuffle: default:

This structure of config options allows you to apply enchantments to items. Replace ENCHANTMENT: with the name of the enchantment, and replace X with the strength of that enchantment. For example, UNBREAKING: 2. You can also specify the chance of a specified enchantment level being applied to an item, by using X: 0.5 beneath the ENCHANTMENT:; the X represents the strength of the enchantment, while the 0.5 represents the chance of that enchantment level being applied. Within this section you can specify shuffle: false, which will process the enchantment level chances to apply in order rather than at random. The setting default: X will use the specified level if none of the enchantment level chances succeed.

override:

This will determine whether LM will process CD alongside the vanilla drops, or replace them entirely.

maxdropgroup: groupid:

Using groupid: within multiple items under the same EntityType or drop-table: will combine these CD into their own separately processed group. maxdropgroup: applies a limit to the number of selected items from the same groupid to be chosen for processing.

group-limits: cap-select: cap-per-item: cap-total: cap-equipped: retries:

The group-limits: settings include multiple cap checks to apply to items within the same groupid:. If any setting within group-limits: is set, then any value for maxdropgroup: will be ignored. cap-select: functions identically to the current maxdropgroup: setting; a limit to the number of items from the same groupid which will be selected for drop-processing. For example, if three items share the same groupid:, and I set cap-select: 1, then only one of those items will be selected for potential drop-processing. cap-per-item: functions as a cap on the amount: of an item on a per-item basis. This is useful for when retries: are being used and you do not want the player to receive a lot of the same items. cap-total: functions as a cap on the total quantity of items which can be dropped from all sources combined within the same groupid:. cap-equipped: functions as a cap on the total number of items which an entity can successfully equip from the items within the same groupid:. retries: functions as a re-roll ability, telling LM to re-process the items within the same groupid: X additional times after the first attempt. This provides the ability for a group of items to be processed multiple times in order to increase the odds for a drop or equip event to occur.

priority:

By default, CD processes the drops in a similar fashion to how LM processes the rules tree. By setting a priority: on an individual CD, you are letting certain items process first before others.

player-caused:

This represents the check on whether the entity's death was caused by a player, or whether it was environmental. It is recommended that you do not change this from true, as making this false will cause any levelled entity who dies to potentially drop your special customized drops.

overall_chance:

This represents a percent chance of any of the EntityType's CD being processed at all. This only needs to be placed once for an EntityType, and if the chance fails, none of the CD for that EntityType will process. Supports sliding values.

nbt-data:

This allows you to specify any NBT data to apply to a material drop. NOTE: This requires the soft-dependency NBT-API.

item_flags:

This allows you to specify the various ITEM_FLAGS that Minecraft provides to apply to materials. HIDE_ATTRIBUTES - Will hide attributes, like damage. HIDE_DESTROYS - Will hide what the Item can destroy. HIDE_DYES - Will hide the dye color applied to Item. HIDE_ENCHANTS - Will hide enchantments on Item. HIDE_PLACED_ON - Will hide where the Item can be placed. HIDE_POTION_EFFECTS - Will hide potion effects placed on the Item. HIDE_UNBREAKABLE - Will hide unbreakable status of Item.

only-drop-if-equipped:

This represents a check, if an Entity has equipped: the item successfully, whether the chance: to drop will apply. If set to true, then only if the item was successfully equipped will the chance: be attempted in the drop. If set to false, then the item will attempt to drop regardless of it's equipped status.

overall_permission: permission:

A MODALLIST config option; this represents a check against the nearest player to the entity, OR the player who killed an entity, depending on it's implementation. All permissions as registered as levelledmobs.permission.<node>, where <node> represents the value of this config. For example, if your permission was levelledmobs.permission.vip, you would configure it as such: permission: ['vip']. Using overall_permission: will apply to all items within the set, while permission: applies to each singular item.

cause-of-death:

A MODALLIST config option; this represents a check against how the entity was killed. This only takes into account the final blow, and will ignore player-caused: true, since the cause of death will not typically involve player interaction ('fire' dealing the damage, versus the player).

min-player-level: max-player-level:

This represents the minimum and maximum Minecraft level required of the Player before an individual CD will drop. Replace with -1 to disable this particular level check.

player-level-variable

If this config option is set, the above min-player-level: and max-player-level: will reference this variable instead of the player's Minecraft level. You can use any PAPI placeholder tag in this place similar to how the Player Levelling strategy uses the variable to generate levels.

player-level-match-value

If this config option is set, you can instead check for a text-based value from a a PAPI placeholder tag. This can still reference the above min-player-level: and max-player-level:. You can use any PAPI placeholder tag in this place similar to how the Player Levelling strategy uses the variable to generate levels. The tag will be checked against the player-level-variable:. This config option includes a wildcard ability to pull part of the output from the player-level-variable:. You can add a * as a prefix, suffix, or both to search for a partial match. For example, if the variable output was Lvl 5 Zombie- S0hp, I could search for Zombie* or *Zombie* to successfully match, as the word Zombie matches in part as a wildcard check. Under this example, searching for Zombie would fail to match, as the word in the output appears as Zombie- and the search parameters were for an exact-match.

external-amount

When used with LM Items Official Plugin, this sets the amount internally to the specified plugin

type

When used with LM Items Official Plugin, this sets the item type (currently only supported with MMOItems)

run-on-spawn

Applicable only to custom commands, determines if it will be executed when a mob spawns in

run-on-death

Applicable only to custom commands, determines if it will be executed when a mob dies

delay

Applicable only to custom commands, this is the number of ticks that will elapse before the command is executed


Universal Groups:

LM includes several groups of entities which are bundled together in a convenient format. Each of these groups function as their own EntityType, applying to multiple entities at once. You can refer to the EntityType Universal Groups for the different types!

Specified Mobs:

LM has listed all vanilla entities as of Minecraft 1.20 within the CD file. You should locate the entity you wish to modify instead of adding additional entities at other spots within the config, as they will most likely not process as expected. You may delete any entities you do not use if you so choose, as you can always add them back again later.

Sliding Values

There are three options that support sliding values; chance, equipped and overall_chance. You can either use a decimal to represent a percent or assign tiers that represent a level range and an assignment range. The syntax is:

chance:
  lvl-lvl: X-Y

On the left side you put the min and max levels that the tier can match, then on the right side put the min and max chance those level ranges will use; where the assigned value slides based on the level values assigned. If the mob level is between the min and max then it will use the assigned min and max assignment. For example:

- IRON_SWORD:
    chance:
      1-10: 0.2-0.8
      11-20: 1.0

In the above example, level 1 mobs will have a 20% chance. Level 10 mobs will have 80% chance and any mob levels in between will scale accordingly. For mobs levelled 11 through 20, they will have a 100% chance. Any mob levels without an assignment will have 0% chance, such as level 21+ in the above example.

Drop Tables

CD includes the Drop Table system, which allows you to construct groups of materials or custom commands which can be attached to any EntityType as a single line item utilizing usedroptable: tableName, helping to reduce any instances of duplicate drops covering multiple entities. This can also be used to craft 'tiered' drops.

PUT_ENTITY_TYPE_HERE:
  - usedroptable: 'putTableNameHere'

When constructing drops with the Drop Table, you can replicate the same formatting used for any other drop, replacing the EntityType with the tableName.

NOTE: It is highly recommended that you instead use the Rules file to implement any drop table. It will provide far more accurate conditioning for when and how to apply drop tables.

LM Items - External Plugin Support

If you want to use custom items from external plugins, take a look at LM Items. This plugin bridges the gap so you can use third party items natively. Download from https://www.spigotmc.org/resources/lm-items.102081/

An example of how LM Items improves your server: Adding Player Heads to mobs!

Here is an example of how to use the - HeadDatabase: LM Items item-type.

# Requires LM_Items Official Addon
  - HeadDatabase:61942:
      amount: 1
      chance: 1.0

You supply the skull ID number from Minecraft Heads, which is provided in the URL of the skull which you select, and append it to the HeadDatabase: item-type as shown above. For example, the url https://minecraft-heads.com/custom-heads/humanoid/61942-demon-helmet would have the ID 61942.

Materials, Commands, and Special Items

- MATERIAL:

- ENCHANTED_BOOK:
    enchantments:
      ENCHANTMENT: X

- customCommand:
    command: ''
    command: ['', '']
    ranged_A: ''
    ranged_B: ''
    name: ''

MATERIAL: drops gather their config options from the Defaults section listed above. Any config option listed there can be used within any MATERIAL: or customCommand drop.

customCommand: tells CD that you wish to setup a command to process like any other drop. In order for this feature to function, it requires at minimum the command: config option with a valid console formatted command present. You can also use multiple commands at once by listing them as demonstrated above. An example of a valid command might be effect give %player% strength %ranged_a% %ranged_b%. The tags prefixed with ranged_ are unique. These allow you to construct a random number generator to be used within commands as placeholders. The example config above demonstrates how you would utilize the ranged config option, appending an A/B/C/D, et cetera to the end of ranged_ creates the tag, while the value represents a range of potential values which could be applied to the placeholder tag present in the individual command drop. Using the previous example command, with the ranged_A: 1-2 and ranged_B: 3-5, then the first tag would be any value between 1-2, while the second would be any value between 3-5 when utilized within the command being activated.

ENCHANTED_BOOK is a special type of MATERIAL drop which will enable anvil-ready enchanted books by utilizing the enchantments: config option.

Last updated