# Server Config

<p class="callout success">Information targets the latest **supported** release. For legacy (older) versions and bug fixes, read the changelogs.</p>

<p class="callout danger">This page is a **WORK IN PROGRESS** and may contain inaccurate or placeholder information or links.</p>







#### **Introduction**

<p class="callout info"> **Multiplayer:** Configuration files on servers override any "client-side" (player) or pack settings while you play on that server.</p>

Server configuration files tweak settings that apply to **ALL** worlds created for the current mod pack.

<table border="1" id="bkmrk-multimc-right-click-" style="border-collapse: collapse; width: 100%; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 18.9882%;"></col><col style="width: 81.131%;"></col></colgroup><tbody><tr><td style="border-style: hidden;">**MULTIMC**  
</td><td style="border-style: hidden;">Right click pack icon → <code>Config Folder</code> → <code>swem&#45;server&#46;toml</code></td></tr><tr><td style="border-style: hidden;">**CURSEFORGE**</td><td style="border-style: hidden;">Right click pack icon → <code>Open Folder</code> → <code>config</code> → <code>swem&#45;server&#46;toml</code></td></tr><tr><td style="border-style: hidden;">**FORGE (WINDOWS)**</td><td style="border-style: hidden;">Open file explorer → <code>&#91;user&#93;&#47;AppData&#47;Roaming&#47;&#46;minecraft&#47;config&#47;swem&#45;server&#46;toml</code></td></tr><tr><td style="border-style: hidden;">**FORGE (MAC)**</td><td style="border-style: hidden;">Open finder → <code>&#126;&#47;Library&#47;Application Support&#47;minecraft&#47;config&#47;swem&#45;server&#46;toml</code></td></tr></tbody></table>

<p class="callout danger">Prior to **`1.21.1`** server config files are located under `saves` → `worldname` → `serverconfig` → `swem-server.toml`  
</p>

---

#### **World Override `Neoforge 1.21+`**

It is possible to set custom configuration for specific worlds (override default file).   
Paste a **copy** of the `swem-server` file into `saves` → `worldname` → `serverconfig`. **Edit. Save. Relaunch.**

---

#### **Important**

Configuration files have a specific format, and allow you to change **limited** values. Inputting invalid information or adjusting the file format can invalidate configuration file loading, world loading or result in game crashes.

It is important to read the file carefully and only change supported values.

- `#` is a comment to provide information on the feature and valid range or options
- `Range` means values must be within a set limit `Example:` 0-100
- `Default` is the setting used when the file is first generated and may be noted for reference

<p class="callout info">If you suspect your config file is corrupted or invalid, delete it and reload the game to regenerate the file.</p>

---

#### **Default Configuration**

This is the default configuration file, containing **12** adjustable settings.

<details id="bkmrk-default---1.21.1-1.1"><summary>Default - 1.21.1-1.6.12</summary>

