Skip to content
Merged
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
9fd0cf3
Create Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 23, 2025
5c6f159
Update Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 23, 2025
2ca506d
Update Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 23, 2025
73f7737
Update Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 23, 2025
943c7f6
Update Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 23, 2025
1b69fee
Update Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 23, 2025
972fcf9
Create Example_Turbine
Phoenixvine32908 Aug 25, 2025
94bebbf
Create Example_Steam_Multiblock
Phoenixvine32908 Aug 25, 2025
c036745
Rename Example_Turbine to Example_Turbine.md
Phoenixvine32908 Aug 25, 2025
deaadbe
Rename Example_Steam_Multiblock to Example_Steam_Multiblock.md
Phoenixvine32908 Aug 25, 2025
d8ff5f2
Update Example_Turbine.md
Phoenixvine32908 Aug 25, 2025
59a1d9e
Merge branch '1.20.1' into 1.20.1
Phoenixvine32908 Aug 25, 2025
a290b05
Update Example_Steam_Multiblock.md
Phoenixvine32908 Aug 25, 2025
f985e10
Update Example_Turbine.md
Phoenixvine32908 Aug 25, 2025
2630284
Update Example_Steam_Multiblock.md
Phoenixvine32908 Aug 25, 2025
9311a59
Update Example_Turbine.md
Phoenixvine32908 Aug 25, 2025
0dd6d19
Update Example_Steam_Multiblock.md
Phoenixvine32908 Aug 25, 2025
461a6a9
Update Example_Turbine.md
Phoenixvine32908 Aug 25, 2025
2b05017
Update Example_Steam_Multiblock.md
Phoenixvine32908 Aug 26, 2025
48924af
changed js title from superheated_pyrolyzing_oven to example_steam_mu…
Phoenixvine32908 Aug 26, 2025
a66c09b
Update Example_Steam_Multiblock.md
Phoenixvine32908 Aug 26, 2025
806ad6a
Update Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 26, 2025
9a2a822
Update Superheated_Pyrolyzing_Oven.md
Phoenixvine32908 Aug 26, 2025
9890e70
Update docs/content/Modpacks/Examples/Example_Turbine.md
Phoenixvine32908 Aug 26, 2025
d47e43c
Update docs/content/Modpacks/Examples/Example_Turbine.md
Phoenixvine32908 Aug 26, 2025
f312b1f
Update docs/content/Modpacks/Examples/Example_Steam_Multiblock.md
Phoenixvine32908 Aug 26, 2025
5151778
Update Example_Steam_Multiblock.md
Phoenixvine32908 Aug 26, 2025
7fb1ebc
Merge branch '1.20.1' into 1.20.1
Phoenixvine32908 Aug 26, 2025
23b9d2e
Update 01-Material-Creation.md
Phoenixvine32908 Aug 26, 2025
e38ca64
Update 01-Material-Creation.md
Phoenixvine32908 Aug 27, 2025
59960db
Create Tool_Properties.md
Phoenixvine32908 Aug 27, 2025
093b8f7
Update Tool_Properties.md
Phoenixvine32908 Aug 27, 2025
835879d
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
92c7372
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
5e1f2b3
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
19f8b91
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
820b558
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
251604e
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
2fafe98
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
302eb56
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
1b24d37
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
4d5a092
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
215e7f9
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
75a5d19
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
af9d8b8
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
4faf294
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
01b765a
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
1195458
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
fe2891c
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
6e01f9a
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
cb113df
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
f3c21f8
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
fc0971e
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
a1a72d3
Update Tool_Properties.md
Phoenixvine32908 Aug 28, 2025
f3f4a56
Merge branch 'GregTechCEu:1.20.1' into pv/material_docs_update
Phoenixvine32908 Aug 28, 2025
c8f8b42
Update 01-Material-Creation.md
Phoenixvine32908 Aug 29, 2025
6c2d77d
Update Tool_Properties.md
Phoenixvine32908 Aug 29, 2025
71bc9b5
Update 01-Material-Creation.md
Phoenixvine32908 Aug 29, 2025
39c4542
Update docs/content/Modpacks/Materials-and-Elements/01-Material-Creat…
Phoenixvine32908 Aug 29, 2025
3a64852
Update docs/content/Modpacks/Materials-and-Elements/Tool_Properties.md
Phoenixvine32908 Aug 29, 2025
04f8bc8
Update docs/content/Modpacks/Materials-and-Elements/Tool_Properties.md
Phoenixvine32908 Aug 29, 2025
e89f4b7
Update docs/content/Modpacks/Materials-and-Elements/Tool_Properties.md
Phoenixvine32908 Aug 29, 2025
d794c67
Update docs/content/Modpacks/Materials-and-Elements/01-Material-Creat…
Phoenixvine32908 Aug 29, 2025
ae255c7
Merge branch '1.20.1' into pv/material_docs_update
Phoenixvine32908 Aug 29, 2025
336a2fb
Update Tool_Properties to Jurrejelle's suggestion.md
Phoenixvine32908 Aug 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,17 @@ You can change the properties of the material by adding any combination of the f
- `.secondaryColor(int colorCode)` gives the material a secondary color. If this is not being called, the secondary value will default to white(0xffffff).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What makes SecondaryColor different from Primary, where does that color get used?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

