All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Isle of Berk Variant Loader

Isle of Berk Variant Loader

by Nord_Act • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Very Important

Mod requires Forge 40.3.12 or above! Forge may not tell you about this and throw an exception with different error. Mod also is incompatible with Optifine

Description

Adds ability to add new variants with condition support or configure existing ones for Isle of Berk dragons via resource and data packs and change textures, animations or models via nametags. Also adds support adds ability to add glowing layer to the texture. Note: using this mod to add own variants already considers that user is familiar with making resource and data packs (no matter the complexity).

Changes to original mod

This addon changes how some stuff in original mod works gameplay wise:

  • Variant inheritance works for all dragons (can be configured or turned off completely by setting assign_egg_variant_on_breeding and assign_egg_variant_on_placed to false in config)
  • All eggs now can hold variant as NBT that will determine variant of the dragon that will be hatched
  • Odds for dragon spawns and obtaining dragons from breeding are different from base mod

Example Packs

Adding custom variant spawns/editing existing via datapack, making custom pools for obtainable variants via breeding, editing hit and attack boxes, changing passenger positions and more

Variant Loader allows adding their own variants for spawning and breeding, as well as changing hitboxes and even passenger offsets via data packs. It as well adds new advancement triggers and loot function Full explanation on how to use those can be found in documentation

Model redirects, glowing layer and making passenger follow movement of the model

Model redirects is a tool that allows you to replace models, animations and saddle textures per variant for dragons and models with textures for eggs. Example declaration can be found in example resource pack. Full explanation on how to use those can be found in documentation

Config

Mod has client and server config with options that can affect your gameplay experience

Client

  • disable_glowing - Disables glowing layer on textures. Off by default
  • disable_named_variants - Disables variant display via nametag completely, ignoring nametag_accessible field. Off by default
  • display_original_variant_name - Forces actual variant name to be displayed in tooltip (aka one in VariantName NBT)
  • generate_translations - Automatically generates translations for all variants for english language based on presented model redirects for dragons. All generated lines will be printed to log file. Use this only if you're pack developer for making your life easier
  • ignored_by_generator - Prints for variants that have same name as any value in this list will be skipped when translation key generator is used
  • log_model_redirects - Logs any added model redirect in console for easier debugging

Common

  • inheritance_chance - Defines the chance of dragon inheriting variant of their parents. 1 means variant will always be the same as their parents one
  • assign_egg_variant_on_breeding - Enables variant assignment on breeding. If false, all eggs always will have no variant assigned during breeding
  • assign_egg_variant_on_placed - Enables variant assignment when egg is placed and has empty or invalid variant tag. If false, all eggs always will have no variant assigned when placed
  • log_variant_spawns - Logs any added variant spawn in console for easier debugging
  • log_hitbox_redirects - Logs any added hitbox redirects in console for easier debugging
  • log_sound_redirects - Logs any added sound redirects in console for easier debugging
  • log_extras - Logs any added extras in console for easier debugging
  • log_variant_lists - Logs any added variant lists in console for easier debugging
  • log_breeding_lists - Logs any added breeding lists in console for easier debugging
  • alternative_land_navigation - Uses alternative improved navigator for dragons when they're on land. If false, default one will be used
  • breeding_lists_use - Mandates usage of breeding lists

FAQ

Q: Is there any video guide on how to use Variant Loader?\ A: Yes - https://youtu.be/Ettk4RiZnx0

Q: Do I need to add default textures to resource pack?\ A: No! This is only adding to the size of the pack and also may cause conflicts with other packs that rely on texture replacement. Such practice has no benefit

Q: Does adding variant spawn also makes dragon spawn in specific biome(s)?\ A: No, mod does not automatically add dragon spawns in specific biomes. Restricting variant to specific biome only makes variant obtainable in this biome. If dragon can't naturally spawn in specified biome, only way to obtain it would be via hatching/breeding in this biome.

Q: Why my added variants of Speed Stingers are not spawning?\ A: Speed Stinger spawns are tied to structures purely. Either you add them to same biomes where those structures can spawn, add your own structures where they can spawn or try to obtain them via breeding

