MineTweaker methods (1.7.10) - Shinoow/AbyssalCraft-Integration GitHub Wiki

As of version 1.2.0, AbyssalCraft Integration now has support for MineTweaker, allowing you to add recipes to AbyssalCraft machines through MineTweaker scripts.
The following information is meant for people who know how to use MineTweaker. If you are not one of them, then click here for information on that.

The integration allows you to add Transmutator recipes, Crystallizer recipes, Creation Rituals, Infusion Rituals, modify information displayed in the Necronomicon and also allows you to add things to the Lesser Shoggoth Food list.


Transmutator recipes are added this way:

mods.abyssalcraft.Transmutator.addTransmutation(<input>, <output>, <exp>);

Where: input and output are ItemStacks, and exp is a float.

Example: mods.abyssalcraft.Transmutator.addTransmutation(<minecraft:dirt>, <minecraft:diamond>, 0.5);

This would transmute a block of Dirt into a Diamond, and give you 0.5 exp per block transmuted.

They can also be removed:

mods.abyssalcraft.Transmutator.removeTransmutation(<input>);

Where: input is the input ItemStack that you want to remove a recipe for.

Example: mods.abyssalcraft.Transmutator.removeTransmutation(<minecraft:dirt>);

This would remove the recipe we added above, preventing you from transmuting Dirt into Diamonds.


Crystallizer recipes are added in two ways (to separate dual-output recipes with single-output recipes):

Single output:

mods.abyssalcraft.Crystallizer.addSingleCrystallization(<input>, <output>, <exp>);

Where: input and output are Objects, and exp is a float.

Example: mods.abyssalcraft.Crystallizer.addSingleCrystallization(<minecraft:dirt>, <abyssalcraft:crystalshard:0> * 3, 0.5);

This would crystallize a block of Dirt into 3 Crystallized Iron Shards, and give you 0.5 exp per block crystallized.

Dual output:

mods.abyssalcraft.Crystallizer.addCrystallization(<input>, <output1>, <output2>, <exp>);

Where: input, output1 and output2 are ItemStacks, and exp is a float.

Example: mods.abyssalcraft.Crystallizer.addCrystallization(<minecraft:dirt>, <abyssalcraft:crystalshard:0> * 3, <abyssalcraft:crystalshard:4> * 2, 0.5);

This would crystallize a block of Dirt into 3 Crystallized Iron Shards, 2 Crystallized Oxygen Shards and give you 0.5 exp per block crystallized.

They can also be removed:

mods.abyssalcraft.Crystallizer.removeCrystallization(<input>);

Where: input is the input ItemStack that you want to remove a recipe for.

Example: mods.abyssalcraft.Crystallizer.removeCrystallization(<minecraft:dirt>);

This would remove the recipe(s) we added above, preventing you from doing any of the above crystallizations.


Creation Rituals are added this way:

mods.abyssalcraft.CreationRitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <item>, [offerings])