```
# || =========== [Horse Care] =========== ||
[horse_care]
	# || Do horses need to eat? (Default = True = Yes)
	needFood = true
	# || Do horses need to drink? (Default = True = Yes)
	needWater = true
	# || Enable Poop ticking on swem horses? (Default = True = Yes)
	poopTick = true
	# || Specify range (radius) that the horses search for food/water. The larger the  radius, the more lag it can cause per horse.
	# || We recommend "15" (30b diameter) for servers.
	# Default: 15
	# Range: 5 ~ 40
	intakeSearchRadius = 15
	# || Specify in seconds the interval between each poop cycle.
	# || We recommend '1800' (30min) for singleplayer, and '2700' (45min) for multiplayer.
	# Default: 1800
	# Range: > 1
	poopInterval = 1800
	# || Enable Pee ticking on swem horses? (Default = True = Yes)
	peeTick = true
	# || Specify in seconds the interval between each pee cycle.
	# || We recommend '1500' (25min) for singleplayer, and '2700' (45min) for multiplayer.
	# Default: 1500
	# Range: > 1
	peeInterval = 1500
	# || Specify how many seconds it takes for the foal to growp up?
	# || We recommend '1800' (30min) for singleplayer, and '28800' (8hr) for multiplayer.
	# Default: 1800
	# Range: > 1
	foalAgeInSeconds = 1800
	# || Specify how many minutes the Health Booster lasts for?
	# || We recommend '600' ~(30mc days) for singleplayer, and '10,000' ~(504mc days / 7irl days) for multiplayer.
	# Default: 600
	# Range: > 1
	healthBoosterTime = 600

# || =========== [Horse Breeding] =========== ||
[horse_breeding]
	# || Enable Breeding Tokens? This limits breeding of horses to Tokens, prevents feed from escalating foal growth time, and limits use of canatazarite potions.
	# || Enable if the server is multiplayer and has an economy.
	tokensBreeding = false
	#
	# || Do horses stay in love mode forever? (Default = False = No)
	# || If false, horses will only be in love mode for the amount of seconds specified in stallionLoveTime and mareLoveTime.
	permanentLoveMode = false
	#
	# || Specify how many seconds the stallion stays in love mode (Only has an effect if permanentLoveMode is false).
	# || We recommend '1800' (30min) for singleplayer, and '28800' (8hr) for multiplayer.
	# Default: 1800
	# Range: > 1
	stallionLoveTimeInSeconds = 1800
	#
	# || Specify how many seconds the mare stays in love mode (Only has an effect if permanentLoveMode is false).
	# || We recommend '1800' (30min) for singleplayer, and '28800' (8hr) for multiplayer.
	# Default: 1800
	# Range: > 1
	mareLoveTimeInSeconds = 1800
	#
	# || Specify how many seconds it takes for the mare to give birth
	# || Set to 1 to disable gestation period, and making the birth instant.
	# || We recommend '1800' (30min) for singleplayer, and '28800' (8hr) for multiplayer.
	# Default: 1800
	# Range: > 1
	mareGestationTimeInSeconds = 1800
	#
	# || Specify how many seconds it takes for the stallion to be able to breed again.
	# || We recommend '900' (15min) for singleplayer, and '14400' (4hr) for multiplayer.
	# Default: 900
	# Range: > 1
	stallionBreedingCooldownInSeconds = 900
	#
	# || Specify how many seconds it takes for the mare to be able to breed again.
	# || We recommend '1800' (30min) for singleplayer, and '28800' (8hr) for multiplayer.
	# Default: 1800
	# Range: > 1
	mareBreedingCooldownInSeconds = 1800
	#
	# || Specify how many times a stallion can breed before it is infertile.
	# || Disable infertility option by setting it to '0'.
	# Default: 0
	# Range: > 0
	maxStallionCovers = 0
	#
	# || Specify how many times a mare can breed before it is infertile.
	# || Disable infertility option by setting it to '0'.
	# Default: 0
	# Range: > 0
	maxMareCovers = 0
	#
	# || Specify the chance of a mare giving birth to twins (Default = 1,000 = 0.1%)
	# || If the value is higher than 1,000 the odds go down, if the value is lower than 1,000 the odds go up.
	# || We recommend '1000' (1/1000 chance) for singleplayer, and '15000' (1/15000 chance) for multiplayer.
	# Default: 1000
	# Range: > 1
	twinBirthChance = 1000
	#
	# || Should infertile horses be able to be made fertile again (by giving a male/female/random potion)?
	refertile_horses = true
	#
	# || If enabled, a Stallion will look for a fertile Mare to breed without need of items.
	natural_breed_chance = false

# || =========== [Tack Dependencies] =========== ||
[tack_dependencies]
	# || Is the Bridle slot required before equipping a Blanket? (Default = True = Yes)
	needBridle = true
	# || Is the Blanket slot required before equipping a Saddle? (Default = True = Yes)
	needBlanket = true
	# || Is the Saddle slot required before equipping the Girth Strap,  Breast Collar, and/or Saddlebag? (Default = True = Yes)
	needSaddle = true
	# || The Rider and Saddle should fall off if there is no Girth Strap equipped. (Default = True = Yes)
	needGirthStrap = true
	# || Are all Tack slots required before equipping Horse Armor? (Default = True = Yes)
	needAll = true
	# || The Bridle is needed to steer the horse. (If disabled, you would still need a saddle). (Default = True = Yes)
	needBridleToSteer = true

# || =========== [Horse Experience Levels] =========== ||
[horse_experience_levels]
	# || Amount of XP required to max a horse's Speed stat.
	# || We recommend '13500' for singleplayer, and '100000' for multiplayer.
	# Default: 13500
	# Range: > 1
	maxSpeedXP = 13500
	# || Amount of XP required to max a horse's Jump stat.
	# || We recommend '13500' for singleplayer, and '100000' for multiplayer.
	# Default: 13500
	# Range: > 1
	maxJumpXP = 13500
	# || Amount of XP required to max a horse's Health  stat.
	# || We recommend '13500' for singleplayer, and '100000' for multiplayer.
	# Default: 13500
	# Range: > 1
	maxHealthXP = 13500
	# || Amount of XP required to max a horse's Affinity stat.
	# || We recommend '17000' for singleplayer, and '50000' for multiplayer.
	# Default: 17000
	# Range: > 1
	maxAffinityXP = 17000

# || =========== [Server Admin] =========== ||
[server_admin]
	# || Enable Coat Cycling (via lapis lazuli and redstone)?
	# || Do not enable if the server is multiplayer and has an economy.
	allowCoatCycling = true
	# || Can Secret Coats be obtained via Secret Items? (Default = True = Yes)
	# || Do not enable if the server is multiplayer and has an economy.
	allowSecretCoats = true
	# || Enable the horse's food/water systems to be based off the 24 hour day?
	# || This is recommended for servers ONLY.
	serverTime = false
	# || Required only is 'serverTime' config is enabled.
	# || The hour at which morning hungy time triggers (Local to the server).
	# Default: 7
	# Range: 0 ~ 23
	morningHungyTime = 7
	# || Required only is 'serverTime' config is enabled.
	# || The hour at which evening hungy time triggers (Local to the server).
	# Default: 20
	# Range: 0 ~ 23
	eveningHungyTime = 20
	# || Should xp cost for renaming items in an cantazarite anvil be removed?
	removeXpRenameCost = true
	# || Should the perks provided by the Amethyst Armor (excluding Amethyst Riding Boots) be disabled?
	disableAmethystPerks = false
	# || Should the rider be teleported with the horse if the horse should fall into the void whilst the horse is wearing Amethyst Tier Armor.
	voidTP = true
	# || List of coats ids that should not be obtainable
	# || Example: ["swem:salamarty_arishant_cytris", "swem:mr_ed", "swem:joey_this_esme", "swem:delta_malli"]
	blacklistedCoatIds = []
	# || Enable SWEM's built-in permission node system for controlling player use of commands.
	# || This is recommended for servers ONLY.
	enableKeyPermission = false
	# || What horses should spawn? Vanilla horses only, SWEM horses only, or Both?
	#Allowed Values: VANILLA_ONLY, SWEM_ONLY, BOTH
	horseSpawn = "BOTH"
	# || Enables fireworks to be shot out of jumps and barrels when horses touch them.
	fireworkDisplay = false
	# || Should winged horse fly without requirement of Amethyst Horse Armor?
	wingedHorseFly = true
	#|| How much to heal the player wearing Netherite+ Riding Boots as a percentage of damage dealt.
	# Default: 0.05
	# Range: 0.01 ~ 1.0
	lifesteal = 0.05

```

</details>---

#### **Multiplayer Servers**

Please note, default configuration is aimed at the average Singleplayer user. Configuration for Multiplayer use, especially with a strong Equestrian focus, or balance on rate of reproduction, training etc will require specific adjustments to suit your individual needs.

Read the full configuration file carefully to observe any recommendations on Multiplayer specific settings!

---

#### **Adjustable Values - Horse Care**

##### Food &amp; Water

<details id="bkmrk-read-me%3A-disabling-n"><summary>READ ME: Disabling Needs System</summary>

If you wish to disable the needs system entirely, please note the following:

- Disabling the needs will <span style="color: rgb(224, 62, 45);">**NOT**</span> fix any existing missing meals or drinks, fix these via commands.
- Disabling eating or drinking will <span style="color: rgb(224, 62, 45);">**NOT**</span> prevent horses eating completely, they will eat until food points are satisfied, then stop.
- Disabling eating and drinking prevents daily point resets and calculations from occurring on subsequent day cycles.

</details>Enable or disable food and water system.

```
	needFood = true
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `true` - horses reset hunger points (AM) and calculate meals (PM) daily.*</p>

```
	needWater = true
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `true` - horses reset thirst (AM) and calculate drinks (PM) daily.*</p>

Set the distance in blocks that horses will search for food and water sources, and prioritize choosing preferred types (ie bales over grass).