Q: How do I make variant nametag only?\ A: Just don't add variant spawn via data pack

Q: Can I make variant impossible to be applied via nametag?\ A: Set nametag_accessible in model redirect file to false for your variant

Q: Can I make variant obtainable via only hatching(breeding)/only natural spawn?\ A: If you want variant to only appear via natural spawn, set breeding_weight to 0. If you want it to be obtainable only via breeding, set weight to 0

Q: How can I summon specific variant with Variant Loader?\ A: Use /summon ~ ~ ~ isleofberk:dragon_id {VariantName:name} where name is the name of the variant

Q: Can I add new animations with Variant Loader?\ A: No. Animation names and conditions for them are hardcoded for each dragon individually

Q: My pack is not working/breaks stuff. What went wrong?\ A: Most common mistakes are using upper case letters in file names or paths to the files in packs (Minecraft is very sensitive to this) and malforming .json files. To validate syntax in .json files, you can use online services.

Q: How do I make resource/data pack?\ A: Search engines and YouTube are your best friends. I'm not going to explain this myself, this is out my scope

Troubleshooting

Still have questions? You can either ask on GitHub or hop on New Berk's Dawn Discord Server and ask questions in the mod thread in the extras channel

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
  • Added new loot function iobvariantloader:set_variant_from_collection that sets random variant to dragon egg from specified collections
  • Function has following fields:
  • collections - list of collection names from which entries will be pulled. All collections have equal chance to be pulled from the list.
  • replace_base_if_dragon_mismatch - replaces egg item in case if picked variant belongs to other dragon. You should keep this at false unless it's intended that collection has variants of dragons of different species
  • Note: you have to specify dragon egg item from Isle of Berk in order for this function to work. Otherwise this function does nothing to the stack
  • For example refer to Loot Table Example data pack
  • Fixed issue when breeding list still could select entries with empty variant lists as valid options, thus causing occasional crash
  • Fixed issue when completely empty breeding list entries were counted as valid, which sometimes could lead to crash during breeding
  • Fixed issue that caused Stingers to not follow owner when told to
  • Additionally to fix above, alternative land navigator config setting will also replace follow goal (this is not part of the fix, I just found that it would be better than whatever than IoB did)
  • Fixed broken random position lookup with alt land controller, which prevented taming some dragons
### This update initially released as Beta until stability of it is ensured

  • Fixed extras entry overriding variant group and loot table redirect for existing one even if new entry does not have them specified
## Warning: this update contains some changes that may be breaking for some people or packs without proper configuration of the mod or adjustment to packs

