### Self-Installing Server Launcher with Crash Recovery (Windows) Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Launches a Minecraft server, installing NeoForge if necessary and implementing a crash-restart loop. It reads settings from settings.cfg for JVM arguments and crash thresholds. Automatically creates minimal server.properties and eula.txt on first run. ```batch :: Place this script (and settings.cfg) in the Minecraft server root, then run: start-automated-server.bat :: To install NeoForge binaries without starting the server: start-automated-server.bat install :: Crash-loop behaviour (from settings.cfg): :: CRASH_COUNT=5 → halts after 5 consecutive crashes :: CRASH_TIMER=600 → resets counter if last crash was >600 seconds ago :: Server start command constructed at runtime: :: java -Xmx4G -Xms2G :: @user_jvm_args.txt :: @libraries/net/neoforged/neoforge/21.1.218/win_args.txt :: nogui :: Log file: logs/serverlog.log (recreated on each launch) ``` -------------------------------- ### Setup Git Post-Merge Hook for Instance Sync (Windows) Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Registers a Git post-merge hook to automatically run InstanceSync.jar after every git pull. This ensures local repository changes are synced to the CurseForge App instance without manual copying. ```batch :: Run once from the repository root (or double-click from the automation/ folder): :: automation\InstanceSyncSetup.bat :: What it does: :: 1. cd .. (moves to repository root) :: 2. Creates/overwrites .git/hooks/post-merge with: :: #!/bin/sh :: java -jar InstanceSync.jar :: 3. Immediately runs InstanceSync.jar once to apply current state :: After setup, any `git pull` in the repo will automatically call InstanceSync :: to sync config, kubejs, and pack menu files into the CurseForge instance. ``` -------------------------------- ### Generate CurseForge manifest.json Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Reads minecraftinstance.json to create a standards-compliant manifest.json for the modpack ZIP. This manifest lists all installed addons with their project and file IDs. ```powershell # Called automatically by New-ClientFiles; can also be invoked standalone: . .\settings.ps1 . .\modpack-uploader.ps1 New-ManifestJson # Produces manifest.json at $INSTANCE_ROOT/manifest.json: # { # "minecraft": { # "version": "1.21.1", # "modLoaders": [{ "id": "neoforge-21.1.218", "primary": true }] # }, # "manifestType": "minecraftModpack", # "manifestVersion": 1, # "name": "Enigmatica10", # "version": "1.29.0", # "author": "EnigmaticaModpacks", # "files": [ # { "projectID": 238222, "fileID": 7435977, "required": true }, # { "projectID": 310746, "fileID": 5433036, "required": true } # // ... all 300+ mods # ], # "overrides": "overrides" # } ``` -------------------------------- ### Remove client-only mods from server Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Filters the server's mods directory by deleting JAR files that start with predefined client-only mod identifiers. This script is automatically invoked during server updates and startups. ```powershell # automation/remove-client-mods.ps1 # Add mod name prefixes to $CLIENT_MODS_TO_REMOVE_FROM_SERVER_FILES to extend the list. $CLIENT_MODS_TO_REMOVE_FROM_SERVER_FILES = @( "Ding", "ReAuth", "moreoverlays", "Neat", "Toast-Control", "PackMenu", "CustomWindowTitle", "BetterF3", "lighty", "sodium", "iris", "smithingtemplateviewer" ) # Example: removes iris-neoforge-1.8.12+mc1.21.1.jar because it starts with "iris" # Console output: # Removing client only mods... # Removed the client mod iris # Removed the client mod sodium # Removed the client mod PackMenu ``` -------------------------------- ### Configure Server Startup in INI Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Sets JVM memory, garbage collection flags, and version strings for server startup. This configuration is consumed by batch/shell scripts. ```ini ; automation/settings.cfg MAX_RAM=4G JAVA_ARGS=-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \ -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \ -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \ -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \ -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 \ -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 \ -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \ -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true \ -Dfml.readTimeout=180 -Dfml.queryResult=confirm CRASH_COUNT=5 ; max consecutive crashes before the script halts CRASH_TIMER=600 ; seconds window for consecutive-crash detection RUN_FROM_BAD_FOLDER=0 MODPACK_NAME=Enigmatica 10 MCVER=1.21.1 FORGEVER=21.1.218 ``` -------------------------------- ### Prepare for release housekeeping Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Automates pre-release tasks including closing GitHub issues, updating version strings in configuration files, and generating a CHANGELOG stub. Requires GitHub token and repository settings. ```powershell # Requires $GITHUB_TOKEN in secrets.ps1 and $GITHUB_NAME / $GITHUB_REPOSITORY in settings.ps1 cd automation .\prepare-for-release.ps1 # Console output example: # Please Merge Develop into Master # # Closing issue: https://github.com/EnigmaticaModpacks/Enigmatica10/issues/517 # Closing issue: https://github.com/EnigmaticaModpacks/Enigmatica10/issues/520 # ----- # # ### Enigmatica 10 1.29.0 # # NeoForge-1.21.1-21.1.218 | [Mod Updates](...) | [Modlist](...) # # #### Added Mods # #### Removed Mods # #### Improvements # #### Bugs Fixed # - Fix missing tags on Lignite (#520) (green) # - Fix loot for Chipped quest (#517) (green) ``` -------------------------------- ### Execute Modpack Release Pipeline Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Initiates the full release process, including validation, building client/server files, uploading to CurseForge, and generating changelogs/mod lists. Requires 7zip and curl on PATH, and secrets.ps1 with CurseForge token. ```powershell # Run from the automation/ directory (requires secrets.ps1 with $CURSEFORGE_TOKEN) # Prerequisites: 7zip on PATH, curl on PATH, PowerShell 5+ cd automation . modpack-uploader.ps1 # Expected console output (abbreviated): # Creating Client Files... # Adding config to client files. # Adding kubejs to client files. # Client files Enigmatica10-1.29.0.zip created! # Uploading client file to CurseForge... # Upload complete. File ID: 7563000 # Creating Server Files... # Server files Enigmatica10Server-1.29.0.zip created! # Generating changelog... # changelogs/changelog_mods_1.29.0.md created! # changelogs/modlist_1.29.0.md created! ``` -------------------------------- ### Full Mod Inventory List Format Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Lists all mods included in a specific version of the modpack, with links to their CurseForge pages and author credits. This format is used for both the canonical MODLIST.md and versioned snapshots. ```markdown ## Enigmatica10 - 1.29.0 * [aaron-1.21.1-1.5.0-build.141.jar](https://www.curseforge.com/minecraft/mc-mods/aaron/files/7435977) (by [aaronhowser1](https://www.curseforge.com/members/aaronhowser1/projects)) * [appliedenergistics2-19.2.17.jar](https://www.curseforge.com/minecraft/mc-mods/applied-energistics-2/files/7027323) (by [thetechnici4n](https://www.curseforge.com/members/thetechnici4n/projects)) * [create-1.21.1-6.0.9.jar](https://www.curseforge.com/minecraft/mc-mods/create/files/7408951) (by [simibubi](https://www.curseforge.com/members/simibubi/projects)) * [Mekanism-1.21.1-10.7.17.83.jar](https://www.curseforge.com/minecraft/mc-mods/mekanism/files/7132168) (by [bradyaidanc](https://www.curseforge.com/members/bradyaidanc/projects)) ``` -------------------------------- ### Configure Release Settings in PowerShell Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Defines essential variables for the modpack release process, including project IDs, version strings, and included/excluded files. Edit this file before running any release script. ```powershell # automation/settings.ps1 (key variables shown) $CURSEFORGE_USER = "NillerMedDild" $CURSEFORGE_PROJECT_ID = 1038391 $MODPACK_NAME = "Enigmatica10" $CLIENT_NAME = "Enigmatica10" $MODPACK_VERSION = "1.29.0" $LAST_MODPACK_VERSION = "1.28.0" # Folders copied into the client overrides ZIP $FOLDERS_TO_INCLUDE_IN_CLIENT_FILES = @("config", "defaultconfigs", "packmenu", "kubejs") # Client-side configs stripped before packaging $CONFIGS_TO_REMOVE_FROM_CLIENT_FILES = @( "embeddium-options.json", "iris.properties", "jei/bookmarks.ini", "NoChatReports/NCR-Client.json" # ... many more ) # Enable/disable individual pipeline steps $ENABLE_CLIENT_FILE_MODULE = $true $ENABLE_MODPACK_UPLOADER_MODULE = $true $ENABLE_SERVER_FILE_MODULE = $true $ENABLE_SERVERSTARTER_MODULE = $true $ENABLE_CHANGELOG_GENERATOR_MODULE = $true $ENABLE_MODLIST_CREATOR_MODULE = $true $ENABLE_GITHUB_RELEASE_MODULE = $true ``` -------------------------------- ### Update live server with new commits Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Checks for new commits on a specified Git branch, optionally backs up the world and mods, pulls the latest changes, copies server files, removes client-only mods, and extracts overrides. Safe for offline server updates. ```powershell # Parameters (all optional, shown with defaults): .\automation\update-server.ps1 ` -targetBranch "master" ` # git branch to track -worldFolder "world" ` # world save directory name -backupFolder "backups" ` # where archives are written -backupWorld $true ` # compress and archive the world before updating -backupMods $true ` # compress and archive mods/ before updating -backupsToKeep 12 ` # maximum number of backup archives to retain -serverFileFolder "server_files" # What it does step by step: # 1. git fetch + rev-list to detect commits behind origin/master # 2. Prune oldest backup archives if count > $backupsToKeep # 3. Compress mods/ → backups/mods/MM.dd.yyyy-HH.mm.zip # 4. Compress world/ → backups/world-MM.dd.yyyy-HH.mm.zip # 5. git stash && git reset --hard && git pull origin master # 6. Copy automation/settings.cfg and server start scripts to root # 7. Run remove-client-mods.ps1 to delete client-only .jar files # 8. Copy overrides/ contents back into the instance root ``` -------------------------------- ### Per-Release Mod Changelog Format Source: https://context7.com/enigmaticamodpacks/enigmatica10/llms.txt Documents added, removed, or updated mods between releases. Includes version changes and links to CurseForge for updated mods. This format is auto-generated by a pipeline step. ```markdown ## Enigmatica10 - 1.28.0 -> 1.29.0 ### Added * [Configurable](https://www.curseforge.com/minecraft/mc-mods/configurable) * [ConnectedTexturesMod](https://www.curseforge.com/minecraft/mc-mods/ctm) * [Neruina - Ticking Entity Fixer](https://www.curseforge.com/minecraft/mc-mods/neruina) ### Changed * ae2importexportcard-1.21.1-1.4.1.jar -> ae2importexportcard-1.21.1-1.4.2.jar * enderio-8.0.7-alpha.jar -> enderio-8.1.1-beta.jar * modernfix-neoforge-5.25.1+mc1.21.1 -> modernfix-neoforge-5.26.1+mc1.21.1 * occultism-1.21.1-neoforge-1.203.0 -> occultism-1.21.1-neoforge-1.205.0 ### Removed ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.