```
	intakeSearchRadius = 15
```

<p class="callout info">*This accepts **whole** numbers from `5-40`. Default is `15` - Horses search 15B outwards (30B radius) for food and water sources.*</p>

<p class="callout warning">*If set too low, horses may struggle to find suitable sources to satisfy their needs. If set too high or with many horses, lag may occur.*</p>

---

##### Pee &amp; Poop

Set the duration between poop cycles.

```
	poopInterval = 1800
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1800` - poop events (spawn poop entity) typically occur every 30 minutes **while loaded**.*</p>

Set the duration between pee cycles.

```
	peeInterval = 1500
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1800` - pee events (set block) typically occur every 25 minutes **while loaded**.*</p>

---

##### Foal Growth

Set the duration for foals to grow up into adults. ` ONLY<strong> AFFECTS FOALS BORN <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! </strong>`

```
	foalAgeInSeconds = 1800
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1800` - foals fully grow up in 30 minutes, only increases **while loaded**.*</p>

---

##### Booster Shots

Set the duration of effect for [booster](https://wiki.swequestrian.com/books/star-worm-equestrian/page/booster-shot) shots. ` ONLY<strong> AFFECTS HORSES BOOSTED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! </strong>`

```
	healthBoosterTime = 600
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `600` - booster effect expires after 600 minutes, only decreases **while loaded**.*</p>

---

#### **Adjustable Values - Horse Breeding**

##### Breeding Tokens

Enable or disable breeding tokens (uncraftable). Replaces [Rose Feed](https://wiki.swequestrian.com/books/star-worm-equestrian/page/rose-feed) as the breeding item. **Intended for Multiplayer servers.**

```
	tokensBreeding = false
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `false` - breed horses using the default [rose feed](https://wiki.swequestrian.com/books/star-worm-equestrian/page/rose-feed) (craftable).*</p>

---

##### Permanent Love Mode

Enable or disable permanent love mode. If enabled Horses remain "<span style="color: rgb(224, 62, 45);">In Love</span>" and seek a partner until they successfully breed.

```
	permanentLoveMode = false
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `false` - horses remain "in love" for a short duration before it expires.*</p>

---

##### Love Mode Duration

Set duration of "<span style="color: rgb(224, 62, 45);">In Love</span>" status for stallions.   ` ONLY<strong> AFFECTS HORSES BRED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! / IGNORED IF PERMANENT = TRUE</strong>`

```
	stallionLoveTimeInSeconds = 1800
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1800` - stallions remain in love mode for 30 minutes, only decreases **while loaded**.*</p>

Set duration of "<span style="color: rgb(224, 62, 45);">In Love</span>" status for mares.   ` ONLY<strong> AFFECTS HORSES BRED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! / IGNORED IF PERMANENT = TRUE</strong>`

```
	mareLoveTimeInSeconds = 1800
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1800` - mares remain in love mode for 30 minutes, only decreases **while loaded**.*</p>

---

##### Gestation Duration

Set duration of pregnancy (gestation) for mares. ` ONLY<strong> AFFECTS HORSES BRED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! </strong>`

```
	mareGestationTimeInSeconds = 1800
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1800` - mares give birth after 30 minutes, only decreases **while loaded**.*</p>

---

##### Breeding Cooldown

Set duration of breeding cooldown for stallions.  ` ONLY<strong> AFFECTS HORSES BRED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! </strong>`

```
	stallionBreedingCooldownInSeconds = 900
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `900` - stallions cannot breed for 15 minutes, only decreases **while loaded**.*</p>

Set duration of breeding cooldown for mares.   ` ONLY<strong> AFFECTS HORSES BRED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! </strong>`

```
	mareBreedingCooldownInSeconds = 1800
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1800` - mares cannot breed for 30 minutes, only decreases **while loaded**.*</p>

---

##### Breeding Limits

Set limit on number of breedings for stallions.  ` ONLY<strong> AFFECTS HORSES BRED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! </strong>`

```
	maxStallionCovers = 0
```

<p class="callout info">*This accepts **whole** numbers over `0`. Default is `0` - stallions have no limits to how many times they can breed.*</p>

Set limit on number of breedings for mares.   ` ONLY<strong> AFFECTS HORSES BRED <span style="text-decoration: underline;">AFTER</span> THIS SETTING IS CHANGED! </strong>`

```
	maxMareCovers = 0
```

<p class="callout info">*This accepts **whole** numbers over `0`. Default is `0` - mares have no limits to how many times they can breed.*</p>

---

##### Twins Chance

Set chance (odds 1 in #) for mares to give birth to twin foals.

```
	twinBirthChance = 1000
```

<p class="callout info">*This accepts **whole** numbers over `1`. Default is `1000` - 1 in 1000 births (0.1%) chance of producing twins.*</p>

---

##### Fertile Toggle

Enable or disable permanent <span style="color: rgb(224, 62, 45);">infertility</span> status.

```
	refertile_horses = true
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `true` - horses can be given a <span style="color: rgb(224, 62, 45);">male/female/random potion</span> to reverse infertility.*</p>

---

##### Natural Breeding

Enable or disable stallions being permanently "In Love" and able to breed with fertile mares nearby.

```
	natural_breed_chance = false
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `false` - horses will **always** require <span style="color: rgb(224, 62, 45);">breeding items</span> to reproduce.*</p>

---

#### **Adjustable Values - Tack**

##### Tack Order

Enable or disable limitations on what order tack must be equipped in.

```
# || Is the Bridle slot required before equipping a Blanket? (Default = True = Yes)
	needBridle = true
```

```
# || Is the Blanket slot required before equipping a Saddle? (Default = True = Yes)
	needBlanket = true
```

```
# || Is the Saddle slot required before equipping the Girth Strap,  Breast Collar, and/or Saddlebag? (Default = True = Yes)
	needSaddle = true
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `true` - <span style="color: rgb(224, 62, 45);">tack </span>must be equipped in a set order (bridle, blanket, saddle, girth).*</p>

---

##### Girth Strap

Enable or disable automatic removal of the saddle and dismounting of the rider when a girth is not equipped.

```
	needGirthStrap = true
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `true` - <span style="color: rgb(224, 62, 45);">girth </span>must be equipped before mounting a horse.*</p>

---

##### Horse Armor Requirements

Enable or disable requirements on a full set of <span style="color: rgb(224, 62, 45);">Adventure Tack</span> to equip <span style="color: rgb(224, 62, 45);">Horse Armor</span>.

```
	needAll = true
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `true` - full set (**inc. wraps + breast collar**) is required to equip armor.*</p>

---

##### Bridle Requirement

Enable or disable requirements on a bridle to steer the horse. **If disabled, a saddle is still required!**

```
	needBridleToSteer = true
```

<p class="callout info">*This accepts **boolean** values of `true` or `false`. Default is `true` - horses cannot be "steered" without a bridle (halters do not count).*</p>

---

#### **Adjustable Values - Experience Levels**

##### Skill Experience

Set <span style="color: rgb(224, 62, 45);">experience</span> required to reach maximum level in each <span style="color: rgb(224, 62, 45);">skill</span>.

```
	maxSpeedXP = 13500
```

```
	maxJumpXP = 13500
```

```
	maxHealthXP = 13500
```

```
	maxAffinityXP = 17000
```

<p class="callout info">*This accepts **whole** numbers (integers) over `1`. Default is `13500` experience for max. [skill](https://wiki.swequestrian.com/books/star-worm-equestrian-lite/page/skills) level, or `17000` for affinity.*</p>

<p class="callout warning">**Multiplayer:** Values are aimed at Singleplayer and it is common for **Equestrian** servers to set `50-100,000+` </p>

---

#### **Adjustable Values - Server Admin**

##### Coat Cycling

Enable or disable changing horse coats in survival.

```
	allowCoatCycling = true
```

<p class="callout info">*This accepts `true` or `false`. Default is `true` and permits coat cycling (change) **owned** horses using <span style="color: rgb(224, 62, 45);">lapis and redstone</span>.*</p>

---

##### Secret Coats

Enable or disable converting horses into a <span style="color: rgb(224, 62, 45);">secret coat</span> using the correct process or items.

```
	allowSecretCoats = true
```

<p class="callout info">*This accepts `true` or `false`. Default is `true` and allows players to obtain special coats in survival.*</p>

---

##### Server Time

Enable or disable horse mealtimes using <span style="color: rgb(224, 62, 45);">real life (24hr) time system</span>. ` <strong>SUITABLE FOR <span style="text-decoration: underline;">SOME</span> MULTIPLAYER / DO NOT USE IN SINGLEPLAYER </strong>`

```
	serverTime = false
```

<p class="callout info">*This accepts `true` or `false`. Default is `false` and uses Minecraft day cycle to execute hunger and thirst routines at set game times.*</p>

Set the real life time (local to the server) horses <span style="color: rgb(224, 62, 45);">reset their hunger and thirst points</span>. ` <strong>IGNORED IF SERVERTIME = FALSE </strong>`

```
	morningHungyTime = 7
```

<p class="callout info">*This accepts **whole** numbers over `0` and below `23`. Default is `7` - horses reset their needs at 7AM, **if they are in a loaded chunk.***</p>

Set the real life time (local to the server) horses <span style="color: rgb(224, 62, 45);">calculate their meals</span>. ` <strong>IGNORED IF SERVERTIME = FALSE </strong>`

```
eveningHungyTime = 20
```

<p class="callout info">*This accepts **whole** numbers over `0` and below `23`. Default is `20` - horses reset their needs at 8PM, **if they are in a loaded chunk.***</p>

---

##### Anvil Rename Cost

Enable or disable free item (ie nametags) renaming in <span style="color: rgb(224, 62, 45);">Cantazarite Anvils</span>.

```
	removeXpRenameCost = true
```

<p class="callout info">*This accepts `true` or `false`. Default is `true` - cantazarite anvils can rename an item without XP cost or increments.*</p>

---

##### Amethyst Perks

Enable or disable additional perks (excluding armor protection values) for <span style="color: rgb(224, 62, 45);">Amethyst Player Armor</span>.

```
    disableAmethystPerks = false
```

<p class="callout info">*This accepts `true` or `false`. Default is `false` - Amethyst armor retains all perks, specific to the item type or tier equipped.*</p>

---

##### Void TP

Enable or disable teleporting the horse and rider if they fall into the void.

```
	voidTP = true
```

<p class="callout info">*This accepts `true` or `false`. Default is `true` - teleport horse/rider to spawn if falling into the void with <span style="color: rgb(224, 62, 45);">Amethyst Horse Armor</span>.*</p>

---

##### Blacklisted Coats

Set restrictions on coats that can be obtained via breeding, natural spawning and spawn eggs. <span style="background-color: rgb(224, 62, 45); color: rgb(255, 255, 255);"> **TBC** </span>

```
# || List of coats ids that should not be obtainable
	# || Example: ["swem:salamarty_arishant_cytris", "swem:mr_ed", "swem:joey_this_esme", "swem:delta_malli"]
	blacklistedCoatIds = []
```

<p class="callout info">*This accepts `swem:coatid` of default swem coats. <span style="color: rgb(224, 62, 45);">Community pack coats</span> can be individually restricted via their JSON files.*</p>

---

##### Key Permissions

Enable or disable the built in <span style="color: rgb(224, 62, 45);">permission node</span> system. ` <strong>SUITABLE FOR <span style="text-decoration: underline;">SOME</span> MULTIPLAYER / DO NOT USE IN SINGLEPLAYER </strong>`

```
	enableKeyPermission = false
```

<p class="callout info">*This accepts `true` or `false`. Default is `false` - commands are not restricted to players with "key" permissions.*</p>

---

##### Spawning

Enable or disable <span style="color: rgb(224, 62, 45);">natural spawning </span>of SW horses during world exploration.

```
	horseSpawn = "BOTH"
```

<p class="callout info">*This accepts `BOTH` or `VANILLA_ONLY` or `SWEM_ONLY`. Default is `BOTH` - lite **and** vanilla horses naturally spawn.*</p>

---

##### Obstacle Fireworks

Enable or disable fireworks when colliding with <span style="color: rgb(224, 62, 45);">jumps and barrel </span>obstacles. `<strong> CAN CAUSE REFUSALS / MINOR DAMAGE TO HORSES (JUMPS) </strong>`

```
	fireworkDisplay = false
```

<p class="callout info">*This accepts `true` or `false`. Default is `false` - fireworks are not activated on contact with an obstacle.*</p>

---

##### Winged Flight

Enable or disable ability for "natural winged horses" (ie Pegasus) to fly without <span style="color: rgb(224, 62, 45);">Amethyst Horse Armor</span>.

```
	wingedHorseFly = true
```

<p class="callout info">*This accepts `true` or `false`. Default is `true` - default <span style="text-decoration: underline;">and</span> custom pegasus (set in JSON file) can fly **without** armor.*</p>

---

##### Lifesteal

Set decimal value of the Lifesteal effect in <span style="color: rgb(224, 62, 45);">Netherite+ riding boots</span>. `  <strong>IGNORED IF DISABLEAMETHYSTPERKS = TRUE</strong>  `

```
	lifesteal = 0.05
```

<p class="callout info">*This accepts **decimal** numbers from `0.01-1.0`. Default is `0.05` - 5% damage is healed by <span style="color: rgb(224, 62, 45);">Netherite+ riding boots</span>. `1.0` = 100%*</p>

---

#### **Additional**

<p class="callout warning">Files change from `.toml` to `.toml.bak` if entries are invalid or a file was regenerated. Check regularly when updating or editing files!</p>

Configuration file updates are uncommon and *usually* harmless, but you may need to regenerate files or reapply custom settings.

---

#### **Known Issues**

You can report any mod issues to our bugs forum on **[Discord](https://discord.com/channels/715626418893095012/1123695058496000240)** - please check for duplicate reports first!

---

#### **Changelog**

<details id="bkmrk-view-changes-this-is"><summary>View Changes</summary>

<p class="callout info">This is not a complete list of changes or features. It is a log of wiki-related version information and may be outdated.</p>

<table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 11.7429%;"></col><col style="width: 10.8801%;"></col><col style="width: 77.377%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(52, 5, 93);"><span style="color: rgb(255, 255, 255);">**MC Version**</span></td><td class="align-center" style="background-color: rgb(52, 5, 93);"><span style="color: rgb(255, 255, 255);">**Release**</span></td><td class="align-center" style="background-color: rgb(52, 5, 93);"><span style="color: rgb(255, 255, 255);">**Notes**</span></td></tr><tr><td class="align-center"><code>1&#46;21&#46;1</code></td><td class="align-center"><code>1&#46;6&#46;12</code></td><td>Page established - Information prior to <code>1&#46;6&#46;12</code> is not specifically included but is likely the same.</td></tr></tbody></table>

</details>