Tags
Creators
Details
1.0.0-beta.3
Compatibility
Changes
Compatibility is unchanged from 1.0.0-beta.2: Paper, Purpur, other Paper forks and Folia on Minecraft 1.20.x, 1.21.x and 26.1 to 26.3, with CI verifying Folia on 1.20.4, 1.21.11 and 26.2. Folia 26.3 is supported but not yet verified because no official build is available. Longer Paper 26.3 and Folia live soaks, and verification of Folia 26.3 once a build is available, remain for 1.0.0 in #191. Minecraft 26.1 and newer need the server to run on Java 25; Java 21 is enough for 1.20 and 1.21.
Upgrading from 1.0.0-beta.2 is in place and needs no migration step; an upgrade from
an earlier release also takes that release's upgrade notes. Stop the server and copy
plugins/SpiralGenesis before you upgrade. The data.yml format is unchanged from
1.0.0-beta.2: this version adds no key and changes none, and what it records for a plot,
a claim or a structure is written exactly as before. Rolling back to 1.0.0-beta.2
therefore keeps every player's plot and every recorded structure. An existing config.yml
is not rewritten: the new structure.clear-doorways key it lacks takes its default,
true, so a server with structure.enabled: true clears the approach to every door of
each structure placed from now on. Structures already placed are not touched, and a server
with structures off is unaffected. Set clear-doorways: false to keep the outside of
every door as it is.
When a scan spends safety.max-scan-attempts and every point it scored fails a lethal
rule, no plot is recorded any more: the player is held at a standing point at world spawn
and allocated again on their next join. Before, the least bad point was used even when it
was open water. A server whose terrain near the spiral is mostly ocean or river can see
more of these players; the log names each one. /sgen reassign in that case refuses and
the player keeps their current plot. /sgen simulate reports the count in game as
No safe fallback and on the console SIMULATE line as unplaced. Raising
max-scan-attempts gives the scan more cells to find a safe point.
Added
- Spawn plot structure doors open onto a clear approach. The two blocks in front of
each door the template contains, on the outside and after rotation, are cleared once it
is placed, so a hut on a slope no longer opens into the hillside. Only natural terrain is
cleared: soil, stone, sand, gravel, clay, terracotta, snow, natural logs, leaves and
plants, plus sand, gravel, plants and snow resting on a cleared block, up to the first
block the template places. A player's block, a block entity or water leaves that
doorway as it is and is named in the
/sgen structuredry run and the placement's log line; it never stops the placement. Underterrain: FOUNDATION, a doorway with no ground under it gets a landing offoundation-block, level with the floor and down to the ground. On by default;structure.clear-doorways: falseturns it off.
Changed
- Modrinth releases no longer touch existing versions. The release workflow uploads
each version unfeatured and never features or unfeatures a version or edits an existing
one; it no longer unfeatures older versions after the upload. That step needed
Write versions, which the token does not hold, so the 1.0.0-beta.2 publish uploaded its version and then failed with a 401.MODRINTH_TOKENkeepsCreate versions,Read projectsandRead versionsonly.
Fixed
- An exhausted scan no longer settles on a lethal spawn. When
max-scan-attemptsran out, the fallback was the least bad candidate seen, which in an ocean or river stretch could be open water, and the player was recorded and teleported there. The fallback now only considers candidates that fail nothing butLOW_SURFACE,OCEAN,PITorROUGHand pass the respawn re-check. When none does, no plot is recorded: the player is held at a standing point at world spawn and allocated again on their next join, and/sgen simulatecounts the sample asunplaced. - Spawn plot structures keep their doors. Vanilla structure placement runs shape updates as it sets blocks, and a natural block next to a doorway, such as leaf litter, could leave a door broken with the door dropped as an item. After placing, every door half the template stores is checked; a half that did not survive is set again without updating its neighbours, and the door item it dropped is removed. Doors left standing are not touched.
What's Changed
- ci(release): publish to Modrinth without featuring or unfeaturing by @BharathASL in https://github.com/Ninja6-MC/SpiralGenesis/pull/205
- fix(allocation): never fall back to a lethal spawn after an exhausted scan by @BharathASL in https://github.com/Ninja6-MC/SpiralGenesis/pull/210
- fix(structure): restore door halves broken by template placement by @BharathASL in https://github.com/Ninja6-MC/SpiralGenesis/pull/209
- feat(structure): clear natural terrain in front of spawn structure doors by @BharathASL in https://github.com/Ninja6-MC/SpiralGenesis/pull/211
- docs(release): prepare 1.0.0-beta.3 by @BharathASL in https://github.com/Ninja6-MC/SpiralGenesis/pull/212
Full Changelog: https://github.com/Ninja6-MC/SpiralGenesis/compare/v1.0.0-beta.2...v1.0.0-beta.3
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:v2NrsydG:FmwqgyZ0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:v2NrsydG:FmwqgyZ0"
}