Where: unlocalizedName is a String representing the ritual (later perfixed with "ac.ritual", and with a decription String which is "ac.ritual.<unlocalizedName>.desc").
bookType and dimension are integers, where bookType is the Necronomicon "level" required in order to perform the ritual (0 = Normal, 1 = Abyssal Wasteland, 2 = Dreadlands, 3 = Omothol and 4 = Abyssalnomicon) and dimension is the dimension where you can perform it (current ones are the Overworld, the Abyssal Wasteland, the Dreadlands, Omothol and the Dark Realm, unless a mod adds support for it's dimension). If you specify the dimension as -1, the ritual can be performed in any available dimension.
requiredEnergy is a float representing the amount of Potential Energy required in order to perform the ritual (currently has no use, unless the AbyssalCraft version used is later than 1.8.9, in which Potential Energy should be implemented into the mod).
remnantHelp is whether or not Remnants should aid in performing the ritual (currently has no effect).
item and offerings is a Object respective an array of Objects (with the maximum amount of 8), where item is the output, and offerings are the input (eg. items placed on the pedestals) The offerings should be specified as [<modid:name>, <modid:name>, <modid:name> etc] with the array size being 8 at most. The offerings can be OreDict entries as well as regular items.

Example: mods.abyssalcraft.CreationRitual.addRitual("creationRitualTest", 0, -1, 1000, false, <minecraft:diamond>, [<minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>, <minecraft:coal>]); game.setLocalization("ac.ritual.creationRitualTest", "Creation Ritual Test"); game.setLocalization("ac.ritual.creationRitualTest.desc", "This is a test ritual, turning coal into diamonds!");

This would add a Creation Ritual that requires the base Necronomicon, can be performed anywhere, requires 1000 PE, doesn't require Remnants to be present (this feature was never properly implemented, so unless you purposely want to torture your users, set it to false), which creates a Diamond out of 8 Coal. The bits afterwards are for localizing the Ritual name and description (so the ritual page in the Necronomicon has a name and a description).

They can also be removed:

mods.abyssalcraft.CreationRitual.removeRitual(<output>)

Where: output is the Object output of the ritual(s) you want to remove.

Example: mods.abyssalcraft.CreationRitual.removeRitual(<minecraft:diamond>);

This would remove the ritual we added above, preventing people from turning coal into diamonds through a Creation Ritual.


Infusion Rituals are added this way:

mods.abyssalcraft.InfusionRitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <item>, <sacrifice>, [offerings])

Where: unlocalizedName is a String representing the ritual (later perfixed with "ac.ritual", and with a decription String which is "ac.ritual.<unlocalizedName>.desc").
bookType and dimension are integers, where bookType is the Necronomicon "level" required in order to perform the ritual (0 = Normal, 1 = Abyssal Wasteland, 2 = Dreadlands, 3 = Omothol and 4 = Abyssalnomicon) and dimension is the dimension where you can perform it (current ones are the Overworld, the Abyssal Wasteland, the Dreadlands, Omothol and the Dark Realm, unless a mod adds support for it's dimension). If you specify the dimension as -1, the ritual can be performed in any available dimension.
requiredEnergy is a float representing the amount of Potential Energy required in order to perform the ritual (currently has no use, unless the AbyssalCraft version used is later than 1.8.9, in which Potential Energy should be implemented into the mod).
remnantHelp is whether or not Remnants should aid in performing the ritual (currently has no effect).
item , sacrifice and offerings are Objects respective an array of Objects (with the maximum amount of 8), where item is the output, sacrifice is the item placed on the altar and offerings are the input (eg. items placed on the pedestals). The offerings should be specified as [<modid:name>, <modid:name>, <modid:name> etc] with the array size being 8 at most. The offerings and the sacrifice can be OreDict entries as well as regular items.

Example: mods.abyssalcraft.InfusionRitual.addRitual("infusionRitualTest", 4, 53, 10000, false, <minecraft:diamond>, <minecraft:dirt>, [<minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>, <minecraft:dirt>]); game.setLocalization("ac.ritual.infusionRitualTest", "Infusion Ritual Test"); game.setLocalization("ac.ritual.infusionRitualTest.desc", "This is a test ritual, turning dirt into diamonds by infusing it with more Dirt!");

This would add a Infusion Ritual that requires the Abyssalnomicon, can only be performed in the Dark Realm, requires 10000 PE, doesn't require Remnants to be present (this feature was never properly implemented, so unless you purposely want to torture your users, set it to false), which creates a Diamond by infusing a block of Dirt with 8 blocks of Dirt. The bits afterwards are for localizing the Ritual name and description (so the ritual page in the Necronomicon has a name and a description).

They can also be removed:

mods.abyssalcraft.InfusionRitual.removeRitual(<output>)

Where: output is the Object output of the ritual(s) you want to remove.

Example: mods.abyssalcraft.InfusionRitual.removeRitual(<minecraft:diamond>);

This would remove the ritual we added above, preventing people from turning coal into diamonds through a Infusion Ritual.


Potion/AoE Potion Rituals are added this way:

mods.abyssalcraft.PotionRitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <potion>, [offerings])

