feat(automodpack): streamline client modpack delivery, automate options/servers sync, and update repository documentation

This commit is contained in:
JaniSoto 2026-08-15 17:26:56 +00:00
parent 550717ebfb
commit 2d009c116a
26 changed files with 550 additions and 98 deletions

39
.gitignore vendored
View file

@ -11,15 +11,18 @@
*.log *.log
*.log.gz *.log.gz
# Config # Config & Mod Runtime Directories
**/data/config/ **/data/config/
**/data/defaultconfigs/
**/data/local/
**/data/journeymap/
**/data/modernfix/
**/data/patchouli_books/
# Runtime Caches, Libraries & Temporary Files # Runtime Caches, Libraries & Temporary Files
**/data/.cache/ **/data/.cache/
**/data/.local/ **/data/.local/
**/data/libraries/ **/data/libraries/
**/data/modernfix/
**/data/patchouli_books/
**/data/tmp_lts_build/ **/data/tmp_lts_build/
**/data/.forge-manifest.json **/data/.forge-manifest.json
@ -28,6 +31,9 @@
**/data/.rcon-cli.yaml **/data/.rcon-cli.yaml
**/data/.run-forge.env **/data/.run-forge.env
**/data/user_jvm_args.txt **/data/user_jvm_args.txt
**/data/run.sh
**/data/run.bat
**/data/eula.txt
# Dynamic User & State Tracking Files # Dynamic User & State Tracking Files
**/data/usercache.json **/data/usercache.json
@ -44,28 +50,39 @@
*.bak *.bak
# ===================================================================== # =====================================================================
# MOD RUNTIME DATABASES, TEMP FILES & MAP CONFIGS # AUTOMODPACK GENERATED RUNTIME ARTIFACTS & SECRETS
# ===================================================================== # =====================================================================
# LuckPerms H2 / SQLite Database Files # AutoModpack generated TLS private keys & certificates (CRITICAL SECURITY)
**/data/automodpack/.private/
# AutoModpack dynamic runtime state & generated modpack payload manifest
**/data/automodpack/automodpack-client.json
**/data/automodpack/host-modpack/automodpack-content.json
# =====================================================================
# MOD RUNTIME DATABASES, TEMP FILES & LIBRARIES
# =====================================================================
# LuckPerms Auto-Downloaded Libraries & Database Files
**/data/config/luckperms/libs/
*.mv.db *.mv.db
*.db *.db
*.sqlite *.sqlite
*.sqlite3 *.sqlite3
# Spark Profiler Temporary Output # Spark Profiler Temporary Output & Java Flight Recorder
**/data/config/spark/tmp/ **/data/config/spark/tmp/
*.tmp *.tmp
*.jfr *.jfr
# JourneyMap Auto-Generated Server Dimension Configs
**/data/journeymap/
# ===================================================================== # =====================================================================
# BINARY MOD FILES # BINARY MOD FILES & BUILD ARTIFACTS
# ===================================================================== # =====================================================================
# Mod JAR files (managed via download_mods.py) # Server Mod JAR files (managed via download_mods.py / server mods directory)
**/data/mods/*.jar **/data/mods/*.jar
# Compiled Java class files
*.class
# ===================================================================== # =====================================================================
# PYTHON & SYSTEM TEMPORARY ARTIFACTS # PYTHON & SYSTEM TEMPORARY ARTIFACTS
# ===================================================================== # =====================================================================

View file

@ -14,11 +14,13 @@ When performing world resets or maintenance, classify directories according to t
| Category | Directory / File Path | Purpose | Action on Reset | | Category | Directory / File Path | Purpose | Action on Reset |
| :--- | :--- | :--- | :--- | | :--- | :--- | :--- | :--- |
| **Immutable** | `data/config/` | Mod configuration files | **Preserve** | | **Immutable** | `data/config/` | Mod configuration files (except player auth store) | **Preserve** |
| **Immutable** | `data/mods/` | Server mod JAR files | **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/server.properties` | Generated server settings | **Preserve** |
| **Immutable** | `data/eula.txt` | EULA agreement file | **Preserve** | | **Immutable** | `data/eula.txt` | EULA agreement file | **Preserve** |
| **Volatile** | `data/world/` | Dynamic terrain & player data | Delete to reset seed | | **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/logs/` | Server console log files | Safe to purge |
| **Volatile** | `data/crash-reports/` | Crash stack traces | Safe to purge | | **Volatile** | `data/crash-reports/` | Crash stack traces | Safe to purge |
| **Volatile** | `data/simplebackups/` | World backup archives | Store or purge | | **Volatile** | `data/simplebackups/` | World backup archives | Store or purge |
@ -47,7 +49,7 @@ docker start $INSTANCE_NAME
### Full Nuclear Server Reset ### Full Nuclear Server Reset
```bash ```bash
docker compose down 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 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
docker compose up -d docker compose up -d
``` ```

View file

@ -68,11 +68,9 @@ services:
- ./data:/data - ./data:/data
``` ```
> **RCON Network Security Note**: RCON (`enable-rcon=true`, port `25575`) is enabled in `server.properties` for container-internal management (`docker exec -i mc_forge_server rcon-cli`). Port `25575` is intentionally omitted from the host `ports:` block in `docker-compose.yml` to prevent unauthorized external access.
--- ---
## 2. Server Mod Manifest (65 Mods) ## 2. Server Mod Manifest (66 Mods)
```text ```text
[forge]ctov-3.4.14.jar [forge]ctov-3.4.14.jar
@ -82,6 +80,7 @@ ad_astra_more_structures-1.0.1-forge.jar
alexsmobs-1.22.9.jar alexsmobs-1.22.9.jar
antixray-forge-1.4.6+1.20.1.jar antixray-forge-1.4.6+1.20.1.jar
architectury-9.2.14-forge.jar architectury-9.2.14-forge.jar
automodpack-mc1.20.1-forge-4.0.6.jar
Botania-1.20.1-454-FORGE.jar Botania-1.20.1-454-FORGE.jar
botarium-forge-1.20.1-2.3.4.jar botarium-forge-1.20.1-2.3.4.jar
Chunky-1.3.146.jar Chunky-1.3.146.jar
@ -144,85 +143,56 @@ YungsBetterStrongholds-1.20-Forge-4.0.3.jar
--- ---
## 3. Client Mod Manifest (63 Mods) ## 3. Client Distribution Architecture (AutoModpack)
Note: `Clumps`, `spark`, `SimpleBackups`, `antixray`, `collective`, and `doubledoors` are excluded from the client manifest as experience orb merging, profiling, backups, anti-xray, and door interaction mechanics are handled server-side. Client modpack synchronization is fully automated via **AutoModpack**. Clients do not need manual mod downloads or multi-file setup zips.
### 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)
Located in `runtime/data/automodpack/host-modpack/main/mods/` on the server and pushed to clients automatically:
```text ```text
[forge]ctov-3.4.14.jar
ad_astra-forge-1.20.1-1.15.20.jar
ad_astra_extra_additions-1.20.1-1.1.1.jar
ad_astra_more_structures-1.0.1-forge.jar
alexsmobs-1.22.9.jar
AmbientSounds_FORGE_v6.3.8_mc1.20.1.jar AmbientSounds_FORGE_v6.3.8_mc1.20.1.jar
architectury-9.2.14-forge.jar
BetterPingDisplay-1.20.1-1.1.jar BetterPingDisplay-1.20.1-1.1.jar
Botania-1.20.1-454-FORGE.jar
botarium-forge-1.20.1-2.3.4.jar
citadel-2.6.3-1.20.1.jar
cloth-config-11.1.136-forge.jar
Connector-1.0.0-beta.49+1.20.1.jar Connector-1.0.0-beta.49+1.20.1.jar
continuity-3.0.0+1.20.1.forge.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
createaddition-1.20.1-1.3.3.jar
CreativeCore_FORGE_v2.12.39_mc1.20.1.jar CreativeCore_FORGE_v2.12.39_mc1.20.1.jar
curios-forge-5.14.1+1.20.1.jar FTB-Teams-Offline-Enabler-forge-1.20.1-1.0.0.jar
decocraft-3.0.4-1.20.1-slim.jar PresenceFootsteps-1.20.1-1.9.1-beta.1.jar
differentdoors-forge-1.20.1-1.1.0.jar TUTORIAL_DISABLE-1.0.0.jar
balm-forge-1.20.1-7.3.42.jar
continuity-3.0.0+1.20.1.forge.jar
embeddium-0.3.31+mc1.20.1.jar embeddium-0.3.31+mc1.20.1.jar
entity_model_features-3.2.4-1.20.1-forge.jar entity_model_features-3.2.4-1.20.1-forge.jar
entity_texture_features_1.20.1-forge-7.1.jar entity_texture_features_1.20.1-forge-7.1.jar
fabric-api-0.92.6+1.11.15+1.20.1.jar fabric-api-0.92.6+1.11.15+1.20.1.jar
FarmersDelight-1.20.1-1.3.2.jar
ferritecore-6.0.1-forge.jar
fiw-anticheat-forge-1.20.1-2.0.2.jar
ftb-chunks-forge-2001.3.8.jar
ftb-library-forge-2001.2.13.jar
ftb-teams-forge-2001.3.2.jar
FTB-Teams-Offline-Enabler-forge-1.20.1-1.0.0.jar
geckolib-forge-1.20.1-4.8.4.jar
ImmersiveEngineering-1.20.1-10.2.0-183.jar
irons_lib-1.20.1-2.1.0.jar
irons_spellbooks-1.20.1-3.16.2.jar
Jade-1.20.1-Forge-11.13.3.jar
jei-1.20.1-forge-15.49.0.188.jar
journeymap-forge-1.20.1-6.0.1.jar
Krypton_Reno-forge-1.20.1-26.1.1-1.20.1.jar
lithostitched-forge-1.20.1-1.4.11.jar
locks_reforged-1.6.1.jar
majrusz-library-forge-1.20.1-7.0.8.jar
majruszs-difficulty-forge-1.20.1-1.9.10.jar
minecraft-comes-alive-7.6.28-beta.10+1.20.1-universal.jar
modernfix-forge-5.27.72+mc1.20.1.jar
oculus-mc1.20.1-1.8.0.jar oculus-mc1.20.1-1.8.0.jar
packetfixer-3.3.2-1.18-1.20.4-merged.jar
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
PresenceFootsteps-1.20.1-1.9.1-beta.1.jar
resourcefulconfig-forge-1.20.1-2.1.3.jar
resourcefullib-forge-1.20.1-2.1.29.jar
rubidium-extra-0.5.4.4+mc1.20.1-build.131.jar rubidium-extra-0.5.4.4+mc1.20.1-build.131.jar
sophisticatedbackpacks-1.20.1-3.24.63.2057.jar
sophisticatedcore-1.20.1-1.3.78.2249.jar
sound-physics-remastered-forge-1.20.1-1.4.10.jar sound-physics-remastered-forge-1.20.1-1.4.10.jar
tenshilib-1.20.1-1.7.6-forge.jar
TUTORIAL_DISABLE-1.0.0.jar
voicechat-forge-1.20.1-2.6.22.jar
``` ```
### Server-Side Exclusions (8 Mods)
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).
--- ---
## 4. Instance Management, Patch Compilation & RCON Workflows ## 4. Operational Runbooks & Administration
### Permissions Fix (Host Mount Access) ### Updating Client Master Defaults (`options.txt` / `servers.dat`)
If Spark or other mods throw `AccessDeniedException` writing temporary files: From your local client instance terminal:
```bash ```bash
sudo chown -R 1000:1000 runtime/data/config/spark cd ~/.local/share/PrismLauncher/instances/<instance_name>/minecraft
chmod -R 775 runtime/data/config/spark scp options.txt servers.dat ubuntu@sotoserver:~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/host-modpack/main/
ssh sotoserver "docker restart mc_forge_server"
``` ```
### In-House Auth Mod Patch Compilation (`patches/lts-auth/`) ### In-House Auth Mod Patch Compilation (`patches/lts-auth/`)
@ -239,28 +209,14 @@ To rebuild and hot-swap the custom authentication mod (`lts_auth-1.0.1+mc1.20.1.
docker restart mc_forge_server docker restart mc_forge_server
``` ```
> `build.py` uses the container's OpenJDK 17 `javac` compiler with classpath resolution against `/data/libraries` and `/data/mods`, repackaging the resulting `.class` files into `runtime/data/mods/lts_auth-1.0.1+mc1.20.1.jar`.
### World Pre-Generation (Chunky) ### World Pre-Generation (Chunky)
Use Chunky RCON commands to pre-generate chunks and avoid worldgen tick lag during gameplay:
```bash ```bash
# Configure target dimension, center (0,0), and radius (4,000 blocks / ~250 chunks)
docker exec -i mc_forge_server rcon-cli "chunky world minecraft:overworld" docker exec -i mc_forge_server rcon-cli "chunky world minecraft:overworld"
docker exec -i mc_forge_server rcon-cli "chunky center 0 0" docker exec -i mc_forge_server rcon-cli "chunky center 0 0"
docker exec -i mc_forge_server rcon-cli "chunky radius 4000" docker exec -i mc_forge_server rcon-cli "chunky radius 4000"
# Set log update interval to 10 seconds and start pre-generation
docker exec -i mc_forge_server rcon-cli "chunky quiet 10" docker exec -i mc_forge_server rcon-cli "chunky quiet 10"
docker exec -i mc_forge_server rcon-cli "chunky start" docker exec -i mc_forge_server rcon-cli "chunky start"
# Check progress
docker exec -i mc_forge_server rcon-cli "chunky progress" docker exec -i mc_forge_server rcon-cli "chunky progress"
# Pause, resume, or cancel task
docker exec -i mc_forge_server rcon-cli "chunky pause"
docker exec -i mc_forge_server rcon-cli "chunky continue"
docker exec -i mc_forge_server rcon-cli "chunky cancel"
``` ```
### Performance Profiling (spark) ### Performance Profiling (spark)

View file

@ -6,20 +6,66 @@
| Mod | Config File Path | Key Setting | Value | Purpose | | 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) | | **LTS Auth** | `runtime/data/config/lts_auth/messages.yml` | `timeout_kick` | Configured message | In-game auth, invulnerability lock & auto-kick (`players.json` credential store) |
| **Locks Reforged** | `runtime/data/config/locks-common.toml` | `"Enable Loot-Scaled Locks"` | `true` | Loot-value-based container lock tier selection | | **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 from chests enabled (30%); unused mod integrations set to OFF | | **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` | `is_per_player_difficulty_enabled` | `true` | Isolated per-player milestone progression (`normal`, `expert`, `master` stages) |
| **Create Addition** | `runtime/data/config/createaddition-common.toml` | `[alternator].generator_efficiency` | `0.5` | Tech power generation rebalance | | **Create Addition** | `runtime/data/config/createaddition-common.toml` | `[alternator].generator_efficiency` | `0.5` | Tech power generation rebalance |
| **Sophisticated Core** | `runtime/data/config/sophisticatedcore-common.toml` | `enabledItems` | Tier 3/4 upgrades = `false` | Cap portable storage capacity | | **Sophisticated Core** | `runtime/data/config/sophisticatedcore-common.toml` | `enabledItems` | Tier 3/4 upgrades = `false` | Cap portable storage capacity |
| **AntiXray** | `runtime/data/config/antixray.toml` | `enabled` / `[overworld].engineMode` | `false` / `3` | Global default disabled (prevents space/orbit bugs); Overworld Mode 3 & Nether Mode 1 active | | **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 (player, mob, animal, villager radars = false) & universe-wide cave mapping disabled | | **JourneyMap** | `runtime/data/journeymap/server/6.0/` | `playerRadarEnabled` / `caveMapping` | `"false"` / `"NONE"` | Server-enforced entity radar restrictions & universe-wide cave mapping disabled |
--- ---
## Validated Configuration Code Snippets ## Validated Configuration Code Snippets
### 1. Locks Reforged (`runtime/data/config/locks-common.toml`) ### 1. AutoModpack (`runtime/data/automodpack/automodpack-server.json`)
```json
{
"DO_NOT_CHANGE_IT": 2,
"modpackName": "MC SotoHome",
"modpackHost": true,
"generateModpackOnStart": true,
"syncedFiles": [
"/mods/*.jar",
"!/mods/SimpleBackups*.jar",
"/shaderpacks/*",
"!/config/luckperms/libs/**",
"!/mods/improvedmobs*.jar",
"!/mods/spark*.jar",
"!/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"
],
"forceCopyFilesToStandardLocation": [
"/mods/*.jar",
"/servers.dat",
"/options.txt",
"/config/**"
],
"autoExcludeServerSideMods": true,
"autoExcludeUnnecessaryFiles": true,
"requireAutoModpackOnClient": true,
"validateSecrets": false,
"acceptedLoaders": [
"forge"
]
}
```
### 2. Locks Reforged (`runtime/data/config/locks-common.toml`)
```toml ```toml
"Lock Generation Chance" = 1.0 "Lock Generation Chance" = 1.0
"Generation Enchant Chance" = 0.4 "Generation Enchant Chance" = 0.4
@ -31,7 +77,7 @@
"Loot Value Tiers" = [3.0, 6.0, 10.0, 16.0, 24.0, 40.0, 60.0] "Loot Value Tiers" = [3.0, 6.0, 10.0, 16.0, 24.0, 40.0, 60.0]
``` ```
### 2. Improved Mobs (`runtime/data/config/improvedmobs/common.toml`) ### 3. Improved Mobs (`runtime/data/config/improvedmobs/common.toml`)
```toml ```toml
[general] [general]
"Enable difficulty scaling" = false "Enable difficulty scaling" = false
@ -47,7 +93,7 @@
"Use LevelZ Mod" = "OFF" "Use LevelZ Mod" = "OFF"
``` ```
### 3. Create Addition (`runtime/data/config/createaddition-common.toml`) ### 4. Create Addition (`runtime/data/config/createaddition-common.toml`)
```toml ```toml
[alternator] [alternator]
# Alternator efficiency relative to base conversion rate # Alternator efficiency relative to base conversion rate
@ -55,7 +101,7 @@
generator_efficiency = 0.5 generator_efficiency = 0.5
``` ```
### 4. Sophisticated Core (`runtime/data/config/sophisticatedcore-common.toml`) ### 5. Sophisticated Core (`runtime/data/config/sophisticatedcore-common.toml`)
```toml ```toml
[common] [common]
# Disable / enable any items here (disables their recipes) # Disable / enable any items here (disables their recipes)
@ -65,7 +111,7 @@
] ]
``` ```
### 5. Majrusz's Progressive Difficulty (`runtime/data/config/majruszsdifficulty.json`) ### 6. Majrusz's Progressive Difficulty (`runtime/data/config/majruszsdifficulty.json`)
```json ```json
{ {
"game_stages": { "game_stages": {
@ -88,7 +134,7 @@
} }
``` ```
### 6. AntiXray (`runtime/data/config/antixray.toml`) ### 7. AntiXray (`runtime/data/config/antixray.toml`)
```toml ```toml
# Global default fallback # Global default fallback
enabled = false enabled = false
@ -111,7 +157,7 @@ lavaObscures = true
hiddenBlocks = ["ancient_debris", "nether_quartz_ore", "nether_gold_ore", "gold_block", "gilded_blackstone"] hiddenBlocks = ["ancient_debris", "nether_quartz_ore", "nether_gold_ore", "gold_block", "gilded_blackstone"]
``` ```
### 7. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config`) ### 8. JourneyMap Server Enforced Radar (`runtime/data/journeymap/server/6.0/journeymap.server.global.config`)
```json ```json
{ {
"surfaceMapping": "ALL", "surfaceMapping": "ALL",

View file

@ -0,0 +1,56 @@
{
"DO_NOT_CHANGE_IT": 2,
"modpackName": "MC SotoHome",
"modpackHost": true,
"generateModpackOnStart": true,
"syncedFiles": [
"/mods/*.jar",
"!/mods/SimpleBackups*.jar",
"/shaderpacks/*",
"!/config/luckperms/libs/**",
"!/mods/improvedmobs*.jar",
"!/mods/spark*.jar",
"!/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"
],
"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"
]
}

View file

@ -0,0 +1,8 @@
#This file stores configuration options for Iris, such as the currently active shaderpack
#Sat Aug 15 16:12:38 CEST 2026
colorSpace=SRGB
disableUpdateMessage=false
enableDebugOptions=false
maxShadowRenderDistance=32
shaderPack=BSL_v10.1.3.zip
enableShaders=true

View file

@ -0,0 +1,267 @@
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
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_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,6 @@
#Sat Aug 15 16:12:38 CEST 2026
shadowDistance=192.0
LIGHT_SHAFT=false
shadowMapResolution=1536
TAA=false
SHADOW_COLOR=false

View file

@ -0,0 +1,94 @@
filename = 'BSL_v10.1.3.zip'
name = 'BSL Shaders'
side = 'client'
x-prismlauncher-dependencies = []
x-prismlauncher-loaders = []
x-prismlauncher-mc-versions = [
'1.7.10',
'1.8',
'1.8.1',
'1.8.2',
'1.8.3',
'1.8.4',
'1.8.5',
'1.8.6',
'1.8.7',
'1.8.8',
'1.8.9',
'1.9',
'1.9.1',
'1.9.2',
'1.9.3',
'1.9.4',
'1.10',
'1.10.1',
'1.10.2',
'1.11',
'1.11.1',
'1.11.2',
'1.12',
'1.12.1',
'1.12.2',
'1.13',
'1.13.1',
'1.13.2',
'1.14',
'1.14.1',
'1.14.2',
'1.14.3',
'1.14.4',
'1.15',
'1.15.1',
'1.15.2',
'1.16',
'1.16.1',
'1.16.2',
'1.16.3',
'1.16.4',
'1.16.5',
'1.17',
'1.17.1',
'1.18',
'1.18.1',
'1.18.2',
'1.19',
'1.19.1',
'1.19.2',
'1.19.3',
'1.19.4',
'1.20',
'1.20.1',
'1.20.2',
'1.20.3',
'1.20.4',
'1.20.5',
'1.20.6',
'1.21',
'1.21.1',
'1.21.2',
'1.21.3',
'1.21.4',
'1.21.5',
'1.21.6',
'1.21.7',
'1.21.8',
'1.21.9',
'1.21.10',
'1.21.11',
'26.1',
'26.1.1',
'26.1.2',
'26.2'
]
x-prismlauncher-release-type = 'release'
x-prismlauncher-version-number = '10.1.3'
[download]
hash = '3e68c8038e38b0860cf1258e5fc84bcd98007a70fb7ba49e306186be6e905187527b630b77cb9e8cc8ee80865606c0fb398c419a22f0076b2ed5c7d73748a9ba'
hash-format = 'sha512'
mode = 'url'
url = 'https://cdn.modrinth.com/data/Q1vvjJYV/versions/hIibTfxn/BSL_v10.1.3.zip'
[update.modrinth]
mod-id = 'Q1vvjJYV'
version = 'hIibTfxn'