100% should be explained in the material creation page pr, will make a note.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a placeholder explanation for now.

- `.flags(flag1, flag2, ...)` can be used to select certain properties of the material, like generating gears, or disabling decomposition.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need a list of valid Flags

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those flags are in the flags page, the whole mat creation page needs reworked but that's a separate pr, only removed the tool part in it right now.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linked the page that shows examples.

- `.element(element)` -> similar to `.components()`, but is used when the material represents an element.
- `.rotorStats(speed, damage, durability)` -> this will create a turbine rotor from this material.
- `.rotorStats(/* int */ power, /* int */ efficiency, /* float */ damage, /* int */ durability)` -> this will create a turbine rotor from this material
1. Power is the EU/t and fuel consumption multiplier the turbine gets when equipped with this rotor.
This output varies depending on speed of turbine and rotor holder.
3. Efficiency is how well it handles fuel.
A smaller number will make it consume more fuel while a bigger number means it uses less fuel.
Comment thread
Phoenixvine32908 marked this conversation as resolved.
Actual efficiency: rotorEfficiency * holder Efficiency / 100
4. Damage is the amount of damage that happens to the player when opening the ui of a running turbine's rotor holder.
5. Durability is how much base durability it has.
- Here are some examples of base gt rotors
Comment thread
Phoenixvine32908 marked this conversation as resolved.
Outdated
1. Titanium Rotor: .rotorStats(130, 115, 3.0, 1600)
2. Tungsten Rotor .rotorStats(130, 115, 3.0, 2560)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tungsten feels like a poor choice because 3 of its 4 stats are the same as Titanium. How about HSS-S?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HSS-S does sound good, but gonna fix that in the material creation page pr probably.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nevermind, simple thing I can fix now

- `.blastTemp()` is meant to be paired together with `.ingot()`. Will generate a EBF recipe (and an ABS recipe) based on the parameters you give it:
1. temperature -> dictates what coil tier it will require (check the coil tooltips for their max temperature).
If the temperature is below 1000, it will also generate a PBF recipe.
Expand All @@ -51,7 +61,6 @@ You can change the properties of the material by adding any combination of the f
1. Voltage, amperage, loss per block
2. Voltage, amperage, loss per block, is superconductor -> for a super conductor, set loss as 0 and is super conductor as true
3. Voltage, amperage, loss per block, is super conductor, critical temperature
- `.toolProperties()`
- `.fluidPipeProperties()`
- `.itemPipeProperties()`
- `.addDefaultEnchant()`
Expand Down
122 changes: 122 additions & 0 deletions docs/content/Modpacks/Materials-and-Elements/Tool_Properties.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
---
title: Tool Creation
---

You can make tools out of materials you create by calling toolStats inside your material's code.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Switch the writing tone in this file from 2nd person ("You can make...") to no-person ("Tools can be made...")

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do


When working with tools you will need to load these classes at the top of your file.
```js
const $PropertyKey = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.PropertyKey');
const $ToolProperty = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.ToolProperty');
```

