Compare commits

..

No commits in common. "v1.0" and "main" have entirely different histories.
v1.0 ... main

308 changed files with 35362 additions and 344 deletions

68
.gitignore vendored
View file

@ -1,25 +1,12 @@
# =====================================================================
# MINECRAFT DOCKER & RUNTIME DATA (Volatile Server Artifacts)
# MINECRAFT VOLATILE RUNTIME ARTIFACTS & WORLD DATA
# =====================================================================
# World Data, Dimensions & Regional Files
**/data/world/
**/data/world_backup_*
# Logs & Crash Stack Traces
**/data/logs/
**/data/crash-reports/
*.log
*.log.gz
# Config & Mod Runtime Directories
**/data/config/
**/data/defaultconfigs/
**/data/local/
**/data/journeymap/
**/data/modernfix/
**/data/patchouli_books/
# Runtime Caches, Libraries & Temporary Files
**/data/.cache/
**/data/.local/
**/data/libraries/
@ -34,6 +21,7 @@
**/data/run.sh
**/data/run.bat
**/data/eula.txt
.env
# Dynamic User & State Tracking Files
**/data/usercache.json
@ -50,52 +38,66 @@
*.bak
# =====================================================================
# AUTOMODPACK GENERATED RUNTIME ARTIFACTS & SECRETS
# SENSITIVE CONFIGURATIONS & SERVER STATE
# =====================================================================
# AutoModpack generated TLS private keys & certificates (CRITICAL SECURITY)
**/data/automodpack/.private/
# Live server.properties containing sensitive credentials
**/data/server.properties
# AutoModpack dynamic runtime state & generated modpack payload manifest
# AutoModpack generated secrets & state
**/data/automodpack/.private/
**/data/automodpack/automodpack-client.json
**/data/automodpack/host-modpack/automodpack-content.json
# Volatile/frequently updated configs
**/config/packetfixer.properties
**/config/chunky/tasks/
# Patch build artifacts & JAR files
*.jar
_build_temp/
# =====================================================================
# MOD RUNTIME DATABASES, TEMP FILES & LIBRARIES
# MOD RUNTIME DATABASES & TEMP FILES INSIDE CONFIG/
# =====================================================================
# LuckPerms Auto-Downloaded Libraries & Database Files
**/data/config/luckperms/libs/
*.mv.db
**/data/config/luckperms/*.db
**/data/config/luckperms/*.mv.db
*.db
*.mv.db
*.sqlite
*.sqlite3
# Spark Profiler Temporary Output & Java Flight Recorder
**/data/config/spark/tmp/
**/data/config/spark/*.jfr
*.tmp
*.jfr
# =====================================================================
# BINARY MOD FILES & BUILD ARTIFACTS
# BINARY MOD FILES & BUILD ARTIFACTS (EXCLUDE ALL JARS)
# =====================================================================
# Server Mod JAR files (managed via download_mods.py / server mods directory)
**/data/mods/*.jar
# Compiled Java class files
*.jar
**/*.jar
*.class
# =====================================================================
# PYTHON & SYSTEM TEMPORARY ARTIFACTS
# SYSTEM TEMPORARY ARTIFACTS
# =====================================================================
# Python bytecode & virtual environments
__pycache__/
*.py[cod]
*$py.class
.venv/
env/
# OS & Editor Files
.DS_Store
Thumbs.db
*.swp
*.swo
*~
# Player authentication & profile runtime state
**/data/config/lts_auth/players.json
**/data/config/fiw-mods-api/profiles/
# Server Runtime Directories
**/data/defaultconfigs/
**/data/journeymap/
**/data/modernfix/
# Dev
todo

View file

@ -2,6 +2,12 @@
Mono-repo containing infrastructure baselines, operational runbooks, and instance profile specifications for containerized Minecraft servers.
## Active Server Instances
| Instance ID | Engine / Version | Status | Documentation & Player Guide |
| :--- | :--- | :--- | :--- |
| `forge-1.20.1-survival` | Forge 1.20.1 | Active | [Instance & Player Guide](instances/forge-1.20.1-survival/README.md) |
## Repository Architecture
```text
@ -9,30 +15,22 @@ Mono-repo containing infrastructure baselines, operational runbooks, and instanc
├── .gitignore
├── README.md
├── docs/
│ ├── infrastructure-base.md # Cloud VM, host OS, BBR, UFW, & Docker daemon baseline
│ └── operations-manual.md # Daily administration, RCON guide, log filtering, & clean state runbooks
│ ├── infrastructure-base.md # Cloud VM, host OS, network, and storage baseline
│ └── operations-manual.md # Administration, RCON commands, log filtering, and state runbooks
└── instances/
└── forge-1.20.1-survival/ # Instance profile (Forge 1.20.1)
├── README.md # Instance spec, Compose config, JVM flags, & Mod Manifest (62 mods)
├── mod-configs.md # Mod configuration matrix & validated TOML/JSON schemas
└── forge-1.20.1-survival/ # Forge 1.20.1 survival instance profile
├── README.md # Player joining guide, instance specs, and admin runbooks
├── mod-configs.md # Mod configuration matrix and validated schemas
├── patches/
│ └── lts-auth/ # LTS Auth source code & in-container build script
└── runtime/ # Active Docker runtime directory
├── docker-compose.yml # Production compose stack
└── data/ # Minecraft server data volume
│ ├── default-options/ # Custom Default Options keymapping modifier patch source & build scripts
│ └── lts-auth/ # Custom authentication mod source and build scripts
└── runtime/ # Active Docker deployment directory
├── console # Interactive admin console script
├── docker-compose.yml # Production Compose stack
└── data/ # Server data volume
```
## Quick Start (Deploying Instance)
## Quick Navigation
1. Navigate to the instance runtime folder:
```bash
cd instances/forge-1.20.1-survival/runtime
```
2. Start the container:
```bash
docker compose up -d
```
3. Stream startup logs:
```bash
docker logs -f mc_forge_server
```
* **Host Provisioning & Security**: See [Infrastructure Baseline](docs/infrastructure-base.md) for OCI configuration, UFW rules, and kernel network tuning.
* **Server Administration**: See [Operations Manual](docs/operations-manual.md) for maintenance workflows, backup management, and troubleshooting.

View file

