# Community Packs Community Packs are our integrated system to dynamically add custom content made by the community without the requirement for additional code. # General Information General Information Community Packs -> Whole Packs (ex. a completed pack with all textures, names, and coins) Content Packs -> Sets of Content able to be put into Community Packs (ex. a few peices of tack textures with their matching jsons) # Community Packs
Community Packs are available for SWEM **1.20.1-1.5+**. This feature will not be backported to older releases!
#### Update Changes - Important The community pack feature allows users to add NEW coats to the game instead of overriding existing coats (texture pack). To support this feature, the following changes were made:**Change** | **Information** |
Coats are named, not numbered | Coats cannot be altered via Variant NBT
**New Command:** `/swem set coat |
Coats appear white via /summon | Coats cannot be summoned via Minecraft's /summon. **New Command:** `/swem summon LEGACY swem:sweetboi` Default coats `/swem summon LEGACY pack_name:coat_artist` Custom coats `/swem summon random LEGACY` Random coat |
Coats apply to a specific model | Continue to use legacy (original) until new models are supported. |
Please read this information carefully and **backup your save** (recommended) **before** updating to 1.20.1-1.5.0+.
- Existing coats should be unaffected. - Texture packs (swem override) should be unaffected. - Datapack (fan-made) for [naturally spawning horses](https://discord.com/channels/715626418893095012/840972393153691738/1022973584181841981) is patched to work as normal! - Config will need to be copied (or edited again) in new folders to keep settings: → Common, Client and Recipe configs now generate in `config/swem` - **THIS UPDATE WILL PROBABLY BREAK ADD-ONS: PLEASE BE PATIENT AS CREATORS UPDATE THEIR MODS! →** Reported: Tre's Tackshop --- #### Frequently Asked Questions (Dropdown)If you have not altered configs already, you probably do not need to do so, these should all be DEFAULT settings.
--- #### Creating & Modifying Custom Community Packs To create a **new** community pack: **OPTION A: DOWNLOAD THE TEMPLATES (DISCORD)** - A downloadable (blank) Community Pack and JSON can be found [HERE](https://discord.com/channels/715626418893095012/748632231257440336/1266941242630209589). **OPTION B: CREATE A COMMUNITY PACK** 1. Inside `config > swem > community-packs`: → Create a folder with the pack name ✅ `kofi_coats` **❌** `Kofi Coats` 2. Inside `pack_name`: → Create a folder called `jsons` → Create a folder called `textures` 3. Inside `jsons`: → Create a folder called `coats` 4. Inside `textures`: → Create a folder called `coats` 5. Inside `textures > coats`: → Create a folder called `legacy` To add content to a new or existing community pack: 1. Create or download the coat **.png** file → Name it using `coat_artist_model` format ✅ `hidalgo_arishant_legacy` **❌** `Hidalgo Arishant-legacy` → Put this in `community-packs > pack_name > textures > coats > legacy` 2. Create or download a **.json** file with the coat credits and information → Name it the same as the coat .png! → Put this in `community-packs > pack_name > jsons > coats`📂 config | 📂swem | 📂community-packs | 📂pack\_1 | 📂jsons | 📂coats | 🗒️coat1\_artist.json | |
📂textures | 📂coats | 📂legacy | 🖼️coat1\_artist.png | ||||
📂pack\_2 | 📂jsons | 📂coats | 🗒️coat2\_artist.json | ||||
🗒️coat3\_artist.json | |||||||
📂textures | 📂coats | 📂legacy | 🖼️coat2\_artist.png | ||||
🖼️coat3\_artist.png | |||||||
Shown: The file structure for community packs, this example shows 2 packs (1 + 2) with 3 total coats. |
**File Type** | **Location** | **Description** |
🖼️ .png | `config > swem > community-packs > textures > coats > legacy` | Texture to be used for the custom coat. |
🗒️ .json | `config > swem > community-packs > jsons > coats` | Information on artist(s) and obtaining. |
**Credits** | The artist(s) to credit. This can be one, or multiple separated by a comma. |
**Inspiration** | The inspiration or reference, ie *"Secretariat"* or *"Bay Roan Sabino"* |
**Models** | The horse model it uses, this should use **legacy model (original)** until Destrier+ is added! |
**Lapis Cyclable** | Obtainable by cycling with lapis and redstone, if enabled. |
**Obtainable By Breeding** | Obtained by breeding, using color tags (below). |
**Base Colors** | Determines 'genetics' to pass on to foal, and selection of adult coats on growing up. |
Set tags you would expect to **get a coat from** (**IE:** black foal -> black horse) and **NOT** the genetics the horse might **pass on**. Color tags and breeding outcomes are very basic and realism (**IE:** bay = red + black will result in unrealistic breeding and coat selection outcomes such as chestnut foal -> bay horse). |
📂 TXP\_name | 📂 assets | 📂 swem | 📂 textures | 📂 entity | 📂 horse | 📂 coats | 🖼️ coat\_name.png |
🖼️ pack.png | 🖼️ coat\_name.png | ||||||
🗒️ pack.mcmeta | 📂 foal **(optional)** | ||||||
Shown: The file structure for texture packs overriding default horse +/- foal coats. |
**File Type** | **Description** | **Note** |
📂 TXP\_name | A folder with the name of your texture pack | |
🖼️ pack.png | PNG image for your pack - displayed in game. | This must remain named `pack.png` |
🗒️ pack.mcmeta | Info on your pack's credits, description and version(s) | This is a text-type document (ie notepad) |
🖼️ coat\_name.png | PNG for the coat to override. | This must be named as in swem files |
Coat names in SWEM files might not accurately align to in-game values. Example: `swem:sweetboi` = `13_m_sweetboi`
[](https://wiki.swequestrian.com/uploads/images/gallery/2024-07/image.png) **Shown:** Coat file names for all default SWEM coats in 1.20.1-1.5.0Avoid **editing** an agreement or expecting users to remain informed of any minor (or major) alterations.
Post your agreement where it can be **easily referenced** when browsing or downloading your content. → It is ideal to have a public reference (ie Kofi post) and provide it with files or included in descriptions. → It is not recommended to require access to an external source (ie Discord server) **unless you host files there!**
Avoid **requiring** credit for use in media; it should be encouraged but **no credits does not equal insult!** → **It is not standard practice to credit every creation (ie mods!)** in images you upload; nice if you do, but optional! → It should only be "required" that users **credit where appropriate** (inspiration or reference), and **not falsely claim.**
Avoid **prohibiting** inspiration or reference; **similarity is not proof of plagiarism!** → It is possible for users to have the same idea, share the same reference, or take respectful inspiration! → It should be expected that any work **clearly and** **directly** referenced or inspired by your creation is credited.
Avoid **restrictive** use policies that are difficult to monitor and enforce. → It is an unfortunate reality that players +/- servers will violate agreements, especially if they are restrictive. → There is limited legal recourse to address this; so state what you are **willing and able to action if necessary!**
Consider providing content in a compact format with **minimal individual downloads**! → It is your choice, but players and servers will be less likely to distribute (or more likely to use) **easily** accessible files. → It is suggested to provide creator pack(s) in bundles such as 'Bays', 'Pintos', '2023 Coats'
Avoid uploading to **unsafe file hosting sites** or encouraging users to engage in **unsafe internet habits**. → It is recommended to use popular sites such as Kofi, Google Drive.
##### **EXAMPLE TERMS OF USE (NOT A LEGAL CONTRACT OR LICENSE)** - `OWNERSHIP & AGREEMENT` → The creator (name) retains all rights of ownership to this content → The right to use this content is granted to you (player) in accordance with this agreement - `USE` → This creation `can/not` be used in content (images, videos) - credits are optional but appreciated. → This creation `can/not` be used privately in singleplayer or a small private group. → This creation `can/not` be used publicly in multiplayer. → This creation `can/not` be used in reasonable commercial services `with/without` consent. ✅🚫 Offered as part of a service (ie random / selected coat change) requiring real money ✅🚫 Offered as a prize or reward for activity or events requiring real money ✅🚫 Offered as an unlock via crowdfunding or engagement (ie server cost covered -> unlock) **NOTE: Commercial services must abide by Minecraft's EULA** - `DISTRIBUTION` → This creation `can/not` be reuploaded `with/without` consent `and/or` credits `and/or` payment. ✅🚫 Limited private use by friends or small groups ✅🚫 Custom Community Packs (folder) ✅🚫 Custom Modpacks (zip) ✅🚫 Exceptions: Paid vs Free, Commissions (paid) or Gifts (prizes) ✅🚫 Other: File Hosting Sites, Discord Servers etc - `ALTERATIONS` → This creation `can/not` be altered `with/without` consent and `with/without` credits for `public/private` use. ✅🚫 Texture ✅🚫 Information (json: name, description, color tags etc) ✅🚫 Other conditionsThis is not a complete list of version changes / fixes. It is a changelog of relevant wiki-related version information.
**MC Version** | **Release** | **Notes** |
This feature is available in **1.20.1-1.5+** and will **NOT** be backported to any outdated versions.
Community packs allow players to add NEW custom coats in-game without overriding the default variants. --- #### Important - Update Changes**Features** | **Changes** |
**Summon** | Minecraft `/summon` results in 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** | NBT no longer uses `Variant: #` and instead uses `Behaviors[6].Coat`
Data modify commands must set a valid value using ` *MC Commands are exempt from role key restrictions - which may be useful to some servers.* **Get the value (id + name) of a Horse's coat** `/data get entity @e[type=swem:swem_horse,sort=nearest,limit=1] Behaviors[6].Coat` **Change the value of a Horse's 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 specify model - this is to support **future** options. `LEGACY` Default model and the only one currently supported. |
There can still be other errors that prevent a pack working, but this criteria means the pack is set up correctly!
**⮞ WHAT IF PACKS HAVE AN IDENTICAL NAME?** Community Packs could share a generic name like `free_coats` or `kofi_coats`. Generally, this is not an issue, but you should be aware: - Folders will merge into one that includes the files of each - File will not override or replace unless they have an identical name This is **unlikely** if Creators use the recommended format of `coatname_artist` This could replace updated (fixed) files with outdated ones that share the same name This could replace optional variant files with alternatives (ie coat with shoes vs coat withoutAlways check that merged files maintain the correct folder structure and file names are valid (ie not coat\_name\_copy)
**⮞ WHAT IF IT ASKS ME TO REPLACE FILES?** There is no correct answer to this: - Replacing existing files to update a texture error is usually fine. - Replacing existing files to update coat info for breeding tags, inspiration info is usually fine. - Replacing existing files with outdated files could revert changes (replace with pre-fix version) If you replace a file with a broken texture or non-functional json, you will need to fix it or re-download the original!Always read the Creator's Terms Of Use (TOU) as significant non-private alterations or reupload may be prohibited!
**⮞ CAN I UPLOAD A COMMUNITY PACK +/- MODIFIED?** `PNG FILES` The Creator has the right to set and enforce appropriate use of their content. - You should not modify, distribute or monetize their work without explicit consent - This includes uploading their work in any public platform (ie Discord, for use by a MP server) `JSON FILES` These files are an asset under SWEM and not the property of Creator(s). - You can re-upload them for **free.** - You can provide JSON override packs. This **excludes** any modification with **false credits**, **removed credits** or unreasonable modification to inspiration. This **excludes** any uploads that includes PNG files without Creator' consent. This must comply with any platform or community guidelines (ie no unapproved uploads). **⮞ CAN I RENAME A PACK? Multiplayer **No. This may prevent you from seeing any custom coats, even if you have all the correct files. ** Singleplayer **Yes, this can be useful to organize your custom content or use simpler in-game pack IDs. You must set a unique **lowercase** name with no spaces or symbols for the pack to remain valid. **⮞ CAN I RENAME A COAT? Multiplayer **No. This may prevent you from seeing any custom coats, even if you have all the correct files. ** Singleplayer **Yes, though this is **not recommended**. - Changes must be updated for json and png file, as well as the json texture path. - The coat will appear white on reload unless provided with alternative files for the previous ID + name.You should continue to use standard naming format `coatname_artist` with **appropriate artist credit** by name!
**⮞ CAN I EDIT COAT INFORMATION (JSON)? Multiplayer **Yes, however: - Client-side edits will only apply to singleplayer worlds. - Server-side edits will apply to all players, regardless of their individual pack settings. `Texture Path` Players must replicate this to avoid seeing black horses (missing texture) ** Singleplayer **Yes, it is generally safe to modify coat info.You should not remove or modify Artist credits +/- reference and inspiration comments.
Always read the Creator's Terms Of Use (TOU) significant non-private alterations or reupload may be prohibited!