### This update initially released as Beta until stability of it is ensured

  • Added alternative land navigator that should make dragon movement less janky, especially for bigger ones (>1 block wide)
  • Yes, I straight up ripped it out of Useless Reptile
  • You can disable it in config

  • Added Variant Collections
  • Variant collections are collections of lists of dragon variants. Each list can have different base dragon
  • Collections can include other collections
  • There's quite a few build-in collections within mod itself, you can check them out in data/isleofberk/variant_collections
  • Variant Collections are very much inspired by vanilla's tag system (which cannot be used in this scenario due to how Variant Loader works)

  • Added new advancement criteria triggers
  • iobvariantloader:tame_variant_from_collection - triggers when dragon from specified collections is tamed by player
  • iobvariantloader:kill_variant_from_collection - triggers when dragon from specified collections is killed by player

  • Added Breeding Lists
  • Breeding lists allow you to specify pair of dragons in form of either variant lists or/and collections that can produce specified in entries variants
  • Each entry accepts specification of either variant lists or/and collection and weight it has
  • When entry is chosen, dragon variant from entry will be chosen randomly
  • By default, breeding lists are prioritized by mod (can be changed in config)
  • Parent dragons and dragons from entries can have different base dragons (yes, you officially can make hybrids now)
  • If config setting set to PRIORITIZED, dragons will first look for dragons that have a match from available to them breeding lists. If there's none, old behavior will be used as fallback
  • If config setting set to ENFORCED, dragons will breed only using breeding lists (without fallback to old behavior)
  • If you don't want breeding lists to be used at all, you can set said setting to IGNORED
  • Mod comes with build-in breeding lists that can be found in data/isleofberk/breeding_lists

  • Dragon Variant Spawners, Extras, Hitbox Redirects and Sound Redirects now support specifying variant collections as entries
  • If collection is used, dragon field and file name are ignored for dragon species specification. Instead, dragon species will be taken directly from variant lists
  • name field in each one now can also be specified as list, meaning you can specify multiple variants without using collections
  • Entries specified by name are added after entries added by collection, so they can override them

  • Most of build-in Dragon Variant Spawners (in data/isleofberk/dragon_variants) have been redone to use variant collections
  • If you're pack maker and add variants for dragons that do not require special conditions, please check out the changes and consider moving those variants to variant collections of respective rarities, since those are also used in breeding lists

  • Added Custom Item Interactions to Extras
  • Custom item interactions are specified as list in field custom_item_interactions in extras entry
  • They allow you to specify items, required amount of items, if it can be used on untamed dragon, if it can be used on not owned dragon, if should items be consumed on use and commands to be executed on interaction
  • Commands are specified as list of objects that contain command itself and executor (can be either dragon, user (interacting player) or server)
  • For security reasons, all executors have permission level of 2. So no, you cannot stop the server or ban someone by giving your dragon a fish

  • If there's several entries for same dragon species and variant, all Extras entries for this variant of the dragon will be merged
  • Variant group and loot table redirect still will be overridden by last entry added
  • Fixed incorrect variant assignment for Zippleback and Triple Stryke in cases when VariantName was not set
  • Fix geckolib entities duplicating when rendered on passenger layer
  • Bumped min required Forge version to current latest (4.3.11) because someone marked version with critical bug as stable again
  • Terrible Terrors no longer try to eat sticks or other items that are not considered to be their food
  • Fixed Terrible Terrors being picky about their taming items and refusing being tamed if it's not food
  • Fixed sound redirects not applying to Monstrous Nightmare