@ -42,10 +42,10 @@ sudo sysctl --system
## 3. Host Ownership Safeguard
Ensure host user retains ownership of container data to prevent `PermissionError (EACCES)`:
Ensure host user retains ownership of repository files and container data volumes to prevent `PermissionError (EACCES)` or Git unlink failures:
```bash
sudo chown -R $USER:$USER ./data
chmod -R u+rwX ./data
sudo chown -R $USER:$USER ~/mcserver
chmod -R u+rwX ~/mcserver
```
---
@ -55,8 +55,8 @@ chmod -R u+rwX ./data
Oracle Cloud allows up to 200 GB of Always Free block volume storage per tenancy. To expand the default 47 GB boot volume on Ubuntu instances without reinstalling:
### Phase 1: OCI Console Allocation
1. In OCI Console, navigate to **Compute** $\rightarrow$ **Instances** $\rightarrow$ `[Your Instance]` $\rightarrow$ **Storage** / **Boot Volume**.
2. Select **View boot volume details** $\rightarrow$ **Edit**.
1. In OCI Console, navigate to **Compute** -> **Instances** -> `[Your Instance]` -> **Storage** / **Boot Volume**.
2. Select **View boot volume details** -> **Edit**.
3. Change volume size from `47 GB` up to `200 GB` and save.
### Phase 2: Live Kernel Rescan & Partition Growth (Ubuntu)
@ -77,3 +77,58 @@ sudo resize2fs /dev/sda1
# 4. Verify capacity (Target: ~190G+ available)
df -h /
```
---
## 5. Automated SSL/TLS Certificate Provisioning (AutoModpack)
AutoModpack uses TLS 1.3 to encrypt modpack distribution to clients. To prevent client "Certificate Verification" warnings, host-side Let's Encrypt certificates are issued via DNS-01 challenge and synced to AutoModpack in PKCS#8 format.
### Prerequisites
* **Domain DNS**: `mc.sotohome.top` configured on Cloudflare (DNS Only / Grey Cloud).
* **Cloudflare API Token**: Scoped with `Zone.DNS` edit permissions for `sotohome.top`.
### Package Installation
```bash
sudo apt update && sudo apt install -y certbot python3-certbot-dns-cloudflare
```
### Credentials & Issuance
1. Save token to restricted host path `/etc/letsencrypt/cloudflare.ini`:
```ini
dns_cloudflare_api_token = <YOUR_CLOUDFLARE_API_TOKEN>
```
2. Restrict file permissions:
```bash
sudo chmod 600 /etc/letsencrypt/cloudflare.ini
```
3. Issue Let's Encrypt certificate:
```bash
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d mc.sotohome.top \
--non-interactive --agree-tos -m jgsc00@gmail.com
```
### AutoModpack Certificate Sync & PKCS#8 Conversion
AutoModpack requires keys in **PKCS#8 PEM format** placed inside `runtime/data/automodpack/.private/`:
```bash
sudo openssl pkcs8 -topk8 -nocrypt \
-in /etc/letsencrypt/live/mc.sotohome.top/privkey.pem \
-out /tmp/key.pem
sudo cp /etc/letsencrypt/live/mc.sotohome.top/fullchain.pem \
~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/.private/cert.crt
sudo cp /tmp/key.pem \
~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/.private/key.pem
sudo rm /tmp/key.pem
sudo chown -R opc:opc ~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/.private/
sudo chmod 600 ~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/.private/cert.crt
sudo chmod 600 ~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/.private/key.pem
```
### Automatic Renewal Deploy Hook
Certbot executes `/etc/letsencrypt/renewal-hooks/deploy/automodpack.sh` on 60-day auto-renewals to convert keys, update AutoModpack, and restart `mc_forge_server`.

View file

@ -14,13 +14,17 @@ When performing world resets or maintenance, classify directories according to t
| Category | Directory / File Path | Purpose | Action on Reset |
| :--- | :--- | :--- | :--- |
| **Immutable** | `data/config/` | Mod configuration files (except player auth store) | **Preserve** |
| **Tracked in Git** | `data/config/` | Mod configuration files (backed up to repository) | **Preserve** |
| **Tracked in Git** | `data/automodpack/host-modpack/main/config/defaultoptions/` | Master client default options (`options.txt`) & keybindings (`keybindings.txt`) | **Preserve** |
| **Immutable** | `data/mods/` | Server mod JAR files | **Preserve** |
| **Immutable** | `data/automodpack/` | AutoModpack configuration & client host payload | **Preserve** |
| **Immutable** | `data/server.properties` | Generated server settings | **Preserve** |
| **Immutable** | `data/eula.txt` | EULA agreement file | **Preserve** |
| **GitIgnored Secret** | `data/server.properties` | Generated server settings (contains RCON password) | Rebuilt on boot |
| **GitIgnored Secret** | `.env` | Container environment variables | **Preserve** |
| **GitIgnored Secret** | `data/automodpack/.private/` | CA-signed TLS certificates (`cert.crt`, `key.pem`) | **Preserve** |
| **GitIgnored Runtime** | `data/config/lts_auth/players.json` | LTS Auth player account credentials | Delete on full reset |
| **GitIgnored Runtime** | `data/config/fiw-mods-api/profiles/` | FIW anti-cheat player profiles | Delete on full reset |
| **Volatile** | `data/world/` | Dynamic terrain & player data | Delete to reset seed |
| **Volatile** | `data/config/lts_auth/players.json` | LTS Auth player account credentials | Delete on full reset |
| **Volatile** | `data/logs/` | Server console log files | Safe to purge |
| **Volatile** | `data/crash-reports/` | Crash stack traces | Safe to purge |
| **Volatile** | `data/simplebackups/` | World backup archives | Store or purge |
@ -31,6 +35,18 @@ When performing world resets or maintenance, classify directories according to t
## 3. Lifecycle & Reset Workflows
### Basic Container Controls
```bash
# Start server container
docker start $INSTANCE_NAME
# Gracefully stop server container
docker stop $INSTANCE_NAME
# Restart server container
docker restart $INSTANCE_NAME
```
### Clean World Reset (Preserving Configs & Mods)
```bash
docker stop $INSTANCE_NAME
@ -49,43 +65,65 @@ docker start $INSTANCE_NAME
### Full Nuclear Server Reset
```bash
docker compose down
rm -rf data/world data/logs/* data/crash-reports/* data/.cache data/modernfix/structureCacheV1 data/usercache.json data/banned-players.json data/banned-ips.json data/ops.json data/config/lts_auth/players.json
rm -rf data/world data/logs/* data/crash-reports/* data/.cache data/modernfix/structureCacheV1 data/usercache.json data/banned-players.json data/banned-ips.json data/ops.json data/config/lts_auth/players.json data/config/fiw-mods-api/profiles/
docker compose up -d
```
### Host File Ownership Recovery
Reclaim ownership if Git operations or container permissions hit `Permission denied`:
```bash
sudo chown -R $USER:$USER ./data
chmod -R u+rwX ./data
sudo chown -R $USER:$USER ~/mcserver
chmod -R u+rwX ~/mcserver
```
---
## 4. Diagnostics & Telemetry
### Log Filter Pipeline (Errors & Warnings)
### Container Status & Resource Usage
```bash
docker logs $INSTANCE_NAME 2>&1 | grep -iE "ERROR|WARN|Exception|Fatal|Failed|Caused by" | tail -n 60
# Check container uptime & port mapping
docker ps -f "name=$INSTANCE_NAME" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# Check real-time CPU & memory utilization
docker stats $INSTANCE_NAME --no-stream
```
### Health & Container Status Check
### Log Inspection Pipeline
```bash
docker ps -f "name=$INSTANCE_NAME" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# Live log tailing (last 100 lines + follow)
docker logs -f --tail 100 $INSTANCE_NAME
# Filtered log pipeline (Errors, Warnings, Exceptions & Failures)
docker logs $INSTANCE_NAME 2>&1 | grep -iE "ERROR|WARN|Exception|Fatal|Failed|Caused by" | tail -n 60
# Search logs for a specific keyword or mod name
docker logs $INSTANCE_NAME 2>&1 | grep -i "<keyword>"
```
---
## 5. Universal RCON Command Reference
## 5. Administration & Console Tools
> **Note**: For instance-specific mod commands (e.g., Distant Horizons pre-generation or FLAN claim reloads), refer to the specific instance's `README.md`.
### Interactive Console Dashboard (`runtime/console`)
Launch the interactive tmux dashboard (live log tail + interactive RCON command prompt):
```bash
cd instances/forge-1.20.1-survival/runtime
./console
```
* **Top Pane**: Live container log output (`docker logs -f`).
* **Bottom Pane**: Interactive RCON shell (`MC>`).
* **Detach**: Press `Ctrl+B`, then `D`.
### Performance Profiling (spark)
### Universal RCON Commands
#### Performance Profiling (spark)
```bash
docker exec -i $INSTANCE_NAME rcon-cli "spark profiler --timeout 30"
docker exec -i $INSTANCE_NAME rcon-cli "spark healthreport"
```
### Moderation & Player Control
#### Moderation & Player Control
```bash
docker exec -i $INSTANCE_NAME rcon-cli "whitelist add <player>"
docker exec -i $INSTANCE_NAME rcon-cli "whitelist remove <player>"

View file

@ -1,18 +1,42 @@
# Instance Specification: Forge 1.20.1 Survival Modpack
## 1. Overview & Compose Profile
> **PLAYER QUICK JOIN**: If you are a player joining the server, follow **Section 1** below. You do not need to read the technical administrator documentation below Section 1.
---
## 1. Player Quick Join Guide
### Client Requirements
* **Minecraft Version**: `1.20.1`
* **Mod Loader**: Forge (`47.4.10`)
* **Required Client Mod**: `automodpack-mc1.20.1-forge-4.0.6.jar`
### Installation Steps
1. Download **`automodpack-mc1.20.1-forge-4.0.6.jar`** from the **[Releases](https://git.sotohome.top/JaniSoto/mcserver/releases)** section of this repository.
2. Place the `.jar` file into your local `.minecraft/mods/` directory.
3. Launch Minecraft with your Forge 1.20.1 profile.
4. Select **Multiplayer** and connect to **`mc.sotohome.top`**.
*(AutoModpack automatically synchronizes required client mods, configuration files, default option presets, shader presets, and JourneyMap UI preferences upon connection).*
---
> **END OF PLAYER GUIDE — YOU ARE ALL SET!**
> Everything below this line is for **Server Administration & Infrastructure Maintenance**. Players can stop reading here and enjoy the game!
---
## 2. Overview & Compose Profile
* **Instance ID**: `forge-1.20.1-survival`
* **Container Name**: `mc_forge_server`
* **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` (`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 Garbage Collection flags in `JVM_OPTS` to prevent JVM initialization failures on OpenJDK 17.
### `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`.
### Production `docker-compose.yml` (`runtime/docker-compose.yml`)
```yaml
services:
@ -59,6 +83,12 @@ services:
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-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
@ -70,7 +100,7 @@ services:
---
## 2. Server Mod Manifest (66 Mods)
## 3. Server Mod Manifest (77 Mods)
```text
[forge]ctov-3.4.14.jar
@ -80,7 +110,10 @@ ad_astra_more_structures-1.0.1-forge.jar
alexsmobs-1.22.9.jar
antixray-forge-1.4.6+1.20.1.jar
architectury-9.2.14-forge.jar
ars_n_spells-3.0.1.jar
ars_nouveau-1.20.1-4.12.7-all.jar
automodpack-mc1.20.1-forge-4.0.6.jar
blue_skies-1.20.1-1.3.31.jar
Botania-1.20.1-454-FORGE.jar
botarium-forge-1.20.1-2.3.4.jar
Chunky-1.3.146.jar
@ -91,7 +124,9 @@ collective-1.20.1-8.39.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
create_repair-forge-1.20.1-1.3.0-all.jar
createaddition-1.20.1-1.3.3.jar
CreativeCore_FORGE_v2.12.39_mc1.20.1.jar
curios-forge-5.14.1+1.20.1.jar
decocraft-3.0.4-1.20.1-slim.jar
differentdoors-forge-1.20.1-1.1.0.jar
@ -125,15 +160,21 @@ Patchouli-1.20.1-85-FORGE.jar
perspatium-1.20.1-1.2.0.jar
planets+-bv1.7.5-1.20x.jar
player-animation-lib-forge-1.0.2-rc1+1.20.jar
PlayerRevive_FORGE_v2.0.31_mc1.20.1.jar
PuzzlesLib-v8.1.33-1.20.1-Forge.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.2057.jar
sophisticatedcore-1.20.1-1.3.78.2249.jar
spark-1.10.53-forge.jar
structure_gel-1.20.1-2.16.2.jar
table_top_craft-forge-1.20.1-6.1.2.jar
tectonic-3.0.17-forge-1.20.1.jar
tenshilib-1.20.1-1.7.6-forge.jar
Terralith_1.20.x_v2.5.4.jar
twilightforest-1.20.1-4.3.2508-universal.jar
VisualWorkbench-v8.0.1-1.20.1-Forge.jar
voicechat-forge-1.20.1-2.6.22.jar
YungsApi-1.20-Forge-4.0.6.jar
YungsBetterDungeons-1.20-Forge-4.0.4.jar
@ -143,15 +184,15 @@ YungsBetterStrongholds-1.20-Forge-4.0.3.jar
---
## 3. Client Distribution Architecture (AutoModpack)
## 4. Client Distribution Architecture (AutoModpack & Default Options)
Client modpack synchronization is fully automated via **AutoModpack**. Clients do not need manual mod downloads or multi-file setup zips.
Client modpack synchronization is fully automated via **AutoModpack**.
### Minimal Client Requirement
* Minecraft **1.20.1** with **Forge** loader.
* **1 Mod**: `automodpack-mc1.20.1-forge-4.0.6.jar` in `.minecraft/mods/`.
### Client-Only Host Payload (16 Mods)
### Client-Only Host Payload (19 Mods)
Located in `runtime/data/automodpack/host-modpack/main/mods/` on the server and pushed to clients automatically:
```text
@ -160,10 +201,13 @@ BetterPingDisplay-1.20.1-1.1.jar
Connector-1.0.0-beta.49+1.20.1.jar
CreativeCore_FORGE_v2.12.39_mc1.20.1.jar
FTB-Teams-Offline-Enabler-forge-1.20.1-1.0.0.jar
InvMove-0.9.3+1.20.1-Forge.jar
PresenceFootsteps-1.20.1-1.9.1-beta.1.jar
TUTORIAL_DISABLE-1.0.0.jar
balm-forge-1.20.1-7.3.42.jar
configured-forge-1.20.1-2.2.3.jar
continuity-3.0.0+1.20.1.forge.jar
defaultoptions-forge-1.20.1-18.0.5.jar
embeddium-0.3.31+mc1.20.1.jar
entity_model_features-3.2.4-1.20.1-forge.jar
entity_texture_features_1.20.1-forge-7.1.jar
@ -177,34 +221,69 @@ sound-physics-remastered-forge-1.20.1-1.4.10.jar
Explicitly excluded from syncing to clients via `syncedFiles` in `automodpack-server.json`:
`SimpleBackups`, `spark`, `antixray`, `doubledoors`, `Clumps`, `collective`, `lts_auth`, `improvedmobs`.
### Forced Client Files
Automatically written to standard client paths upon connection (`forceCopyFilesToStandardLocation`):
* `/options.txt` (Master FOV, VSync, graphics, keybinds, and active resource pack array).
* `/servers.dat` (Pre-configured server list pointing to `mc.sotohome.top`).
* `/config/**` (Mod configurations, including `oculus.properties` for BSL shaders).
### Synchronized Client Files & Options Enforcement
* `/config/**` (Synchronizes mod configurations, BSL shader settings, and default options template).
* `/journeymap/config/**` (Synchronizes master minimap layout, interface scale, theme, and font presets on initial join without overwriting personal waypoints or map tiles).
* **Options & Keybindings Enforcement**:
1. `keybindings.txt` (`/config/defaultoptions/keybindings.txt`): Enforces master keybindings (Sneak=Shift, Sprint=Ctrl, FTB Chunks minimap unbound, Ars Nouveau quick casts/radial) dynamically on game boot via patched `Default Options`.
2. `options.txt` (`automodpack/host-modpack/main/options.txt`): Delivers initial graphics settings (fullscreen, 260 FPS limit, render distance 8), audio levels (Master 60%, Music 25%, Hostile 75%, Neutral/Ambient 40%), FOV, and active resource packs on first launch via **AutoModpack**. Configured under `"allowEditsInFiles"` in `automodpack-server.json` so player sound, graphics, and FOV customizations persist between sessions without being overwritten on boot.
---
## 4. Operational Runbooks & Administration
## 5. Operational Runbooks & Administration
### Updating Client Master Defaults (`options.txt` / `servers.dat`)
From your local client instance terminal:
### Updating Client Master Defaults (`options.txt`)
To update master client options or default keybind templates:
```bash
cd ~/.local/share/PrismLauncher/instances/<instance_name>/minecraft
scp options.txt servers.dat ubuntu@sotoserver:~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/host-modpack/main/
# Push master options and keybindings to payload directories
# 1. Extract and push updated default keybindings
grep "^key_" options.txt > keybindings.txt
scp keybindings.txt ubuntu@sotoserver:~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/host-modpack/main/config/defaultoptions/
# 2. Extract and push updated first-launch options (stripped of keybinds) to AutoModpack host payload
grep -v "^key_" options.txt > options_clean.txt
scp options_clean.txt ubuntu@sotoserver:~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/host-modpack/main/options.txt
# Restart server container to update payload manifest
ssh sotoserver "docker restart mc_forge_server"
```
### In-House Auth Mod Patch Compilation (`patches/lts-auth/`)
### Interactive Console Dashboard (`runtime/console`)
To launch live container logs alongside an interactive RCON prompt:
```bash
cd instances/forge-1.20.1-survival/runtime
./console
```
* **Top Window**: Live log stream (`docker logs -f mc_forge_server`).
* **Bottom Window**: Interactive RCON shell (`MC>`).
* **Detach**: Press `Ctrl+B`, then `D` (leaves container running in background).
### In-House Auth Mod 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:
1. Ensure container `mc_forge_server` is running.
2. Execute the compilation script:
```bash
cd patches/lts-auth/
cd instances/forge-1.20.1-survival/patches/lts-auth/
python3 build.py
```
3. Restart the server container to load the updated JAR:
3. Restart the server container to load the compiled JAR:
```bash
docker restart mc_forge_server
```
### Default Options Keymapping Patch Compilation (`patches/default-options/`)
To rebuild and hot-swap the custom keybindings modifier patch (`defaultoptions-forge-1.20.1-18.0.5.jar`) from source (`KeyMappingDefaultsHandler.java`):
1. Ensure container `mc_forge_server` is running.
2. Execute the compilation script:
```bash
cd instances/forge-1.20.1-survival/patches/default-options/
python3 build.py
```
3. Restart the server container to push the patched JAR via AutoModpack:
```bash
docker restart mc_forge_server
```

View file

@ -1,4 +1,4 @@
# Mod Configurations Matrix & Schemas
# Mod Configuration Matrix & Schemas
## Summary Matrix
@ -6,15 +6,16 @@
| Mod | Config File Path | Key Setting | Value | Purpose |
| :--- | :--- | :--- | :--- | :--- |
| **AutoModpack** | `runtime/data/automodpack/automodpack-server.json` | `validateSecrets` / `forceCopyFilesToStandardLocation` | `false` / `["/mods/*.jar", "/servers.dat", "/options.txt", "/config/**"]` | Dynamic modpack delivery, trusted instant join, and forced client option sync |
| **LTS Auth** | `runtime/data/config/lts_auth/messages.yml` | `timeout_kick` | Configured message | In-game auth, invulnerability lock & auto-kick (`players.json` credential store) |
| **AutoModpack** | `runtime/data/automodpack/automodpack-server.json` | `syncedFiles` / `allowEditsInFiles` | `["/mods/*.jar", "/journeymap/config/**", "/config/**", "/options.txt"]` | Dynamic modpack delivery, trusted instant join, JourneyMap UI settings sync, and initial `options.txt` synchronization with local edit persistence |
| **Default Options** | `runtime/data/automodpack/host-modpack/main/config/defaultoptions/` | `keybindings.txt` | Keybinds (`key_key.*`) | Enforces master keybindings dynamically on game boot (patched to support modifiers like `:ALT` and `:CONTROL`) |
| **LTS Auth** | `runtime/data/config/lts_auth/messages.yml` | `timeout_kick` | Configured message | In-game auth, invulnerability lock & auto-kick (`players.json` credential store ignored by Git) |
| **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` | `"Breaker Chance"` / `"Stealer Chance"` | `0.0` / `0.3` | Disables block breaking; item stealing enabled (30%); JAR excluded from client sync (`!/mods/improvedmobs*.jar`) |
| **Majrusz Difficulty** | `runtime/data/config/majruszsdifficulty.json` | `is_per_player_difficulty_enabled` | `true` | Isolated per-player milestone progression (`normal`, `expert`, `master` stages) |
| **Majrusz Difficulty** | `runtime/data/config/majruszsdifficulty.json` | `triggers.dimensions` | Nether, Twilight Forest, Everbright, Everdawn | Isolated per-player milestone progression (`normal`, `expert`, `master` stages) triggered across dimensions |
| **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 |
| **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/` | `playerRadarEnabled` / `caveMapping` | `"false"` / `"NONE"` | Server-enforced entity radar restrictions & universe-wide cave mapping disabled |
| **AntiXray** | `runtime/data/config/antixray.toml` | `enabled` / `[overworld].engineMode` | `false` / `3` | Global default disabled; Overworld Mode 3 & Nether Mode 1 active |
| **JourneyMap** | `runtime/data/journeymap/server/6.0/` | `playerRadarEnabled` / `caveMapping` | `"false"` / `"NONE"` | Server-enforced entity radar restrictions & cave mapping disabled |
---
@ -29,11 +30,13 @@
"generateModpackOnStart": true,
"syncedFiles": [
"/mods/*.jar",
"/journeymap/config/**",
"!/mods/SimpleBackups*.jar",
"/shaderpacks/*",
"!/config/luckperms/libs/**",
"!/mods/improvedmobs*.jar",
"!/mods/spark*.jar",
"/options.txt",
"!/mods/antixray*.jar",
"!/mods/doubledoors*.jar",
"!/mods/Clumps*.jar",
@ -47,25 +50,330 @@
],
"allowEditsInFiles": [
"/config/**",
"/options.txt"
"/options.txt",
"/journeymap/config/**"
],
"forceCopyFilesToStandardLocation": [
"/mods/*.jar",
"/servers.dat",
"/options.txt",
"/config/**"
],
"nonModpackFilesToDelete": {},
"autoExcludeServerSideMods": true,
"autoExcludeUnnecessaryFiles": true,
"requireAutoModpackOnClient": true,
"nagUnModdedClients": true,
"nagMessage": "This server provides dedicated modpack through AutoModpack!",
"nagClickableMessage": "Click here to get the AutoModpack!",
"nagClickableLink": "https://modrinth.com/project/automodpack",
"bindAddress": "",
"bindPort": -1,
"addressToSend": "",
"portToSend": -1,
"disableInternalTLS": false,
"requireMagicPackets": false,
"updateIpsOnEveryStart": false,
"bandwidthLimit": 0,
"validateSecrets": false,
"secretLifetime": 336,
"selfUpdater": false,
"acceptedLoaders": [
"forge"
]
}
```
### 2. Locks Reforged (`runtime/data/config/locks-common.toml`)
### 2. AutoModpack First-Launch Options Template (`runtime/data/automodpack/host-modpack/main/options.txt`)
```text
version:3465
autoJump:false
operatorItemsTab:false
autoSuggestions:true
chatColors:true
chatLinks:true
chatLinksPrompt:true
enableVsync:true
entityShadows:true
forceUnicodeFont:false
discrete_mouse_scroll:false
invertYMouse:false
realmsNotifications:true
reducedDebugInfo:false
showSubtitles:false
directionalAudio:false
touchscreen:false
fullscreen:true
bobView:true
toggleCrouch:false
toggleSprint:false
darkMojangStudiosBackground:false
hideLightningFlashes:false
mouseSensitivity:0.5
fov:1.0
screenEffectScale:1.0
fovEffectScale:1.0
darknessEffectScale:1.0
glintSpeed:0.5
glintStrength:0.75
damageTiltStrength:1.0
highContrast:false
gamma:1.0
renderDistance:8
simulationDistance:6
entityDistanceScaling:1.0
guiScale:4
particles:0
maxFps:260
graphicsMode:1
ao:true
prioritizeChunkUpdates:0
biomeBlendRadius:2
renderClouds:"true"
resourcePacks:["mod_resources","vanilla","file/Faithful 64x - Beta 9.zip","file/-1.21.2 Fresh Moves v3.1 (With Animated Eyes).zip","file/FreshAnimations_v1.10.4.zip","black_icons","fabric"]
incompatibleResourcePacks:[]
lastServer:
lang:en_us
soundDevice:""
chatVisibility:0
chatOpacity:1.0
chatLineSpacing:0.0
textBackgroundOpacity:0.5
backgroundForChatOnly:true
hideServerAddress:false
advancedItemTooltips:false
pauseOnLostFocus:true
overrideWidth:0
overrideHeight:0
chatHeightFocused:1.0
chatDelay:0.0
chatHeightUnfocused:0.4375
chatScale:1.0
chatWidth:1.0
notificationDisplayTime:1.0
mipmapLevels:4
useNativeTransport:true
mainHand:"right"
attackIndicator:1
narrator:0
tutorialStep:none
mouseWheelSensitivity:1.0
rawMouseInput:true
glDebugVerbosity:1
skipMultiplayerWarning:true
skipRealms32bitWarning:false
hideMatchedNames:true
joinedFirstServer:true
hideBundleTutorial:false
syncChunkWrites:false
showAutosaveIndicator:true
allowServerListing:true
onlyShowSecureChat:false
panoramaScrollSpeed:1.0
telemetryOptInExtra:false
onboardAccessibility:false
soundCategory_master:0.6
soundCategory_music:0.25
soundCategory_record:1.0
soundCategory_weather:1.0
soundCategory_block:1.0
soundCategory_hostile:0.75
soundCategory_neutral:0.4
soundCategory_player:1.0
soundCategory_ambient:0.4
soundCategory_voice:1.0
modelPart_cape:true
modelPart_jacket:true
modelPart_left_sleeve:true
modelPart_right_sleeve:true
modelPart_left_pants_leg:true
modelPart_right_pants_leg:true
modelPart_hat:true
```
### 3. Default Options Keybindings Template (`runtime/data/automodpack/host-modpack/main/config/defaultoptions/keybindings.txt`)
```text
key_key.attack:key.mouse.left
key_key.use:key.mouse.right
key_key.forward:key.keyboard.w
key_key.left:key.keyboard.a
key_key.back:key.keyboard.s
key_key.right:key.keyboard.d
key_key.jump:key.keyboard.space
key_key.sneak:key.keyboard.left.shift
key_key.sprint:key.keyboard.left.control
key_key.drop:key.keyboard.q
key_key.inventory:key.keyboard.e
key_key.chat:key.keyboard.t
key_key.playerlist:key.keyboard.tab
key_key.pickItem:key.mouse.middle
key_key.command:key.keyboard.slash
key_key.socialInteractions:key.keyboard.p
key_key.screenshot:key.keyboard.f2
key_key.togglePerspective:key.keyboard.f5
key_key.smoothCamera:key.keyboard.unknown
key_key.fullscreen:key.keyboard.f11
key_key.spectatorOutlines:key.keyboard.unknown
key_key.swapOffhand:key.keyboard.f
key_key.saveToolbarActivator:key.keyboard.c
key_key.loadToolbarActivator:key.keyboard.x
key_key.advancements:key.keyboard.l
key_key.hotbar.1:key.keyboard.1
key_key.hotbar.2:key.keyboard.2
key_key.hotbar.3:key.keyboard.3
key_key.hotbar.4:key.keyboard.4
key_key.hotbar.5:key.keyboard.5
key_key.hotbar.6:key.keyboard.6
key_key.hotbar.7:key.keyboard.7
key_key.hotbar.8:key.keyboard.8
key_key.hotbar.9:key.keyboard.9
key_key.sophisticatedcore.sort:key.mouse.middle
key_key.sophisticatedcore.transfer_to_storage:key.keyboard.left.bracket
key_key.sophisticatedcore.transfer_to_inventory:key.keyboard.right.bracket
key_key.modernfix.config:key.keyboard.unknown
key_key.sophisticatedbackpacks.open_backpack:key.keyboard.b
key_key.sophisticatedbackpacks.inventory_interaction:key.keyboard.c
key_key.sophisticatedbackpacks.tool_swap:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_1:key.keyboard.z:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_2:key.keyboard.x:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_3:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_4:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_5:key.keyboard.unknown
key_key.corpse.death_history:key.keyboard.u:CONTROL
key_key.botania_corporea_request:key.keyboard.c
key_key.curios.open.desc:key.keyboard.g
key_iris.keybind.reload:key.keyboard.unknown
key_iris.keybind.toggleShaders:key.keyboard.k
key_iris.keybind.shaderPackSelection:key.keyboard.o:CONTROL
key_key.ftbteams.open_gui:key.keyboard.unknown
key_key.ftbchunks.map:key.keyboard.unknown
key_key.ftbchunks.toggle_minimap:key.keyboard.unknown
key_key.ftbchunks.claim_manager:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomIn:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomOut:key.keyboard.unknown
key_key.ftbchunks.add_waypoint:key.keyboard.unknown
key_key.ftbchunks.waypoint_manager:key.keyboard.unknown
key_key.mca.skin_library:key.keyboard.unknown
key_key.jei.showRecipe2:key.mouse.left
key_key.jei.showBookmarkTooltipFeatures:key.keyboard.left.control
key_key.jei.transferRecipeBookmark:key.mouse.left:SHIFT
key_key.jei.previousSearch:key.keyboard.up
key_key.jei.showRecipe:key.keyboard.r
key_key.jei.nextRecipePage:key.keyboard.page.down
key_key.jei.bookmark:key.keyboard.a
key_key.jei.maxTransferRecipeBookmark:key.mouse.left:CONTROL
key_key.jei.nextSearch:key.keyboard.down
key_key.jei.recipeBack:key.keyboard.backspace
key_key.jei.quickMove:key.mouse.left:SHIFT
key_key.jei.cheatItemStack2:key.mouse.middle
key_key.jei.toggleWildcardHideIngredient:key.mouse.right:CONTROL
key_key.jei.clearSearchBar:key.mouse.right
key_key.jei.toggleHideIngredient:key.mouse.left:CONTROL
key_key.jei.previousPage:key.keyboard.unknown
key_key.jei.cheatOneItem:key.mouse.left
key_key.jei.nextPage:key.keyboard.unknown
key_key.jei.pauseRecipeCycling:key.keyboard.left.shift
key_key.jei.cheatItemStack:key.mouse.left:SHIFT
key_key.jei.focusSearch:key.keyboard.f:CONTROL
key_key.jei.nextCategory:key.keyboard.page.down:SHIFT
key_key.jei.closeRecipeGui:key.keyboard.escape
key_key.jei.toggleBookmarkOverlay:key.keyboard.unknown
key_key.jei.previousCategory:key.keyboard.page.up:SHIFT
key_key.jei.previousRecipePage:key.keyboard.page.up
key_key.jei.showUses2:key.mouse.right
key_key.jei.showUses:key.keyboard.u
key_key.jei.toggleCheatModeConfigButton:key.mouse.left:CONTROL
key_key.jei.toggleEditMode:key.keyboard.unknown
key_key.jei.copy.recipe.id:key.keyboard.unknown
key_key.jei.shareToChat:key.keyboard.unknown
key_key.jei.cheatOneItem2:key.mouse.right
key_key.jei.toggleCheatMode:key.keyboard.unknown
key_key.jei.toggleOverlay:key.keyboard.unknown
key_key.journeymap.minimap_preset:key.keyboard.backslash
key_key.journeymap.toggle_entity_names:key.keyboard.g
key_key.journeymap.toggle_render_waypoints_map:key.keyboard.unknown
key_key.journeymap.fullscreen.south:key.keyboard.down
key_key.journeymap.zoom_in:key.keyboard.equal
key_key.journeymap.fullscreen.north:key.keyboard.up
key_key.journeymap.fullscreen_waypoints:key.keyboard.n
key_key.journeymap.toggle_render_waypoints_world:key.keyboard.unknown
key_key.journeymap.fullscreen.east:key.keyboard.right
key_key.journeymap.zoom_out:key.keyboard.minus
key_key.journeymap.create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.disable_buttons:key.keyboard.unknown
key_key.journeymap.minimap_type:key.keyboard.left.bracket
key_key.journeymap.fullscreen_create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.west:key.keyboard.left
key_key.journeymap.toggle_waypoints:key.keyboard.unknown
key_key.journeymap.fullscreen_chat_position:key.keyboard.c
key_key.journeymap.map_toggle_alt:key.keyboard.j
key_key.journeymap.toggle_render_waypoints:key.keyboard.unknown
key_key.journeymap.minimap_toggle_alt:key.keyboard.j:CONTROL
key_key.journeymap.fullscreen_options:key.keyboard.o
key_key.journeymap.fullscreen_follow_player:key.keyboard.f
key_key.push_to_talk:key.keyboard.unknown
key_key.whisper:key.keyboard.unknown
key_key.mute_microphone:key.keyboard.m:ALT
key_key.disable_voice_chat:key.keyboard.unknown
key_key.hide_icons:key.keyboard.unknown
key_key.voice_chat:key.keyboard.v
key_key.voice_chat_settings:key.keyboard.unknown
key_key.voice_chat_group:key.keyboard.g:ALT
key_key.voice_chat_toggle_recording:key.keyboard.unknown
key_key.voice_chat_adjust_volumes:key.keyboard.unknown
key_key.immersiveengineering.magnetEquip:key.keyboard.s
key_key.immersiveengineering.railgunZoom:key.mouse.middle
key_key.immersiveengineering.chemthrowerSwitch:key.keyboard.unknown
key_key.jade.config:key.keyboard.keypad.0
key_key.jade.show_overlay:key.keyboard.keypad.1
key_key.jade.toggle_liquid:key.keyboard.keypad.2
key_key.jade.show_recipes:key.keyboard.keypad.3
key_key.jade.show_uses:key.keyboard.keypad.4
key_key.jade.narrate:key.keyboard.keypad.5
key_key.jade.show_details:key.keyboard.left.shift
key_key.ponder.ponder:key.keyboard.w
key_create.keyinfo.toolmenu:key.keyboard.left.alt
key_create.keyinfo.toolbelt:key.keyboard.left.alt
key_create.keyinfo.rotate_menu:key.keyboard.unknown
key_key.irons_spellbooks.spell_wheel:key.keyboard.r
key_key.irons_spellbooks.spell_wheel_toggle:key.keyboard.unknown
key_key.irons_spellbooks.spellbook_cast:key.keyboard.z
key_key.irons_spellbooks.spell_bar_modifier:key.keyboard.left.shift
key_key.irons_spellbooks.spell_quick_cast_1:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_2:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_3:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_4:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_5:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_6:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_7:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_8:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_9:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_10:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_11:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_12:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_13:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_14:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_15:key.keyboard.unknown
key_key.presencefootsteps.settings:key.keyboard.f10
key_key.ad_astra.toggle_suit_flight:key.keyboard.h
key_key.ad_astra.open_radio:key.keyboard.r:ALT
key_key.ars_nouveau.open_book:key.keyboard.b:ALT
key_key.ars_nouveau.selection_hud:key.keyboard.r:ALT
key_key.ars_nouveau.qc1:key.keyboard.1:ALT
key_key.ars_nouveau.qc2:key.keyboard.2:ALT
key_key.ars_nouveau.qc3:key.keyboard.3:ALT
key_key.ars_nouveau.qc4:key.keyboard.4:ALT
key_key.ars_nouveau.qc5:key.keyboard.5:ALT
key_key.ars_nouveau.qc6:key.keyboard.unknown
key_key.ars_nouveau.qc7:key.keyboard.unknown
key_key.ars_nouveau.qc8:key.keyboard.unknown
key_key.ars_nouveau.qc9:key.keyboard.unknown
key_key.ars_nouveau.qc10:key.keyboard.unknown
key_key.ars_nouveau.next_slot:key.keyboard.unknown
key_key.ars_nouveau.previous_slot:key.keyboard.unknown
key_key.ars_nouveau.head_curio_hotkey:key.keyboard.unknown
key_key.ars_nouveau.familiar_toggle:key.keyboard.unknown
```
### 4. Locks Reforged (`runtime/data/config/locks-common.toml`)
```toml
"Lock Generation Chance" = 1.0
"Generation Enchant Chance" = 0.4
@ -77,7 +385,7 @@
"Loot Value Tiers" = [3.0, 6.0, 10.0, 16.0, 24.0, 40.0, 60.0]
```
### 3. Improved Mobs (`runtime/data/config/improvedmobs/common.toml`)
### 5. Improved Mobs (`runtime/data/config/improvedmobs/common.toml`)
```toml
[general]
"Enable difficulty scaling" = false
@ -93,7 +401,7 @@
"Use LevelZ Mod" = "OFF"
```
### 4. Create Addition (`runtime/data/config/createaddition-common.toml`)
### 6. Create Addition (`runtime/data/config/createaddition-common.toml`)
```toml
[alternator]
# Alternator efficiency relative to base conversion rate
@ -101,7 +409,7 @@
generator_efficiency = 0.5
```
### 5. Sophisticated Core (`runtime/data/config/sophisticatedcore-common.toml`)
### 7. Sophisticated Core (`runtime/data/config/sophisticatedcore-common.toml`)
```toml
[common]
# Disable / enable any items here (disables their recipes)
@ -111,7 +419,7 @@
]
```
### 6. Majrusz's Progressive Difficulty (`runtime/data/config/majruszsdifficulty.json`)
### 8. Majrusz's Progressive Difficulty (`runtime/data/config/majruszsdifficulty.json`)
```json
{
"game_stages": {
@ -123,7 +431,14 @@
},
{
"id": "expert",
"triggers": { "dimensions": ["minecraft:the_nether"] }
"triggers": {
"dimensions": [
"minecraft:the_nether",
"twilightforest:twilight_forest",
"blue_skies:everbright",
"blue_skies:everdawn"
]
}
},
{
"id": "master",
@ -134,7 +449,7 @@
}
```
### 7. AntiXray (`runtime/data/config/antixray.toml`)
### 9. AntiXray (`runtime/data/config/antixray.toml`)
```toml
# Global default fallback
enabled = false
@ -157,7 +472,494 @@ lavaObscures = true
hiddenBlocks = ["ancient_debris", "nether_quartz_ore", "nether_gold_ore", "gold_block", "gilded_blackstone"]
```
### 8. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config`)
### 10. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config`)
```json
{
"surfaceMapping": "ALL",
"caveMapping": "NONE",
"radarEnabled": "ALL",
"playerRadarEnabled": "false",
"mobRadarEnabled": "false",
"animalRadarEnabled": "false",
"villagerRadarEnabled": "false"
}
```
Outputting File 2 content with zero conversation.# Mod Configuration Matrix & Schemas
## 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 |
| :--- | :--- | :--- | :--- | :--- |
| **AutoModpack** | `runtime/data/automodpack/automodpack-server.json` | `syncedFiles` / `allowEditsInFiles` | `["/mods/*.jar", "/journeymap/config/**", "/config/**", "/options.txt"]` | Dynamic modpack delivery, trusted instant join, JourneyMap UI settings sync, and initial `options.txt` synchronization with local edit persistence |
| **Default Options** | `runtime/data/automodpack/host-modpack/main/config/defaultoptions/` | `keybindings.txt` | Keybinds (`key_key.*`) | Enforces master keybindings dynamically on game boot (patched to support modifiers like `:ALT` and `:CONTROL`) |
| **LTS Auth** | `runtime/data/config/lts_auth/messages.yml` | `timeout_kick` | Configured message | In-game auth, invulnerability lock & auto-kick (`players.json` credential store ignored by Git) |
| **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` | `"Breaker Chance"` / `"Stealer Chance"` | `0.0` / `0.3` | Disables block breaking; item stealing enabled (30%); JAR excluded from client sync (`!/mods/improvedmobs*.jar`) |
| **Majrusz Difficulty** | `runtime/data/config/majruszsdifficulty.json` | `triggers.dimensions` | Nether, Twilight Forest, Everbright, Everdawn | Isolated per-player milestone progression (`normal`, `expert`, `master` stages) triggered across dimensions |
| **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 |
| **AntiXray** | `runtime/data/config/antixray.toml` | `enabled` / `[overworld].engineMode` | `false` / `3` | Global default disabled; Overworld Mode 3 & Nether Mode 1 active |
| **JourneyMap** | `runtime/data/journeymap/server/6.0/` | `playerRadarEnabled` / `caveMapping` | `"false"` / `"NONE"` | Server-enforced entity radar restrictions & cave mapping disabled |
---
## Validated Configuration Code Snippets
### 1. AutoModpack (`runtime/data/automodpack/automodpack-server.json`)
```json
{
"DO_NOT_CHANGE_IT": 2,
"modpackName": "MC SotoHome",
"modpackHost": true,
"generateModpackOnStart": true,
"syncedFiles": [
"/mods/*.jar",
"/journeymap/config/**",
"!/mods/SimpleBackups*.jar",
"/shaderpacks/*",
"!/config/luckperms/libs/**",
"!/mods/improvedmobs*.jar",
"!/mods/spark*.jar",
"/options.txt",
"!/mods/antixray*.jar",
"!/mods/doubledoors*.jar",
"!/mods/Clumps*.jar",
"!/mods/collective*.jar",
"!/config/antixray.toml",
"!/mods/lts_auth*.jar",
"/resourcepacks/*",
"/config/**",
"!/config/simplebackups-common.toml",
"!/config/spark/**"
],
"allowEditsInFiles": [
"/config/**",
"/options.txt",
"/journeymap/config/**"
],
"forceCopyFilesToStandardLocation": [
"/mods/*.jar",
"/config/**"
],
"nonModpackFilesToDelete": {},
"autoExcludeServerSideMods": true,
"autoExcludeUnnecessaryFiles": true,
"requireAutoModpackOnClient": true,
"nagUnModdedClients": true,
"nagMessage": "This server provides dedicated modpack through AutoModpack!",
"nagClickableMessage": "Click here to get the AutoModpack!",
"nagClickableLink": "https://modrinth.com/project/automodpack",
"bindAddress": "",
"bindPort": -1,
"addressToSend": "",
"portToSend": -1,
"disableInternalTLS": false,
"requireMagicPackets": false,
"updateIpsOnEveryStart": false,
"bandwidthLimit": 0,
"validateSecrets": false,
"secretLifetime": 336,
"selfUpdater": false,
"acceptedLoaders": [
"forge"
]
}
```
### 2. AutoModpack First-Launch Options Template (`runtime/data/automodpack/host-modpack/main/options.txt`)
```text
version:3465
autoJump:false
operatorItemsTab:false
autoSuggestions:true
chatColors:true
chatLinks:true
chatLinksPrompt:true
enableVsync:true
entityShadows:true
forceUnicodeFont:false
discrete_mouse_scroll:false
invertYMouse:false
realmsNotifications:true
reducedDebugInfo:false
showSubtitles:false
directionalAudio:false
touchscreen:false
fullscreen:true
bobView:true
toggleCrouch:false
toggleSprint:false
darkMojangStudiosBackground:false
hideLightningFlashes:false
mouseSensitivity:0.5
fov:1.0
screenEffectScale:1.0
fovEffectScale:1.0
darknessEffectScale:1.0
glintSpeed:0.5
glintStrength:0.75
damageTiltStrength:1.0
highContrast:false
gamma:1.0
renderDistance:8
simulationDistance:6
entityDistanceScaling:1.0
guiScale:4
particles:0
maxFps:260
graphicsMode:1
ao:true
prioritizeChunkUpdates:0
biomeBlendRadius:2
renderClouds:"true"
resourcePacks:["mod_resources","vanilla","file/Faithful 64x - Beta 9.zip","file/-1.21.2 Fresh Moves v3.1 (With Animated Eyes).zip","file/FreshAnimations_v1.10.4.zip","black_icons","fabric"]
incompatibleResourcePacks:[]
lastServer:
lang:en_us
soundDevice:""
chatVisibility:0
chatOpacity:1.0
chatLineSpacing:0.0
textBackgroundOpacity:0.5
backgroundForChatOnly:true
hideServerAddress:false
advancedItemTooltips:false
pauseOnLostFocus:true
overrideWidth:0
overrideHeight:0
chatHeightFocused:1.0
chatDelay:0.0
chatHeightUnfocused:0.4375
chatScale:1.0
chatWidth:1.0
notificationDisplayTime:1.0
mipmapLevels:4
useNativeTransport:true
mainHand:"right"
attackIndicator:1
narrator:0
tutorialStep:none
mouseWheelSensitivity:1.0
rawMouseInput:true
glDebugVerbosity:1
skipMultiplayerWarning:true
skipRealms32bitWarning:false
hideMatchedNames:true
joinedFirstServer:true
hideBundleTutorial:false
syncChunkWrites:false
showAutosaveIndicator:true
allowServerListing:true
onlyShowSecureChat:false
panoramaScrollSpeed:1.0
telemetryOptInExtra:false
onboardAccessibility:false
soundCategory_master:0.6
soundCategory_music:0.25
soundCategory_record:1.0
soundCategory_weather:1.0
soundCategory_block:1.0
soundCategory_hostile:0.75
soundCategory_neutral:0.4
soundCategory_player:1.0
soundCategory_ambient:0.4
soundCategory_voice:1.0
modelPart_cape:true
modelPart_jacket:true
modelPart_left_sleeve:true
modelPart_right_sleeve:true
modelPart_left_pants_leg:true
modelPart_right_pants_leg:true
modelPart_hat:true
```
### 3. Default Options Keybindings Template (`runtime/data/automodpack/host-modpack/main/config/defaultoptions/keybindings.txt`)
```text
key_key.attack:key.mouse.left
key_key.use:key.mouse.right
key_key.forward:key.keyboard.w
key_key.left:key.keyboard.a
key_key.back:key.keyboard.s
key_key.right:key.keyboard.d
key_key.jump:key.keyboard.space
key_key.sneak:key.keyboard.left.shift
key_key.sprint:key.keyboard.left.control
key_key.drop:key.keyboard.q
key_key.inventory:key.keyboard.e
key_key.chat:key.keyboard.t
key_key.playerlist:key.keyboard.tab
key_key.pickItem:key.mouse.middle
key_key.command:key.keyboard.slash
key_key.socialInteractions:key.keyboard.p
key_key.screenshot:key.keyboard.f2
key_key.togglePerspective:key.keyboard.f5
key_key.smoothCamera:key.keyboard.unknown
key_key.fullscreen:key.keyboard.f11
key_key.spectatorOutlines:key.keyboard.unknown
key_key.swapOffhand:key.keyboard.f
key_key.saveToolbarActivator:key.keyboard.c
key_key.loadToolbarActivator:key.keyboard.x
key_key.advancements:key.keyboard.l
key_key.hotbar.1:key.keyboard.1
key_key.hotbar.2:key.keyboard.2
key_key.hotbar.3:key.keyboard.3
key_key.hotbar.4:key.keyboard.4
key_key.hotbar.5:key.keyboard.5
key_key.hotbar.6:key.keyboard.6
key_key.hotbar.7:key.keyboard.7
key_key.hotbar.8:key.keyboard.8
key_key.hotbar.9:key.keyboard.9
key_key.sophisticatedcore.sort:key.mouse.middle
key_key.sophisticatedcore.transfer_to_storage:key.keyboard.left.bracket
key_key.sophisticatedcore.transfer_to_inventory:key.keyboard.right.bracket
key_key.modernfix.config:key.keyboard.unknown
key_key.sophisticatedbackpacks.open_backpack:key.keyboard.b
key_key.sophisticatedbackpacks.inventory_interaction:key.keyboard.c
key_key.sophisticatedbackpacks.tool_swap:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_1:key.keyboard.z:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_2:key.keyboard.x:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_3:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_4:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_5:key.keyboard.unknown
key_key.corpse.death_history:key.keyboard.u:CONTROL
key_key.botania_corporea_request:key.keyboard.c
key_key.curios.open.desc:key.keyboard.g
key_iris.keybind.reload:key.keyboard.unknown
key_iris.keybind.toggleShaders:key.keyboard.k
key_iris.keybind.shaderPackSelection:key.keyboard.o:CONTROL
key_key.ftbteams.open_gui:key.keyboard.unknown
key_key.ftbchunks.map:key.keyboard.unknown
key_key.ftbchunks.toggle_minimap:key.keyboard.unknown
key_key.ftbchunks.claim_manager:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomIn:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomOut:key.keyboard.unknown
key_key.ftbchunks.add_waypoint:key.keyboard.unknown
key_key.ftbchunks.waypoint_manager:key.keyboard.unknown
key_key.mca.skin_library:key.keyboard.unknown
key_key.jei.showRecipe2:key.mouse.left
key_key.jei.showBookmarkTooltipFeatures:key.keyboard.left.control
key_key.jei.transferRecipeBookmark:key.mouse.left:SHIFT
key_key.jei.previousSearch:key.keyboard.up
key_key.jei.showRecipe:key.keyboard.r
key_key.jei.nextRecipePage:key.keyboard.page.down
key_key.jei.bookmark:key.keyboard.a
key_key.jei.maxTransferRecipeBookmark:key.mouse.left:CONTROL
key_key.jei.nextSearch:key.keyboard.down
key_key.jei.recipeBack:key.keyboard.backspace
key_key.jei.quickMove:key.mouse.left:SHIFT
key_key.jei.cheatItemStack2:key.mouse.middle
key_key.jei.toggleWildcardHideIngredient:key.mouse.right:CONTROL
key_key.jei.clearSearchBar:key.mouse.right
key_key.jei.toggleHideIngredient:key.mouse.left:CONTROL
key_key.jei.previousPage:key.keyboard.unknown
key_key.jei.cheatOneItem:key.mouse.left
key_key.jei.nextPage:key.keyboard.unknown
key_key.jei.pauseRecipeCycling:key.keyboard.left.shift
key_key.jei.cheatItemStack:key.mouse.left:SHIFT
key_key.jei.focusSearch:key.keyboard.f:CONTROL
key_key.jei.nextCategory:key.keyboard.page.down:SHIFT
key_key.jei.closeRecipeGui:key.keyboard.escape
key_key.jei.toggleBookmarkOverlay:key.keyboard.unknown
key_key.jei.previousCategory:key.keyboard.page.up:SHIFT
key_key.jei.previousRecipePage:key.keyboard.page.up
key_key.jei.showUses2:key.mouse.right
key_key.jei.showUses:key.keyboard.u
key_key.jei.toggleCheatModeConfigButton:key.mouse.left:CONTROL
key_key.jei.toggleEditMode:key.keyboard.unknown
key_key.jei.copy.recipe.id:key.keyboard.unknown
key_key.jei.shareToChat:key.keyboard.unknown
key_key.jei.cheatOneItem2:key.mouse.right
key_key.jei.toggleCheatMode:key.keyboard.unknown
key_key.jei.toggleOverlay:key.keyboard.unknown
key_key.journeymap.minimap_preset:key.keyboard.backslash
key_key.journeymap.toggle_entity_names:key.keyboard.g
key_key.journeymap.toggle_render_waypoints_map:key.keyboard.unknown
key_key.journeymap.fullscreen.south:key.keyboard.down
key_key.journeymap.zoom_in:key.keyboard.equal
key_key.journeymap.fullscreen.north:key.keyboard.up
key_key.journeymap.fullscreen_waypoints:key.keyboard.n
key_key.journeymap.toggle_render_waypoints_world:key.keyboard.unknown
key_key.journeymap.fullscreen.east:key.keyboard.right
key_key.journeymap.zoom_out:key.keyboard.minus
key_key.journeymap.create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.disable_buttons:key.keyboard.unknown
key_key.journeymap.minimap_type:key.keyboard.left.bracket
key_key.journeymap.fullscreen_create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.west:key.keyboard.left
key_key.journeymap.toggle_waypoints:key.keyboard.unknown
key_key.journeymap.fullscreen_chat_position:key.keyboard.c
key_key.journeymap.map_toggle_alt:key.keyboard.j
key_key.journeymap.toggle_render_waypoints:key.keyboard.unknown
key_key.journeymap.minimap_toggle_alt:key.keyboard.j:CONTROL
key_key.journeymap.fullscreen_options:key.keyboard.o
key_key.journeymap.fullscreen_follow_player:key.keyboard.f
key_key.push_to_talk:key.keyboard.unknown
key_key.whisper:key.keyboard.unknown
key_key.mute_microphone:key.keyboard.m:ALT
key_key.disable_voice_chat:key.keyboard.unknown
key_key.hide_icons:key.keyboard.unknown
key_key.voice_chat:key.keyboard.v
key_key.voice_chat_settings:key.keyboard.unknown
key_key.voice_chat_group:key.keyboard.g:ALT
key_key.voice_chat_toggle_recording:key.keyboard.unknown
key_key.voice_chat_adjust_volumes:key.keyboard.unknown
key_key.immersiveengineering.magnetEquip:key.keyboard.s
key_key.immersiveengineering.railgunZoom:key.mouse.middle
key_key.immersiveengineering.chemthrowerSwitch:key.keyboard.unknown
key_key.jade.config:key.keyboard.keypad.0
key_key.jade.show_overlay:key.keyboard.keypad.1
key_key.jade.toggle_liquid:key.keyboard.keypad.2
key_key.jade.show_recipes:key.keyboard.keypad.3
key_key.jade.show_uses:key.keyboard.keypad.4
key_key.jade.narrate:key.keyboard.keypad.5
key_key.jade.show_details:key.keyboard.left.shift
key_key.ponder.ponder:key.keyboard.w
key_create.keyinfo.toolmenu:key.keyboard.left.alt
key_create.keyinfo.toolbelt:key.keyboard.left.alt
key_create.keyinfo.rotate_menu:key.keyboard.unknown
key_key.irons_spellbooks.spell_wheel:key.keyboard.r
key_key.irons_spellbooks.spell_wheel_toggle:key.keyboard.unknown
key_key.irons_spellbooks.spellbook_cast:key.keyboard.z
key_key.irons_spellbooks.spell_bar_modifier:key.keyboard.left.shift
key_key.irons_spellbooks.spell_quick_cast_1:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_2:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_3:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_4:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_5:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_6:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_7:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_8:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_9:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_10:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_11:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_12:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_13:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_14:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_15:key.keyboard.unknown
key_key.presencefootsteps.settings:key.keyboard.f10
key_key.ad_astra.toggle_suit_flight:key.keyboard.h
key_key.ad_astra.open_radio:key.keyboard.r:ALT
key_key.ars_nouveau.open_book:key.keyboard.b:ALT
key_key.ars_nouveau.selection_hud:key.keyboard.r:ALT
key_key.ars_nouveau.qc1:key.keyboard.1:ALT
key_key.ars_nouveau.qc2:key.keyboard.2:ALT
key_key.ars_nouveau.qc3:key.keyboard.3:ALT
key_key.ars_nouveau.qc4:key.keyboard.4:ALT
key_key.ars_nouveau.qc5:key.keyboard.5:ALT
key_key.ars_nouveau.qc6:key.keyboard.unknown
key_key.ars_nouveau.qc7:key.keyboard.unknown
key_key.ars_nouveau.qc8:key.keyboard.unknown
key_key.ars_nouveau.qc9:key.keyboard.unknown
key_key.ars_nouveau.qc10:key.keyboard.unknown
key_key.ars_nouveau.next_slot:key.keyboard.unknown
key_key.ars_nouveau.previous_slot:key.keyboard.unknown
key_key.ars_nouveau.head_curio_hotkey:key.keyboard.unknown
key_key.ars_nouveau.familiar_toggle:key.keyboard.unknown
```
### 4. Locks Reforged (`runtime/data/config/locks-common.toml`)
```toml
"Lock Generation Chance" = 1.0
"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 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]
```
### 5. Improved Mobs (`runtime/data/config/improvedmobs/common.toml`)
```toml
[general]
"Enable difficulty scaling" = false
[ai]
"Breaker Chance" = 0.0
"Break BlockEntities" = false
"Stealer Chance" = 0.3
[integration]
"Use Scaling Health Mod" = "OFF"
"Use Player EX Mod" = "OFF"
"Use LevelZ Mod" = "OFF"
```
### 6. Create Addition (`runtime/data/config/createaddition-common.toml`)
```toml
[alternator]
# Alternator efficiency relative to base conversion rate
# Range: 0.01 ~ 1.0
generator_efficiency = 0.5
```
### 7. Sophisticated Core (`runtime/data/config/sophisticatedcore-common.toml`)
```toml
[common]
# Disable / enable any items here (disables their recipes)
enabledItems = [
"sophisticatedbackpacks:stack_upgrade_tier_3|false",
"sophisticatedbackpacks:stack_upgrade_tier_4|false"
]
```
### 8. Majrusz's Progressive Difficulty (`runtime/data/config/majruszsdifficulty.json`)
```json
{
"game_stages": {
"is_per_player_difficulty_enabled": true,
"list": [
{
"id": "normal",
"triggers": { "dimensions": [], "entities": [] }
},
{
"id": "expert",
"triggers": {
"dimensions": [
"minecraft:the_nether",
"twilightforest:twilight_forest",
"blue_skies:everbright",
"blue_skies:everdawn"
]
}
},
{
"id": "master",
"triggers": { "dimensions": ["minecraft:the_end"] }
}
]
}
}
```
### 9. AntiXray (`runtime/data/config/antixray.toml`)
```toml
# Global default fallback
enabled = false
[overworld]
enabled = true
engineMode = 3
maxBlockHeight = 256
updateRadius = 2
lavaObscures = false
hiddenBlocks = ["#forge:ores", "raw_copper_block", "raw_iron_block", "raw_gold_block"]
replacementBlocks = ["stone", "deepslate", "andesite", "calcite", "diorite", "dirt", "granite", "gravel", "sand", "tuff", "mossy_cobblestone", "obsidian", "clay", "infested_stone", "amethyst_block", "budding_amethyst", "chest"]
[the_nether]
enabled = true
engineMode = 1
maxBlockHeight = 128
updateRadius = 2
lavaObscures = true
hiddenBlocks = ["ancient_debris", "nether_quartz_ore", "nether_gold_ore", "gold_block", "gilded_blackstone"]
```
### 10. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config`)
```json
{
"surfaceMapping": "ALL",

View file

@ -0,0 +1,142 @@
package net.blay09.mods.defaultoptions.keys;
import com.mojang.blaze3d.platform.InputConstants;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.blay09.mods.balm.api.client.keymappings.KeyModifier;
import net.blay09.mods.defaultoptions.DefaultOptions;
import net.blay09.mods.defaultoptions.DefaultOptionsInitializer;
import net.blay09.mods.defaultoptions.DefaultOptionsKeyMapping;
import net.blay09.mods.defaultoptions.PlatformBindings;
import net.blay09.mods.defaultoptions.api.DefaultOptionsCategory;
import net.blay09.mods.defaultoptions.api.DefaultOptionsHandler;
import net.blay09.mods.defaultoptions.api.DefaultOptionsLoadStage;
import net.blay09.mods.defaultoptions.keys.DefaultKeyMapping;
import net.blay09.mods.defaultoptions.mixin.KeyMappingAccessor;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
public class KeyMappingDefaultsHandler implements DefaultOptionsHandler {
private static final Pattern KEY_PATTERN = Pattern.compile("key_([^:]+):([^:]+)(?::(.+))?");
private static final Map<String, DefaultKeyMapping> defaultKeys = new HashMap<String, DefaultKeyMapping>();
private File getDefaultOptionsFile() {
return new File(DefaultOptions.getDefaultOptionsFolder(), "keybindings.txt");
}
@Override
public String getId() {
return "keymappings";
}
@Override
public DefaultOptionsCategory getCategory() {
return DefaultOptionsCategory.KEYS;
}
@Override
public DefaultOptionsLoadStage getLoadStage() {
return DefaultOptionsLoadStage.POST_LOAD;
}
@Override
public void saveCurrentOptions() {
Minecraft.m_91087_().f_91066_.m_92169_();
}
@Override
public void saveCurrentOptionsAsDefault() {
try (PrintWriter writer = new PrintWriter(new FileWriter(new File(DefaultOptions.getDefaultOptionsFolder(), "keybindings.txt")))) {
for (KeyMapping keyMapping : Minecraft.m_91087_().f_91066_.f_92059_) {
InputConstants.Key key = PlatformBindings.INSTANCE.getKey(keyMapping);
KeyModifier keyModifier = PlatformBindings.INSTANCE.getKeyModifier(keyMapping);
writer.println("key_" + keyMapping.m_90860_() + ":" + key.m_84874_() + ":" + keyModifier.name());
}
} catch (IOException e) {
DefaultOptions.logger.error("Failed to save default key mappings", (Throwable) e);
}
this.loadDefaults();
}
@Override
public boolean hasDefaults() {
return this.getDefaultOptionsFile().exists();
}
@Override
public boolean shouldLoadDefaults() {
return true;
}
@Override
public void loadDefaults() {
DefaultOptionsInitializer.markUserSeenKeys(Minecraft.m_91087_().f_91066_);
defaultKeys.clear();
File defaultKeysFile = new File(DefaultOptions.getDefaultOptionsFolder(), "keybindings.txt");
if (defaultKeysFile.exists()) {
try (BufferedReader reader = new BufferedReader(new FileReader(defaultKeysFile))) {
String line;
while ((line = reader.readLine()) != null) {
if (line.isEmpty()) continue;
Matcher matcher = KEY_PATTERN.matcher(line);
if (!matcher.matches()) {
DefaultOptions.logger.debug("Skipping line {} as the format is invalid", (Object) line);
continue;
}
try {
KeyModifier modifier = matcher.group(3) != null ? KeyModifier.valueOf((String) matcher.group(3)) : KeyModifier.NONE;
String keyMappingName = matcher.group(1);
defaultKeys.put(keyMappingName, new DefaultKeyMapping(InputConstants.m_84851_((String) matcher.group(2)), modifier));
DefaultOptions.logger.debug("Registered a default key binding for {} ({}:{})", (Object) keyMappingName, (Object) matcher.group(2), (Object) matcher.group(3));
} catch (Exception e) {
DefaultOptions.logger.error("Error loading default key binding for {}", (Object) line, (Object) e);
}
}
} catch (Exception e) {
DefaultOptions.logger.error("Error loading default key bindings", (Throwable) e);
}
DefaultOptions.logger.info("Loaded {} default key bindings.", (Object) defaultKeys.size());
} else {
DefaultOptions.logger.info("No default key bindings file found.");
}
int defaultsApplied = 0;
int bindingsOverridden = 0;
for (KeyMapping keyMapping : Minecraft.m_91087_().f_91066_.f_92059_) {
DefaultKeyMapping originalDefaultMapping = new DefaultKeyMapping(keyMapping.m_90861_(), PlatformBindings.INSTANCE.getDefaultKeyModifier(keyMapping));
if (defaultKeys.containsKey(keyMapping.m_90860_())) {
DefaultKeyMapping defaultKeyMapping = defaultKeys.get(keyMapping.m_90860_());
((KeyMappingAccessor) keyMapping).setDefaultKey(defaultKeyMapping.input);
PlatformBindings.INSTANCE.setDefaultKeyModifier(keyMapping, defaultKeyMapping.modifier);
++defaultsApplied;
boolean isCurrentOnOriginalDefault = originalDefaultMapping.matches(keyMapping);
if ((!((DefaultOptionsKeyMapping) keyMapping).defaultoptions$wasSeen() || isCurrentOnOriginalDefault)
&& !defaultKeyMapping.matches(keyMapping)) {
keyMapping.m_90848_(keyMapping.m_90861_());
KeyModifier defaultKeyModifier = PlatformBindings.INSTANCE.getDefaultKeyModifier(keyMapping);
PlatformBindings.INSTANCE.setKeyModifier(keyMapping, defaultKeyModifier);
++bindingsOverridden;
DefaultOptions.logger.debug("Key mapping {} was previously on the original default. Configuring to new default.", (Object) keyMapping.m_90860_());
continue;
}
DefaultOptions.logger.debug("Key mapping {} has been previously set, skipping.", (Object) keyMapping.m_90860_());
continue;
}
DefaultOptions.logger.debug("No default key mapping configured for {}, skipping.", (Object) keyMapping.m_90860_());
}
DefaultOptions.logger.info("Applied {} defaults to key mappings ({} keys were reconfigured).", (Object) defaultsApplied, (Object) bindingsOverridden);
if (bindingsOverridden > 0) {
KeyMapping.m_90854_();
this.saveCurrentOptions();
}
}
}

View file

@ -0,0 +1,107 @@
#!/usr/bin/env python3
import os
import shutil
import subprocess
import sys
import zipfile
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
PATCHES_DIR = SCRIPT_DIR
INSTANCE_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "..", ".."))
RUNTIME_DIR = os.path.join(INSTANCE_DIR, "runtime", "data")
TARGET_JAR_NAME = "defaultoptions-forge-1.20.1-18.0.5.jar"
ORIGINAL_JAR_PATH = os.path.join(RUNTIME_DIR, "automodpack", "host-modpack", "main", "mods", TARGET_JAR_NAME)
OUTPUT_JAR_PATH = os.path.join(PATCHES_DIR, TARGET_JAR_NAME)
CLIENT_SRG_JAR = os.path.join(PATCHES_DIR, "client-1.20.1-srg.jar")
CONTAINER_NAME = "mc_forge_server"
BUILD_TEMP_DIR = os.path.join(PATCHES_DIR, "_build_temp")
def main():
if not os.path.exists(ORIGINAL_JAR_PATH):
print(f"[!] Original JAR not found at: {ORIGINAL_JAR_PATH}")
sys.exit(1)
if not os.path.exists(CLIENT_SRG_JAR):
print(f"[!] Required client SRG JAR missing at: {CLIENT_SRG_JAR}")
print("Please run the scp command from your laptop to copy client-1.20.1-srg.jar!")
sys.exit(1)
print(f"[*] Preparing workspace for {TARGET_JAR_NAME}...")
if os.path.exists(BUILD_TEMP_DIR):
shutil.rmtree(BUILD_TEMP_DIR)
os.makedirs(BUILD_TEMP_DIR, exist_ok=True)
shutil.copy2(ORIGINAL_JAR_PATH, OUTPUT_JAR_PATH)
shutil.copy2(CLIENT_SRG_JAR, os.path.join(BUILD_TEMP_DIR, "client-1.20.1-srg.jar"))
extract_dir = os.path.join(BUILD_TEMP_DIR, "jar_extracted")
with zipfile.ZipFile(ORIGINAL_JAR_PATH, 'r') as z:
z.extractall(extract_dir)
src_java = os.path.join(PATCHES_DIR, "KeyMappingDefaultsHandler.java")
if not os.path.exists(src_java):
print(f"[!] Source file missing: {src_java}")
sys.exit(1)
shutil.copy2(src_java, os.path.join(BUILD_TEMP_DIR, "KeyMappingDefaultsHandler.java"))
cp_entries = [
"/build/client-1.20.1-srg.jar",
"/build/jar_extracted",
"/data/automodpack/host-modpack/main/mods/balm-forge-1.20.1-7.3.42.jar",
"/data/libraries/net/minecraftforge/forge/1.20.1-47.4.10/forge-1.20.1-47.4.10-universal.jar",
"/data/libraries/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar"
]
cp_str = ":".join(cp_entries)
javac_args_file = os.path.join(BUILD_TEMP_DIR, "javac_args.txt")
with open(javac_args_file, "w") as f:
f.write(f"-cp {cp_str}\n")
f.write("-d /build/out\n")
f.write("/build/KeyMappingDefaultsHandler.java\n")
print("[*] Compiling KeyMappingDefaultsHandler.java via JDK container...")
docker_compile = [
"docker", "run", "--rm",
"--volumes-from", CONTAINER_NAME,
"-v", f"{BUILD_TEMP_DIR}:/build",
"eclipse-temurin:17-jdk",
"sh", "-c",
"mkdir -p /build/out && javac @/build/javac_args.txt"
]
res = subprocess.run(docker_compile, capture_output=True, text=True)
if res.returncode != 0:
print("[!] Compilation failed:")
print(res.stderr)
print(res.stdout)
sys.exit(1)
print("[+] Compilation succeeded!")
target_class_path = "net/blay09/mods/defaultoptions/keys/KeyMappingDefaultsHandler.class"
compiled_class_file = os.path.join(BUILD_TEMP_DIR, "out", target_class_path)
if not os.path.exists(compiled_class_file):
print(f"[!] Compiled class file not found at: {compiled_class_file}")
sys.exit(1)
print(f"[*] Injecting patched class into {OUTPUT_JAR_PATH}...")
temp_jar_path = OUTPUT_JAR_PATH + ".tmp"
with zipfile.ZipFile(OUTPUT_JAR_PATH, 'r') as zin, zipfile.ZipFile(temp_jar_path, 'w', compression=zipfile.ZIP_DEFLATED) as zout:
for item in zin.infolist():
if item.filename != target_class_path:
zout.writestr(item, zin.read(item.filename))
with open(compiled_class_file, 'rb') as f:
zout.writestr(target_class_path, f.read())
os.replace(temp_jar_path, OUTPUT_JAR_PATH)
shutil.rmtree(BUILD_TEMP_DIR, ignore_errors=True)
print(f"[+] Successfully built patched JAR at: {OUTPUT_JAR_PATH}")
if __name__ == "__main__":
main()

View file

@ -5,11 +5,13 @@
"generateModpackOnStart": true,
"syncedFiles": [
"/mods/*.jar",
"/journeymap/config/**",
"!/mods/SimpleBackups*.jar",
"/shaderpacks/*",
"!/config/luckperms/libs/**",
"!/mods/improvedmobs*.jar",
"!/mods/spark*.jar",
"/options.txt",
"!/mods/antixray*.jar",
"!/mods/doubledoors*.jar",
"!/mods/Clumps*.jar",
@ -23,12 +25,11 @@
],
"allowEditsInFiles": [
"/config/**",
"/journeymap/config/**",
"/options.txt"
],
"forceCopyFilesToStandardLocation": [
"/mods/*.jar",
"/servers.dat",
"/options.txt",
"/config/**"
],
"nonModpackFilesToDelete": {},

View file

@ -0,0 +1,180 @@
key_key.attack:key.mouse.left
key_key.use:key.mouse.right
key_key.forward:key.keyboard.w
key_key.left:key.keyboard.a
key_key.back:key.keyboard.s
key_key.right:key.keyboard.d
key_key.jump:key.keyboard.space
key_key.sneak:key.keyboard.left.shift
key_key.sprint:key.keyboard.left.control
key_key.drop:key.keyboard.q
key_key.inventory:key.keyboard.e
key_key.chat:key.keyboard.t
key_key.playerlist:key.keyboard.tab
key_key.pickItem:key.mouse.middle
key_key.command:key.keyboard.slash
key_key.socialInteractions:key.keyboard.p
key_key.screenshot:key.keyboard.f2
key_key.togglePerspective:key.keyboard.f5
key_key.smoothCamera:key.keyboard.unknown
key_key.fullscreen:key.keyboard.f11
key_key.spectatorOutlines:key.keyboard.unknown
key_key.swapOffhand:key.keyboard.f
key_key.saveToolbarActivator:key.keyboard.c
key_key.loadToolbarActivator:key.keyboard.x
key_key.advancements:key.keyboard.l
key_key.hotbar.1:key.keyboard.1
key_key.hotbar.2:key.keyboard.2
key_key.hotbar.3:key.keyboard.3
key_key.hotbar.4:key.keyboard.4
key_key.hotbar.5:key.keyboard.5
key_key.hotbar.6:key.keyboard.6
key_key.hotbar.7:key.keyboard.7
key_key.hotbar.8:key.keyboard.8
key_key.hotbar.9:key.keyboard.9
key_key.sophisticatedcore.sort:key.mouse.middle
key_key.sophisticatedcore.transfer_to_storage:key.keyboard.left.bracket
key_key.sophisticatedcore.transfer_to_inventory:key.keyboard.right.bracket
key_key.modernfix.config:key.keyboard.unknown
key_key.sophisticatedbackpacks.open_backpack:key.keyboard.b
key_key.sophisticatedbackpacks.inventory_interaction:key.keyboard.c
key_key.sophisticatedbackpacks.tool_swap:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_1:key.keyboard.z:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_2:key.keyboard.x:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_3:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_4:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_5:key.keyboard.unknown
key_key.corpse.death_history:key.keyboard.u:CONTROL
key_key.botania_corporea_request:key.keyboard.c
key_key.curios.open.desc:key.keyboard.g
key_iris.keybind.reload:key.keyboard.unknown
key_iris.keybind.toggleShaders:key.keyboard.k
key_iris.keybind.shaderPackSelection:key.keyboard.o:CONTROL
key_key.ftbteams.open_gui:key.keyboard.unknown
key_key.ftbchunks.map:key.keyboard.unknown
key_key.ftbchunks.toggle_minimap:key.keyboard.unknown
key_key.ftbchunks.claim_manager:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomIn:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomOut:key.keyboard.unknown
key_key.ftbchunks.add_waypoint:key.keyboard.unknown
key_key.ftbchunks.waypoint_manager:key.keyboard.unknown
key_key.mca.skin_library:key.keyboard.unknown
key_key.jei.showRecipe2:key.mouse.left
key_key.jei.showBookmarkTooltipFeatures:key.keyboard.left.control
key_key.jei.transferRecipeBookmark:key.mouse.left:SHIFT
key_key.jei.previousSearch:key.keyboard.up
key_key.jei.showRecipe:key.keyboard.r
key_key.jei.nextRecipePage:key.keyboard.page.down
key_key.jei.bookmark:key.keyboard.a
key_key.jei.maxTransferRecipeBookmark:key.mouse.left:CONTROL
key_key.jei.nextSearch:key.keyboard.down
key_key.jei.recipeBack:key.keyboard.backspace
key_key.jei.quickMove:key.mouse.left:SHIFT
key_key.jei.cheatItemStack2:key.mouse.middle
key_key.jei.toggleWildcardHideIngredient:key.mouse.right:CONTROL
key_key.jei.clearSearchBar:key.mouse.right
key_key.jei.toggleHideIngredient:key.mouse.left:CONTROL
key_key.jei.previousPage:key.keyboard.unknown
key_key.jei.cheatOneItem:key.mouse.left
key_key.jei.nextPage:key.keyboard.unknown
key_key.jei.pauseRecipeCycling:key.keyboard.left.shift
key_key.jei.cheatItemStack:key.mouse.left:SHIFT
key_key.jei.focusSearch:key.keyboard.f:CONTROL
key_key.jei.nextCategory:key.keyboard.page.down:SHIFT
key_key.jei.closeRecipeGui:key.keyboard.escape
key_key.jei.toggleBookmarkOverlay:key.keyboard.unknown
key_key.jei.previousCategory:key.keyboard.page.up:SHIFT
key_key.jei.previousRecipePage:key.keyboard.page.up
key_key.jei.showUses2:key.mouse.right
key_key.jei.showUses:key.keyboard.u
key_key.jei.toggleCheatModeConfigButton:key.mouse.left:CONTROL
key_key.jei.toggleEditMode:key.keyboard.unknown
key_key.jei.copy.recipe.id:key.keyboard.unknown
key_key.jei.shareToChat:key.keyboard.unknown
key_key.jei.cheatOneItem2:key.mouse.right
key_key.jei.toggleCheatMode:key.keyboard.unknown
key_key.jei.toggleOverlay:key.keyboard.unknown
key_key.journeymap.minimap_preset:key.keyboard.backslash
key_key.journeymap.toggle_entity_names:key.keyboard.g
key_key.journeymap.toggle_render_waypoints_map:key.keyboard.unknown
key_key.journeymap.fullscreen.south:key.keyboard.down
key_key.journeymap.zoom_in:key.keyboard.equal
key_key.journeymap.fullscreen.north:key.keyboard.up
key_key.journeymap.fullscreen_waypoints:key.keyboard.n
key_key.journeymap.toggle_render_waypoints_world:key.keyboard.unknown
key_key.journeymap.fullscreen.east:key.keyboard.right
key_key.journeymap.zoom_out:key.keyboard.minus
key_key.journeymap.create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.disable_buttons:key.keyboard.unknown
key_key.journeymap.minimap_type:key.keyboard.left.bracket
key_key.journeymap.fullscreen_create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.west:key.keyboard.left
key_key.journeymap.toggle_waypoints:key.keyboard.unknown
key_key.journeymap.fullscreen_chat_position:key.keyboard.c
key_key.journeymap.map_toggle_alt:key.keyboard.j
key_key.journeymap.toggle_render_waypoints:key.keyboard.unknown
key_key.journeymap.minimap_toggle_alt:key.keyboard.j:CONTROL
key_key.journeymap.fullscreen_options:key.keyboard.o
key_key.journeymap.fullscreen_follow_player:key.keyboard.f
key_key.push_to_talk:key.keyboard.unknown
key_key.whisper:key.keyboard.unknown
key_key.mute_microphone:key.keyboard.m:ALT
key_key.disable_voice_chat:key.keyboard.unknown
key_key.hide_icons:key.keyboard.unknown
key_key.voice_chat:key.keyboard.v
key_key.voice_chat_settings:key.keyboard.unknown
key_key.voice_chat_group:key.keyboard.g:ALT
key_key.voice_chat_toggle_recording:key.keyboard.unknown
key_key.voice_chat_adjust_volumes:key.keyboard.unknown
key_key.immersiveengineering.magnetEquip:key.keyboard.s
key_key.immersiveengineering.railgunZoom:key.mouse.middle
key_key.immersiveengineering.chemthrowerSwitch:key.keyboard.unknown
key_key.jade.config:key.keyboard.keypad.0
key_key.jade.show_overlay:key.keyboard.keypad.1
key_key.jade.toggle_liquid:key.keyboard.keypad.2
key_key.jade.show_recipes:key.keyboard.keypad.3
key_key.jade.show_uses:key.keyboard.keypad.4
key_key.jade.narrate:key.keyboard.keypad.5
key_key.jade.show_details:key.keyboard.left.shift
key_key.ponder.ponder:key.keyboard.w
key_create.keyinfo.toolmenu:key.keyboard.left.alt
key_create.keyinfo.toolbelt:key.keyboard.left.alt
key_create.keyinfo.rotate_menu:key.keyboard.unknown
key_key.irons_spellbooks.spell_wheel:key.keyboard.r
key_key.irons_spellbooks.spell_wheel_toggle:key.keyboard.unknown
key_key.irons_spellbooks.spellbook_cast:key.keyboard.z
key_key.irons_spellbooks.spell_bar_modifier:key.keyboard.left.shift
key_key.irons_spellbooks.spell_quick_cast_1:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_2:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_3:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_4:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_5:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_6:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_7:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_8:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_9:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_10:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_11:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_12:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_13:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_14:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_15:key.keyboard.unknown
key_key.presencefootsteps.settings:key.keyboard.f10
key_key.ad_astra.toggle_suit_flight:key.keyboard.h
key_key.ad_astra.open_radio:key.keyboard.r:ALT
key_key.ars_nouveau.open_book:key.keyboard.b:ALT
key_key.ars_nouveau.selection_hud:key.keyboard.r:ALT
key_key.ars_nouveau.qc1:key.keyboard.1:ALT
key_key.ars_nouveau.qc2:key.keyboard.2:ALT
key_key.ars_nouveau.qc3:key.keyboard.3:ALT
key_key.ars_nouveau.qc4:key.keyboard.4:ALT
key_key.ars_nouveau.qc5:key.keyboard.5:ALT
key_key.ars_nouveau.qc6:key.keyboard.unknown
key_key.ars_nouveau.qc7:key.keyboard.unknown
key_key.ars_nouveau.qc8:key.keyboard.unknown
key_key.ars_nouveau.qc9:key.keyboard.unknown
key_key.ars_nouveau.qc10:key.keyboard.unknown
key_key.ars_nouveau.next_slot:key.keyboard.unknown
key_key.ars_nouveau.previous_slot:key.keyboard.unknown
key_key.ars_nouveau.head_curio_hotkey:key.keyboard.unknown
key_key.ars_nouveau.familiar_toggle:key.keyboard.unknown

View file

@ -0,0 +1,95 @@
// jm.config.file_header_1
// jm.config.file_header_2
// jm.config.file_header_5
{
"logLevel": "INFO",
"autoMapPoll": "2000",
"cacheAnimalsData": "3000",
"cacheMobsData": "3000",
"cachePlayerData": "1000",
"cachePlayersData": "2000",
"cacheVillagersData": "2000",
"drawStepUpdateRate": "500",
"announceMod": "true",
"checkUpdates": "true",
"recordCacheStats": "false",
"themeName": "Purist",
"caveIgnoreGlass": "true",
"mapOnlyPlayerChunk": "false",
"mapBathymetry": "false",
"mapWaterBiomeColors": "true",
"mapTopography": "true",
"mapBiome": "true",
"mapTransparency": "true",
"mapCaveLighting": "true",
"netherSurfaceLighting": "true",
"mapAntialiasing": "true",
"mapPlantShadows": "false",
"mapShadows": "true",
"mapPlants": "false",
"mapCrops": "true",
"mapBlendGrass": "true",
"mapBlendFoliage": "true",
"mapBlendWater": "true",
"mapSurfaceAboveCaves": "true",
"caveBlackAsClear": "false",
"renderDistanceCaveMax": "0",
"renderDistanceSurfaceMax": "0",
"renderDelay": "500",
"topoMax": "0",
"revealShape": "Circle",
"caveModeThreshold": "2",
"alwaysMapCaves": "false",
"alwaysMapSurface": "false",
"ignoreHeightmaps": "false",
"ignoreSnow": "false",
"lodsEnabled": "true",
"legacyIcons": "false",
"allowMiniMapBehindScreens": "true",
"maxAnimalsData": "32",
"maxAmbientCreaturesData": "32",
"maxMobsData": "32",
"maxPlayersData": "32",
"maxVillagersData": "32",
"hideSneakingEntities": "true",
"hideSpectators": "false",
"radarLateralDistance": "64",
"radarVerticalDistance": "16",
"dataCachingEnabled": "true",
"glErrorChecking": "false",
"seedId": "false",
"serverIp": "false",
"playerIconFade": "true",
"mobIconFade": "true",
"minimapPresetOverlay": "true",
"minimapMapTypeOverlay": "true",
"mappingEnabled": "true",
"optionsManagerViewed": "6.0.1",
"splashViewed": "6.0.1",
"gridSpecs": {
"day": "Squares,#808080,0.5,-1,-1",
"night": "Squares,#8080ff,0.3,-1,-1",
"underground": "Squares,#808080,0.3,-1,-1"
},
"colorPassive": "#bbbbbb",
"colorPassiveLabel": "#bbbbbb",
"colorHostile": "#ff0000",
"colorHostileLabel": "#ff0000",
"colorPet": "#0077ff",
"colorPetLabel": "#0077ff",
"colorVillager": "#88e188",
"colorVillagerLabel": "#88e188",
"colorPlayer": "#ffffff",
"colorPlayerLabel": "#ffffff",
"colorSelf": "#0000ff",
"initialSortOrder": "Name",
"sortDescending": "true",
"dayShader": "jm.common.map_filter.default",
"nightShader": "jm.common.map_filter.default",
"biomeShader": "jm.common.map_filter.default",
"topoShader": "jm.common.map_filter.default",
"caveShader": "jm.common.map_filter.default",
"netherShader": "jm.common.map_filter.default",
"colorPickerHistory": [],
"configVersion": "6.0.1"
}

View file

@ -0,0 +1,49 @@
// jm.config.file_header_1
// jm.config.file_header_2
// jm.config.file_header_5
{
"showKeys": "true",
"showThemeButton": "true",
"pauseGame": "false",
"showPlayerLoc": "true",
"showMouseLoc": "true",
"minimalMode": "false",
"propertiesId": 0,
"playerDisplay": "OutlinedIcons",
"selfDisplayScale": "1.0",
"playerDisplayScale": "1.0",
"showPlayerHeading": "true",
"mobDisplay": "DotsAndOutlinedIcons",
"mobDisplayScale": "1.0",
"showMobHeading": "true",
"showMobs": "true",
"showAnimals": "true",
"showAmbientCreatures": "false",
"showVillagers": "true",
"showPets": "true",
"showPlayers": "true",
"fontScale": "1.0",
"showWaypointLabels": "true",
"waypointLabelScale": "1.0",
"waypointIconScale": "1.0",
"locationFormatVerbose": "true",
"locationFormat": "xzyv",
"showOffScreenPlayers": "true",
"showWaypoints": "true",
"showSelf": "true",
"showGrid": "true",
"showCaves": "true",
"showPlayerNames": "true",
"showTeamNames": "true",
"showEntityNames": "false",
"showHostileNames": "false",
"showPassiveNames": "false",
"showAmbientNames": "false",
"showPetNames": "false",
"showNpcNames": "false",
"showVillagerNames": "false",
"showNoIconNames": "true",
"preferredMapType": "day",
"zoomLevel": "512",
"configVersion": "6.0.1"
}

View file

@ -0,0 +1,81 @@
// jm.config.file_header_1
// jm.config.file_header_2
// jm.config.file_header_5
{
"enabled": "true",
"showDayNight": "true",
"minimapLockedMapType": "jm.common.map_type.auto",
"caveLayer": "4",
"info1Label": "jm.theme.labelsource.blank",
"info1LabelPosition": "Top",
"info2Label": "jm.theme.labelsource.gametime",
"info2LabelPosition": "Top",
"info3Label": "jm.theme.labelsource.location",
"info3LabelPosition": "Bottom",
"info4Label": "jm.theme.labelsource.biome",
"info4LabelPosition": "Bottom",
"infoSlotAlpha": "0.7",
"infoSlotFontScale": "2.0",
"infoSlotTimeFormat": "HH:mm:ss",
"systemTimeRealFormat": "HH:mm:ss",
"reticleOrientation": "Compass",
"shape": "Circle",
"sizePercent": "20",
"frameAlpha": "100",
"terrainAlpha": "100",
"backgroundAlpha": "0.8",
"orientation": "North",
"compassFontScale": "2.0",
"showCompass": "true",
"showReticle": "true",
"positionX": "0.0034722222",
"positionY": "0.020555556",
"moveEffectIcons": "true",
"hideEffectIcons": "false",
"effectTranslateX": "-3",
"effectTranslateY": "4",
"effectVertical": "false",
"effectReversed": "false",
"minimapKeyMovementSpeed": "0.001",
"hudRenderLayer": "Last",
"position": "Custom",
"active": true,
"propertiesId": 1,
"playerDisplay": "OutlinedIcons",
"selfDisplayScale": "1.0",
"playerDisplayScale": "1.0",
"showPlayerHeading": "true",
"mobDisplay": "DotsAndOutlinedIcons",
"mobDisplayScale": "1.0",
"showMobHeading": "true",
"showMobs": "true",
"showAnimals": "true",
"showAmbientCreatures": "false",
"showVillagers": "true",
"showPets": "true",
"showPlayers": "true",
"fontScale": "2.0",
"showWaypointLabels": "true",
"waypointLabelScale": "1.0",
"waypointIconScale": "1.0",
"locationFormatVerbose": "true",
"locationFormat": "xzyv",
"showOffScreenPlayers": "true",
"showWaypoints": "true",
"showSelf": "true",
"showGrid": "false",
"showCaves": "true",
"showPlayerNames": "true",
"showTeamNames": "true",
"showEntityNames": "false",
"showHostileNames": "false",
"showPassiveNames": "false",
"showAmbientNames": "false",
"showPetNames": "false",
"showNpcNames": "false",
"showVillagerNames": "false",
"showNoIconNames": "true",
"preferredMapType": "day",
"zoomLevel": "512",
"configVersion": "6.0.1"
}

View file

@ -0,0 +1,81 @@
// jm.config.file_header_1
// jm.config.file_header_2
// jm.config.file_header_5
{
"enabled": "true",
"showDayNight": "true",
"minimapLockedMapType": "jm.common.map_type.auto",
"caveLayer": "4",
"info1Label": "jm.theme.labelsource.blank",
"info1LabelPosition": "Top",
"info2Label": "jm.theme.labelsource.gametime",
"info2LabelPosition": "Top",
"info3Label": "jm.theme.labelsource.location",
"info3LabelPosition": "Bottom",
"info4Label": "jm.theme.labelsource.biome",
"info4LabelPosition": "Bottom",
"infoSlotAlpha": "0.7",
"infoSlotFontScale": "1.0",
"infoSlotTimeFormat": "HH:mm:ss",
"systemTimeRealFormat": "HH:mm:ss",
"reticleOrientation": "Compass",
"shape": "Rectangle_Horizontal",
"sizePercent": "30",
"frameAlpha": "100",
"terrainAlpha": "100",
"backgroundAlpha": "0.8",
"orientation": "North",
"compassFontScale": "1.0",
"showCompass": "true",
"showReticle": "true",
"positionX": "0.9",
"positionY": "0.25",
"moveEffectIcons": "true",
"hideEffectIcons": "false",
"effectTranslateX": "0",
"effectTranslateY": "0",
"effectVertical": "false",
"effectReversed": "false",
"minimapKeyMovementSpeed": "0.001",
"hudRenderLayer": "Last",
"position": "TopRight",
"active": false,
"propertiesId": 2,
"playerDisplay": "OutlinedIcons",
"selfDisplayScale": "1.0",
"playerDisplayScale": "1.0",
"showPlayerHeading": "true",
"mobDisplay": "DotsAndOutlinedIcons",
"mobDisplayScale": "1.0",
"showMobHeading": "true",
"showMobs": "true",
"showAnimals": "true",
"showAmbientCreatures": "false",
"showVillagers": "true",
"showPets": "true",
"showPlayers": "true",
"fontScale": "1.0",
"showWaypointLabels": "true",
"waypointLabelScale": "1.0",
"waypointIconScale": "1.0",
"locationFormatVerbose": "true",
"locationFormat": "xzyv",
"showOffScreenPlayers": "true",
"showWaypoints": "true",
"showSelf": "true",
"showGrid": "true",
"showCaves": "true",
"showPlayerNames": "true",
"showTeamNames": "true",
"showEntityNames": "false",
"showHostileNames": "false",
"showPassiveNames": "false",
"showAmbientNames": "false",
"showPetNames": "false",
"showNpcNames": "false",
"showVillagerNames": "false",
"showNoIconNames": "true",
"preferredMapType": "day",
"zoomLevel": "512",
"configVersion": "6.0.1"
}

View file

@ -0,0 +1,20 @@
// jm.config.file_header_1
// jm.config.file_header_2
// jm.config.file_header_5
{
"shadingSlopeMin": "0.2",
"shadingSlopeMax": "1.7",
"shadingPrimaryDownslopeMultiplier": "0.65",
"shadingPrimaryUpslopeMultiplier": "1.2",
"shadingSecondaryDownslopeMultiplier": "0.95",
"shadingSecondaryUpslopeMultiplier": "1.05",
"tweakMoonlightLevel": "3.5",
"tweakBrightenDaylightDiff": "0.06",
"tweakBrightenLightsourceBlock": "1.2",
"tweakMinimumDarkenNightWater": "0.25",
"tweakWaterColorBlend": "0.5",
"tweakSurfaceAmbientColor": "#00001a",
"tweakNetherAmbientColor": "#330808",
"tweakEndAmbientColor": "#00001a",
"configVersion": "6.0.1"
}

View file

@ -0,0 +1,10 @@
// jm.config.file_header_1
// jm.config.file_header_5
{
"showContour": "true",
"landContour": "#3F250B",
"waterContour": "#0000dd",
"land": "#010c02,#041105,#071609,#0a1b0c,#0d200f,#102513,#132a16,#162f19,#19341c,#1b3a20,#1e3f23,#214426,#24492a,#274e2d,#2a5330,#2d5834,#375f41,#41674d,#4b6e5a,#557567,#5f7c73,#698480,#738b8d,#7c929a,#8699a6,#90a1b3,#9aa8c0,#a4afcc,#aeb6d9,#b8bee6,#c2c5f2,#ccccff,#cccfff,#ccd2ff,#ccd6ff,#ccd9ff,#ccdcff,#ccdfff,#cce2ff,#cce5ff,#cce9ff,#ccecff,#ccefff,#ccf2ff,#ccf5ff,#ccf9ff,#ccfcff,#ccffff,#cfffff,#d2ffff,#d6ffff,#d9ffff,#dcffff,#dfffff,#e2ffff,#e5ffff,#e9ffff,#ecffff,#efffff,#f2ffff,#f5ffff,#f9ffff,#fcffff,#ffffff",
"water": "#000040,#02024e,#03035d,#05056b,#070779,#080887,#0a0a96,#0b0ba4,#1a1aaa,#2a2aaf,#3939b5,#4848bb,#5757c0,#6767c6,#7676cc,#8585d2,#9494d7,#a4a4dd,#b3b3e3,#c2c2e8,#d1d1ee,#d7d7f0,#ddddf2,#e2e2f4,#e8e8f6,#eeeef9,#f4f4fb,#f9f9ff,#f9f9ff,#f9f9ff,#f9f9ff,#f9f9ff",
"configVersion": "6.0.1"
}

View file

@ -0,0 +1,46 @@
// jm.config.file_header_1
// jm.config.file_header_2
// jm.config.file_header_5
{
"managerEnabled": "true",
"showDeleteConfirmation": "true",
"disableShare": "false",
"disableStrikeThrough": "false",
"coordinatesFormat": "XZY",
"useActionsButton": "false",
"managerDimensionFocus": "false",
"createDeathpoints": "true",
"showPlayers": "false",
"wholeNumberTeleportCoords": "false",
"autoRemoveDeathpoints": "false",
"autoRemoveDeathpointDistance": "2",
"autoRemoveTempWaypoints": "2",
"showDeathpointlabel": "true",
"fullscreenDoubleClickToCreate": "true",
"teleportCommand": "/execute in {dim} run tp {name} {x} {y} {z}",
"dateFormat": "MM-dd-yyyy",
"timeFormat": "HH:mm:ss",
"renderWaypoints": "true",
"renderWaypointsWorld": "true",
"renderWaypointsMap": "true",
"beaconEnabled": "true",
"autoHideIcon": "false",
"ignoreRenderDistance": "false",
"autoHideIconAngle": "5",
"showStaticBeam": "true",
"showRotatingBeam": "true",
"showName": "true",
"showDistance": "true",
"autoHideLabel": "true",
"autoHideLabelAngle": "5",
"autoHideLabelVertical": "true",
"autoHideLabelVerticalAngle": "10",
"boldLabel": "false",
"showLabelBackground": "true",
"fontScale": "2.0",
"textureSmall": "true",
"shaderBeacon": "false",
"maxDistance": "0",
"minDistance": "4",
"configVersion": "6.0.1"
}

View file

@ -0,0 +1,8 @@
// jm.config.file_header_1
// jm.config.file_header_2
// jm.config.file_header_5
{
"enabled": "false",
"port": "8080",
"configVersion": "6.0.1"
}

View file

@ -84,179 +84,15 @@ onlyShowSecureChat:false
panoramaScrollSpeed:1.0
telemetryOptInExtra:false
onboardAccessibility:false
key_key.attack:key.mouse.left
key_key.use:key.mouse.right
key_key.forward:key.keyboard.w
key_key.left:key.keyboard.a
key_key.back:key.keyboard.s
key_key.right:key.keyboard.d
key_key.jump:key.keyboard.space
key_key.sneak:key.keyboard.left.control
key_key.sprint:key.keyboard.left.shift
key_key.drop:key.keyboard.q
key_key.inventory:key.keyboard.e
key_key.chat:key.keyboard.t
key_key.playerlist:key.keyboard.tab
key_key.pickItem:key.mouse.middle
key_key.command:key.keyboard.slash
key_key.socialInteractions:key.keyboard.p
key_key.screenshot:key.keyboard.f2
key_key.togglePerspective:key.keyboard.f5
key_key.smoothCamera:key.keyboard.unknown
key_key.fullscreen:key.keyboard.f11
key_key.spectatorOutlines:key.keyboard.unknown
key_key.swapOffhand:key.keyboard.f
key_key.saveToolbarActivator:key.keyboard.c
key_key.loadToolbarActivator:key.keyboard.x
key_key.advancements:key.keyboard.l
key_key.hotbar.1:key.keyboard.1
key_key.hotbar.2:key.keyboard.2
key_key.hotbar.3:key.keyboard.3
key_key.hotbar.4:key.keyboard.4
key_key.hotbar.5:key.keyboard.5
key_key.hotbar.6:key.keyboard.6
key_key.hotbar.7:key.keyboard.7
key_key.hotbar.8:key.keyboard.8
key_key.hotbar.9:key.keyboard.9
key_key.sophisticatedcore.sort:key.mouse.middle
key_key.sophisticatedcore.transfer_to_storage:key.keyboard.left.bracket
key_key.sophisticatedcore.transfer_to_inventory:key.keyboard.right.bracket
key_key.modernfix.config:key.keyboard.unknown
key_key.sophisticatedbackpacks.open_backpack:key.keyboard.b
key_key.sophisticatedbackpacks.inventory_interaction:key.keyboard.c
key_key.sophisticatedbackpacks.tool_swap:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_1:key.keyboard.z:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_2:key.keyboard.x:ALT
key_key.sophisticatedbackpacks.toggle_upgrade_3:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_4:key.keyboard.unknown
key_key.sophisticatedbackpacks.toggle_upgrade_5:key.keyboard.unknown
key_key.corpse.death_history:key.keyboard.u:CONTROL
key_key.botania_corporea_request:key.keyboard.c
key_key.curios.open.desc:key.keyboard.g
key_iris.keybind.reload:key.keyboard.unknown
key_iris.keybind.toggleShaders:key.keyboard.k
key_iris.keybind.shaderPackSelection:key.keyboard.o:CONTROL
key_key.ftbteams.open_gui:key.keyboard.unknown
key_key.ftbchunks.map:key.keyboard.unknown
key_key.ftbchunks.toggle_minimap:key.keyboard.unknown
key_key.ftbchunks.claim_manager:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomIn:key.keyboard.unknown
key_key.ftbchunks.minimap.zoomOut:key.keyboard.unknown
key_key.ftbchunks.add_waypoint:key.keyboard.unknown
key_key.ftbchunks.waypoint_manager:key.keyboard.unknown
key_key.mca.skin_library:key.keyboard.unknown
key_key.jei.showRecipe2:key.mouse.left
key_key.jei.showBookmarkTooltipFeatures:key.keyboard.left.control
key_key.jei.transferRecipeBookmark:key.mouse.left:SHIFT
key_key.jei.previousSearch:key.keyboard.up
key_key.jei.showRecipe:key.keyboard.r
key_key.jei.nextRecipePage:key.keyboard.page.down
key_key.jei.bookmark:key.keyboard.a
key_key.jei.maxTransferRecipeBookmark:key.mouse.left:CONTROL
key_key.jei.nextSearch:key.keyboard.down
key_key.jei.recipeBack:key.keyboard.backspace
key_key.jei.quickMove:key.mouse.left:SHIFT
key_key.jei.cheatItemStack2:key.mouse.middle
key_key.jei.toggleWildcardHideIngredient:key.mouse.right:CONTROL
key_key.jei.clearSearchBar:key.mouse.right
key_key.jei.toggleHideIngredient:key.mouse.left:CONTROL
key_key.jei.previousPage:key.keyboard.unknown
key_key.jei.cheatOneItem:key.mouse.left
key_key.jei.nextPage:key.keyboard.unknown
key_key.jei.pauseRecipeCycling:key.keyboard.left.shift
key_key.jei.cheatItemStack:key.mouse.left:SHIFT
key_key.jei.focusSearch:key.keyboard.f:CONTROL
key_key.jei.nextCategory:key.keyboard.page.down:SHIFT
key_key.jei.closeRecipeGui:key.keyboard.escape
key_key.jei.toggleBookmarkOverlay:key.keyboard.unknown
key_key.jei.previousCategory:key.keyboard.page.up:SHIFT
key_key.jei.previousRecipePage:key.keyboard.page.up
key_key.jei.showUses2:key.mouse.right
key_key.jei.showUses:key.keyboard.u
key_key.jei.toggleCheatModeConfigButton:key.mouse.left:CONTROL
key_key.jei.toggleEditMode:key.keyboard.unknown
key_key.jei.copy.recipe.id:key.keyboard.unknown
key_key.jei.shareToChat:key.keyboard.unknown
key_key.jei.cheatOneItem2:key.mouse.right
key_key.jei.toggleCheatMode:key.keyboard.unknown
key_key.jei.toggleOverlay:key.keyboard.unknown
key_key.journeymap.minimap_preset:key.keyboard.backslash
key_key.journeymap.toggle_entity_names:key.keyboard.g
key_key.journeymap.toggle_render_waypoints_map:key.keyboard.unknown
key_key.journeymap.fullscreen.south:key.keyboard.down
key_key.journeymap.zoom_in:key.keyboard.equal
key_key.journeymap.fullscreen.north:key.keyboard.up
key_key.journeymap.fullscreen_waypoints:key.keyboard.n
key_key.journeymap.toggle_render_waypoints_world:key.keyboard.unknown
key_key.journeymap.fullscreen.east:key.keyboard.right
key_key.journeymap.zoom_out:key.keyboard.minus
key_key.journeymap.create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.disable_buttons:key.keyboard.unknown
key_key.journeymap.minimap_type:key.keyboard.left.bracket
key_key.journeymap.fullscreen_create_waypoint:key.keyboard.b:CONTROL
key_key.journeymap.fullscreen.west:key.keyboard.left
key_key.journeymap.toggle_waypoints:key.keyboard.unknown
key_key.journeymap.fullscreen_chat_position:key.keyboard.c
key_key.journeymap.map_toggle_alt:key.keyboard.j
key_key.journeymap.toggle_render_waypoints:key.keyboard.unknown
key_key.journeymap.minimap_toggle_alt:key.keyboard.j:CONTROL
key_key.journeymap.fullscreen_options:key.keyboard.o
key_key.journeymap.fullscreen_follow_player:key.keyboard.f
key_key.push_to_talk:key.keyboard.unknown
key_key.whisper:key.keyboard.unknown
key_key.mute_microphone:key.keyboard.m:ALT
key_key.disable_voice_chat:key.keyboard.unknown
key_key.hide_icons:key.keyboard.unknown
key_key.voice_chat:key.keyboard.v
key_key.voice_chat_settings:key.keyboard.unknown
key_key.voice_chat_group:key.keyboard.g:ALT
key_key.voice_chat_toggle_recording:key.keyboard.unknown
key_key.voice_chat_adjust_volumes:key.keyboard.unknown
key_key.immersiveengineering.magnetEquip:key.keyboard.s
key_key.immersiveengineering.railgunZoom:key.mouse.middle
key_key.immersiveengineering.chemthrowerSwitch:key.keyboard.unknown
key_key.jade.config:key.keyboard.keypad.0
key_key.jade.show_overlay:key.keyboard.keypad.1
key_key.jade.toggle_liquid:key.keyboard.keypad.2
key_key.jade.show_recipes:key.keyboard.keypad.3
key_key.jade.show_uses:key.keyboard.keypad.4
key_key.jade.narrate:key.keyboard.keypad.5
key_key.jade.show_details:key.keyboard.left.shift
key_key.ponder.ponder:key.keyboard.w
key_create.keyinfo.toolmenu:key.keyboard.left.alt
key_create.keyinfo.toolbelt:key.keyboard.left.alt
key_create.keyinfo.rotate_menu:key.keyboard.unknown
key_key.irons_spellbooks.spell_wheel:key.keyboard.r
key_key.irons_spellbooks.spell_wheel_toggle:key.keyboard.unknown
key_key.irons_spellbooks.spellbook_cast:key.keyboard.z
key_key.irons_spellbooks.spell_bar_modifier:key.keyboard.left.shift
key_key.irons_spellbooks.spell_quick_cast_1:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_2:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_3:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_4:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_5:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_6:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_7:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_8:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_9:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_10:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_11:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_12:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_13:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_14:key.keyboard.unknown
key_key.irons_spellbooks.spell_quick_cast_15:key.keyboard.unknown
key_key.presencefootsteps.settings:key.keyboard.f10
key_key.ad_astra.toggle_suit_flight:key.keyboard.h
key_key.ad_astra.open_radio:key.keyboard.r:ALT
soundCategory_master:1.0
soundCategory_music:1.0
soundCategory_master:0.6
soundCategory_music:0.25
soundCategory_record:1.0
soundCategory_weather:1.0
soundCategory_block:1.0
soundCategory_hostile:1.0
soundCategory_neutral:1.0
soundCategory_hostile:0.75
soundCategory_neutral:0.4
soundCategory_player:1.0
soundCategory_ambient:1.0
soundCategory_ambient:0.4
soundCategory_voice:1.0
modelPart_cape:true
modelPart_jacket:true

View file

@ -0,0 +1,103 @@
version:3465
autoJump:false
operatorItemsTab:false
autoSuggestions:true
chatColors:true
chatLinks:true
chatLinksPrompt:true
enableVsync:true
entityShadows:true
forceUnicodeFont:false
discrete_mouse_scroll:false
invertYMouse:false
realmsNotifications:true
reducedDebugInfo:false
showSubtitles:false
directionalAudio:false
touchscreen:false
fullscreen:true
bobView:true
toggleCrouch:false
toggleSprint:false
darkMojangStudiosBackground:false
hideLightningFlashes:false
mouseSensitivity:0.5
fov:1.0
screenEffectScale:1.0
fovEffectScale:1.0
darknessEffectScale:1.0
glintSpeed:0.5
glintStrength:0.75
damageTiltStrength:1.0
highContrast:false
gamma:1.0
renderDistance:8
simulationDistance:6
entityDistanceScaling:1.0
guiScale:4
particles:0
maxFps:260
graphicsMode:1
ao:true
prioritizeChunkUpdates:0
biomeBlendRadius:2
renderClouds:"true"
resourcePacks:["mod_resources","vanilla","file/Faithful 64x - Beta 9.zip","file/-1.21.2 Fresh Moves v3.1 (With Animated Eyes).zip","file/FreshAnimations_v1.10.4.zip","black_icons","fabric"]
incompatibleResourcePacks:[]
lastServer:
lang:en_us
soundDevice:""
chatVisibility:0
chatOpacity:1.0
chatLineSpacing:0.0
textBackgroundOpacity:0.5
backgroundForChatOnly:true
hideServerAddress:false
advancedItemTooltips:false
pauseOnLostFocus:true
overrideWidth:0
overrideHeight:0
chatHeightFocused:1.0
chatDelay:0.0
chatHeightUnfocused:0.4375
chatScale:1.0
chatWidth:1.0
notificationDisplayTime:1.0
mipmapLevels:4
useNativeTransport:true
mainHand:"right"
attackIndicator:1
narrator:0
tutorialStep:none
mouseWheelSensitivity:1.0
rawMouseInput:true
glDebugVerbosity:1
skipMultiplayerWarning:true
skipRealms32bitWarning:false
hideMatchedNames:true
joinedFirstServer:true
hideBundleTutorial:false
syncChunkWrites:false
showAutosaveIndicator:true
allowServerListing:true
onlyShowSecureChat:false
panoramaScrollSpeed:1.0
telemetryOptInExtra:false
onboardAccessibility:false
soundCategory_master:1.0
soundCategory_music:1.0
soundCategory_record:1.0
soundCategory_weather:1.0
soundCategory_block:1.0
soundCategory_hostile:1.0
soundCategory_neutral:1.0
soundCategory_player:1.0
soundCategory_ambient:1.0
soundCategory_voice:1.0
modelPart_cape:true
modelPart_jacket:true
modelPart_left_sleeve:true
modelPart_right_sleeve:true
modelPart_left_pants_leg:true
modelPart_right_pants_leg:true
modelPart_hat:true

View file

@ -0,0 +1,77 @@
{
// Allow players to set custom flag images for their rockets.
"allowFlagImages": true,
// Allow rockets to be launched from any dimension, even if it's not considered a planet.
"launchAnywhere": false,
/*
* The random tick speed for breaking plants, torches, freezing water, etc. on planets.
* Type: Integer
*/
"planetRandomTickSpeed": 20,
// Always tick every planet chunk for things like freezing water, breaking plants, etc., regardless of whether the chunk can tick randomly or not. This has a small performance impact.
"forcePlanetTick": false,
/*
* The y level where rockets should leave the dimension and enter space.
* Type: Integer
*/
"atmosphereLeave": 600,
// A comma-separated list of planet IDs that should be hidden from the planets screen. e.g. minecraft:overworld,ad_astra:moon,ad_astra:mars,ad_astra:venus,ad_astra:mercury,ad_astra:glacio
"disabledPlanets": "",
// Disables oxygen damage.
"disableOxygen": false,
// Disables temperature damage.
"disableTemperature": false,
// Uses normal gravity for all planets.
"disableGravity": false,
// An Air Vortex is created when an oxygenated structure breaks its seal, causing every entity inside to rapidly get sucked out. This setting disables that.
"disableAirVortexes": false,
"cryoFreezer": {
// Type: Long
"ironTierMaxEnergyInOut": 100,
// Type: Long
"steelTierMaxEnergyInOut": 150,
// Type: Long
"deshTierMaxEnergyInOut": 250,
// Type: Long
"ostrumTierMaxEnergyInOut": 500,
// Type: Long
"ironTierEnergyCapacity": 10000,
// Type: Long
"steelTierEnergyCapacity": 20000,
// Type: Long
"deshTierEnergyCapacity": 50000,
// Type: Long
"ostrumTierEnergyCapacity": 100000,
// Type: Long
"steelTierFluidCapacity": 3000,
// Type: Long
"deshTierFluidCapacity": 5000,
// Type: Long
"ostrumTierFluidCapacity": 10000,
// Type: Long
"coalGeneratorEnergyGenerationPerTick": 20,
// Type: Long
"etrionicBlastFurnaceBlastingEnergyPerItem": 10,
// Type: Long
"waterPumpEnergyPerTick": 20,
// Type: Long
"waterPumpFluidGenerationPerTick": 50,
// Type: Long
"energizerEnergyCapacity": 2000000,
/*
* The maximum number of blocks that an oxygen distributor and gravity normalizer can distribute to.
* Type: Integer
*/
"maxDistributionBlocks": 6000,
/*
* The tick rate (20 ticks = 1 second) at which the oxygen distributor and gravity normalizer will recalculate the distribution area.
* Type: Integer
*/
"distributionRefreshRate": 100,
/*
* The tick rate (20 ticks = 1 second) at which cables and fluid pipes will recalculate their connections.
* Type: Integer
*/
"pipeRefreshRate": 50
}
}

View file

@ -0,0 +1,711 @@
[general]
#Whether all players should get an Animal Dictionary when joining the world for the first time.
giveBookOnStartup = true
#Lava Opacity for the Lava Vision Potion.
#Range: 0.01 ~ 1.0
lavaVisionOpacity = 0.65
#Whether to disable certain aspects of the Lava Vision Potion. Enable if issues with shaders persist.
shadersCompat = false
#Whether bananas should drop from blocks tagged with #alexsmobs:drops_bananas
bananasDropFromLeaves = true
#1 out of this number chance for leaves to drop a banana when broken. Fortune is automatically factored in
#Range: > 0
bananaChance = 200
#Whether spiders should target fly mobs.
spidersAttackFlies = true
#Whether wolves should target moose mobs.
wolvesAttackMoose = true
#Whether polar bears should target seal mobs.
polarBearsAttackSeals = true
#Whether cats, ocelots and foxes should target jerboa mobs.
catsAndFoxesAttackJerboas = true
#Whether dolphins should target flying fish mobs.
dolphinsAttackFlyingFish = true
#Whether lava can be bottled with a right click of a glass bottle.
lavaBottleEnabled = true
#Whether bone serpents are neutral or hostile.
neutralBoneSerpents = false
#Whether mimicubes spawns should be restricted solely to the end city structure or to whatever biome is specified in their respective biome config.
mimicubeSpawnInEndCity = true
#Whether mimicream can be used to duplicate items.
mimicreamRepair = true
#Blacklist for items that mimicream cannot make a copy of. Ex: "minecraft:stone_sword", "alexsmobs:blood_sprayer"
mimicreamBlacklist = ["alexsmobs:blood_sprayer", "alexsmobs:hemolymph_blaster"]
#Whether wild raccoons steal food from chests.
raccoonStealFromChests = true
#Whether wild crows steal crops from farmland.
crowsStealCrops = true
#Whether fish oil gives players a special levitation effect.
fishOilMeme = true
#Whether soul vulture spawns should be restricted solely to the nether fossil structure or to whatever biome is specified in their respective biome config.
soulVultureSpawnOnFossil = true
#Whether acacia blossoms should drop from blocks tagged with #alexsmobs:drops_acacia_blossoms
acaciaBlossomsDropFromLeaves = true
#1 out of this number chance for leaves to drop an acacia when broken. Fortune is automatically factored in
#Range: > 0
acaciaBlossomChance = 130
#Whether wandering traders offer items like acacia blossoms, mosquito larva, crocodile egg, etc.
wanderingTraderOffers = true
#0 = no mungus biome transformation. 1 = mungus changes blocks, but not chunk's biome. 2 = mungus transforms blocks and biome of chunk.
#Range: 0 ~ 2
mungusBiomeTransformationType = 2
#List of all mungus mushrooms, biome transformations and surface blocks. Each is seperated by a |. Add an entry with a block registry name, biome registry name, and block registry name(for the ground).
mungusBiomeMatches = ["minecraft:red_mushroom|minecraft:mushroom_fields|minecraft:mycelium", "minecraft:brown_mushroom|minecraft:mushroom_fields|minecraft:mycelium", "minecraft:crimson_fungus|minecraft:crimson_forest|minecraft:crimson_nylium", "minecraft:warped_fungus|minecraft:warped_forest|minecraft:warped_nylium"]
#Whether guster spawns are limited to when it is raining/thundering.
limitGusterSpawnsToWeather = true
#Whether Crimson Mosquitoes can transform into Warped Moscos if attacking a Mungus or any listed creature.
warpedMoscoTransformation = true
#List of extra(non mungus) mobs that will trigger a crimson mosquito to become a warped mosquito. Ex: "minecraft:mooshroom", "alexsmobs:warped_toad"
warpedMoscoMobTriggers = [""]
#True if straddleboard enchants are enabled.
straddleboardEnchants = true
#Whether emu should target skeletons.
emuTargetSkeletons = true
#Percent chance for emu leggings to dodge projectile attacks.
#Range: 0.0 ~ 1.0
emuPantsDodgeChance = 0.45
#Whether cachalots can destroy wood blocks if angry.
cachalotDestruction = true
#Relative volume of cachalot whales compared to other animals. Note that irl they are the loudest animal. Turn this down if you find their clicks annoying.
#Range: 0.0 ~ 10.0
cachalotVolume = 3.0
#Percent chance for fungus to grow per each leaf a leafcutter ant returns to the colony.
#Range: 0.0 ~ 1.0
leafcutterAntFungusGrowChance = 0.3
#How many feedings of leaves does a leafcutter colony need in order to regain a worker ant, if below half the max members.
#Range: 2 ~ 100000
leafcutterAntRepopulateFeedings = 25
#Max number of ant entities allowed inside a leafcutter anthill.
#Range: 2 ~ 100000
leafcutterAntColonySize = 10
#Percent chance for leafcutter ants to break leaves blocks when harvesting. Set to zero so that they can not break any blocks.
#Range: 0.0 ~ 1.0
leafcutterAntBreakLeavesChance = 0.2
#Makes eagles teleport back to their owner if they get stuck during controlled flight. Useful for when playing with the Optifine mod, since this mod is the fault of many issues with the falconry system.
falconryTeleportsBack = false
#Makes Tarantula Hawks fireproof, perfect if you also want these guys to spawn in the nether.
fireproofTarantulaHawk = false
#List of dimensions in which spawning void worms via mysterious worm items is allowed.
voidWormSpawnDimensions = ["minecraft:the_end"]
#All void worm damage is scaled to this.
#Range: 0.0 ~ 100.0
voidWormDamageModifier = 1.0
#Max Health of the void worm boss.
#Range: 0.0 ~ 1000000.0
voidWormMaxHealth = 160.0
#Whether the void worm boss is summonable or not, via the mysterious worm item.
voidWormSummonable = true
#Whether seagulls should steal food out of players' hotbar slots.
seagullStealing = true
#List of items that seagulls cannot take from players.
seagullStealingBlacklist = []
#Whether the Clinging Potion effect should flip the screen. Warning: may cause nausea.
clingingFlipEffect = false
#Percent chance of getting Pigshoes from Piglin Bartering. Set to zero to disable.
#Range: 0.0 ~ 1.0
tusklinShoesBarteringChance = 0.02500000037252903
#The visual zoom of the rainbow pattern on the rainbow glass block. Higher number = bigger pattern.
#Range: 1.0 ~ 10000.0
rainbowGlassFidelity = 16.0
#Whether Rabbits can transform into Bunfungus if fed Mungal spores.
bunfungusTransformation = true
#True if some Alex's Mobs items should spawn in loot chests.
addLootToChests = true
#List of items that cannot be put in a Transmuting Table.
transmutationBlacklist = ["minecraft:beacon"]
#True if transmutation tables should not have the ability to pick up new items to transmute, and only give options from the loot tables.
limitTransmutingToLootTables = false
#True if transmutation tables can explode when broken.
transmutingTableExplodes = true
#The experience, in levels, that each transmutation of a stack takes in the transmuting table.
#Range: 0 ~ 100000
transmutingExperienceCost = 3
#The step value multiplied by the log of the stack size when transmuting an item, used to determine its weight for appearing in future transmutation possibilities. Higher number = more likely to appear.
#Range: 1.0 ~ 10000.0
transmutingWeightAddStep = 3.0
#The step value that an item looses when selecting it as the transmutation result. Keep this number higher than the one above for balance reasons. Higher number = less likely to appear after transmuting multiple times.
#Range: 1.0 ~ 10000.0
transmutingWeightRemoveStep = 4.0
#True if skreechers can summon a new warden, when applicable.
skreechersSummonWarden = true
#The distance in blocks that will cause an underminer to dissapear when approached by a player.
#Range: 1.0 ~ 10000.0
underminerDisappearDistance = 8.0
[spawning]
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
grizzlyBearSpawnWeight = 8
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
grizzlyBearSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
roadrunnerSpawnWeight = 9
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
roadrunnerSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
boneSerpentSpawnWeight = 8
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
boneSeprentSpawnRolls = 40
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
gazelleSpawnWeight = 40
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
gazelleSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
crocodileSpawnWeight = 20
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
crocSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
flySpawnWeight = 3
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
flySpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
hummingbirdSpawnWeight = 19
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
hummingbirdSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
orcaSpawnWeight = 2
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
orcaSpawnRolls = 6
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
sunbirdSpawnWeight = 5
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
sunbirdSpawnRolls = 6
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
gorillaSpawnWeight = 25
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
gorillaSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
crimsonMosquitoSpawnWeight = 15
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
crimsonMosquitoSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
rattlesnakeSpawnWeight = 12
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
rattlesnakeSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
endergradeSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
endergradeSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
hammerheadSharkSpawnWeight = 8
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
hammerheadSharkSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
lobsterSpawnWeight = 7
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
lobsterSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
komodoDragonSpawnWeight = 16
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
komodoDragonSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
capuchinMonkeySpawnWeight = 28
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
capuchinMonkeySpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
caveCentipedeSpawnWeight = 8
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
caveCentipedeSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
warpedToadSpawnWeight = 30
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
warpedToadSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
mooseSpawnWeight = 9
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
mooseSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
mimicubeSpawnWeight = 40
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
mimicubeSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
raccoonSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
raccoonSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
blobfishSpawnWeight = 30
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
blobfishSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
sealSpawnWeight = 20
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
sealSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
cockroachSpawnWeight = 4
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
cockroachSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
shoebillSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
shoebillSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
elephantSpawnWeight = 30
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
elephantSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
soulVultureSpawnWeight = 30
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
soulVultureSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
snowLeopardSpawnWeight = 18
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
snowLeopardSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
spectreSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
spectreSpawnRolls = 5
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
crowSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
crowSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
alligatorSnappingTurtleSpawnWeight = 20
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
alligatorSnappingTurtleSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
mungusSpawnWeight = 4
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
mungusSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
mantisShrimpSpawnWeight = 15
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
mantisShrimpSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
gusterSpawnWeight = 35
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
gusterSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn. NOTE: By default the warped mosco doesn't spawn in any biomes.
#Range: 0 ~ 1000
warpedMoscoSpawnWeight = 1
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
warpedMoscoSpawnRolls = 1000
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
straddlerSpawnWeight = 70
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
straddlerSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
stradpoleSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
stradpoleSpawnRolls = 3
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
emuSpawnWeight = 20
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
emuSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
platypusSpawnWeight = 20
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
platypusSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
dropbearSpawnWeight = 19
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
dropbearSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
tasmanianDevilSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
tasmanianDevilSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
kangarooSpawnWeight = 25
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
kangarooSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
cachalotWhaleSpawnWeight = 2
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
cachalotWhaleSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
enderiophageSpawnWeight = 4
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
enderiophageSpawnRolls = 2
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
baldEagleSpawnWeight = 15
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
baldEagleSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
tigerSpawnWeight = 30
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
tigerSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
tarantulaHawkSpawnWeight = 6
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
tarantulaHawkSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
voidWormSpawnWeight = 0
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
voidWormSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
frilledSharkSpawnWeight = 11
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
frilledSharkSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
mimicOctopusSpawnWeight = 9
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
mimicOctopusSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
seagullSpawnWeight = 21
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
seagullSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
froststalkerSpawnWeight = 20
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
froststalkerSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
tusklinSpawnWeight = 18
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
tusklinSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
laviathanSpawnWeight = 15
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
laviathanSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
cosmawSpawnWeight = 9
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
cosmawSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
toucanSpawnWeight = 23
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
toucanSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
manedWolfSpawnWeight = 8
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
manedWolfSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
anacondaSpawnWeight = 12
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
anacondaSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
anteaterSpawnWeight = 7
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
anteaterSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
rockyRollerSpawnWeight = 60
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
rockyRollerSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
flutterSpawnWeight = 13
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
flutterSpawnRolls = 0
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
geladaMonkeySpawnWeight = 5
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
geladaMonkeySpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
jerboaSpawnWeight = 12
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
jerboaSpawnRolls = 2
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
terrapinSpawnWeight = 4
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
terrapinSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
combJellySpawnWeight = 5
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
combJellySpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
cosmicCodSpawnWeight = 5
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
cosmicCodSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
bunfungusSpawnWeight = 3
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
bunfungusSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
bisonSpawnWeight = 9
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
bisonSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
giantSquidSpawnWeight = 3
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
giantSquidSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn (NOTE: this mob spawns are restricted exclusively to one chunk, see below)
#Range: 0 ~ 1000
devilsHolePupfishSpawnWeight = 23
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning (NOTE: this mob spawns are restricted exclusively to one chunk, see below)
#Range: > 0
devilsHolePupfishSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
catfishSpawnWeight = 4
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
catfishSpawnRolls = 2
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
flyingFishSpawnWeight = 8
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
flyingFishSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
skelewagSpawnWeight = 15
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
skelewagSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
rainFrogSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
rainFrogSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
potooSpawnWeight = 15
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
potooSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
mudskipperSpawnWeight = 28
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
mudskipperSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
rhinocerosSpawnWeight = 24
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
rhinocerosSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
sugarGliderSpawnWeight = 15
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
sugarGliderSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
farseerSpawnWeight = 30
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
farseerSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
skreecherSpawnWeight = 10
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
skreecherSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
underminerSpawnWeight = 50
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
underminerSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
murmurSpawnWeight = 5
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
murmurSpawnRolls = 1
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
skunkSpawnWeight = 7
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
skunkSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
bananaSlugSpawnWeight = 14
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
bananaSlugSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
blueJaySpawnWeight = 16
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
blueJaySpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
caimanSpawnWeight = 29
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
caimanSpawnRolls = 0
#Spawn Weight, added to a pool of other mobs for each biome. Higher number = higher chance of spawning. 0 = disable spawn
#Range: 0 ~ 1000
triopsSpawnWeight = 8
#Random roll chance to enable mob spawning. Higher number = lower chance of spawning
#Range: > 0
triopsSpawnRolls = 0
[uniqueSpawning]
#Maximum world y-level that cave centipedes can spawn at
#Range: -64 ~ 320
caveCentipedeSpawnHeight = 0
#Maximum world y-level that blobfish can spawn at
#Range: -64 ~ 320
blobfishSpawnHeight = 25
#Whether to enable beached cachalot whales to spawn on beaches during thunder storms.
beachedCachalotWhales = true
#Percent chance increase for each failed attempt to spawn a beached cachalot whale. Higher value = more spawns.
#Range: 0 ~ 100
beachedCachalotWhaleSpawnChance = 5
#Delay (in ticks) between attempts to spawn beached cachalot whales. Default is a single day. Works like wandering traders.
#Range: > 0
beachedCachalotWhaleSpawnDelay = 24000
#Percent chance for leafcutter anthills to spawn as world gen in each chunk. Set to zero to disable spawning.
#Range: 0.0 ~ 1.0
leafcutterAnthillSpawnChance = 0.004999999888241291
#Minimum world y-level that gelada monkeys can spawn at
#Range: -64 ~ 320
geladaMonkeySpawnRolls = 0
#Whether to restrict all pupfish spawns to one chunk (similar to real life) or have them only obey their spawn config.
restrictPupfishSpawns = true
#The maximum distance a pupfish spawn chunk is from world spawn(0, 0) in blocks.
#Range: 2 ~ 1000000000
pupfishChunkSpawnDistance = 2000
#Whether to restrict all skelewag spawns to shipwreck structures.
restrictSkelewagSpawns = true
#Whether to restrict all farseer spawns to near the world border.
restrictFarseerSpawns = true
#Whether to restrict all underminer spawns to abandoned mineshafts.
restrictUnderminerSpawns = true
#The maximum distance a farseer can spawn from the world border.
#Range: 2 ~ 1000000000
farseerBorderSpawnDistance = 100
#Maximum world y-level that murmur can spawn at
#Range: -64 ~ 320
murmurSpawnHeight = -30
[dangerZone]
#Its been so long...
superSecretSettings = false
#How many cpu cores some mobs(elephants, leafcutter ants, bison etc) should utilize when pathing. Bigger number = less impact on TPS
#Range: 1 ~ 100
pathfindingThreads = 5

View file

@ -0,0 +1,42 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_swamp"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:mangrove_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:tundra_bog"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:ice_marsh"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:orchid_swamp"
}
]
]
}

View file

@ -0,0 +1,58 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:mangrove_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:ice_marsh"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:orchid_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_rainforest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:tropical_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_summer"
}
]
]
}

View file

@ -0,0 +1,63 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_jungle"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:bamboo_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_rainforest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:jungle_mountains"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:tropical_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_summer"
}
]
]
}

View file

@ -0,0 +1,147 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_hill"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_coniferous"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:windswept_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_plateau"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:bryce_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_autumn"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_spring"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_winter"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:haze_mountain"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:temperate_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:jade_cliffs"
}
]
]
}

View file

@ -0,0 +1,91 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:old_growth_pine_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:old_growth_spruce_taiga"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_taiga"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_dense/overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_rare"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:forested_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_autumn"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:yosemite_lowlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:redwood_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:coniferous_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:fir_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "autumnity:maple_forest"
}
]
]
}

View file

@ -0,0 +1,96 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_plains"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "minecraft:is_savanna"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_hot/overworld"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:meadow"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:field"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:forested_field"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:grassland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:pasture"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:prairie"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cold_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:steppe"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:valley_clearing"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_deep_ocean"
}
]
]
}

View file

@ -0,0 +1,215 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_forest"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:sparse_jungle"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:valley_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cloud_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:forested_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lush_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_maple_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_shield"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:temperate_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:wintry_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:yosemite_lowlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:bryce_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_autumn"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:redwood_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:cherry_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:snowblossom_grove"
}
]
]
}

View file

@ -0,0 +1,16 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_nether"
}
]
]
}

View file

@ -0,0 +1,28 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_mushroom"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_rare"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:mirage_isles"
}
]
]
}

View file

@ -0,0 +1,37 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_beach"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:gravel_beach"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:dune_beach"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:stony_shore"
}
]
]
}

View file

@ -0,0 +1,49 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_cold/overworld"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:lukewarm_ocean"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:deep_ocean"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:deep_lukewarm_ocean"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "alexscaves:abyssal_chasm"
}
]
]
}

View file

@ -0,0 +1,18 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:mangrove_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/underground_jungle"
}
]
]
}

View file

@ -0,0 +1,65 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_jungle"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:bamboo_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:mangrove_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_rainforest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:jungle_mountains"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:tropical_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_summer"
}
]
]
}

View file

@ -0,0 +1,59 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_swamp"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:mangrove_swamp"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_river"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_cold/overworld"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:orchid_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:ice_marsh"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:warm_river"
}
]
]
}

View file

@ -0,0 +1,115 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_mushroom"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:deep_dark"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/andesite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/desert_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/diorite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/granite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/ice_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/infested_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/thermal_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/crystal_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/frostfire_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/mantle_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/deep_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/tuff_caves"
}
]
]
}

View file

@ -0,0 +1,110 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_mushroom"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:deep_dark"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/andesite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/desert_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/diorite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/granite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/ice_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/infested_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/thermal_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/crystal_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/frostfire_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/mantle_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/deep_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/tuff_caves"
}
]
]
}

View file

@ -0,0 +1,25 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:frozen_ocean"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:deep_frozen_ocean"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "alexscaves:abyssal_chasm"
}
]
]
}

View file

@ -0,0 +1,21 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_end"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:the_end"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:small_end_islands"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_end"
}
]
]
}

View file

@ -0,0 +1,44 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:crimson_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "byg:crimson_gardens"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:visceral_heap"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "incendium:ash_barrens"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "incendium:infernal_dunes"
}
]
]
}

View file

@ -0,0 +1,58 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:mangrove_swamp"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_river"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_cold"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:tropic_beach"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:orchid_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:red_oasis"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:warm_river"
}
]
]
}

View file

@ -0,0 +1,276 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "minecraft:is_savanna"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_plains"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_forest"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cold_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:hot_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:steppe"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:valley_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:birch_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:forested_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lush_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_maple_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:temperate_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:wintry_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:yosemite_lowlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_autumn"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_spring"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_winter"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:mirage_isles"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cloud_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:cherry_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:snowblossom_grove"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
}
]
]
}

View file

@ -0,0 +1,23 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:nether_wastes"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:crystalline_chasm"
}
]
]
}

View file

@ -0,0 +1,65 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:arid_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:brushland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:fractured_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_slopes"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:red_oasis"
}
]
]
}

View file

@ -0,0 +1,91 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_badlands"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:arid_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:brushland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:fractured_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_slopes"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:warped_mesa"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:white_mesa"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:red_oasis"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:lush_desert"
}
]
]
}

View file

@ -0,0 +1,16 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_end"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:the_end"
}
]
]
}

View file

@ -0,0 +1,31 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_end"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:the_end"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:end_barrens"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:end_highlands"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:small_end_islands"
}
]
]
}

View file

@ -0,0 +1,16 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:mushroom_fields"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:lush_caves"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
}
]
]
}

View file

@ -0,0 +1,36 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_cold/overworld"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_hot/overworld"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:deep_ocean"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:deep_lukewarm_ocean"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_deep_ocean"
}
]
]
}

View file

@ -0,0 +1,53 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:ice_spikes"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:frozen_peaks"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/frostfire_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:frozen_cliffs"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:glacial_chasm"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:gravel_desert"
}
]
]
}

View file

@ -0,0 +1,60 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:arid_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:brushland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:fractured_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_slopes"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:red_oasis"
}
]
]
}

View file

@ -0,0 +1,56 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_plains"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_plateau"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:hot_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:steppe"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:valley_clearing"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_deep_ocean"
}
]
]
}

View file

@ -0,0 +1,58 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_jungle"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:bamboo_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_rainforest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:jungle_mountains"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:tropical_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_summer"
}
]
]
}

View file

@ -0,0 +1,215 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_forest"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:sparse_jungle"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:valley_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cloud_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:forested_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lush_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_maple_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_shield"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:temperate_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:wintry_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:yosemite_lowlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:bryce_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_autumn"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:redwood_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:cherry_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:snowblossom_grove"
}
]
]
}

View file

@ -0,0 +1,61 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_hot/overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_dry/overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_sandy"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:ancient_sands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:desert_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:desert_spires"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:ashen_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/desert_caves"
}
]
]
}

View file

@ -0,0 +1,16 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_hot/overworld"
}
]
]
}

View file

@ -0,0 +1,165 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:flower_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:sunflower_plains"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:meadow"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_rainforest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:jungle_mountains"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:tropical_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_plateau"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:valley_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:orchid_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_autumn"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_spring"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_summer"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:cherry_grove"
}
]
]
}

View file

@ -0,0 +1,68 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_dry/overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_hot/overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_sandy"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "minecraft:is_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:ancient_sands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:desert_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:desert_oasis"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:desert_spires"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sandstone_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:red_oasis"
}
]
]
}

View file

@ -0,0 +1,91 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_badlands"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:arid_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:brushland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:fractured_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_slopes"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:warped_mesa"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:white_mesa"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:red_oasis"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:lush_desert"
}
]
]
}

View file

@ -0,0 +1,44 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_jungle"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_dense/overworld"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sandstone_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:red_oasis"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_summer"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:tropics"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_nether"
}
]
]
}

View file

@ -0,0 +1,63 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_jungle"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:bamboo_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_canyon"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:amethyst_rainforest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:jungle_mountains"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:tropical_jungle"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_summer"
}
]
]
}

View file

@ -0,0 +1,25 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_beach"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:gravel_beach"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:stony_shore"
}
]
]
}

View file

@ -0,0 +1,58 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:arid_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:brushland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:fractured_savanna"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:savanna_slopes"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shrubland"
}
]
]
}

View file

@ -0,0 +1,23 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_hot/overworld"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:mangrove_swamp"
}
]
]
}

View file

@ -0,0 +1,21 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_hot/overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_ocean"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:deep_warm_ocean"
}
]
]
}

View file

@ -0,0 +1,21 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_end"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:the_end"
}
]
]
}

View file

@ -0,0 +1,122 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_snowy"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_wasteland"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_snowy"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:snowy_coniferous_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:snowy_fir_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "snowy_maple_woods"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_badlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_maple_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:snowy_shield"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:wintry_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:wintry_lowlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:gravel_desert"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_winter"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:snowblossom_grove"
}
]
]
}

View file

@ -0,0 +1,18 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:mangrove_swamp"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/underground_jungle"
}
]
]
}

View file

@ -0,0 +1,28 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_mushroom"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_rare"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:mirage_isles"
}
]
]
}

View file

@ -0,0 +1,115 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:no_default_monsters"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_mushroom"
},
{
"type": "REGISTRY_NAME",
"negate": true,
"value": "minecraft:deep_dark"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/andesite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/desert_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/diorite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/granite_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/ice_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/infested_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/thermal_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/crystal_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/frostfire_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/mantle_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/deep_caves"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cave/tuff_caves"
}
]
]
}

View file

@ -0,0 +1,16 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_ocean"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_cold/overworld"
}
]
]
}

View file

@ -0,0 +1,35 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_river"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "forge:is_cold/overworld"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:tundra_bog"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:warm_river"
}
]
]
}

View file

@ -0,0 +1,11 @@
{
"biomes": [
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:dark_forest"
}
]
]
}

View file

@ -0,0 +1,199 @@
{
"biomes": [
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_forest"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": true,
"value": "minecraft:is_savanna"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "forge:is_plains"
}
],
[
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_overworld"
},
{
"type": "BIOME_TAG",
"negate": false,
"value": "minecraft:is_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:alpine_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:birch_taiga"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:blooming_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:lavender_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:moonlight_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:sakura_valley"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:cold_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:hot_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:rocky_shrubland"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:shield_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:steppe"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:valley_clearing"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:temperate_highlands"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:skylands_autumn"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "terralith:mirage_isles"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:redwood_forest"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "minecraft:cherry_grove"
}
],
[
{
"type": "REGISTRY_NAME",
"negate": false,
"value": "biomesoplenty:snowblossom_grove"
}
]
]
}

Some files were not shown because too many files have changed in this diff Show more