sodium-fabric icon indicating copy to clipboard operation
sodium-fabric copied to clipboard

Create a task force for ensuring mod compatibility with Sodium

Open jellysquid3 opened this issue 6 months ago • 8 comments

We are likely to make organizational changes and improvements with Sodium 0.6 which could break compatibility with certain mods that depend on our internal code.

As part of our continued effort to maintain compatibility with addon mods-- without applying pressure upon other addon developers-- we would like to create a task force for identifying mod compatibility issues ahead of time.

The work of this task force will involve a few different jobs:

  1. Identify the current collection of mods which depend on Sodium internals. (We should have a complete list of these mods before the alpha release of Sodium 0.6.)
  2. Validate the functioning of each addon mod with the future release of Sodium.
  3. Examine the reason for the breakage, and if not possible to fix upstream, submit pull requests downstream early for any mod which does not function correctly.
  4. For pull requests which are declined or otherwise not merged in time, create mixins for these fixes, and incorporate them into a secondary mod for Sodium which provides compatibility with known-incompatible mods.

jellysquid3 avatar Feb 12 '24 04:02 jellysquid3

just gonna throw this in here (you can delete if wrong place)

mixin

Valkyrien Skies (Forge/Fabric) https://github.com/ValkyrienSkies/Valkyrien-Skies-2/tree/1.18.x/main/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/sodium

Shimmer https://github.com/Low-Drag-MC/Shimmer/tree/1.20/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium https://github.com/Low-Drag-MC/Shimmer/tree/1.20/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium

NoCubes https://github.com/Cadiboo/NoCubes/tree/526fa53c3fe5097a1f271f84a45da8b6ed4dcbe0/src/main/java/io/github/cadiboo/nocubes/mixin/client/sodium https://github.com/Cadiboo/NoCubes/blob/master/src/main/java/io/github/cadiboo/nocubes/client/render/SodiumRenderer.java

Bobby https://github.com/Johni0702/bobby/tree/master/src/main/java/de/johni0702/minecraft/bobby/mixin/sodium

Bobby Reforged https://github.com/anthxnymc/BobbyReforged/tree/1.19.2/src/main/java/de/johni0702/minecraft/bobby/mixin/sodium https://github.com/anthxnymc/BobbyReforged/tree/1.19.2/src/main/java/de/johni0702/minecraft/bobby/sodium

Cull Less Leaves https://github.com/isXander/CullLessLeaves/tree/1.19/src/main/java/dev/isxander/culllessleaves/mixins/sodiumcompat

Majrusz Library https://github.com/Majrusz/MajruszLibrary/blob/1.20.X/common/src/main/java/com/majruszlibrary/mixin/MixinItemColors.java (unsure about this one)

Seamless https://github.com/TeamDiopside/Seamless/blob/1.20.4/fabric/src/main/java/nl/teamdiopside/seamless/fabric/mixin/SodiumGameOptionPagesMixin.java https://github.com/TeamDiopside/Seamless/blob/1.20.4/forge/src/main/java/nl/teamdiopside/seamless/forge/mixin/SodiumGameOptionPagesMixin.java

Snow! Real Magic! ⛄ (Forge) https://github.com/Snownee/SnowRealMagic/tree/1.20-forge/src/main/java/snownee/snow/mixin/sodium

Physics Mod https://github.com/haubna/PhysicsMod/ (unsure about this one)

incompatible

Chunk Animator https://github.com/Harleyoc1/ChunkAnimator

Fabric version of Create (?) See https://www.curseforge.com/minecraft/mc-mods/prominent-create

There are some incompatibilities regarding certain lava-vision features (there is no mixin into Sodium but that is the problem of these features not working to my understanding):

  • L_Ender 's Cataclysm
    • https://github.com/lender544/L_ender-s-Cataclysm-Backport-1.19.2-1.80/blob/master/src/main/java/com/github/L_Ender/cataclysm/client/render/etc/LavaVisionFluidRenderer.java
  • Alex's Caves
    • https://github.com/AlexModGuy/AlexsMobs/blob/1.20/src/main/java/com/github/alexthe666/alexsmobs/client/render/LavaVisionFluidRenderer.java#L21

SiverDX avatar Feb 12 '24 09:02 SiverDX

Steam 'n' Rails has a mixin that'll probably break: https://github.com/Layers-of-Railways/Railway/blob/1.20/dev/common/src/main/java/com/railwayteam/railways/mixin/compat/sodium/MixinBlockOcclusionCache.java

IThundxr avatar Feb 12 '24 12:02 IThundxr

Most of nvidium will probably break, however im not sure how much of it can realistically be extracted to an API (similar to iris)

MCRcortex avatar Feb 12 '24 12:02 MCRcortex

With your support of custom color resolvers and custom fluid colors, Vanadium and Bismuth should be able to mixin a bit easier now. I'll update with findings in the off chance we can't.

AluTheCrow avatar Feb 12 '24 15:02 AluTheCrow

Nothing here needs action on Sodium's end, just for documentation

  • Create will break again because of Flywheel, but Pepper and Jozu will take care of that at some point.
  • Create and Portal Cubed have a soft dependency on SpriteContentsExtended that will fail safely if not found.

TropheusJ avatar Feb 12 '24 19:02 TropheusJ

Nothing here needs action on Sodium's end, just for documentation

  • Create will break again because of Flywheel, but Pepper and Jozu will take care of that at some point.
  • Create and Portal Cubed have a soft dependency on SpriteContentsExtended that will fail safely if not found.

I can take care of flywheel, should be a quick pr

IThundxr avatar Feb 12 '24 23:02 IThundxr

https://github.com/AlphaMode/Star/blob/1.20.1/src/main/java/me/alphamode/star/client/renderers/SodiumUpsideDownFluidRenderer.java

needs a api so that they can use sodiums fluid rendering system

IThundxr avatar Feb 13 '24 02:02 IThundxr

I will open an issue with checklist items for the aforementioned mods, depending on what solutions they need exactly. For some things (see #2330) it just needs us to architect our code slightly differently.

jellysquid3 avatar Feb 16 '24 05:02 jellysquid3