meiCloud.

All You Need

Private friends-only Minecraft 1.21.1 NeoForge modpack. 504 mods, Distant Horizons LODs, full Create ecosystem (Aeronautics, Big Cannons, Steam'n'Rails, Diesel Generators), Creating Space rocketry, BSL+Clrwl shaders, EMI recipe browser.

Server
ayn.meicloud.net:55565
Pack version
v0.2.3 Β· NeoForge 21.1.234
Access
whitelist Β· friends only

Installation guide

This walks you through installing the pack on a Windows 11 desktop with Prism Launcher. Steps are functionally the same on macOS / Linux Prism β€” only the screenshots will look slightly different.

You need three things up front:

  1. Prism Launcher β€” FOSS, GPLv3
  2. A Microsoft account with Minecraft Java Edition purchased β€” sign in via Prism's account manager first
  3. ~25 GB of free disk space β€” the unpacked instance is ~6 GB; you also want headroom for world saves, Distant Horizons LOD databases, and SimpleBackups archives

The mrpack itself is ~1.37 GB. The download is the slow part; the actual install is a few minutes.

Step 1 β€” Open Prism, click "Add Instance"

After installing Prism and signing in with your Microsoft account, you'll see the empty instance list. Click Add Instance in the top-left toolbar.

Prism main window, Add Instance button at top-left
Prism main window β€” Add Instance button at top-left

Step 2 β€” Import from URL

In the dialog, switch to the Import tab on the left. In the "Local file or link to a direct download" field, paste:

https://github.com/christopher-john-czettel/meicloud-all-you-need/releases/download/v0.2.3/meicloud-all-you-need-v0.2.3.mrpack

For future releases, replace v0.2.3 with whatever the latest tag is at the releases page.

You can rename the instance in the Name field (defaults to the mrpack filename without extension). Click OK.

Prism New Instance dialog with Import tab selected and the mrpack URL pasted
New Instance dialog with the mrpack URL pasted into the Import tab

Step 3 β€” Wait for the download

Prism fetches the mrpack (~1.37 GB), unpacks it, and resolves all packwiz-tracked mods from Modrinth + CurseForge + our self-hosted GitHub raw assets. Expect 5-15 minutes on a typical home connection.

Prism download progress dialog
Prism download progress β€” ~1.28 GiB total

The download fetches:

If any download fails (rare; usually a CurseForge rate-limit transient), close and re-open the instance via the right-click menu β†’ Refresh β€” Prism resumes from where it left off.

Step 4 β€” Edit the new instance

The instance shows up in your instance list with the meiCloud β€” All You Need icon. Right-click it and pick Edit… (Ctrl+I works too).

Right-click context menu with Edit highlighted
Right-click β†’ Edit on the new instance
Don't launch yet. The mrpack ships configs, mods, shaders, and the server-list entry β€” but JVM settings and heap size are per-Prism-install and have to be applied manually. Launching with default Prism Java settings will boot but will be slow + GC-stuttery.

Step 5 β€” Configure Memory and JVM Arguments

In the Edit Instance window, pick Settings in the left sidebar, then the Java tab at the top.

Java tab with Memory and Java Arguments configured
Java tab β€” Memory and Arguments configured for meiCloud AYN

Memory section

Apply these exact values:

FieldValue
β˜‘ Memoryβœ… enabled
Minimum Memory Usage16384 MiB
Maximum Memory Usage16384 MiB
PermGen Size128 MiB (default β€” harmless legacy field, ignored on Java 21)
β˜‘ Warn when there is not enough memoryβœ… enabled (default)

Why 16 GB Min = Max: With -XX:+AlwaysPreTouch in the JVM args (below), the JVM commits the full heap to physical RAM at startup. Setting -Xms = -Xmx skips the runtime heap-resize logic entirely. 16 GB is the sweet spot for G1's G1HeapRegionSize=8M (2-32 GB optimal range); past 16 GB G1's young-gen scan time grows into perceptible pauses.

If your machine has only 16 GB total system RAM, drop both to 10240 (10 GB) β€” the pack will still run, you'll just have less headroom for SimpleBackups + JEI/EMI index bursts.

Java Arguments section

Enable Java Arguments and paste this single line (no newlines):

-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=8M -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -Dfml.readTimeout=180 -Dfml.loginTimeout=180

What each flag does

