# Bloodmoon Advanced

Welcome to bloodmoon advanced!

![](/files/-M-gDTR43AhG5vMfiBU9)

## Welcome to the Bloodmoon Advanced Plugin docs!

Here you can find everything you need in order to configure and understand the bloodmoon plugin. After your verified your purchase with one of our admins, you may ask for premium support.

In case of any questions, reach out to us on our support discord channel.

[Click here to join our discord channel](https://discord.gg/KJ3kYX9)

### Features

Below you can find a small list of all the features. For a full list of features, read the docs. Nearly all of the options are configurable and this list will only increase.

### **Mythic mobs supported**

* Custom mobs (name, health, speed, much more ...) **including mythic mobs**!
* Custom items (display names, drop chances, ...)
* Configure percentages for bloodmoon to occur
* Multiple worlds are possible!
* Add custom time based life cycles to custom mobs
* Custom actions with choosen commands or pre-configured world events (teleports, dashes, etc)
* Mob in blocks, when mining a certain block during bloodmoon, custom mobs might spawn
* During bloodmoon, harvesting might fail
* Traveling through portals is not possible during bloodmoon
* Sleeping is not possible during bloodmoon
* Thanks to the smart auto complete, creating new mobs, items , ... was never that easy!
* Bell warning: When a bloodmoon is scheduled, you can hear the clocks far far away ... the next night, will be a bloodmoon ...
* Custom resource pack with red moon!
* All messages are configurable!
* Run custom commands upon start and end!
* Configurable difficulty during bloodmoon
* Configurable sounds and effects for despawning mobs
* Configurable lightning strikes on or near the player during a thunderstorm
* Increase or decrease the spawn limit per chunk during the bloodmoon
* ...

And so much more to discover!&#x20;

### Supported integrations

![](/files/-M2eIlXIxqFdf0qowzY3)

![](/files/-M2eJC50tSVjp9X4XkfL)

![](/files/-M2eJMZwUTZI13_hgbEU)


# ❓FAQ

Frequently Asked Questions

### Bloodmoon is not starting in my world?

Please make sure you have added your world name in the [config.yml](/configs/config.yml) in the enabled worlds section.

### Can I disable mobs?

Yes you can! In [mobs.yml](/configs/mobs.yml) you can set the percentage to `0.0` to disable the spawning.

### Can I use portals during a bloodmoon?

As a server owner, you can configure if you want portals to be disabled.

### Can I use beds during a bloodmoon?

No! You are you too afraid of the monsters and they **will** get you in your sleep!

### There are too many mobs spawning, how can I change this?

In the config.yml, there is a property called "**monster-spawn-limit**". This property defines the maximum amount of mobs during the bloodmoon in one Chunk. You can reduce this property and \
type */bloodmoon reload* to reload the config files.

### My bell warning is not working

The bell warning is using the bell sound which is available as of version 1.14.

### I get a warning "About a newer config version"

This means that your plugin version is not matching with the config version. In that case it means you are missing some new properties in the config file. In that case you can try to remove your old config or copy it directly from our docs section.


# Enable bloodmoon for your world

By default, the bloodmoon will only run for worlds that were configured. This guide will tell you exactly how to enable the bloodmoon for your world.

## Getting started

Open your [config.yml](/configs/config.yml) . Look for a config property "enabled-worlds". Add your world in the list.

```yaml
enabled-worlds:
  - world
  - myworld
```

Save your config file.

now type **/bloodmoon reload** to reload all the configuration files. Your world will now be enabled for the bloodmoon event.


# How to use commands in console

You can now execute some commands in your console without having to be on the server! This allows more customizations to your bloodmoon server.

To use commands in console, you need to include the **worldname**. In most console-setups you don't need to use `/` before the command. Available commands below:

```
bm start <world> - starts a bloodmoon
bm stop <world> - stops current bloodmoon
bm next <days> <world> - schedules the next bloodmoon
bm cancel <world> - cancels the next schedule
```

<figure><img src="/files/WHgIYIDNN7XT1TRnxZz8" alt=""><figcaption></figcaption></figure>


# Use custom sounds

NEW FEATURE! Use non-existing Minecraft sounds in a bloodmoon event

{% hint style="danger" %}
**Requirement**: A clientbased/serverbased resourcepack
{% endhint %}

You can now use your very own sounds to spice things up in bloodmoon. This creates endless possibilities when a bloodmoon starts, when a mob dies and so on.

To use the custom sound, add the resourcepack to your server or client (depending on if its **singleplayer** or **multiplayer**). Then add the sound name inside Bloodmoon Advanced **config.yml.**

Reload the plugin with `/bm reload` and the sound will activate depending on which event you added the sound to. Make sure to check console for any errors. The errors might give you an indication if the soundname is wrong, or if the file is corrupted.

*Check out the example from our showcase:* [*https://www.youtube.com/watch?v=thyLYDtakto*](https://www.youtube.com/watch?v=thyLYDtakto)

### Minecraft sounds

You can still customize your bloodmoon server with already existing Minecraft sounds. These do not require a resourcepack.

A complete list of available sounds can be found here: <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html>


# Commands & Permissions

An overview of the general commands and their permission node

### About

Bloodmoon advanced has a series of several objects such as mobs, items, signs , etc ... Other then that, there are some general commands and permissions. Below is an overview of all the general commands and their permission node.

| Command                    | Permission                    | Description                                                                     |
| -------------------------- | ----------------------------- | ------------------------------------------------------------------------------- |
| /bm start                  | bloodmoon.start               | Start a bloodmoon                                                               |
| /bm stop                   | bloodmoon.stop                | Stop a bloodmoon                                                                |
| /bm schedule               | bloodmoon.schedule            | Schedule a bloodmoon                                                            |
| /bm cancel                 | bloodmoon.cancel              | Cancel a scheduled bloodmoon                                                    |
| /bm reload                 | bloodmoon.reload              | Reload the config file                                                          |
| /bm say                    | bloodmoon.say                 | Broadcast a message with bloodmoon prefix                                       |
| /bm version                | bloodmoon.version             | Show the running version of bloodmoon                                           |
| /bm help                   | bloodmoon.help                | Show the help menu                                                              |
| /bm next \[amount of days] | bloodmoon.next                | Schedule a bloodmoon                                                            |
|                            | bloodmoon.bypass.sleep        | Allow you to sleep during the bloodmoon even if it is not allowed in the config |
|                            | bloodmoon.bypass.use-portals  | Allow you to use portals even when the bloodmoon is running                     |
|                            | bloodmoon.bypass.blocked-cmds | Bypass the blocked commands during the bloodmoon                                |


# Introduction

Introduction to schedules

### What are schedules?

Bloodmoon schedules can be used to define how often a bloodmoon should occur. You can modify the amount of days between a bloodmoon.

There is also messages announcing whether there will be a bloodmoon or not, and in how many days. Configurable by the server administrator, they can also configure how many percentage it will actually result in a bloodmoon.

The messages for this are also fully configurable.

![](/files/-MCwv6ga5FbXkYdG1Ok1)


# Commands

An overview of the commands

### Available commands

| Command                                               | Permission                | Description                                           |
| ----------------------------------------------------- | ------------------------- | ----------------------------------------------------- |
| /bloodmoon schedule create \[world]                   | bloodmoon.schedule.create | Create a new schedule                                 |
| /bloodmoon schedule remove \[world]                   | bloodmoon.schedule.remove | Remove a schedule                                     |
| /bloodmoon schedule info \[world]                     | bloodmoon.schedule.info   | Show the current information for a bloodmoon schedule |
| /bloodmoon schedule set \<property> \<world> \<value> | bloodmoon.schedule.set    | Set a specified property for a given schedule         |
| /bloodmoon schedule list                              | bloodmoon.schedule.list   | Show a list of all bloodmoon schedules                |

{% hint style="info" %}
the **\[world]** indicates an optional parameter for a world name. If not specified, the current of the player executing the command will be used.
{% endhint %}


# Properties

Overview of all schedule properties

Properties are settings that can be configured specific for one bloodmoon schedule. Below you can find an overview of all the properties, and their purpose.

**You can set a property by using the following command**

```
/bloodmoon schedule set <property> <world> <value>
```

| Property      | Values     | Description                                                                                                                                |
| ------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| broadcast     | true/false | Broadcast the days left or tonight bloodmoon message                                                                                       |
| chance        | comma      | Amount of percentage for a bloodmoon to occur                                                                                              |
| days          | number     | Amount of days before the bloodmoon should occur                                                                                           |
| random-days   | true/false | <p>When enabled, bloodmoon will automatically generate a random number</p><p>between the given 1 and the given amount of days property</p> |
| days-left-msg | Text       | Set the days left message                                                                                                                  |
| tonight-msg   | Text       | Set the tonight message                                                                                                                    |


# Introduction

Introduction to bloodmoon signs

### What are bloodmoon Signs

Bloodmoon signs can be used to trigger certain actions in your world by interacting with a sign. These bloodmoon signs can be restricted for creating, using and destroying based on permissions.

### How to use Bloodmoon signs

Bloodmoon signs can be created by putting **\[bloodmoon]** on the first line.

![Example sign](/files/-M4Ufg0_y2lpnI_lef8S)

### Permissions

Permissions are based on the action, and the type of sign the user is working with. There are 3 types of sign permissions:

* create
* destroy
* use

| Permission                | Description                                              |
| ------------------------- | -------------------------------------------------------- |
| bloodmoon.sign.create.\*  | Allow the player to create a bloodmoon sign              |
| bloodmoon.sign.destroy.\* | Allow the player to destroy all types of bloodmoon signs |
| bloodmoon.sign.use.\*     | Allow the player to use all types of bloodmoon signs     |

{% hint style="info" %}
You can provide individual access to certain signs by giving them the appropriate permission node. Example: **bloodmoon.sign.create.start** , will allow the player to create a start sign.
{% endhint %}

### Exceptions

In some cases, the permission node might go more specific. For example the "item" sign expects a third line containing the name of the item. Permissions can be used to restrict that.

In order to allow users to use all item signs, use **bloodmoon.sign.use.item.\***.


# Overview

An overview of all bloodmoon signs availabl

### All available signs

Below you can find a list of all available signs and their usage.

| Line 1       | line 2  | Line 3       |
| ------------ | ------- | ------------ |
| \[bloodmoon] | start   |              |
| \[bloodmoon] | stop    |              |
| \[bloodmoon] | next    |              |
| \[bloodmoon] | cancel  |              |
| \[bloodmoon] | butcher |              |
| \[bloodmoon] | item    | \<item-name> |

{% hint style="info" %}
More explanation on signs can be found [here](/signs/introduction)
{% endhint %}


# Introduction

Quick and simple introduction to the bloodmoon mobs.

![](/files/-M-kwbYIolCrkeBQSSFQ)

### What are custom mobs?

Custom mobs are configurable mobs that allow you to completely personalize mobs including name, health, speed, etc ...

### How to define a custom mob

If we take a look in the [mobs.yml](/configs/mobs.yml), we can take the following example:

```yaml
mobs:
  reinforced-creeper:
    type: CREEPER
    name: '&cReinforced &2Creeper'
    percentage: 40.0
    health: 20.0
    speed: 0.3
    explosion-radius: 6
    lifecycle: reinforced-creeper
```

We have a custom mob named "**reinforced-creeper**". The **type** of that mob is **CREEPER**, the **speed** is **0.3** with a **health** of **20**.&#x20;

You can also see , it has a property "explosion-radius". If we take a closer look at this property, we can see that this property is specific to certain mob types only. In this case, it's only for the mob type CREEPER.

{% hint style="info" %}
You can read more about properties by clicking [here](/mobs/properties)
{% endhint %}

### Creating a mob using a command

The recommended way of creating mobs is using the commands. This will add all the necessary properties with default values.

#### Example&#x20;

```yaml
/bloodmoon mob create harrythebee BEE
/bloodmoon mob set name harrythebee &4harry
```

The above command will create a new custom mob with id "**harrythebee**". The second command will set the display name of the mob to a **custom name** "Harry".

{% hint style="info" %}
You can read more about mob commands by clicking [here](/mobs/commands)
{% endhint %}


# Properties

Configuring properties for custom mobs

Properties are settings that can be added to custom mobs. A mob property may be related to one or more mob types.

**You can set a mob property by using the following command:**

```
/bloodmoon mob set <property> <mobname> <value>
```

### Available properties

| Property        | Values     | Mob Type              | Description                                                 |
| --------------- | ---------- | --------------------- | ----------------------------------------------------------- |
| name            | any text   | all                   | Sets the display name of the mob                            |
| size            | numeric    | slime, magma cube     | Sets the size of the mob                                    |
| spawnchance     | comma      | all                   | Sets the chance for spawning the mob                        |
| powered         | true/false | creeper               | Sets a creeper to a charged state                           |
| lifecycle       | lifecycle  | all                   | Sets a life-cycle of a custom mob                           |
| health          | comma      | all                   | Sets the health of a custom mob                             |
| glowing         | true/false | all                   | Sets a glow effect on the custom mob                        |
| explosionradius | numeric    | creeper               | Sets the explosion radius of a custom creeper               |
| baby            | true/false | zombie, wolf, etc ... | Sets the custom mob as a baby                               |
| angry           | true/false | wolf                  | Sets the custom mob to spawn angry                          |
| damage          | comma      | all                   | Sets the damage done by the mob                             |
| boss            | true/false | all                   | Indicates if the mob is a boss or not                       |
| mythicmob       | any text   | all                   | Set the entity to be replaced with the specified mythic mob |
| surface-spawn   | true/false | all                   | Force the mob to spawn on the surface                       |


# Commands

A short but descriptive list with all the commands for custom mobs.

#### Available commands

| Command                                          | Permission             | Description                                    |
| ------------------------------------------------ | ---------------------- | ---------------------------------------------- |
| /bloodmoon mob create \<mob> \<entity type>      | bloodmoon.mob.create   | Create a new mob using the given name and type |
| /bloodmoon mob remove \<mob>                     | bloodmoon.mob.remove   | Delete a custom mob with the given name        |
| /bloodmoon mob spawn \<mob>                      | bloodmoon.mob.spawn    | Spawn a custom mob with the given name         |
| /bloodmoon mob set \<mob> \<property> \<value>   | bloodmoon.mob.set      | Set a specified property for a given mob       |
| /bloodmoon mob add-drop \<mob> \<item> \<chance> | bloodmoon.mob.add-drop | Adds a given item as drop                      |
| /bloodmoon say \<message>                        | bloodmoon.say          | Announce a message with the bloodmoon prefix   |
| /bloodmoon mob list                              | bloodmoon.mob.list     | Show a list of all bloodmoon mobs              |

{% hint style="info" %}
See [Properties](/mobs/properties) for available properties
{% endhint %}

{% hint style="info" %}
The argument \<item> is an user defined [item](/items/commands).
{% endhint %}


# Spawn mechanics

A detailed explanation of how the spawn mechanic works

### Flow

As one of our targets was to maintain a natural spawning and not a sudden surprise mob spawning behind you, we came up with a solution that would maintain natural mob spawning but with additional custom mobs included.

We came up with the solution to replace mobs that are spawned by Minecraft with our custom mobs. When a mob is spawning, an extended flow of conditions will execute. Based on the outcome of the condition, we might replace the original mob with a custom mob or keep the mob that was originally spawned.

![](/files/-M-fxgVf6JVEjFaoYCIv)

### Mob registration

Every custom mob that is spawned will be registered on the blood-moon. Whenever the blood-moon ends, all the custom mobs will automatically despawn.

### Custom mob spawning

The custom mob spawning allows the plugin to spawn mobs in a radius around the player with a given minimum and maximum radius. Mob spawning does completely ignore natural spawning and therefore it will also spawn mobs in places that have high light levels.

The server administrator can configure the maximum amount of mobs within a single chunk. By default, this feature is disabled.

```yaml
spawning:
  enabled: false
  min-radius: 20
  max-radius: 80
  mobs-per-chunk: 20
```


# Boss

Explaining the mechanics of the boss

### What is a boss?

Any custom mob can be marked as a boss by setting the boss flag to true. The spawn mechanics remain the same. The main difference between a boss and a regular mob is that one bloodmoon can have only 1 boss.

### **Using the boss bar**

As soon as the boss has been spawned, the boss bar (if enabled) will show the name of your boss. The bar itself will also show the total health of the boss. When the  boss is getting damaged, the bar will drop.

### **How to find the boss?**

There are several methods of finding the boss. The most difficult method is luck. The easiest solution is by using the "**Pathfinder**".

### What is the pathfinder?

The pathfinder is an item using the compass material. While having the compass in your hand, if you right click, the compass display a path to the boss. The compass itself will also point towards the boss. By following the trail, you will find the boss.

![](/files/-M2SqV-XIoyNy1-0AV-5)

![](/files/-M2SqkyhVDYv2D5pxN53)

### Retrieving the pathfinder

The pathfinder can be retrieved by typing the following command:

```
/bm item give pathfinder 1 mrgeneralq
```

In order to use the pathfinder, you will need the following permission:

```
bloodmoon.compass        #permission to make compass point towards boss
bloodmoon.pathfinder     #permission to make trail become visible
```


# Mythic mobs

Integration with Mythic Mobs

![](/files/-M2eIlXIxqFdf0qowzY3)

## How to hook mythic mobs to bloodmoon

Bloodmoon has a soft dependency with Mythic mobs. That means that Mythic Mobs is not required to be installed in order to run Bloodmoon advanced.

If you have Mythic mobs installed, it will automatically hook with Bloodmoon advanced.

### How to link a custom bloodmoon mob to mythic mob

In order to use a mythic mob, you first need to create a custom mob. The custom mob will only be used\
for defining things like spawn chance, boss and life cycles.You choose any mob type you want, as this will be overwritten by mythic mobs.

1. create a custom mob with any name of your choice (you can use the same as the mythic mob)

```bash
/bm mob create <mobname> <mobtype>
```

&#x20;   2 . use the following command to mark your mob as a mythic mob

```bash
/bm mob set mythicmob <bloodmoonmobname> <mythicmob> 
```

Your custom mob is now hooked with a mythic mob.

### Example config

```yaml
chargedSheep:
    boss: true
    type: SHEEP
    lifecycle: chargedSheep
    mythicmob: StaticallyChargedSheep
    percentage: 10.0
```

{% hint style="info" %}
As soon as your mythic mob is hooked with a custom mob, all bloodmoon properties will be overwritten except for the lifecycle , spawnchance and boss
{% endhint %}


# Introduction

Introduction to custom items

![](/files/-M-kwgdYVBexDNkqZShD)

### About custom items

For every mob, you can define custom items. Custom items can have custom data, including display names with colors, but also enchanted items are possible.

### How to define custom items

Custom items are defined in the "items.yml" file. Below you can seen an example of the items.yml config

```yaml
items:
  helmet: "DIAMOND_HELMET:0 1 protection:4 thorns:3"
  chestplate: "DIAMOND_CHESTPLATE:0 1 protection:4 thorns:3"
  leggings: "DIAMOND_LEGGINGS:0 1 protection:4 thorns:3"
  boots: "DIAMOND_BOOTS:0 1 protection:4 thorns:3"
  zombie-sword: "DIAMOND_SWORD:0 1 sharpness:5 fire_aspect:2"
  bow: "BOW:0 1 power:5"
  skelly-chestplate: "GOLDEN_CHESTPLATE:0 1 protection:4 thorns:3"
  wither-sword: "GOLDEN_SWORD:0 1 sharpness:2"
  super-stick: "STICK:0 sharpness:5"
```

Every item has a very static way of storing its data.

```
{item}:{damage} {amount} [name:{}, lore:{}, owner:{}, rgb:{}] [{enchantment}:{level}]
```

### Configuring a custom item

the easiest way to configure a custom item is by using the commands. Start by getting the item you want to store in your hand. This item may contain custom lores, names, colors, etc ...

Use the following command to add the item:

```
/bloodmoon item set <name>
```

If you want to get an item instead of setting it, you can use the following command:

```
/bloodmoon item get <name>
```

{% hint style="info" %}
If you need more information about item commands, click [here](/items/commands)
{% endhint %}


# Commands

A short but descriptive list with all the commands for custom items.

#### Available commands:

| Commands                                   | Permission            | Description                                                                  |
| ------------------------------------------ | --------------------- | ---------------------------------------------------------------------------- |
| /bloodmoon item set \<item>                | bloodmoon.item.set    | Save the currently holding item with the specified name                      |
| /bloodmoon item get \<item>                | bloodmoon.item.get    | Gets the specified item                                                      |
| /bloodmoon item print                      | bloodmoon.item.print  | Prints the textual version of the holding item. Can be used in the items.yml |
| /bloodmoon item remove \<item>             | bloodmoon.item.remove | Removes the specified item                                                   |
| /bloodmoon item give \<item> \<playername> | bloodmoon.item.give   | Gives the specified item to the correct player                               |
| /bloodmoon item list                       | bloodmoon.item.list   | Show a list of all the items                                                 |


# Introduction

Introduction to lifecycles

![](/files/-M-kwmTaz-mY0924qfqT)

### What is a life-cycle

A life-cycle is an event based timeline of actions that might or will occur during the lifetime of your mob. Life-cycles can be created and added to one more multiple custom mobs.

![](/files/-M-fTviHOC75v-NnjvmZ)

Think about a boss related game. At first, your boss is doing regular attacks, as of certain percentage left of his health, the boss will become stronger or do different attacks. That is exactly how life-cycles work in bloodmoon.

### Progress life cycle conditions

When the config property "**mob-progress**" under the "**lifecylces**" section of the config is enabled, it will also trigger the life cycle actions when a mob is hitting you.

This will result in more difficult fights. This also works for any mob attacking another mob.

### How is a life-cycle defined

A life cycle has the following arguments:

```
[action-name] [start-percentage] [end-percentage] [chance to occur] [max occurences]
```

In the config a simple life-cycle would look like this:

```yaml
  magician:
    actions:
      - teleport-spell 100 0 40 20
      - reinforcement-spell 30 0 60 1
      - swap-spell 100 0 50 10
      - blast-spell 50 0 60 10
      - lightning-spell 20 0 50 1
    death:
      - lightning-spell 100
```

We have a life-cycle named "**magician**". Our life-cycle has several actions. In order to understand how does works, we take just one line and split it piece by piece.

```yaml
- teleport-spell 100 0 40 20
```

We assume that you created an action "**teleport-spell**". Our teleport spell will occur between **100** and **0** percentage of the mob health. Every hit has a **40**% chance of triggering the action. And the action will execute maximum **20** times during the life cycle.

If you take a look back to all the lines, you can see that certain event might or might not occur during the life cycle.

### Actions on death

Introduced as of bloodmoon version 4.0, the death actions have been introduced. This is an additional list of actions that will be executed when the mob dies.

For each of the actions you can configure a percentage of possible occurrence. For example:

```yaml
 magician:
    actions:
      - lightning-spell 20 0 50 1
    death:
      - lightning-spell 100
```

{% hint style="info" %}
*You can use multiple actions on the same percentage levels. This will result in possibly 2 actions running*
{% endhint %}


# Commands

A short but descriptive list with all the commands for lifecycles.

#### Available commands:

| Commands                                                                               | Permission                        | Description                                      |
| -------------------------------------------------------------------------------------- | --------------------------------- | ------------------------------------------------ |
| /bloodmoon lifecycle create \<cycle>                                                   | bloodmoon.lifecycle.create        | Creates a new lifecycle with the specified name  |
| /bloodmoon lifecycle remove \<cycle>                                                   | bloodmoon.lifecycle.remove        | Removes the specified lifecycle                  |
| /bloodmoon lifecycle remove-action \<cycle> \<action>                                  | bloodmoon.lifecycle.remove-action | Removes the specified action from the lifecycle  |
| /bloodmoon lifecycle add-action \<cycle> \<action> \<start> \<end> \<chance> \<usages> | bloodmoon.lifecycle.add-action    | Adds an action for the specified lifecycle       |
| /bloodmoon lifecycle actions \<cycle>                                                  | bloodmoon.lifecycle.actions       | Gets a list of the active actions of a lifecycle |
| /bloodmoon lifecycle list                                                              | bloodmoon.lifecycle.list          | Get a list of all livecycles                     |

{% hint style="info" %}
The argument \<action> is a user defined [action](/actions/commands).
{% endhint %}


# Introduction

Introduction to actions

![](/files/-M-kx2T8I5y1A_YVD9kp)

### What are actions

Actions are actions that can be added to your life cycle. Actions exist out of 2 lists:

* events
* commands

### How to configure an action

Below you can find a simple example of an action:

```yaml
example-action:
  events:
    - teleport 10 100
  commands:
    - say the mob just teleported! 100
```

In the above example we have an action with both an event and command. Our action says that our entity will teleport somewhere in a radius of **10** blocks at **100%** chance.

Simultaneously, the console will print a message "The mob just teleported!". This message also will always occur as the percentage is also set to **100%**.

### Placeholders for commands

| Placeholder | Description                           |
| ----------- | ------------------------------------- |
| %player%    | placeholder for player name           |
| %world%     | placeholder for the name of the world |

{% hint style="info" %}
For more information about events, click [here](/events/introduction)
{% endhint %}


# Commands

A short but descriptive list with all the commands for actions.

| Commands                                                                 | Permission                      | Description                                     |
| ------------------------------------------------------------------------ | ------------------------------- | ----------------------------------------------- |
| /bloodmoon action create \<action>                                       | bloodmoon.action.create         | Creates a new action with the specified name    |
| /bloodmoon action remove \<action>                                       | bloodmoon.action.remove         | Removes the specified action                    |
| /bloodmoon lifecycle remove-event \<action> \<action> \<index>           | bloodmoon.action.remove-event   | Removes the specified event                     |
| /bloodmoon lifecycle add-event \<action> \<chance> \<event> \[arguments] | bloodmoon.action.add-event      | Adds an event for the specified action          |
| /bloodmoon action events \<action>                                       | bloodmoon.action.events         | Gets a list of the active events of an action   |
| /bloodmoon action remove-command \<action> \<index>                      | bloodmoon.action.remove-command | Removes the specified command                   |
| /bloodmoon action add-command \<action> \<chance> \<command>             | bloodmoon.action.add-command    | Adds a command for the specified action         |
| /bloodmoon action commands \<action>                                     | bloodmoon.action.commands       | Gets a list of the active commands of an action |
| /bloodmoon action list                                                   | bloomoon.action.list            | Show a list of all actions                      |

{% hint style="info" %}
The argument \<event> is an user defined [event](/events/introduction).
{% endhint %}


# Introduction

### What are death actions

Death actions are actions that will trigger when a player dies during a bloodmoon event. The actions are configurable by the server owner in the config file.

A death action has a percentage to define whether the action should trigger or not. If the death action triggers, certain events might occur.

The death actions can be found in the[ config.yml](/configs/config.yml)

```yaml
# A list of actions that occur when a player dies during a bloodmoon
death-actions:
  lose-xp:
    chance: 0.0
  clear-inventory:
    chance: 0.0
```

### Available actions

| Action name     | result                                                            |
| --------------- | ----------------------------------------------------------------- |
| lose-xp         | The player will lose all XP levels without dropping               |
| clear-inventory | When this action triggers, the inventory will be cleared entirely |
| ...             | More events coming soon                                           |

{% hint style="info" %}
If you don't want to use the event, just change the percentage to **0.0**.&#x20;
{% endhint %}


# Introduction

Quick and simple introduction to the bloodmoon events.

![](/files/-M-kx5w1p5NvW8xvgNw3)

### What are events?

An event is a pre-defined action which will be executed with a certain chance. Events can be added to one or more actions.

### What events are available?

Currently we have 10 events which can be used during the bloodmoon.

### How do I use events?

Depending on the event, you might need different parameters in your config. Although it looks a bit complex to configure, you get used to it faster then you would expect.

Below you can see an example of an action using the [**Teleport Event**](/events/teleport-event)

```yaml
actions:
  example-teleport:
    events:
      - teleport 10 100
      - speak &4Try to catch me now! 100
    commands: []
```

Explanation: we have an action named "**example-teleport**". Our action has 2 events. The event we will be using is the [**teleport**](/events/teleport-event) event. If we take a look at the Teleport Event page, we can see that it uses 2 arguments.

**Argument 1:**  The radius in which the mob will teleport\
**Argument 2:**  The percentage it will execute

So for the above example: whenever **example-teleport** is fired, our entity will teleport somewhere in a radius of 10 blocks. Since the percentage is set to 100, this action will always happen.

As we have another event "[**speak**](/events/speak-event)", with a percentage set to 100, both lines will always execute which will result in your mob saying : "Try to catch me now!" and a simultaneous teleport of your mob.

{% hint style="warning" %}
*The percentage is a mandatory argument. No matter how many arguments you have, your line should always end with a number representing the chance in percentage the event will execute.*
{% endhint %}


# Stop Event

This event will stop the bloodmoon when it's activated.

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | decimal | percentage of occurrence |

## What it does

Whenever this event is triggered, the bloodmoon for that world will stop without further actions. This will result in the despawn of all custom mobs and executing the stop commands and or messages.

## Example usage

```yaml
actions:
  stop:
    events:
      - stop-bloodmoon 100
    commands: []
```


# Death Event

This event will directly kill the bloodmoon mob.

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, it will instantly kill the mob that executed the action. The life cycle will come to its end.

## Example usage

```yaml
actions:
  death:
    events:
      - instant-kill 100
    commands: []
```


# Heal Event

This event will heal a mob.

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | number  | health to restore        |
| 2     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, it will set the health of the mob to the specified amount.

## Example usage

```yaml
actions:
  heal:
    events:
      - heal 10 100
    commands: []
```


# Lightning Event

This event will strike some lighting.

## Required arguments

A radius where the lighting will strike.

| Order | Type    | Argument                          |
| ----- | ------- | --------------------------------- |
| 1     | number  | radius where lightning can strike |
| 2     | decimal | percentage of occurrence          |

## What it does

Whenever the event is triggered, it strike a lighting on a random location within the radius.

## Example usage

```yaml
actions:
  lightning:
    events:
      - lightning 5 100
    commands: []
```


# Potion effect Event

This event will apply a potion effect to the attacking player.

## Required arguments

| Order | Type       | Argument                     |
| ----- | ---------- | ---------------------------- |
| 1     | potiontype | potion that needs to be used |
| 2     | number     | duration                     |
| 3     | number     | strength of the effect       |
| 4     | decimal    | percentage of occurrence     |

## What it does

Whenever the event is triggered, a potion effect will be applied to all the players in a specified radius of the mob.

## Example usage

```yaml
actions:
  potion:
    events:
      - potion-effect HUNGER 5 2
    commands: []
```

{% hint style="info" %}
You can find the available potion effects [here](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionEffectType.html).
{% endhint %}


# Teleport Event

This event will teleport the mob onto a random location within a radius

## Required arguments

| Order | Type    | Argument                      |
| ----- | ------- | ----------------------------- |
| 1     | number  | radius where mob can teleport |
| 2     | decimal | percentage of occurrence      |

## What it does

Whenever the event is triggered, it will teleport the mob to a random location

## Example usage

```yaml
actions:
  teleport:
    events:
      - teleport 5 100
    commands: []
```


# Swap Event

This event will swap its enemies.

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, players in a specified radius around the mob will be swapped positions

## Example usage

```yaml
actions:
  swap:
    events:
      - swap 100
    commands: []
```


# Reinforcement Event

This event will spawn extra mobs.

## Required arguments

| Order | Type     | Argument                  |
| ----- | -------- | ------------------------- |
| 1     | mob-name | mobname/mythicmob/mobtype |
| 2     | number   | radius for mob to spawn   |
| 3     | number   | amount of mobs to spawn   |
| 4     | decimal  | percentage of occurrence  |

## What it does

Whenever the event is triggered, it will spawn our custom mobs or default Minecraft mobs in a radius.

## Example usage

* 100% chance to spawn 2 zombies in a radius of 10
* 100% chance to spawn 2 blazing cubes in a radius of 10

```yaml
actions:
  reinforcement:
    events:
      - reinforcements ZOMBIE 10 2 100
      - reinforcements blazing-cube 10 2 100
    commands: []
```


# Dash Event

This event will push away enemies.

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, it will push away all enemies surrounding the mob

## Example usage

```yaml
actions:
  dash:
    events:
      - dash 100
    commands: []
```


# Speak Event

This event will make the mob talk.

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | text    | the text it needs to use |
| 2     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, all players nearby the mob will receive a specified message with the prefix of the mob. This will result as in the custom mobs being talking to the players.

## Example usage

```yaml
actions:
  speak:
    events:
      - speak &4BOOOOO 100
    commands: []
```


# Respawn Event

This will cause the mob to re-spawn

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, the mob will respawn. But the mob will respawn with 50% health left. The life cycle will remain except the "respawn" feature.

## Example usage

```yaml
actions:
  speak:
    events:
      - respawn 100
    commands: []
```


# Explode Event

The mob will cause an explosion

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | number  | radius                   |
| 2     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, an explosion will occur at the mob location with a specified explosion radius.

## Example usage

```yaml
actions:
  speak:
    events:
      - explode 5 100
    commands: []
```

{% hint style="danger" %}
The explosion will use some decent amount of server CPU, be reasonable with the explosion radius!
{% endhint %}


# Sound Event

Play a sound

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | text    | sound-name               |
| 2     | number  | volume                   |
| 3     | pitch   | pitch                    |
| 4     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, the mob will play a sound with a specified name, volume and pitch.

## Example usage

```yaml
actions:
  speak:
    events:
      - play-sound UI_TOAST_CHALLENGE_COMPLETE 10 1
    commands: []
```


# Vanish Event

This will cause your mob to vanish for some time

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | number  | duration                 |
| 2     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, the mob will vanish for a specified amount of time

## Example usage

```yaml
actions:
  speak:
    events:
      - vanish 20 100
    commands: []
```


# Shield Event

This event will spawn a shield around the mob

## Required arguments

| Order | Type    | Argument                 |
| ----- | ------- | ------------------------ |
| 1     | number  | duration                 |
| 2     | decimal | percentage of occurrence |

## What it does

Whenever the event is triggered, the mob will get a shield for a specified amount of seconds. The mob won't be able to get attacked until the shield goes down

## Example usage

```yaml
actions:
  speak:
    events:
      - shield 20 100
    commands: []
```

![](/files/-M0nDxpIpZZgq410T3h6)


# Overview of placeholders

An overview of placeholders

When Placeholder API is installed, you can use several placeholders in both the same and other plugins. Placeholders are great for showing certain data in messages.

Below you can find an overview of all placeholders

| Placeholder                                | Represented value                                                     |
| ------------------------------------------ | --------------------------------------------------------------------- |
| %bloodmoon-advanced\_days\_left%           | Days left before the next bloodmoon of the world the player is at     |
| %bloodmoon-advanced\_days\_left\_\<world>% | Days left before the next bloodmoon of the specified world            |
| %bloodmoon-advanced\_boss\_bar\_remaining% | Amount of percentage the bloodmoon is at in the currents player world |
| %bloodmoon-advanced\_boss\_bar\_\<world>%  | Amount of percentage the bloodmoon is at in the specified world       |


# config.yml

The standard config.yml file

![](/files/-M-kxCQsurLiSpRHXuvw)

{% code fullWidth="true" %}

```yaml
# This is the bloodmoon config file. Make sure you use the correct format for the correct properties
# If at any moment, you believe you broke the config, remove it and reconfigure it.
# Authors: MrGeneralQ, PandaCrafter1
# For a detailed config version please check our wiki: https://bloodmoon.mrgeneralq.net/

# DO NOT REMOVE OR TOUCH THIS VALUE. THIS IS THE CONFIG VERSION, NOT THE PLUGIN VERSION
version: "3.5"

# set to false if you want to disable the update checker
#IMPORTANT we only provide support for the latest version
update-checker-enabled: true

# A list of all worlds that are enabled for the bloodmoon.
enabled-worlds:
  - world

# if set to true, players will not be able to use portals during the bloodmoon
block-portal: true

# if set to true, players cannot go to sleep during blood moon events
block-sleeping: true

# if change-difficulty is set to true, the difficulty will change when the bloodmoon runs
# possible values easy|normal|hard|peaceful
change-difficulty: true
difficulty: 'hard'

# percentage when harvesting crops will result in a failure
harvest-failure-chance: 50.0

# whenever there is a thunderstorm, the percentage specified will redirect the lightning to any player in the world
lightning-strike-player-chance: 20.0

# if the player does not get striked by a lightning, what is the chance that it strikes near the player
lightning-near-hit-percentage: 50.0

# amount of mobs that can spawn in one chunk (Bukkit default is 70)
monster-spawn-limit: 160

# When paths is enabled you will be able to use an item to show the path to the bosses location.
# If compass is on 'true', it will point to the location of the boss
paths:
  enabled: true
  compass: true
  delay: 5
  material: 'COMPASS'

# Run a series of actions when the bloodmoon is started or begins
start-actions:
  title:
    enabled: true
    title: "&4Bloodmoon started"
    subtitle: "Be aware!"
  commands:
    enabled: true
    commands:
      - bloodmoon say The bloodmoon is rising!
  sound:
    enabled: true
    start-sound: ENTITY_ENDER_DRAGON_DEATH



# Run a series of actions when the bloodmoon is stopped or ends
stop-actions:
  title:
    enabled: true
    title: "&aBloodmoon stopped"
    subtitle: "No more crazy stuff"
  commands:
    enabled: true
    commands:
      - bloodmoon say The sun is rising, the spirit of the moon is fading away ...
  sound:
    enabled: true
    stop-sound: UI_TOAST_CHALLENGE_COMPLETE


# choose to play a sound when the mobs are getting removed after the bloodmoon
# make sure to use correct sound names and effects
# spigot particles: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
# spigot sounds: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html


# show a bossbar during the bloodmooon
bossbar:
  enabled: true
  title: "Bloodmoon"
  fog: true
  dark: true

mob-despawn-effect:
  play-sound:
    enabled: true
    sound: ENTITY_WITHER_DEATH
  play-particle:
    enabled: true
    particle: "SPELL_MOB"


#configure the amount of ticks when the plugin considers it night or day
time:
  night-start: 12500
  night-end: 23500

#during the bloodmoon, play a series of scary sounds to make it even more scary
scary-sounds:
  enabled: true
  sounds:
    - AMBIENT_CAVE


# when a bloodmoon is scheduled either by command or automatically, if bell warning is enabled, you can make a bell
# ring far away from the players, as if a churge is alerting the players for the upcoming bloodmoon
# the count is representing how many times the bell should ring
# NOTE: a headset might be required in order to experience the full effect
bell-warning:
  enabled: true
  count: 6
  sound: BLOCK_BELL_USE

# if you want you can apply a custom resource pack when the bloodmoon is rising
# for the url-enabled, put the official bloodmoon zip file
# for the url-disabled: put any empty zip file as this would force back to the old resource pack
resource-pack:
  enabled: false
  url-enabled: "http://dl.dvrm.it/Uploads/Bloodmoon.zip"
  url-disabled: "http://dl.dvrm.it/Uploads/normal.zip"

# specifiy for each block which mob will spawn and the percentage
mob-in-block:
  enabled: true
  blocks:
    STONE:
      percentage: 10.0
      mob: "SILVERFISH"
    MAGMA_BLOCK:
      percentage: 100.0
      mob: "MAGMA_CUBE"

# specify a list of all mobs that will not be replaced upon spawn by a random bloodmoon mob. This are typically mobs
# used for farming
# non hostile mobs are excluded by default
excluded-mobs:
  - GUARDIAN
  - ELDER_GUARDIAN
  - ENDER_DRAGON
  - ENDERMAN

# You can disable some spawn types. When it's set to true it won't change the mob into a bloodmoon mob.
excluded-spawn-methods:
  natural: false
  eggs: false
  spawners: true
  iron-golem: true
  snowman: true
  wither: true
  breeding: true
  bees: true

# Settings when and if a boss should spawn
boss:
  enabled: true
  chance: 50.0
  bossbar: true


# Define a list of commands to be blocked during a bloodmoon
blocked-commands:
  - tpa
  - spawn
  - home
  - save-all

# A list of actions that occur when a player dies during a bloodmoon
death-actions:
  lose-xp:
    chance: 0.0
  clear-inventory:
    chance: 0.0
  commands:
    - say %player% got killed during a bloodmoon!

# All settings regarding custom spawning
spawning:
  enabled: false
  min-radius: 20
  max-radius: 80
  mobs-per-chunk: 20

# All settings related to lifecycles
# mob-progress: when set to true, lifecycles will also progress when the target is getting damaged
lifecycles:
  mob-progress: true

# All settings related to nights
# longer: night will be longer based on the boost percentage
# darker: players will get randomly a blindness effect
nights:
  longer: false
  boost-percentage: 20.0
  darker: false
  darker-percentage: 50.0
  darker-duration: 2
```

{% endcode %}


# mobs.yml

The standard mobs.yml file

```yaml
# Types: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html
mobs:
  reinforced-creeper:
    type: CREEPER
    name: '&cReinforced &2Creeper'
    percentage: 40.0
    health: 20.0
    speed: 0.3
    explosion-radius: 6
    lifecycle: reinforced-creeper
  baby-booboo:
    type: ZOMBIE
    name: '&2Baby &fBooboo'
    percentage: 10.0
    health: 30.0
    speed: 0.3
    glowing: false
    item-drop-chance: 0.0
    baby: true
    drops:
      - hand 1 3.3
    items:
      helmet: helmet
      chestplate: chestplate
      leggings: leggings
      boots: boots
      hand: zombie-sword
  blazing-cube:
    type: MAGMA_CUBE
    name: '&cBlazing Cube'
    percentage: 70.0
    health: 22.0
    speed: 0.3
    size: 3
  trained-skeleton:
    type: SKELETON
    name: '&5Magic &fSkeleton'
    health: 15.0
    speed: 0.3
    item-drop-chance: 0.0
    items:
      chestplate: skelly-chestplate
      hand: bow
    drops:
      - bow 1 5.0
  skeleton-soldier:
    type: WITHER_SKELETON
    name: '&aSoldier'
    percentage: 30.0
    health: 25.0
    speed: 0.5
    item-drop-chance: 0.0
    items:
      chestplate: skelly-chestplate
      hand: wither-sword
  magician:
    type: WITCH
    name: '&5Magician'
    percentage: 20.0
    health: 30.0
    speed: 0.3
    item-drop-chance: 0.0
    lifecycle: magician
    drops:
      - super-stick 1 1.0
  firewarden:
    type: BLAZE
    name: '&4fire &6warden'
    percentage: 20.0
    health: 30.0
    speed: 1.0
    lifecycle: firewarden
    drops: []
    glowing: false
    item-drop-chance: 0.0
    items: {}
```


# actions.yml

The standard actions.yml file

```yaml
actions:
  strike-lightning:
    events:
      - lightning 6 10
    commands: []
  swap-spell:
    events:
      - swap 100
      - speak &3Secra astafa perdu! 100
    commands: []
  blast-spell:
    events:
      - dash 100
      - speak &7Karanta segrum dia! 100
    commands: []
  teleport-spell:
    events:
      - teleport 8 100
      - speak &6Parendum potrokaratia! 100
    commands: []
  lightning-spell:
    events:
      - lightning 10 100
      - speak &c&lActaram Strikera! 100

  reinforcements:
    events:
      - reinforcements ZOMBIE 10 2 30
      - reinforcements blazing-cube 10 2 30
      - speak &c&lI need help over here! 100
    commands: []
  witch-reinforcements:
    events:
      - reinforcements WITCH 10 2 100
      - speak &5Kardipo septum crea 100
    commands: []
  potion:
    events:
      - potion-effect blindness 20 2 50
      - potion-effect hunger 20 1 50
      - potion-effect confusion 10 5 50
      - potion-effect jump 15 4 50
    commands: []
  firewarden-messages:
    events:
      - speak You &4fool! &fYou don't get me! 20
      - speak Did you ever taste a burned skin? 10
      - speak &4&lKAPOW! 20
      - speak I would love to see people like you in the nether! 20
    commands: []
  death:
    events:
      - instant-kill 100
      - speak How is it even possible?! 100
    commands: []
  shadow-attack:
    events:
      - potion-effect blindness 20 2 100
      - speak Let's see how well you do in the &5shadows ... 100
    commands: []
  fuse:
    events:
      - speak &atttssss 100
    commands: []
```


# lifecycles.yml

The standard lifecycles.yml file

```yaml
cycles:
  superboss:
    actions:
      - strike-lightning 100 0 100 3
      - death 100 0 0.1 1
      - reinforcements 80 0 20 10
  firewarden:
    actions:
      - reinforcements 30 0 20 2
      - firewarden-messages 100 0 40 20
      - shadow-attack 50 0 30 1
  magician:
    actions:
      - teleport-spell 100 0 40 20
      - reinforcement-spell 30 0 60 1
      - swap-spell 100 0 50 10
      - blast-spell 50 0 60 10
      - lightning-spell 20 0 50 1
  reinforced-creeper:
    actions:
      - fuse 100 0 50 2
```


# items.yml

The standard items.yml file

```yaml
# Enchantments: https://www.digminecraft.com/lists/enchantment_list_pc.php
# Items: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# Format: {item}:{damage} {amount} [name:{}, lore:{}, owner:{}, rgb:{}] [{enchantment}:{level}]
items:
  helmet: "DIAMOND_HELMET:0 1 protection:4 thorns:3"
  chestplate: "DIAMOND_CHESTPLATE:0 1 protection:4 thorns:3"
  leggings: "DIAMOND_LEGGINGS:0 1 protection:4 thorns:3"
  boots: "DIAMOND_BOOTS:0 1 protection:4 thorns:3"
  zombie-sword: "DIAMOND_SWORD:0 1 sharpness:5 fire_aspect:2"
  bow: "BOW:0 1 power:5"
  skelly-chestplate: "GOLDEN_CHESTPLATE:0 1 protection:4 thorns:3"
  wither-sword: "GOLDEN_SWORD:0 1 sharpness:2"
  super-stick: "STICK:0 sharpness:5"
```

{% hint style="danger" %}
When using server versions lower then 1.12, the names of the enchantments will no longer match with the above. Make sure to change the naming to the correct 1.12 or lower alternative, or use the in-game commands to set the item.

<https://helpch.at/docs/1.12.2/index.html?org/bukkit/enchantments/Enchantment.html>
{% endhint %}


# messages.yml

The standard messages.yml file

```yaml
messages:
  prefix: "&f[&cBloodmoon&f]"
  no-permission: "&cYou don't have permission to that command!"
  unexisting-command: "&cThis command does not exist! Type /bloodmoon to see all commands"
  only-players: "&cThis command can only be executed from ingame!"
  already-running: "&cThe bloodmoon is already running for that world"
  not-running: "&cThe bloodmoon is not running for that world"
  config-reload: "&aBloodmoon config reloaded!"
  specify-type: "&cPlease specify the %type%!"
  type-exists: "&c%type% already exists"
  type-not-exists: "&cThe %type% does not exist!"
  type-not-valid: "&cThe %type% is not valid!"
  invalid-args: "&cInvalid arguments for the %type%!"
  args-format: "&aArguments format: &c %args%"
  type-added: "&a%type% has been added to &f%subtype%"
  type-created: "&a%type% has been created"
  type-updated: "&a%type% has been updated!"
  type-removed: "&a%type% has been removed"
  type-spawned: "&a%type% has been spawned"
  type-list: "&aThe list for %type%:"
  empty-type-list: "&aThis %type% has no %subtype% yet!"
  list-item: "&a[%position%] &e%arg%"
  type-not-found: "&c%type% not found"
  item-received: "&e%player% &freceived &e%amount% &a%type%"
  hold-item: "&cPlease hold the item you want to use"
  use-data: "&aYou may use the following data in the items.yml:"
  not-scheduled: "&cThe bloodmoon is not scheduled!"
  cancel-night: "&cYou cannot cancel a bloodmoon schedule during nighttime. Wait until the night is over"
  canceled: "&cScheduled bloodmoon is canceled for world: &e%world%"
  already-scheduled: "&cThe bloodmoon is already scheduled!"
  schedule-night: "&cYou cannot schedule a bloodmoon during nighttime. Wait until the night is over"
  scheduled: "&cBloodmoon scheduled for world: &7%world%"
  start-day: "&cYou cannot start the bloodmoon during the day!"
  started: "&cBloodmoon started for world &7%world%"
  stop-day: "&cYou cannot stop the bloodmoon during the day!"
  stopped: "&cBloodmoon stopped for world &7%world%"
  sleep: "&cYou cannot sleep during the bloodmoon event!"
  portal: "&cThe portal is blocked by a magical force ..."
  world-not-enabled: "&cThis world is not enabled"
  command-blocked: "&cYou cannot run this command during a bloodmoon"
  mobs-removed: "&aAll bloodmoon mobs have been removed"
  sign-created: "&aNew bloodmoon sign created!"
  sign-action-not-exist: "&cThis sign action does not exist!"
  sign-action-parameter-missing: "&cPut a sign action name on the 2nd line!"
  sign-destroy-no-permission: "&cYou don't have permission to destroy that sign!"
  sign-destroyed: "&aBloodmoon sign destroyed!"
  sign-use-no-permission: "&cYou don't have permission to use that sign!"
  sign-create-no-permission: "&cYou don't have permission to create that sign!"
  running-version: "&eYou are running version &a%version%"
  invalid-world: "&cThis world is not valid!"
  bloodmoon-scheduled: "&aYou have scheduled the Bloodmoon for &e%world% &ain &e%days% &adays"
```


# schedules.yml

The default schedules file

```yaml
schedules:
  world:
    days: 5
    chance: 100.0
    broadcast: true
    days-left-message: '&fin &e%days-left% &fdays there will be a possible bloodmoon!'
    tonight-message: '&fThere is a &e%chance%% &fchance that Tonight will be a bloodmoon!'
    random-days: true
    repeating: true
```


# Introduction

Introduction on using the API

### Introduction our API

As of Bloodmoon Advanced version **3.0**, you can use our API to integrate your plugin with bloodmoon advanced logic.

{% hint style="danger" %}
**Developers be aware! Whenever you use our plugin to integrate, do NOT compile your plugin with the bloodmoon advanced jar in it! Doing so will equally be treated as piracy!**
{% endhint %}

### Getting started

Start by importing the bloodmoon advanced jar file as a dependency in your project. Now use the following static method to call our Bloodmoon API

```java
BloodmoonAPI.someMethod();
```

This is all you need. Some methods might not execute. One of the following reasons could be this:

* Your world is not enabled
* The API might check if you should be able to run the command (example you can't start bloodmoon during daytime)
* You don't have bloodmoon advanced in your server


# API docs

API for bloodmoon

Below you can find an overview of all method available.

Below methods can be called by using the following method

```
BloodmoonAPI.someMethod();
```

{% tabs %}
{% tab title="Bloodmoon" %}

```java
/**
 * Return whether the bloodmoon is enabled for this world
 * @param world: world
 */
boolean bloodmoonIsEnabled(World world)

/**
 * Return whether the bloodmoon is enabled for this world
 * @param world: world
 */
boolean bloodmoonIsRunning(World world)

/**
 * Return whether the bloodmoon is scheduled for the next night
 * @param world: world
 */
boolean bloodmoonIsScheduled(World world)


/**
 * A method to start the bloodmoon in a world
 * @param world: world
 */
void startBloodmoon(World world)


/**
 * A method to stop the bloodmoon in a world
 * @param world: world
 */
void stopBloodmoon(World world)



/**
 * A method to schedule the bloodmoon in a world
 * @param world: world
 * THIS NO LONGER WORKS AS OF VERSION 4.0
 */
 
@Deprecated
void scheduleBloodmoon(World world)


/**
 * A method to cancel the scheduled bloodmoon in a world
 * @param world: world
 */
void cancelBloodmoon(World world)

```

{% endtab %}

{% tab title="Items" %}

```java
/**
 * Get a bloodmoon item
 * @param itemName: The name of the bloodmoon item you want to retrieve
 * @return The bloodmoon item
 */
ItemStack getBloodmoonItem(String itemName)
```

{% endtab %}

{% tab title="Mobs" %}

```java
/**
 * Return whether the entity is a custom entity
 * @param entity: entity
 */
boolean isBloodmoonMob(Entity entity)

/**
 * Spawn a bloodmoon mob on a location
 * @param mobName: the name of the bloodmoon mob
 * @param location: location where to spawn the bloodmoon mob
 */
void spawnBloodmoonMob(String mobName, Location location)


/**
 * Kill all bloodmoon mobs in a specified world
 * @param world: world
 */
void killAllBloodmoonMobs(World world)
```

{% endtab %}
{% endtabs %}


