GregTech: New Horizons Playthrough

#docker #automation

GregTech: New Horizons (GTNH) is an expert-level Minecraft modpack, widely regarded as the most difficult in the game. With its immense tech progression and complex crafting chains, completing it can take years.

I have been playing GTNH since 2021. As of 2025-10-08, I have played for 3000 hours, and I would like to share my journey so far.

Since I began keeping notes in the IV Age, I’ll briefly summarize the earlier stages first.


The Beginning

Like most Minecraft survival worlds, the journey began in a humble dirt house.
2025-08-10_22.06.00.png

GTNH started with three players: Tom, Sergio, and me.
2025-08-10_22.06.22.png

Stone Age

In the Stone Age, our priority was farming food for survival. Below are our farms and berry trees.
2025-08-10_22.17.15.png

Steam Age to MV Tier

We chose the Canyon biome for our base because of its unique view, lack of rain, high blast resistance, and—most importantly—absence of stone or cobblestone, which prevents the dreaded “drown creeper” (a creeper variant that spawns swarms of silverfish that hide in stone and multiply).
2025-08-10_22.29.38.png


HV, EV

A history of innovation was forged inside this four-story TSMC building. Here, we celebrated milestones such as our first EBF, fully automated circuits, our first rocket to the moon, unlocking AE2 and more. To prepare for the next stage, the building is under renovation to overcome space limitations and integrate upgraded technology.
2025-08-10_22.41.03.png

Left: Multiblock machines for benzene production
Right: Passive plastic circuit board automation, remnants of early AE2 setups
2025-08-10_22.49.05.png

The AE Controller—our automation backbone—handles hundreds of channels.
2025-08-10_22.56.52.png

Single-block machines for AE2 automation:
2025-08-10_23.06.43.png

Large Chemical Reactors producing essential chemical ingredients:
2025-08-10_23.09.36.png


IV Tier

From the IV tier onward, the difficulty ramps up sharply. This is the point where players must face the Platinum Processing Line—a notorious bottleneck where many quit. This tier also introduces numerous multiblock machines, requiring a fundamental overhaul of existing infrastructure.


Power Generation

Generators

Originally, the base was powered by cetane-boosted diesel, but crop production could not scale as easily as benzene. Currently, a Large Gas Turbine handles normal loads, while the LCE is switched on when extra power is needed.
2025-08-10_23.51.56.png

Benzene Production

  • 11×11 EnderIO Tree Farm
  • Coke Oven → Fluid Extractor → 3× Distillation Towers
  • Output: 1,200 L/s benzene (HSS-E Tight LGT burns 260 L/s)

Pasted image 20250630154824.png
Pasted image 20250630154955.png


Ore Processing

Upgraded to multiblock machines and fully automated with AE2, based on Ore Processing Concepts - GT New Horizons.
Basic ore Path.png


Platinum Line

An entire floor of the TSMC building is dedicated to Platinum Line processing.
Pasted image 20250811000055.png

Platinum & Separation

Platium&Separation.png

Palladium

Palladium.png

Osmium

Osmium.png

Iridium

Iridium.png


Buildings

After watching a video on architecture, I decided to rebuild the “04” (The Fourth Industrial Center).

Concept

I drew inspiration from the Seagram Building—the “mother of all modern buildings” and a hallmark of the Less is More philosophy. It eliminates unnecessary decoration, highlighting the beauty of structure and materials.

Original “04”

2025-05-27_15.49.00.png

New “04”

Pasted image 20250630155824.png

Seagram Building

Pasted image 20250812201622.png P.S. The new “04” was built in Creative mode to push myself toward better design—otherwise, I’d remain a high-tech caveman.

Ref: 現代建築通識5:密斯封神,西格拉姆大廈。如果只能存在一棟現代建築,我相信只會是她。 | 大鳥俠BigBirdXia - YouTube

Hosting

After migrating to React2Shell, reconfiguring my services became a major chore, especially GregTech: New Horizons (GTNH). Manually managing Java versions, server packs, world backups, and whitelist/permission settings quickly became exhausting, particularly given how frequently the community updates the modpack.

To streamline this process, I decided to Dockerize the server. By using the itzg/minecraft-server image, I was able to consolidate the entire setup into a single docker-compose.yml file. Now, instead of going through a lengthy manual setup, I can deploy or update the server with a single command.

This Docker Compose configuration allows me to:

  1. Download my world backup from the cloud on deployment and persist it across restarts

  2. Automatically whitelist and grant OP permissions to myself

  3. Run GTNH on port 25566 for gtnh.donchong.top (I reserve 25565 for vanilla)

  4. Apply server utility configurations at deployment time, enabling chunk loading

  5. Automatically confirm FML prompts when loading a world, which is required every time the pack is updated

services:
  mc:
    # make sure this java version matches with pack java version
    image: itzg/minecraft-server:java25
    tty: true
    stdin_open: true
    ports:
      - "25566:25566"
    environment:
      WORLD: https://filedn.com/lvpQyX5dxsK7TR0Vaa6Pr1k/docker_use/gtnh_backups/gtnh_world_latest.zip
      EULA: "TRUE"
      TYPE: CUSTOM
      GENERIC_PACKS: GT_New_Horizons_2.8.4_Server_Java_17-25
      GENERIC_PACKS_SUFFIX: .zip
      GENERIC_PACKS_PREFIX: https://downloads.gtnewhorizons.com/ServerPacks/
      # if this isn't true, then the container tries to download the modpack every run
      SKIP_GENERIC_PACK_UPDATE_CHECK: "true"
      MEMORY: 6G
      # Make sure that this matches what is in your pack's startserver bash file
      JVM_OPTS: "-Dfml.readTimeout=180 -Dfml.queryResult=confirm @java9args.txt"
      # You may choose to instead download a specific jar version yourself, and change this value to the local jar.
      # Refer to https://docker-minecraft-server.readthedocs.io/en/latest/configuration/misc-options/#running-with-a-custom-server-jar
      CUSTOM_SERVER: "https://github.com/GTNewHorizons/lwjgl3ify/releases/download/2.1.16/lwjgl3ify-2.1.16-forgePatches.jar"
      # Set server.properties according to GTNH server defaults
      MOTD: "GT:New Horizons 2.8.4"
      DIFFICULTY: "hard"
      ENABLE_COMMAND_BLOCK: "true"
      SPAWN_PROTECTION: 1
      VIEW_DISTANCE: 12
      MODE: 0
      LEVEL_TYPE: "rwg"
      ALLOW_FLIGHT: "TRUE"
      SERVER_PORT: 25566
      LEVEL: "world"
      WHITELIST: |
        VVa1nut
      OPS: |
        VVa1nut
      APPLY_EXTRA_FILES: |
        serverutilities<https://filedn.com/lvpQyX5dxsK7TR0Vaa6Pr1k/docker_use/gtnh_backups/serverutilities.cfg
    volumes:
      # attach a managed volume, change to a relative or absolute host directory if needed
      - ./data:/data