Pixel Dream StudiosWiki

Datapacks

Ritual recipes, spell rosters, colors, spawns, loot and every other data file and tag the mod reads, plus its config.

Ritual recipes

Rituals are data driven and shown in JEI, so you can add your own ritual recipes with a datapack:

{
  "type": "alshanex_familiars:ritual_recipe",
  "central_item": {
    "item": "minecraft:sniffer_egg"
  },
  "inputs": [
    { "ingredient": { "item": "irons_spellbooks:legendary_ink" }, "count": 1, "consume": true },
    { "ingredient": { "item": "alshanex_familiars:pet_soul" }, "count": 1, "consume": true },
    { "ingredient": { "item": "irons_spellbooks:arcane_rune" }, "count": 1, "consume": true },
    { "ingredient": { "item": "irons_spellbooks:magic_cloth" }, "count": 1, "consume": true }
  ],
  "result": {
    "id": "familiarslib:familiar_egg",
    "components": { "familiarslib:familiar_type": "alshanex_familiars:archmage_pet" }
  },
  "particle_type": "minecraft:end_rod"
}
  • central_item: the item set on the Ritual Core. Like any ingredient, it can be an item or a tag ("tag": "c:gems"). It's always used up.
  • inputs: the items on the statues. There must be exactly 4.
    • ingredient: an item or a tag.
    • count: optional, defaults to 1. Keep it at 1, since statues hold one item.
    • consume: optional, defaults to true. With false, the item stays on its statue.
  • result: the item the ritual produces, with optional count and components. For a typed Familiar Egg, use familiarslib:familiar_egg with the familiarslib:familiar_type component set to the familiar's entity id (see Color slots for the ids). It also works for familiars without a default egg ritual, such as alshanex_familiars:cleric_pet, and for familiars from other mods.
  • particle_type: optional, defaults to ash particles. Particle types that need extra settings fall back to enchant particles.

Recipe files go in data/alshanex_familiars/recipe/ritual_recipes/. The egg rituals keep their old shard file names (archmage_shard.json, druid_shard.json...), so a datapack replacing those files still replaces the right ritual.

When the result is an Identity Vessel, it copies the identity of a filled vessel on one of the statues. A filled vessel only counts for a non-consumed vessel ingredient.

Shrinking recipes

This mod's shrinking recipes (armor plates, tiny shield, resist essences...) are in data/alshanex_familiars/recipe/shrinking/ and use the Familiars Lib type familiarslib:shrinking_recipe. The recipe format is on the Familiars Lib page.

Familiar spell rosters

You can change which spells each familiar casts with a datapack editing its spell tags, in data/alshanex_familiars/tags/irons_spellbooks/spells/. There is a folder per familiar:

FamiliarFolderTag example
Archmagearchmage/alshanex_familiars:archmage/attack
Lightning Magemage/alshanex_familiars:mage/attack
Summonersummoner/alshanex_familiars:summoner/attack
Necromancernecromancer/alshanex_familiars:necromancer/attack
Hunterhunter/alshanex_familiars:hunter/attack
Druiddruid/alshanex_familiars:druid/attack
Illusionistillusionist/alshanex_familiars:illusionist/attack
Plague Doctorplague/alshanex_familiars:plague/attack
Scorcherscorcher/alshanex_familiars:scorcher/attack
Clericcleric/alshanex_familiars:cleric/attack
Bardbard/alshanex_familiars:bard/attack
Frostlingfrostling/alshanex_familiars:frostling/attack
Dragoondragon_warrior/alshanex_familiars:dragon_warrior/attack

Each folder has these tags:

  • attack
  • defense
  • movement
  • support
  • buffing (cleric only)
  • healing (cleric only)

Add or remove any spells from these tags, with "replace": false to add or "replace": true to replace the list. For example, to give the frostling Icicle as an attack spell, ship data/alshanex_familiars/tags/irons_spellbooks/spells/frostling/attack.json:

{ "replace": false, "values": ["irons_spellbooks:icicle"] }

