final bug fixes and mca rollback

This commit is contained in:
JaniSoto 2026-08-12 13:51:00 +00:00
parent bc5cf71c2e
commit 44855ba280
13 changed files with 254 additions and 58 deletions

View file

@ -6,6 +6,7 @@
* **Minecraft Version**: `1.20.1`
* **Mod Loader**: Forge (`47.4.10`)
* **Java Runtime**: OpenJDK 17 (`itzg/minecraft-server:java17`)
* **Process User**: Container UID `1000` / GID `1000`
> **JVM Flag Rule**: `-XX:+UnlockExperimentalVMOptions` must precede experimental flags in `JVM_OPTS` to avoid JVM start failure on OpenJDK 17.
@ -42,22 +43,24 @@ services:
# JVM Garbage Collection & Network Flags
JVM_OPTS: >-
-Dfml.readTimeout=180
-Dfml.loginTimeout=180
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=45
-XX:G1MixedGCCountTarget=4
-XX:G1HeapWastePercent=5
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:SurvivorRatio=8
-XX:MaxTenuringThreshold=1
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=15
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
volumes:
- ./data:/data
```
@ -95,8 +98,8 @@ improvedmobs-1.20.1-1.13.7-forge.jar
irons_lib-1.20.1-2.1.0.jar
irons_spellbooks-1.20.1-3.16.2.jar
Jade-1.20.1-Forge-11.13.3.jar
jei-1.20.1-forge-15.48.0.180.jar
journeymap-forge-1.20.1-6.0.0.jar
jei-1.20.1-forge-15.49.0.188.jar
journeymap-forge-1.20.1-6.0.1.jar
Krypton_Reno-forge-1.20.1-26.1.1-1.20.1.jar
lithostitched-forge-1.20.1-1.4.11.jar
locks_reforged-1.6.1.jar
@ -107,7 +110,7 @@ majruszs-difficulty-forge-1.20.1-1.9.10.jar
mcda-5.0.2.jar
mcdw-9.0.4.jar
minecraft-comes-alive-7.6.28-beta.10+1.20.1-universal.jar
modernfix-forge-5.27.66+mc1.20.1.jar
modernfix-forge-5.27.72+mc1.20.1.jar
Nullscape_1.20.x_v1.2.8.jar
Patchouli-1.20.1-85-FORGE.jar
perspatium-1.20.1-1.2.0.jar
@ -116,8 +119,8 @@ player-animation-lib-forge-1.0.2-rc1+1.20.jar
resourcefulconfig-forge-1.20.1-2.1.3.jar
resourcefullib-forge-1.20.1-2.1.29.jar
SimpleBackups-1.20.1-3.1.24.jar
sophisticatedbackpacks-1.20.1-3.24.63.2049.jar
sophisticatedcore-1.20.1-1.3.75.2231.jar
sophisticatedbackpacks-1.20.1-3.24.63.2057.jar
sophisticatedcore-1.20.1-1.3.78.2249.jar
spark-1.10.53-forge.jar
tectonic-3.0.17-forge-1.20.1.jar
tenshilib-1.20.1-1.7.6-forge.jar
@ -131,11 +134,12 @@ YungsBetterStrongholds-1.20-Forge-4.0.3.jar
---
## 3. Client Mod Manifest (50 Mods)
## 3. Client Mod Manifest (51 Mods)
This list contains all client-side required mods, including client performance engines (`Embeddium`, `Oculus`, `Rubidium Extra`) and server expansion dependencies:
Note: `Clumps` is intentionally excluded from the client manifest as experience orb merging is handled server-side in MC 1.17+.
```text
[forge]ctov-3.4.14.jar
ad_astra-forge-1.20.1-1.15.20.jar
ad_astra_extra_additions-1.20.1-1.1.1.jar
ad_astra_more_structures-1.0.1-forge.jar
@ -147,7 +151,6 @@ Botania-1.20.1-454-FORGE.jar
botarium-forge-1.20.1-2.3.4.jar
citadel-2.6.3-1.20.1.jar
cloth-config-11.1.136-forge.jar
Clumps-forge-1.20.1-12.0.0.4.jar
corpse-forge-1.20.1-1.0.23.jar
create-1.20.1-6.0.8.jar
create_ad_astra_recipes-1.0.0-forge-1.20.1.jar
@ -163,16 +166,17 @@ ImmersiveEngineering-1.20.1-10.2.0-183.jar
irons_lib-1.20.1-2.1.0.jar
irons_spellbooks-1.20.1-3.16.2.jar
Jade-1.20.1-Forge-11.13.3.jar
jei-1.20.1-forge-15.48.0.180.jar
journeymap-forge-1.20.1-6.0.0.jar
jei-1.20.1-forge-15.49.0.188.jar
journeymap-forge-1.20.1-6.0.1.jar
Krypton_Reno-forge-1.20.1-26.1.1-1.20.1.jar
lithostitched-forge-1.20.1-1.4.11.jar
locks_reforged-1.6.1.jar
majrusz-library-forge-1.20.1-7.0.8.jar
majruszs-difficulty-forge-1.20.1-1.9.10.jar
mcda-5.0.2.jar
mcdw-9.0.4.jar
minecraft-comes-alive-7.6.28-beta.10+1.20.1-universal.jar
modernfix-forge-5.27.66+mc1.20.1.jar
modernfix-forge-5.27.72+mc1.20.1.jar
oculus-mc1.20.1-1.8.0.jar
Patchouli-1.20.1-85-FORGE.jar
perspatium-1.20.1-1.2.0.jar
@ -181,8 +185,8 @@ player-animation-lib-forge-1.0.2-rc1+1.20.jar
resourcefulconfig-forge-1.20.1-2.1.3.jar
resourcefullib-forge-1.20.1-2.1.29.jar
rubidium-extra-0.5.4.4+mc1.20.1-build.131.jar
sophisticatedbackpacks-1.20.1-3.24.63.2049.jar
sophisticatedcore-1.20.1-1.3.75.2231.jar
sophisticatedbackpacks-1.20.1-3.24.63.2057.jar
sophisticatedcore-1.20.1-1.3.78.2249.jar
tenshilib-1.20.1-1.7.6-forge.jar
TUTORIAL_DISABLE-1.0.0.jar
voicechat-forge-1.20.1-2.6.22.jar
@ -192,12 +196,22 @@ voicechat-forge-1.20.1-2.6.22.jar
## 4. Instance Management & Mod RCON Commands
### Permissions Fix (Host Mount Access)
If Spark or other mods throw `AccessDeniedException` writing temporary files:
```bash
sudo chown -R 1000:1000 runtime/data/config/spark
chmod -R 775 runtime/data/config/spark
```
### Distant Horizons Chunk & LOD Pre-Generation
With `distantGeneratorMode = "FULL"` enabled in `DistantHorizons.toml`, DH generates both standard terrain chunks and Level of Detail (LOD) visual data simultaneously:
With `distantGeneratorMode = "INTERNAL_SERVER"` enabled in `DistantHorizons.toml`, DH generates both standard terrain chunks and Level of Detail (LOD) visual data natively:
```bash
# Set CPU load to BALANCED to prevent main thread starvation during pregen
docker exec -i mc_forge_server rcon-cli "dh config common.threadPreset BALANCED"
# Start pre-generation (250 chunks radius = 4,000 blocks around 0,0)
docker exec -i mc_forge_server rcon-cli "dh pregen start overworld 0 0 250"
docker exec -i mc_forge_server rcon-cli "dh pregen start minecraft:overworld 0 0 250"
# Check status
docker exec -i mc_forge_server rcon-cli "dh pregen status"

View file

@ -2,6 +2,8 @@
## Summary Matrix
> **Note on File Paths**: `runtime/data/config/...` on the host filesystem mounts directly to `/data/config/...` inside the `mc_forge_server` Docker container.
| Mod | Config File Path | Key Setting | Value | Purpose |
| :--- | :--- | :--- | :--- | :--- |
| **LTS Auth** | `runtime/data/config/lts_auth/messages.yml` | `timeout_kick` | `Authentication time has expired!` | Ingame auth, invulnerability lock & auto-kick |
@ -10,9 +12,9 @@
| **Improved Mobs** | `runtime/data/config/improvedmobs/common.toml` | `"Enable difficulty scaling"` | `false` | Disables time-based scaling & HUD banner |
| **Majrusz Difficulty** | `runtime/data/config/majruszsdifficulty.json` | `is_per_player_difficulty_enabled` | `true` | Isolated per-player milestone progression |
| **Create Addition** | `runtime/data/config/createaddition-common.toml` | `generator_efficiency` | `0.5` | Tech power generation rebalance |
| **Sophisticated Backpacks** | `runtime/data/config/sophisticatedbackpacks-common.toml` | `enabledItems` | Tier 3/4 upgrades = `false` | Cap portable storage capacity |
| **JourneyMap** | `runtime/data/journeymap/server/6.0/*.config` | `radarEnabled` | `"Disabled"` | Disable radar and wallhacks |
| **Distant Horizons** | `runtime/data/config/DistantHorizons.toml` | `distantGeneratorMode` | `"FULL"` | Pregenerate both vanilla chunks & LODs natively (`dh pregen start`) |
| **Sophisticated Core** | `runtime/data/config/sophisticatedcore-common.toml` | `enabledItems` | Tier 3/4 upgrades = `false` | Cap portable storage capacity |
| **JourneyMap** | `runtime/data/journeymap/server/6.0/*.config` | `radarEnabled` | `"Disabled"` | Server-enforced radar disablement |
| **Distant Horizons** | `runtime/data/config/DistantHorizons.toml` | `distantGeneratorMode` | `"INTERNAL_SERVER"` | Native DH pregenerator for vanilla chunks + LODs |
---
@ -51,11 +53,9 @@
}
```
### 4. Sophisticated Backpacks (`runtime/data/config/sophisticatedbackpacks-common.toml`)
### 4. Sophisticated Core (`runtime/data/config/sophisticatedcore-common.toml`)
```toml
[common]
chestLootEnabled = true
# Disable / enable any items here (disables their recipes)
enabledItems = [
"sophisticatedbackpacks:stack_upgrade_tier_3|false",
@ -82,9 +82,22 @@
}
```
### 6. Distant Horizons (`runtime/data/config/DistantHorizons.toml`)
```toml
[client.advanced.worldGenerator]
# Set to FULL to generate both vanilla chunks and LODs during server pregen (/dh pregen start)
distantGeneratorMode = "FULL"
### 6. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config` & `journeymap.server.default.config`)
```json
{
"radarEnabled": "Disabled",
"caveMappingEnabled": "Disabled",
"surfaceMappingEnabled": "Enabled"
}
```
### 7. Distant Horizons (`runtime/data/config/DistantHorizons.toml`)
```toml
[common.worldGenerator]
# Set to INTERNAL_SERVER to generate both vanilla chunks and LODs natively via (/dh pregen start)
distantGeneratorMode = "INTERNAL_SERVER"
[common.threads]
# Balanced preset ensures DH pregen does not starve main server thread on Forge
threadPreset = "BALANCED"
```

View file

@ -0,0 +1,10 @@
#Whether to log the dirt block on common setup
logDirtBlock = true
#A magic number
#Range: > 0
magicNumber = 42
#What you want the introduction message to be for the magic number
magicNumberIntroduction = "The magic number is... "
#A list of items to log on common setup.
items = ["minecraft:iron_ingot"]

View file

@ -0,0 +1,8 @@
# This is the configuration file for Canary.
# This file exists for debugging purposes and should not be configured otherwise.
# Before configuring anything, take a backup of the worlds that will be opened.
#
# You can find information on editing this file and all the available options here:
# https://github.com/AbdElAziz333/Canary/wiki/Configuration-File
#
# By default, this file will be empty except for this notice.

View file

@ -0,0 +1,8 @@
{
"version": 2,
"language": "en",
"continueOnRestart": false,
"forceLoadExistingChunks": false,
"silent": false,
"updateInterval": 1
}

View file

@ -0,0 +1,9 @@
world=minecraft:overworld
cancelled=false
center-x=0.0
center-z=0.0
radius=4000.0
shape=circle
pattern=region
chunks=16807
time=1231678

View file

@ -0,0 +1,40 @@
{
"disableLoginLimits": {
"desc:": "Should login packet size limits be disabled? Error:(IOException(\"Payload may not be larger than 1048576 bytes\")) default:true",
"disableLoginLimits": true
},
"disablePacketLimits": {
"desc:": "Should play packet size limits be disabled? Error:(Badly compressed packet) default:true",
"disablePacketLimits": true
},
"disableChatVerificationDisconnect": {
"desc:": "(Clientside) Disables players disconnecting on chat message verification problems,(enable debugPrintMessages to see the message causing issues). default:true",
"disableChatVerificationDisconnect": true
},
"debugPrintMessages": {
"desc:": "Enable addition debug logging for networking errors. default:false",
"debugPrintMessages": false
},
"logintimeout": {
"desc:": "Set the max login timeout in seconds. default = 120",
"logintimeout": 120
},
"disconnectTimeout": {
"desc:": "Set the ingame disconnect timeout for disconnecting players. Default = 60sec",
"disconnectTimeout": 60
},
"packetHistoryMinutes": {
"desc:": "Set the amount of minutes for which network packet history data is saved. Default = 5 minutes",
"packetHistoryMinutes": 5
},
"malformedtraffic": {
"desc:": "Detection and blocking of malformed and/or malicious traffic",
"enabled": true,
"proxies:": "Add your proxy IP to the whitelist below, if you're using one(e.g. velocity) to avoid blocking the proxy's ip. Format: [\"127.0.0.1\", \"128.0.01\"] without the \\ ",
"proxywhitelist": []
},
"showFullResourceLocationException": {
"desc:": "Enable to see the full log output for all resource location exceptions. Default = false",
"showFullResourceLocationException": false
}
}

View file

@ -0,0 +1,26 @@
{
"showCommandExecutionErrors": {
"desc:": "Whether to display errors during command execution: default:true",
"showCommandExecutionErrors": true
},
"debugChunkloadAttempts": {
"desc:": "Enables debug logging of chunks being forceloaded on serverthread by directly accessing an unloaded chunk, which stalls the server until the chunk finishes loading, incompatible with lithium and its forks: default:false",
"debugChunkloadAttempts": false
},
"skipErrorOnEntityLoad": {
"desc:": "Prevent crashes on entity loading: default:false",
"skipErrorOnEntityLoad": false
},
"logOffthreadEntityAdd": {
"desc:": "Entities should only be added on the server thread itself, cupboard fixes the crashes caused by mods violating that, this option enables the logging of those: default:true",
"logOffthreadEntityAdd": true
},
"forceHeapDumpOnOOM": {
"desc:": "Enables creating a heap dump automatically once the game crashes with an out of memory issue, use with care heapdumps take a lot of space. default:false",
"forceHeapDumpOnOOM": false
},
"displayConfigReload": {
"desc:": "Displays a chat message on the client on reloading a config file after changes were detected to the clients config file. default:true",
"displayConfigReload": true
}
}

View file

@ -0,0 +1,56 @@
[sophisticated_backpacks]
enableStealFromBackpacks = true
#Range: 1 ~ 50
backpackSearchRange = 10
enableStealFromPlacedBackpacks = true
#Range: 1 ~ 32
placedBackpackSearchRange = 16
stealAnyItem = false
[applied_energistics]
enableStealFromMEInterface = true
#Range: 1 ~ 32
meInterfaceSearchRange = 16
#Range: 0.0 ~ 1000.0
powerPerSteal = 10.0
stealAnyItem = false
[refined_storage]
enableStealFromRSInterface = true
#Range: 1 ~ 32
rsInterfaceSearchRange = 16
#Range: 0 ~ 1000
energyPerSteal = 10
stealAnyItem = false
[create]
enableStealFromBelt = true
#Range: 1 ~ 32
beltSearchRange = 16
stealAnyItem = true
#Range: 1 ~ 50
dropRangeMin = 5
#Range: 1 ~ 100
dropRangeMax = 15
#Range: 0 ~ 200
hoverTimeMin = 40
#Range: 0 ~ 400
hoverTimeMax = 80
[general]
#Range: 50 ~ 500
stealCooldownModifier = 100
prioritizePlayerInventory = true
#Range: 1 ~ 50
dropRangeMin = 5
#Range: 1 ~ 100
dropRangeMax = 15
[easter_eggs]
#Christmas Easter Egg - Seagulls wear Christmas hats during Christmas season (Dec 24-26)
#Enable Christmas hat for seagulls during Christmas season
enableChristmasHat = true
#Force Christmas hat to show regardless of date (for testing)
forceChristmasHat = false

View file

@ -0,0 +1,3 @@
{
"default_lang": "en_us"
}

View file

@ -1 +1,8 @@
[]
[
{
"uuid": "b12ce09e-5a4e-3a90-a23c-087c8c9d32e0",
"name": "JaniSoto",
"level": 4,
"bypassesPlayerLimit": false
}
]

View file

@ -1,5 +1,5 @@
#Minecraft server properties
#Tue Aug 11 14:49:07 UTC 2026
#Wed Aug 12 05:25:36 UTC 2026
allow-flight=true
allow-nether=true
broadcast-console-to-ops=true
@ -38,7 +38,7 @@ prevent-proxy-connections=false
pvp=true
query.port=25565
rate-limit=0
rcon.password=12eb66c41752972eb6ddfecd
rcon.password=ac285a169330d782975d159d
rcon.port=25575
require-resource-pack=false
resource-pack=

View file

@ -28,21 +28,23 @@ services:
# JVM Garbage Collection & Network Flags
JVM_OPTS: >-
-Dfml.readTimeout=180
-Dfml.loginTimeout=180
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=45
-XX:G1MixedGCCountTarget=4
-XX:G1HeapWastePercent=5
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:SurvivorRatio=8
-XX:MaxTenuringThreshold=1
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=15
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
volumes:
- ./data:/data