FlagPurpose
-XX:+UnlockExperimentalVMOptionsRequired to use the G1* tuning flags below
-XX:+UseG1GCG1 garbage collector. Don't switch to ZGC β€” we tried, it OOM'd on this exact workload.
-XX:G1NewSizePercent=20Young generation = 20 % of heap (3.2 GB at 16 GB heap). Right-sized for high-allocation modded MC.
-XX:G1ReservePercent=20Reserve 20 % of heap as buffer; prevents promotion failures during allocation spikes (SimpleBackups, EMI index build).
-XX:MaxGCPauseMillis=50Target max GC pause = 50 ms. If you see microstuttering, drop to 30 β€” costs ~2-3 % avg FPS for tighter 1 %-lows.
-XX:G1HeapRegionSize=8M8 MB regions. Optimal for heap sizes 2-32 GB.
-XX:+ParallelRefProcEnabledParallelize reference processing across CPU cores. Free win on 8+ core CPUs.
-XX:+AlwaysPreTouchCommits full heap to physical RAM at startup. Prevents first-explore stutter from heap growth. This is why Min and Max are matched.
-Dfml.readTimeout=180Mod-loading read timeout = 3 minutes. Vanilla default is 90 s; we need more because 504 mods.
-Dfml.loginTimeout=180Server-handshake timeout = 3 minutes. Same reasoning.

Java Executable

Should auto-detect a Java 21 install. If it doesn't, click Open Java Downloader in Prism, pick Adoptium / Microsoft / Azul OpenJDK 21, and re-run Detect.

NeoForge 1.21.1 requires Java 21 β€” Java 17 will silently mis-load mixin classes and crash on boot.

If you have multiple Java installs and Prism auto-picks the wrong one, hit Browse and point it at javaw.exe from a Java 21 install. Microsoft OpenJDK 21 is what most modded MC players use; the path looks like:

C:\Users\<you>\AppData\Roaming\PrismLauncher\java\java-runtime-delta\bin\javaw.exe

Step 6 β€” First launch

Close the Edit window. Back in the main Prism view, double-click the instance (or hit the Launch button on the right sidebar) to start it.

Expect on first launch:

If anything crashes on first launch, check logs/latest.log and crash-reports/ β€” and ping @chris with the crash file.

Updating to a newer release

When a new tag goes up at the releases page:

  1. Right-click the instance β†’ Edit β†’ Version (left sidebar)
  2. Click Modify Pack at the top right
  3. Paste the new release's .mrpack URL
  4. Confirm
  5. Prism re-downloads what changed and preserves your saves/, screenshots/, journeymap/ data
  6. Your Java settings from Step 5 are preserved β€” they're at the instance level, not the pack level

Re-applying the Java settings is only needed if you ever delete and re-import the instance.

Troubleshooting

"Cannot get config value before config is loaded" on boot

You're on v0.2.0 or older β€” the bug was a creatingspace mixin firing before its config was registered. Fixed in v0.2.1 by patching the mod jar. Update to the latest release.

Mods download fails / timeout

CurseForge sometimes throttles non-API-key downloads. Re-open the instance via right-click β†’ Refresh. Or wait 5 minutes and re-try.

Shader looks washed out / dim main menu

The BSL+Clrwl shader is tonemapping the FancyMenu splash background β€” known cosmetic quirk, doesn't affect gameplay. Workaround: press K on the title screen to toggle Iris shaders off (re-enables automatically on world join).

"Java Heap Space" OOM in chat or logs

You're below 16 GB heap, or you have ZGC in your JVM args (paste the exact G1 args block from Step 5). G1 is the correct GC for this pack on 12-16 GB heaps. ZGC needs ~30-40 % more headroom and OOMs on workloads this dense.

[KubeJS errors found N] chat line

If N > 0 on first launch, something in kubejs/data/ or a server script failed. Report the count + the linked erroring_recipes.md content; we'll patch the next release.

Pack works but FPS feels low

Open the F3 debug overlay. Read off:

If GPU < 50 % and FPS is low, you're CPU-bound β€” see the perf guide (Tier A, especially HAGS off).
If heap usage > 90 %, bump heap or check for a mod memory leak via [AllTheLeaks] lines.
If server tick > 50 ms consistently, something's pegging the integrated server β€” try /spark profiler --timeout 60 and read the link it spits out.

Where things live in the instance

For poking around without breaking anything:

<instance>/minecraft/
β”œβ”€β”€ mods/                              # all the mods
β”œβ”€β”€ config/                            # mod-side configs
β”‚   β”œβ”€β”€ iris.properties                # shader selection
β”‚   β”œβ”€β”€ DistantHorizons.toml           # DH tuning
β”‚   β”œβ”€β”€ simplebackups-common.toml      # backup schedule
β”‚   └── ...
β”œβ”€β”€ shaderpacks/
β”‚   β”œβ”€β”€ BSL_v10.1.1 + Clrwl_1.0.5.zip
β”‚   └── BSL_v10.1.1 + Clrwl_1.0.5.zip.txt   # our LOW-profile settings
β”œβ”€β”€ kubejs/                            # KubeJS server/client/startup scripts + datapack stubs
β”œβ”€β”€ saves/                             # your worlds
β”œβ”€β”€ simplebackups/                     # backup archive output (you can delete old ones)
β”œβ”€β”€ servers.dat                        # the server list β€” pre-populated with AYN
└── options.txt                        # your video settings (FPS cap, render dist, etc.)

Anything in config/ regenerates if you delete the file β€” useful if you ever break a config and want defaults back.

House rules