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:

ChangeInformation
Coats are named, not numbered

It is no longer possible to modify the coat via Variant number NBT

SWEM Command: /swem set coat <id:coat> 

Coats appear white via /summon

Summon specific coats via /swem summon <model> <id:coat>

Default Coats: /swem summon LEGACY swem:sweetboi 

Custom Coats: /swem summon LEGACY pack_name:coat_artist 
Random Coat: /swem summon LEGACY 

Coats apply to a specific modelContinue 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+. 

  • Recommend naming + noting coat types, coat changes are possible but should be fine.
  • Texture packs that override existing SWEM coats will continue to work if files are correctly named.
  • Datapack (community creation) for naturally spawning horses is supported (compatible). 
  • Add-on mods may break, please be patient and allow the creators time to bug fix if necessary.
    → Currently Reported:
    Tre's Tackshop
  • Config settings need to be copied over to new folders to keep settings!
    → Common, Client and Recipe configs now generate in config/swem
    → Horse Data file now generates in saves/<save>/swem

Frequently Asked Questions (Dropdown)

FAQs

Can community packs support tack, breed models, animations?
Currently, no. It is planned to add tack and animation support at a later date - and expand on the models as part of development. Texture packs that add new models to override the default model should still work.

Can community packs add foal variants?
Currently, no. The current system only supports one foal per color tag (white, gray, black, brown etc) - supporting additional foals would require a more realistic genetics system. Of course if you want to overhaul foals anyway, you can continue to texture pack override the default coats. 

Can community packs be used on servers?
Yes, provided all clients must the necessary resources (community pack). Please be mindful of creators and abide by their terms of using, including appropriate distribution of content files.

Can community packs be used server-side only (not needed by client)?
Probably not easily, or in such a way that does not violate terms of use for custom content creators.

Can server clients create a texture pack override for CUSTOM coats?
Clients can replace the PNG to override a specific coat - the replacement file must have the same name. The override will only be visible to them.

Can coats still be changed via NBT command?
Yes, the MC command is /data modify entity @e[type=swem:swem_horse,limit=1,sort=nearest] Behaviors[6].Coat set value <id:coat>. Alternatively, use the simple command: /swem set coat <id:coat> 

Can I use a different content pack for each save?
Community Packs apply to all saves for that instance or profile. You could manually switch out to packs to see different options, but that would probably be more effort than it is worth.

Can the natural spawning datapack (community creation) be used with these new coats?
Yes, this datapack was specifically tested and code/commands fixed to continue to support this.

Can custom coats appear from cantazarite conversion?
Yes, if conversion is allowed in configs.

Can you or what happens if...
Add a new coat 
   → You can safely add new community packs AND new coats at any time provided you quit and reload!
   → If you forget to add the json, the coat will not be registered (not an option to select coat, no cycling etc)
   → If you forget to add the png, the coat will be registered but will appear black.
Alter coat information Requires a game quit and reload!
   → You can safely modify credits, inspiration, obtaining, color tags at any time provided you quit and reload!
   → If you change file name or model path this will remove the coat from any using it, and create a new coat.
Remove a coat
   → You can safely remove community packs or coats at any time provided you quit and reload! 
   → If you remove the json + png or just the json, the coat will not register and will appear white coat on next load.
   → If you only remove the PNG, the horse(s) using it will appear black.
Join a server with packs the server does not have
   → TBC

Can I fix my horse after accidentally removing a pack or coat?
Yes - if a coat is removed, the still horse retains their information (but not texture) for that coat unless modified! You can easily add back the correct community pack and/or files with the same name and model information to see the correct texture again.

Can you alter the color tag data of default (SWEM) coats?
No, these are hard coded. You can continue to override the textures if you want to alter their appearance, but unless you do so with similar coats or colors the tags will not be logical when breeding. 

Can I see the details of a coat (artist, name, tags etc) I get in game?
To be confirmed if this is officially supported (non-OP command or GUI display) but coat data can be shown using the command: /data get entity @e[type=swem:swem_horse,sort=nearest,limit=1] Behaviors[6].Coat


Using Community Packs

You can have multiple packs, but each FOLDER (no zips) must have a unique lowercase name, such as pack_1 and pack_2

To install a prepared community pack, simply paste the folder into config > swem > community-packs

To access the coat in game:

  • Convert - requires breeding tokens config to be FALSE.
  • Cycle coats - requires cycle coat config and lapis_cyclable json to be TRUE.
  • Breeding - requires obtainable_by_breeding json to be TRUE and color tags set.
  • Summon /swem summon LEGACY swem:coat OR  /swem summon LEGACY pack_name:coat_artist

Creating & Modifying Community Packs

To create a new 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 TypeLocationDescription
🖼️ .pngconfig > swem > community-packs > textures > coats > legacyTexture to be used for the custom coat.
🗒️ .jsonconfig > swem > community-packs > jsons > coatsInformation 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"]

Try to use 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 try to represent realism (IE: bay = red + black will result in unrealistic outcomes such as a chestnut foal -> bay horse). 

CreditsThe artist(s) to credit. This can be one, or multiple separated by a comma.
InspirationThe inspiration or reference, ie "Secretariat" or "Bay Roan Sabino"
ModelsThe horse model it uses, this should use legacy model (original) until Destrier+ is added!
Lapis CyclableObtainable by cycling with lapis and redstone, if enabled.
Obtainable By BreedingObtained by breeding, using color tags (below).
Base ColorsDetermines '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 (IE: chestnut foal -> bay horse). 

Default JSON

{
  "credits": "Artist(s)",
  "inspiration": "N/A",
  "models": {
    "legacy": "default:coats/legacy/coatname_artist.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.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


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 mods for their content every image you upload; nice if you do, but optional!
→ It should only be expected 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 not impossible that 2+ users might have the same idea, share the same reference, or take inspiration!
→ It should be expected that any work clearly and directly 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 may be less likely to reupload (or more likely to use) if files are accessible.
→ It is suggested to providing prepared creator pack(s) or themed 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 
Texturepack: Coat Overrides

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

📂 TXP_name
📂 assets📂 swem
📂 textures
📂 entity
📂 horse
📂 coats
🖼️ coat_name.png
🖼️ pack.png🖼️ coat_name.png
🗒️ pack.mcmeta📂 foal (optional)
File TypeDescriptionNote
📂 TXP_nameA folder with the name of your texture pack
🖼️ pack.pngPNG image for your pack - displayed in game.This must remain named pack.png
🗒️ pack.mcmetaInfo on your pack's credits, description and version(s)This is a text-type document (ie notepad)
🖼️ coat_name.pngPNG 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