# Environmental Tech 3 Wiki # Void Miners In this chapter you will find all necessary information about Void Miners such as how to obtain the crystals and Mica and also how to add new drops and programs to them using Datapacks. # Void Miners ##### Getting Started T[![gui.png](https://wiki.teamkrypticlink.com/uploads/images/gallery/2021-08/scaled-1680-/jmdgui.png)](https://wiki.teamkrypticlink.com/uploads/images/gallery/2021-08/jmdgui.png)o get started mining things using your void miner you'll need to make yourself a Memory Programmer. [Click Here](https://wiki.teamkrypticlink.com/books/environmental-core-3-wiki/page/memory-programmer "Memory Programmer") for more in-depth information about how to use the Memory Programmer. Some other things to keep in mind when building your Void Miner is that it will need visible line of sight from the Laser Core to either Bedrock or the sky. ##### Installing Flash Memory Once you have a programmed Flash Memory you can then open up the GUI of the Void Miner and place it in the slot in the middle as showed in the picture. Assuming you have the structure built correctly the Void Miner will then show a duration and Tick Cost in the GUI and you will also be able to open the GUI by right clicking any of the Structure Frames or Structure Panels. The Duration is how long it will take the miner, provided that it has the tick cost worth of energy supplied, to mine an item. The Tick Cost is the energy required per tick to allow the miner to mine at the maximum speed that is currently possible with all modifiers included. If you don't provide the tick cost amount of energy or more then your Void Miner will be slower. ##### Lenses Using lenses inside the Lens Holder on the Void Miner will increase the mine rate of certain items. For example, if you used a Red Lens on a Mineral Miner program, your miner would produce more Redstone than it usually would without the lens. You can also increase that rate even further using Amplification Modifiers. ##### Modifiers The following list are all the usable Modifiers in the Void Miners: - **Frequency** - This speeds up the void miner as long as you still have the energy to feed it. - **Bandwidth** - This increases the possible maximum stack size of each mined drop. - **Amplification** - This increases the likelihood of gaining drops based on what lens you have installed. - **Dimensional** - This allows the Void Miner to gain any biome-specific drop in the current dimension. - **Interdimensional** - This allows the Void Miner to gain any drops from any dimension. ##### IO Blocks There are two IO blocks that are needed for the Void Miner, you'll need at least 1 Item Output and at least 1 Energy Input IO Block. You can indeed use multiple of each of those IO blocks if you want to. ##### Void Miner Programs Each void miner program targets a set of items usually within a certain category. Here's a list of the programs and what kind of materials they mine: - Crystal Miner - This mines the tiered crystals in Environmental Core. - Ore Miner - This mines Ores. - Resource Miner - This mines stuff like various Dirt's, Stones, Sands, Gravels etc. - Botanic Miner - This mines Leaves, Logs, Plants, Crops, Sapling's etc. - Multi Miner - This mines any drop from any program. - Gemstone Ore - Gem based ores such as Diamonds, Emeralds and other crystals. - Metallic Ore - Metalic ores such as Iron, Copper, Gold, Silver, etc. - Mineral Ore - Ores that are considered Minerals such as Coal, Redstone, Sulfer, Nitor etc. - Magical Ore - This will mine magical ores from magic mods if any are present. - Frozen Resource - Ice, Snow and other Frozen materials. - Loose Resource - Dirts, Gravels, Sands etc. - Rocky Resource - Stones and other hard/rocky materials. - Flowery Botanic - Flowers - Foresty Botanic - Leaves, Logs, Saplings etc. - Gargen Botanic - Crops, Seeds etc. # Adding Drops to Void Miners In this article we will look into how to add drops to the Void Miners. This tutorial assumes that you already have a Void Miner Program to add the drops to or you are planning on using the built in ones. The directory that these drops need to be located in would look something like this: `data/NAMESPACE_HERE/envirotech/void_miner_drops/` the NAMESPACE\_HERE would be replaced with your datapack/mod id. #### Lets make a Void Miner drop This is the base recipe framework. - `"programs": []` is a String array that is used to set all of the possible programs that this drop can be mined from. - `"item": {}` is where you'll set your item and its nbt or selector. All possible item configurations can be found using this tutorial: [Recipe Item Types](https://wiki.teamkrypticlink.com/books/valkyrielib/page/recipe-item-types "Recipe Item Types") - `"config": []` is a list of specific drop settings, you'll need at least one setting in here in order for this drop to be able to be mined. ```JSON { "programs": [], "item": {}, "config": [] } ``` ##### Setting Programs In order for your drop to be actually mined by a void miner program it will need to be specified in the `"programs"` array. This is an example of what that should look like: ```JSON "programs": ["envirotech:ore"] ``` If you are trying to add this drop to multiple miners it would look like this: ```JSON "programs": ["envirotech:ore", "envirotech:mineral_ore"] ``` #### Configuring the drop Settings For the purposes of this section of the tutorial we will be referring to the Objects that are inside the "config" array as Settings and referring to the values inside of that Setting as Properties. To enable mining of this drop you will need to specify a Setting with at minimum a weight, but you can configure a lot more than just weight such as biomes(whitelist and blacklist), dimensions(whitelist and blacklist) and focus. The only property that is required in every setting is the `"weight"` property, if there is no weight property the setting will be ignored. If you have a setting with just a weight it basically becomes the default weight. Using this example Setting you will have the minimum requirements for mining: ```JSON "config": [ { "weight": 100 } ] ``` ##### Focus To set a focus for this weight setting you can add `"focus": ""` to your Setting. You can use any of the predefined lens focus id's or you can make your own using this tutorial: [Creating Lens Grinder Recipe](https://wiki.teamkrypticlink.com/books/environmental-core-3-wiki/page/creating-lens-grinder-recipes-and-categories "Creating Lens Grinder Recipes") Example: ```JSON { "weight": 100, "focus": "envirotech:purple" } ``` ##### Tiers To limit a drop to a certain tier or some tiers you can add `"tiers": []` to your drop Setting. Example: ```JSON { "weight": 100, "tiers": [1,3,5] } ``` ##### Dimensions In order to add dimension requirements all you have to do is add `"dimensions": []` into your setting and then add each dimension id into that String array. Here is an example: ```JSON { "weight": 100, "dimensions": [ "minecraft:overworld", "minecraft:the_end" ] } ``` To blacklist Dimensions instead you can add `"dimension_blacklist": true` to your setting, an example follows. ```JSON { "weight": 100, "dimensions": [ "minecraft:overworld", "minecraft:the_end" ], "dimension_blacklist": true } ``` ##### Biomes In order to add biome requirements all you have to do is add `"biomes": []`into your setting and then add each biome id into that String array just like with the `"dimensions"` property. Here is an example: ```JSON { "weight": 100, "biomes": [ "minecraft:desert", "minecraft:warm_ocean" ] } ``` To blacklist Biomes instead you can also add "biome\_blacklist": true to your setting, an example follows. ```JSON { "weight": 100, "biomes": [ "minecraft:desert", "minecraft:warm_ocean" ], "biome_blacklist": true } ``` ##### Multiple Drop Settings Yes you can have any number of these drop settings, and with any combination of properties. An example: ```JSON { "programs": ["envirotech:ore", "envirotech:mineral_ore"], "item": {"raw:item": "minecraft:bedrock"}, "configs": [ { "weight": 100 }, { "weight": 1000, "dimensions": [ "minecraft:the_end" ] }, { "weight": 10000, "focus": "envirotech:xerothium" } ] } ``` # Adding Void Miner Programs Adding Void Miner Programs is actually quite a simple process. First of all the directory that these Void Miner Programs need to be located in would be `data/NAMESPACE_HERE/envirotech/void_miner_program/`with NAMESPACE\_HERE being replaced with your datapack/mod ID. ##### Void Miner Program ID Keep in mind that the name of this json is also the second half of the program ID. So your Void Miner program id would be in this format: `NAMESPACE_ID:VOID_MINER_JSON_NAME` for example the Ore Miner's json name is `ore.json` and it belongs to Environmental Tech and its namespace id is `envirotech` so the id of its program would be: `"envirotech:ore"`keep that in mind when you are [Creating Memory Programmer Recipes](https://wiki.teamkrypticlink.com/books/environmental-core-3-wiki/page/creating-memory-programmer-recipes-and-categories "Creating Memory Programmer Recipes") for your custom Void Miner Programs. ##### Lets create the Void Miner Program You'll need to create a json file in the location specified above. Inside that json you'll need to create some json that looks like the following example: ```JSON { "litherite": { "min_duration": 320, "max_duration": 380, "tick_energy": 1000 }, "erodium":{ "min_duration": 64, "max_duration": 320, "tick_energy": 1000 }, "kyronite": { "min_duration": 32, "max_duration": 160, "tick_energy": 1000 }, "pladium": { "min_duration": 16, "max_duration": 80, "tick_energy": 1000 }, "ionite": { "min_duration": 6, "max_duration": 60, "tick_energy": 1000 }, "aethium": { "min_duration": 4, "max_duration": 40, "tick_energy": 1000 }, "nanorite": { "min_duration": 2, "max_duration": 20, "tick_energy": 1000 }, "xerothium": { "min_duration": 1, "max_duration": 10, "tick_energy": 1000 } } ``` After you've added that to your json file you can then edit these values to your desire. ##### Tier Properties `"max_duration"` Is the duration in ticks of the miner without any Frequency modifiers applied to it. `"min_duration"` Is actually not the minimum duration but actually the point where the miner will double its energy cost on top of the extra cost of the other modifiers. `"tick_energy"` Is the base energy cost per tick in Forge Energy units. ##### Disabling Miner Tiers Additionally there is a 4th property that you can add to disable that tier of Miner and that is: `"enabled"` this property takes only a true or false value. It is pointless to add it if you want to keep the miner enabled because all miner tiers are enabled by default. ##### Overriding Void Miner Programs If you want to disable or replace any of the void miner programs [This Tutorial](https://wiki.teamkrypticlink.com/books/valkyrielib-wiki/page/overriding-recipes "Overriding Recipes")