# 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">` **Note:** ID will be `swem:` for any swem coats. **EX:** `swem:sweetboi` Foals use `swem:foal_ |
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 edit community packs that you require on a server - try to keep server / client files the same!
Wrongly formatted JSON files can break your pack - use [Creators Corner](https://wiki.swequestrian.com/books/swequestrian-mod/page/creators-corner-wip#bkmrk-adding-custom-coats) for info if you don't know what you're doing!
**FOR VERSION 1.20.1-1.5 OR ABOVE, YOU NEED TO MANUALLY UPDATE THE OFFICIAL PACK. SEE [HERE](https://discord.com/channels/715626418893095012/997404105704210432/1311507572422869074) (DISCORD)**
- Skip this step if you are not using the official Community Pack. **→** Check you have `swem_community_pack_beta_5` or above. **→** Check this is the latest version posted - it may have a new release! **→** `Multiplayer Servers` Check server has the correct pack **→** `Multiplayer Users` Check clients have the same pack name + contents as server **⮞ \[3\] COMMUNITY PACK LOADING** - Open the game and load into a world - Type `/swem summon LEGACY` **→** Is the pack listed? **→** Is **any** pack listed (excluding `swem:`) ✅ Pack(s) are recognized **❌** Pack(s) are not recognized, specific packs are invalid or have no valid files. **Go to solutions \[3\].** **⮞ \[4\] COAT REGISTERED** - Type `/swem summon LEGACY packname:` **→** Is the coat(s) you expect to see listed? **Example** `kofi_coats:spirit_arishant_legacy` ✅ Coat(s) have registered. **❌** Coats have not registered OR specific coat(s) are invalid. **Go to solutions \[4\].** **⮞ \[5\] JSON -> TEXTURE PATH** - Summon coat(s) from the pack **→** Do coat(s) have a texture that is correct for that horse? ✅ Coat(s) have the correct texture **❌** `Black Texture` Texture path or file name is invalid or missing. **Go to solutions \[5\]. `Multiplayer` Player is missing the pack or no texture for that coat path. **Go to solutions \[5\].** **❌** `Wrong Coat` Texture path or file name is incorrect. **Go to solutions \[4\]. ❌** `Looks Wrong` Texture or UV map error. **Contact Coat Artist or request help.** **⮞ \[6\] OTHER** - `Lapis Cycling` **→** If you cannot cycle **any** coats using lapis or redstone, it is disabled in server config. **→** If you can cycle coats, but some options are missing, it is disabled in the coat **.json** file. - `White Texture` **→** If a coat is white, the pack or coat .json files were removed or renamed **→** If that is not the case, information in .json may have an error (invalid format) **Go to solutions \[5\].** - `Texture Error` **→** If a coat appears broken (color in wrong places, missing pixels, marker blocks) it needs a texture or UV fix. **→** If you are not the coat artist, contact the original creator. - `Error On Load / Crashing` **→** Too many potential causes **→** Paste your **latest.log** file in [Tech Help](https://discord.com/channels/715626418893095012/997404105704210432) in our Discord with a description of the issue(s). **SOLUTIONS & SUGGESTIONS** **ALWAYS SHUT DOWN THE GAME + RELOAD AFTER MAKING CHANGES****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 **