Back to mods
Alfinivia project artwork

CurseForge · Minecraft mod

Alfinivia

Syke, it's actually just a bunch of tweaks

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Alfinivia release should I use?

Updated 7 years ago
Latest stable file Alfinivia-0.4hotfix.jar
Game version 1.12.1, 1.12, 1.12.2
Loader Not required

Alfinivia-0.4hotfix.jar targets 1.12.1, 1.12, 1.12.2. The project page does not say whether this file belongs on the client, dedicated server, or both. All 1 required mods have matching files.

Where it goes

Is Alfinivia required on the client, server, or both?

The project page does not say whether this file belongs on the client, dedicated server, or both.

Client Source doesn’t say
Dedicated server Source doesn’t say
Loader for this release No loader listed
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source does not explicitly classify this release as client-only or server-only.

What else does Alfinivia-0.4hotfix.jar need?

Alfinivia-0.4hotfix.jar. Change the file and its required mods may change too.

All 1 required mods have matching files

Install CraftTweaker first. We found matching files for this game-version and loader setup.

CraftTweaker Needed by Alfinivia-0.4hotfix.jar
required
Matching file found Matched file: CraftTweaker2-1.12-4.1.20.715.jar
Misty World Optional for Alfinivia-0.4hotfix.jar
optional
Matching file found Matched file: MistyWorld-1.12.2-1.2.5.3.jar

We only count dependency files that match this setup. A file for another loader does not fill the gap.

Before you install it

Add Alfinivia without breaking your instance.

Built for Alfinivia-0.4hotfix.jar. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use Alfinivia-0.4hotfix.jar. It targets 1.12.1, 1.12, 1.12.2; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    Install CraftTweaker first. We found matching files for this game-version and loader setup.

  3. 03

    Put it on the correct side

    The project page does not say whether this file belongs on the client, dedicated server, or both.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside Alfinivia-0.4hotfix.jar. It opens that exact file at the source.

About this project

What does Alfinivia add?

This is a tweak mod. It tweaks things, and is tweaked by people. Without any configuration this mod does nothing.

There are currently n things it offers:

Arbitrary Milking

This allows any item to turn into another item on contact with any entity. Normally this would be used to add exotic milktypes for entities in modpacks but can be used for other purposes.

mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityDefinition entity, IItemStack output, boolean needsSneaking);
mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityFunction entity, IItemStack output, boolean needsSneaking);
mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityDefinition entity, IMilkFunction output, boolean needsSneaking);
mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityFunction entity, IMilkFunction output, boolean needsSneaking);

ex. for IEntityFunction: 
function(entity){return true;}

ex. for IMilkFunction:
function(entity, itemstack, player){return itemstack;}

ex.
mods.alfinivia.Milking.add(<minecraft:fish>,<entity:minecraft:sheep>,<minecraft:sandstone>,false);

Liquid Interactions

This allows any two fluids to interact in world to form a block, assuming they wouldn't already interact.

mods.alfinivia.LiquidInteraction.add(@NotNull IIngredient fluidA, @NotNull IIngredient fluidB, IItemStack output);

Breakspeed

This allows breakspeed of certain blocks to vary based on several different factors. This can be done static, by tool, by attribute or by function. Note that multipliers are cumulative, so if there's an attribute and a function defined, both multipliers apply consecutively.

var builder = mods.alfinivia.BreakSpeedBuilder.get(@NotNull className);
builder.setTool(IIngredient tools);
builder.addTool(IIngredient tools);
builder.addBlock(IItemStack block);
builder.addBlock(IBlockDefinition block, int meta);
builder.addBlocks(IItemStack[] blocks);
builder.setMultiplier(float multiplier); //Flat multiplier
builder.setAttribute(float defaultValue,float minValue,float maxValue); //This will request an attribute to be created with name "break.[className]" that affects the breakspeed
builder.setFunction(IBlockSpeedFunction function); //Fine control based on values at runtime (ex. scales with distance from spawn or similar)
builder.build(); //Call this last

ex. for IBlockSpeedFunction:
function(player,world,pos){return 1.0;}

ex.
var builder = mods.alfinivia.BreakSpeedBuilder.get("stone");
builder.addBlock(<minecraft:stone>);
builder.setMultiplier(2.0);
builder.addTool(<minecraft:stone_pickaxe>);
builder.build();

