-
continuous
Pre-releaseAll checks were successfulDocumentation / Writerside webhelp (push) Successful in 3m43sContinuous / Build JAR (push) Successful in 12m52sQodana / scan (push) Successful in 21m17sDocker Test / build image (push) Successful in 27m2sContinuous / Build AppImage (x86_64) (push) Successful in 3m35sTest / build (push) Successful in 18m20sContinuous / Build AppImage (aarch64) (push) Successful in 3m43sQodana / notify (push) Successful in 51sDocumentation / Help image (push) Successful in 14m16sContinuous / Build Install4J Media (push) Successful in 11m2sContinuous / Continuous Pre-Release (push) Successful in 5m0sreleased this
2026-09-07 07:07:07 +02:00 | 0 commits to develop since this release🔄 Continuous Dev-Build
Built: 2026-09-07 06:23:34 UTC
Commit:300a4aae6c80b36befbc67f19e67d23b4bbdc88e
This is an automated development build, updated every time changes are pushed to
develop.⚠️ Warning: Do not use unless you have been told to, or are curious about the contents of the dev build.
🚫 Do not link to this release.
Downloads
-
Source code (ZIP)
57 downloads
-
Source code (TAR.GZ)
34 downloads
-
Source code (ZIP)
-
9.0.0-alpha.7
Pre-releaseSome checks failedGenerate Release / semantic-release (push) Has been skippedBuild Release / Preparations (push) Successful in 56sDocker Test / build image (push) Successful in 18m7sDocumentation / Help image (push) Successful in 6m5sDocumentation / Writerside webhelp (push) Successful in 1m58sTest / build (push) Successful in 16m7sQodana / notify (push) Successful in 19sQodana / scan (push) Successful in 15m54sBuild Release / Docker images (push) Successful in 15m36sBuild Release / JARs, media and checksums (push) Successful in 34m52sBuild Release / Forgejo release (push) Successful in 3m29sBuild Release / VirusTotal scan (push) Successful in 3m8sBuild Release / Publish Maven (push) Successful in 8m16sBuild Release / Mirror release outward (push) Failing after 1m15sreleased this
2026-08-23 18:12:52 +02:00 | -728 commits to main since this release✂️ Refactor
- audit iteration 19's consistency findings, and the re-derived counts (4b9c056)
- clientside: extract the navigation options so they can be pinned (723394f)
- clientside: split staging from selection in prepareBootPack (45b7fac)
- grinder: drop a branch that cannot change an output (72dc9d2)
- grinder: read the container-user override in the entry point (c14e750)
📔 Docs
- audit iteration 17 — the container-identity branch (6054c0d)
- audit iteration 18, and the two findings it fixed in passing (f81c174)
- audit iteration 19 — third pass and the equivalence check (4a1b7a5)
- audit iteration 20 — the graceful-shutdown branch (975a951)
- audit iteration 21 — second pass over the shutdown work (95198b6)
- audit iteration 22 — third pass and the equivalence check (b01fed9)
- audit iteration 23 — the CPU-cap branch (b27b535)
- correct the clientside suite count to the 113 the run reports (b31667a)
- record iteration 23's resolutions, and why M3 stands (50987b7)
- record the container-identity outage and the /as-properties endpoint (76a6769)
- record the CPU-cap knob and the quota-without-period finding (751edb2)
- record the cross-loader reconciliation and the CurseForge window (8f8b165)
- record the memory knob and the heap derivation behind its warning (54d32af)
- record the other-version crash re-check and what arms it (ae2a11b)
- grinder: close the deployment gaps this outage ran into (31e6967)
- grinder: explain a crash weighed against another loader (415284e)
- grinder: tell the operator what a re-checked crash looks like (a0263c2)
- grinder: the shutdown contract, and the cgroup fact behind it (067ebc3)
🧪 Tests
- pin the two joins audit iteration 17 found unguarded (02d8a39)
- clientside: pin cross-loader reconciliation and CurseForge file paging (5b5151f)
- clientside: pin that a verdict's own console is the log that is kept (01f153a)
- clientside: pin that an aborted navigation means the download started (a435735)
- clientside: pin the other-version crash re-check (847bdd0)
- grinder: drive SPC's real updater against the live /as-properties (c3cbf50)
- grinder: pin audit iteration 17's two silent-corruption findings (93bbab2)
- grinder: pin audit iteration 21's two shutdown gaps (8236c93)
- grinder: pin how the CPU cap is reported to the operator (f3b72af)
- grinder: pin that a failed install names an unwritable mount (5ecf8cd)
- grinder: pin that a positive CPU cap stays a cap (ebb8a2a)
- grinder: pin that the knob defaults and the class defaults agree (d005852)
- grinder: pin the per-container CPU cap and its wiring (6b159bf)
- grinder: pin the per-container memory cap and both caps' wiring (1fc9720)
- grinder: pin the pollable fallback-list properties document (47f9917)
- grinder: pin the shared window positively and against the real cap (2a90aa0)
- grinder: pin the shutdown invariant, its wiring and its 15s window (25c0c2c)
- grinder: pin what stopping the service must do to workers and containers (312745b)
- grinder: pin which uid:gid a container runs as (2964419)
🚀 Features
- grinder: express the container CPU cap in cores, against a stated period (00b5e77)
- grinder: make the per-container CPU cap configurable (65c921c)
- grinder: make the per-container memory cap configurable, with its warning (61fed6a)
- grinder: serve the fallback list as pollable properties at /as-properties (6be42c4)
- grinder: stop containers and workers gracefully, then kill them (25541a8)
🛠 Fixes
- ci: drop the gitlab.com release mirror, and stop curl hiding why (3b29a57)
- clientside: a crash cannot outrank another loader's clean boot (e4ea0b8)
- clientside: don't log "re-checking 0 other version(s)" (3400ff4)
- clientside: keep the file when CurseForge aborts the navigation (9df60fc)
- clientside: keep the reported verdict's own boot console (f036bf4)
- clientside: re-check a crash against the mod's other versions (7daca76)
- grinder: decide "uncapped" from the request, not from the arithmetic (11dfba6)
- grinder: diagnose a failed install from the whole console (8ec7440)
- grinder: make Ctrl-C stop a one-shot run, and share one 15s window (c7cc767)
- grinder: make the shared shutdown window real above eight containers (f7b0302)
- grinder: publish the worker list before starting the workers (6042833)
- grinder: report the CPU cap the way the operator set it (63cfd46)
- grinder: run containers as the owner of the pack they mount (de20741)
- grinder: stop two silent corruptions found by audit iteration 17 (3b4dc45)
VirusTotal
ServerPackCreator-9.0.0-alpha.7.jar- https://www.virustotal.com/gui/file-analysis/NzBlMjVjN2U4NzRiNWJlNmM2MWIwYTkwNWRlZTg3YjA6MTc4NzUwNjg3NQ==serverpackcreator-api-9.0.0-alpha.7-javadoc.jar- https://www.virustotal.com/gui/file-analysis/ZjQzNDM2ZDZiZWMzMjEyOTBmNmFmMjI4YWQ2MDI2MDQ6MTc4NzUwNjg3Ng==serverpackcreator-api-9.0.0-alpha.7-sources.jar- https://www.virustotal.com/gui/file-analysis/YTYzNWIyNDljYmZiNDM2NzdkZjFlNjYyNzdhMDNmNDU6MTc4NzUwNjg3OA==serverpackcreator-api-9.0.0-alpha.7.jar- https://www.virustotal.com/gui/file-analysis/MDE0NzZlNDFjZmFmMzAwMTEyMzg3MjBlZTY2ODE5NTU6MTc4NzUwNjg4MQ==serverpackcreator-app-9.0.0-alpha.7-javadoc.jar- https://www.virustotal.com/gui/file-analysis/ODY5NzZjMTNiZmZkNjEyNWU3ZGM5NzhjMDU5ZjMyOGM6MTc4NzUwNjg4Mw==serverpackcreator-plugin-example-9.0.0-alpha.7.jar- https://www.virustotal.com/gui/file-analysis/MWQ5YjdiZmRhNjc5NDA0Y2VjYTVjMTQ0NzFmZjYwNjE6MTc4NzUwNjg4Mw==
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
-
9.0.0-alpha.6
Pre-releaseSome checks failedGenerate Release / semantic-release (push) Has been skippedDocker Test / build image (push) Successful in 15m29sBuild Release / Preparations (push) Successful in 14sDocumentation / Help image (push) Successful in 2m48sDocumentation / Writerside webhelp (push) Successful in 1m20sTest / build (push) Successful in 13m25sQodana / notify (push) Successful in 7sQodana / scan (push) Successful in 12m22sBuild Release / Docker images (push) Successful in 12m33sBuild Release / JARs, media and checksums (push) Successful in 27m34sBuild Release / Forgejo release (push) Successful in 2m54sBuild Release / VirusTotal scan (push) Successful in 2m55sBuild Release / Publish Maven (push) Successful in 6m38sBuild Release / Mirror release outward (push) Failing after 3m1sreleased this
2026-08-23 10:53:24 +02:00 | -659 commits to main since this release⚠ BREAKING CHANGES
- modscanning: remove the deprecated JsonBasedScanner
✂️ Refactor
- adopt the Kotlin idioms Qodana flagged (d37fc61)
- collapse the redundant conditionals Qodana flagged (4e16694)
- use multi-dollar string literals for dollar-heavy patterns (98942b1), closes #106
- api: compile the Forge annotation-scanner's regexes once (10a5811)
- api: extract how a timeout is applied into URL.timedConnection (555e9c7)
- api: extract manifest refreshing into ManifestUpdater (832bf43)
- api: hoist the per-file path resolution out of the gatherer's walk (0e97be4)
- api: index the Quilt scan by jar instead of searching it per entry (fca71d3)
- api: inject PathsConfig's working directory (3c068ce)
- api: make ModpackZipInspector's archive-opening injectable (8e0c840)
- api: make the launcher-manifest candidates askable (765e1d5)
- api: narrow ManifestUpdater to internal, and correct the timeout landmine (342e630)
- app: extract the upload duplicate-check from saveUploadedFile (aa763be)
- app: move the check-timer's server probe and pack-name read behind the view model (d6be4b5)
- app: put the migration's database access behind MigrationStore (5afd12c)
- app: split the suggestion parse out of allSuggestions (dd4c217)
- grinder: drop the bind guards' !! and over-tight exception type (ad7aff5)
- grinder: extract the Preferences-node claim from main() (7cd43b5)
- grinder: extract the report URL from main() (e04c02e)
- modscanning: extract the scanner contract and share the dispatch (d04a62a)
- modscanning: remove the deprecated JsonBasedScanner (d132522)
- web: extract the config-location composition from start() (18f25c6)
📔 Docs
- add a CI secrets reference for the Forgejo workflows (5eeb4a7)
- add BUILD.md, a contributor-facing map of the build (fd8d674)
- add Kent Beck's ordering mantra to the conventions (52a192c)
- answer the Docker/Mongo investigation's open question (21bab7f)
- audit iteration 12 — the systemd home-resolution branch, and its resolutions (3e873af)
- audit iteration 13 — the report bind-address branch, and its resolutions (1db4b60)
- audit iteration 15 — third pass, auditing the first two passes' fixes (8ffc8bf)
- audit iteration 16 — the deployment script and unit (03524c2)
- audit the build-docs branch (fa3cdd1)
- audit the context/documentation commits (iteration 10) (08728c2)
- audit the coroutines/catalog branch, fourth pass (9560ec0)
- audit the parallelMap/coroutines branch, post-remediation pass (b33da60)
- audit the post-migration commits (iteration 8) (3db2fcc)
- audit the readme-refresh and jpa-relics branches (c97ac45)
- audit the remediation (iteration 9) (47bfaf0)
- audit the security-manager branch, second pass (141dc20)
- backlog the CLAUDE.md trim, deferred behind the open merges (3256fef)
- bring root CLAUDE.md back under the large-memory floor (5f7298b), closes #1 #2
- carry iteration 4's guards into the refactor-state table (35bcbdb)
- carry iteration 6's guards into the refactor-state table (34331ad)
- cite commit subjects in the audit report too, and record iteration 4 (f971438)
- cite commit subjects instead of hashes, and correct the stale timeout landmine (2052180)
- clear B30/B31/B32 from the backlog and record them (d37be2d)
- close L3 in the audit after fixing it (8f3a51f)
- close out audit findings H-1 and M-3 (1f7aef2)
- close out the audit findings (96b802a)
- Consolidate the two audit files into claude-docs/REFACTOR-AUDIT.md (eda82e2)
- correct the id types in the published API spec (8796eaa)
- correct the last copy of the clientside-workflow miscount (f9c9d88)
- correct the marker rule — B35 was tried and does not work (0138f87)
- correct the published run-configuration API shape (f391518)
- correct two CLAUDE.md claims that outlived the backlog items behind them (6f7e95c)
- load the build and CI landmines only when they apply (8dd6af0)
- mark the lazy-loading saving as unverified, because it is (6c94565), closes claude-code#16299 #16299 #22170 #16299
- point BUILD.md at where CI lives and what it needs (882f967)
- record iteration 16's resolutions, and the JVM trap in the README (845fb63)
- record M-2 as fixed and repair a stray edit in the audit (d56bb4e)
- record that URI query parameters reach the driver again (a7cf04a)
- record the build layout after the simplification (24e00c5)
- record the catalog, [plugins] and Kotlin-unification work (57ba3f2)
- record the equivalence audit, its method, and the two findings it surfaced (3e70bb4)
- record the generation-throughput work, including the corrected estimates (53f3e12)
- record the grinder's report bind address in the status table (7033c23)
- record the GUI typing-path work (613b9ec)
- record the index-creation landmine and iteration 5 (2955212)
- record the network/startup work and backlog its follow-ups (aea1ea5)
- record the parallelMap fix, the coroutines floor and the BOM landmine (1cc6c4b)
- record the Qodana moderate cleanup and the two new pins (d280474)
- record the render-vs-prop test rule, and why the tooltips stay untested (b0ee703)
- record the systemd home-resolution trap and the ordering it depends on (bb6545b)
- record the two API-shape changes the generation branch left unrecorded (17a621e)
- record the web query-shape and DBRef-flattening work (e484a28)
- record what actually blocks the configuration cache (5fc3ca3)
- regenerate the API spec for the merged entities, and correct the suite counts (f158362)
- regenerate the OpenAPI spec from the controllers (ef13d48)
- stop CI-SECRETS.md pinning an install4j version it does not own (9832ace)
- the paths: scoping works — verified, and the earlier test was the wrong one (fb96ea3), closes #16299 #22170
- api: make the SKIP_JAVA_CHECK read intentional and guarded (c0b1457)
- app: re-verify the Mongo URI landmine at the versions now resolved (e3289e3)
- ci: record the release pipeline's two silent killers and the alpha-tag repair (7780da5)
- deprecation: suppress the intentional 6.0.0 deprecation warnings (9f92e8a)
- modscanning: record the scan-log-level rules (4f67393)
- modscanning: record the shared dispatch and correct the versioning-scheme survey (d76e2ed)
- readme: refresh stale content (d1ece9b)
- updater: record the pre-release ordering fix (486976e)
📦 Other
- Change logging to suggest report to author and include exception in log (6026f36)
- ignore Claude Code's per-developer files (f32c820)
- Please Please Please test your server packs before you release them (d858b8f)
- Refactor audit thanks to Claude (bd62619)
- Regenerate the license agreement for install4j-runtime 13.1 (1c90465)
- Update-To-Date license agreement (2611aed)
- web: drop the JPA/H2/JDBC relics from the Spring properties (24390e3)
🦊 CI/CD
- add a [plugins] catalog section and alias it from the build scripts (a8f1588)
- align springGradle with springBoot at 4.1.0 (f4dec99)
- Bump install4j to 13 (2c8de2c)
- bump Kover to 0.9.9 (96cb684)
- bump the Kotlin compiler to 2.4.10 (f0bf003)
- bump third-party library versions in the catalog (e55ddfe)
- collapse the four Kotlin entries onto one version ref (2be03f8)
- consume plugin markers in buildSrc instead of implementation artifacts (6325735)
- declare repositories once, in settings.gradle.kts (260f6f0)
- drop the orphaned io.spring.dependency-management plugin (66c77c0)
- let Gradle provision the JDK for the modules, not just for buildSrc (efcfbc8)
- move library versions into the version catalog (010e2f3)
- move the version catalog to gradle/libs.versions.toml (3e4afb9)
- remove cross-project configuration from the root build (689e4dc)
- remove duplicated and dead build logic (7511673)
- remove script-object captures from task actions (0c3da90)
- replace plugin-example's configuration-time copies with a Copy task (2c48f22)
- replace the configuration-time copies with real Copy tasks (2eccd20)
- route nekodetector and the Boot BOM through the catalog (b4e6fe9)
- scope publishing and signing to the api module (5992f57)
- upgrade Gradle to 9.7.1 (2f6894a)
- use lazy task references everywhere (45bce07)
- fix the credentials and references the migration got wrong (d894362)
- fix the ordering and re-run defects the first release would have hit (dfd4352)
- make the Docker diagnostic name its runner, and record what B26-B29 still need (e295ee0)
- move CI/CD to Forgejo, and retire GitLab CI (832eb46), closes forgejo#9203
- stop a release publishing its prereleases' changelogs, and fail loudly on upload errors (d00d094)
🧪 Tests
- make three guards that passed for the wrong reason actually bite (d3b20a0)
- api: pin hasteBinPreChecks before it stops reading whole files (522ab1e)
- api: pin home resolution against an unwritable working directory (ada7476)
- api: pin how often a modpack archive's central directory is read (e79f0ee)
- api: pin that a fresh install's fallback database-URI is usable (594cf5a)
- api: pin that an unknown Java version drops the security-manager flag (0ff2784)
- api: pin that an unreachable host leaves the present manifest intact (a189022)
- api: pin that HTTP calls give up instead of hanging forever (13a4b97)
- api: pin that parallelMap neither leaks a thread nor serialises (e55ba89)
- api: pin that the fallback-list refresh gives up instead of hanging (8ba6484)
- api: pin that the regex mod-lists are not shared between reads (40b0934)
- api: pin that the writability probe cannot be defeated by a name collision (af939d0)
- api: pin the cost of the clientside-exclusion loop (ac50171)
- api: pin the Java-resolve and fail-safe guard in all three templates (63a0860)
- api: pin what a manifest check costs (7dedca7)
- app: assert the components that only work if Spring created them (a9ddf98)
- app: characterize the EventService and RunConfigurationService store loops (d603378)
- app: characterize VersionChecker's pre-release comparison (ec79084)
- app: cover the migration runner's safety decisions (f021610)
- app: pin how often the check-timer consults the network and the disk (6537259)
- app: pin that a duplicate hash cannot break the upload check (7965520)
- app: pin that an upload's duplicate-check does not scan the collection (57090e1)
- app: pin that index creation is never a condition of starting up (ff83e6d)
- app: pin that the autocomplete list is parsed once, not per keystroke (1e9c748)
- app: pin that the database-URI key is one Spring Boot still reads (a2cdb9e)
- app: pin that the declared upload-hash index is actually created (3a7efd6)
- app: pin that the stats endpoint counts instead of scanning (0e0fc76)
- app: pin that the update check gives up instead of hanging (b58f866)
- app: pin the 9.0.0 migration for the renamed database property (4a84834)
- app: pin the migrated collection's name against the mapping it mirrors (c7e9a40)
- app: pin the two VersionChecker pre-release comparison defects (866c139)
- app: read the shipped application.properties, not the test copy that shadows it (8ad9f2f)
- frontend: assert the rendered mod-lists, not the props they came from (15b7754)
- grinder: bound the ordering guard to main's own body (b4f5c4e)
- grinder: pin that an already-bracketed IPv6 bind is not bracketed twice (badcc93)
- grinder: pin that the SPC environment is claimed before the first log statement (4624a57)
- grinder: pin that the unit tells the operator how to provide Java (68046d4)
- grinder: pin the logged report URL for wildcard and IPv6 binds (041d3f9)
- grinder: pin the report's bind address and its wiring (7b8e762)
- grinder: pin the systemd unit against the variables the service reads (c618340)
- modscanning: pin Forge scanner selection across both Minecraft schemes (f8cb89b)
- modscanning: pin that a Forge mod without dependencies keeps its id (b0e52a3)
- modscanning: pin the shared scanner dispatch directly (9a37368)
- web: pin the eight-location Spring config chain (d321722)
- web: replace WebServiceTest with a real application-context test (c8b5512)
🚀 Features
- api: add configurable network timeouts (8af3540)
- api: offer an ETag so the Forge manifest can answer 304 too (71c83c1)
- app: add an indexed findBySha256 to the modpack repository (26f342e)
- app: report the renamed database property when upgrading to 9.0.0 (2f91f5f)
- build: cross-package the aarch64 AppImage, so it needs no arm runner (ee766bb)
- ci: expire test.yml's artifacts instead of keeping them for 90 days (5b32620)
- ci: link the Qodana report artifact from Discord, not the run page (1cd2ac2)
- ci: put the report's expiry in the Discord message as a Discord timestamp (420a46b)
- grinder: make the report's bind address configurable (f91cedf)
- grinder: ship an example systemd unit and an installer (f9a0494)
🛠 Fixes
- If no (Neo)Forge or Minecraft dependency is declared, assume sideness server (7abd7c8)
- api: bound the fallback-list refresh (733db7c)
- api: halve startup requests and skip unchanged manifests (5f92b63)
- api: hand out a fresh regex mod-list per read (9b00946)
- api: make the fallback database-URI a URI the driver accepts (add8982)
- api: measure a HasteBin candidate without materialising it (b5add6c)
- api: never resolve the home directory to a place SPC cannot write (b470496)
- api: probe writability with a name nothing else can hold (79c34df)
- api: read a modpack archive once per inspection (cd75f24)
- api: refresh the version manifests in the background, not during construction (211dc83)
- api: resolve Java after installing it, and fail safe when it is unknown (5f4bce2)
- api: route every outbound call through one timed opener (5625223)
- api: route the HasteBin POST through the shared opener too (e1a593e)
- api: sanitise a network timeout once per assignment (9ef4191)
- api: stop a bad regex aborting the mod-list, and hoist the loop invariants (f77a5c6)
- api: stop parallelMap leaking a thread per call, and make it parallel (ae18f56)
- api: write the database-URI under the key Spring Boot 4 actually reads (f509eed)
- app: bound the update check's requests (27f544b)
- app: cache the autocomplete parse, and stop reinstalling the LAF per keystroke (a7b3ff9)
- app: count the stats totals instead of scanning three collections (13467fc)
- app: create the declared indexes after startup, not during it (93cee51)
- app: create the indexes the web module declares (327e458)
- app: embed the run-configuration mod lists, and migrate what is stored (918ca03)
- app: key the installer-probe memo on a Triple instead of NUL-delimited text (bc6c78c)
- app: look an upload's hash up by index instead of scanning every modpack (4f82e4b)
- app: stop the check-timer re-probing the network and re-parsing the manifest (e4ec252)
- app: tolerate duplicate hashes in the upload duplicate-check (1b287ab)
- build: declare mockk explicitly in -app so it matches -api (e732079)
- build: declare the Java compilations on dokka's HTML publication too (dbcb80c)
- build: import Boot's BOM as a platform so the catalog wins (3ab1abe)
- build: keep the install4j plugin off buildSrc's compile classpath (6969313)
- build: replace the Gradle APIs 9.7 deprecates and 10 removes (8a795b4)
- ci: drop the Qodana Cloud token the project cannot have (d4af07b)
- ci: keep the Forgejo token out of release-generate's remote URL (20cd6ed)
- ci: make the sibling-container steps work under docker-in-docker (d21caeb)
- ci: pin semantic-release's plugin majors so a preset bump can't break the release (97f487e)
- ci: rename the Forgejo credentials off the reserved FORGEJO_ prefix (710e8ea)
- ci: scope the Forgejo credential to the checkout, not the runner (5039fd7)
- ci: stop running jobs inside tool containers, and drop the inert permissions (5bc0434)
- ci: use Forgejo's patched artifact actions, which do not refuse a non-GitHub host (8830248)
- docs: repair the broken KDoc links and drop a redundant inner modifier (b5dec4d)
- grinder: close every finding from audit iteration 16 (70a10fd)
- grinder: don't bracket an already-bracketed IPv6 bind, and stop --help truncating (6d4a86c)
- grinder: harden the installer, and record audit iteration 14 (f158699)
- grinder: make the logged report URL openable for wildcard and IPv6 binds (43249a6)
- grinder: pin SPC's home to the daemon's base before anything logs (d4eec4b)
- modscanning: log a jar with no descriptor at debug, keep real failures loud (30bcdc6)
- modscanning: select the Forge scanner from the whole Minecraft version (4dbf653)
- modscanning: treat an absent dependencies block as no dependencies (46a8a7b)
- updater: order pre-releases by channel, and pick the latest by version (f6df209)
VirusTotal
ServerPackCreator-9.0.0-alpha.6.jar- https://www.virustotal.com/gui/file-analysis/NmI1ZDczZWM4MjAyNTliZTZmODJiMTk5Mzc1YTcyN2Q6MTc4NzQ3OTAxMg==serverpackcreator-api-9.0.0-alpha.6-javadoc.jar- https://www.virustotal.com/gui/file-analysis/ZjQzNDM2ZDZiZWMzMjEyOTBmNmFmMjI4YWQ2MDI2MDQ6MTc4NzQ3OTAxMg==serverpackcreator-api-9.0.0-alpha.6-sources.jar- https://www.virustotal.com/gui/file-analysis/ZTNmYTZiZTVkZDRjZmZlYWYxNTg3OWE0YzU5NTQ3OWU6MTc4NzQ3OTAxNA==serverpackcreator-api-9.0.0-alpha.6.jar- https://www.virustotal.com/gui/file-analysis/NTY5NjliNGY2OGE5NmEzNTM4MWNjNWYyMGE4ZmQxN2Y6MTc4NzQ3OTAxOA==serverpackcreator-app-9.0.0-alpha.6-javadoc.jar- https://www.virustotal.com/gui/file-analysis/YjgyYjc3MTMyMzJmNzBkYTI1MzllZjZhMzgxODMyMTg6MTc4NzQ3OTAyMA==serverpackcreator-plugin-example-9.0.0-alpha.6.jar- https://www.virustotal.com/gui/file-analysis/NzJhOTE3OTBlNGMwN2Y3YzQ2ZGVlYzE2MGI1NTEwYmM6MTc4NzQ3OTAyMQ==
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Pre-Release 9.0.0-alpha.5
Pre-releaseSome checks failedclientside-report-reusable.yml / RELEASE: 9.0.0-alpha.5 (push) Failing after 0sCreate GitHub Pre-Release after GitLab tag mirror / Preparations (push) Successful in 13sCreate GitHub Pre-Release after GitLab tag mirror / JAR and media (push) Failing after 11sCreate GitHub Pre-Release after GitLab tag mirror / PreRelease (push) Failing after 7sCreate GitHub Pre-Release after GitLab tag mirror / News on Discord (push) Has been skippedTest / build (push) Failing after 19m9sreleased this
2026-08-15 00:16:10 +02:00 | -395 commits to main since this release9.0.0-alpha.5 (2026-08-14)
✂️ Refactor
- Remove dead code after modscan-rewrite (0df7b28)
- api: build ScannedMod complete instead of assigning into it (7a37426)
- api: compare scanned mods by jar, not by filename (8d0022c)
- api: read the exclusion filter once instead of three times (198ff2b)
- api: remove the unreachable copy-loop from the Quilt arm (9459b0c)
- api: rename ScanResult.kt to ScannedMod.kt (4793620)
- clientside: rename Sideness to DeclaredSupport (90fed95)
📔 Docs
- close out the audit after the tidy-up branch (6a88369)
- correct the stale app and web-frontend test counts (13d63a9)
- move the dated narrative history out of CLAUDE.md into REFACTOR-LOG.md (0e31fd2), closes gitlab-runner#27496
- record the I-6 fix and correct the suite count (39a285c)
- record the modscanning hardening and correct the modloader-fallback claim (1f93755)
- update the refactor audit to reflect the remediation (51a8db3)
- api: correct ReadmeExamplesTest's stale and invented references (3fabed7)
- api: document the scanned-mod types (d6b86ee)
- clientside: record why DeclaredSupport and Sideness stay separate (6fc8c26)
- grinder: add a clone-to-results quickstart (385532b)
📦 Other
- Add clientside-only mods to the list. Thanks to @ModernGamingWorld @szszabi2002 @Joly0 for the reports! (5a03123)
- api: drop the unused SupportedModloaders.quilt import (d9a9778)
🦊 CI/CD
- run the frontend Vitest suite as part of
check(33a6361) - deps: bump org.jetbrains.kotlin:kotlin-test-junit5 (f4e4e20)
- deps: bump org.junit.platform:junit-platform-launcher (3b17c1f)
🧪 Tests
- Use correct syntax to test contents (d185fd7)
- api: pin auto-exclusion and Quilt de-duplication in ModListCompiler (7279962)
- api: pin dependency extraction and Forge platform-side inference (5eb1edd)
- api: pin that an unrecognised modloader still yields every mod - RED (b8f809f)
- api: pin that the dependency rescue reaches clientside mods - RED (d8dfeb4)
- api: pin the Quilt arm against a fabric-only jar (581ca46)
- api: pin the SERVER default for a descriptor without an environment (793b8fc)
- api: pin the unreadable-jar sideness and modID fallback (010db69)
🛠 Fixes
- Aggregate Quilt-scan results to prevent double-entries (35cb727)
- Prevent duplicate entries (7004f3c)
- Prevent the modID being the same by acquiring it from the mod-file (2ec5ff2)
- Quilt mod with no env is not treated as SERVER (bf226c2)
- Vastly improve automated modscanning to catch and process sideness more reliably, as well as taking care of dependencies (0a12d41)
- api: include every mod when the modloader is unrecognised (2eafe1b)
- api: let the dependency rescue reach clientside mods (35c5787)
- api: log the Quilt entry being replaced, not its replacement (b855873)
About Pre-Releases
Do not release or publish a server pack generated using a pre-release of ServerPackCreator to your users.
If you do, and it turns out that your server pack doesn't work because of a bug in ServerPackCreator, that's on you for using a pre-release.When using pre-release installers, make sure to uninstall the previous pre-release first. Otherwise, the installers
own version checks may trigger an error out of my control. After uninstalling, install the newly downloaded one and
you're good to go.Only use the installers if you are versed in system-administration, manually editing and removing services, editing registries,
so on and so forth.Alphas
Alphas are feature-incomplete and very likely to have bugs. Consider them broken by default. Use at your own risk!
Betas
Betas are feature-complete and probably have bugs. Additional features may be added during the beta-phase of any given release, though.
If you are updating from version 5 or older and used the installers, then make sure to uninstall any previous version(s)
before using the installers for versions 6 and newer.Additional Installer-Notes
It is recommended to have administration-privileges when using the Windows and macOS installers.
I am not a member of the Apple Developer Program and won't pay for codesign-certificates, therefor installers are unsigned.
Running a given installer may produce warnings depending on what OS you are using. You may choose to install it anyway, please be aware though that doing so is, in general, not a safe practice. For ServerPackCreator, though, it is unfortunately the only way to run the installer.macOS DMG
MacOS will complain about potential security risks and refuse to install and run ServerPackCreator. To circumvent this, please see the official guides depending on your version of macOS: Ventura, Monterey or newer.
Windows EXE
Hit "More information" if the Windows SmartScreen-message pops up. Afterward, a button will appear which will let you run the installer anyway.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Pre-Release 9.0.0-alpha.4
Pre-releaseSome checks failedclientside-report-reusable.yml / RELEASE: 9.0.0-alpha.4 (push) Failing after 0sCreate GitHub Pre-Release after GitLab tag mirror / Preparations (push) Successful in 23sCreate GitHub Pre-Release after GitLab tag mirror / JAR and media (push) Failing after 9sCreate GitHub Pre-Release after GitLab tag mirror / PreRelease (push) Failing after 6sCreate GitHub Pre-Release after GitLab tag mirror / News on Discord (push) Has been skippedTest / build (push) Failing after 19m20sreleased this
2026-08-04 22:14:03 +02:00 | -351 commits to main since this release9.0.0-alpha.4 (2026-08-04)
✂️ Refactor
- Remove unused and unnecessary imports (cfd0362)
🛠 Fixes
- Correctly check range (7e1f1cb)
About Pre-Releases
Do not release or publish a server pack generated using a pre-release of ServerPackCreator to your users.
If you do, and it turns out that your server pack doesn't work because of a bug in ServerPackCreator, that's on you for using a pre-release.When using pre-release installers, make sure to uninstall the previous pre-release first. Otherwise, the installers
own version checks may trigger an error out of my control. After uninstalling, install the newly downloaded one and
you're good to go.Only use the installers if you are versed in system-administration, manually editing and removing services, editing registries,
so on and so forth.Alphas
Alphas are feature-incomplete and very likely to have bugs. Consider them broken by default. Use at your own risk!
Betas
Betas are feature-complete and probably have bugs. Additional features may be added during the beta-phase of any given release, though.
If you are updating from version 5 or older and used the installers, then make sure to uninstall any previous version(s)
before using the installers for versions 6 and newer.Additional Installer-Notes
It is recommended to have administration-privileges when using the Windows and macOS installers.
I am not a member of the Apple Developer Program and won't pay for codesign-certificates, therefor installers are unsigned.
Running a given installer may produce warnings depending on what OS you are using. You may choose to install it anyway, please be aware though that doing so is, in general, not a safe practice. For ServerPackCreator, though, it is unfortunately the only way to run the installer.macOS DMG
MacOS will complain about potential security risks and refuse to install and run ServerPackCreator. To circumvent this, please see the official guides depending on your version of macOS: Ventura, Monterey or newer.
Windows EXE
Hit "More information" if the Windows SmartScreen-message pops up. Afterward, a button will appear which will let you run the installer anyway.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Pre-Release 9.0.0-alpha.3
Pre-releaseSome checks failedclientside-report-reusable.yml / RELEASE: 9.0.0-alpha.3 (push) Failing after 0sCreate GitHub Pre-Release after GitLab tag mirror / Preparations (push) Successful in 22sTest / build (push) Failing after 19m36sCreate GitHub Pre-Release after GitLab tag mirror / JAR and media (push) Failing after 10sCreate GitHub Pre-Release after GitLab tag mirror / PreRelease (push) Failing after 7sCreate GitHub Pre-Release after GitLab tag mirror / News on Discord (push) Has been skippedreleased this
2026-08-04 20:57:30 +02:00 | -347 commits to main since this release9.0.0-alpha.3 (2026-08-04)
✂️ Refactor
- Optimize imports (416a809)
- Qodana findings. Removes deprecated usages, simplifies code, evens out formatting. (6b1e155)
- Use kotlin.time.Clock instead (b8a846e)
- app: extract WebService's Spring-argument composition (d8df621)
👀 Reverts
- Reintroduce inner to allow test access (d40d9cc)
📔 Docs
- investigation plan for the docker MongoDB/localhost report (dc9e97c)
- record the CI/dind work, its audit, and the four follow-ups it left (e3a720c)
- record the Spring Boot 4 MongoDB finding and re-rank the investigation (3077923)
🧪 Tests
- app: pin that WebService keeps every commandline argument - RED (73f7cd3)
- docker: pin the s6 init script's overrides.properties output - RED (82a8486)
🛠 Fixes
- app: stop discarding the last commandline argument (c1ce997)
- ci: guard the whole cached JBR tree, and classify why the probe failed (afadcb9)
- docker: make docker-compose-dev.yml a valid compose project again (4222d48)
- docker: make SPC_LOG_LEVEL actually do something (391ccb0)
- docker: point SPC at the database and user that init-mongo.js actually creates (681b6e2)
- docker: stop wrapping the zip-exclude overrides in literal braces (801407b)
- docker: stop writing an unparseable database-URI when auth is not configured (4ca0f2c)
About Pre-Releases
Do not release or publish a server pack generated using a pre-release of ServerPackCreator to your users.
If you do, and it turns out that your server pack doesn't work because of a bug in ServerPackCreator, that's on you for using a pre-release.When using pre-release installers, make sure to uninstall the previous pre-release first. Otherwise, the installers
own version checks may trigger an error out of my control. After uninstalling, install the newly downloaded one and
you're good to go.Only use the installers if you are versed in system-administration, manually editing and removing services, editing registries,
so on and so forth.Alphas
Alphas are feature-incomplete and very likely to have bugs. Consider them broken by default. Use at your own risk!
Betas
Betas are feature-complete and probably have bugs. Additional features may be added during the beta-phase of any given release, though.
If you are updating from version 5 or older and used the installers, then make sure to uninstall any previous version(s)
before using the installers for versions 6 and newer.Additional Installer-Notes
It is recommended to have administration-privileges when using the Windows and macOS installers.
I am not a member of the Apple Developer Program and won't pay for codesign-certificates, therefor installers are unsigned.
Running a given installer may produce warnings depending on what OS you are using. You may choose to install it anyway, please be aware though that doing so is, in general, not a safe practice. For ServerPackCreator, though, it is unfortunately the only way to run the installer.macOS DMG
MacOS will complain about potential security risks and refuse to install and run ServerPackCreator. To circumvent this, please see the official guides depending on your version of macOS: Ventura, Monterey or newer.
Windows EXE
Hit "More information" if the Windows SmartScreen-message pops up. Afterward, a button will appear which will let you run the installer anyway.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Pre-Release 9.0.0-alpha.2
Pre-releaseSome checks failedclientside-report-reusable.yml / RELEASE: 9.0.0-alpha.2 (push) Failing after 0sCreate GitHub Pre-Release after GitLab tag mirror / Preparations (push) Successful in 12sTest / build (push) Failing after 19m59sCreate GitHub Pre-Release after GitLab tag mirror / JAR and media (push) Failing after 29sCreate GitHub Pre-Release after GitLab tag mirror / PreRelease (push) Failing after 8sCreate GitHub Pre-Release after GitLab tag mirror / News on Discord (push) Has been skippedreleased this
2026-08-04 09:43:11 +02:00 | -326 commits to main since this release9.0.0-alpha.2 (2026-08-04)
✂️ Refactor
- Print debug dependency info via override toString (102be3e)
- ci: scope the dind service to the jobs that use Docker (358675f)
🦊 CI/CD
- log which Docker endpoint the Docker jobs actually use (f3a60df)
🛠 Fixes
- Hopefully fix NeoForge EdgeCase preventing mod exclusions. Thanks to @ModernGamingWorld for the report and help. (255af9e)
- ci: restore the executable bit on the cached Qodana JBR (fd81712), closes gitlab-runner#27496 #1782
About Pre-Releases
Do not release or publish a server pack generated using a pre-release of ServerPackCreator to your users.
If you do, and it turns out that your server pack doesn't work because of a bug in ServerPackCreator, that's on you for using a pre-release.When using pre-release installers, make sure to uninstall the previous pre-release first. Otherwise, the installers
own version checks may trigger an error out of my control. After uninstalling, install the newly downloaded one and
you're good to go.Only use the installers if you are versed in system-administration, manually editing and removing services, editing registries,
so on and so forth.Alphas
Alphas are feature-incomplete and very likely to have bugs. Consider them broken by default. Use at your own risk!
Betas
Betas are feature-complete and probably have bugs. Additional features may be added during the beta-phase of any given release, though.
If you are updating from version 5 or older and used the installers, then make sure to uninstall any previous version(s)
before using the installers for versions 6 and newer.Additional Installer-Notes
It is recommended to have administration-privileges when using the Windows and macOS installers.
I am not a member of the Apple Developer Program and won't pay for codesign-certificates, therefor installers are unsigned.
Running a given installer may produce warnings depending on what OS you are using. You may choose to install it anyway, please be aware though that doing so is, in general, not a safe practice. For ServerPackCreator, though, it is unfortunately the only way to run the installer.macOS DMG
MacOS will complain about potential security risks and refuse to install and run ServerPackCreator. To circumvent this, please see the official guides depending on your version of macOS: Ventura, Monterey or newer.
Windows EXE
Hit "More information" if the Windows SmartScreen-message pops up. Afterward, a button will appear which will let you run the installer anyway.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Pre-Release 9.0.0-alpha.1
Pre-releaseSome checks failedclientside-report-reusable.yml / RELEASE: 9.0.0-alpha.1 (push) Failing after 0sCreate GitHub Pre-Release after GitLab tag mirror / Preparations (push) Successful in 11sTest / build (push) Failing after 20m1sCreate GitHub Pre-Release after GitLab tag mirror / JAR and media (push) Failing after 27sCreate GitHub Pre-Release after GitLab tag mirror / PreRelease (push) Failing after 10sCreate GitHub Pre-Release after GitLab tag mirror / News on Discord (push) Has been skippedreleased this
2026-08-02 16:18:49 +02:00 | -318 commits to main since this release9.0.0-alpha.1 (2026-08-02)
✂️ Refactor
- Extract clientside-mod verification engine into its own module (68d227b)
- Improve modscan result readability (657097d)
- Optimize imports (f443246)
- remove dead code found by Qodana (ea99d7e)
- Remove unnecessary non-null assertions (e777c4f)
- api: centralize versionmeta URLs & tag-names in VersionMetaConfig (ea95b43)
- api: de-duplicate chunked list printing; document ignored catches (0fa8a98)
- api: read the published constants through their owners (1af6f72)
- api: ship variables.txt as a template instead of a string literal (7815d59)
- app: address clientside-verify audit findings (L1, L2, M2) (425c835)
- app: drop the inert WritableDirectoryFilter (6168acc)
- app: route the stored home directory through one place (5f138ef)
- build,api: scope the properties helper and anchor the test's paths (8693ff3)
- clientside,grinder: extract the suspend-aware boot deadline (b6b778b)
- clientside: drop the !! in the crash re-check (6054115)
- clientside: drop unused logFile param from ServerRunner.run (c2ae091)
- clientside: split BootVerifier into staging + a ServerRunner seam (d0d257f)
- grinder,api: audit LOW cleanups — one PACK_MOUNT, no !!, no leaked state (56843ef)
- grinder: organize flat package into subsystem subpackages (3a9a4f5)
- grinder: put container cleanup on the ContainerEngine seam (a077651)
- gui: own app-lifetime dialog coroutines via component scopes (0b2341f)
- gui: own ConfigEditor coroutines via a component-scoped CoroutineScope (40e2aab)
- gui: own IconPreview and SuggestionProvider coroutines (ef109db)
- gui: own inclusions-editor coroutines via component-scoped scopes (1036f29)
- gui: own ScrollTextArea coroutines via a component-scoped CoroutineScope (5c0925d)
- gui: own TabbedConfigsTab coroutines via a component-scoped scope (1f80442)
- gui: own the server-pack generation coroutine in ControlPanel (a56314d)
- gui: own the settings/config check-timer coroutines (1a6c465)
✨ Milestone
- Claude Refactoring to adhere more to common standards, Sideness Detection Workflows and more! See merge request Griefed/ServerPackCreator!690 (ea459f6)
👀 Reverts
- clientside,grinder: drop LoaderSupportMemory — its premise was wrong (d8b6cb1)
📔 Docs
- add deferred-work plan for post-coverage cleanups (b14263d)
- align the markdown tables in the clientside and grinder READMEs (2babcb4)
- backlog the wall-clock boot deadline and every TODO marker in the tree (1a952c4)
- close B1 and B10 (625ecdf)
- close B19 and record the ServerStarterJar install landmine (9f3c818)
- close B2, B6, B9 and B12; restore the entries B8's commit truncated (97386bb)
- close B3 and record the frontend harness landmines (4133639)
- close B7 (96e2be9)
- correct the grinder suite count after the shutdown-interrupt test (8e5b985)
- defer PR4 (detekt) — no stable detekt supports Kotlin 2.3 (452c782), closes #8865
- discard PR6 (Desktop adapter) — intentional plugin-facing API (ced059d)
- do not prescribe specific DNS resolvers in the log (2d9dfe6)
- drop B4 from the backlog (21f9d1e)
- drop the derivable build-system preamble from the module map (b530101)
- ELI5 Dokka package docs across all modules; wire plugin-example; suppress generated i18n (e676bb5)
- exempt reference-only test updates from the refactor-label rule (4767786)
- GitHub Actions workflow audit + remediation report (1ce1fff)
- mark deferred-work PR1 (MockK + network coverage) done (8a08a42)
- mark deferred-work PR2 (ignored-catch pass) done (ddfd4af)
- mark deferred-work PR3 (versionmeta config) done (e2e10f9)
- mark Phase 4c (frontend TypeScript migration) complete (b100209)
- mark Phase 4d (component test harness) done; Phase 4 complete (468654f)
- mark the fifth audit's findings remediated (1b94234)
- mark the fourth audit's findings remediated (d0dc86e)
- move Claude refactor/planning docs into claude-docs/ (f3161aa)
- pin-first for templates, manifests and version parsing; backlog B13-B18 (b28d131)
- reattach orphaned KDoc blocks to the units they describe (56baba3)
- record audit remediation; correct stale api test count (23207eb)
- record B22, the grinder writing config files into the repo root (5faa40e)
- record GUI structured-concurrency refactor (GlobalScope removal) (93ae567)
- record how build logic is verified, since tests cannot pin it here (fa89807)
- record Phase 4e (broadened frontend component coverage) (94def0c)
- record Phases 3-6 and close the audit's actionable findings (f1368b3)
- record the durable facts from this branch in the module contexts (db4b85d)
- record the Fabric fall-through, staging reclamation and the home-preference collision (0351f3c)
- record the Java 24 security-manager landmine and the cache-invalidation rule (99bebf7)
- record the killed/OOM classifier guard and the sweep sizing (47df808)
- record the matrix, drain, Quilt fix and audit remediation (2d448f2)
- record the Minecraft versioning-scheme rule; close B8 (64d2d70)
- record the plugin-visible behaviour change and the audit remediation (6be958e)
- record the Preferences-node fix, the home fallback it exposed, and the measurement caveat (e2dd33c)
- record the Qodana audit in CLAUDE.md and the refactor log (a10cb5c)
- record the two documentation conventions this audit surfaced (a0d6888)
- record the variables.txt contract change and two commit-discipline rules (70cfe7f)
- register serverpackcreator-grinder in root module map + refactor log (5013eaa)
- remove B11; the backlog is empty (240a6c8)
- repair KDoc references that pointed at nothing (61111ec)
- restructure CLAUDE.md into per-module context + REFACTOR-LOG (30ce3e8)
- table the template-path change as the compatibility policy requires (b960986)
- third audit of the unpushed develop range (102 commits) (fce7e61)
- withdraw audit finding L-C; record the inverse problem as B21 (b9777dd)
- api: add the developer guide, with a correct mod-scanning example (5499003)
- api: correct the ForgeLoader TODO — the finding was overstated (29bf111)
- api: document ApiProperties' fallbacks, build identity and preference access (54593f8)
- api: document intent of swallowed exceptions (ignored-catch pass) (e6470ff)
- api: document PackConfig's properties, accessors and defaults (781c858)
- api: document the scan results, manifest, stopwatch and generation defaults (2d83f5b)
- api: document the script-placeholder defaults, companions and remaining members (ba37a90)
- api: document the ServerPackConfigTab plugin extension point (5a47cc5)
- api: document the version-meta instances, path defaults and scanner matchers (c2b09f2)
- api: document VersionMeta's upstream manifests and ConfigurationHandler's matchers (7f83805)
- api: give the config-tab accessors the context their labels lacked (dbe908e)
- api: stop the mapping test minting a phantom TODO in IDEA (797ed40)
- api: TODO on ForgeLoader's unguarded manifest cut (99a99fd)
- app: document intent of swallowed exceptions (ignored-catch pass) (4bca416)
- app: record the settings dirty-check reload-after-save landmine (585ecb2)
- audit: extend the refactor audit to the full claude range (Phase 0 → HEAD) (503f779)
- audit: record audit findings + remediation for the Phase 4 branch (308dbb2)
- clientside: add the CLI usage guide (039f5ea)
- frontend: keep 4e's tables note with 4e (7bed581)
- grinder: add the service operator guide (f3b3e33)
- grinder: close B13 by running the template matrix, and record what it found (a09138a)
- grinder: correct which store method drives the daemon's skip check (553671a)
- grinder: describe the partitioned CurseForge crawl and its limits (85cc20b)
- grinder: document every declaration dokka reported as undocumented (f31da8f)
- grinder: document how to size the worker count (2acd41f)
- grinder: give logging and live status their own README section (31b4391)
- grinder: record e2e verification result + Java/image-JDK limitation (5ef37cd)
- grinder: record loader-install spike findings (LoaderCache snapshot design) (33e2915)
- grinder: record which matrix cells have actually been exercised (a16401b)
- grinder: refresh status + record current-MC e2e verification (908493d)
- refactor-log: record Phase 4b ( decoupling) and 4c (TS migration) (2aaa7a7)
📦 Other
- Add clientside mods. Thanks to @ModernGamingWorld (9577d7e)
- Add clientside mods. Thanks to @ModernGamingWorld @Xplodin @szszabi2002 (f45f412)
- Formatting (33cca96)
- normalize CLAUDE.md to LF line endings (7a72b43)
- normalize ScanResult.kt to LF line endings (8c2bf18)
- Regular doc updates (344a9cb)
- Update copyright year. Whoops. (7a344f3)
- Update manifests (89a2f49)
- Update manifests and license agreement (89305a8)
- api: refresh the shipped server-manifest snapshot for 16 releases (7ed6397)
- api: remove dead jNeedle code and unused Artemis fallback (89ad148)
🦊 CI/CD
- keep the batch start-script template on LF (8be2913)
- pin line endings with a .gitattributes (f4e7397)
- remove the Corepack workaround now that Node 24 does not need it (101e0fa)
- deps: Update NodeJS and npm versions (266f4f0)
- gradle: Add dependencies for requestes tasks as per gradle errors (75f1ce4)
- grinder: add spc-grinder-templates image (fish + pwsh) for template tests (c3e1956)
- harden and fix the existing GitHub Actions workflows (d66db45)
- SHA-pin remaining first-party actions/* and gradle/* actions (4f56742)
- clientside: allow manual dispatch of the verify (metadata) scan (801a183)
- clientside: extract shared report pipeline into a reusable workflow (b486e3d), closes actions/runner#1555
🧪 Tests
- cover the 1.21 line, LegacyFabric, and the .ps1 installer selection (1a48bc8)
- pin the operator docs against the code they describe (f4ef1e6)
- api: add MockK + offline coverage for network-bound branches (fba73e9)
- api: characterize MinecraftMeta.requiredJavaVersion against real metadata (c5bf447)
- api: characterize versionmeta manifest & installer URLs (f7787d8)
- api: compile-check the documented API examples (987a1d8)
- api: non-gated guard for the fish template fix; clear the CLEANUP suspicion (a4744a7)
- api: pin that a failed manifest download is not retried on every lookup (bde5d16)
- api: pin that shipped resources stay tracked and test homes stay ignored (c8a8f7e)
- api: pin that template paths follow a home directory changed at runtime (a758dae)
- api: pin that the published constants delegate to their owners (c59b113)
- api: pin that the shipped snapshot covers the releases it advertises (4eb556e)
- api: pin the Minecraft to loader mapping for Forge and the Fabric family (e9faf52)
- api: pin the Minecraft to NeoForge version mapping (5703b03)
- api: pin the suite's own configuration as machine-independent (cd07859)
- api: pin who installs Forge when SSJ cannot trap the installer's exit (203a325)
- api: raise config-check & server-pack-generation coverage (P1–P9) (9430390)
- clientside: characterize BootVerifier.prepareBootPack selection wiring (affdfd4)
- clientside: cover the extracted ServerRunner verdict seam (a652a93)
- clientside: pin classify's guard order as a whole (6ea9770)
- clientside: pin the boot budget against a host that sleeps mid-boot (3fe798f)
- frontend: characterize presentational nav/placeholder components (704e0f9)
- frontend: characterize SubmitModPackForm; regression-test the onRejected bug (87a7cc8)
- frontend: characterize the data cards (fetch-then-display) (4396ada)
- frontend: characterize the download pages (filename derivation) (feca50a)
- frontend: cover MainLayout's nav wiring and the About page's links (1c69fdc)
- grinder: full matrix results; default to 1 worker to stop [secure] failures (b5b2124)
- grinder: live-daemon integration test for DockerJavaContainerEngine (4c3ca92)
- grinder: pin an unknown Java requirement as distinct from an unbundled JDK (b00ba1e)
- grinder: pin that a failed install's console survives the next attempt (4c941c7)
- grinder: pin that the loader cache knows which templates produced an install (9a79782)
- grinder: pin the daemon's settings file to its own home, not the cwd (6b122bb)
- grinder: pin the live crawl assumptions behind GRINDER_LIVE_IT (331f349)
- grinder: pin verdict identity as the project, not its current slug (5c1a3ce)
- grinder: PowerShell covered by parse check — .ps1 cannot boot on Linux (e3952d4)
- grinder: script-template Docker matrix IT (bash/fish/pwsh) (2f2494c)
- gui: pin ComponentCoroutineScope; remediate audit finding M3 (1bdd15e)
🚀 Features
- Add fish-templates to support fish-scripts (bf26261)
- api: MinecraftMeta.requiredJavaVersion + ConfigEditorViewModel reuse (07e931a)
- app: automate clientside-mod request verification & acceptance (13d8c4f)
- clientside,grinder: reuse cached loader builds, guarded by a crash re-check (defbded)
- clientside: BootVerifier packPostProcessor hook (the cache-overlay seam) (3236fe7)
- grinder,clientside: live boot logs, a /status endpoint, per-candidate log lines (a44e4a7)
- grinder: add categoryId as the third CurseForge partition axis (80c3554)
- grinder: add the LoaderCache pre-bake (the --network none enabler) (b00077b)
- grinder: bound Minecraft selection to image-supported Java (81e5f25)
- grinder: bound the loader cache by last-use time (8e5f31d)
- grinder: bundle Temurin 25 so the current Minecraft release boots (7418a12)
- grinder: continuous fire-and-forget mode with stale re-verification (c3aef47)
- grinder: crawl CurseForge in partitions to get past its 10 000-result cap (281fbf4)
- grinder: crawl the whole catalog continuously instead of the top N (76d9d3a)
- grinder: CurseForge candidate source behind a CandidateSource seam (913e646)
- grinder: dedup verdicts by project identity instead of slug (826822d)
- grinder: dedup verdicts per platform, not per slug (a25c0e0)
- grinder: file-backed JsonVerdictStore so a grind survives restarts (410aa54)
- grinder: grind orchestration — Grinder, pool, verdict store, CSV export (14b88c2)
- grinder: Modrinth candidate source — popularity-ranked queue seed (82fe0b4)
- grinder: offset-based catalog paging in the candidate sources (45e7841)
- grinder: persisted crawl cursor and catalog crawler (2d5a834)
- grinder: real CandidateVerifier + runnable main (fire-and-forget entrypoint) (2a39359)
- grinder: real LoaderInstaller (boot-with-network -> snapshot into LoaderCache) (c34529d), closes #2
- grinder: reclaim per-attempt staging instead of accumulating it (f1de11b)
- grinder: record which templates produced a cached loader install (5aa12db)
- grinder: report grind outcomes and derive the inter-pass pause from them (94cf436)
- grinder: runtime image (loader-agnostic, multi-JDK) — build-verified (221bee0)
- grinder: scaffold the module with a container-backed ServerRunner (3acb548)
- grinder: self-contained web report — sortable table + CSV export (7130f06)
- grinder: step down from a loader build whose installer is missing upstream (91ac0e1)
- grinder: supply an installer JDK, and only where it is needed (2cd64ec)
- grinder: VerdictStore.newestVerification(slug) for freshness checks (3692074)
- grinder: warn when the Modrinth crawl nears its offset ceiling (5caa683)
🛠 Fixes
- Add fish-warning recommended by DavidBevi (a6ffd41)
- Correctly parse NeoForge to Minecraft version mappings (28a786b)
- Improve fabric availability check. Fix Quilt availability check. Fix Cleanup-routine. (93c9e80)
- stop .gitignore hiding the shipped server_files resources (8f1b3a7)
- api: boot Fabric from the launcher already on disk before asking the network (1a55797)
- api: choose Forge's launcher era by scheme, not by minor version alone (2a9a034)
- api: close the same version-scheme assumption in setupNeoForge (30f6cbd)
- api: correct checkForInvalidPathCharacters to reject any forbidden char (6622e01)
- api: derive the shipped template paths on access, not at construction (0dacd5a)
- api: do not persist a -D home override into the stored preference (aa2d27f)
- api: drop the security-manager flag on Java that refuses to start with it (c571e2d)
- api: fish start-template drops empty args (--no-empty) (2e16bf0)
- api: install Forge directly on Java that cannot trap the installer's exit (f6c23e9)
- api: keep the run command when the Fabric launcher is already installed (e3296a7)
- api: let a host pin its Preferences node and home directory (dd4fcc9)
- api: log a missing server manifest at debug, without a stack trace (bb6115a)
- api: reject a malformed Forge manifest entry instead of throwing (07a647f)
- api: run modloader installers via an optional JAVA_INSTALLER override (fe42cef)
- api: stop re-attempting a failed manifest download on every lookup (150d662)
- app: repair ConfigEditorViewModelTest after the requiredJavaVersion delegation (3446483)
- build: bump Qodana to 2026.2 so its Kotlin analyzer matches the source (b14d30d)
- build: point test-run files at /tests, not build/ (e7cce83)
- build: resolve the per-machine test properties at test time (2a2a2df)
- build: source updateManifests from the module that owns the resources (15111f7)
- build: spare the version-manifest cache when wiping the test home (8b87057)
- build: stop the build rewriting the shared Preferences node (4f53aa8)
- build: stop the test suites rewriting their checked-in properties (ef3280e)
- clientside,grinder: boot-pack inclusions + release-only MC + install diagnostics (0c9c121)
- clientside: a JVM that never launched is not a clientside crash (8ebb3bb)
- clientside: decide CRASHED from the console, and never boot without required dependencies (aca7217)
- clientside: do not spend a host boot's budget while the machine is asleep (b6ed102)
- clientside: gate Fabric/Quilt/LegacyFabric selection on MC support (14c319e)
- clientside: never score a killed or out-of-memory boot as a crash (34b5cbb)
- clientside: pre-launch setup aborts are INCONCLUSIVE, not CRASHED (4f5e09e)
- frontend: DrawerLink icon used misspelled
colourprop (05450f1) - grinder,api: tell a metadata gap apart from an unsupported Minecraft version (bee9e31)
- grinder,clientside: stop re-paying for loader combinations that cannot boot (b4b3402)
- grinder: advance the crawl cursor on work done, not on hand-out (1783eb7)
- grinder: catch the shutdown interrupt in the one-shot path too (f51dcba)
- grinder: do not let a shutdown interrupt escape grindAll (c39bee9), closes 1/#2 #3
- grinder: do not spend a boot's time budget while the host is asleep (1f92f58)
- grinder: drain in-flight containers on shutdown (ad28197)
- grinder: keep one generation of install console across a retry (32bfc2a)
- grinder: make the CurseForge crawl work against the real API (3c2bb27)
- grinder: order each batch round-robin across platforms (8ecea09)
- grinder: remove NUL byte from VerdictStore.kt (git stored it as binary) (ca99736)
- grinder: resolve the daemon's settings file against its own home (5ce44e3)
- grinder: verify + defend the CurseForge search contract (328f985)
- gui: settings save no longer leaves the unsaved-changes icon stuck on (bef3c1e)
About Pre-Releases
Do not release or publish a server pack generated using a pre-release of ServerPackCreator to your users.
If you do, and it turns out that your server pack doesn't work because of a bug in ServerPackCreator, that's on you for using a pre-release.When using pre-release installers, make sure to uninstall the previous pre-release first. Otherwise, the installers
own version checks may trigger an error out of my control. After uninstalling, install the newly downloaded one and
you're good to go.Only use the installers if you are versed in system-administration, manually editing and removing services, editing registries,
so on and so forth.Alphas
Alphas are feature-incomplete and very likely to have bugs. Consider them broken by default. Use at your own risk!
Betas
Betas are feature-complete and probably have bugs. Additional features may be added during the beta-phase of any given release, though.
If you are updating from version 5 or older and used the installers, then make sure to uninstall any previous version(s)
before using the installers for versions 6 and newer.Additional Installer-Notes
It is recommended to have administration-privileges when using the Windows and macOS installers.
I am not a member of the Apple Developer Program and won't pay for codesign-certificates, therefor installers are unsigned.
Running a given installer may produce warnings depending on what OS you are using. You may choose to install it anyway, please be aware though that doing so is, in general, not a safe practice. For ServerPackCreator, though, it is unfortunately the only way to run the installer.macOS DMG
MacOS will complain about potential security risks and refuse to install and run ServerPackCreator. To circumvent this, please see the official guides depending on your version of macOS: Ventura, Monterey or newer.
Windows EXE
Hit "More information" if the Windows SmartScreen-message pops up. Afterward, a button will appear which will let you run the installer anyway.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Release 8.1.2
StableSome checks failedvirustotal.yml / virustotal (release) Has been cancelledCreate GitHub Pre-Release after GitLab tag mirror / Preparations (push) Has been cancelledCreate GitHub Pre-Release after GitLab tag mirror / JAR and media (push) Has been cancelledCreate GitHub Pre-Release after GitLab tag mirror / PreRelease (push) Has been cancelledCreate GitHub Pre-Release after GitLab tag mirror / News on Discord (push) Has been cancelledTest / build (push) Has been cancelledreleased this
2026-06-10 20:41:57 +02:00 | 0 commits to main since this release8.1.2 (2026-06-10)
📦 Other
- add certain_questing_additions to clienstide-mods (6056672)
- Add mods to whitelist, remove mods from clientside-list (abaf089)
- Add more Clientside mods thanks to @ModernGamingWorld (051f14b)
- Add various clientside mods thanks to @ModernGamingWorld (dd6a538)
- Clientside mods reported by @ModernGamingWorld (7944e39)
- Refresh license agreement (d87ab47)
- Update manifests, license report, remove exclusion from qodana (d42dce0)
- Update sponsors and contributors (5af31a8)
🔩 Dependencies
- Bump dependencies (bbc7e0f)
- Replace custom mslinks implementation with 1.2.0 of DmitriiShamrikov/mslinks (57fce81)
🦊 CI/CD
- deps-dev: bump @intlify/unplugin-vue-i18n (6ddf435)
- deps-dev: bump @intlify/unplugin-vue-i18n (b64b174)
- deps-dev: bump lodash in /serverpackcreator-web-frontend (01c466d)
- deps-dev: bump prettier in /serverpackcreator-web-frontend (53ef26f)
- deps-dev: bump vite-plugin-checker (e8ffccb)
- deps: bump @quasar/extras in /serverpackcreator-web-frontend (eb982d7)
- deps: bump @quasar/extras in /serverpackcreator-web-frontend (0238f43)
- deps: bump axios in /serverpackcreator-web-frontend (e5ae597)
- deps: bump axios in /serverpackcreator-web-frontend (044c58a)
- deps: bump com.fasterxml.jackson.module:jackson-module-kotlin (abb2fdb)
- deps: bump com.formdev:flatlaf in /serverpackcreator-app (b5af523)
- deps: bump com.formdev:flatlaf-extras in /serverpackcreator-app (9639c8a)
- deps: bump com.formdev:flatlaf-intellij-themes (cafbd4e)
- deps: bump com.install4j:install4j-runtime (290388a)
- deps: bump commons-io:commons-io in /serverpackcreator-app (2e7a08d)
- deps: bump de.comahe.i18n4k in /serverpackcreator-plugin-example (2b8cf07)
- deps: bump de.comahe.i18n4k:i18n4k-core in /serverpackcreator-api (2c0b6c7)
- deps: bump de.jensklingenberg.ktorfit:ktorfit-lib (17ad5d2)
- deps: bump follow-redirects in /serverpackcreator-web-frontend (71f69d9)
- deps: bump gradle/actions from 5 to 6 (a275326)
- deps: bump org.apache.logging.log4j:log4j-core (42b95da)
- deps: bump org.jetbrains.kotlin:kotlin-reflect (daaeccd)
- deps: bump org.jetbrains.kotlin:kotlin-stdlib (6471dd2)
- deps: bump org.jetbrains.kotlin:kotlin-test-junit5 (53daef0)
- deps: bump org.jetbrains.kotlin:kotlin-test-junit5 (3be0abe)
- deps: bump org.jetbrains.kotlinx:kotlinx-datetime (87c4d31)
- deps: bump org.junit.platform:junit-platform-launcher (ac993d6)
- deps: bump org.junit.platform:junit-platform-launcher (4252a75)
- deps: bump org.junit.platform:junit-platform-launcher (adaa6c2)
- deps: bump org.springframework.boot:spring-boot-starter-data-mongodb (868c145)
- deps: bump pinia in /serverpackcreator-web-frontend (cdef224)
- deps: bump postcss in /serverpackcreator-web-frontend (f978023)
- deps: bump qs and express in /serverpackcreator-web-frontend (c01b6f3)
- deps: bump quasar in /serverpackcreator-web-frontend (23f8896)
- deps: bump richardsimko/update-tag from 1 to 2 (0863159)
- deps: bump softprops/action-gh-release from 2.6.1 to 3.0.0 (4be388c)
- deps: bump vite in /serverpackcreator-web-frontend (da26b42)
🛠 Fixes
- web: Fixed Mongo repository entity type resolution (f882532)
If you are updating from version 5 or older and used the installers, then make sure to uninstall any previous version(s)
before using the installers for versions 6 and newer.Additional Installer-Notes
It is recommended to have administration-privileges when using the Windows and macOS installers.
I am not a member of the Apple Developer Program and won't pay for codesign-certificates, therefor installers are unsigned.
Running a given installer may produce warnings depending on what OS you are using. You may choose to install it anyway, please be aware though that doing so is, in general, not a safe practice. For ServerPackCreator, though, it is unfortunately the only way to run the installer.macOS DMG
MacOS will complain about potential security risks and refuse to install and run ServerPackCreator. To circumvent this, please see the official guides depending on your version of macOS: Ventura, Monterey or newer.
Windows EXE
Hit "More information" if the Windows SmartScreen-message pops up. Afterward, a button will appear which will let you run the installer anyway.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Release 8.1.1
StableSome checks failedvirustotal.yml / virustotal (release) Has been cancelledreleased this
2026-04-13 20:47:09 +02:00 | 99 commits to main since this release8.1.1 (2026-04-13)
📦 Other
- Add Smooth Swapping to clientside list (40cc91a)
- Update package lock after dependabot changes (14f17ab)
🦊 CI/CD
- Bump Gradle version (6f0286f)
- Bump Kotlin to 2.3.20 (2e56ec5)
- deps-dev: bump flatted in /serverpackcreator-web-frontend (e2b1460)
- deps-dev: bump node-forge in /serverpackcreator-web-frontend (5565114)
- deps: bump axios in /serverpackcreator-web-frontend (d3c29d7)
- deps: bump axios in /serverpackcreator-web-frontend (c187fb9)
- deps: bump com.electronwill.night-config:toml (62b0912)
- deps: bump crazy-max/ghaction-virustotal from 4 to 5 (18fc574)
- deps: bump jaywcjlove/github-action-read-file from 2.0.0 to 2.1.0 (a2986b5)
- deps: bump on-headers and compression (3d64afd)
- deps: bump picomatch in /serverpackcreator-web-frontend (defb060)
- deps: bump qs and body-parser in /serverpackcreator-web-frontend (a0e0902)
- deps: bump softprops/action-gh-release from 2.5.0 to 2.6.1 (4ca6aaa)
- deps: bump tmp and inquirer in /serverpackcreator-web-frontend (ed46b6a)
🛠 Fixes
- Correctly parse Minecrafts new 26.x versions (4e911b0)
If you are updating from version 5 or older and used the installers, then make sure to uninstall any previous version(s)
before using the installers for versions 6 and newer.Additional Installer-Notes
It is recommended to have administration-privileges when using the Windows and macOS installers.
I am not a member of the Apple Developer Program and won't pay for codesign-certificates, therefor installers are unsigned.
Running a given installer may produce warnings depending on what OS you are using. You may choose to install it anyway, please be aware though that doing so is, in general, not a safe practice. For ServerPackCreator, though, it is unfortunately the only way to run the installer.macOS DMG
MacOS will complain about potential security risks and refuse to install and run ServerPackCreator. To circumvent this, please see the official guides depending on your version of macOS: Ventura, Monterey or newer.
Windows EXE
Hit "More information" if the Windows SmartScreen-message pops up. Afterward, a button will appear which will let you run the installer anyway.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads