ReAnimated 1.7 (26.2)
Curse Maven Snippet
What's new
ReAnimated 1.7 — Fabric / Quilt
Four moments the mod never touched before: switching from one screen to another, the recipe book, tooltips and toasts. Plus settings for a single screen, so one menu can behave differently from all the rest.
🇬🇧 English
🔀 Screens hand over to each other
Vanilla swaps screens instantly: the main menu disappears, Settings appears. Now the screen you are leaving slides out to the side (and/or steps back), and the new one arrives from the opposite side. Going back plays it the other way round — Settings leaves to the right, the main menu returns from the left.
Direction comes from where you actually are: the mod keeps a short history of screens you opened, because Screen has no common "parent" field to read — some screens have one, mod screens may have anything.
- Styles: Slide sideways, Zoom, Slide + zoom, or No transition.
- Speed, distance and trajectory are separate from the general animation, so navigation can stay quick while menus themselves open slowly. Out of the box: 3 ticks, 24 px, Out Cubic.
- While a transition plays, the rest of the closing animation stays quiet — the preset, the button cascade and the background dimming. Otherwise walking through menus would cost the full close plus the transition, and you would see the unfinished reverse animation jump at the hand-off. The dimming also stays where it is on the screen that arrives: the previous one had already drawn it, and fading it in again read as a flicker.
- Where a transition deliberately never starts: containers (chests, the inventory), screens that appear while connecting to a world — they live for a fraction of a second and replace each other on their own — and screens that clean up after themselves in
close(). There a screen change happens exactly as before. - A safety limit ends any deferred change after 2.5 s, whatever the settings say.
📖 The recipe book grows out from under the panel
Vanilla pops the book into place: the panel is already there and a second one simply appears beside it. Now it scales up from the panel's left edge with a short sideways offset and settles.
- It plays both when you open the book with the button and when a screen opens with the book already unfolded: the widget is created along with the screen, so either way it is an appearance as far as the player is concerned.
- It works in every screen that has one — inventory, crafting table, furnace, smoker, blast furnace: the hook sits on the shared book widget rather than on individual screens.
- Settings: on/off, duration (170 ms), starting size (0.85), starting offset (12 px), trajectory.
💬 Tooltips grow in
A tooltip used to blink into place. Now it eases out of the point it is attached to — the cursor — and settles.
- The hook sits at the lowest point of tooltip drawing, where every overload converges: item tooltips, plain text, and tooltips from other mods are all covered by it.
- A tooltip is not an object with a lifecycle — it is the result of drawing the current frame — so "it just appeared" is worked out from gaps between frames. Moving the cursor from one item to another without a gap lets the tooltip flow across; a different number of lines restarts it, because that is clearly a different tooltip.
- Settings: on/off, duration (130 ms), start scale (0.92), start offset (5 px), trajectory.
🔔 Toasts slide on your curve
Advancements, recipes and system notifications already slide in — along a fixed curve, the square of time over 600 ms, with a slow start and an abrupt stop.
- The mod does not add a timer of its own. It takes the same point on vanilla's timeline and re-maps it through the trajectory you pick, so the moment a toast appears and the moment it leaves stay exactly vanilla — only the character of the movement changes.
- With Out Back (the default) a toast slides a touch past its resting place and comes back. The overshoot is capped so wide toasts don't sail off into the middle of the screen.
- Duration is adjustable between 100 and 600 ms. Longer is not possible: the mod reuses vanilla's own timer rather than replacing it.
🎛️ Settings for a single screen
Any screen can get its own preset, its own speed, or no animation at all — the main menu one way, the inventory another, a noisy mod screen not animated at all.
- Screens are stored by class name and entries are created lazily: while a screen's values match the general ones, nothing is written, so the config does not grow just because you opened the editor.
- The list contains screens you have opened this session, plus any that already have settings — there is nowhere to get a list of every screen in a modpack in advance, they only exist once the game or a mod creates them. Screens from mods are marked.
- Open it from Tools → Per-screen settings…, or from the Tools group inside Sodium's screen.
⚙️ Where the new settings live
- The mod's own screen (1.21.1 – 1.21.11): sections General · Menu · Pause · Screen transitions · Containers · Cursor · Popup windows · Logo · Tabs.
- Sodium 0.8+: two new pages — Transitions and Popups (recipe book, tooltips, toasts).
- 26.1 / 26.2: two new tabs, and the per-screen editor is a paginated list — one button per screen cycling through as general → presets → off, and a second one for its speed.
🧩 An API for extensions
Other mods can now add their own opening animation, tell ReAnimated to leave a screen alone (or to animate it anyway), read where the interface is right now, and put their own button into the settings. The full guide with examples is in API.md.
- Your own animation. An extension describes not frames but where the screen is at a given progress — offset and scale. It shows up in the settings as Extension animation, and the choice survives the extension being away: while its mod is missing, screens open with the default preset, and putting it back brings the animation back too.
- A "should this screen animate" rule. For screens ReAnimated cannot know anything about: ones that draw their own animation, hold a framebuffer, break on a shifted matrix — or, the other way round, want to be animated even though the player turned modded screens off. The player's own per-screen setting still wins over any rule.
- Live state and events.
ReAnimatedApi.state()returns the current offset, scale and progress, so another mod's overlay can travel with the screen instead of beside it; open / close / finish events are there too. - A button in the settings, so an extension can host its own screen inside ReAnimated's.
com.pycodder.reanimated.api pulls in neither game nor loader classes, so the same calls work on Fabric, Quilt and NeoForge across every supported version. Extensions are isolated: an exception from someone else's code is logged and swallowed, rather than crashing the game or breaking the animation of every other screen.
🎬 Four more presets, three more curves
- Slide down — the mirror of the default: the screen arrives from above.
- Slide from left and Slide from right — sideways entrances, independent of the screen-to-screen transitions.
- Pop — the screen jumps out of a point with a strong overshoot.
- New trajectories: In-Out Cubic, Out Elastic (spring) and Out Bounce, available everywhere a trajectory is picked — menus, containers, the pause menu, transitions, tooltips, toasts, the logo, tabs and lists.
⚡ Less work per frame
- List rows. In one of vanilla's signatures the row number isn't passed, so the mod looked it up by scanning the list — for every visible row, every frame, for as long as the screen stayed open. On the Mod Menu list that is hundreds of comparisons per row per frame long after the cascade has finished. The scan now happens only while the cascade is actually playing.
- Screen properties — chat, vanilla or modded, pause menu, short-lived loading screen — were re-derived every frame by walking the class hierarchy and comparing names. They depend only on the class, so they are now worked out once per class and cached.
- "Now" is read once per frame instead of dozens of times, which also makes every layer inside a frame exactly synchronised rather than a fraction of a millisecond apart.
🐞 Fixes
- EMI's sidebar columns no longer come apart while a screen animates. For speed EMI bakes the item models of its side panels into one buffer and draws it straight through
RenderSystem's model-view matrix — a different matrix from the one interface transforms live in, so the slot frames, the highlight and the panel background travelled with the screen while the models themselves stayed put, and the tooltip appeared where the item really was rather than where it was drawn. EMI already has an unbatched path that goes through the draw context and honours the matrix; for the length of the animation the mod switches it over to that one, and hands batching straight back when the screen settles. - The blur behind a container no longer travels with the panel. The background was put back in place by a counter-transform that repeated the screen's own maths in reverse, and on 1.21.6+ that copy had lost its horizontal term: the moment an animation gained a sideways component — a screen transition, a preset that slides in from the side — the blur slid along with the window. There is no counter-transform any more. The matrix is remembered at the start of the frame, before the screen is transformed, and the background simply gets it back: nothing to repeat, nothing to invert, nothing to get wrong.
- A cancelled transition no longer hands its direction to an unrelated screen. Pressing Esc while a menu was on its way out left the direction hanging around, and the next screen you opened slid in from the side for no reason.
- Clicking through menus faster than they animate no longer jumps. The unfinished entry animation is now carried into the outgoing motion and dissolves over the transition, instead of being cut off at whatever position it had reached.
- An animation that disappears together with its extension falls back to the default preset instead of leaving the screen standing still.
- Everything drawn as a "picture in picture" now travels with the panel. Since 1.21.6 the game draws such inserts through separate calls that take raw screen coordinates and ignore the interface matrix, while their clipping rectangle does follow it. Only the first of those calls — the inventory player model — was intercepted, so the book in the enchanting table, the banner in the loom, the sign in its editor and the skin preview in the settings stayed in place and got clipped in half while the panel travelled towards them. All six calls now go through the same matrix as the panel, position and size alike.
- The recipe book now travels with the container panel. Vanilla draws the book inside the screen's own render pass, so it normally rides along — but interface mods can lift that drawing into a layer of their own with a clean matrix, and then the inventory slides away while the book stands still (which is exactly what a review of a 250-mod pack showed). The mod now notices an identity matrix where its own transform should have been and re-applies it; when the transform is already in place, or somebody else's is, nothing is touched.
Versions
There's a separate download for each Minecraft version — GUI rendering changed a fair amount across 1.21.x and again in 26.x. File names look like reanimated-<Minecraft version>+1.7.jar.
| Minecraft | 1.21.1 – 1.21.11, 26.1.2, 26.2 |
| Loader | Fabric or Quilt, plus Fabric API |
Client-side only — not required on servers, and players without it won't notice anything different. Your config carries over untouched: the new keys (transition*, tooltip*, toast*, recipeBook*, screenOverrides) appear with their defaults on first launch.
Everything from 1.6 is unchanged: the settings screen layout, animated lists, the Sodium page, clipping that leaves other mods' GUIs alone, and the inventory player model keeping up with the panel.
💬 What's planned in future updates:
-
- Add support for most mods
-
- Performance update
-
- Bug fixes.
🇷🇺 Русский
Четыре момента, которых мод раньше не касался: смена одного экрана другим, книга рецептов, подсказки и уведомления. Плюс настройки для отдельного экрана — чтобы одно меню вело себя не так, как все остальные.
🔀 Экраны передают друг другу эстафету
Ваниль меняет экран мгновенно: главное меню исчезло, настройки появились. Теперь экран, из которого вы уходите, уезжает в сторону (и/или отступает вглубь), а новый приходит с противоположной. На возврате всё зеркально: настройки уезжают вправо, главное меню возвращается слева.
Направление берётся из того, где вы находитесь на самом деле: мод ведёт короткую историю открытых экранов — общего поля «родитель» у Screen нет, у одних экранов оно есть, у модовых бывает какое угодно.
- Стили: сдвиг вбок, масштаб, сдвиг + масштаб или без перехода.
- Скорость, дистанция и траектория отдельные от общей анимации: навигация может оставаться быстрой, даже если сами меню открываются неспешно. По умолчанию — 3 тика, 24 px, Out Cubic.
- Пока играет переход, остальная анимация ухода молчит — пресет, каскад кнопок и затемнение фона. Иначе проход по меню стоил бы полной длительности закрытия плюс перехода, а на стыке был бы виден скачок недоигранной обратной анимации. Затемнение по той же причине не набирается заново на пришедшем экране: его уже нарисовал предыдущий, и повторное нарастание читалось бы как моргание.
- Где перехода намеренно не будет: контейнеры (сундуки, инвентарь), экраны подключения к миру — они живут доли секунды и сами меняют друг друга — и экраны, которые прибираются за собой в
close(). Там смена экрана происходит ровно как раньше. - Страховка: отложенная смена в любом случае завершается через 2.5 с, что бы ни было в настройках.
📖 Книга рецептов вырастает из-под панели
Ваниль показывает окно книги разом: панель уже стоит, и рядом просто возникает вторая. Теперь оно масштабируется от левого края панели с коротким сдвигом вбок и встаёт на место.
- Играет и когда книгу раскрывают кнопкой, и когда экран открылся с уже раскрытой книгой: виджет создаётся вместе с экраном, так что для игрока это в обоих случаях появление.
- Работает в каждом окне, где книга есть — инвентарь, верстак, печь, коптильня, плавильня: хук стоит на общем виджете книги, а не на отдельных экранах.
- Настройки: вкл/выкл, длительность (170 мс), начальный масштаб (0.85), начальный сдвиг (12 px), траектория.
💬 Подсказки вырастают
Раньше подсказка возникала рывком. Теперь она плавно вырастает из точки, к которой привязана — из-под курсора — и встаёт на место.
- Хук стоит в самой нижней точке отрисовки подсказок, куда сходятся все перегрузки: подсказки предметов, простой текст и подсказки из других модов покрыты одним хуком.
- Подсказка — не объект с жизненным циклом, а результат отрисовки текущего кадра, поэтому «она только что появилась» определяется по разрывам между кадрами. Переход курсора с предмета на предмет без разрыва даёт подсказке перетечь, а смена числа строк перезапускает анимацию: это уже явно другая подсказка.
- Настройки: вкл/выкл, длительность (130 мс), начальный масштаб (0.92), начальный сдвиг (5 px), траектория.
🔔 Уведомления выезжают по вашей кривой
Достижения, рецепты и системные сообщения выезжают и в ванили — но по жёсткой кривой: квадрат времени за 600 мс, с медленным стартом и резкой остановкой.
- Мод не заводит своего таймера. Он берёт ту же точку ванильного таймлайна и перекладывает её на выбранную траекторию, поэтому момент появления и момент ухода уведомления остаются ванильными — меняется только характер движения.
- На Out Back (по умолчанию) уведомление чуть перелетает точку покоя и возвращается. Перелёт ограничен, чтобы широкие уведомления не уезжали к середине экрана.
- Длительность настраивается от 100 до 600 мс. Дольше нельзя: мод переиспользует ванильный таймер, а не подменяет его.
🎛️ Настройки отдельного экрана
Любому экрану можно задать свой пресет, свою скорость или отсутствие анимации — главному меню одно, инвентарю другое, шумному модовому экрану ничего.
- Экраны хранятся по имени класса, а записи заводятся лениво: пока значения совпадают с общими, в конфиг ничего не пишется — от одного захода в редактор он не растёт.
- В списке — экраны, которые вы открывали в этом запуске, плюс те, для которых настройки уже заданы: перечислить все экраны сборки заранее неоткуда, они появляются только когда их создаёт игра или мод. Экраны из модов помечены.
- Открывается из Инструменты → Настройки экранов…, а также из группы Инструменты внутри экрана Sodium.
⚙️ Где лежат новые настройки
- Свой экран мода (1.21.1 – 1.21.11): секции Общее · Экраны меню · Меню паузы · Переходы · Контейнеры · Курсор · Всплывающие окна · Логотип · Вкладки.
- Sodium 0.8+: две новые страницы — Переходы и Всплывающее (книга рецептов, подсказки, уведомления).
- 26.1 / 26.2: две новые вкладки, а редактор экранов — постраничный список: на каждый экран кнопка, перебирающая как общее → пресеты → выключено, и вторая кнопка для скорости.
🧩 API для расширений
Другие моды теперь могут добавить свою анимацию появления, подсказать ReAnimated не трогать конкретный экран (или, наоборот, анимировать его), узнать, куда прямо сейчас сдвинут интерфейс, и повесить свою кнопку в настройки. Полное руководство с примерами — в API.md.
- Своя анимация. Расширение описывает не кадры, а положение экрана в произвольный момент — сдвиг и масштаб. Она появляется в настройках строкой «Анимация расширения», а выбор переживает отсутствие расширения: пока его мода нет, экраны открываются пресетом по умолчанию, вернут мод — вернётся и анимация.
- Правило «анимировать ли этот экран». Для экранов, о которых ReAnimated не может знать: они рисуют свою анимацию, держат кадровый буфер, ломаются от смещённой матрицы — или, наоборот, хотят анимироваться, хотя игрок отключил анимацию модовых экранов. Настройка конкретного экрана, сделанная игроком, всё равно сильнее любого правила.
- Состояние и события.
ReAnimatedApi.state()отдаёт текущий сдвиг, масштаб и прогресс — оверлей другого мода может ехать вместе с экраном, а не рядом с ним; события открытия, закрытия и завершения тоже есть. - Кнопка в настройках, чтобы расширение могло держать свой экран внутри настроек ReAnimated.
Пакет com.pycodder.reanimated.api не тянет за собой ни классов игры, ни классов загрузчика: одни и те же вызовы работают на Fabric, Quilt и NeoForge и на всех поддерживаемых версиях. Расширения изолированы: исключение из чужого кода логируется и гасится, а не роняет игру и не ломает анимацию остальных экранов.
🎬 Ещё четыре пресета и три кривые
- Выезд сверху — зеркало обычного: экран приходит сверху.
- Выезд слева и выезд справа — боковые появления, независимые от переходов между экранами.
- Pop — экран выскакивает из точки с сильным отскоком.
- Новые траектории: In-Out Cubic, Out Elastic (пружина) и Out Bounce. Доступны везде, где выбирается траектория, — меню, контейнеры, меню паузы, переходы, подсказки, уведомления, логотип, вкладки и списки.
⚡ Меньше работы на кадр
- Строки списков. В одной из ванильных сигнатур номера строки нет, и мод искал его перебором по списку — для каждой видимой строки, каждый кадр, всё время, пока экран открыт. На списке модов это сотни сравнений на строку в кадре спустя долгое время после того, как каскад доиграл. Теперь перебор идёт только пока каскад действительно играет.
- Свойства экрана — чат, ванильный или модовый, меню паузы, экран-«однодневка» — выяснялись каждый кадр обходом иерархии классов со сравнением имён. Они зависят только от класса, поэтому теперь считаются один раз на класс и кэшируются.
- «Сейчас» читается один раз на кадр, а не десятки; заодно все слои внутри кадра считаются от одного момента, а не расползаются на доли миллисекунды.
🐞 Исправления
- Колонки EMI больше не разъезжаются во время анимации экрана. Ради скорости EMI запекает модели предметов боковых панелей в один буфер и рисует его напрямую матрицей
RenderSystem— а это другая матрица, не та, в которой живут трансформации интерфейса. Из-за этого рамки слотов, подсветка и фон панели ехали вместе с экраном, а сами модели оставались стоять, и подсказка появлялась там, где предмет на самом деле, а не там, где он нарисован. Непакетный путь у EMI уже есть — он рисует через контекст отрисовки и матрицу учитывает; на время анимации мод переключает EMI на него и возвращает пакетную отрисовку, как только экран встал на место. - Блюр за панелью контейнера больше не уезжает вместе с ней. Фон возвращали на место встречной трансформацией, которая повторяла математику экрана в обратном порядке, — и на 1.21.6+ в этой копии потерялся горизонтальный сдвиг: как только у анимации появлялась составляющая вбок (переход между экранами, пресет со сдвигом), блюр ехал вместе с окном. Встречной трансформации больше нет вовсе: матрица запоминается в начале кадра, до трансформации экрана, и фон просто получает её обратно — повторять и обращать нечего, ошибиться негде.
- Отменённый переход больше не передаёт направление постороннему экрану. Если нажать Esc, пока меню уезжало, направление оставалось висеть, и следующий открытый экран без причины въезжал сбоку.
- Быстрые клики по меню больше не дают скачка. Недоигранная анимация входа теперь подхватывается уходом и плавно рассасывается за время перехода, а не обрывается на той точке, где её застали.
- Анимация, исчезнувшая вместе с расширением, откатывается к пресету по умолчанию, а не оставляет экран стоять на месте.
- Всё, что рисуется «картинкой в картинке», едет вместе с панелью. С 1.21.6 игра рисует такие вставки отдельными вызовами, которые принимают сырые экранные координаты и игнорируют матрицу интерфейса, а вот обрезку по матрице прогоняют. Перехвачен был только первый такой вызов — модель игрока в инвентаре, — поэтому книга в столе зачарований, знамя в ткацком станке, табличка в редакторе и превью скина в настройках оставались стоять на месте и обрезались наполовину, пока панель до них ехала. Теперь через ту же матрицу, что и панель, проходят все шесть вызовов — и положение, и размер.
- Книга рецептов едет вместе с панелью контейнера. Ваниль рисует её внутри отрисовки экрана, то есть под общим трансформом, — но моды на интерфейс умеют выносить эту отрисовку в свой слой с чистой матрицей, и тогда инвентарь уезжает, а книга остаётся стоять (ровно это видно в обзоре сборки на 250+ модов). Теперь мод замечает единичную матрицу там, где должен был лежать его трансформ, и накладывает его сам; если трансформ на месте или его подменил другой мод, ничего не трогается.
Версии
Для каждой версии Minecraft — свой файл: отрисовка интерфейса заметно менялась внутри 1.21.x и ещё раз в 26.x. Имя файла выглядит как reanimated-<версия Minecraft>+1.7.jar.
| Minecraft | 1.21.1 – 1.21.11, 26.1.2, 26.2 |
| Загрузчик | Fabric или Quilt плюс Fabric API |
Мод клиентский: на сервере не нужен, игроки без него ничего не заметят. Конфиг переносится как есть — новые ключи (transition*, tooltip*, toast*, recipeBook*, screenOverrides) при первом запуске получают значения по умолчанию.
Всё из 1.6 на месте: раскладка экрана настроек, анимация списков, страница в Sodium, обрезка, не мешающая интерфейсам других модов, и модель игрока, не отстающая от панели.
💬 Что запланировано в следующих обновлениях:
-
- Добавление поддержки кучи модов
-
- Улучшение производительности
-
- Фикс багов
This mod has no additional files