Update to Minecraft 26.3 - #243
Merged
Merged
Conversation
Tooling: - Gradle 9.7.1, needed by Fabric Loom 1.18 (which requires a Java 25 JVM for the build itself, matching what CI already provisions) - Fabric Loom 1.18.2, NeoForge ModDev 2.0.147 - NeoForge 26.3.0.7-beta, Forge 26.3-66.0.2, Fabric API 0.161.0+26.3, Fabric Loader 0.19.5, NeoForm 26.3-1 Common: - ContextAwarePredicate is gone, criterion triggers now hold an Optional<Holder<LootItemCondition>> - NumberProvider split into ContextFloatProvider and ContextIntProvider, so LootNumberProviderConfigCommon becomes LootContextFloatProviderConfigCommon and LootContextIntProviderConfigCommon - Feature, ConfiguredFeature and FeatureConfiguration merged, so WorldFeatureConfigCommon now registers a MapCodec into FEATURE_TYPE - Render pipeline classes moved from Blaze3d to Renderpearl - HolderOwner#canSerializeIn renamed to canSerialize - Util.OS#openUri replaced by Blaze3D#openUri - WorldLoader.DataLoadContext#datapackWorldgen renamed to datapackWorldRegistries - LivingEntity#drop takes a Prediction - TestData gained a dimension component NeoForge: - LootModifier conditions became Optional<Holder<LootItemCondition>> - DisplayInfo is a record, so its getters are accessors now - BlockState#blocksMotion removed, using isSolidRender instead - BlockItem#updateCustomBlockEntityTag became static, hooking into placeBlock instead - BakedQuad.MaterialInfo gained item glint render types and takes a shade direction override instead of a shade boolean - PoseStack#mulPose(Quaternionf) replaced by rotateDegrees - Curios integration is temporarily disabled: Curios has no 26.3 release yet and still compiles against net.neoforged.neoforge.items, which NeoForge removed in 26.3 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
Shaders are compiled through Shaderc to SPIR-V now, which rejected the whole pipeline at resource load with "invalid directive: moj_import" and "SPIR-V requires location for user input/output": - #moj_import is now #include, and GL_ARB_separate_shader_objects has to be required explicitly - every in and out needs an explicit layout location, matching the ones vanilla's core/particle.vsh writes - the fog colour passes through calculateFinalColor, mirroring vanilla's core/particle.fsh, so the shader also holds up under OIT - the unused Sampler2 uniform is dropped, as in vanilla Verified in a dev client on 26.3 via clientdevbridge: the pipeline compiles and cyclopscore:blur renders its soft additive glow again. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
Curios has no 26.3 release, but 16.0.0+26.2 exposes CuriosCapability.ITEM_HANDLER as an EntityCapability<ResourceHandler<ItemResource>, Void>, which does not touch net.neoforged.neoforge.items at all. Only ICuriosItemHandler (through getEquippedCurios) and IDynamicStackHandler still do, and nothing here refers to those, so the 26.2 API compiles against 26.3. InventoryModifiableResourceHandlerNeoForge replaces InventoryModifiableContainerNeoForge and adapts a ResourceHandler to IInventoryCommonModifiable. The transfer API has no slot setter, so setStackInSlot empties and refills the slot in one transaction, and rolls back when the slot refuses the stack instead of dropping items. Compile-verified only: Curios 16.0.0+26.2 itself cannot load on 26.3, so this cannot run until Curios releases for it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
This was referenced Sep 20, 2026
rubensworks
commented
Sep 20, 2026
rubensworks
commented
Sep 20, 2026
rubensworks
commented
Sep 20, 2026
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
The previous master-26 tip referenced the CommonCapabilities mod's DataComparator and CyclopsCore's own IModHelpersNeoForge, neither of which is on the api source set's compile classpath. Both are resolved in CyclopsMC/CommonCapabilitiesAPI#10. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
Member
Author
|
Heads-up on merge order: the API submodule now points at Please merge that PR first. If it is squashed, the pin here becomes an orphan commit, so I will move it to the resulting Generated by Claude Code |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
CyclopsMC/CommonCapabilitiesAPI#10 was squash-merged, so the branch this pointed at is gone. The tree is identical. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
|
rubensworks
added a commit
that referenced
this pull request
Sep 20, 2026
rubensworks
added a commit
to CyclopsMC/CapabilityProxy
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/ColossalChests
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/CommonCapabilities
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/EnergeticSheep
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/EverlastingAbilities
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/Flopper
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/IconExporter
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/IntegratedDynamics
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/IntegratedDynamics-Compat
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
rubensworks
added a commit
to CyclopsMC/StructuredCrafting
that referenced
this pull request
Sep 20, 2026
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Updates all three loaders to Minecraft 26.3.
./gradlew buildand./gradlew runGameTestServerboth pass locally for Fabric, NeoForge and Forge, and a dev client was driven on 26.3 with clientdevbridge to check the rendering changes.CommonCapabilitiesAPI submodule
The submodule moves to
eac103d, the currentmaster-26, picking up two fixes:SlotDisplay$TagSlotDisplaynow carries aHolderSet<Item>instead of aTagKey<Item>(Update to Minecraft 26.3 CommonCapabilitiesAPI#9).DataComparatorand this repo'sIModHelpersNeoForge, neither of which theapisource set can see, somaster-26did not compile here at all. Make the API self-contained again CommonCapabilitiesAPI#10 extractsIDataComparatorand drops the loader-specific helper, and adds a CI check in that repo that resolves everyorg.cyclopsreference against CyclopsCore'sloader-commonso the same drift cannot land again.The matching CommonCapabilities change is CyclopsMC/CommonCapabilities#50.
Tooling
1.17-SNAPSHOT→1.18.2, NeoForge ModDev2.0.141→2.0.147.26.3.0.7-beta, Forge26.3-66.0.2, Fabric API0.161.0+26.3, Fabric Loader0.19.5, NeoForm26.3-1, Forge Config API Port26.3.0, Curios16.0.0+26.2.Common
ContextAwarePredicatewas removed; criterion triggers now holdOptional<Holder<LootItemCondition>>and serialize viaLootItemCondition.CODEC.NumberProvidersplit intoContextFloatProviderandContextIntProvider.LootNumberProviderConfigCommonis replaced byLootContextFloatProviderConfigCommonandLootContextIntProviderConfigCommon, with matchingConfigurableTypeCommonentries.Feature,ConfiguredFeatureandFeatureConfigurationwere merged into oneFeatureinterface.WorldFeatureConfigCommonnow registers aMapCodec<F>intoBuiltInRegistries.FEATURE_TYPE.com.mojang.blaze3d.pipelinetocom.mojang.renderpearl.api.pipeline, inParticleBluras well as in the access transformer and access widener.HolderOwner#canSerializeIn→canSerialize.Util.getPlatform().openUri→Blaze3D.openUri.WorldLoader.DataLoadContext#datapackWorldgen→datapackWorldRegistries.Player#droptakes aPrediction.TestDatagained a dimension parameter.Shaders
cyclopscore:core/particle_blurno longer compiled, which killed the wholecyclopscore:pipeline/translucent_particle_blurpipeline at resource load. GLSL now goes through Shaderc to SPIR-V:#moj_import→#include, plus an explicit#extension GL_ARB_separate_shader_objects : requirein/outneeds an explicitlayout(location = …), matching what vanilla'score/particle.vshwritescalculateFinalColorhelper mirroring vanilla'score/particle.fsh, so the shader also holds up under OITSampler2uniform is dropped, as in vanillaThis was caught by running a dev client, not by the build: nothing about it fails compilation. After the fix the pipeline compiles and
cyclopscore:blurdraws its soft additive glow again, verified by spawning particles in a 26.3 client and screenshotting them.NeoForge
LootModifierconditions are nowOptional<Holder<LootItemCondition>>.DisplayInfois a record, sogetTitle/getDescription/getIconbecame accessors.BlockState#blocksMotionwas removed;ParticleDropBlockComponentusesisSolidRenderinstead.BlockItem#updateCustomBlockEntityTagbecame static, soItemBlockNBThooks intoplaceBlockinstead. Vanilla block entity data still wins, sinceplacecallsplaceBlockbeforeupdateCustomBlockEntityTag.BakedQuad.MaterialInfogained item glint render types and takes a nullable shadeDirectioninstead of ashadeboolean.DynamicBaseModelpassesDirection.UP, whose cardinal lighting factor is1.0, to keep the previous unshaded look.PoseStack#mulPose(Quaternionf)replaced byrotateDegrees(Axis, float).Curios
NeoForge removed
net.neoforged.neoforge.itemsin 26.3 and Curios has no 26.3 release, soICuriosItemHandler#getEquippedCurios— which returnsIItemHandlerModifiable— is unusable. Curios16.0.0+26.2does however exposeCuriosCapability.ITEM_HANDLERas anEntityCapability<ResourceHandler<ItemResource>, Void>, which touches none of the removed package, so the integration is kept and moved onto that:InventoryModifiableResourceHandlerNeoForgereplacesInventoryModifiableContainerNeoForgeand adapts aResourceHandler<ItemResource>toIInventoryCommonModifiable.setStackInSlotempties and refills the slot in one transaction. Unlike the old direct setter it respects the handler's own slot validation, and rolls back rather than dropping items when a slot refuses the stack.Compile-verified only: Curios
16.0.0+26.2itself cannot load on 26.3, so this cannot actually run until Curios releases for it. ThecompileOnlydependency means nothing ships either way, and the compat only initialises when thecuriosmod is present.Not verified
DynamicBaseModel,RenderBlockEntityModelandScreenInfoBookare compile-checked only; the particle pipeline is the only rendering path that was exercised in a running client. The Curios integration is compile-checked only, as above.Also note:
.gitignoregained an entry for.clientdevbridge/session state, which the tooling appends on first use.🤖 Generated with Claude Code
https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf