# Commands and Permissions

<details>

<summary><strong>/lm debug</strong></summary>

To understand your *set-debug* options, refer to the [Debugging](https://arcaneplugins.gitbook.io/levelledmobs-the-ultimate-mob-levelling-solution/levelledmobs-v4.0/debugging) section of the wiki.

* `/lm debug chunk-kill-count reset` \
  Resets chunk kill count system to zero.
* `/lm debug create-zip` \
  Provides method to create a debug zip file for developers to review. Requires `confirm` statement to perform.
* `/lm debug damage-debug-output <enable/disable>` \
  Controls the output of the debug output on entity damage system.
* `/lm debug disable` \
  `/lm debug disable-all` \
  Disables the **Debug** system output.
* `/lm debug enable <set-debug>` \
  Enables a singular *debug filter* which will respect any `filter-results` settings.
* `/lm debug enable-all` \
  Enables all *debug filters* which will respect filter-results except for *set-debug*.
* `/lm debug enable-timer <time>` \
  Enables the **Debug** system for a set period of time which will respect any `filter-results` settings.&#x20;
* `/lm debug filter-results`&#x20;
  * `... clear-all-filters` \
    Clears any established `filter-result` settings, resetting to default state.
  * `... listen-for <both|success|failure>` \
    Establish how **Debug** will consider the output of any *set-debug* option based on whether the event *succeeded*, *failed*, or if *either* occurred.&#x20;
  * `... set-debug <add|clear|remove> <set-debug>` \
    Establish what **Debug** options will be considered. You can *add* or *remove* a *set-debug*, or *clear* all values for *set-debug* filter.
  * `... set-distance-from-players <distance>` \
    Establish how far away from any player the activated **Debug** options will listen for mobs to conduct any activated debug options measured in blocks.
  * `... set-entities <add|clear|remove> <entity>` \
    Establish what mobs will be considered. You can *add* or *remove* a mob, or *clear* all mobs from the filter.
  * `... set-players <add|clear|remove> <player>` \
    Establish what players around which the debug will be performed. If no player specified, the command initiator will be the player used. You can *add* or *remove* a player, or *clear* all players from the filter.
  * `... set-rules <add|clear|remove> <rule>` \
    Establish what rules will be listened for when they are processed, either failed or successful. You can *add* or *remove* a rule, or *clear* all rules from the filter.
  * `... set-y-height <clear|max-y-height|min-y-height> <height>` \
    Establish a min or max Y-Height, restricting the **Debug** options to the height range.
* `/lm debug lew-clear` \
  Clears the LivingEntityWrapper \[LEW] class.
* `/lm debug lew-debug` \
  Outputs the current LivingEntityWrapper \[LEW] state.
* `/lm debug my-location` \
  Outputs the current exact coordinates of the player performing command.
* `/lm debug nbt-dump` \
  Outputs into console all NBT data stored on the mob which is readable.
* `/lm debug output-debug <to-both/to-chat/to-console>` \
  Change the default output mechanism of debug information. It is recommended to leave this set to `to-console`.&#x20;
* `/lm debug show-customdrops`\
  Outputs the currently registered custom drops stored within the LevelledMobs system.
* `/lm debug show-pdc-keys <console>` \
  Outputs into consolle all PDC keys stored on the mob which is readable.
* `/lm debug show-plugin-definitions` \
  Outputs all currently recognized `externalplugins.yml` defintions, as well as any internally `built-in` definitions.
* `/lm debug spawn-distance` \
  Outputs the players exact distance measured in blocks from spawn.
* `/lm debug view-debug-status` \
  Outputs whether the Debug system is currently active, and what is currently being listened for.
* `/lm debug view-queues` \
  Outputs the current queue count for the LM-Nametag and LM-Levelling processing streams.

</details>

<details>

<summary><strong>/lm info</strong></summary>

**LevelledMobs v4**\
\&#xNAN;*The Ultimate Mob Levelling Solution*

Maintainers: Penalbuffalo, lokka30, and UltimaOath\
Check [Developers and Contributors](https://arcaneplugins.gitbook.io/levelledmobs-the-ultimate-mob-levelling-solution/credits-and-misc/developers-and-contributors) for more details!

</details>

<details>

<summary><strong>/lm kill</strong></summary>

* `/lm kill all`&#x20;
  * `... <world> <flag>` \
    When killing *all* mobs, you can specify what *worlds* or additional *flags* you want to apply to the kill-all command. \
    The `flag` setting refers to possible flags to add ot the kill-all.
    * `/nodrops`   |   Will not cause the entities' drops to happen when they are killed.
    * `/levels <range>`   |   Will limit the kill command to the specified level range.
* `/lm kill near <amount>` \
  Kills all levelled mobs within the specified blocks of the player.

</details>

<details>

<summary><strong>/lm reload</strong></summary>

Performs a reload of the LevelledMobs plugin, including reprocessing the configuration files.

</details>

<details>

<summary><strong>/lm rules</strong></summary>

* `/lm rules force-all` \
  Force LevelledMobs to perform a reload, and then to reprocess all loaded mobs to ensure they are matching the latest rules and settings.
* `/lm rules <help-discord|help-wiki>` \
  Provides links to the Support Discord and the LevelledMobs4 Wiki.
* `/lm rules reset <challenge>` \
  Provides an easy to use reset mechanism which allows you to preset the enabled difficulty of the default rules configuration file. Requires `confirm` statement to perform.
* `/lm rules show-all <console>` \
  Will output all registered **Presets**, **Default Rule**, and **Custom Rules**. Adding `console` to the end of the command will instead output the results to console (recommended, many lines of text).
* `/lm rules show-effective <console> <looking-at>` \
  Will output the effective rules of the nearest mob to the player within ten blocks. Adding `console` to the end of the command will instead output the results to console (recommended, many lines of text). Adding `looking-at` to the end of the command will limit the commands' reach to whichever mob you were looking at with your crosshairs.
* `/lm rules show-rule <rule> <console>` \
  Will output the details registerred by LevelledMobs concerning the specified `rule`. Adding `console` to the end of the command will instead output the results to console (recommended, can be many lines of text).
* `/lm rules show-temp-disabled` \
  If a **Custom Rule** has been disabled due to a *cooldown* condition, it will be listed here.

</details>

<details>

<summary><strong>/lm spawner</strong></summary>

* `/lm spawner create` \
  This is the start of the LevelledMobs Spawner creator. It requires at minimum the `/minlevel`, `/maxlevel`, and `/spawntype` flags for the Spawner to function.\
  You can also reference the `/name` flag of the spawner in the **Rules** file via the `spawner-name:` condition.\
  You can append any number of flags listed below to the end of the command, in any order.
  * `/minlevel <amount>` \
    The min-level of any mob spawned from this spawner.
  * `/maxlevel <amount>` \
    The max-level of any mob spawned from this spawner.
  * `/name <name>` \
    The name of the spawner cube for use in **Rules** file.
  * `/lore <text>` \
    Add lore to any item that can accept lore. To add a newline, use `\n`.
  * `/nolore`\
    Removes the lore from the item.
  * `/customdropid <id>` \
    Add a `drop-table` from the **Custom Drops** system.
  * `/spawntype <entity>` \
    The mob which this spawner will spawn.
  * `/delay <amount>` \
    Sets the spawners' delay, measured in ticks.
  * `/maxnearbyentities <amount>` \
    Sets the maximum number of spawned entities which can be within the spawning range of the spawner.&#x20;
  * `/minspawndelay <amount>` \
    Sets the minimum spawner delay, measured in ticks.
  * `/maxspawndelay <amount>` \
    Sets the maximum spawner delay, measured in ticks.
  * `/requiredplayerrange <amount>` \
    Sets the minimum distance the player must be from the spawner for it to activate.
  * `/spawncount <amount>` \
    Sets the number of mobs which will spawn at each successful spawn event.
  * `/spawnrange <amount>` \
    Sets the maximum distance away from the spawner cube that mobs will be spawned.
  * `/giveplayer <player>` \
    Gives the set player one of the created spawners. If no player specified, will be given to the command executor.&#x20;
* `/lm spawner info <on|off>` \
  Displays information about LevelledMobs Spawner Cubes when right clicked and set to `on`. When `off`, no information will be sent.
* `/lm spawner copy <on|off>` \
  Will duplicate the LevelledMobs Spawner Cube when right clicked and set to `on`. When `off`, no copy will be produced.&#x20;

</details>

<details>

<summary><strong>/lm spawner-egg</strong></summary>

* `/lm spawner-egg` \
  This is the start of the LevelledMobs Spawner-Egg creator. It requires at minimum the `/minlevel`, `/maxlevel`, and `/spawntype` flags for the Spawner-Egg to function.\
  You can append any number of flags listed below to the end of the command, in any order.
  * `/customdropid <name>` \
    The unique name of a drop-table from the Custom Drops section; adding the drop table to the mobs created from the spawner-egg.
  * `/entity <entity>` \
    The mob which this spawner-egg will spawn.
  * `/giveplayer <name>` \
    Will instead give the egg(s) being created to the specified player, rather than the command performer.
  * `/lore <content>`\
    Will add lore to the spawner-egg item. Separate lines with `\n`.
  * `/maxlevel <amount>`\
    The max-level of any mob spawned from this spawner-egg.
  * `/minlevel <amount>`\
    The min-level of any mob spawned from this spawner-egg.
  * `/name <name>`\
    A name given to the egg item.
  * `/nolore`\
    Will remove any lore lines on the egg item.

</details>

<details>

<summary><strong>/lm summon</strong></summary>

* `/lm summon`\
  This is the start of the LevelledMobs Summon command.
  * `... <amount> <entity> <level> ...`\
    These options populate the middle part of the command. It allows you to specify first the amount of the mobs you want to summon, up to a cap of ten at a time. Then you select the mob type which will be summoned. Finally, you would set the level that would be applied to this mob. The mob will process itself like any other `/summon` mob, however with it's Spawn Reason changed to `LM_SUMMON` and it's level value  locked regardless of changes in Rules which do not apply explicitly to `LM_SUMMON` mobs.&#x20;
  * `... ... at-location <x> <y> <z> <world>`\
    After specifying the amount, mob, and level of the mob, we can specify that the mob be spawned at a specified set of coordinates in a specified world.
  * `... ... at-player <name>`\
    After specifying the amount, mob, and level of the mob, we can specify that the mob be spawned at a specified player's coordinates, or very nearby that player.
  * `... ... here`\
    After specifying the amount, mob, and level of the mob, we can specify that the mob be spawned at the command executors' position or very nearby.

</details>
