Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
e3ce902
7.4.x Haze small fusion ctm tweaks bc it was bothering me (#4432)
HazeVista Jan 7, 2026
8c0f8c8
Two-Phase Recipe Addition System (#3981)
TechLord22 Jan 8, 2026
241534f
Fix overwriting FOV when on concrete (#4446)
zetrock1 Jan 9, 2026
22990cb
Add option to display temperatures in Celsius (#3839)
TarLaboratories Jan 9, 2026
f66abea
Correction and update of the new uk_ua (#4452)
MetenBouldry Jan 9, 2026
a91ad87
Use Generic Builder pattern for MachineBuilder (#4422)
jurrejelle Jan 9, 2026
0830c46
Fix crash when rejoining world in latest (#4453)
jurrejelle Jan 9, 2026
5564a85
Stop placeholder execution when an exception is encountered (#4455)
TarLaboratories Jan 10, 2026
59d17a0
Fix tank valve info (#4454)
zetrock1 Jan 10, 2026
3d1c341
Spray cans with AE2 IColorableBlockEntity support (#4264)
zetrock1 Jan 10, 2026
ba3bec0
add a mixin to make test method names be displayed in snake_case (#4463)
screret Jan 13, 2026
e399fd7
Fix voltage display (#4462)
illuciaz23 Jan 13, 2026
24574c9
Rework machine copy/paste card to support copying pipes, covers, cove…
gustovafing Jan 14, 2026
a2a7a6f
Fixed Multi Smelter texture again. (#4469)
Conity723 Jan 14, 2026
6c6c2fd
Add "type: tests" to the set of required labels that pass the check (…
screret Jan 14, 2026
7ac9e80
Distribute display voltage logic to machine implementations (#4459)
toapuro Jan 14, 2026
4d3bb04
Terminal tooltip change to ensure consistent terminology (#4458)
HazeVista Jan 14, 2026
27f5082
Add Hotkey for StepAssist (#4291)
zetrock1 Jan 14, 2026
781b6e7
Add HV, IV screwdriver and chainsaw (#4310)
zetrock1 Jan 15, 2026
dc67cd7
DFS stack-based recipe lookup implementation (#3986)
jurrejelle Jan 15, 2026
58457f2
Jade battery provider (#4317)
zetrock1 Jan 15, 2026
ce64595
Add CC: Tweaked peripheral for ghost programmed circuit (#4468)
blockninja124 Jan 15, 2026
fcbe8d7
Revert "Add CC: Tweaked peripheral for ghost programmed circuit" (#4478)
Ghostipedia Jan 15, 2026
3dca9ef
Only allow http and https (#4457)
TarLaboratories Jan 15, 2026
3484551
Clean up adjacency condition serialization (#4260)
screret Jan 20, 2026
195bed9
Add check to not cache invalid recipes (#4486)
jurrejelle Jan 21, 2026
02bfeb4
Remove BlockEntity Check in MinerLogic (#4488)
lilpaladin1 Jan 24, 2026
29dfe03
Fix autogenerating mortar recipes (#4498)
jurrejelle Jan 25, 2026
258f72b
Add testing mention to github template (#4503)
jurrejelle Jan 26, 2026
388e468
Replace mandatory air with any in blast chiler structure (#4502)
jurrejelle Jan 26, 2026
0dfe9b9
Fix CME with parts and partpositions when calling getParts in addedTo…
jurrejelle Jan 26, 2026
97847f7
Rename method for adding tool enchantments (#4510)
Phoenixvine32908 Jan 27, 2026
3f7e588
Lamp predicates. (#4511)
Phoenixvine32908 Jan 28, 2026
de443c1
fix Same uuid (#4483)
remakefactory Jan 29, 2026
5ad5f7c
Fix invalid comparison in dimension condition (#4518)
jurrejelle Jan 29, 2026
f21fd8b
Fix LWJGL and FastUtil sources (#4520)
screret Jan 29, 2026
c04379a
Fix wireless_transmitter_cover_test not working on systems where the …
screret Jan 29, 2026
7b7ac44
Pipe model rework (#4283)
screret Jan 31, 2026
e62003c
Fix missing/invalid pipe model issues (#4530)
screret Feb 1, 2026
7075fc0
Fix bug in NBTPredicateIngredient serializer (#4536)
Mqrius Feb 3, 2026
a39d66c
Fix dust disassembly recipes (#4456)
TarLaboratories Feb 3, 2026
33a9502
Re-run ranged input tests multiple times (#4538)
jurrejelle Feb 3, 2026
b02c901
Fix pipes missing break particle textures (#4533)
screret Feb 3, 2026
2fbef83
Remove muffler hatch requirement from Large Distillery (#4195)
GirixK Feb 3, 2026
aaea1cc
Trinium spring (#4470)
zetrock1 Feb 4, 2026
1cbd9d6
Remove apatite bolt and screw, remove rubber bolt, screw, and gears (…
Pyritie Feb 4, 2026
2f3a6a1
Give three alloy smelter glass recipes the right category (#4497)
Pyritie Feb 4, 2026
2c5fe8a
Simplify material block models and fix issues they had with shaders (…
screret Feb 4, 2026
032470f
Fix pipes' block break animation being the wrong shape (#4543)
screret Feb 4, 2026
04a8299
Fixed tooltip order for Large Assembler (#4552)
HazeVista Feb 4, 2026
83ecd01
Update zh_cn.json (#4516)
iouter Feb 6, 2026
a380ea3
Add recipes for netherite tools (#4368)
JuiceyBeans Feb 8, 2026
53dc2bf
Output bus filtering (#4337)
zetrock1 Feb 8, 2026
5c91489
Allow rendering other modules from placeholders (#3900)
TarLaboratories Feb 8, 2026
d0e0e1a
Add gem slurry from purified ore recipes (#4413)
SpicyNoodle5 Feb 8, 2026
d01721e
Match Painted Output Busses to Painted Input Busses (#4273)
DilithiumThoride Feb 8, 2026
ea90a9a
Recipe Fail Reason Display (#4487)
illuciaz23 Feb 8, 2026
4256a62
Add biomeTag recipe condition (#4419)
chloecat34 Feb 8, 2026
2ca4a60
Improve bedrock vein randomness (#4574)
Gaider10 Feb 8, 2026
30fce02
Fix ambiguous methods in KubeJS interop (#4525)
screret Feb 8, 2026
433cff4
Add a configuration option to automatically run `gradlew processResou…
screret Feb 8, 2026
1540937
make all variants of `GTRecipeBuilder#adjacentBlock` and `#adjacentFl…
screret Feb 8, 2026
46d6cb2
Remove muffler hatch from distillery preview (#4577)
jurrejelle Feb 8, 2026
0125ba5
RELEASE for 1.20.1 [no-snapshot] (#4578)
github-actions[bot] Feb 8, 2026
5718d53
Fix access protection issue in netherite tools + lamprenderer issues …
jurrejelle Feb 8, 2026
8c8eb66
RELEASE for 1.20.1 [no-snapshot] (#4588)
github-actions[bot] Feb 9, 2026
94791f4
Add update header note to docs (#4587)
jurrejelle Feb 9, 2026
f77dbb8
Turn groupColor field value into optional field codec (#4593)
jurrejelle Feb 10, 2026
feb7643
Fix wrong argument check for 'redstone set #' placeholder (#4595)
FyreDrakon Feb 10, 2026
c2e50df
Fix ore vein consistency by sorting the cache (#4602)
jurrejelle Feb 11, 2026
8cc05b6
Fix CR being displayed on CM when pasting text on windows (#4603)
TarLaboratories Feb 11, 2026
a2f6762
Fix electrolyzer overlay texture. (#4604)
vakus Feb 12, 2026
572caae
Merge 1.20.1 into 1.21
gustovafing Feb 14, 2026
f914d45
fix build errors
gustovafing Feb 14, 2026
9f9e07d
Fix clientInit init error, fix input sep test recipetype, fix other t…
jurrejelle Feb 15, 2026
110f5fb
spotless
gustovafing Feb 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
59 changes: 59 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,64 @@
# ChangeLog

## Version [v7.5.1](https://github.com/GregTechCEu/GregTech-Modern/compare/v7.5.0-1.20.1...v7.5.1-1.20.1)
### Fixed

- Fix access protection issue in netherite tools + lamprenderer issues by @jurrejelle in [#4579](https://github.com/GregTechCEu/GregTech-Modern/pull/4579)


## Version [v7.5.0](https://github.com/GregTechCEu/GregTech-Modern/compare/v7.4.1-1.20.1...v7.5.0-1.20.1)
### Added

- 7.4.x Haze small fusion ctm tweaks bc it was bothering me by @HazeVista in [#4432](https://github.com/GregTechCEu/GregTech-Modern/pull/4432)
- Add option to display temperatures in Celsius by @TarLaboratories in [#3839](https://github.com/GregTechCEu/GregTech-Modern/pull/3839)
- Spray cans with AE2 IColorableBlockEntity support by @zetrock1 in [#4264](https://github.com/GregTechCEu/GregTech-Modern/pull/4264)
- Rework machine copy/paste card to support copying pipes, covers, cover settings, and more machine settings by @gustovafing in [#4272](https://github.com/GregTechCEu/GregTech-Modern/pull/4272)
- Add Hotkey for StepAssist by @zetrock1 in [#4291](https://github.com/GregTechCEu/GregTech-Modern/pull/4291)
- Add HV, IV screwdriver and chainsaw by @zetrock1 in [#4310](https://github.com/GregTechCEu/GregTech-Modern/pull/4310)
- Jade battery provider by @zetrock1 in [#4317](https://github.com/GregTechCEu/GregTech-Modern/pull/4317)
- Add CC: Tweaked peripheral for ghost programmed circuit by @blockninja124 in [#4468](https://github.com/GregTechCEu/GregTech-Modern/pull/4468)
- Trinium spring by @zetrock1 in [#4470](https://github.com/GregTechCEu/GregTech-Modern/pull/4470)
- Output bus filtering by @zetrock1 in [#4337](https://github.com/GregTechCEu/GregTech-Modern/pull/4337)
- Allow rendering other modules from placeholders by @TarLaboratories in [#3900](https://github.com/GregTechCEu/GregTech-Modern/pull/3900)
- Add gem slurry from purified ore recipes by @SpicyNoodle5 in [#4413](https://github.com/GregTechCEu/GregTech-Modern/pull/4413)
- Recipe Fail Reason Display by @illuciaz23 in [#4487](https://github.com/GregTechCEu/GregTech-Modern/pull/4487)
- Add biomeTag recipe condition by @chloecat34 in [#4419](https://github.com/GregTechCEu/GregTech-Modern/pull/4419)

### Fixed

- Fix overwriting FOV when on concrete by @zetrock1 in [#4446](https://github.com/GregTechCEu/GregTech-Modern/pull/4446)
- Stop placeholder execution when an exception is encountered by @TarLaboratories in [#4455](https://github.com/GregTechCEu/GregTech-Modern/pull/4455)
- Fix tank valve info by @zetrock1 in [#4454](https://github.com/GregTechCEu/GregTech-Modern/pull/4454)
- Fix voltage display by @illuciaz23 in [#4462](https://github.com/GregTechCEu/GregTech-Modern/pull/4462)
- Fixed Multi Smelter texture again. by @Conity723 in [#4469](https://github.com/GregTechCEu/GregTech-Modern/pull/4469)
- Terminal tooltip change to ensure consistent terminology by @HazeVista in [#4458](https://github.com/GregTechCEu/GregTech-Modern/pull/4458)
- Only allow http and https by @TarLaboratories in [#4457](https://github.com/GregTechCEu/GregTech-Modern/pull/4457)
- Add check to not cache invalid recipes by @jurrejelle in [#4486](https://github.com/GregTechCEu/GregTech-Modern/pull/4486)
- Remove BlockEntity Check in MinerLogic by @lilpaladin1 in [#4488](https://github.com/GregTechCEu/GregTech-Modern/pull/4488)
- Fix autogenerating mortar recipes by @jurrejelle in [#4498](https://github.com/GregTechCEu/GregTech-Modern/pull/4498)
- Replace mandatory air with any in blast chiler structure by @jurrejelle in [#4502](https://github.com/GregTechCEu/GregTech-Modern/pull/4502)
- Fix CME with parts and partpositions when calling getParts in addedToController by @jurrejelle in [#4505](https://github.com/GregTechCEu/GregTech-Modern/pull/4505)
- Fix missing/invalid pipe model issues by @screret in [#4530](https://github.com/GregTechCEu/GregTech-Modern/pull/4530)
- Fix bug in NBTPredicateIngredient serializer by @Mqrius in [#4536](https://github.com/GregTechCEu/GregTech-Modern/pull/4536)
- Fix dust disassembly recipes by @TarLaboratories in [#4456](https://github.com/GregTechCEu/GregTech-Modern/pull/4456)
- Fix pipes missing break particle textures by @screret in [#4533](https://github.com/GregTechCEu/GregTech-Modern/pull/4533)
- Simplify material block models and fix issues they had with shaders by @screret in [#4532](https://github.com/GregTechCEu/GregTech-Modern/pull/4532)
- Fix pipes' block break animation being the wrong shape by @screret in [#4543](https://github.com/GregTechCEu/GregTech-Modern/pull/4543)
- Fixed tooltip order for Large Assembler by @HazeVista in [#4552](https://github.com/GregTechCEu/GregTech-Modern/pull/4552)
- Match Painted Output Busses to Painted Input Busses by @DilithiumThoride in [#4273](https://github.com/GregTechCEu/GregTech-Modern/pull/4273)
- Improve bedrock vein randomness by @Gaider10 in [#4574](https://github.com/GregTechCEu/GregTech-Modern/pull/4574)

### Changed

- Two-Phase Recipe Addition System by @TechLord22 in [#3981](https://github.com/GregTechCEu/GregTech-Modern/pull/3981)
- Correction and update of the new uk_ua by @MetenBouldry in [#4452](https://github.com/GregTechCEu/GregTech-Modern/pull/4452)
- Use Generic Builder pattern for MachineBuilder by @jurrejelle in [#4422](https://github.com/GregTechCEu/GregTech-Modern/pull/4422)
- Distribute display voltage logic to machine implementations by @toapuro in [#4459](https://github.com/GregTechCEu/GregTech-Modern/pull/4459)
- DFS stack-based recipe lookup implementation by @jurrejelle in [#3986](https://github.com/GregTechCEu/GregTech-Modern/pull/3986)
- Pipe model rework by @screret in [#4283](https://github.com/GregTechCEu/GregTech-Modern/pull/4283)
- Remove muffler hatch requirement from Large Distillery by @GirixK in [#4195](https://github.com/GregTechCEu/GregTech-Modern/pull/4195)


## Version [v7.4.1](https://github.com/GregTechCEu/GregTech-Modern/compare/v7.4.0-1.20.1...v7.4.1-1.20.1)
### Added

Expand Down
72 changes: 72 additions & 0 deletions docs/content/Gameplay/Central-Monitor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: The Central Monitor & Placeholder System
---

### The Central Monitor

The Central Monitor is a multiblock that allows you to insert modules into it to render images and text.<br>
Images update every 120 seconds, text update rate depends on the voltage provided to the multiblock.
Guide on how to use the central monitor:

1. Right-click the controller
2. In the UI, you will see a grid of monitors, the controller, energy hatch and (optionally) a data hatch
3. Select some of the monitors (in any configuration) by left-clicking on them
4. Click the "Create group" button
5. You should see a group appear on the left of the UI, click on it to select all monitors in that group, click again to unselect
6. Click on the gear icon next to the name of the group you want to edit
7. A UI with a single slot should open, put a module into that slot (while it is possible to put a stack of modules in, that does literally nothing)
8. If it's a text/image module a new field should appear, where you can enter some text (for image it'll be a single line for a URL)
9. Once you've entered your text, click on the green checkmark below the slot, that will save the text you entered
10. Click on the gear icon next to the group you're editing to go back to the main menu
11. You should see the text/image on the Central Monitor

To remove a group, select it and click "Remove from group". To remove a single monitor from a group select only it and click "Remove from group".
You cannot add monitors to a group after it has been created. Image dimensions are determined by the left-up corner of the group and the right-down corner,
the blocks between them have to be in the same group. The text module will only display text on monitors of its group.

!!! warning "The image module is a bit buggy, so the image may not appear immediately"

### Text Module

You may have noticed that the text module has a number input in its UI. It is the text scale, where 1 represents a line height of 1/16th of a block.
You may have also noticed that the text module has some additional slots on the left.
Those are referenced by placeholders, you can put any item in them. Most placeholders also need a target block to work. To select a target for your monitor group,
in the main UI of the controller select the group, right-click the block you want to target and click "Set target". You may want to target a block that is not in the
central monitor, to do that you have to use a Wireless Transmitter Cover. Place it on the block you want to target and right-click it with a data stick. Then put that
data stick into a data hatch in the Central Monitor multiblock. If you select the data hatch as a target, you will see a new number field appear. Enter the number of the
slot your data stick is in and click "Set target". The target will be set to the block the Wireless Transmitter Cover is on. It can work cross-dimensionally.

!!! note "For the Computer Monitor Cover, the targeted block is always the block it's placed on."

### Placeholders
Placeholders can be used by players in the monitor text module, or in the computer monitor cover (though a bit more limited).
For example, a player may write something like this in a text module:
```
Hello on day {calc {tick} / 20000}!
Current energy buffer: {formatInt {energy}}/{formatInt {energyCapacity}} EU\
{if {cmp {energy} < 5000000} {color red "\nLOW ENERGY!"}}
Here's some random stuff:
{repeat 5 {repeat {random 2 10} {block}}
```
And something like this would be displayed:
```
Hello on day 420!
Current energy buffer: 4.2M/6.9M EU
LOW ENERGY!
Here's some random stuff:
███████
██
█████
████
██████████
```
This system is turing-complete (i.e. if the player really wanted to play Doom on the Central Monitor, they could).<br>
All placeholders work on strings (or, more specifically, `Component`s to allow text formatting), so when you write `{calc {calc 2 + 4} * 3}`,
first `{calc 2 + 4}` will be evaluated into `6`, then it will be converted to a string and back to an int, and then it will be passed into the second placeholder
to evaluate `{calc 6 * 3}` into `18`, which will be turned into a string again. That also allows for things like `{calc 3 + 1}2`, which will evaluate into `42`,
since outside of placeholders text is simply concatenated. Placeholder arguments are separated by spaces, which may be a bit annoying, when wanting to pass a string
with a space into a placeholder, for example `{if 1 string with spaces}`, which will cause an error. In these cases, double quotes can be used: `{if 1 "string with spaces"}`
will work perfectly fine. There are placeholders that need reference items, to achieve that, there are 8 slots in the text module's UI on the left.
Items can be inserted/extracted from these slots automatically using the `ender` placeholder by interacting with Ender Item Links.<br>

!!! tip "The full list of placeholders with explanations on what they do and usage examples can be found in-game in the text module or computer monitor UI on the left."
31 changes: 31 additions & 0 deletions docs/content/Gameplay/Logistics/Machines.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,37 @@ the power button in its UI or by right-clicking it with a Soft Mallet.

Buses and Hatches can accept automated import or export from other sides, so long as something else is causing it.

### Distinct, Painted, and Filtered Inputs and Outputs
Under normal circumstances, **all** input Buses and Hatches and on a multiblock machine will be checked for recipe
inputs, and all output buses and hatches will be used to place recipe outputs. However, this can lead to unwanted behavior
where a user wants a single machine to do multiple recipes, but the ingredients to those recipes can conflict and be used
to run an unwanted third recipe. Additionally, when a machine is being used like this, the output bus/hatch to which
produced items/fluids are delivered is chosen somewhat arbitrarily, making it difficult or unwieldy to plan pipes to carry
specific output products away.

GTM offers three tools for this problem: Fluid Hatch Filter Locking, Distinct Buses and Painted Buses/Hatches.

* Fluid Hatch Filter Locking is a simple system for resolving the problem of deciding what output hatches receive what
produced fluids. Using the same interface as a Super Tank, a Fluid Output Hatch can have its current contained fluid
Locked, meaning that only that fluid will ever be placed in it; or the Hatch can be pre-emptively locked to a fluid by
dragging that fluid from JEI/EMI into the Hatch's output slot.
* Filter Locking only works with standard *single* fluid hatches, and cannot be done to the higher-tier Quadruple or
Nonuple Fluid Hatches. (However, those Hatches also cannot contain a single fluid in more than one slot, so they do
still allow for some degree of output separation when used with Quadruple or Nonuple Fluid Pipes.)
* Distinct Buses is a toggle used on Input Buses (not Hatches), which causes the machine to look at this bus as being
separate from all other Distinct Buses. (One distinct bus has no meaning, but two distinct buses on one machine will
cause the machine to search each distinct bus separately).
* Painted Buses/Hatches are hatches which have been Painted using a can of spray paint. Input Buses/Hatches which have been
Painted in the same color are looked at together by the machine searching for recipe inputs, but any items/fluids stored
in buses/hatches with a different color are not used for the search. The isolation works the same as for Distinct Buses,
but it allows for multiple buses/hatches to be searched together as a group.
* Prior to version 7.5.0, painting **Output** Buses/Hatches had no effect. Version 7.5.0 introduced machines pairing their
Painted Outputs to their Painted Inputs, such that if a recipe pulls items from a Painted Input, it can only output the
products of that recipe to a Painted Output of the same color (or an unpainted output).
* Buses and Hatches that are not painted, or not set to Distinct, are always fair game for the machine - Distinct and
Painted Inputs can always pull from other non-distinct and non-painted inputs; and recipes that used ingredients from
Painted Inputs can always send their products to non-painted outputs.

## Passthrough Hatches and the Cleanroom
The Cleanroom is a unique multiblock with unique restrictions. Because the Cleanroom must have solid walls, pipes, cables,
and inventories outside cannot directly connect to machines inside. For this purpose, Passthrough Hatches exist.
Expand Down
1 change: 0 additions & 1 deletion docs/content/Modpacks/Changes/v7.4.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,3 @@ to
`roll(RecipeCapability<?> cap, List<Content> chancedEntries, ChanceBoostFunction boostFunction, int recipeTier, int chanceTier, Object2IntMap<?> cache, int times)`

(The chance roll function now also requires the RecipeCapability that is currently being processed to be passed in.)

Loading
Loading