Skip to main content

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 <id: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.

Updating An Existing World

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 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)

FAQs

                                                                                                                                                    SUPPORT & FEATURES                                                                                                                                                   

⮞ NEW MODELS?
It is planned to expand on the models as part of development, but breeds will not be added.
This update will not break texture packs that override the SWEM model.

⮞ NEW ANIMATIONS?
Support for new animations is planned for a later date.

NEW TACK?
Support for new tack is in progress and will be released in the near future.

NEW FOALS?
Foals are limited to 7 variants, one per possible color tag inherited from breeding.
Support for additional foals will require an expanded genetics system - this is planned for future development.

⮞ MODIFYING DEFAULT COAT INFO?
Information such as obtainable by breeding, color tags, lapis cycling cannot be edited for default coats, only custom coats.

⮞ NATURALLY SPAWNING HORSES?
Custom coats can appear on converted vanilla or RHG horses, but default or custom coats do not naturally spawn in the wild.
This update supports the community creation datapack for naturally spawning horses.

BREEDING AND LAPIS CYCLING?
Custom coats can be obtained from lapis cycling or breeding if set to enabled in the coat json file.
Coat cycling must be enabled in serverconfig to allow the use of lapis or redstone cycling coats.

                                                                                                                                               USE ON SAVES & SERVERS                                                                                                                                         

⮞ EXISTING SAVES?
Community packs should be safe to use with existing save files.

⮞ DIFFERENT SAVE FILES?
Community packs apply to all saves for that instance or profile. It is not possible to have save-specific community packs without manually changing switching them each time.

⮞ MULTIPLAYER SERVERS?
Community packs should work on servers, provided all players have the community pack.
Please be mindful of creators and do not distribute or use content in a way that is not explicitly permitted!

⮞ MULTIPLAYER SERVERS (SERVER SIDE ONLY)?
Community packs on server only may not be possible and would likely violate the terms of use for custom content.

⮞ OVERRIDE MULTIPLAYER SERVER COATS?
Community packs are essentially a resource pack when you are a client. You can replace png(s) with different textures, provided they are named the same. This will only be visible to you.

⮞ MODIFY THE JSON INFO OF A CUSTOM COAT ON MULTIPLAYER SERVERS?
Community packs use the data of the server or host - client side edits will only apply to your singleplayer saves.

⮞ PLAY SERVERS (NO CUSTOM COATS) WITH A COMMUNITY PACK INSTALLED?
TBC. Probably fine.

                                                                                                                                 MODIFYING A COMMUNITY PACK                                                                                                                                 

⮞ ADD NEW COATS (EXISTING SAVE)
You can add a new coat at any time, but need to close and reload the game to apply the new coats.

⮞ MODIFY COATS (EXISTING SAVE)
You can modify coats at any time, but need to close and reload the game for changes to apply.
   → If you rename a coat, it will be registered as a NEW coat and any horses using it will turn white.
   → If you modify the model path, any horses using it will appear fully black unless a valid texture is provided.
   → If you alter json information, it will only apply to future instances (ie breeding colors to pass on).
   → DO NOT REMOVE CREDITS (original creator) or falsely claim ownership (plagiarism / art theft).

⮞ REMOVE COATS (EXISTING SAVE)
You can remove coats at any time, but need to close and reload the game for changes to apply.
   → If you remove a coat, any horses using retains their coat ID but becomes white unless a new coat is assigned.
   → If you only remove the PNG, any horses using it will appear fully black unless a texture is provided.

⮞ FIX ACCIDENTALLY REMOVED COATS (EXISTING SAVE)
You can fix white horses (default coat) by re-adding community packs or coat file(s) to restore them on next reload.

⮞ REASSIGN REMOVED COATS (EXISTING SAVE)
You can change coats easily with /swem set coat <id:coat> or cycle with lapis (if enabled). An alternative command is:
/data modify entity @e[type=swem:swem_horse,limit=1,sort=nearest] Behaviors[6].Coat set value <id:coat>

                                                                                                                                                                                 OTHER                                                                                                                                                                                 

⮞ SEE COAT NAME?
It is not currently possible to find out the name or artist for a coat in-game without using a command:
/data get entity @e[type=swem:swem_horse,sort=nearest,limit=1] Behaviors[6].Coat


Using Community Packs

To add a prepared (ready to use) community pack:

STEP ONE: GENERATE THE NEW FOLDERS (FIRST TIME LOAD)

  1. Install the mod update.
  2. Load the game to the menu screen.
  3. Exit the game.

