# Coats [NEW]
This feature is available in **1.20.1-1.5+** and will **NOT** be backported to any outdated versions.
#### Features Community packs add NEW custom coats in-game without overriding the default variants. - Supports simple breeding "color tags" - Supports lapis / redstone cycling (if enabled) - Supports summon command - Supports natural spawning **via compatible community datapacks** --- #### Important - Update Changes This update has made changes to coat NBT data, summon commands as well as some smaller (less gameplay significant) changes. Expand the drop-down to read more about specific changes and how that might impact you as a player or creator.**Feature** | **Changes** |
Summon | Minecraft `/summon` spawns white horses only (cannot randomize). ** NEW SWEM SUMMON COMMANDS** `/swem summon LEGACY swem:coat` Summon a default coat. **EX:** `swem:sweetboi` `/swem summon LEGACY pack_name:coat_artist` Summon a custom coat. **EX:** `kofi:hidalgo_arishant` `/swem summon random LEGACY` Summon a random coat |
Coat Data | Removed `Variant: #` NBT and changed to `Behaviors[6].Coat`
Data values for coat must set a value using ` *MC Commands are exempt from role keys (ie swem:mod) - which may be useful to servers.* **Identify a coat (ID)** `/data get entity @e[type=swem:swem_horse,sort=nearest,limit=1] Behaviors[6].Coat` **Change a coat** `/data modify entity @e[type=swem:swem_horse,limit=1,sort=nearest] Behaviors[6].Coat set value <"id:coat">` |
Model | Coats and commands must state a supported model - this will be expanded in future. `LEGACY` Default model and the only one currently implemented. |
This update has been modified to continue support for Ace's Datapack found [**HERE**](https://discord.com/channels/715626418893095012/840972393153691738/1022973584181841981) in our Discord.
⮞ **CAN CUSTOM COATS SUPPORT LAPIS / REDSTONE CYCLING?** Yes. This must be set to true for `lapis_cycling` in the coat json file, and `allowCoatCycling` in the [server config](https://wiki.swequestrian.com/books/swequestrian-mod/page/server-config) file. ⮞ **CAN CUSTOM COATS APPEAR FROM BREEDING DEFAULT +/- CUSTOM COATS?** Yes. This must be set to true for `obtainable_by_breeding` in the coat json file. You must set at least one `base_colors` tag - this will determine which color tags your horse can pass on if bred, as well as which foal color(s) can grow up into this coat. ⮞ **CAN I MAKE A CUSTOM COAT 'SECRET'?** Yes, but not in the same way as special default coats. You can set `lapis_cycling` and `obtainable_by_breeding` to **false** in the coat json file, which will prevent cycling and appearance by breeding or converting. **The coat will only appear if summoned via command.** If you have the right kind of knowledge, you could probably create a custom datapack or redstone system loop to check for and convert horses that meet 'secret coat criteria' (ie height and name), or other crafty ways to achieve this result.**It is not recommended to modify packs from a Creator unless you intend to customize it and solve any issues.** ✅ You should follow this troubleshooting guide to identify your likely issue first. ✅ You should notify Creator's of potential problems with the **default pack** (might need a fix or update). **❌** You should NOT expect Creator's to investigate issues you might have caused by altering their original files!
**⮞ ISSUE \[3\]** - Check the community pack: → Pack is directly in `config > swem > community-packs` → Pack is a **folder** and not a zip file! **→** Pack has a valid **lowercase** name with **no spaces** ✅`artist_kofi` **❌** `Artist Kofi Coats` **→** Pack includes at least one `.json` and `.png` file in the **correct folder** 📁 jsons > 📁 coats > `JSON FILES HERE` 📁 textures > 📁 coats > 📁 legacy > `PNG FILES HERE` If this is **ALL** correct the issue is not the community pack structure. **Go back to Step \[4\] above.** **⮞ ISSUE \[4\]** - Identify a coat that is missing in game - Check the **.json** file for the coat → File is listed as a `JSON File` type → File is directly in `community-packs > artist_packname > jsons > coats` → File has a valid **lowercase** name with **no spaces** ✅`coatname_artist` **❌** `Coat - Artist` → File texture path uses ✅ `"legacy": "legacy/coatname_artist.png"` **❌** `"legacy": "default:legacy/` If this is correct, the most likely issue is formatting (invalid json). → Compare your json to the template and note any missing `"` `,` or `{ }` or different indentation → If unsure, delete and rewrite the .json file using a blank template → Reload the game and repeat **Step \[4\]** above. If this is **ALL** correct or changes did not work, paste your **.json** file in [Tech Help](https://discord.com/channels/715626418893095012/997404105704210432) in our Discord **⮞ ISSUE \[5\]** - Identify a coat with a black (missing) texture - Check the **.json** file for the coat → File uses `legacy` model line (not any for future models) → File texture path uses ✅ `"legacy": "legacy/coatname_artist.png"` **❌** `"legacy": "default:legacy/` → File texture path has the **exact** name used by the coat texture **.png** file - Check the .png file for the coat → File is listed as a `PNG File` type → File is directly in `community-packs > artist_packname > textures > coats > legacy` → File has a valid **lowercase** name with **no spaces** ✅`coatname_artist` **❌** `Coat - Artist` - `MULTIPLAYER SERVERS` → Client (player) has community pack(s) with the same name (ID) as those on the server. → Client (player) has **.png** files with the same names as those in the server pack. If you cannot check this due to permissions, you will need to contact server admins. **⮞ \[6\] OTHER OR NOTHING WORKED** - Create a post in [Tech Help](https://discord.com/channels/715626418893095012/997404105704210432) in our Discord → Describe your issue(s) and **what you have tried** → Upload your latest.log file to provide info that may help others assist you ** DO NOT UPLOAD PAID/PRIVATE PACKS WITH TEXTURES FROM CREATORS WITHOUT CONSENT **