mods.abyssalcraft.PotionAoERitual.addRitual(<unlocalizedName>, <bookType>, <dimension>, <requiredEnergy>, <remnantHelp>, <potion>, [offerings])

Where: unlocalizedName is a String representing the ritual (later perfixed with "ac.ritual", and with a decription String which is "ac.ritual.<unlocalizedName>.desc").
bookType and dimension are integers, where bookType is the Necronomicon "level" required in order to perform the ritual (0 = Normal, 1 = Abyssal Wasteland, 2 = Dreadlands, 3 = Omothol and 4 = Abyssalnomicon) and dimension is the dimension where you can perform it (current ones are the Overworld, the Abyssal Wasteland, the Dreadlands, Omothol and the Dark Realm, unless a mod adds support for it's dimension). If you specify the dimension as -1, the ritual can be performed in any available dimension.
requiredEnergy is a float representing the amount of Potential Energy required in order to perform the ritual (currently has no use, unless the AbyssalCraft version used is later than 1.8.9, in which Potential Energy should be implemented into the mod).
remnantHelp is whether or not Remnants should aid in performing the ritual (currently has no effect).
offerings is an array of Objects (with the maximum amount of 8), where offerings are the input (eg. items placed on the pedestals). The offerings should be specified as [<modid:name>, <modid:name>, <modid:name> etc] with the array size being 8 at most. The offerings can be OreDict entries as well as regular items.
potion is the ID of the Potion to add/spread through the ritual (this is a numerical ID in 1.7.10).

Example: mods.abyssalcraft.PotionRitual.addRitual("testpotionnormal", 0, -1, 1000, false, 0, [<minecraft:stone>, <minecraft:dirt>]); game.setLocalization("ac.ritual.testpotionnormal", "Test Potion Ritual"); game.setLocalization("ac.ritual.testpotionnormal.desc", "Testing MineTweaker Potion Ritual creation!");

mods.abyssalcraft.PotionAoERitual.addRitual("testpotionaoe", 0, -1, 1000, false, 0, [<minecraft:stone>]); game.setLocalization("ac.ritual.testpotionaoe", "Test Potion Ritual (AoE)"); game.setLocalization("ac.ritual.testpotionaoe.desc", "Testing MineTweaker Potion Ritual creation! This one is the Area-of-Effect variant!");

This would add both a normal and an Area-of-effect Potion Ritual that requires the base Necronomicon, can be performed anywhere, requires 1000 PE, doesn't require Remnants to be present (this feature was never properly implemented, so unless you purposely want to torture your users, set it to false), which inflicts the Speed Potion Effect from offering a block of Stone (and a block of Dirt for the normal variant). The bits afterwards are for localizing the Ritual name and description (so the ritual page in the Necronomicon has a name and a description).

They can also be removed:

mods.abyssalcraft.PotionRitual.removeRitual(<output>)

mods.abyssalcraft.PotionAoERitual.removeRitual(<output>)

Where: output is the ID of the Potion output of the ritual(s) you want to remove (this is a numerical ID in 1.7.10).

*Example: mods.abyssalcraft.PotionRitual.removeRitual(0)
mods.abyssalcraft.PotionAoERitual.removeRitual(0)

This would remove the rituals we added above, resulting in there not being any rituals for applying the Speed Potion Effect.


Necronomicon Stuff:

As of ACI 1.4.0, you can now edit the Necronomicon! The things you can do is add/edit/remove Chapters (collections of Pages), and add/edit/remove Pages (simply a Page, can be plain text, an ItemStack, a Crafting Recipe or an Image with text underneath). There's currently 232 editable Pages, so you have A LOT of things to mess around with.

Adding a Chapter:
mods.abyssalcraft.necronomicon.internal.addChapter(<uniqueidentifier>, <chaptertitle>, <necroDataUniqueidentifier>)
Where:
uniqueidentifier is a String representing the Category (should be unique for the NecroData, eg. only a single Category can have a specific identifier)
chaptertitle is a String representing a title (either localized, if possible in the .zs file, or just a name)
necroDataUniqueidentifier is a String representing the NecroData you want to add your category to.
There will be a list at the bottom of the page naming all used NecroData and Category identifiers.

Removing a Chapter:
mods.abyssalcraft.necronomicon.internal.removeChapter(<uniqueidentifier>, <necroDataUniqueidentifier>)
Where:
uniqueidentifier is a String representing the Category (should be unique for the NecroData, eg. only a single Category can have a specific identifier) you want to remove
necroDataUniqueidentifier is a String representing the NecroData you want to remove the category from.

Adding Pages:
mods.abyssalcraft.necronomicon.internal.addNormalPage(<pageNum>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)

mods.abyssalcraft.necronomicon.internal.addItemPage(<pageNum>, <displayitem>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)

mods.abyssalcraft.necronomicon.internal.addImagePage(<pageNum>, <resourcepath>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)

mods.abyssalcraft.necronomicon.internal.addCraftingPage(<pageNum>, <output>, <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)

mods.abyssalcraft.necronomicon.internal.addCraftingPage(<pageNum>, <output>, [inputs], <pagetext>, <chapterIdentifier>, <necrodataIdentifier>)

Where: pageNum is a Integer representing the Page's number (setting that as the number of an already existing page will override it).
pagetext is a String representing the text displayed on the page (localized string or plain text).
chapterIdentifier is a String representing the identifier of the Chapter this Page should be added to.
necrodataIdentifier is a String representing the identifier of the NecroData the aforementioned Chapter belongs to.
displayitem is an ItemStack used to display on the Page. Only that type is allowed.
resourcepath is a String representing a ResourceLocation to an image (like 'modid:path/to/texture.png", or "path/to/texture.png" which would default to Minecraft's texture resources).
output is a Item/Block/ItemStack representing the output of a Crafting Recipe (if used without the array, any registered recipe will automatically be fetched).
inputs is an array of Items/Blocks/ItemStacks used to display the recipe (in cases where you want to show a specific recipe for something with multiple recipes). In it's code form, it can accept null values, as it requires 9 Objects (so if there's a substitute for null Objects, use that for any blanks in the recipe).