STEP TWO: DOWNLOAD A COMMUNITY PACK

  1. Download a community pack.
    → A prepared community pack including FREE coat donations can be found here!
  2. Unzip (if necessary) so the file is a folder.
    → You should have a folder with pack_name > json / textures etc  
    → Check the folder is NOT embedded inside another ie pack_name > pack_name 
  3. Cut or copy the pack_name folder.
  4. Go to config > swem > community-packs and paste it.
    → It should look like: config > swem > community-packs > pack_name > json / textures etc 

OTHER INFORMATION

  • You can have multiple packs but they must have a unique name ie pack_1 and pack_2
  • You can rename a texture pack, but you should not if it is already in use.
    → Community packs must be in lowercase with underscores for any spaces.
    → ✅ kofi_coats Kofi Coats 
  • You can add, alter or remove from community packs - see FAQ above.
  • You can access coats in game by the following methods:
    → Converting vanilla or RHG horses if breeding tokens config is FALSE.
    → Cycling coats if cycle coat in config and lapis_cyclable in json is TRUE.
    → Breeding if  obtainable_by_breeding in json is TRUE.
    → Summon via /swem summon LEGACY pack_name:coat_artist

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.

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.

JSON files

JSON is a file that contains the important information SWEM needs to integrate a custom asset into the game and systems such as coat cycling or breeding. This is essentially code and needs to be filled out carefully to avoid causing errors!

  • Type within the quotations " " unless directed to do otherwise.
  • Keep all formatting including brackets ( ) { } [ ] 
  • Separate coat tags by a comma (delete as applicable) until the final variable.
    ["white","chestnut"] ["white","chestnut",]
  • lapis_cyclable and obtainable_by_breeding must be true or false 
  • base_colors must use valid color tags options
    ["black","gray","white","creamy","brown","dark_brown","chestnut"] ["buckskin","dun"]
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). 

Default JSON

{
  "credits": "Artist(s)",
  "inspiration": "N/A",
  "models": {
    "legacy": "default:coats/legacy/coatname_artist_legacy.png",
    "destrier": "",
    "heavy_draft": "",
    "western_sport": "",
    "english_sport": "",
    "riding_pony": ""
  },
  "lapis_cyclable": true,
  "obtainable_by_breeding": true,
  "base_colors": ["black","gray","white","creamy","brown","dark_brown","chestnut"]
}

Example JSON

{
  "credits": "Bob Jones, Jon Bobs",
  "inspiration": "Inspired by Valegro (Dressage Horse)",
  "models": {
    "legacy": "default:coats/legacy/valegro_bobjones_legacy.png",
    "destrier": "",
    "heavy_draft": "",
    "western_sport": "",
    "english_sport": "",
    "riding_pony": ""
  },
  "lapis_cyclable": false,
  "obtainable_by_breeding": true,
  "base_colors": ["brown","dark_brown"]
}


PNG files

To create a new coat, or edit and existing one for the SWEM horse model you will need to use a program like Blockbench. The resources for this are pinned in our blockbench channel on Discord


Overriding Default Coats

You will still need to use a texture pack to override default SWEM coats. This has not changed with this update.

Texturepack: Coat Overrides
📂 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

image.png

Shown: Coat file names for all default SWEM coats in 1.20.1-1.5.0


Note To Content Creators

This update will support you in sharing your content to a wider audience, as players no longer have to carefully pick and choose for a limited number of coats to override, and your coats can integrated into breeding and coat cycling (if enabled). To transition properly away from texture packs, we recommend:

  • Upload your content in an appropriate format, such as a pack or individual json and png files.
    → Continuing to provide texture packs is up to you!
  • Set simple, clear and easy to follow terms of use (TOU) or fair-use guidelines.
TOU Info + Example
WARNING

By sharing your content publicly, you should acknowledge that there is very limited legal recourse to enforce appropriate use of your content, license or not. Using a highly restrictive terms of use is setting yourself up for frustration when it is inevitably violated, so for your sake and enjoyment of players we encourage sharing in a similar way to mods; allow anyone to use it for public or private use provided downloads or support goes directly to the creator (ie via Kofi). 

RECOMMENDATIONS

Avoid 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 conditions 

Known Issues

If you find an issue, please report it to our bugs channel on Discord. We ask that you look to see if your issue was reported first!

  • Community Packs not loading - fixed in swem-1.20.1-1.5-beta-5 (COMING ASAP)

Changelog

View Changes

This is not a complete list of version changes / fixes. It is a changelog of relevant wiki-related version information.

MC Version Release Notes