Scavenge is a mod that allows you to apply custom RightClick/LeftClick behaviors
to any Block. On top of that you can add LootPools to these behaviors that are dropped when the conditions are met. These things are loaded from JsonFiles and act closely to a Scripting language.
Note: The "Pages" Page is now a repository for examples of how to use certain features. If you want to add or learn how to make a feature then look into there.
On top of that you can add certain unque features/conditions when rightclicking these blocks.
For example:
- Player has to sneak,
- Player has to have a Diamond in his hands
- The block is unbreakable
- The block disapears after 5 uses
- etc.
To that you can apply multiple loottables to 1 block as long the conditions do not collide.
There is a lot more customizablity which can be found in the documentation.
Info. 1.6 or older scripts will not load in 1.7 because of the core rewirte!
Side Info: 1.10.2-1.11.x are now frozen on updates because of nobody using it at all. (If usage comes up patches will be made, but it increases update speed drastically)
How to install a JsonFile:
You put the file into the scavenge config folder and go into the config file. In there is a list of files you can put in, in there you put your file name + expression.
S:LoadingFiles < testing.json >
Side note: The mod has a JEI Plugin which can be customized how you want.
Here is an example file for a more complex usage. If you still have questions. Ask or try things out.
Example file:
{ "block_pools" : [ { "name": "Netherrack", "type": { "type": "block", "name": "minecraft:nether_brick" }, "clicktype": "both", "properties": [ { "type": "require_sneak" } ], "drops": [ { "name": "minecraft:iron_ingot" } ], "messages": [ { "id": "require_sneak", "message": "Player requires to sneak" } ] } ] }
Commands:
- /scavenge reload, reloads the Configs & Scripts.(it will also fire the /scavenge printErrors command automatically)
- /scavenge printErrors prints the errors of the scripts
Known issues:
Nothing
How to make a Scavenge ModAddon: Link
Usage Documentation: (Warning. Wall of text)
These Files get turned into a scriptlike language where you can define certain things and they get excecuted in a certain way.
To start at the beginning when a file gets loaded there has to be a certain format provided.
Every single file starts with a Object with an value inside of it that is called "block_pools".
Example:
{ "block_pools": [ ] }
Inside the "block_pools" Array you put in Objects that define which blocks should be effected.
Every Block Pool can either affect 1 or more blocks depending on the Type. Block Pools can also have duplicated Blocks defined in them as long the conditions are not 100% Equal.
Now there are a couple options inside the Block Pool that you can define:
- "name": (Defines the Name of the BlockPool. Some Conditions/Effects rely on that name. It has to stay Unique.) String,
- "type": (Defines If the BlockPool is just a Single Block, a BlockList, or a OreDictionary Entry.) Object
- "clicktype": (If the BlockPool is left or rightclick or both) String,
- "blockRightClick" & "blockLeftClick" (Checks if the click is being blockt. Can be ignored but it defaults to blocking the interaction after the BlockPool is being processed. Is only asked for if clicktype was added) Boolean
- "disableJEI": (Allows to hide this entry from the JEI plugin thats intigrated. Default: Visible) Boolean.
- "properties": (The Conditions/Effect that the BlockPool should have when being clicked) ObjectArray or Object
- "drops": (The Loot that should be added or dropped when the all the conditions were met) ObjectArray or Object
- "messages": (The Error and Success Messages that should be printed when something was successfull or something wasn't working because of a user error.) ObjectArray or Object
After this basic explaining of how the things work lets go into a bit of bigger detail of the more complex ones.
The "type" Object defines very simply what blocks to check for this can be defined by ["block", "ore" or "block_list"].
Here are a couple examples:
"block" Defines 1 Block that you want to effect. Meta can be either defined through 3 ways: Either "meta" which allows you to effect 1 Block Metadata. "metas" which allows you to effect multiple Block Metadatas. Or leave it away. If no metadata is defined any Metadata that the block has will be automatically counted as valid. Example: "type": { "type": "block", "name": "minecraft:dirt", "meta": 5 } or "type": { "type": "block", "name": "minecraft:dirt", "metas": [5, 3, 2, 12] } "ore" looks up the OreDictionary for Blocks and builds the list from there. "oreCopper" for example gathers all the Copper ores together and applies the same effect to them. Example: "type": { "type": "ore", "name": "oreCopper" } "block_list" allows you to define Multiple Blocks at once. For each Object entry in this type of addition you also can apply the same meta rules as in the "block" type. So meta, metas or ignore meta. Example: "type": { "type": "block_list", "blocks": [ { "name": "minecraft:dirt", "meta": 5 }, { "name": "minecraft:dirt", "metas": [5, 3, 2, 12] }, { "name": "minecraft:dirt" } ] }
Next to "properties". Properties allow you to define Block Condition & Effects for the Block Pool.
That can range from "player has to sneak" all the way to "a Player has to have achievements and to be at y level 55" or also "player gains 5 heath and loses 2 XP levels".
The Block Properties can be found below in a seperate tab since its very large.
Some Block Conditions can not work with each other or with effects but all these are defined.
A basic layout of a Block Property can be summed up by that: "id", "description", "parameters", "Incompatible With", "type",
No need to explain those names since they are selfexplaining.
"drops" Allows you to define what loot will be dropped when a Condition set is fulfilled.
These are entirely optional and not required. But a "Block Pool" either requires at least 1 Effect or at least 1 loot drop.
When creating a loot drop you have the following things to add.
- "name": (The ItemName that should drop) String,
- "meta": (The Metadata the item should have. Defaults to 0) IntNumber,
- "amount": (How many items it should be. Defaults to 1) IntNumber,
- "nbt": (What NBTData the item should have. This is a reference to the NBTFiles. Defaults to None), String
- "chance" or "weight": (Decides if it is a Chance based drop or a weight base drop. Difference being chance is a single drop while all weight drops combine to 1 list and 1 gets randomly pickt. Defaults to chance with 100% chance) FloatNumber for "chance" or IntNumber for "weight",
- "rolls": (Only checkt for if "chance" is selected and defines how often the loot is allowed to be collected for in 1 Click. That can be modified by a block property, defaults 2Billion times) IntNumber,
- "disableJEI": (Allows to decide if the loot is shown in JEI or not. Defaults to show in JEI) Boolean.
- "properties": (Properties define the effects that either get applied passivly or actively on the Item. Passivly means when the loot is created in the Script and activly means when the loot is gathered. These can range from setDamage to very complex condition based ones that apply only effects if a BlockProperty send data over they needed.) ObjectArray or Object.
- "conditions": (Allows to add BlockConditions to the Loot Itself which then causes the loot only to drop when all conditions are set. These are implemented like normal blockConditions in this conditionsArray. It works also to non Weight based loot.) ObjectArray or Object
Lets provide an Example for all but properties:
a "weight" based example: { "name": "minecraft:iron_ingot", "meta": "0", "amount": "54", "nbt": "customNBT", "disableJEI": false, "weight": 423 } a "chance" based example: { "name": "minecraft:iron_ingot", "meta": "0", "amount": "54", "nbt": "customNBT", "disableJEI": false, "chance": 99, "rolls": 255 } a "chance condition" based example: { "name": "minecraft:iron_ingot", "meta": "0", "amount": "54", "nbt": "customNBT", "disableJEI": false, "chance": 99, "rolls": 255, "conditions": [ { "type": "require_sneak" }, { "type": "require_item", "name": "minecraft:stick" } ] }Ok now "properties" applied to the loot is done the same way as properties are applied to Blocks.
Its the same way but with different ids. All the Loot Properties are inside a seperate tab because there is still a big amount of them present.
Now lets go to the "messages" for the Block Pool.
Messages allow to inform the player about certain situations that can happen.
A condition that may have failed, a special effect that has worked or if the pool was executed in general.
This is based on a "id" and "message" system. The ID represents the condition/effect that has triggered a message print while the message is the message thats being send to the player.
Example: "messages": [ { "id": "require_empty_Hand", "message": "You require a Empty Hand to use this effect" } ]
There are also special "ids" for the if any condition has failed message and the the pool was executed message.
These are called "global" and "success" and are called when an condition has failed ("global") or if the block pool was successfully executed ("success")
On top of that if you have duplicated entries of a Property these can be also captured by adding a _1 or _2.
Example:
"messages": [ { "id": "require_block", "message": "You require a dirt Block" }, { "id": "require_block_1", "message": "You require a stone Block" }, { "id": "require_block_2", "message": "You require a wood Block" } ]
This is done base on how the conditions are written. From top to down. So 2 will catch the 3rd "require_block" condition while the first message will catch the first one.
The NBTFiles:
With 1.7 that changes.
So how do NBTFiles work and how can i use them with my scavenge scripts?
The NBTFiles work very simple they have a very strict loading rule but other then that nothing to worry about.
Its as simple as this:
myid={testing:1b,value:32321L} customID={testing:23b,value:34221L}
Once you start a NBTFile this is the rule:
you start with the ID of that NBT entry add a = and directly after that you put in the NBTString.No spaces between or new lines each id has 1 line and the NBTData has to be in there too.
Using // before a line will make the loader ignore the Line. Empty lines will also be ignored.
Now how can you reference the NBTFiles.
Whenever a "nbt" is a option or it says: "reference the NBTFile" or something close to that. It means it will ask for the ID that is provided inside NBTFile. In our case "myid" or "customID", Scavenge automatically knows this id is a reference of the NBT and will automatically pull it from the storage that is being loaded before the scripts. This keeps the Scavenge Scripts clean and allows complex NBTData to be used multiple times at once. (It will clone the NBTData)
That is the NBTFiles.
Math Operations & Modifiers
Math Operations and Modifiers are the new thing with Scavenge 1.7.
Why is it a thing and what does it do.
First lets do the Why.
There are a lot of Conditions that depend on a Number. And instead of programming in a fixed 2 option set of options to compare the number i wanted to make it very customizable.
Thats why mathoperation became a thing. It allows you make >= < != and other operations on a single number based condition expanding the possibilities hugely.
So how can you implement the MathOperations into some of the condition.
First of all not all conditions can do that. Its not possible.
Those who are able to use MathOperations give you most likey 2 options. Either use a limited version of the condition (bigger or smaller then number) or you choose MathOperations,
When that is a choice you have 3 ways to implement these:
Here are the examples with the "require_Height":
Implement it directly into the condition { "type": "require_Height", "operations": "equals", "value": 32 } or make it their own object { "type": "require_Height", "operations": { "type": "equals", "value": 32 } } or make it an object array for multible conditions. When this is done it makes turns all the conditions into 1 array condition. { "type": "require_Height", "operations": [ { "type": "equals", "value": 32 } ] }
These are supported by all conditions that are made by scavenge or the scavenge Author.
"Moddevs who want to support this feature its 1 function call in the API."
It allows for a simple implentation of number based conditions that support every need.
On top of that moddevs can also add MathOperations if needed.
So next to the MathModifiers.
Math Modifiers are modifiers that you can add into the MathOperations to mutate the number that the Operation gets.
For example you want to make that every 10 Blocks of Y Level the Operation should be true
You can either add 25 Conditions with each 1 MathOperation or you can add 1 MathOperation with 1 MathModifier that applies a modulo on the Number Injected that makes it only count from 0-9 which makes it only validate on every 10th Y level.
Here is an Example of how that would look like: { "type": "require_Height", "operations": "equals", "value": 0 "modifiers": { "type": "Modulo", "value": 10 } }
this makes a lot of things possible and a lot of coding on the devs side much easier since he can provide easy and simple methodes and then a MathOperation for very complex things.
And thanks to the Operation Merging it can also look very clean.
Ok that is about everything about the Math Operations and the Math Modifiers.
Side note: a Math Condition can have as many modifiers as needed you use just an ObjectArray instead of an Object that.
Now a list of all the Math Operations:
- default:
Description: A Default MathOperation that just returns true or false
Parameters:
"value": (Which value should be returned) Boolean, - array:
Description: Allows to combine Math Operations together.
Parameters:
"operations": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Operation) Registry Element, - equals:
Description: Checks if the Input Value equals the Selected Value
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"value": (The Value the Operation should compare with) LongNumber, - equalsNot:
Description: Checks if the InputValue doesn't match with selected Value
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"value": (The Value the Operation should compare with) LongNumber, - bigger:
Description: Checks if the Input Value is bigger then the selected Value
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"value": (The Value the Operation should compare with) LongNumber, - biggerEquals:
Description: Checks if the Input Value is bigger or equals the selected Value
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"value": (The Value the Operation should compare with) LongNumber, - smaller:
Description: Checks if the Input Value is smaller then the Selected Value
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"value": (The Value the Operation should compare with) LongNumber, - smallerEquals:
Description: Checks if the Input Values is smaller then or equals the Selected Value
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"value": (The Value the Operation should compare with) LongNumber, - inRange:
Description: Checks if the Input Value is in range of the Input Values
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"minValue": (The Minimum Value the Operation should compare with) LongNumber,
"maxValue": (The Maximum Value the Operation should compare with) LongNumber, - notInRange:
Description: Checks if the Input Value is outside of the Range of the Selected Values
Parameters:
"modifiers": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "type": (RegistryName for the Math Modifier) Registry Element,
"minValue": (The Minimum Value the Operation should compare with) LongNumber,
"maxValue": (The Maximum Value the Operation should compare with) LongNumber,
- add:
Description: Adds a Selected Value to the Input Value
Parameters:
"value": (The Value that should be added) LongNumber, - remove:
Description: Removes a Selected Value from the Input Value
Parameters:
"value": (The Value that should be removed) LongNumber, - multiply:
Description: Multiplies the Input Value with a Selected Value
Parameters:
"value": (The Value that should be Multiplied with) LongNumber, - divide:
Description: Divides the Input Value by a Selected Value
Parameters:
"value": (The Value that should be divide with) LongNumber, - pow:
Description: Pows the Input Value with the Selected Value
Parameters:
"value": (The Value that should be pow with) LongNumber, - Modulo:
Description: Applies the Selected Modulo to the Input Value
Parameters:
"value": (The Value that should be Modulo with) LongNumber,
LootProperties:
All the Loot Properties:
- set_size:
Description: Allows to modify the Stacksize of the loot drop
Parameters:
"value": (the amount the Stackize should be, Default: 1) IntNumber,
Incompatible With: None
Type: Passive - set_random_size:
Description: Allows to set a Random sized loot
Parameters:
either
- "minValue": (Min Stacksize of the loot) IntNumber,
- "maxValue": (Max Stacksize of the loot) IntNumber,
or
- "pool": (A Pool of Random numbers to pick from) IntNumberArray,
Incompatible With: None
Type: Active - set_damage:
Description: Allows to modify the damage of an item
Parameters:
"value": (The Damage the Item should have) IntNumber,
Incompatible With: None
Type: Passive - set_name:
Description: Allows to set the name of the loot item
Parameters:
"name": (The name of the item) String,
Incompatible With: None
Type: Passive - add_enchantment:
Description: Adds an Enchantment to the loot
Parameters:
"name": (The Enchantment name of the Enchantment that should be addeed) String,
"level": (The Level of the Enchantment) IntNumber,
Incompatible With: None
Type: Passive - add_tag:
Description: Allows to add a NBTTag to the item
Parameters:
"key": (the key of the NBTTag) String,
"value_type": (The Type of Value you want to create) String,
"value": (The Value that you want to store) Mixed,
Incompatible With: None
Type: Passive - add_random_enchantment:
Description: Adds a Random Enchantment from a list of Enchantments.
Parameters:
"enchantments": (The List of Enchantments that it should choose from) ObjectArray,
"name": (The Registry Name of the Enchantment) String,
"level": (The Level of the Enchantment) IntNumber
Incompatible With: None
Type: Active - set_nbtData:
Description: Allows to set the Stacks NBTData
Parameters:
"name": (The NBT File Reference for NBTData you want to add. empty = clearing, Default: empty) String,
Incompatible With: None
Type: Passive - set_random_nbtData:
Description:
Parameters:
"datas": (The NBTCompounds that should be selected from) StringArray,
Incompatible With: None
Type: Active - set_random_damage:
Description: Allows to set random damage on items
Parameters:
"damages": (The damages for the item) IntNumberArray,
Incompatible With: None
Type: Active - add_fluid:
Description: Allows to Add Fluids to the Items if they can store them
Parameters:
"name": (The Fluid Registry name of the Fluid you want to add) String,
"amount": (How much the Fluid Should be, Default: 1000) IntNumber,
Incompatible With: None
Type: Passive - add_random_fluid:
Description: Allows to add a Random Fluid out of a List to the Item
Parameters:
"fluids": (The Fluids that should be pickt from) ObjectArray,
- "name": (Fluid Registry name for the Fluid that should be added) String,
- "amount": (How much fluid should be added, Default: 1000) IntNumber,
Incompatible With: None
Type: Active - set_random_loot:
Description: Allows to add a Chance obj to a LootProperty
Parameters:
"loot": (The LootProperty that should be applied) Object,
"chance": (How likely it is that the LootProperty is applied) null,
Incompatible With: None
Type: Active - set_has_flag:
Description: Allows to add a LootProperty based on Data thats being send from the Block Property (sendFlagToLoot)
Parameters:
"flagID": (The ID of the the Flag that should be checkt for) String,
"value": (If The Flag has to be true or false, Default: true) Boolean,
"loot": (The LootProperty that should be applied) Object,
Incompatible With: None
Type: Active - set_has_Number:
Description: Allows to add a LootProperty based on Data thats being send from the Block Property (sendNumberToLoot)
Parameters:
"NumberID": (The ID of the the Number that should be checkt for) String,
"value": (What the number should be, Default: 0) IntNumber,
"loot": (The LootProperty that should be applied) Object,
Incompatible With: None
Type: Active
Block Properties:
- random_chance:
Description: Allows to add a Random Factor into your condition
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"chance": (How likely it is in % that the Random returns true, Default: 100.0) FloatNumber,
Incompatible With: None
Type: Condition - default_Condition:
Description: Allows to always return true or false
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"value": (If it should return true or false, Default: true) Boolean,
Incompatible With: None
Type: Condition - if_else_condition:
Description: Allows to do make a condition that decides which condition is being used
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"check": (The Object for the Decider Condition) Object,
"trueValue": (The Object for Condition if the Decider is true) Object,
"falseValue": (The Object for Condition if the Decider is false) Object,
Incompatible With: None
Type: Condition - invert_Condition:
Description: Allows to invert any other condition
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"value": (The Container where the condition is stored in that needs to be inverted) Object,
Incompatible With: None
Type: Condition - array_condition:
Description: Allows to combine conditions together
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"conditions": (The Conditions that should be added) ObjectArray,
"and": (If all conditions are required or just 1 of them, Default: true) Boolean,
Incompatible With: None
Type: Condition - modify_luck:
Description: Allows to modify chance of Loot Drop, for reducing negative numbers are used since its added on top of base chance
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"multiplier": (the Multiplier thats being added on top of the base chance, Default: 0.0) FloatNumber,
"points": (Adds Exact % on top of base chance, Default: 0) IntNumber,
Incompatible With: None
Type: Effect - set_rools:
Description: Allows to set a Fixed or Random Loot Rools
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "amount": (The Amount of Rools that the loot pools should get) IntNumber,
or
- "pool": (Pool of Numbers which 1 gets pickt randomly from) IntNumberArray,
Incompatible With: None
Type: Effect - conditional_Effect:
Description: Allows to make optional Effect based on 1 condition
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"condition": (The Condition object thats being checkt for) Object,
"effects": (The Effects that should be applied) ObjectArray,
Incompatible With: None
Type: Effect - offset_effect:
Description: Allows to offset a Effect to another position
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"direction": (The Side the Effect should be shifted to) String,
"effect": (The Effect that should be offset to another position) Object,
Incompatible With: None
Type: Effect - if_else_effect:
Description: Allows to apply a effect based of if a condition is true or false
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"check": (The Condition that decides which effect should be applied) Object,
"trueValue": (The Effect that is applied when the condition is true) Object,
"falseValue": (The Effect that is applied when the condition is false) Object,
Incompatible With: None
Type: Effect - offset_effect_adv:
Description:
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"effects": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "positions": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "x": (The XOffset of the Effect that should be applied) IntNumber,
- "y": (The YOffset of the Effect that should be applied) IntNumber,
- "z": (The ZOffset of the Effect that should be applied) IntNumber,
- "effect": (The Effect that should be applied) Object,
Incompatible With: None
Type: Effect - require_player:
Description: Allows to check for a Fake Player or Real Player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"require": (If the Player should be a RealPlayer, Default: true) Boolean,
Incompatible With: Duplicate(Partly)
Type: Condition - require_XP:
Description: Allows to check if the Player has a Certain amount of XP
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "required": (If the Player requires that amount of XP or if it should be below the amount, Default: true) Boolean,
- "value": (how much XP should be checked for, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: require_XP_Level(Completely) Duplicate(Partly)
Type: Condition - require_XP_Level:
Description: Allows to Check for Experience levels
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "required": (If the player should require that amount or stay below it, Default: true) Boolean,
- "value": (How many Experience levels should be checked for, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly) require_XP(Completely)
Type: Condition - require_sneak:
Description: Allows to check if a player is sneaking
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"sneak": (If the Player should sneak or not, Default: true) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - require_empty_hand:
Description: Allows to Check if the players hand is empty or not
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"required": (If the players hand should be empty or any item, Default: true) Boolean,
"offHand": (If the Offhand or MainHand Should be empty or not, Default: false) Boolean,
Incompatible With: require_item(Completely) require_tool(Completely) require_item_list(Completely) Duplicate(Partly)
Type: Condition - require_left:
Description: Allows to check if it the currentclick is a left or rightclick
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"leftClick": (Allows to decide if the Left or Rightclick is required, Default: true) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - require_tool:
Description: Allows to check if a player has a tool in the hand
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"tool": (Which tool should be required) String,
"level": (Which level the tool should have) IntNumber,
"offHand": (If the Tool is required on the Main Hand or Off Hand, Default: false) Boolean,
Incompatible With: require_item(Completely) Duplicate(Partly) require_item_list(Completely) require_empty_Hand(Completely)
Type: Condition - require_potion:
Description: Allows to check for if the Player has a PotionEffect
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (PotionRegistryName that should be checkt for) String,
"required": (if the Potion is required or not, Default: true) Boolean,
Incompatible With: None
Type: Condition - require_item:
Description: Allows to check if the Player has a Item in his main or offHand
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (Item that should be compared with) String,
"meta": (The Metadata that should be compared with. 32767 = IgnoreMeta, Default: 32767) IntNumber,
"amount": (The Stacksize that is required, Default: 1) IntNumber,
"offhand": (If the Item should be at the Offhand or not, Default: false) Boolean,
"required_durability": (The Durability that is required, Default: -1) IntNumber,
"tags": (Required NBTTags that the item should have) StringArray,
Incompatible With: Duplicate(Partly) require_tool(Completely) require_item_list(Completely) require_empty_Hand(Completely)
Type: Condition - require_item_list:
Description: Allows to check if a player has 1 of the items in a list
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"items": (The Items that should be compared with (It can be either a Object or a ObjectArray)) OptionalObjectArray,
- "name": (Item that should be checkt for) String,
- "amount": (The Stacksize that should be checkt for, Default: 1) IntNumber,
- "meta": (The Metadata that should be compared with, (32767 == Ignore Meta), Default: 32767) IntNumber,
"offHand": (If the Item should be present in the Offhand or mainHand, Default: false) Boolean,
Incompatible With: require_item(Completely) require_tool(Completely) Duplicate(Partly) require_empty_Hand(Completely)
Type: Condition - require_air:
Description: Allows to check the players Air Level (between -20 and 300)
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "bigger": (If the Air should be bigger then the given value, Default: true) Boolean,
- "value": (how much air should be required or not, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_health:
Description: Allows to check the players Health
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "bigger": (If the Health should be bigger then the given value, Default: true) Boolean,
- "value": (how much health should be required or not, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_wet:
Description: Allows if the Player is wet (in rain or water)
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"required": (If the Player should be wet or not, Default: true) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - is_burning:
Description: Allows to check if the Player is burning
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"required": (if the player has to burn or not, Default: true) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - player_has_items:
Description: Allows to Check for Items inside of the Players inventory
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"items": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "name": (The Item that should be searched for) String,
- "meta": (The Metadata that should be searched for, Default: 32767) IntNumber,
- "amount": (The Stacksize that should be searched for, Default: 1) IntNumber,
- "nbt": (The NBTData that should be checkt for. Defaults to ignore, Default: null) String,
Incompatible With: Duplicate(Completely)
Type: Condition - require_hunger:
Description: Allows to check for the Players Hunger
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "bigger": (If the Hunger should be bigger then the given value, Default: true) Boolean,
- "value": (how much Hunger should be required or not, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_max_health:
Description: Allows to check the players Max-Health
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "bigger": (If the Max-Health should be bigger then the given value, Default: true) Boolean,
- "value": (how much Max-Health should be required or not, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - player_has_tag:
Description: Allows to check if a Player has a Unique Stored. (Good for Per player Treasure)
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"tagID": (The TagID that should be checkt for) String,
Incompatible With: None
Type: Condition - item_has_nbt:
Description: Allows you to check if a Item has a NBTTagCompound
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"require": (If the NBTTagCompound is required or not, Default: true) Boolean,
"offHand": (If the Item to use should be from the Main or Offhand, Default: false) Boolean,
"name": (The id of the NBTFile Reference for the NBTTagCompound to use) String,
Incompatible With: Duplicate(Partly)
Type: Condition - add_XP:
Description: Allows to add or remove XP from a Player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"amount": (The Amount of XP that should be added or removed) IntNumber,
"remove": (If the XP should be added or removed, Default: false) Boolean,
Incompatible With: None
Type: Effect - add_XP_Level:
Description: Allows to Add or Remove XP Levels
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"amount": (How many XP Levels should be added or removed) IntNumber,
"remove": (If XP Levels should be added or Removed, Default: false) Boolean,
Incompatible With: None
Type: Effect - add_hunger:
Description: Allows to add Hunger/Exhaustion to the Player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"exhaustion": (If the Effect should add Exhaustion or remove Hunger directly, Default: true) Boolean,
"amount": (How much Exaustion should be added or how much hunger should be removed) FloatNumber,
Incompatible With: None
Type: Effect - add_Potions:
Description: Allows to apply a Potion Effect to a Player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"chance": (how likely it is that these Potions get applied, Default: 100.0) FloatNumber,
"potions": (The Potion Effects that should be applied (It can be either a Object or a ObjectArray)) OptionalObjectArray,
- "name": (Potion Registry name of the Potion that you want to apply) String,
- "duration": (The Duration of the Potion Effect in game ticks) IntNumber,
- "amplifier": (How Strong the Potion should be, Default: 0) IntNumber,
- "particals": (If the Potion Effect should show Particals, Default: true) Boolean,
Incompatible With: None
Type: Effect - swing_hand:
Description: Allows to make that the Player swings his hand
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
Incompatible With: None
Type: Effect - drop_items:
Description: Allows to decide if the Loot Items drop or get added to the Players Inventory
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"doDrop": (If the Loot should drop or not, Default: true) Boolean,
Incompatible With: None
Type: Effect - damage_item:
Description: Allows to damage the held item
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"amount": (How much damage should be applied) IntNumber,
"chance": (How likely it is that the damage gets applied, Default: 100.0) FloatNumber,
"offHand": (If the Item should be damaged from the Main or OffHand, Default: false) Boolean,
Incompatible With: consume_item(Completely)
Type: Effect - consume_item:
Description: Allows to consume the held item
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"amount": (How many items should be consumed) IntNumber,
"chance": (how likely it is that the items get consumed, Default: 100.0) FloatNumber,
"offHand": (If the Item should be removed from the Main or OffHand, Default: false) Boolean,
Incompatible With: damage_item(Completely)
Type: Effect - consume_player_items:
Description: Allows to consume items from a Players inventory
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"items": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "name": (The Item that should be consumed) String,
- "meta": (The Metadata of the item that should be consumed 32767 = any meta, Default: 32767) IntNumber,
- "amount": (How many items should be consumed, Default: 1) IntNumber,
- "nbt": (The NBTData the item should have that should be consumed, Default: null) String,
Incompatible With: None
Type: Effect - change_health:
Description: Allows to increase/decrease the Players health
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"increase": (If the health should be increased or not, Default: true) Boolean,
"amount": (How much the health should be increased or decreased) FloatNumber,
Incompatible With: None
Type: Effect - remove_potion:
Description: Allows to remove Potion Effects from a Player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"chance": (The Chance of how likely the Potion Effects will be removed, Default: 100.0) FloatNumber,
"potions": (The Potion Registry names of the Potions that should be removed) StringArray,
Incompatible With: None
Type: Effect - set_air_level:
Description: Allows to set the Players Air Level [between -10 and 300]
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"amount": (The Air Value that should be set, Default: 300) IntNumber,
Incompatible With: None
Type: Effect - set_XP:
Description: Allows to set the Player Experience to a certain level or points
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"level": (If the Set of XP should be amount or Level, Default: true) Boolean,
"amount": (How much the player XP or XP Level should be set to, Default: 1) IntNumber,
Incompatible With: None
Type: Effect - set_player_tag:
Description: Allows to set a Tag to a player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"tagID": (The Tag you want to add or remove from the Player) String,
"remove": (If the tag should be added or removed, Default: false) Boolean,
Incompatible With: None
Type: Effect - consume_random_item:
Description: Allows to consume 1 random item out of the Players inventory
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"items": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "name": (The Item that should be consumed) String,
- "meta": (The Metadata of the item that should be consumed 32767 = any meta, Default: 32767) IntNumber,
- "amount": (How many items should be consumed, Default: 1) IntNumber,
- "nbt": (The NBTData the item should have that should be consumed, Default: null) String,
- "weight": (The Weight how likely it is that this item should be consumed) IntNumber,
Incompatible With: None
Type: Effect - per_player_limit:
Description: Allows to limit the Usage of a Block per Player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"id": (Custom ID for the Counter for the per Player Data, Default: ResourceID) String,
"increase": (If the it should be used up or reduced, Default: true) Boolean,
either
- "usage": (How much the Value should increase, Default: 1) IntNumber,
- "max": (How much the limit should be) IntNumber,
or
- "usage": (How much the Value should decrease, Default: 1) IntNumber,
- "max": (What the max should be (for the progress-animation)) IntNumber,
- "min": (What the lower value should be., Default: 0) IntNumber,
Incompatible With: per_block_limit(Completely) per_chunk_limit(Completely) Duplicate(Completely)
Type: Condition, Effect - clicks_per_time:
Description: Allows to check how often a Block was clickt per a certain amount of time
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"tabs": (How many Clicks per tick should be allowed, Default: 1) IntNumber,
"time": (How many game ticks between the Click Limit should be, Default: 1) IntNumber,
"amount": (How many Clicks should be 1 click worth, Default: 1) IntNumber,
"trackerID": (Which id the click per time should have, Default: ResourceID) String,
Incompatible With: None
Type: Condition, Effect - sendFlagToLoot:
Description: Allows to send a flag to the Loot Generator to be processed
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"flagID": (The ID that should be send to the LootGenerator) String,
"value": (What the Value should be thats being send, Default: true) Boolean,
Incompatible With: None
Type: Effect - sendNumberToLoot:
Description: Allows to send a Number to the Loot Generator to be processed
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"NumberID": (The ID that should be send to the LootGenerator) String,
"value": (What the Value should be thats being send, Default: true) Boolean,
Incompatible With: None
Type: Effect - has_score:
Description: Allows to check the if the player has a certain score
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Score ID that should be compared with) String,
either
- "bigger": (If the Score should be bigger or smaller then the requested value, Default: true) Boolean,
- "value": (how big or small the score should be, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_stat:
Description: Allows to check the if the player has a certain Stat
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The StatID that should be compared with) String,
either
- "bigger": (If the Stat should be bigger or smaller then the requested value, Default: true) Boolean,
- "value": (how big or small the score should be, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_achievement:
Description: Allows to check for a Achievement
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Achievement Registy name of the Achievment that should be checkt for) String,
"required": (If the achievement should be required or not, Default: true) Boolean,
Incompatible With: Duplicate(Partly)
Type: Condition - add_stat:
Description: Allows to Modify Stat Points
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The StatRegistry name that should be changed) String,
"increase": (If the Stat should be increased or decreased, Default: true) Boolean,
"amount": (How much the stat should be modified, Default: 1) IntNumber,
Incompatible With: None
Type: Effect - add_score:
Description: Allows to modify a Score
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Score id of the Score that you want to change) String,
"increase": (If the Score should increase or decrease, Default: true) Boolean,
"amount": (How much the score should increase or decrease, Default: 1) IntNumber,
Incompatible With: None
Type: Effect - add_Achievement:
Description: Allows to Add Achievements to a Player
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Achievement that should be given) String,
Incompatible With: None
Type: Effect - require_Spawn:
Description: Allows to control if the Block should be inside or outside of the spawn Range
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "inside": (If the Block needs to be inside or outside of the Spawn, Default: true) Boolean,
- "radius": (The Distance in Blocks how close or far away the Player should be from the Spawn, Default: 128) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_Biome:
Description: Allows to check for biomes to white or blacklist
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"biomes": (The Biome(s) that should be compared with (It can be either a String or a StringArray)) OptionalStringArray,
"inverted": (Decides if the List is a white or blacklist, Default: false) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - require_dimension:
Description: Allows to control in which dimensions the block should be in and in which not
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"dimension": (The dimensions that should be included or exluded (It can be either a Object or a ObjectArray)) OptionalObjectArray,
- "dim": (The Dimension should be required or excluded) IntNumber,
- "required": (If the dimension is required or exluded) Boolean,
- "default": (What should be returned if the Dimension isn't found, Default: false) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - require_time:
Description: Allows to check if the World has a Certain Time of the Day
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "minValue": (Minimum Time that should be checkt for) IntNumber,
- "maxValue": (Maximum Time that should be checkt for) IntNumber,
- "inRange": (If the Check range should be inclusive or exclusive, Default: true) Boolean,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_worldExistence:
Description: Allows to check how long the world already Existed
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "minValue": (Minimum Time that should be checkt for) LongNumber,
- "maxValue": (Maximum Time that should be checkt for) LongNumber,
- "inRange": (If the Check range should be inclusive or exclusive, Default: true) Boolean,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_weather:
Description: Allows to check for the Weather and if the Block is directly effected by it
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"weather": (Which type of Weather should be checkt for (rain/thunder/snowing)) String,
"required": (If the Weather should be present or not, Default: true) Boolean,
"directly": (If the Block should be directly in the Rain, Default: false) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - require_entity:
Description: Allows to check for Entities to be in range of the position
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (Which type of Entities should be checkt for) String,
"radius": (How far the Check Range should be, Default: 5) IntNumber,
either
- "required": (If the Entity should be present or not, Default: true) Boolean,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - require_block:
Description: Allows to check for Blocks around the Clicked Block
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (Which Block should be checked for) String,
"meta": (Which metadata should be used to check with, Default: 32767) IntNumber,
"require": (if the Block is required or should not be present, Default: true) Boolean,
"and": (if All blocks should be that or any amount should be it, Default: true) Boolean,
"sides": (which sides should be checked for) StringArray,
Incompatible With: Duplicate(Partly)
Type: Condition - per_chunk_limit:
Description: Allows to limit the Usage of a Block per Chunk
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"id": (Custom ID for the Counter for the per Chunk Data, Default: ResourceID) String,
"increase": (If the it should be used up or reduced, Default: true) Boolean,
either
- "usage": (How much the Value should increase, Default: 1) IntNumber,
- "max": (How much the limit should be) IntNumber,
or
- "usage": (How much the Value should decrease, Default: 1) IntNumber,
- "max": (What the max should be (for the progress-animation)) IntNumber,
- "min": (What the lower value should be., Default: 0) IntNumber,
Incompatible With: per_block_limit(Completely) Duplicate(Completely) per_player_limit(Completely)
Type: Condition, Effect - require_Height:
Description: Allows to control if the Block should be inside or outside of the spawn Range
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "inside": (If the Block Needs to be inside of the Y Levels, Default: true) Boolean,
- "minValue": (The Lowest Level the Block should be at, Default: 0) IntNumber,
- "maxValue": (The Heighest Level the Block should be at, Default: 255) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Completely)
Type: Condition - require_structure:
Description: Allows to check if the Block is inside of a Structure
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Structure Type that should be checkt for) String,
"required": (If the Structure is required or not, Default: true) Boolean,
Incompatible With: Duplicate(Completely)
Type: Condition - require_side:
Description: Allows to check which side the Player is clicking on
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"sides": (Which sides can be clicked on) StringArray,
Incompatible With: Duplicate(Completely)
Type: Condition - require_distance:
Description: Allows to check how far from a distance Customized Position X&Z only
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"x": (The XPosition that should be checkt for, Default: 0) IntNumber,
"y": (The YPosition that should be checkt for, Default: 0) IntNumber,
"z": (The ZPosition that should be checkt for, Default: 0) IntNumber,
either
- "bigger": (, Default: true) Boolean,
- "value": (How big/small the distance to the Position should be, Default: 0) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: Duplicate(Partly)
Type: Condition - has_meta:
Description: Allows to check for if the Block has a Certain Metadata
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "required": (If the Metadata is required or not, Default: true) Boolean,
- "meta": (Which metadata should be required or not) IntNumber,
or
- "operations": (RegistryName for the Math Operation) Registry Element,
- "jeiDesc": (The Description for the JEI plugin) String,
Incompatible With: None
Type: Condition - has_block_structure:
Description: Allows to check for a custom Made Structure.
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"blocks": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "name": (Which Block should be checked for) String,
- "meta": (Which metadata should be used to check with, Default: 32767) IntNumber,
- "positions": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "x": (The XOffset for the Block that should be checkt for of the Clicked Block.) IntNumber,
- "y": (The YOffset for the Block that should be checkt for of the Clicked Block.) IntNumber,
- "z": (The ZOffset for the Block that should be checkt for of the Clicked Block.) IntNumber,
"require": (If the Structure is required or not, Default: true) Boolean,
Incompatible With: None
Type: Condition - per_block_limit:
Description: Allows to limit the Usage of a Block per Block
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"id": (Custom ID for the Counter for the per Block Data, Default: ResourceID) String,
"increase": (If the it should be used up or reduced, Default: true) Boolean,
either
- "usage": (How much the Value should increase, Default: 1) IntNumber,
- "max": (How much the limit should be) IntNumber,
or
- "usage": (How much the Value should decrease, Default: 1) IntNumber,
- "max": (What the max should be (for the progress-animation)) IntNumber,
- "min": (What the lower value should be., Default: 0) IntNumber,
- "replacement": (Which replacement Block should be used) Object,
- "name": (The Block that should be used as replacement) String,
- "meta": (Metadata of the Block that should be used, Default: 0) IntNumber,
Incompatible With: Duplicate(Completely) per_chunk_limit(Completely) per_player_limit(Completely)
Type: Effect - mark_unbreakable:
Description: Makes the Block Unbreakable
Parameters: "set" (if the unbreakable should be enabled or not)
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
Incompatible With: None
Type: Condition - consume_block:
Description: Allows to consume the Clicked block or to transform it into another block
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"chance": (How likely it is that the block gets consumed or transformed, Default: 100.0) FloatNumber,
"name": (What Block Replacement block should be, Default: minecraft:air) String,
"meta": (Which metadata the block should have, Default: 0) IntNumber,
"dropBlock": (Allows to drop the block as if it was mined, Default: disabled) Boolean,
Incompatible With: None
Type: Effect - spawn_explosion:
Description: Spawns a Explosion at the Blocks Position
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"power": (How Powerful the Explosion should be) FloatNumber,
"flame": (If the Explosion should spawn Flames, Default: false) Boolean,
"smoking": (If the Explosion should spawn Smoke Particals, Default: true) Boolean,
Incompatible With: None
Type: Effect - spawn_particles:
Description:
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Partical that should be spawned) String,
"amount": (How many should be spawned. 0 = No Random movement but only 1 partical, Default: 0) IntNumber,
"xOffset": (The Offset and motion multiplier for the X Position, Default: 0.0) FloatNumber,
"yOffset": (The Offset and motion multiplier for the Y Position, Default: 0.0) FloatNumber,
"zOffset": (The Offset and motion multiplier for the Z Position, Default: 0.0) FloatNumber,
"speed": (The Speed that the Particals should move at, Default: 1.0) FloatNumber,
"partical_args": (Custom Partical Arguments. These are the same as the Command one) IntNumberArray,
Incompatible With: None
Type: Effect - play_sound:
Description: Allows to play a sound at the Blocks position
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Sound ID that should be played) String,
"category": (Which sound category the sound should play under, Default: master) String,
"volume": (how loud the sound should play, Default: 1.0) FloatNumber,
"pitch": (how high the pitch of the sound should be, Default: 1.0) FloatNumber,
Incompatible With: None
Type: Effect - use_command:
Description: Allows to send a command at the Blocks position as admin
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Command name that should be executed) String,
"arguments": (The Arguments for the command if a argument starts with 'nbt:' then it will access the NBTFiles to load NBTData) StringArray,
Incompatible With: None
Type: Effect - modify_required:
Description: Allows to replace the blocks of the connection sides
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"chance": (How likely it is that the Replacments happens, Default: 100.0) FloatNumber,
"name": (Which block it should turn into, Default: minecraft:air) String,
"meta": (The metadata the block should turn into, Default: 0) IntNumber,
"sides": (The Sides that should be modified) StringArray,
Incompatible With: None
Type: Effect - change_meta:
Description: Allows to change the Metadata of the block
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
either
- "meta": (The meta the block should turn into) IntNumber,
or
- "metas": (A Pool where a random meta is pickt from) IntNumberArray,
or
- "metaMap": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "target": (Metas that should be checkt for) IntNumberArray,
- "result": (What the BlockMeta should turn into) IntNumber,
Incompatible With: None
Type: Effect - place_block_structure:
Description: Allows to place a customized Structure
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"blocks": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "name": (The Block that should be placed) String,
- "meta": (The Metadata that should be placed with the block, Default: 0) IntNumber,
- "positions": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "x": (The XOffset for the Block that should be placed of the Clicked Block.) IntNumber,
- "y": (The YOffset for the Block that should be placed of the Clicked Block.) IntNumber,
- "z": (The ZOffset for the Block that should be placed of the Clicked Block.) IntNumber,
Incompatible With: None
Type: Effect - require_tile_items:
Description: Allows to check if the Block TileEntity has a set of items present
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"items": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "name": (The Item that should be searched for) String,
- "meta": (The Metadata that should be searched for, Default: 32767) IntNumber,
- "amount": (The Stacksize that should be searched for, Default: 1) IntNumber,
- "nbt": (The NBTData that should be checkt for. Defaults to ignore, Default: null) String,
Incompatible With: Duplicate(Partly)
Type: Condition - tile_has_fluid:
Description: Allows to check if the TileEntity has a Fluid stored
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Fluid Registry name of the Fluid that should be checkt for) String,
"amount": (How much the liquid should be checkt for, Default: 1000) IntNumber,
"exact": (If the Exact amount should be present or any Amount, Default: true) Boolean,
Incompatible With: Duplicate(Partly)
Type: Condition - tile_has_FE:
Description: Allows to check for Forge Energy inside of a Block
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"bigger": (If the Block should have more or less ForgeEnergy then requested, Default: true) Boolean,
"amount": (How much forge Energy Should be checkt for, Default: 0) IntNumber,
Incompatible With: Duplicate(Partly)
Type: Condition - item_has_FE:
Description: Allows to check for Forge Energy inside of a Block
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"bigger": (If the Block should have more or less ForgeEnergy then requested, Default: true) Boolean,
"amount": (How much forge Energy Should be checkt for, Default: 0) IntNumber,
Incompatible With: Duplicate(Partly)
Type: Condition - consume_tile_items:
Description: Allows to consume items from a TileEntities inventory
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"side": (Which side the items should be taken from, Default: Null) String,
"items": (It can be either a Object or a ObjectArray) OptionalObjectArray,
- "name": (The Item that should be consumed) String,
- "meta": (The Metadata of the item that should be consumed 32767 = any meta, Default: 32767) IntNumber,
- "amount": (How many items should be consumed, Default: 1) IntNumber,
- "nbt": (The NBTData the item should have that should be consumed, Default: null) String,
Incompatible With: None
Type: Effect - tile_consume_fluid:
Description: Allows to consume Fluid from the TileEntity
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Fluid Registry name of the Fluid that should be consumed) String,
"amount": (How much the liquid should be consumed, Default: 1000) IntNumber,
Incompatible With: None
Type: Effect - tile_add_fluid:
Description: Allows to Fill Fluid to the TileEntity
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"name": (The Fluid Registry name of the Fluid that should be added) String,
"amount": (How much the liquid should be added, Default: 1000) IntNumber,
Incompatible With: None
Type: Effect - add_tile_items:
Description: Allows to add Items into slots of a TileInventory
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"side": (Which side the items should be added from, Default: Null) String,
"items": (The Items that should be inserted) ObjectArray,
- "name": (The ItemRegistryName of the Item that should be inserted) String,
- "meta": (The Metadata of the Item that should be inserted, Default: 0) IntNumber,
- "amount": (The Amount of the Item that should be inserted, Default: 1) IntNumber,
- "nbt": (The NBTData the Item should have. Optional) String,
- "slots": (The Slots the Item should be in) IntNumberArray,
Incompatible With: None
Type: Effect - modify_Block_FE:
Description: Allows to add or remove FE to a BlockTileEntity
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"consume": (If Forge Energy should be added or removed, Default: true) Boolean,
"amount": (How much should be added or removed, Default: 0) IntNumber,
Incompatible With: None
Type: Effect - modify_Item_FE:
Description: Allows to add or remove FE to a Item
Parameters:
"disableJEI": (Decides if the Condition is visible in JEI, Default: false) Boolean,
"consume": (If Forge Energy should be added or removed, Default: true) Boolean,
"amount": (How much should be added or removed, Default: 0) IntNumber,
Incompatible With: consume_item(Completely)
Type: Effect
Can I use this to spawn structures on right click while facing/aiming a block? I made my own structure but lets use village or dungeons for example.. Is it place_block_structure?
Or maybe a command that spawns a structure in?
Sorry I am not good at coding. Never done it before, I am trying to learn but I dont understand the buzz words, how would make right click while facing/aiming a block to execute a command? use_command by "name":"/summon example" or "arguments":"/summon example"?? I especially dont understand "name" for use_command
In reply to FrozenToothpaste:
place_block_structure places blocks in mass so technically you could spawn a structure with it.
command name is like "/kill" (without the "/") and arguments is what is after that.
I have a pair of files that I am trying to work, but I can't get them to work with the require_dimension property. I tested them otherwise and they seem to be fine. Using the /reload scavenge command shows no errors. Am I missing some obvious syntax here? Here are the 2 files in question:
TPNether
TPOverworld
works fine, but i have 2 Problems.
1. I want the "drops" to "drop" on the ground.
2. i can't seem to set "minecraft:log:1"
any ideas?
In reply to real_senz0:
Search in the documentation for "drop_items" in the Block Properties. That should do what you want.
It's just Sad that there are no good examples to go from.
I don't know what I am doing wrong.I tested several scripts and nothing works.Created a fresh 1.12.2 Instance with the newest Forge Version, and it also don't work.Her is my Script: pastebin.comHope someone can give me the right hint.Else, my Java can be broken or something else.I have no idea.Edit: I have to load the files in the config. Miss that, sorry for the post and tanks for the mod. :+1:
Hi, I found an issue.I want to add a sound effect to block when you right-click only.I need to disable the blocking of the right-click because it is blocking original block functionality.The issue is that the block has another functionality that requires to sneak and right-click.This sneak and right-click functionality is not working. (Scavenge is probably blocking it)Will be awesome if there was something like "blockSneak": falseHere is example of that scriptThis was fault :D, everything is working fine. The mod is perfect, Thanks :D
In reply to teksturepako:
Thanks for updating. And thanks.
Can I take this mod to the Chinese website www.mcbbs.net ?
The level feature of the add_enchantment property doesn't seem to work property -- it registers success and adds the enchantment, but all enchantments are always level 1.
So I'm using this to relight unlit torches which replaces the unlit ver with the lit ver. This almost works perfectly, is there any way to get the new block to reorient itself the way it was before? The new placed torch ends up hovering mid-air in the block space.This is what happens:
In reply to sovlv:
You should make 5 different scavenge files for the 5 different torches metadata. That should work!
In reply to teksturepako:
Torches have metadata? How would I find and use that? Sorry for asking, just a bit out of my knowledge. :p
In reply to sovlv:
I think so. Use F3 or CraftTweaker /ct blockinfo command to find out. But also, torches have two variants:
block.minecraft.wall_torch
block.minecraft.torch
In reply to sovlv:
Well Scavenge has not really support to transfer data from conditions over to the effects. At least not in a simple way.
Right now what you have to do is have 2 block files (could be done in one too but that would be more complicated)
1 file: is for the staying torch, the other file would be for the wall torch.
Since wall torches have 4 metadata you need to check the metadata if the block matches and set a block and the right metadata in each case.
There is a conditional effect that you can stack. Its a crude method but yeah that would work.
hey, with this mod i can add "compat" between Mekanism and HBM's Nuclear Tech mod?
let me explain myself:
-Mekanism adds Deuterium and Tritium, and HBM's Nuclear Tech Mod too
-but the Deuterium of HBM's is not compatible with the one from Mekanism (and tritium too)
-and HBM's add a new fluid cell for their liquids (which can contain both Deuterium from HBM and Mekanism)
so i was thinking in use this mod to: when someone with a fluid cell from HBM's in their hand right-click any liquid container (like the tanks from Builcraft or the barrels from Ye Olde Tanks) with Deuterium from Mekanism, it will receive a HBM's fluid cell with Deuterium from HBM's, not from Mekanism.
https://imgur.com/a/MFkvDh1
is this possible with this mod?
In reply to gato_borrachon:
Should be possible though it would be a lot of work, since it does not support air item clicks.
Is it possible that the drops are activated after a certain number of clicks on the block?
For example that after 8 clicks the drop is activated.
In reply to LoloElSupremo:
technically yes. But that requires a creative brain with the scripting language or a addon that adds this exact specific feature in a simple way.