Isle of Berk Variant Loader

Isle of Berk Variant Loader

Mod

Support for data-driven dragon variants for Isle of Berk mod

Client and server DecorationLibrary Mobs

14.6k downloads
11 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
  • 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:
                "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)

  • Glow layer support (example)
  • Ability to add variants to spawn pool without overwriting main file in iobvariantloader namespace (example)

Fixed crash caused by unremapped mixin

Added dragon variant name assignment for eggs

Initial release


Project members

Nord_Act

Owner

Details

Licensed MIT
Published a year ago
Updated 7 days ago