Removing a Page:
mods.abyssalcraft.necronomicon.internal.removePage(<pagenum>, <chapterIdentifier>, <necrodataIdentifier>)
Where:
pageNum is a Integer representing the number of the Page to be removed.
chapterIdentifier is a String representing the identifier of the Chapter this Page should be removed from.
necrodataIdentifier is a String representing the identifier of the NecroData the aforementioned Chapter belongs to.


Used Identifiers:

It should be noted that not all Chapter identifiers are used in every NecroData instance.

NecroData:

  • greatoldones
  • overworld
  • abyssalwasteland
  • dreadlands
  • omothol
  • darkrealm
  • rituals
  • miscinfo

Chapter:

  • outergods
  • greatoldones
  • materials
  • progression
  • entities
  • specialmaterials
  • armortools
  • gettingstarted
  • potentialenergy
  • enchantments

The Lesser Shoggoth Lists are used this way:

As of ACI 1.4.2, you can now add Entities to the Lesser Shoggoth Food list (used to specify what the Lesser Shoggoth should consider food) through MineTweaker! Due to these lists being separated from the internal ones, they should be empty by default (unless another mod present adds things to them), so there will only be methods for adding things to them.

Listing an Entity as food:
mods.abyssalcraft.shoggoth.addShoggothFood(<clazz>)

Where: clazz is a String representing the code path to a Entity class that extends EntityLivingBase (essentially any living Entity).

Example: mods.abyssalcraft.shoggoth.addShoggothFood("net.minecraft.entity.monster.EntitySpider");

This would add the Spider as Shoggoth food.

⚠️ **GitHub.com Fallback** ⚠️