Skip to content

Sample Custom Rules

UltimaOath edited this page Sep 6, 2022 · 24 revisions
This page was last updated for LevelledMobs 3.6.7 b676

Sample Custom Rules

Below are examples of different custom rules which you can apply to your own file for different unique effects! These are just the skeletons, so feel free to modify them to your liking. Almost anything is possible if you can imagine it!


Custom Ender Dragon Levelling

  - enabled: false
    name: 'CR - Ender Dragon Fight'
    use-preset: average_challenge
    conditions:
      worlds:
        allowed-list: ['world_the_end']
      entities:
        allowed-list: ['ENDER_DRAGON']
    apply-settings:
      minLevel: 25
      multipliers:
        custom-mob-level:
          ENDER_DRAGON:
            max-health: 3.0
            attack-damage: 1.0

Once enabled, utilizing the preset average_challenge, limiting the rule to both the world_the_end and the ENDER_DRAGON itself. This tells the Ender Dragon to use a minLevel: 25, which when using the average_challenge, is considered the maxLevel: as well. Then we apply custom multipliers specifically for the ENDER_DRAGON, adjusting it's max-health: and attack-damage:, while still utilizing the default multipliers set in the average_challenge preset, along with any potential tiered coloring required.


Boss-Bar Style Nametag using Health Indicators

  - enabled: false
    name: 'CR - Boss Bar'
    use-preset: allowed_worlds, nametag_using_indicator
    apply-settings:
      health-indicator:
        scale: 2
        max: 10
      nametag: '%health-indicator%'

Once enabled, this will alter the nametag: of an entity to display only the health-indicator: style. This custom rule uses the presets to specify both the allowed_worlds and collect the coloring and indicator details from nametag_using_indicator. This rule will work with any difficulty setting, however it does assume that you are using the average_challenge when setting the scale:. Using LM's default difficulty settings, it would be recommended to use a scale: 1 for basic_challenge and scale: 4 for advanced_challenge.


Night Time Difficulty Increase

  - enabled: false
    name: 'CR - Difficulty Increase at Night'
    use-preset: allowed_worlds, advanced_challenge
    conditions:
      apply-above-y: 62
      world-time-tick: ['13000-24000']
    apply-settings:
      minLevel: 25

Once enabled, this will increase the difficulty of the entities spawned at night, from the onset of night to the cusp of dawn. This also only applies to the entities above y=62 so that those entities might die when the sun comes up. This also restricts those entities to a level between 25-50, based on the default settings for the advanced_challenge preset.


Deny Levelling in Specific Biomes

  - enabled: false
    name: 'CR - NoLevel Biomes'
    conditions:
      worlds:
        allowed-list: ['world_nether']
      biomes:
        allowed-list: ['NETHER_WASTES']
    apply-settings:
      maxLevel: 0

Once enabled, this custom rule will prevent entities from levelling when located within the world: world_nether, and the biome: NETHER_WASTES. A simple and easy to implement rule!


Customized Entity Name Based On Level

  - enabled: false
    name: 'CR - Level Dependent Zombie Custom Names'
    use-presets: allowed_worlds
    apply-settings:
      entity-name-override:
        1-5:
          ZOMBIE: ['Teething %displayname%']
        6-10:
          ZOMBIE: ['Scratching %displayname%']
        11-20:
          ZOMBIE: ['Biting %displayname%']
        21-25:
          ZOMBIE: ['Hunting %displayname%']
        BABY_ZOMBIE: ['Baby Undead']

Once enabled, this custom rules uses a special feature of the entity-name-override: which allows you to specify the level range which a custom name would apply. This scale presumes you are using the average_challenge preset, but all can be adjusted! You can also add conditions, such as biome limitations, which would allow you to further customize!


Nerfed Spawner Cube Entities

  - enabled: false
    name: 'CR - Nerfed Spawner Cubes'
    priority: 1
    use-preset: allowed_worlds
    conditions:
      allowed-spawn-reasons:
        allowed-list: ['SPAWNER']
    apply-settings:
      entity-name-override:
        all_entities: 'Spawned %displayname%'
      multipliers:
        max-health: 0.0 # For Farming
        armor-bonus: 0.0
        armor-toughness: 0.0
        xp-drop: 0.0

