diff --git a/src/main/java/com/lambda/mixin/OptionalModMixinPlugin.java b/src/main/java/com/lambda/mixin/OptionalModMixinPlugin.java
new file mode 100644
index 000000000..723be4e38
--- /dev/null
+++ b/src/main/java/com/lambda/mixin/OptionalModMixinPlugin.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2026 Lambda
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.lambda.mixin;
+
+import net.fabricmc.loader.api.FabricLoader;
+import org.objectweb.asm.tree.ClassNode;
+import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
+import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
+
+import java.util.List;
+import java.util.Set;
+
+public class OptionalModMixinPlugin implements IMixinConfigPlugin {
+ @Override
+ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
+ if (targetClassName.startsWith("net.caffeinemc.mods.sodium.")) {
+ return FabricLoader.getInstance().isModLoaded("sodium");
+ }
+ if (targetClassName.startsWith("net.fabricmc.fabric.impl.client.indigo.")) {
+ return FabricLoader.getInstance().isModLoaded("fabric-renderer-indigo");
+ }
+ return true;
+ }
+
+ @Override
+ public void onLoad(String mixinPackage) {}
+
+ @Override
+ public String getRefMapperConfig() {
+ return null;
+ }
+
+ @Override
+ public void acceptTargets(Set myTargets, Set otherTargets) {}
+
+ @Override
+ public List getMixins() {
+ return null;
+ }
+
+ @Override
+ public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {}
+
+ @Override
+ public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {}
+}
diff --git a/src/main/java/com/lambda/mixin/render/SodiumWorldRendererMixin.java b/src/main/java/com/lambda/mixin/render/SodiumWorldRendererMixin.java
index c43bc70ba..ebb6f4add 100644
--- a/src/main/java/com/lambda/mixin/render/SodiumWorldRendererMixin.java
+++ b/src/main/java/com/lambda/mixin/render/SodiumWorldRendererMixin.java
@@ -29,7 +29,7 @@
@Mixin(SodiumWorldRenderer.class)
public class SodiumWorldRendererMixin {
@Unique
- private final FogParameters NO_FOG = new FogParameters(0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f);
+ private final FogParameters NO_FOG = new FogParameters(0f, 0f, 0f, 0f, Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE);
@ModifyExpressionValue(method = "drawChunkLayer(Lnet/minecraft/client/render/BlockRenderLayerGroup;Lnet/caffeinemc/mods/sodium/client/render/chunk/ChunkRenderMatrices;DDDLnet/minecraft/client/gl/GpuSampler;)V", at = @At(value = "FIELD", target = "Lnet/caffeinemc/mods/sodium/client/render/SodiumWorldRenderer;lastFogParameters:Lnet/caffeinemc/mods/sodium/client/util/FogParameters;", opcode = Opcodes.GETFIELD))
private FogParameters modifyFogParameters(FogParameters original) {
diff --git a/src/main/resources/lambda.mixins.json b/src/main/resources/lambda.mixins.json
index 91a5111b4..c6bb57798 100644
--- a/src/main/resources/lambda.mixins.json
+++ b/src/main/resources/lambda.mixins.json
@@ -2,6 +2,7 @@
"required": true,
"minVersion": "0.8",
"package": "com.lambda.mixin",
+ "plugin": "com.lambda.mixin.OptionalModMixinPlugin",
"compatibilityLevel": "JAVA_21",
"client": [
"CrashReportMixin",