The Familiar Compendium's spell icons follow these tags. The cleric's healing and buffing tags feed its support behavior (healing and buffing allies), separately from its combat spells. Signature spells (such as the lightning mage's Electric Rain or the frostling's Ice Age, see each familiar's Battle line) are added on top of the tags and can't be changed with a datapack.

Scroll rerolls

These spell tags, in the same folder, control what archmages can reroll at the Scroll Reroll Station:

TagEffect
alshanex_familiars:archmage_cannot_rerollScrolls of these spells are never rerolled
alshanex_familiars:archmage_cannot_createThese spells never come out of a reroll
alshanex_familiars:station_only_rollThese spells can come out of the Scroll Reroll Station even if they normally can't be crafted or looted, or are in archmage_cannot_create

Otherwise, a reroll can produce any enabled spell that can be crafted or looted. station_only_roll lists this mod's own spells; to add yours, ship the file with "replace": false:

{ "replace": false, "values": ["othermod:their_spell"] }

Tag changes made with /reload reach running stations within about 10 seconds.

Ability tags

TagTypeUsed by
alshanex_familiars:necromancer_ability_blacklistEntityUndead the necromancer's Undead Chaos ignores
alshanex_familiars:druid_growablesBlockBlocks the druid's Overgrowth bonemeals
alshanex_familiars:druid_cannot_breedEntityAnimals the druid's Nature's Blessing won't breed
alshanex_familiars:freezeable_entitiesEntityEntities the frostling's ice spells can freeze
alshanex_familiars:block_freeze_blacklist, freeze_destroyable, freeze_ignoreBlockHow the frostling's ice spells treat blocks
alshanex_familiars:unlocks_revivalEntityKilling one of these grants Learn Necromancy, which unlocks mana revival. Contains the Dead King (and GameTech's hard Dead King, if installed)

Item tags used by recipes

TagUsed by
alshanex_familiars:familiar_shardsThe Tome of Familiar Alignment recipe. Lists the old shards
alshanex_familiars:familiar_trinketsThe Pandora's Box recipe
alshanex_familiars:familiar_upgradesLists the Tiny Shield, Life Gem, Rusty Helmet and Strange Mushroom

Familiars Lib has more tags used by these familiars, such as the illusionist's pickpocketing and the hunter's marking (see Familiars Lib).

Biome colors

The druid, hunter and scorcher take their spawn colors from these folders. The file format and matching rules are on the Familiars Lib page.

FamiliarFolderColor fields
Druidfamiliar_colors/druidwood, leaf
Hunterfamiliar_colors/hunterhat, dog
Scorcherfamiliar_colors/scorchercolor

The hunter's crossbow has no folder of its own: it reads the druid's files and uses their wood color, so changing the druid's wood colors changes the crossbow too.

The default files are in data/alshanex_familiars/familiar_colors/. A datapack file with the same path replaces a default one, and any other file in these folders is added to them. For example:

{
  "entries": [
    { "biome": "#c:is_forest",         "wood": "#8B6A44", "leaf": "#6FAE3F" },
    { "biome": "#c:is_snowy",          "wood": "#6B4E33", "leaf": "#B4D3CB" },
    { "biome": "minecraft:dark_forest", "wood": "#5C4129", "leaf": "#3F7A2A" }
  ]
}

Color slots

For override files, these are each familiar's slots:

FamiliarEntity idSlot 0Slot 1Slot 2Slot 3Slot 4
Archmagealshanex_familiars:archmage_petClothesEyes
Lightning Magealshanex_familiars:mage_petClothesEyes
Dragoonalshanex_familiars:dragon_warrior_petClothesEyes
Druidalshanex_familiars:druid_petWoodLeavesEyes
Hunteralshanex_familiars:hunter_petHatDogCrossbowEyesDog eyes
Illusionistalshanex_familiars:illusionist_petHatEyes
Necromanceralshanex_familiars:necromancer_petClothesEyesSkull eyes
Plague Doctoralshanex_familiars:plague_petEyesLantern
Scorcheralshanex_familiars:scorcher_petColored detailsEyes
Summoneralshanex_familiars:summoner_petClothesEyes
Clericalshanex_familiars:cleric_petClothesEyes
Bardalshanex_familiars:bard_petClothesEyesHat
Frostlingalshanex_familiars:frostling_petIceEyes

Rules for the eyes and second parts need "shrunk": true to react to shrunk dyes (see Familiars Lib).

The #alshanex_familiars:familiars entity tag contains every familiar of this mod.

The default override rules (shriving stone, logs, leaves and ice blocks) are added to data/familiarslib/familiar_color_overrides/overrides.json with "replace": false, so a datapack can add to them or replace them. For example, to make magma blocks give the frostling a fiery ice:

{ "familiar": "alshanex_familiars:frostling_pet", "item": "minecraft:magma_block",
  "layers": { "0": "#E8743B" }, "sound": "minecraft:block.glass.place" }

Cosmetic weapon tags

TagDefault contents
alshanex_familiars:familiar_weapons/archmage_pet#irons_spellbooks:staff
alshanex_familiars:familiar_weapons/druid_pet#irons_spellbooks:staff
alshanex_familiars:familiar_weapons/mage_pet#irons_spellbooks:staff
alshanex_familiars:familiar_weapons/summoner_pet#curios:spellbook
alshanex_familiars:familiar_weapons/dragon_warrior_pet#minecraft:swords, #minecraft:axes, minecraft:mace, #c:tools/mace, #c:tools/melee_weapon, #c:tools/spear

All of them are added to familiarslib:familiar_weapons, so their items can be shrunk into cosmetics.

Spawn biomes

The lightning mage, druid, hunter, frostling, scorcher and dragoon spawn naturally in the biomes of their spawn biome tag, for example data/alshanex_familiars/tags/worldgen/biome/druid_pet_spawns_in.json (the dragoon's is dragon_warrior_pet_spawns_in). The archmage, summoner and necromancer live in their structures. The spawn rules also require the block below to be in the familiar's *_spawnable_on block tag (mage_spawnable_on, archmage_spawnable_on, summoner_spawnable_on, necromancer_spawnable_on, hunter_spawnable_on, druid_spawnable_on, scorcher_spawnable_on and frostling_spawnable_on). If you add biome colors for new biomes and want familiars to spawn there, update both.

Structures and world tags

Structures are normal data-driven worldgen, so a datapack can change where and how often they appear by replacing these files:

StructureStructure fileStructure setBiome tag (where it can generate)
Origin Islandworldgen/structure/origin_island.jsonworldgen/structure_set/origin_island.json (concentric rings, like strongholds)has_structure/origin_island (oceans)
Hunters' Campsiteworldgen/structure/hunter_campsite.jsonworldgen/structure_set/hunter_campsite.json (spacing 40, separation 10)has_structure/hunter_campsite (forests, except groves)
Graveyardworldgen/structure/graveyard.jsonworldgen/structure_set/graveyard.json (spacing 20, separation 5)has_structure/graveyard (soul sand valleys)
Archmage's Settlementworldgen/structure/end_laboratory.jsonworldgen/structure_set/end_laboratory.json (spacing 25, separation 10)has_structure/end_laboratory (End City biomes)

All of them are in data/alshanex_familiars/, and the biome tags in data/alshanex_familiars/tags/worldgen/biome/. The Origin Island prefers the biomes in origin_island_biased_to (deep oceans).

TagTypeUsed by
alshanex_familiars:memory_fragment_locatedStructureWhat thrown Memory Fragments lead to. Contains the Origin Island
alshanex_familiars:explorer_map_locatedStructureWhat the Furled Map from the Origin Island points to. Contains the Hunters' Campsite

Loot

This mod adds its items to other loot tables through global loot modifiers, listed in data/neoforge/loot_modifiers/global_loot_modifiers.json. Each modifier appends one of this mod's loot tables:

Added toModifierLoot table it appends
Chests (Ancient City, weaponsmith, End City, Evoker Fort, Jungle Temple, Mountain Tower, Pyromancer Tower, Priest House, Woodland Mansion, Impaled Icebreaker, Ice Spider Den)alshanex_familiars:chest_loot/<name>_modifieralshanex_familiars:chests/inserts/additional_<name>_loot
Mob drops (magic creatures' power essence, Mooshroom mushrooms, Cave Spider fangs, Ender Dragon's Dragon Tear) and actions (shearing bogged, Sniffer finds)alshanex_familiars:entity_loot/...alshanex_familiars:entities/...

To change what's added, replace the appended loot table (for example data/alshanex_familiars/loot_table/chests/inserts/additional_ancient_city_loot.json). To stop a modifier entirely, replace its file in data/alshanex_familiars/loot_modifiers/ with conditions that never match, or replace the loot table with an empty one. This mod's own structures use their own chest loot tables in data/alshanex_familiars/loot_table/.

Familiar Guide

The Familiar Guide is built from resource pack files, so modpacks and addons can add their own chapters and pages, or change the existing ones. Changes reload with F3+T.

  • Chapters: assets/<namespace>/guide/categories/<name>.json
  • Entries: assets/<namespace>/guide/entries/<path>.json (subfolders are allowed)

Any namespace works. A file with the same path as a built-in one replaces it. A broken file or page is logged and skipped; the rest of the guide still loads.

A chapter:

{
  "name": "guide.mypack.category.extras",
  "description": "guide.mypack.category.extras.desc",
  "icon": "minecraft:amethyst_shard",
  "sort": 50
}

An entry:

{
  "name": "guide.mypack.extras.my_item",
  "category": "mypack:extras",
  "icon": "mymod:my_item",
  "sort": 0,
  "items": ["mymod:my_item"],
  "pages": [
    { "type": "spotlight", "item": "mymod:my_item", "text": "guide.mypack.extras.my_item.0" },
    { "type": "crafting", "recipe": "mymod:my_item", "text": "guide.mypack.extras.my_item.1" }
  ]
}
FieldMeaning
name, description, title, textTranslation keys. A key that doesn't exist is shown as written, so plain text works while drafting
categoryThe chapter id: the chapter file's namespace and name (mypack:extras for assets/mypack/guide/categories/extras.json)
iconAn item id, or an item stack object ({"id": ..., "count": ..., "components": {...}}). Defaults to a book
sortOrder within its list (lowest first, then by name). Defaults to 0
itemsItems this entry explains: clicking them anywhere in the guide opens it. Items shown on spotlight pages are added automatically. If two entries claim an item, the one with the lowest sort wins
required_modsA list of mod ids. On a chapter, entry or single page, hides it unless all those mods are installed

The entry's first page shows the entry name as its title unless it has its own. Text that doesn't fit a page continues on the next one. Every page type accepts an optional title and text:

TypeShowsFields
textText only
spotlightA big item with its nameitem
imageA picture, scaled down to fitimage (texture path), width and height (size of the PNG, default 256), border (default true), center (default false; only on pages without text)
craftingA crafting grid recipe, read from the gamerecipe
ritualA ritual recipe, with kept items framed in greenrecipe
shrinkingShrinking station recipesrecipe or recipes (recipe ids), and/or inputs (example items run through whichever shrinking recipe accepts them)
smithingSmithing rows written in the JSONrows: list of {template, base, addition, result} (or those fields directly for one row)
cauldronAlchemist cauldron rows written in the JSONrows: list of {base, input, result} (or those fields directly)
entityA live entity preview that follows the mouseentity, scale (default 35), height (default 90), y_offset
item_gridA grid of items, each linking to its entryitems (item ids or item stack objects, for example typed eggs), columns (default 7)
layoutA top-down block layoutpattern (rows of characters; . and spaces are ground), key (character → item, or {"color": "#RRGGBB", "label": "key"})

Items from mods that aren't installed are skipped on smithing, cauldron, item_grid, shrinking and layout pages. Code addons can register new page types with GuidePageTypes.register(type, parser) during client setup.

Retexturing colored parts

Every colored part is drawn from its own pair of textures in assets/alshanex_familiars/textures/entity/layers/, so a resource pack can reshape or reshade them. Each pair is <name>.png (the original look) and <name>_bw.png (the grayscale version that gets tinted); glowing parts such as eyes also have _glowmask versions. Some examples:

FamiliarLayer files
Archmagearchmage_pet_clothes_layer, archmage_pet_eyes_layer
Lightning Magemage_pet_clothes_layer, mage_pet_eyes_layer
Druiddruid_pet_wood_layer, druid_pet_leaf_layer, druid_pet_eyes_layer
Hunterhunter_pet_hat_layer, hunter_pet_dog_layer, hunter_pet_crossbow_layer, hunter_pet_eyes_layer, plus the dog's eyes
Plague Doctorplague_pet_eyes_layer, plague_pet_lantern_layer
Dragoondragoon_clothes_layer, dragoon_eyes_layer
Illusionistillusionist_pet_hat_layer (also used by its decoys)

The other familiars follow the same <familiar>_pet_<part>_layer pattern; the full list is in the mod's jar. The base familiar textures are in textures/entity/ (for example druid_pet.png), with the layer areas cut out. If you change which pixels a layer covers, update the base texture to match. The rules for making layer textures are on the Familiars Lib page.

Config

In the mod's config file:

OptionDefaultDescription
stunTimePerFamiliar5Seconds a familiar is stunned by the Familiologist set's last stand, per summoned familiar

The familiar limit and other shared options are in the Familiars Lib config.

On this page