-
Notifications
You must be signed in to change notification settings - Fork 43
Documentation customdrops.yml
This page was last updated for LevelledMobs 3.15.0 b824
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.
Need a sample config file to help you get a bearing?
UltimaOath is currently working on a customdrops.yml
file which will contain thousands of lines of potential Custom Drops to use within your server. The file is being maintained and is always being changed and updated. Once it is finished, a final copy will be left here. In the meantime, you can keep up with the progress here!
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.
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 Option | Description |
---|---|
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, this sets the amount internally to the specified plugin |
type |
When used with LM_Items, 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 |
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: assignment-assignment
# OR:
chance: 0.5 # 50% chance
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. If the mob level is between the min and max then it will scale the min and max assignment. 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.
While both material and command drops can utilize any of the Default config options listed above, there are two instances where special config options are available.
There are several placeholders available which you can use when combined with a customCommand:
drop to fill in certain necessary dynamic inputs within a command.
Config Line Option | Description |
---|---|
%mob-lvl% |
This represents the killed entity's level. |
%player% |
This represents the player who killed the entity. |
%displayname% |
This represents the killed entity's CustomName field. |
%entity-name% |
This represents the killed entity's EntityType. |
%entity-max-health% |
This represents the killed entity's maximum health, exactly. |
%entity-max-health-rounded% |
This represents the killed entity's maximum health, rounded to nearest whole number. |
%mob-scale% |
This multiplies the configured mob-scale: by the mob level and produces a value. |
%mob-scale-rounded% |
This multiplies the configured mob-scale: by the mob level and produces a value, which is rounded. |
%wg_region% |
This represents the WorldGuard region where the entity died. |
%world% |
This represents the world name where the entity died. |
%X% %Y% %Z%
|
This represents the three coordinate points for the location of the entity's death. |
# As of LM 3.13.0 b793, PLAYER_HEAD is no longer available.
# Refer to note below.
- PLAYER_HEAD:
mobhead-id: ''
mobhead-texture: ''
- MATERIAL:
- ENCHANTED_BOOK:
enchantments:
ENCHANTMENT: X
- customCommand:
command: ''
command: ['', '']
ranged_A: ''
ranged_B: ''
name: ''
You can specify a PLAYER_HEAD block drop with it's own texture, using the UUID under mobhead-id:
AND the TEXTURE value under mobhead-texture:
. When using 3rd party custom-drops which utilize the PLAYER_HEAD material, you may use mobhead-texture: 'none'
to prevent the texture from being changed by LevelledMobs, inheriting the texture from the 3rd party plugin provider. You can search online for 'minecraft player head database' to find appropriate values. While specifying both is good practice for redundancy, you are only required to specify one or the other to utilize the feature.
It has been replaced with a HeadDatabase compatibility included in our official LM_Items plugin. In order to make the transition smoothly, here is an example of how to convert your PLAYER_HEAD
into - HeadDatabase:
.
# Original Method:
# https://minecraft-heads.com/custom-heads/humanoid/61942-demon-helmet
- PLAYER_HEAD:
mobhead-id: '56dffd7e-58c8-42ac-89df-48883a54636a'
mobhead-texture: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDU0MzM5NWYxOTU3Y2IzMzljMzA5ZjY5NWVkYjE1ZDgyOTNiNDA1ZWYyNjllZDcwYmY5YzhiNzdhNTUzZDc5ZiJ9fX0='
amount: 1
chance: 1.0
# New Method (Requires LM_Items Addon)
- HeadDatabase:61942:
amount: 1
chance: 1.0
Now, instead of providing the mobhead-id
and mobhead-texture
, you supply the skull ID number from Minecraft Heads, which is provided in the URL of the skull which you select.
For example, the url https://minecraft-heads.com/custom-heads/humanoid/61942-demon-helmet
would have the ID 61942
.
MATERIAL drops gather their config options from the Defaults section listed above. Any config option listed there can be used within any MATERIAL, PLAYER_HEAD, or customCommand drop. 'customCommand:' tells CD that you wish to setup a command to process like a drop for an EntityType. 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%'.
ENCHANTED_BOOK is a special type of MATERIAL drop which will enable anvil-ready enchanted books by utilizing the enchantments:
config option.
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.
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!
LM has listed all vanilla entities as of Minecraft 1.17 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.
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.
Remember: Any configuration option not specified in the Drop Tables will collect those values from your Defaults.
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/
- π₯ Compatibilities
- π Installation
- π Commands
- π©ββοΈ Permissions
- πββοΈ Frequently Asked Questions
- π LevelledMobs 4.0 Wiki
- π§ Settings (settings.yml)
- π Rules (rules.yml)
- β Custom Drops (customdrops.yml)
- π¬ Messages (messages.yml)
- π Official Config Translations
- π Unofficial Config Translations