Once enabled, this custom rules will level entities that are generated from Spawner Cubes the same as any other on the server, except for their health not changing (their damage will still increase!). This also adds the Spawned prefix to their names, making them easier to locate.


NBT-API | Startled Creepers!

  - enabled: false
#   This rule requires the soft-dependency NBT-API to function!
#   Make sure you have it installed prior to enabling this rule!
    name: 'CR - NBT - 20% Startled Creepers, Short Fuse'
    use-preset: allowed_worlds
    conditions:
      chance: 0.2
      entities:
        allowed-list: ['CREEPER']
    apply-settings:
      nbt-data: '{Fuse:2,Attributes:[{Name:"generic.follow_range",Base:1f}]}'
      entity-name-override:
        CREEPER: ['Startled %displayname%']

This custom rule requires the soft-dependency NBT-API to function! Once enabled, this rule will apply nbt-data: to the CREEPER entity. This applies at a chance: 0.2, or 20%. It will also change the Creeper's name to Startled Creeper, distinguishing them from normal CREEPER'S. The nbt-data: listed will adjust the CREEPER'S fuse duration to half a second, and make it so that they can not see the player until they are within about two blocks from them. This is where the concept of a 'startled' creeper came about!


Using Drop-Tables with Custom Rules

 - enabled: true
   name: 'Drop Tables for LVL1-12'
   conditions:
     entities:
       allowed-list: ['ZOMBIE', 'SKELETON', 'HUSK', 'DROWNED']
     minLevel: 1
     maxLevel: 12
   apply-settings:
     use-droptable-id: basic_weapons_table, basic_armor_table

 - enabled: true
   name: 'Drop Tables for LVL13-24'
   conditions:
     entities:
       allowed-list: ['ZOMBIE', 'SKELETON', 'HUSK', 'DROWNED']
     minLevel: 13
     maxLevel: 24
   apply-settings:
     use-droptable-id: average_weapons_table, average_armor_table

 - enabled: true
   name: 'Drop Tables for LVL25'
   conditions:
     entities:
       allowed-list: ['ZOMBIE', 'SKELETON', 'HUSK', 'DROWNED']
     minLevel: 25
   apply-settings:
     use-droptable-id: extreme_weapons_table, extreme_armor_table

You can use the use-droptable-id: system as an apply-settings: config option which will allow you to build a loot table within the customdrops.yml file, and then set any number of conditions: within the Rules system to apply these tables in a more unique way than what the Custom Drops system can provide alone.


Using Custom Variables with Placeholder API (PAPI) and Player Level Modifier

 - enabled: true
   name: 'Player Level Modifier using Statistic and Math Modules'
#  This rule requires the soft-dependency PlaceholderAPI to function!
#  Make sure you have it installed prior to enabling this rule!
   strategies:
     player-levelling:
       match-level: true
       use-player-max-level: false
       decrease-level: true
       player-level-scale: 1.0
       level-cap: 25
       tiers:
         1-15: 1-10
         16-30: 11-20
         31-45: 21-25
       variable: '%math_({statistic_damage_dealt}-({statistic_damage_taken}*5))/1000%'

This system allows you to modify an entities' level based on some variable produced by the nearest player to the entity. By default this is the vanilla Minecraft level of the player, however in this example we combine two PlaceholderAPI modules to produce higher entity levels when the player deals more damage, and will reduce the level if the player begins to take damage. To use the variable: above, after downloading and installing PlaceholderAPI, you need to perform /papi ecloud download Math, /papi ecloud download Statistic, and then /papi reload to access those modules.

This version of this variable states that it will take the damage the player deals to mobs, subtract five times the amount of damage that the player has received from any source, and then divide that total by 1000. This produces a small number which will grow gradually over time if the player deals out the damage, but will reduce itself more if the player begins to take damage.

Clone this wiki locally