# Fish.yml

Below are all of the possible options you can add to fish. Please note, you do not need to add all of these to a fish to make them work. These are option configuration options.&#x20;

{% hint style="danger" %}
Do NOT change the tier key names i.e. 'Diamond' in the fish.yml. If you want to rename the fish tiers - you can change them in the \`messages.yml' file by searching for 'TierNames'.
{% endhint %}

## Minimum Configuration Settings

These are the <mark style="color:red;">minimum</mark> required configuration options for a fish to function.

```yaml
Name: 'Example Name'
Biomes: RIVER, JUNGLE
Description: My example description # This can also be a list as of v4.9.6
```

## Default Configuration Settings

The below settings can be modified, added or removed without the need of any external resources and or plugins.

### Custom Model Data / Material

To add a texture to a fish, you must ensure that you have a resource pack on with a valid texture linked to an item. From there - set the material and **Custom Model Data** number to whatever the texture is using. The example below sets the fish to have a **Custom Model Data** of 11 using COD as the Material.

```yaml
CustomModelData:
  Use: true
  Number: 11
  
Material: COD
```

{% hint style="warning" %}
Make sure to set Use to true for it to register.&#x20;
{% endhint %}

### Head Texture

To use a head texture, you require Version 4.6.4 or higher. You also need a Skull texture. You can find these from sites such as <https://minecraft-heads.com/> and then using the very bottom value.&#x20;

After finding your texture, use the following format:

```yaml
Material: PLAYER_HEAD:<texture>

#Example:
Material: PLAYER_HEAD:a9035b0c6049daf764d5bdb8207ca439291f8f4257711eeb3b45e10147e5e845
```

### Glowing

To make your fish appear enchanted, use the glowing tag below.

```yaml
Glowing: true
```

### Custom Commands

There are three different options when it comes to adding commands to fish. Below are the three options:

{% tabs %}
{% tab title="Catch" %}
To add a command to the catch section, add your command to the below section.

Commands support chances to run specific commands, using **\<chance:number>**

You can "chain" commands by using a **comma** after the first command. Chained commands will execute together, meaning you can stack commands on a chance being met.

```yaml
CatchCommands:
- 'your command here'
- '<chance:25>rare command here'
- '<chance:50>rare command here,chained command here'
```

{% endtab %}

{% tab title="Eating" %}
To add a command to the eating section, add your command to the below section. This will be executed whenever the player eats the fish.

Commands support chances to run specific commands, using **\<chance:number>**

You can "chain" commands by using a **comma** after the first command. Chained commands will execute together, meaning you can stack commands on a chance being met.

```yaml
EatingCommands:
- 'your command here'
- '<chance:25>rare command here'
- '<chance:50>rare command here,chained command here'
```

{% endtab %}

{% tab title="Selling" %}
To add a command to the sell section, add your command to the below section. These commands will be executed upon selling the fish inside of **/fish shop**

Commands support chances to run specific commands, using **\<chance:number>**

You can "chain" commands by using a **comma** after the first command. Chained commands will execute together, meaning you can stack commands on a chance being met.

```yaml
SellCommands:
  enabled: false
  - 'your command here'
  - '<chance:25>rare command here'
  - '<chance:50>rare command here,chained command here'
```

{% hint style="warning" %}
Ensure you set the **Enabled** to true above if you wish to use selling commands.

You **do not** have to set this up for the fish to sell for money by default. These are merely commands run in conjunction to the default selling.
{% endhint %}
{% endtab %}
{% endtabs %}

{% hint style="info" %}
All fish have separate sections for catch, eating and selling commands. Ensure you add them to all the fish you want if you wish to have different fish with the same commands.

Placeholders:

* %player% - The players name.
* %fish% - The fish name.

All of these command lists support <mark style="color:orange;">**PlaceholderAPI**</mark> placeholders if you have it installed.
{% endhint %}

### Disable Physical Fish Itemstack

To stop the fish itemstack from being dropped when it is caught, set the following to true.

```yaml
DisableGivingFishItem: false
```

### Time Cycle

To make your fish only catchable during day or night, use the below setting.&#x20;

```yaml
 TimeCycle:
   Enabled: false
   SpawnDuringDay: false
```

### Weather Cycle

To make your fish only catchable during sun or rain, use the below setting.&#x20;

```yaml
 WeatherCycle:
   Enabled: false
   SpawnDuringRain: false
```

### Y-Level Specific

To make your fish only catchable at specific Y Levels in the world, use the below setting. Fishing between these two values will be considered 'catchable'.

```yaml
Y-Level:
  Enabled: false
  Lower: 20
  Upper: 80
```

### World Guard Regions

To setup custom world guard regions to allow players to only catch custom fish in certain regions, use the below setting.

```yaml
Region:
  Enabled: false
  Regions:
  - ''
```

{% hint style="warning" %}
Ensure you have <mark style="color:orange;">**WorldGuard**</mark> installed.
{% endhint %}

### World Specific

To make your fish only catchable in specific worlds, use the below setting.

```yaml
Worlds:
  Enabled: false
  Worlds:
  - ''
```

### Custom Eating Stats

To configure various settings for eating fish, use the below settings.

```yaml
EatingHunger: 5 #Replace '5' with how much you want.
```

### Excluded from Deliveries

This will make this fish not appear in deliveries.

```yaml
ExcludedFromDelivery: true
```

{% hint style="danger" %}
If you have less then 7 fish in Bronze, Silver, Gold and Diamond that are not exlcuded, you will run into issues with deliveries generating. Support will not be provided for this.
{% endhint %}

### Disable Selling

To make it so your players cannot sell a specific fish, add the below setting.

```yaml
isSellable: false
```

{% hint style="warning" %}
Setting this to false, will also make SellCommands not execute.
{% endhint %}

### Sell Price Override

To make your fish have a unique sell price or amount. Use the below setting.&#x20;

```yaml
SellPriceOverride:
  Enabled: false
  Price: 1000
```

{% hint style="danger" %}
Modifying this will cause <mark style="color:yellow;">**Solar Rage**</mark> and <mark style="color:green;">**Scaling**</mark> to react to this new price, potentionally have adverse affects on your servers economy.&#x20;
{% endhint %}

## API Dependent Configuration Settings

The below features require extra plugin(s) to be installed on your server for these to work.

### Realistic Seasons

To make a fish only catchable during a specific season, use the below configuration setting:

```yaml
RealisticSeasons: WINTER 

//Replace 'WINTER' with the ENUM season of your choice.
```

### Advanced Seasons

To make a fish only catchable during a specific season, use the below configuration setting:

```yaml
AdvancedSeasons: WINTER 

//Replace 'WINTER' with the String season of your choice.
```
