
Isle of Berk Variant Loader
Support for data-driven dragon variants for Isle of Berk mod
- 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 playeriobvariantloader: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,
dragonfield and file name are ignored for dragon species specification. Instead, dragon species will be taken directly from variant lists namefield in each one now can also be specified as list, meaning you can specify multiple variants without using collections- Entries specified by
nameare added after entries added by collection, so they can override them
- If collection is used,
-
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_interactionsin 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
- Custom item interactions are specified as list in field
-
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
- 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
- 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
- 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
-
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
-
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
VariantGroupthat has value specified in this field.VariantGroupcannot 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
Due to amount of changes this update initially released as beta. Please report all issues on either GitHub or in mod thread
-
-
Added
baby_texture,baby_model,baby_animationandbaby_saddlemodel 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
- They act exactly the same as their counterparts without
-
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_redirectsin client config andlog_variant_spawnsandlog_hitbox_redirectsin common config. Both are set tofalseby default- If
log_model_redirectsset tofalse, information about registered model redirects will not be printed in logs - If
log_variant_spawnsset tofalse, information about registered variant spawns will not be printed in logs - If
log_hitbox_redirectsset tofalse, information about registered hitbox redirects will not be printed in logs
- If
-
Added
dragonfield for model redirects, hitbox redirects and variant spawns.dragonfield allows to specify dragon ID to which this file belongs. If specified, file name will be ignored- If
dragonis 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.:
{ "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_nameclient config option that can enforce display of string formVariantNameNBT in dragon variant tooltip
- Additionally added
-
- 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_redirectsfolder in your data pack under any namespace. - For each species file should be named respectively (i.e.
triple_strykefor Triple Stryke andmonstrous_nightmarefor Monstrous Nightmare)-
Each record in hitbox redirects file can have the following fields:
name- name of the variant to which will be affected, mandatorypassenger_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:
"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:widthandheight. Both are mandatory. If not specified, default hitbox will be usedattack_box- overrides attack box sizes for dragons that have it (Gronkle, Stinger, Triple Stryke), optional. Just likehitbox, haswidthandheightfields and both are mandatoryattack_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
-
- Hitbox redirects should go in
-
Added possibility to make passenger model follow movement of specific bones
- This means that Variant Loader will automatically look up for bones called
passengerNto position passenger model relative to this bone.Nhere represents passenger's number, where count starts from 0 (first passenger will have number 0, thus mod will look for bonepassenger0, second will have number 1 and mod will look forpassenger1and so on). - If specific bone is not present, passenger will be rendered normally
- This means that Variant Loader will automatically look up for bones called
-
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_restrictionfield 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_overworldtag)
-
- 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
