summaryrefslogtreecommitdiff
path: root/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker
diff options
context:
space:
mode:
authorDrNuget <drnuget@outlook.com>2024-09-01 02:09:01 +0300
committerDrNuget <drnuget@outlook.com>2024-09-01 02:09:01 +0300
commita803b2a49c8419f4999629f989ba0649a4f57d4d (patch)
tree280b816ee6afc8cecd4855cc0b33424f198e6b96 /config/gregtech/terminal/guide/tutorials/en_us/crafttweaker
parent58b8c20b9aefe1bf1ec4c00b9f3217d770e8e525 (diff)
modify gregtech configs
Diffstat (limited to 'config/gregtech/terminal/guide/tutorials/en_us/crafttweaker')
-rw-r--r--config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/01_definition.json49
-rw-r--r--config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/02_element.json78
-rw-r--r--config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/03_flag.json148
-rw-r--r--config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/04_icon_set.json59
-rw-r--r--config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/05_create.json257
-rw-r--r--config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/06_modify.json81
-rw-r--r--config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/terminal/ct_terminal_01.json107
7 files changed, 779 insertions, 0 deletions
diff --git a/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/01_definition.json b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/01_definition.json
new file mode 100644
index 0000000..b319e88
--- /dev/null
+++ b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/01_definition.json
@@ -0,0 +1,49 @@
+{
+ "section": "CraftTweaker/Material",
+ "title": "Material Definition",
+ "stream": [
+ {
+ "type": "textbox",
+ "fontSize": 11,
+ "fontColor": -65536,
+ "content": [
+ "§lFirstly, you should know what is the Material."
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "Material is the basis of CEu. It defines to a substance and its properties. It usually takes the form of an §lelement§r or a §lchemical§r, but it can also take the form of something weird like the §lEnder Eye§r."
+ ]
+ },
+ {
+ "type": "textbox",
+ "fontSize": 11,
+ "fontColor": -16776961,
+ "content": [
+ "§lSecondly, it defines which properties?"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "The §lmaterial§r specifies whether it has a §lfluid§r state, §lplasma§r state, §ldust§r state, etc. When it has a specific state, the CEu will register the corresponding item or fluid automatically."
+ ]
+ },
+ {
+ "type": "textbox",
+ "fontSize": 11,
+ "fontColor": -16731136,
+ "content": [
+ "§lThirdly, What else does it define?"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "You can actually define its colors, flag, iconSet, cableProperties, Element, formula, components and so on. Don\u0027t worry, they are not complicated, will be introduced in other pages."
+ ]
+ }
+ ],
+ "fixed": []
+} \ No newline at end of file
diff --git a/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/02_element.json b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/02_element.json
new file mode 100644
index 0000000..22f3b6a
--- /dev/null
+++ b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/02_element.json
@@ -0,0 +1,78 @@
+{
+ "section": "CraftTweaker/Material",
+ "title": "Element",
+ "stream": [
+ {
+ "type": "textbox",
+ "fontSize": 9,
+ "content": [
+ "The §lElement§r use to specify a material as an elemental and affects its chemical fomular. CEu basically has the periodic table, so you probably won\u0027t need it. \n\n§lContents:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "element",
+ "content": [
+ "1. §9Element"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "ct",
+ "content": [
+ "2. §9CT"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "element",
+ "content": [
+ "§c§lElement:§r\n §l○ §nprotons§r – Amount of Protons\n §l○ §nneutrons§r – Amount of Neutrons (I could have made mistakes with the Neutron amount calculation, please tell me if I did something wrong)\n §l○ §nhalfLifeSeconds§r – Amount of Half Life this Material has in Seconds. -1 for stable Materials\n §l○ §ndecayTo§r – String representing the Elements it decays to. Separated by an \u0027\u0026\u0027 Character\n §l○ §nname§r – Name of the Element\n §l○ §nsymbol§r – Symbol of the Element"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§lExisting elements:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 1623820032,
+ "stroke_width": 3,
+ "fill": 1623820032,
+ "content": [
+ " §l○ §c§lH§r: 1, 0, -1, null, \"Hydrogen\", \"H\", false\n §l○ §c§lD§r: 1, 1, -1, \"H\", \"Deuterium\", \"D\", true\n §l○ §c§lT§r: 1, 2, -1, \"D\", \"Tritium\", \"T\", true\n §l○ §c§lHe§r: 2, 2, -1, null, \"Helium\", \"He\", false\n §l○ §c§lHe3§r: 2, 1, -1, \"H\u0026D\", \"Helium-3\", \"He-3\", true\n §l○ §c§lLi§r: 3, 4, -1, null, \"Lithium\", \"Li\", false\n §l○ §c§lBe§r: 4, 5, -1, null, \"Beryllium\", \"Be\", false\n §l○ §c§lB§r: 5, 5, -1, null, \"Boron\", \"B\", false\n §l○ §c§lC§r: 6, 6, -1, null, \"Carbon\", \"C\", false\n §l○ §c§lN§r: 7, 7, -1, null, \"Nitrogen\", \"N\", false\n §l○ §c§lO§r: 8, 8, -1, null, \"Oxygen\", \"O\", false\n §l○ §c§lF§r: 9, 9, -1, null, \"Fluorine\", \"F\", false\n §l○ §c§lNe§r: 10, 10, -1, null, \"Neon\", \"Ne\", false\n §l○ §c§lNa§r: 11, 11, -1, null, \"Sodium\", \"Na\", false\n §l○ §c§lMg§r: 12, 12, -1, null, \"Magnesium\", \"Mg\", false\n §l○ §c§lAl§r: 13, 13, -1, null, \"Aluminium\", \"Al\", false\n §l○ §c§lSi§r: 14, 14, -1, null, \"Silicon\", \"Si\", false\n §l○ §c§lP§r: 15, 15, -1, null, \"Phosphorus\", \"P\", false\n §l○ §c§lS§r: 16, 16, -1, null, \"Sulfur\", \"S\", false\n §l○ §c§lCl§r: 17, 18, -1, null, \"Chlorine\", \"Cl\", false\n §l○ §c§lAr§r: 18, 22, -1, null, \"Argon\", \"Ar\", false\n §l○ §c§lK§r: 19, 20, -1, null, \"Potassium\", \"K\", false\n §l○ §c§lCa§r: 20, 20, -1, null, \"Calcium\", \"Ca\", false\n §l○ §c§lSc§r: 21, 24, -1, null, \"Scandium\", \"Sc\", false\n §l○ §c§lTi§r: 22, 26, -1, null, \"Titanium\", \"Ti\", false\n §l○ §c§lV§r: 23, 28, -1, null, \"Vanadium\", \"V\", false\n §l○ §c§lCr§r: 24, 28, -1, null, \"Chrome\", \"Cr\", false\n §l○ §c§lMn§r: 25, 30, -1, null, \"Manganese\", \"Mn\", false\n §l○ §c§lFe§r: 26, 30, -1, null, \"Iron\", \"Fe\", false\n §l○ §c§lCo§r: 27, 32, -1, null, \"Cobalt\", \"Co\", false\n §l○ §c§lNi§r: 28, 30, -1, null, \"Nickel\", \"Ni\", false\n §l○ §c§lCu§r: 29, 34, -1, null, \"Copper\", \"Cu\", false\n §l○ §c§lZn§r: 30, 35, -1, null, \"Zinc\", \"Zn\", false\n §l○ §c§lGa§r: 31, 39, -1, null, \"Gallium\", \"Ga\", false\n §l○ §c§lGe§r: 32, 40, -1, null, \"Germanium\", \"Ge\", false\n §l○ §c§lAs§r: 33, 42, -1, null, \"Arsenic\", \"As\", false\n §l○ §c§lSe§r: 34, 45, -1, null, \"Selenium\", \"Se\", false\n §l○ §c§lBr§r: 35, 45, -1, null, \"Bromine\", \"Br\", false\n §l○ §c§lKr§r: 36, 48, -1, null, \"Krypton\", \"Kr\", false\n §l○ §c§lRb§r: 37, 48, -1, null, \"Rubidium\", \"Rb\", false\n §l○ §c§lSr§r: 38, 49, -1, null, \"Strontium\", \"Sr\", false\n §l○ §c§lY§r: 39, 50, -1, null, \"Yttrium\", \"Y\", false\n §l○ §c§lZr§r: 40, 51, -1, null, \"Zirconium\", \"Zr\", false\n §l○ §c§lNb§r: 41, 53, -1, null, \"Niobium\", \"Nb\", false\n §l○ §c§lMo§r: 42, 53, -1, null, \"Molybdenum\", \"Mo\", false\n §l○ §c§lTc§r: 43, 55, -1, null, \"Technetium\", \"Tc\", false\n §l○ §c§lRu§r: 44, 57, -1, null, \"Ruthenium\", \"Ru\", false\n §l○ §c§lRh§r: 45, 58, -1, null, \"Rhodium\", \"Rh\", false\n §l○ §c§lPd§r: 46, 60, -1, null, \"Palladium\", \"Pd\", false\n §l○ §c§lAg§r: 47, 60, -1, null, \"Silver\", \"Ag\", false\n §l○ §c§lCd§r: 48, 64, -1, null, \"Cadmium\", \"Cd\", false\n §l○ §c§lIn§r: 49, 65, -1, null, \"Indium\", \"In\", false\n §l○ §c§lSn§r: 50, 68, -1, null, \"Tin\", \"Sn\", false\n §l○ §c§lSb§r: 51, 70, -1, null, \"Antimony\", \"Sb\", false\n §l○ §c§lTe§r: 52, 75, -1, null, \"Tellurium\", \"Te\", false\n §l○ §c§lI§r: 53, 74, -1, null, \"Iodine\", \"I\", false\n §l○ §c§lXe§r: 54, 77, -1, null, \"Xenon\", \"Xe\", false\n §l○ §c§lCs§r: 55, 77, -1, null, \"Caesium\", \"Cs\", false\n §l○ §c§lBa§r: 56, 81, -1, null, \"Barium\", \"Ba\", false\n §l○ §c§lLa§r: 57, 81, -1, null, \"Lanthanum\", \"La\", false\n §l○ §c§lCe§r: 58, 82, -1, null, \"Cerium\", \"Ce\", false\n §l○ §c§lPr§r: 59, 81, -1, null, \"Praseodymium\", \"Pr\", false\n §l○ §c§lNd§r: 60, 84, -1, null, \"Neodymium\", \"Nd\", false\n §l○ §c§lPm§r: 61, 83, -1, null, \"Promethium\", \"Pm\", false\n §l○ §c§lSm§r: 62, 88, -1, null, \"Samarium\", \"Sm\", false\n §l○ §c§lEu§r: 63, 88, -1, null, \"Europium\", \"Eu\", false\n §l○ §c§lGd§r: 64, 93, -1, null, \"Gadolinium\", \"Gd\", false\n §l○ §c§lTb§r: 65, 93, -1, null, \"Terbium\", \"Tb\", false\n §l○ §c§lDy§r: 66, 96, -1, null, \"Dysprosium\", \"Dy\", false\n §l○ §c§lHo§r: 67, 97, -1, null, \"Holmium\", \"Ho\", false\n §l○ §c§lEr§r: 68, 99, -1, null, \"Erbium\", \"Er\", false\n §l○ §c§lTm§r: 69, 99, -1, null, \"Thulium\", \"Tm\", false\n §l○ §c§lYb§r: 70, 103, -1, null, \"Ytterbium\", \"Yb\", false\n §l○ §c§lLu§r: 71, 103, -1, null, \"Lutetium\", \"Lu\", false\n §l○ §c§lHf§r: 72, 106, -1, null, \"Hafnium\", \"Hf\", false\n §l○ §c§lTa§r: 73, 107, -1, null, \"Tantalum\", \"Ta\", false\n §l○ §c§lW§r: 74, 109, -1, null, \"Tungsten\", \"W\", false\n §l○ §c§lRe§r: 75, 111, -1, null, \"Rhenium\", \"Re\", false\n §l○ §c§lOs§r: 76, 114, -1, null, \"Osmium\", \"Os\", false\n §l○ §c§lIr§r: 77, 115, -1, null, \"Iridium\", \"Ir\", false\n §l○ §c§lPt§r: 78, 117, -1, null, \"Platinum\", \"Pt\", false\n §l○ §c§lAu§r: 79, 117, -1, null, \"Gold\", \"Au\", false\n §l○ §c§lHg§r: 80, 120, -1, null, \"Mercury\", \"Hg\", false\n §l○ §c§lTl§r: 81, 123, -1, null, \"Thallium\", \"Tl\", false\n §l○ §c§lPb§r: 82, 125, -1, null, \"Lead\", \"Pb\", false\n §l○ §c§lBi§r: 83, 125, -1, null, \"Bismuth\", \"Bi\", false\n §l○ §c§lPo§r: 84, 124, -1, null, \"Polonium\", \"Po\", false\n §l○ §c§lAt§r: 85, 124, -1, null, \"Astatine\", \"At\", false\n §l○ §c§lRn§r: 86, 134, -1, null, \"Radon\", \"Rn\", false\n §l○ §c§lFr§r: 87, 134, -1, null, \"Francium\", \"Fr\", false\n §l○ §c§lRa§r: 88, 136, -1, null, \"Radium\", \"Ra\", false\n §l○ §c§lAc§r: 89, 136, -1, null, \"Actinium\", \"Ac\", false\n §l○ §c§lTh§r: 90, 140, -1, null, \"Thorium\", \"Th\", false\n §l○ §c§lPa§r: 91, 138, -1, null, \"Protactinium\", \"Pa\", false\n §l○ §c§lU§r: 92, 146, -1, null, \"Uranium\", \"U\", false\n §l○ §c§lU238§r: 92, 146, -1, null, \"Uranium-238\", \"U-238\", false\n §l○ §c§lU235§r: 92, 143, -1, null, \"Uranium-235\", \"U-235\", true\n §l○ §c§lNp§r: 93, 144, -1, null, \"Neptunium\", \"Np\", false\n §l○ §c§lPu§r: 94, 152, -1, null, \"Plutonium\", \"Pu\", false\n §l○ §c§lPu239§r: 94, 145, -1, null, \"Plutonium-239\", \"Pu-239\", false\n §l○ §c§lPu241§r: 94, 149, -1, null, \"Plutonium-241\", \"Pu-241\", true\n §l○ §c§lAm§r: 95, 150, -1, null, \"Americium\", \"Am\", false\n §l○ §c§lCm§r: 96, 153, -1, null, \"Curium\", \"Cm\", false\n §l○ §c§lBk§r: 97, 152, -1, null, \"Berkelium\", \"Bk\", false\n §l○ §c§lCf§r: 98, 153, -1, null, \"Californium\", \"Cf\", false\n §l○ §c§lEs§r: 99, 153, -1, null, \"Einsteinium\", \"Es\", false\n §l○ §c§lFm§r: 100, 157, -1, null, \"Fermium\", \"Fm\", false\n §l○ §c§lMd§r: 101, 157, -1, null, \"Mendelevium\", \"Md\", false\n §l○ §c§lNo§r: 102, 157, -1, null, \"Nobelium\", \"No\", false\n §l○ §c§lLr§r: 103, 159, -1, null, \"Lawrencium\", \"Lr\", false\n §l○ §c§lRf§r: 104, 161, -1, null, \"Rutherfordium\", \"Rf\", false\n §l○ §c§lDb§r: 105, 163, -1, null, \"Dubnium\", \"Db\", false\n §l○ §c§lSg§r: 106, 165, -1, null, \"Seaborgium\", \"Sg\", false\n §l○ §c§lBh§r: 107, 163, -1, null, \"Bohrium\", \"Bh\", false\n §l○ §c§lHs§r: 108, 169, -1, null, \"Hassium\", \"Hs\", false\n §l○ §c§lMt§r: 109, 167, -1, null, \"Meitnerium\", \"Mt\", false\n §l○ §c§lDs§r: 110, 171, -1, null, \"Darmstadtium\", \"Ds\", false\n §l○ §c§lRg§r: 111, 169, -1, null, \"Roentgenium\", \"Rg\", false\n §l○ §c§lCn§r: 112, 173, -1, null, \"Copernicium\", \"Cn\", false\n §l○ §c§lNh§r: 113, 171, -1, null, \"Nihonium\", \"Nh\", false\n §l○ §c§lFl§r: 114, 175, -1, null, \"Flerovium\", \"Fl\", false\n §l○ §c§lMc§r: 115, 173, -1, null, \"Moscovium\", \"Mc\", false\n §l○ §c§lLv§r: 116, 177, -1, null, \"Livermorium\", \"Lv\", false\n §l○ §c§lTs§r: 117, 177, -1, null, \"Tennessine\", \"Ts\", false\n §l○ §c§lOg§r: 118, 176, -1, null, \"Oganesson\", \"Og\", false\n §l○ §c§lTr§r: 119, 178, -1, null, \"Tritanium\", \"Tr\", false\n §l○ §c§lDr§r: 120, 180, -1, null, \"Duranium\", \"Dr\", false\n §l○ §c§lKe§r: 125, 198, -1, null, \"Trinium\", \"Ke\", false\n §l○ §c§lNq§r: 174, 352, 140, null, \"Naquadah\", \"Nq\", true\n §l○ §c§lNq1§r: 174, 354, 140, null, \"NaquadahEnriched\", \"Nq+\", true\n §l○ §c§lNq2§r: 174, 348, 140, null, \"Naquadria\", \"*Nq*\", true\n §l○ §c§lNt§r: 0, 1000, -1, null, \"Neutronium\", \"Nt\", false\n §l○ §c§lAd§r: 750, 1000, -1, null, \"Adamantium\", \"Ad\", false\n §l○ §c§lVb§r: 850, 900, -1, null, \"Vibranium\", \"Vb\", false\n §l○ §c§lTn§r: 550, 670, -1, null, \"Taranium\", \"Tn\", false"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "ct",
+ "content": [
+ "§lElements.add§r: §o§nElements.add(long protons, long neutrons, long halfLifeSeconds, String decayTo, String name, String symbol, boolean isIsotope)§r \nAdd a new element.\n\n§lElements.get§r: §o§nElements.get(String name)§r \nGet the element by name."
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialBuilder§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Elements§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0Au§r§5 §r§5\u003d§r§5 §r§0Elements§r§5.§r§0get§r§5(§r§0Au§r§5)§r§5;§r§5 §r§8// get an existing element.§r§5\n§r§9var§r§5 §r§0name§r§5 §r§5\u003d§r§5 §r§0Au§r§5.§r§0name§r§5;§r§5 §r§8// \"Gold\"§r§5\n§r§9var§r§5 §r§0symbol§r§5 §r§5\u003d§r§5 §r§0Au§r§5.§r§0symbol§r§5;§r§5 §r§8// \"Au\"§r§5\n§r§9var§r§5 §r§0protons§r§5 §r§5\u003d§r§5 §r§0Au§r§5.§r§0protons§r§5 §r§8// 79§r§5\n§r§9var§r§5 §r§0neutrons§r§5 §r§5\u003d§r§5 §r§0Au§r§5.§r§0neutrons§r§8// 117§r§5\n§r§9var§r§5 §r§0mass§r§5 §r§5\u003d§r§5 §r§0Au§r§5.§r§0mass§r§5 §r§8// 196§r§5\n§r§5\n§r§9var§r§5 §r§0CEu§r§5 §r§5\u003d§r§5 §r§0Elements§r§5.§r§0add§r§5(§r§c999§r§5,§r§5 §r§c999§r§5,§r§5 §r§5-§r§c1§r§5,§r§5 §r§cnull§r§5,§r§5 §r§2\"GTCEu\"§r§5,§r§5 §r§2\"CEu\"§r§5,§r§5 §r§cfalse§r§5)§r§5;§r§5 §r§8// create a new element.§r§5\n§r§5\n§r§9var§r§5 §r§0myMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialBuilder§r§5(§r§2\"my_material\"§r§5)§r§5.§r§0element§r§5(§r§2\"CEu\"§r§5)§r§5.§r§0build§r§5(§r§5)§r§5;§r§5 §r§8// register my element.§r§5\n§r"
+ ]
+ }
+ ],
+ "fixed": []
+} \ No newline at end of file
diff --git a/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/03_flag.json b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/03_flag.json
new file mode 100644
index 0000000..e739ce1
--- /dev/null
+++ b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/03_flag.json
@@ -0,0 +1,148 @@
+{
+ "section": "CraftTweaker/Material",
+ "title": "MaterialFlag",
+ "stream": [
+ {
+ "type": "textbox",
+ "fontSize": 9,
+ "content": [
+ "The §lMaterialFlag§r refers to some additional features it has.\n\nAvailable MaterialFlag are: "
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "element",
+ "content": [
+ "§r§4§ogeneric:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ " §l○ §n\"no_unification\"§r: Add to material to disable it\u0027s unification fully todo implement.\n §l○ §n\"decomposition_requires_hydrogen\"§r: Decomposition recipe requires hydrogen as additional input. Amount is equal to input amount.\n §l○ §n\"decomposition_by_electrolyzing\"§r: Enables electrolyzer decomposition recipe generation.\n §l○ §n\"decomposition_by_centrifuging\"§r: Enables centrifuge decomposition recipe generatio.\n §l○ §n\"disable_decomposition\"§r: Disables decomposition recipe generation for this material and all materials that has it as component.\n §l○ §n\"explosive\"§r: Add to material if it is some kind of explosive.\n §l○ §n\"flammable\"§r: Add to material if it is some kind of flammable."
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "ct",
+ "content": [
+ "§4§oGenerate a plate for this material If it\u0027s dust material, dust compressor recipe into plate will be generated If it\u0027s metal material, bending machine recipes will be generated If block is found, cutting machine recipe will be also generated:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§n\"generate_plate\"§r, §n\"generate_rod\"§r, §n\"generate_frame\"§r, §n\"generate_gear\"§r, §n\"generate_long_rod\"§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§4§oThis will prevent material from creating Shapeless recipes for dust to block and vice versa Also preventing extruding and alloy smelting recipes via SHAPE_EXTRUDING/MOLD_BLOCK:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§n\"exclude_block_crafting_recipes\"§r, §n\"exclude_plate_compressor_recipe\"§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§4§oThis will prevent material from creating Shapeless recipes for dust to block and vice versa:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§n\"exclude_block_crafting_by_hand_recipes\"§r, §n\"mortar_grindable\"§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§4§oAdd to material if it cannot be worked by any other means, than smashing or smelting. This is used for coated Materials:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§n\"no_working\"§r, §n\"no_smashing\"§r, §n\"no_smelting\"§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§4§oAdd this to your Material if you want to have its Ore Calcite heated in a Blast Furnace for more output. Already listed are: Iron, Pyrite, PigIron, WroughtIron:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§n\"blast_furnace_calcite_double\"§r, §n\"blast_furnace_calcite_triple\"§r, §n\"generate_foil\"§r, §n\"generate_bolt_screw\"§r, §n\"generate_ring\"§r, §n\"generate_spring\"§r, §n\"generate_spring_small\"§r, §n\"generate_small_gear\"§r, §n\"generate_fine_wire\"§r, §n\"generate_rotor\"§r, §n\"generate_dense\"§r, §n\"generate_round\"§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§4§oIf this material can be crystallized:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§n\"crystallizable\"§r, §n\"generate_lens\"§r, §n\"high_sifter_output\"§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ }
+ ],
+ "fixed": []
+} \ No newline at end of file
diff --git a/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/04_icon_set.json b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/04_icon_set.json
new file mode 100644
index 0000000..f0749c2
--- /dev/null
+++ b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/04_icon_set.json
@@ -0,0 +1,59 @@
+{
+ "section": "CraftTweaker/Material",
+ "title": "MaterialIconSet",
+ "stream": [
+ {
+ "type": "textbox",
+ "fontSize": 9,
+ "content": [
+ "The §lMaterialIconSet§r will determine the appearance of the material."
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "element",
+ "content": [
+ "§rAvailable MaterialIconSet are:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§l\"NONE\", \"METALLIC\", \"DULL\", \"MAGNETIC\", \"QUARTZ\", \"DIAMOND\", \"EMERALD\", \"SHINY\", \"ROUGH\", \"FINE\", \"SAND\", \"FLINT\", \"RUBY\", \"LAPIS\", \"FLUID\", \"GAS\", \"LIGNITE\", \"OPAL\", \"GLASS\", \"WOOD\", \"GEM_HORIZONTAL\", \"GEM_VERTICAL\", \"PAPER\", \"NETHERSTAR\", \"BRIGHT\"§r."
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "ct",
+ "content": [
+ "For example, the following figure shows the appearance of ores with different Materialiconsets."
+ ]
+ },
+ {
+ "type": "image",
+ "form": "url",
+ "source": "https://user-images.githubusercontent.com/18493855/143435701-058dcfea-ea35-4976-a7ba-7901fa791e36.png",
+ "width": 190,
+ "height": 100
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ }
+ ],
+ "fixed": []
+} \ No newline at end of file
diff --git a/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/05_create.json b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/05_create.json
new file mode 100644
index 0000000..feaa04e
--- /dev/null
+++ b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/05_create.json
@@ -0,0 +1,257 @@
+{
+ "section": "CraftTweaker/Material",
+ "title": "Create a Material",
+ "stream": [
+ {
+ "type": "textbox",
+ "fontSize": 9,
+ "content": [
+ "You can help create a Material by the §lMaterialBuilder§r.\n\n§lContents:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "bui",
+ "content": [
+ "1. §9MaterialBuilder"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "pro",
+ "content": [
+ "2. §9Material Properties"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "ico",
+ "content": [
+ "3. §9Material IconSet"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "com",
+ "content": [
+ "4. §9Material Component"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "fla",
+ "content": [
+ "5. §9Material Flag"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "ele",
+ "content": [
+ "6§r. §9Material Element"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§lMaterialBuilder"
+ ],
+ "ref": "bui"
+ },
+ {
+ "type": "textbox",
+ "ref": "element",
+ "content": [
+ "§o§nMaterialBuilder(String materialName)§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialBuilder§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0myMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialBuilder§r§5(§r§2\"my_material\"§r§5)§r§5.§r§0build§r§5(§r§5)§r§5;§r§5\n"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "pro",
+ "content": [
+ "§lMaterial Properties"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§lcolor§r: §o§ncolor(int color)§r\nSet the Color of this Material. Defaults to 0xFFFFFF unless §ncolorAverage()§r.\n\n§lcolorAverage§r: §o§ncolorAverage(int color)§r\nColor will be a weighted average of the components of the Material.\n\n§lFluid§r: §o§nfluid(@Optional String type, @Optional boolean hasBlock)§r\nAdd a FluidProperty to this Material.\n §l○§r type – The Material.FluidType of this Material, either \"fluid\" or \"gas\".\n §l○§r hasBlock – If true, create a Fluid Block for this Material.\n\n§lplasma§r: §o§nplasma()§r \nAdd a PlasmaProperty to this Material.\n §l○§r type – The Material.FluidType of this Material, either \"fluid\" or \"gas\".\n §l○§r hasBlock – If true, create a Fluid Block for this Material.\n\n§ldust§r: §o§ndust(@Optional int harvestLevel, @Optional int burnTime)§r \nAdd a DustProperty to this Material.\n §l○§r harvestLevel – The Harvest Level of this block for Mining. If this Material also has a ToolProperty, this value will also be used to determine the tool\u0027s Mining Level.\n §l○§r burnTime – The Burn Time (in ticks) of this Material as a Furnace Fuel.\n\n§lingot§r: §o§ningot(@Optional int harvestLevel, @Optional int burnTime)§r \nAdd an IngotProperty to this Material.\n §l○§r harvestLevel – The Harvest Level of this block for Mining. If this Material also has a ToolProperty, this value will also be used to determine the tool\u0027s Mining level. If this Material already had a Harvest Level defined, it will be overridden.\n §l○§r burnTime – The Burn Time (in ticks) of this Material as a Furnace Fuel. If this Material already had a Burn Time defined, it will be overridden.\n\n§lgem§r: §o§ngem(@Optional int harvestLevel, @Optional int burnTime)§r \nAdd a GemProperty to this Material.\n §l○§r harvestLevel – The Harvest Level of this block for Mining. If this Material also has a ToolProperty, this value will also be used to determine the tool\u0027s Mining level. If this Material already had a Harvest Level defined, it will be overridden.\n §l○§r burnTime – The Burn Time (in ticks) of this Material as a Furnace Fuel. If this Material already had a Burn Time defined, it will be overridden.\n\n§ltoolStats§r: §o§ntoolStats(float speed, float damage, int durability, int enchantability)§r \nSet the stat for tools which are made from this Material.\n §l○§r speed – Speed.\n §l○§r damage – Attack damage.\n §l○§r durability – Durability of tools.\n §l○§r enchantability – Enchantability of tools.\n\n§lblastTemp§r: §o§nblastTemp(int temp)§r \nBlast Furnace Temperature of this Material. If below 1000K, Primitive Blast Furnace recipes will be also added. If above 1750K, a Hot Ingot and its Vacuum Freezer recipe will be also added.\n\nIf a Material with this Property has a Fluid, its temperature will be set to this if it is the default Fluid temperature.\n §l○§r temp – Temperature.\n\n§lore§r: §o§nore(@Optional int oreMultiplier, @Optional int byproductMultiplier, @Optional boolean emissive)§r \nAdd ore blocks of this Material.\n §l○§r oreMultiplier – Crushed Ore output amount multiplier during Maceration. Default: 1 (no multiplier).\n §l○§r byproductMultiplier – Byproducts output amount multiplier during Maceration. Default: 1 (no multiplier).\n §l○§r emissive – Should ore block use the emissive texture. Default: false.\n\nEmissive ore as follow:"
+ ]
+ },
+ {
+ "type": "image",
+ "form": "url",
+ "source": "https://user-images.githubusercontent.com/18493855/143446969-80de6354-ad12-4170-81f5-071d6c0bb7cd.png",
+ "width": 190,
+ "height": 110
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§lwashedIn§r: §o§nwashedIn(String materialName, @Optional int washedAmount)§r \n\n§lwashedIn§r: §o§nwashedIn(Material material, @Optional int washedAmount)§r \nSet washing product of this Material (must has the ore property).\n §l○§r material – material.\n §l○§r washedAmount – amount.\n\n§lseparatedInto§r: §o§nseparatedInto(String... materialNames)§r \n\n§lseparatedInto§r: §o§nseparatedInto(Material... materials)§r \nSet separated products of this Material (must has the ore property).\n §l○§r materials – separated materials.\n\n§laddOreByproducts§r: §o§naddOreByproducts(String... materialNames)§r \n\n§laddOreByproducts§r: §o§naddOreByproducts(Material... materials)§r \nSet ore byproducts of this Material (must has the ore property).\n §l○§r materials – separated materials.\n\n§loreSmeltInto§r: §o§noreSmeltInto(String materialName)§r \n\n§loreSmeltInto§r: §o§noreSmeltInto(Material material)§r \nSet smelt product of this Material (must has the ore property).\n §l○§r material – material.\n\n§lpolarizesInto§r: §o§npolarizesInto(String materialName)§r \n\n§lpolarizesInto§r: §o§npolarizesInto(Material material)§r \nSet polarizes product of this Material (must has the ore property).\n §l○§r material – material.\n\n§larcSmeltInto§r: §o§narcSmeltInto(String materialName)§r \n\n§larcSmeltInto§r: §o§narcSmeltInto(Material material)§r \nSet arcSmelt product of this Material (must has the ore property).\n §l○§r material – material.\n\n§lmacerateInto§r: §o§nmacerateInto(String materialName)§r \n\n§lmacerateInto§r: §o§nmacerateInto(Material material)§r \nSet macerate product of this Material (must has the ore property).\n §l○§r material – material.\n\n§lingotSmeltInto§r: §o§ningotSmeltInto(String materialName)§r \n\n§lingotSmeltInto§r: §o§ningotSmeltInto(Material material)§r \nSet ingotSmelt product of this Material (must has the ore property).\n §l○§r material – material.\n\n§lfluidTemp§r: §o§nfluidTemp(int temp)§r \nSet the temperature of the fluid of this Material (must has the fluid property).\n §l○§r temp – temperature.\n\n§lcableProperties§r: §o§ncableProperties(long voltage, int amperage, int loss, @Optional boolean isSuperCon)§r \nAdd a cables and wires of this Material.\n §l○§r voltage – voltage.\n §l○§r amperage – amperage.\n §l○§r loss – loss.\n §l○§r isSuperCon – isSuperCon.\n\n§lfluidPipeProperties§r: §o§nfluidPipeProperties(int maxTemp, int throughput, boolean gasProof)§r \nAdd fluid pipes of this Material.\n §l○§r maxTemp – max acceptable temperature.\n §l○§r throughput – §l//TODO§r.\n §l○§r gasProof – §l//TODO§r.\n\n§litemPipeProperties§r: §o§nitemPipeProperties(int priority, float stacksPerSec)§r \nAdd item pipes of this Material.\n §l○§r priority – Items will try to take the path with the lowest priority.\n §l○§r stacksPerSec – rate in stacks per sec.\n\n§laddDefaultEnchant§r: §o§naddDefaultEnchant(IEnchantment enchantment)§r \nAdd Default Enchant of this Material.\n §l○§r enchantment – enchantment."
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialBuilder§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialRegistry§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0gold§r§5 §r§5\u003d§r§5 §r§0MaterialRegistry§r§5(§r§2\"gold\"§r§5)§r§5\n§r§9var§r§5 §r§0copper§r§5 §r§5\u003d§r§5 §r§0MaterialRegistry§r§5(§r§2\"copper\"§r§5)§r§5\n§r§5\n§r§9var§r§5 §r§0myMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialBuilder§r§5(§r§2\"my_material\"§r§5)§r§5 §r§8// name§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0color§r§5(§r§5-§r§c1§r§5)§r§5 §r§8// white§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0fluid§r§5(§r§2\"gas\"§r§5,§r§5 §r§cfalse§r§5)§r§5 §r§8// gas without block§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0dust§r§5(§r§5)§r§5 §r§8// has dust§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0ingot§r§5(§r§5)§r§5 §r§8// has ingot§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0toolStats§r§5(§r§c10§r§5,§r§5 §r§c3§r§5,§r§5 §r§c256§r§5,§r§5 §r§c21§r§5)§r§5 §r§8// tool stats§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0blastTemp§r§5(§r§c1000§r§5)§r§5 §r§8// EBF temperature§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0ore§r§5(§r§5)§r§5 §r§8// has ore blocks§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0addOreByproducts§r§5(§r§0gold§r§5,§r§5 §r§0copper§r§5)§r§5 §r§8// add byproducts§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0cableProperties§r§5(§r§c0§r§5,§r§5 §r§c2§r§5,§r§5 §r§c0§r§5,§r§5 §r§ctrue§r§5)§r§5 §r§8// add cables§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5.§r§0build§r§5(§r§5)§r§5;§r§5\n"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "ico",
+ "content": [
+ "§lMaterial IconSet"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§liconSet§r: §o§niconSet(String iconSet)§r \nSet the MaterialIconSet of this Material. Defaults vary depending on if the Material has a: \n §l○§r §nGemProperty§r, it will default to §l\"GEM_VERTICAL\"§r\n §l○§r §nIngotProperty§r or §nDustProperty§r, it will default to §l\"DULL\"§r\n §l○§r §nFluidProperty§r, it will default to either §l\"FLUID\"§r or §l\"GAS\"§r, depending on the FluidType\n §l○§r §nPlasmaProperty§r, it will default to §l\"FLUID\"§r\n\nDefault will be determined by first-found Property in this order, unless specified."
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialBuilder§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0myMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialBuilder§r§5(§r§2\"my_material\"§r§5)§r§5.§r§0iconSet§r§5(§r§2\"QUARTZ\"§r§5)§r§5.§r§0build§r§5(§r§5)§r§5;§r§5\n§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "com",
+ "content": [
+ "§lComponent"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "The §lComponent§r refers to compositions of the material. \nFor example, the compositions of the §lSugar§r are §n2*Carbon§r, §n5*Water§r, and §n25*Oxygen§r. That would affect its chemical formula:"
+ ]
+ },
+ {
+ "type": "image",
+ "form": "url",
+ "source": "https://user-images.githubusercontent.com/18493855/143438573-cd2e9078-744d-4861-a00c-1e9fc5ccd32a.png",
+ "width": 110,
+ "height": 50
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§lcomponents§r: §o§ncomponents(MaterialStack[] components)§r \nSet the compositions of the material.\n §l○§r components - compositions."
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialBuilder§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialStack§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialRegistry§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0carbonMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialRegistry§r§5.§r§0get§r§5(§r§2\"carbon\"§r§5)§r§5;§r§5\n§r§9var§r§5 §r§0oxygenMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialRegistry§r§5.§r§0get§r§5(§r§2\"oxygen\"§r§5)§r§5;§r§5\n§r§5\n§r§0val§r§5 §r§0compositions§r§5 §r§0as§r§5 §r§0MaterialStack§r§5[§r§5]§r§5 §r§5\u003d§r§5 §r§5[§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5 §r§5 §r§5 §r§5 §r§0carbonMaterial§r§5 §r§5*§r§5 §r§c2§r§5,§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5 §r§5 §r§5 §r§5 §r§0oxygenMaterial§r§5 §r§5*§r§5 §r§c3§r§5,§r§5\n§r§5 §r§5 §r§5 §r§5 §r§5]§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0myMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialBuilder§r§5(§r§2\"my_material\"§r§5)§r§5.§r§0components§r§5(§r§0compositions§r§5)§r§5.§r§0build§r§5(§r§5)§r§5;§r§5\n§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "fla",
+ "content": [
+ "§lMaterial Flag"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§lflags§r: §o§nflags(String... names)§r \nAdd MaterialFlags to this Material.\n §l○§r names - names of specific MaterialFlags."
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialBuilder§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0myMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialBuilder§r§5(§r§2\"my_material\"§r§5)§r§5.§r§0flags§r§5(§r§2\"generate_rod\"§r§5,§r§5 §r§2\"generate_foil\"§r§5)§r§5.§r§0build§r§5(§r§5)§r§5;§r§5\n§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "ele",
+ "content": [
+ "§lElement"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§lelement§r: §o§nelement(String elementName)§r \nSet the element of this Material.\n §l○§r elementName - names of the element."
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialBuilder§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Elements§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0CEu§r§5 §r§5\u003d§r§5 §r§0Elements§r§5.§r§0add§r§5(§r§c999§r§5,§r§5 §r§c999§r§5,§r§5 §r§5-§r§c1§r§5,§r§5 §r§cnull§r§5,§r§5 §r§2\"GTCEu\"§r§5,§r§5 §r§2\"CEu\"§r§5,§r§5 §r§cfalse§r§5)§r§5;§r§5 §r§8// create a new element.§r§5\n§r§5\n§r§9var§r§5 §r§0myMaterial§r§5 §r§5\u003d§r§5 §r§0MaterialBuilder§r§5(§r§2\"my_material\"§r§5)§r§5.§r§0element§r§5(§r§2\"CEu\"§r§5)§r§5.§r§0build§r§5(§r§5)§r§5;§r§5 §r§8// register my element.§r§5\n§r"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ }
+ ],
+ "fixed": []
+} \ No newline at end of file
diff --git a/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/06_modify.json b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/06_modify.json
new file mode 100644
index 0000000..f9e1dee
--- /dev/null
+++ b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/material/06_modify.json
@@ -0,0 +1,81 @@
+{
+ "section": "CraftTweaker/Material",
+ "title": "Modify Existing Materials",
+ "stream": [
+ {
+ "type": "textbox",
+ "fontSize": 9,
+ "content": [
+ "You can get Materials by the §lMaterialRegistry§r."
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "element",
+ "content": [
+ "1. §9Getters"
+ ]
+ },
+ {
+ "type": "textbox",
+ "link": "ct",
+ "content": [
+ "2. §9Setters"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "element",
+ "content": [
+ "§c§lGetters:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ " §l○§r §o§nMaterialRegistry.get(String materialName)§r get §nMaterial§r by name.\n\n §l○§r §o§nMaterialRegistry.getAllMaterials()§r get §nMaterial§r List.\n\n §l○§r §o§ngetChemicalFormula()§r get default formula.\n\n §l○§r §o§nmaterialRGB§r get default materialRGB.\n\n §l○§r §o§nradioactive§r get default radioactive.\n\n §l○§r §o§nprotons§r get default protons.\n\n §l○§r §o§nneutrons§r get default neutrons.\n\n §l○§r §o§nmass§r get default mass.\n\n §l○§r §o§naverageProtons§r get default averageProtons.\n\n §l○§r §o§naverageNeutrons§r get default averageNeutrons.\n\n §l○§r §o§naverageMass§r get default averageMass.\n\n §l○§r §o§nblastTemperature§r get default blastTemperature.\n\n §l○§r §o§ncamelCaseName§r get default camelCaseName.\n\n §l○§r §o§nunlocalizedName§r get default unlocalizedName.\n\n §l○§r §o§nlocalizedName§r get default localizedName.\n\n §l○§r §o§nname§r get default name."
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "ct",
+ "content": [
+ "§c§lSetters:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ " §l○§r §o§nsetFormula(String formula, @Optional boolean withFormatting)§r Set the formula of this Material.\n\n §l○§r §o§naddFlags(String... names)§r Add additional flags to this Material.\n\n §l○§r §o§nsetMaterialRGB(int materialRGB)§r Set the color of this Material.\n\n §l○§r §o§nsetFormula(String formula, @Optional boolean withFormatting)§r Set the formula of this Material."
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"
+ ]
+ },
+ {
+ "type": "textbox",
+ "stroke": 687800320,
+ "stroke_width": 3,
+ "fill": 687800320,
+ "content": [
+ "§5\n§r§8#loader gregtech§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0MaterialRegistry§r§5;§r§5\n§r§9import§r§5 §r§0mods§r§5.§r§0gregtech§r§5.§r§0material§r§5.§r§0Material§r§5;§r§5\n§r§5\n§r§9var§r§5 §r§0gold§r§5 §r§5\u003d§r§5 §r§0MaterialRegistry§r§5.§r§0get§r§5(§r§2\"gold\"§r§5)§r§5;§r§5\n§r§9var§r§5 §r§0name§r§5 §r§5\u003d§r§5 §r§0gold§r§5.§r§0name§r§5;§r§5 §r§8// \"gold\"§r§5\n§r§9var§r§5 §r§0color§r§5 §r§5\u003d§r§5 §r§0gold§r§5.§r§0materialRGB§r§5;§r§5 §r§8// 0xFFE650§r§5\n§r§0gold§r§5.§r§0setFormula§r§5(§r§2\"AggA\"§r§5)§r§5;§r§5 §r§8// set formula§r§5\n§r§9var§r§5 §r§0formula§r§5 §r§5\u003d§r§5 §r§0gold§r§5.§r§0getChemicalFormula§r§5(§r§5)§r§5;§r§5 §r§8// \"AggA\"§r§5\n§r§0gold§r§5.§r§0addFlag§r§5(§r§2\"generate_long_rod\"§r§5,§r§5 §r§2\"generate_gear\"§r§5)§r§5;§r§5 §r§8// add gold long rod, add gold gear§r§5\n§r"
+ ]
+ }
+ ],
+ "fixed": []
+} \ No newline at end of file
diff --git a/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/terminal/ct_terminal_01.json b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/terminal/ct_terminal_01.json
new file mode 100644
index 0000000..b1cdd3a
--- /dev/null
+++ b/config/gregtech/terminal/guide/tutorials/en_us/crafttweaker/terminal/ct_terminal_01.json
@@ -0,0 +1,107 @@
+{
+ "section": "CraftTweaker/Terminal",
+ "title": "CraftTweaker of Terminal",
+ "stream": [
+ {
+ "type": "textbox",
+ "content": [
+ "Content:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "§1§lURL:§r§n https://github.com/Gregicality/GregTech/wiki/CraftTweaker-of-Terminal"
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "api",
+ "isShadow": false,
+ "content": [
+ "§4§lAPI:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "fontSize": 9,
+ "content": [
+ "1. §1registerDevice(deviceItemStack, deviceName)§0:\nRegister the custon device.\n\n2. §1createAppRegistryBuilder(appName):\n§0Create the registryBuilder according to the app name (found in the store app).\n\n3. §1isDefaultApp(default):\n§0Make it as a default app.\n\n4. §1battery(euTier, cost):\n§0Set battery requirements for all tier.\n\n5. §1battery(appTier, euTier, cost):\n§0Set battery requirements for the specific tier.\n\n6. §1device(deviceName...):\n§0Set device requirements for all tier. (available by default: \"scanner\", \"wireless\", \"camera\", \"solar_lv\").\n\n7. §1device(appTier, device...):\n§0Set device requirements for the specific tier.\n\n8. §1upgrade(upgradeItemStack...):\n§0Set upgrade requirements for all tier.\n\n9. §1upgrade(appTier, upgradeItemStack...):\n§0Set upgrade requirements for the specific tier.\n\n10. §1build():\n§0finish and register."
+ ]
+ },
+ {
+ "type": "textbox",
+ "ref": "demo",
+ "space": 1,
+ "content": [
+ "\n§4§lZS Demo:"
+ ]
+ },
+ {
+ "type": "textbox",
+ "fill": -912478525,
+ "fontSize": 9,
+ "content": [
+ "import mods.gregtech.TerminalRegistry;\n\nTerminalRegistry.registerDevice(\u003core:ingotIron\u003e.firstItem, \"ingot_iron\");\n\nTerminalRegistry.createAppRegistryBuilder(\"ore_prospector\")\n .isDefaultApp(true)\n .battery(1, 500)\n .battery(3, 3, 1000)\n .device(\"camera\", \"wireless\")\n .device(4, \"ingot_iron\")\n .upgrade(\u003cminecraft:apple\u003e * 9)\n .upgrade(2, \u003cminecraft:apple\u003e * 9, \u003cminecraft:grass\u003e * 12)\n .build();"
+ ]
+ },
+ {
+ "type": "textbox",
+ "fontSize": 9,
+ "content": [
+ "§4§lResult:\n§rCustom Device"
+ ]
+ },
+ {
+ "type": "image",
+ "form": "url",
+ "source": "https://user-images.githubusercontent.com/18493855/140280593-37922838-4a20-4e1b-9be9-73935c4c8c13.png",
+ "width": 190,
+ "height": 120
+ },
+ {
+ "type": "textbox",
+ "content": [
+ "Register Battery, Device, and Upgrade"
+ ]
+ },
+ {
+ "type": "image",
+ "form": "url",
+ "source": "https://user-images.githubusercontent.com/18493855/140280587-84dc8f67-6dde-472f-9ed8-6a4c5e71abc4.png",
+ "width": 190,
+ "height": 120
+ },
+ {
+ "type": "image",
+ "form": "url",
+ "source": "https://user-images.githubusercontent.com/18493855/140280590-d4700a88-5780-4e0f-95f8-130e82f4634a.png",
+ "width": 190,
+ "height": 120
+ }
+ ],
+ "fixed": [
+ {
+ "type": "textbox",
+ "x": 49,
+ "y": 40,
+ "width": 16,
+ "height": 10,
+ "link": "api",
+ "content": [
+ "§9§napi"
+ ]
+ },
+ {
+ "type": "textbox",
+ "x": 67,
+ "y": 40,
+ "width": 25,
+ "height": 10,
+ "link": "demo",
+ "content": [
+ "§9§ndemo"
+ ]
+ }
+ ]
+}