Damage Handlers

This allows specific entities to have the damage they take from specific sources modified in some way.

var builder = mods.alfinivia.DamageBuilder.get(@NotNull className);
builder.matchEntity(IEntityFunction entityMatch);
builder.matchSource(IEntityFunction sourceMatch);
builder.matchDamageSource(String damageSource);
builder.setFunction(IDamageFunction function);
builder.multiplyAttribute(float defaultValue, float minValue, float maxValue); //This will request an attribute to be created with name "damage.[className]" that functions as the multiplier for the damage
builder.addAttribute(float defaultValue, float minValue, float maxValue); //Same as above but the value of the attribute is added instead.
builder.build(); //Call this last

ex. for IDamageFunction:
function(IEntityLivingBase entity, float amount){return 1.0 * amount;}

ex.
var builder = mods.alfinivia.DamageBuilder.get("stone");
builder.matchEntity(IEntityFunction.getEntities([<entity:minecraft:sheep>,<entity:minecraft:wolf>]));
builder.matchDamageType("fire");
builder.setFunction(IDamageFunction.multiply(2.5));
builder.build();

Misty World

There's currently only the ability to add compostable items and set the harvest type for crops.

mods.alfinivia.MistyWorld.addCompostable(IItemStack stack) 
mods.alfinivia.MistyWorld.addHarvestType(IBlockDefinition block, int min, int max) //min and max must be between 1 and 3, this affects how much water permeability (porosity) of the soil is needed to grow specific plants.
//1 - clay soil (flowering, marsh plants, cereals)
//2 - forest and tropical soils (vegetables)
//3 - sandy and stony soils (tubers) 
mods.alfinivia.MistyWorld.addHarvestType(String block, int min, int max)

Immersive Engineering

There is support for removing and adding fertilizers to the garden cloche, adding fluids to the chemsprayer, adding rods to the railgun and last but not least, a builder system for revolver/turret bullets.

mods.alfinivia.ImmersiveEngineering.addChemthrowerEffect(ILiquidStack liquid, boolean isGas, boolean isFlammable, String source, float damage)
mods.alfinivia.ImmersiveEngineering.addChemthrowerEffect(ILiquidStack liquid, boolean isGas, boolean isFlammable, String source, float damage, IPotionEffect[] effects)
mods.alfinivia.ImmersiveEngineering.addChemthrowerEffect(ILiquidStack liquid, boolean isGas, boolean isFlammable, IChemEntityEffect entityEffect, IChemBlockEffect blockEffect)
mods.alfinivia.ImmersiveEngineering.addRailgunBullet(IIngredient item, float damage, float gravity, int[][] colorMap)
mods.alfinivia.ImmersiveEngineering.addRailgunBullet(IIngredient item, float damage, float gravity, IRailgunImpact effect, int[][] colorMap)
mods.alfinivia.ImmersiveEngineering.addLiquidFertilizer(ILiquidStack liquid, float multiplier)
mods.alfinivia.ImmersiveEngineering.addLiquidFertilizer(ILiquidStack liquid, IFluidFertilizerMultiplier multiplier)
mods.alfinivia.ImmersiveEngineering.removeLiquidFertilizer(ILiquidStack liquid)
mods.alfinivia.ImmersiveEngineering.addItemFertilizer(IIngredient item, float multiplier)
mods.alfinivia.ImmersiveEngineering.addItemFertilizer(IIngredient item, IItemFertilizerMultiplier multiplier)
mods.alfinivia.ImmersiveEngineering.removeItemFertilizer(IItemStack item)

ex. for IChemBlockEffect
function(world,pos,side,shooter,throwerstack,fluid){}

ex. for IChemEntityEffect
function(target,shooter,throwerstack,fluid){}

ex. for IRailgunImpact
function(target,shoot){return false;} //returning true here foregoes the regular damage it would do

ex. for IFluidFertilizerMultiplier
function(fertilizer,seed,soil){return 1.0;} //fertilizer is an ILiquidStack

ex. for IItemFertilizerMultiplier
function(fertilizer,seed,soil){return 1.0;} //fertilizer is an IItemStack

todo: docs for the bullet builder

Project description from CurseForge.

Pick your setup

Alfinivia by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

3 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Alfinivia versions and loaders

5 of 5 releases match

Looking for an older file? The official CurseForge project page is in Resources.