- `.toolStats(float harvestSpeed, float attackDamage, int durability, int harvestLevel, GTToolType[] types)`
1. harvestSpeed is how fast the tool actually breaks blocks in world.
- Takes a decimal number eg.(5.6).
2. attackDamage is the amount of damage per hit you deal to mobs/players.
- Also takes a decimal number.
3. durability is how long it takes of use to breaks.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Durability is the number of times the tool can be used before it breaks"

  • Takes a positive whole number up to 2.147 billion (e.g 700)
  • This applies to both crafting use and in-world use
  • Crafting generally consumes 2 points of durability per use

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, that does help clarify.

- This applies to the durability towards both crafting use and normal use.
Takes a whole number up to 2.147 billion eg.(700).
Going up to max integer is not recommended.
4. harvestLevel is the tier of block it can break.
- Can take a number between 1-6 with 1 being wood, 6 being neutronium.
5. GtToolType is a group of tools in an object.
- Must pass these into the [] brackets.

An example of this being actually used is included below
```js title="example_tool_material.js"
GTCEuStartupEvents.registry('gtceu:material', event => {
event.create('aluminfrost')
.ingot()
.color(0xadd8e6).secondaryColor(0xc0c0c0).iconSet(GTMaterialIconSet.DULL)
.toolStats(new ToolProperty(12, 7, 3072, 6,
[
GTToolType.DRILL_LV,
GTToolType.MINING_HAMMER
]
))
});
```
You can also add further arguments onto your tools such as:
- `.unbreakable()`
- Makes electric tools bypass durability effectively making them never break.
- `.magnetic()`
- Makes mined blocks and mob drops teleport to player inventory.
- `attackSpeed(float)`
- Set the attack speed of a tool made from this Material (animation time).
Takes a decimal number.
- `ignoreCraftingTools()`
- Disable crafting tools being made from this Material.
- `addEnchantmentForTools(enchantment, level)`
- Enchantment is the default enchantment applied on tool creation.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Applies an Enchantment to every tool made from this material
    [Add an example to show the code for it]

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can add that onto the example that shows unbreakable tools, if that works.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added to extra tool flags example.

Level is the level of said enchantment.
- `enchantability(int enchantability)`
- Set the base enchantability of a tool made from this Material.
Iron is 14, Diamond is 10, Stone is 5.
Takes a whole number.

Here is an example of using them in your material:
```js title="example_tool_material.js"
GTCEuStartupEvents.registry('gtceu:material', event => {
event.create('aluminfrost')
.ingot()
.color(0xadd8e6).secondaryColor(0xc0c0c0).iconSet(GTMaterialIconSet.DULL)
.toolStats($ToolProperty.Builder.of(1.8, 1.7, 700, 3,
[GTToolType.SWORD,
GTToolType.PICKAXE,
GTToolType.SHOVEL,
])
.unbreakable()
.build())
});
```

You can also add more tool types to a GT material that already has a tool property. You do, however, have to remove the current tool property as it is immutable (not changeable).
```js title="tool_replacement.js"
GTCEuStartupEvents.materialModification(event => {
if (GTMaterials.Iron.hasProperty($PropertyKey.TOOL)) {
GTMaterials.Iron.removeProperty($PropertyKey.TOOL);
}
GTMaterials.Neutronium.setProperty($PropertyKey.TOOL, new $ToolProperty.Builder.of(180, 5.9, 2147483647, 6,
[GTToolType.SOFT_MALLET,
GTToolType.DRILL_LV
])
.build());
Comment thread
Phoenixvine32908 marked this conversation as resolved.
Outdated
});
```
Here is a list of all the GtToolTypes
- SWORD,
- PICKAXE,
- SHOVEL,
- AXE,
- HOE,
- MINING_HAMMER,
- SPADE,
- SAW,
- HARD_HAMMER,
- SOFT_MALLET,
- WRENCH,
- FILE,
- CROWBAR,
- SCREWDRIVER,
- MORTAR,
- WIRE_CUTTER,
- SCYTHE,
- KNIFE,
- BUTCHERY_KNIFE,
- PLUNGER,
- DRILL_LV,
- DRILL_MV,
- DRILL_HV,
- DRILL_EV,
- DRILL_IV,
- CHAINSAW_LV,
- WRENCH_LV,
- WRENCH_HV,
- WRENCH_IV,
- BUZZSAW,
- SCREWDRIVER_LV,
- WIRE_CUTTER_LV,
- WIRE_CUTTER_HV,
- WIRE_CUTTER_IV,
Loading