fix(config): synchronize runtime setup with modpack documentation
- Config: Disable unused Improved Mobs integrations (Scaling Health, PlayerEX, LevelZ) - Config: Enforce 'caveMapping: NONE' across all JourneyMap dimension configs - Permissions: Reset 'runtime/data/' ownership to 'ubuntu:ubuntu' (UID 1000) - Docs: Add ENFORCE_SECURE_PROFILE="FALSE" and compose working dir note to README.md - Docs: Update mod-configs.md with LTS Auth, Improved Mobs, Majrusz, and JourneyMap changes
This commit is contained in:
parent
78d2ffeb08
commit
550717ebfb
15 changed files with 64 additions and 104 deletions
|
|
@ -6,12 +6,14 @@
|
||||||
* **Minecraft Version**: `1.20.1`
|
* **Minecraft Version**: `1.20.1`
|
||||||
* **Mod Loader**: Forge (`47.4.10`)
|
* **Mod Loader**: Forge (`47.4.10`)
|
||||||
* **Java Runtime**: OpenJDK 17 (`itzg/minecraft-server:java17`)
|
* **Java Runtime**: OpenJDK 17 (`itzg/minecraft-server:java17`)
|
||||||
* **Process User**: Container UID `1000` / GID `1000`
|
* **Process User**: Container UID `1000` / GID `1000` (`ubuntu`)
|
||||||
|
|
||||||
> **JVM Flag Rule**: `-XX:+UnlockExperimentalVMOptions` must precede experimental flags in `JVM_OPTS` to avoid JVM start failure on OpenJDK 17.
|
> **JVM Flag Rule**: `-XX:+UnlockExperimentalVMOptions` must precede experimental flags in `JVM_OPTS` to avoid JVM start failure on OpenJDK 17.
|
||||||
|
|
||||||
### `docker-compose.yml` Reference (`runtime/docker-compose.yml`)
|
### `docker-compose.yml` Reference (`runtime/docker-compose.yml`)
|
||||||
|
|
||||||
|
> **Execution Note**: Always execute compose commands from within the `runtime/` directory (`cd runtime && docker compose up -d`) to ensure `./data` correctly maps to `runtime/data`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
mc:
|
mc:
|
||||||
|
|
@ -21,7 +23,6 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- "25565:25565"
|
- "25565:25565"
|
||||||
- "24454:24454/udp"
|
- "24454:24454/udp"
|
||||||
- "25575:25575"
|
|
||||||
environment:
|
environment:
|
||||||
EULA: "TRUE"
|
EULA: "TRUE"
|
||||||
TYPE: "FORGE"
|
TYPE: "FORGE"
|
||||||
|
|
@ -41,6 +42,7 @@ services:
|
||||||
MAX_PLAYERS: "15"
|
MAX_PLAYERS: "15"
|
||||||
DIFFICULTY: "hard"
|
DIFFICULTY: "hard"
|
||||||
ONLINE_MODE: "FALSE"
|
ONLINE_MODE: "FALSE"
|
||||||
|
ENFORCE_SECURE_PROFILE: "FALSE"
|
||||||
|
|
||||||
# JVM Garbage Collection & Network Flags
|
# JVM Garbage Collection & Network Flags
|
||||||
JVM_OPTS: >-
|
JVM_OPTS: >-
|
||||||
|
|
@ -66,6 +68,8 @@ services:
|
||||||
- ./data:/data
|
- ./data:/data
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **RCON Network Security Note**: RCON (`enable-rcon=true`, port `25575`) is enabled in `server.properties` for container-internal management (`docker exec -i mc_forge_server rcon-cli`). Port `25575` is intentionally omitted from the host `ports:` block in `docker-compose.yml` to prevent unauthorized external access.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 2. Server Mod Manifest (65 Mods)
|
## 2. Server Mod Manifest (65 Mods)
|
||||||
|
|
@ -212,7 +216,7 @@ voicechat-forge-1.20.1-2.6.22.jar
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4. Instance Management & Mod RCON Commands
|
## 4. Instance Management, Patch Compilation & RCON Workflows
|
||||||
|
|
||||||
### Permissions Fix (Host Mount Access)
|
### Permissions Fix (Host Mount Access)
|
||||||
If Spark or other mods throw `AccessDeniedException` writing temporary files:
|
If Spark or other mods throw `AccessDeniedException` writing temporary files:
|
||||||
|
|
@ -221,6 +225,22 @@ sudo chown -R 1000:1000 runtime/data/config/spark
|
||||||
chmod -R 775 runtime/data/config/spark
|
chmod -R 775 runtime/data/config/spark
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### In-House Auth Mod Patch Compilation (`patches/lts-auth/`)
|
||||||
|
To rebuild and hot-swap the custom authentication mod (`lts_auth-1.0.1+mc1.20.1.jar`) from source (`LtsAuthMod.java`, `LoginCommand.java`):
|
||||||
|
|
||||||
|
1. Ensure the container `mc_forge_server` is running.
|
||||||
|
2. Navigate to the patch directory and run the compilation script:
|
||||||
|
```bash
|
||||||
|
cd patches/lts-auth/
|
||||||
|
python3 build.py
|
||||||
|
```
|
||||||
|
3. Restart the server container to load the updated JAR:
|
||||||
|
```bash
|
||||||
|
docker restart mc_forge_server
|
||||||
|
```
|
||||||
|
|
||||||
|
> `build.py` uses the container's OpenJDK 17 `javac` compiler with classpath resolution against `/data/libraries` and `/data/mods`, repackaging the resulting `.class` files into `runtime/data/mods/lts_auth-1.0.1+mc1.20.1.jar`.
|
||||||
|
|
||||||
### World Pre-Generation (Chunky)
|
### World Pre-Generation (Chunky)
|
||||||
Use Chunky RCON commands to pre-generate chunks and avoid worldgen tick lag during gameplay:
|
Use Chunky RCON commands to pre-generate chunks and avoid worldgen tick lag during gameplay:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
|
||||||
import zipfile
|
|
||||||
from datetime import datetime
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
# --- CONFIGURATION ---
|
|
||||||
# Folders to include in the backup zip
|
|
||||||
INCLUDE_DIRS = [
|
|
||||||
"mods",
|
|
||||||
"config",
|
|
||||||
"kubejs",
|
|
||||||
"defaultconfigs",
|
|
||||||
"resourcepacks",
|
|
||||||
"shaderpacks",
|
|
||||||
"fancymenu_data", # Common layout mod folder
|
|
||||||
]
|
|
||||||
|
|
||||||
# Root files to include
|
|
||||||
INCLUDE_FILES = [
|
|
||||||
"options.txt",
|
|
||||||
"optionsshaders.txt",
|
|
||||||
"optionsof.txt",
|
|
||||||
]
|
|
||||||
|
|
||||||
def create_modpack_zip():
|
|
||||||
# Use current working directory where the script is executed
|
|
||||||
base_dir = Path.cwd()
|
|
||||||
|
|
||||||
# Generate timestamped filename
|
|
||||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
||||||
output_filename = f"Modpack_Export_{timestamp}.zip"
|
|
||||||
output_filepath = base_dir / output_filename
|
|
||||||
|
|
||||||
print("=========================================")
|
|
||||||
print(f"📦 Packaging Modpack from: {base_dir}")
|
|
||||||
print("=========================================\n")
|
|
||||||
|
|
||||||
files_added = 0
|
|
||||||
|
|
||||||
# Create ZIP using DEFLATED compression
|
|
||||||
with zipfile.ZipFile(output_filepath, 'w', zipfile.ZIP_DEFLATED) as zipf:
|
|
||||||
|
|
||||||
# 1. Process Folders
|
|
||||||
for folder_name in INCLUDE_DIRS:
|
|
||||||
folder_path = base_dir / folder_name
|
|
||||||
if folder_path.is_dir():
|
|
||||||
print(f" [+] Adding folder: {folder_name}/")
|
|
||||||
for root, dirs, files in os.walk(folder_path):
|
|
||||||
for file in files:
|
|
||||||
file_path = Path(root) / file
|
|
||||||
# Preserve relative path inside zip
|
|
||||||
arcname = file_path.relative_to(base_dir)
|
|
||||||
zipf.write(file_path, arcname)
|
|
||||||
files_added += 1
|
|
||||||
else:
|
|
||||||
print(f" [-] Skipping (folder not found): {folder_name}/")
|
|
||||||
|
|
||||||
print()
|
|
||||||
|
|
||||||
# 2. Process Files
|
|
||||||
for file_name in INCLUDE_FILES:
|
|
||||||
file_path = base_dir / file_name
|
|
||||||
if file_path.is_file():
|
|
||||||
print(f" [+] Adding file: {file_name}")
|
|
||||||
zipf.write(file_path, file_name)
|
|
||||||
files_added += 1
|
|
||||||
else:
|
|
||||||
print(f" [-] Skipping (file not found): {file_name}")
|
|
||||||
|
|
||||||
print("\n=========================================")
|
|
||||||
if files_added > 0:
|
|
||||||
file_size_mb = output_filepath.stat().st_size / (1024 * 1024)
|
|
||||||
print(f"✅ SUCCESS! Packaged {files_added} files.")
|
|
||||||
print(f"💾 Saved as: {output_filename} ({file_size_mb:.2f} MB)")
|
|
||||||
else:
|
|
||||||
print("⚠️ WARNING: No files found to package. Check your execution folder.")
|
|
||||||
output_filepath.unlink(missing_ok=True) # Remove empty zip
|
|
||||||
print("=========================================")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
create_modpack_zip()
|
|
||||||
|
|
@ -6,14 +6,14 @@
|
||||||
|
|
||||||
| Mod | Config File Path | Key Setting | Value | Purpose |
|
| Mod | Config File Path | Key Setting | Value | Purpose |
|
||||||
| :--- | :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- | :--- |
|
||||||
| **LTS Auth** | `runtime/data/config/lts_auth/messages.yml` | `timeout_kick` | Configured message | Ingame auth, invulnerability lock & auto-kick |
|
| **LTS Auth** | `runtime/data/config/lts_auth/messages.yml` | `timeout_kick` | Configured message | In-game auth, invulnerability lock & auto-kick (`players.json` credential store) |
|
||||||
| **Locks Reforged** | `runtime/data/config/locks-common.toml` | `"Lock Generation Chance"` | `1.0` | Controls world generation probability of locked containers |
|
| **Locks Reforged** | `runtime/data/config/locks-common.toml` | `"Enable Loot-Scaled Locks"` | `true` | Loot-value-based container lock tier selection |
|
||||||
| **Improved Mobs** | `runtime/data/config/improvedmobs/common.toml` | `"Enable difficulty scaling"` | `false` | Disables time-based difficulty scaling & HUD banner |
|
| **Improved Mobs** | `runtime/data/config/improvedmobs/common.toml` | `"Breaker Chance"` / `"Stealer Chance"` | `0.0` / `0.3` | Disables block breaking; item stealing from chests enabled (30%); unused mod integrations set to OFF |
|
||||||
| **Majrusz Difficulty** | `runtime/data/config/majruszsdifficulty.json` | `is_per_player_difficulty_enabled` | `true` | Isolated per-player milestone progression |
|
| **Majrusz Difficulty** | `runtime/data/config/majruszsdifficulty.json` | `is_per_player_difficulty_enabled` | `true` | Isolated per-player milestone progression (`normal`, `expert`, `master` stages) |
|
||||||
| **Create Addition** | `runtime/data/config/createaddition-common.toml` | `generator_efficiency` | `0.5` | Tech power generation rebalance |
|
| **Create Addition** | `runtime/data/config/createaddition-common.toml` | `[alternator].generator_efficiency` | `0.5` | Tech power generation rebalance |
|
||||||
| **Sophisticated Core** | `runtime/data/config/sophisticatedcore-common.toml` | `enabledItems` | Tier 3/4 upgrades = `false` | Cap portable storage capacity |
|
| **Sophisticated Core** | `runtime/data/config/sophisticatedcore-common.toml` | `enabledItems` | Tier 3/4 upgrades = `false` | Cap portable storage capacity |
|
||||||
| **AntiXray** | `runtime/data/config/antixray.toml` | `[overworld].engineMode` | `3` | Anti-xray tile entity & ore obfuscation |
|
| **AntiXray** | `runtime/data/config/antixray.toml` | `enabled` / `[overworld].engineMode` | `false` / `3` | Global default disabled (prevents space/orbit bugs); Overworld Mode 3 & Nether Mode 1 active |
|
||||||
| **JourneyMap** | `runtime/data/journeymap/server/6.0/*.config` | `radarEnabled` | `"Disabled"` | Server-enforced radar disablement |
|
| **JourneyMap** | `runtime/data/journeymap/server/6.0/` | `playerRadarEnabled` / `caveMapping` | `"false"` / `"NONE"` | Server-enforced entity radar restrictions (player, mob, animal, villager radars = false) & universe-wide cave mapping disabled |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -25,6 +25,10 @@
|
||||||
"Generation Enchant Chance" = 0.4
|
"Generation Enchant Chance" = 0.4
|
||||||
"Generated Locks" = ["locks:wood_lock", "locks:copper_lock", "locks:iron_lock", "locks:steel_lock", "locks:gold_lock", "locks:diamond_lock", "locks:netherite_lock"]
|
"Generated Locks" = ["locks:wood_lock", "locks:copper_lock", "locks:iron_lock", "locks:steel_lock", "locks:gold_lock", "locks:diamond_lock", "locks:netherite_lock"]
|
||||||
"Generated Lock Chances" = [3, 3, 3, 2, 2, 1, 1]
|
"Generated Lock Chances" = [3, 3, 3, 2, 2, 1, 1]
|
||||||
|
|
||||||
|
["Loot-Scaled Locks"]
|
||||||
|
"Enable Loot-Scaled Locks" = true
|
||||||
|
"Loot Value Tiers" = [3.0, 6.0, 10.0, 16.0, 24.0, 40.0, 60.0]
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Improved Mobs (`runtime/data/config/improvedmobs/common.toml`)
|
### 2. Improved Mobs (`runtime/data/config/improvedmobs/common.toml`)
|
||||||
|
|
@ -35,13 +39,19 @@
|
||||||
[ai]
|
[ai]
|
||||||
"Breaker Chance" = 0.0
|
"Breaker Chance" = 0.0
|
||||||
"Break BlockEntities" = false
|
"Break BlockEntities" = false
|
||||||
|
"Stealer Chance" = 0.3
|
||||||
|
|
||||||
|
[integration]
|
||||||
|
"Use Scaling Health Mod" = "OFF"
|
||||||
|
"Use Player EX Mod" = "OFF"
|
||||||
|
"Use LevelZ Mod" = "OFF"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Create Addition (`runtime/data/config/createaddition-common.toml`)
|
### 3. Create Addition (`runtime/data/config/createaddition-common.toml`)
|
||||||
```toml
|
```toml
|
||||||
[general]
|
[alternator]
|
||||||
# FE/t generator efficiency modifier
|
# Alternator efficiency relative to base conversion rate
|
||||||
# Range: 0.0 ~ 1.0
|
# Range: 0.01 ~ 1.0
|
||||||
generator_efficiency = 0.5
|
generator_efficiency = 0.5
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -61,6 +71,10 @@
|
||||||
"game_stages": {
|
"game_stages": {
|
||||||
"is_per_player_difficulty_enabled": true,
|
"is_per_player_difficulty_enabled": true,
|
||||||
"list": [
|
"list": [
|
||||||
|
{
|
||||||
|
"id": "normal",
|
||||||
|
"triggers": { "dimensions": [], "entities": [] }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "expert",
|
"id": "expert",
|
||||||
"triggers": { "dimensions": ["minecraft:the_nether"] }
|
"triggers": { "dimensions": ["minecraft:the_nether"] }
|
||||||
|
|
@ -76,6 +90,9 @@
|
||||||
|
|
||||||
### 6. AntiXray (`runtime/data/config/antixray.toml`)
|
### 6. AntiXray (`runtime/data/config/antixray.toml`)
|
||||||
```toml
|
```toml
|
||||||
|
# Global default fallback
|
||||||
|
enabled = false
|
||||||
|
|
||||||
[overworld]
|
[overworld]
|
||||||
enabled = true
|
enabled = true
|
||||||
engineMode = 3
|
engineMode = 3
|
||||||
|
|
@ -94,11 +111,15 @@ lavaObscures = true
|
||||||
hiddenBlocks = ["ancient_debris", "nether_quartz_ore", "nether_gold_ore", "gold_block", "gilded_blackstone"]
|
hiddenBlocks = ["ancient_debris", "nether_quartz_ore", "nether_gold_ore", "gold_block", "gilded_blackstone"]
|
||||||
```
|
```
|
||||||
|
|
||||||
### 7. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config` & `journeymap.server.default.config`)
|
### 7. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config`)
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"radarEnabled": "Disabled",
|
"surfaceMapping": "ALL",
|
||||||
"caveMappingEnabled": "Disabled",
|
"caveMapping": "NONE",
|
||||||
"surfaceMappingEnabled": "Enabled"
|
"radarEnabled": "ALL",
|
||||||
|
"playerRadarEnabled": "false",
|
||||||
|
"mobRadarEnabled": "false",
|
||||||
|
"animalRadarEnabled": "false",
|
||||||
|
"villagerRadarEnabled": "false"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,8 @@ if os.path.exists(JAR_HOST_PATH):
|
||||||
os.makedirs(target_dir, exist_ok=True)
|
os.makedirs(target_dir, exist_ok=True)
|
||||||
shutil.copyfile(filepath, os.path.join(target_dir, file))
|
shutil.copyfile(filepath, os.path.join(target_dir, file))
|
||||||
|
|
||||||
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get update >/dev/null 2>&1")
|
# run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get update >/dev/null 2>&1")
|
||||||
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get install -y openjdk-17-jdk-headless >/dev/null 2>&1")
|
# run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} apt-get install -y openjdk-17-jdk-headless >/dev/null 2>&1")
|
||||||
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} chmod -R 777 {TMP_CONTAINER_DIR}")
|
run_cmd(f"docker exec -u 0 -i {CONTAINER_NAME} chmod -R 777 {TMP_CONTAINER_DIR}")
|
||||||
|
|
||||||
compile_cmd = f'docker exec -i {CONTAINER_NAME} bash -c \'CP=$(find /data/libraries /data/mods -name "*.jar" | tr "\\n" ":"); javac -cp "$CP:{TMP_CONTAINER_DIR}" -d {TMP_CONTAINER_DIR} {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/LtsAuthMod.java {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/command/LoginCommand.java\''
|
compile_cmd = f'docker exec -i {CONTAINER_NAME} bash -c \'CP=$(find /data/libraries /data/mods -name "*.jar" | tr "\\n" ":"); javac -cp "$CP:{TMP_CONTAINER_DIR}" -d {TMP_CONTAINER_DIR} {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/LtsAuthMod.java {TMP_CONTAINER_DIR}/src/com/rtxbb/lts_auth/command/LoginCommand.java\''
|
||||||
|
|
|
||||||
0
instances/forge-1.20.1-survival/runtime/data/.forge-manifest.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/.forge-manifest.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/.local/share/resourcefullib/README.txt
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/.local/share/resourcefullib/README.txt
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/banned-ips.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/banned-ips.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/banned-players.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/banned-players.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/defaultconfigs/ftbchunks/ftbchunks-world.snbt
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/defaultconfigs/ftbchunks/ftbchunks-world.snbt
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/eula.txt
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/eula.txt
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/ops.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/ops.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/run.bat
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/run.bat
Normal file → Executable file
6
instances/forge-1.20.1-survival/runtime/data/server.properties
Normal file → Executable file
6
instances/forge-1.20.1-survival/runtime/data/server.properties
Normal file → Executable file
|
|
@ -1,5 +1,5 @@
|
||||||
#Minecraft server properties
|
#Minecraft server properties
|
||||||
#Sat Aug 15 06:56:57 UTC 2026
|
#Sat Aug 15 13:40:05 UTC 2026
|
||||||
allow-flight=true
|
allow-flight=true
|
||||||
allow-nether=true
|
allow-nether=true
|
||||||
broadcast-console-to-ops=true
|
broadcast-console-to-ops=true
|
||||||
|
|
@ -10,7 +10,7 @@ enable-jmx-monitoring=false
|
||||||
enable-query=false
|
enable-query=false
|
||||||
enable-rcon=true
|
enable-rcon=true
|
||||||
enable-status=true
|
enable-status=true
|
||||||
enforce-secure-profile=true
|
enforce-secure-profile=false
|
||||||
enforce-whitelist=false
|
enforce-whitelist=false
|
||||||
entity-broadcast-range-percentage=100
|
entity-broadcast-range-percentage=100
|
||||||
force-gamemode=false
|
force-gamemode=false
|
||||||
|
|
@ -38,7 +38,7 @@ prevent-proxy-connections=false
|
||||||
pvp=true
|
pvp=true
|
||||||
query.port=25565
|
query.port=25565
|
||||||
rate-limit=0
|
rate-limit=0
|
||||||
rcon.password=9e7f666fba721c3e4f6ac254
|
rcon.password=4ad253b0b1e9bc8442a15f30
|
||||||
rcon.port=25575
|
rcon.port=25575
|
||||||
require-resource-pack=false
|
require-resource-pack=false
|
||||||
resource-pack=
|
resource-pack=
|
||||||
|
|
|
||||||
0
instances/forge-1.20.1-survival/runtime/data/whitelist.json
Normal file → Executable file
0
instances/forge-1.20.1-survival/runtime/data/whitelist.json
Normal file → Executable file
|
|
@ -25,6 +25,7 @@ services:
|
||||||
MAX_PLAYERS: "15"
|
MAX_PLAYERS: "15"
|
||||||
DIFFICULTY: "hard"
|
DIFFICULTY: "hard"
|
||||||
ONLINE_MODE: "FALSE"
|
ONLINE_MODE: "FALSE"
|
||||||
|
ENFORCE_SECURE_PROFILE: "FALSE"
|
||||||
|
|
||||||
# JVM Garbage Collection & Network Flags
|
# JVM Garbage Collection & Network Flags
|
||||||
JVM_OPTS: >-
|
JVM_OPTS: >-
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue