Проблема в том, что, допустим, я создал свой чит с нуля без либ и т. д., сделал просто Chams и запустил его с модами, но из-за модов на изменение рендера Chams не работает, по типу Sodium и другие, нельзя ли как-то сделать мод главным?
К сожалению, в экосистеме Fabric невозможно сделать так, чтобы ваш мод гарантированно имел "главный приоритет" и выполнялся абсолютно последним, перекрывая все остальные. Архитектура Fabric специально спроектирована так, чтобы предоставить равные возможности всем модам, не выделяя "главных" .
Однако вы можете добиться желаемого поведения для своей функции Chams, правильно настроив приоритеты миксинов (Mixin). Это решит конфликт на уровне кода, где происходит "битва" за рендер.
Вот пошаговое руководство, как это сделать.

Почему не работает "приоритет загрузки модов"
· Равноправие модов: Fabric Loader специально разработан так, чтобы все моды были равны. Он не позволяет одному моду "перехватить" управление или гарантированно загрузиться позже всех .
· Очередь инициализации: Порядок вызова методов onInitialize зависит от сложной системы зависимостей, на которую вы не можете влиять напрямую, кроме как через depends (требования) . А функция рендера активируется гораздо позже иницициализации.
Поэтому бороться за "главную роль" на уровне всего мода — бесперспективно.

Правильное решение: Управление приоритетом миксинов
Для решения вашей проблемы — конфликта с Sodium — нужно настроить приоритет внутри вашего mixin-класса, который изменяет код отрисовки.
1. Откройте ваш mixin-класс. Это Java-файл, который начинается с аннотации
@Mixin.
2. Установите низкий приоритет. В аннотации
@Mixin есть параметр priority. Чем меньше число, тем выше приоритет и тем раньше будет применен ваш код. Чтобы ваш код применился после всех остальных (например, после изменений Sodium), нужно установить высокое значение приоритета (число больше 1000) .
```java
// Устанавливаем низкий приоритет (число > 1000), чтобы наш миксин применился позже
@Mixin(value = SomeRenderClass.class, priority = 1500)
public class MyChamsMixin {
// Ваш код для Chams здесь
}
```
3. Как это работает: Sodium, скорее всего, использует стандартный приоритет 1000. Установив свой приоритет в 1500, вы гарантируете, что ваш код будет внедрен после кода Sodium, и его изменения не будут потеряны .

План Б: Защита от конфликтов в рантайме
Если установка приоритета не помогла (например, другой мод делает
@Overwrite), можно добавить "защиту от дурака" прямо в код:
· Проверка на наличие
@Overwrite: Вы можете попробовать использовать
@Overwrite в своем миксине. В этом случае победит миксин с наименьшим значением priority .
· Использование
@Redirect или @ModifyArg: Эти аннотации более гибкие и конфликтуют реже, чем
@Overwrite, но порядок их применения также зависит от приоритета .

Резюме: как добиться стабильной работы Chams
1. Забудьте про "главный приоритет мода" — его не существует в Fabric.
2. Найдите mixin-класс(ы), которые отвечают за вашу функцию обхода стен (Chams).
3. Установите в аннотации
@Mixin параметр priority = 1500 (или выше). Это заставит Fabric применить ваши изменения после большинства других модов, включая Sodium.
4. Протестируйте. Если проблема осталась, попробуйте еще более высокое значение, например 2000 .
Это самый правильный и "джентльменский" способ решения конфликтов в экосистеме Fabric.
Если у вас есть конкретный класс, с которым возникает конфликт, напишите его название — возможно, я смогу подсказать более точный приоритет