Due to amount of changes this update initially released as beta. Please report all issues on either GitHub or in [mod thread](https://discord.com/channels/614526777590546453/1146579340738441316)
  • Fixed sound redirects and extras not accepting monstrous_nightmare as valid dragon

Due to amount of changes this update initially released as beta. Please report all issues on either GitHub or in [mod thread](https://discord.com/channels/614526777590546453/1146579340738441316)
  • Fixed crashes with Geckolib versions higher than 3.0.46

Due to amount of changes this update initially released as beta. Please report all issues on either GitHub or in [mod thread](https://discord.com/channels/614526777590546453/1146579340738441316)
  • Fixed datapack failing to load when attempting to add variant spawn for same dragon from several files
  • If there are several sound redirects for same variant, they now will be combined

Due to amount of changes this update initially released as beta. Please report all issues on either GitHub or in [mod thread](https://discord.com/channels/614526777590546453/1146579340738441316)
  • Added sound redirects. Sound redirects allow you to redefine (most of) hardcoded dragon sound, as well as add sound to sound keyframes. This obviously includes ability to change the infamous dragon flapping sound.
  • Due technical limitations, sound redirects needed to be done in data pack
  • Some sound names are hardcoded to be used as redirects for hardcoded sounds
  • For more info on feature [check example datapacks README.md](https://github.com/NordAct/IoB-Variant-Loader/tree/2.5.0/Example%20Data%20Packs)

  • Added extras files for various miscellaneous variant-dependent stuff, such as:
  • Loot table redirect - specifies loot table ID that will replace default one and from which loot on death will be dropped
  • Attribute modifiers - specifies variant attribute modifiers, allows you to control variant's health, speed, armor, etc
  • Taming items - items with which dragon can be tamed. Overrides default item(s), so empty field can be used to make dragon unnameable
  • Breeding items - items with which dragon can be bred. Overrides default item(s), so empty field can be used to make dragon impossible to be bred
  • Variant group - adds NBT field VariantGroup that has value specified in this field. VariantGroup cannot be changed by normal means (via commands), only via extras file. Can be useful for developers who use NBT selectors for easier selection
  • For more info on feature [check example datapacks README.md](https://github.com/NordAct/IoB-Variant-Loader/tree/2.5.0/Example%20Data%20Packs)

Due to amount of changes this update initially released as beta. Please report all issues on either GitHub or in [mod thread](https://discord.com/channels/614526777590546453/1146579340738441316)
  • Added baby_texture, baby_model, baby_animation and baby_saddle model redirect fields
  • They act exactly the same as their counterparts without baby_ prefix
  • Anything placed in those fields will be applied only if dragon is baby
  • If those fields are not specified, baby models, animations and textures will be applied normally

  • Improved readability of model redirect data, hitbox redirect and variant spawn debug prints in logs
  • They also are now printed in normal log instead of debug one

  • Added options log_model_redirects in client config and log_variant_spawns and log_hitbox_redirects in common config. Both are set to false by default
  • If log_model_redirects set to false, information about registered model redirects will not be printed in logs
  • If log_variant_spawns set to false, information about registered variant spawns will not be printed in logs
  • If log_hitbox_redirects set to false, information about registered hitbox redirects will not be printed in logs

  • Added dragon field for model redirects, hitbox redirects and variant spawns.
  • dragon field allows to specify dragon ID to which this file belongs. If specified, file name will be ignored
  • If dragon is not specified, it'll attempt to define dragon ID from file name as before
  • Field must be specified outside entry list for all cases, i.e.:
``json
{
"dragon": "some_dragon",
"redirects": [
...
]
}
`

  • Now if mod is unable to recognize dragon ID in model redirect, hitbox redirect or variant spawn file, file will be skipped and warning will be printed in console

  • Added Jade integration for displaying dragon and egg variants in tooltip
  • Additionally added display_original_variant_name client config option that can enforce display of string form VariantName` NBT in dragon variant tooltip
  • Fixed glowing layer on eggs causing crash
  • Fixed missing mixin refmap (I have no idea how it didn't include it as I literally didn't touch ANYTHING related to it, bruh)
  • Fixed glowing layer being applied incorrectly when dragon has passenger riding it
  • Fixed serverside crash caused by Forge being the worst mod loader to ever exist
  • Added hitbox redirects. **Note: hitbox redirects are applied via checking base variant and will not be applied if you use nametag.**
  • Hitbox redirects should go in hitbox_redirects folder in your data pack under any namespace.
  • For each species file should be named respectively (i.e. triple_stryke for Triple Stryke and monstrous_nightmare for Monstrous Nightmare)
  • Each record in hitbox redirects file can have the following fields:
  • name - name of the variant to which will be affected, mandatory
  • passenger_positions - overrides passenger positions relative to the entity, optional. Presented in form of an array that contains relative positions, which are itself are arrays with size of 3, for each passenger in order. I.e. writing like this:

``json
"passenger_positions": [
[-1, 2, 0],
[2, 3, -3]
]
`
means that first passenger (aka controlling passenger or rider) will be offset on -1, 2 and 0 on x, y and z axis respectively relative to vehicle (aka dragon in our case) entity's center. Second passenger will be offset on 2, 3 and -3 on x, y and z axis respectively relative to the center. If there's no redirect for passenger position is found, passenger will be positioned according to how base mod does it.

  • hitbox - overrides entity's hitbox, optional. Has the following fields: width and height. Both are mandatory. If not specified, default hitbox will be used
  • attack_box - overrides attack box sizes for dragons that have it (Gronkle, Stinger, Triple Stryke), optional. Just like hitbox, has width and height fields and both are mandatory
  • attack_box_position - position of attack box relative to the entity, written as array of 3 numbers, which are x, y and z coordinates relative to the entity. Optional. If not specified, the box will be positioned like in base mod


  • Added possibility to make passenger model follow movement of specific bones
  • This means that Variant Loader will automatically look up for bones called passengerN to position passenger model relative to this bone. N here represents passenger's number, where count starts from 0 (first passenger will have number 0, thus mod will look for bone passenger0, second will have number 1 and mod will look for passenger1 and so on).
  • If specific bone is not present, passenger will be rendered normally


  • Fixed bug that caused variants that applied via nametags to be applied incorrectly if those variants didn't have redirects that base variant has
  • Fixed issue that caused model caches to be reset incorrectly, which caused all sorts of weird visual issues with models
  • Mod now will automatically assign corresponding Variant Loader variant according to variant id from base mod if it can't find. This means you no longer have to fix dragon variants manually when adding Variant Loader to existing worlds
  • Added new surface_restriction field to spawn conditions that allows to define if dragon has or has not to be on surface in order to spawn
  • If place has dragon spawn, but no variants, dragon will now simply not spawn. If it still manages to spawn, mod will set variant to default and warn in logs instead of throwing exception
  • If spawn has weight over 0 and no allowed or banned biome restrictions specified, allowed biomes will automatically be restricted to Overworld ones (via #forge:is_overworld` tag)
  • Fix egg item model redirects overriding item models of eggs of other variants
  • Client config no longer creates unnecessary backup files (bug fix)
  • Updated translation/localisation key generator to support new localisaton keys
  • Translation/localisation key generator now only generates keys for variants that have model redirect
  • Added possibility to redirect egg textures, models and item models per variant
  • Added possibility to redirect localisation keys used for dragon and egg entities and egg item if those don't have custom name (this may not work for already existing eggs, thank IoB's sheetcode)
  • Minimal required Forge version is now 40.2.10
  • Added possibility to specify full path to asset file in model redirects
  • Some perfomance enchasements
  • Variants with capital letters in the name no longer crash the game
## The 2.0.0 update
Initially released as beta due amount of changes

### Changelog:
  • Entire backend was rewritten, so some unexpected things may be expected
  • Added asset path caching for optimization
  • Added inheritance for breeding (behaviour can be edited via config)
  • By default there's 70% chance to inherit parent's variant (independent from place of breeding). If config value inheritance_chance (in iob_variant_loader.toml) set to 0, variant from breeding will be always random
  • Eggs of all species now can have predetermined variant
  • If egg has variant, it'll be applied on hatching (behaviour can be edited via config)
  • Variant on the egg determined by place of parents breeding rather the place of egg hatching (behaviour can be edited via config)
  • The variant that egg has is shown at tooltip. If it's invalid, some gibberish will appear

### Regarding data and resource packs:
  • Added field "nametag_accessible" for model redirects. If set to false, this variant cannot be applied via nametag. If not specified, defaults to true
  • Variant name shown in tooltip can be edited via language file (changes only displayed name in tooltip, doesn't change actual name of the variant)
  • Deadly Nadder membranes now accept it's own glowing layer
  • Added field "breeding_weight" for variant spawn declaration. Determines weight of the variant in breeding. If set to 0, variant cannot be obtained from breeding. If not specified, defaults to value specified in "weight"
  • "weight" field is now only responsible for variants for wild dragons (naturally generated)
All old packs should work as before

### Added client config (iob_variant_loader-client.toml) with following fields:
  • disable_glowing - disables glowing layer on dragons. False by default
  • disable_named_variants - disables nametag variants, instead shows actual dragon variant. False by default
  • generate_translations - autogenerates translation keys for variants added via resource packs
  • ignored_by_generator, ignored_by_generator_endings - some filters for key generator
  • Glow layer is now can be added as texture file rather than .mcmeta file (just add "*texturename*_glowing.png" alongside regular texture (in case of this example regular texture would be "texturename.png"))
  • Saddle texture now can be redirected
  • Fixed mod trying to look path for "gronkle" instead of "gronckle" within assets folder
Fix crash when model redirect is used within the pack that is in archive format
  • Mod will now check its presence on client if installed on server to avoid any possible issues caused by its absence
  • Improved reading of json files, so those pesky errors of failed datapack reading should be gone
Added possibility to redirect animation and model files for specific names or variants via resource packs (check example resource pack to see how to do it)
Isle of Berk Variant Loader Icon
Download Isle of Berk Variant Loader
Select game version
Select platform