fix(forge-1.20.1): relocate options template to extra/ and standardize keybinds
- Move master options.txt to config/defaultoptions/extra/options.txt to fix early-boot display driver race condition skipping initial settings - Strip duplicate keybinding lines from extra/options.txt for clean DRY separation with keybindings.txt - Restore standard keybindings: Left Shift for Crouch (sneak) and Left Control for Sprint (sprint) - Remove redundant root config/defaultoptions/options.txt file - Update instance README.md and mod-configs.md documentation and operational runbook scp targets - Update releases link in instance documentation to git.sotohome.top endpoint
This commit is contained in:
parent
e3b866b989
commit
e7557256b8
5 changed files with 8 additions and 169 deletions
|
|
@ -8,7 +8,7 @@
|
||||||
* **Required Client Mod**: `automodpack-mc1.20.1-forge-4.0.6.jar`
|
* **Required Client Mod**: `automodpack-mc1.20.1-forge-4.0.6.jar`
|
||||||
|
|
||||||
### Installation Steps
|
### Installation Steps
|
||||||
1. Download **`automodpack-mc1.20.1-forge-4.0.6.jar`** from the **[Releases](../../../releases)** section of this repository.
|
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.
|
2. Place the `.jar` file into your local `.minecraft/mods/` directory.
|
||||||
3. Launch Minecraft with your Forge 1.20.1 profile.
|
3. Launch Minecraft with your Forge 1.20.1 profile.
|
||||||
4. Select **Multiplayer** and connect to **`mc.sotohome.top`**.
|
4. Select **Multiplayer** and connect to **`mc.sotohome.top`**.
|
||||||
|
|
@ -197,8 +197,7 @@ Explicitly excluded from syncing to clients via `syncedFiles` in `automodpack-se
|
||||||
* `/config/**` (Synchronizes mod configurations, BSL shader settings, and default options template).
|
* `/config/**` (Synchronizes mod configurations, BSL shader settings, and default options template).
|
||||||
* **First-Launch Options Enforcement (`Default Options`)**: Settings are delivered via two separate files inside `/config/defaultoptions/`:
|
* **First-Launch Options Enforcement (`Default Options`)**: Settings are delivered via two separate files inside `/config/defaultoptions/`:
|
||||||
1. `keybindings.txt`: Enforces master keybindings (Sneak=Shift, Sprint=Ctrl, FTB Chunks minimap unbound) dynamically on game boot.
|
1. `keybindings.txt`: Enforces master keybindings (Sneak=Shift, Sprint=Ctrl, FTB Chunks minimap unbound) dynamically on game boot.
|
||||||
2. `options.txt`: Delivers initial FOV, audio levels (Master 60%, Music 25%, Hostile 75%, Neutral/Ambient 40%), and active resource packs **on first launch only**.
|
2. `extra/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 only** via `/config/defaultoptions/extra/options.txt`.
|
||||||
*Note:* Root `options.txt` is intentionally **excluded** from the AutoModpack server sync repository (`automodpack/host-modpack/main/options.txt`) so that player sound, graphics, and FOV customizations persist between sessions without being overwritten on boot.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -216,9 +215,7 @@ scp keybindings.txt ubuntu@sotoserver:~/mcserver/instances/forge-1.20.1-survival
|
||||||
|
|
||||||
# 2. Extract and push updated first-launch options (stripped of keybinds)
|
# 2. Extract and push updated first-launch options (stripped of keybinds)
|
||||||
grep -v "^key_" options.txt > options_clean.txt
|
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/config/defaultoptions/options.txt
|
scp options_clean.txt ubuntu@sotoserver:~/mcserver/instances/forge-1.20.1-survival/runtime/data/automodpack/host-modpack/main/config/defaultoptions/extra/options.txt
|
||||||
|
|
||||||
# Note: DO NOT place options.txt directly in automodpack/host-modpack/main/options.txt
|
|
||||||
|
|
||||||
# Restart server container to update payload manifest
|
# Restart server container to update payload manifest
|
||||||
ssh sotoserver "docker restart mc_forge_server"
|
ssh sotoserver "docker restart mc_forge_server"
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
| 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", "/config/**"]` | Dynamic modpack delivery, trusted instant join, and forced client payload sync |
|
| **AutoModpack** | `runtime/data/automodpack/automodpack-server.json` | `validateSecrets` / `forceCopyFilesToStandardLocation` | `false` / `["/mods/*.jar", "/config/**"]` | Dynamic modpack delivery, trusted instant join, and forced client payload sync |
|
||||||
| **Default Options** | `runtime/data/automodpack/host-modpack/main/config/defaultoptions/` | `keybindings.txt` / `options.txt` | Keybinds (`key_key.*`) / Options (`soundCategory_*`, FOV, graphics) | `keybindings.txt` enforces key mappings on boot; `options.txt` sets initial graphics/audio defaults on first boot without wiping user options later. |
|
| **Default Options** | `runtime/data/automodpack/host-modpack/main/config/defaultoptions/` | `keybindings.txt` / `extra/options.txt` | Keybinds (`key_key.*`) / Options (`soundCategory_*`, FOV, graphics, resourcePacks) | `keybindings.txt` enforces key mappings dynamically on boot; `extra/options.txt` force-applies graphics, audio, FOV, and resource pack defaults on first launch without overwriting user options later. |
|
||||||
| **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) |
|
| **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 |
|
| **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`) |
|
| **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`) |
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Default Options Master Template (`runtime/data/automodpack/host-modpack/main/config/defaultoptions/options.txt`)
|
### 2. Default Options Master Template (`runtime/data/automodpack/host-modpack/main/config/defaultoptions/extra/options.txt`)
|
||||||
```text
|
```text
|
||||||
version:3465
|
version:3465
|
||||||
autoJump:false
|
autoJump:false
|
||||||
|
|
@ -152,164 +152,6 @@ onlyShowSecureChat:false
|
||||||
panoramaScrollSpeed:1.0
|
panoramaScrollSpeed:1.0
|
||||||
telemetryOptInExtra:false
|
telemetryOptInExtra:false
|
||||||
onboardAccessibility: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.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_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_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:0.6
|
soundCategory_master:0.6
|
||||||
soundCategory_music:0.25
|
soundCategory_music:0.25
|
||||||
soundCategory_record:1.0
|
soundCategory_record:1.0
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ key_key.left:key.keyboard.a
|
||||||
key_key.back:key.keyboard.s
|
key_key.back:key.keyboard.s
|
||||||
key_key.right:key.keyboard.d
|
key_key.right:key.keyboard.d
|
||||||
key_key.jump:key.keyboard.space
|
key_key.jump:key.keyboard.space
|
||||||
key_key.sneak:key.keyboard.left.control
|
key_key.sneak:key.keyboard.left.shift
|
||||||
key_key.sprint:key.keyboard.left.shift
|
key_key.sprint:key.keyboard.left.control
|
||||||
key_key.drop:key.keyboard.q
|
key_key.drop:key.keyboard.q
|
||||||
key_key.inventory:key.keyboard.e
|
key_key.inventory:key.keyboard.e
|
||||||
key_key.chat:key.keyboard.t
|
key_key.chat:key.keyboard.t
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#Packet Fixer config file.
|
#Packet Fixer config file.
|
||||||
#Default values (minecraft default): nbtMaxSize 2097152, packetSize 1048576, decoderSize 8388608 and varInt21Size 3.
|
#Default values (minecraft default): nbtMaxSize 2097152, packetSize 1048576, decoderSize 8388608 and varInt21Size 3.
|
||||||
#Max values are 2147483647 for packetSize/decoderSize/varInt21 and 9223372036854775807 for nbtMaxSize.
|
#Max values are 2147483647 for packetSize/decoderSize/varInt21 and 9223372036854775807 for nbtMaxSize.
|
||||||
#Sun Aug 16 06:30:35 UTC 2026
|
#Sun Aug 16 15:42:08 UTC 2026
|
||||||
chunkPacketData=2097152
|
chunkPacketData=2097152
|
||||||
varLong=10
|
varLong=10
|
||||||
nbtMaxSize=2097152
|
nbtMaxSize=2097152
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue