LoVisual/mod
LoVisual AI 135628c2f1
feat(mod): Stage 3 (continued 2) — entity + block + Sodium contract mixins
Per mod/docs/optimize-layer-design.md Stage 3 (continued). This batch
implements the Stage 1 mixin-contract interfaces on their target MC classes
so CachedName, StateEntity, TickCached, CachedLight, CachedValidity and
CachedStack actually get used. Seven new mixin'ов; no new helpers (the
helpers were all written in Stage 1 already).

Entity-contract mixins (mixins/optimize/entity/):
- EntityNameMixin: implements CachedName on Entity — adds the per-tick
  cached name-tag fields (Component + tick). Vanilla Entity.getDisplayName()
  rebuilds the team prefix + name + suffix on every call.
- EntityRenderStateEntityMixin: implements StateEntity on EntityRenderState —
  adds the back-reference field to the source Entity. Render-states are
  rebuilt every frame so they can't keep their own pointer; this is captured
  by EntityRendererStateMixin.
- EntityRendererStateMixin: Inject at RETURN on EntityRenderer.createRenderState
  — captures the source Entity on the freshly-built state via the StateEntity
  contract. ZakoOpt used @ModifyReturnValue; we use plain @Inject because the
  MixinExtras ModifyReturnValue transformer is more fragile across MC versions.
- EntityRendererNameMixin: WrapOperation on EntityRenderer.getNameTag's
  Entity.getDisplayName call — caches by game tick so the per-frame cost is
  one identity check + read instead of a full Component rebuild.
- SodiumEntityRendererMixin: WrapOperation on Sodium EntityRenderer.renderCuboid's
  MemoryStack.stackPush — uses CachedStack (Stage 1) to skip the ThreadLocal
  lookup on the render thread. Registered as optional via LoVisualMixinPlugin
  (only applied when Sodium is loaded); remap = false because the target is
  a Sodium class, not a Mojang one.

BlockEntity-contract mixins (mixins/optimize/block/):
- BlockEntityMixin: implements TickCached + CachedLight + CachedValidity on
  BlockEntity — adds the per-tick cache slot, per-tick block-light lookups
  (single + pair for double-chests), per-tick should-render distance check,
  and per-state validity cache. All four are read by the (Stage 3, future)
  ChestRendererMixin / BlockEntityRenderStateMixin / BlockEntityRenderDispatcherMixin.
- BaseSpawnerMixin: implements TickCached on BaseSpawner — adds the per-tick
  cache slot that SpawnerCache (Stage 1) reads back.

Folder limit (≤4 .java per folder):
- mixins/optimize/entity/ hit 6 files after this batch — split into
  mixins/optimize/entity/renderer/ for EntityRendererStateMixin +
  EntityRendererNameMixin (the two that target EntityRenderer rather than
  Entity/EntityRenderState directly). The other 4 stay in entity/.

lovisual.mixins.json: seven new entries in the 'client' array, alphabetical:
  optimize.block.BaseSpawnerMixin
  optimize.block.BlockEntityMixin
  optimize.entity.EntityNameMixin
  optimize.entity.EntityRenderStateEntityMixin
  optimize.entity.SodiumEntityRendererMixin
  optimize.entity.renderer.EntityRendererNameMixin
  optimize.entity.renderer.EntityRendererStateMixin

LoVisualMixinPlugin: added SodiumEntityRendererMixin to OPTIONAL_SODIUM_MIXINS
so the mixin is only applied when Sodium is loaded (matches the existing
convention for sodium.* mixins).

Tests: no new tests in this batch (the new mixins are pure side-effect
field-bags — they don't have unit-testable logic). Existing suite still green.
Total: 866 tests, 0 failures. checkFolderLimit: OK (0 папок >4).
2026-10-11 10:23:03 +02:00
..
config feat(mod): ProjectileTrails, KillEffect death modes (Shatter/Ascend/Explosion/Disintegrate), TNT fuse bar; compact TODO 2026-10-02 10:01:37 +02:00
docs docs(mod): mark Stage 1+2 done and Stage 3 partial in optimize-layer-design.md 2026-10-10 18:53:38 +02:00
gradle/wrapper chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
src feat(mod): Stage 3 (continued 2) — entity + block + Sodium contract mixins 2026-10-11 10:23:03 +02:00
tools chore(history): squash 100 commit(s) from 2026-09-24 2026-09-24 23:52:12 +02:00
.gitignore chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
build.gradle feat: frontend perf and a11y pass, plus mod visuals, hero main menu, Simple Voice Chat and vanilla chat autocomplete 2026-10-01 21:29:54 +02:00
DEV_GUIDE.md chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
gradle.properties release: bump mod to 0.1.3; skip the CI release build when the release already exists 2026-10-09 22:23:23 +02:00
gradlew ci(release): commit the mod's Gradle wrapper launch scripts 2026-09-28 14:19:18 +02:00
gradlew.bat ci(release): commit the mod's Gradle wrapper launch scripts 2026-09-28 14:19:18 +02:00
LICENSE chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
lombok.config chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
NOTICE feat(mod): Stage 1 optimization helpers (backend-independent) 2026-10-10 14:50:50 +02:00
README.md docs: add a real root README and rewrite the frontend one 2026-09-28 17:28:41 +02:00
settings.gradle chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
TODO.md feat(mod): cosmetics settings category with custom card previews, in-chat widget quick settings, HUD and ClickGUI look pages, TotemSound 2026-10-07 17:54:25 +02:00

LoVisual

Minecraft utility client for PvP and automation. Developed and maintained by loki5512344.

Java Fabric License

English | Русский


English

Overview

LoVisual is an open-source legit utility client for Minecraft. It provides configurable visual, HUD, and UI features with a custom ClickGUI, theme system, and addon API.

LoVisual is developed and maintained by loki5512344. The goal is to keep adding new features and maintain compatibility with the latest Minecraft versions.

Quick Start

  1. Install Fabric Loader 0.19.3+ for MC 26.2+
  2. Download the LoVisual jar
  3. Place it in your mods/ folder along with Fabric API and Sodium
  4. Open the ClickGUI with RShift (configurable)

Features

Feature Description
Combat ProjectilePuncher, Reach, RubberHand, SpearAssist, TPSSync, PvpCooldowns, NoFriendDamage, TargetESP, Predictions, DamageTint
Visuals ESP, NameTags, Chams, Crosshair, FullBright, MotionBlur, NoRender, Freecam, Hitboxes, Light, ChinaHat, Trinkets, SpatialGui, and more
Player AutoTool, ClickPearl, FakeLag, NoDelay, LockSlot, AutoRespawn, DeathCoords, NoInteract
Misc BetterMinecraft, FakePlayer, HitSounds, NameProtect, MessageFilter, NoSound, DefineTarget
HUD Draggable & static elements: TargetHUD, ModuleList, Watermark, Reach, Armor, Potions, Keystrokes, Coords, Notifications, Scoreboard
ClickGUI Full-featured GUI with module browser, settings editor, theme editor, config profiles
Config profiles .lvcfg profiles for modules, HUD, and themes — shareable between users
Addon API Versioned addon API for extending the client
Custom renderer Custom UI rendering with MSDF fonts, SVG icons, and shader support
Iris/Sodium/Xaero Optional compatibility with popular mods

Compatibility

Mod Status
Sodium ✅ Required
Iris ✅ Optional — shaderpack support
ImmediatelyFast ✅ Optional — performance
Entity Culling ✅ Optional — performance
Xaero's Minimap ✅ Optional — waypoint integration
Xaero's World Map ✅ Optional — waypoint integration
ViaFabricPlus ✅ Optional — protocol translation

Dependencies

  • Required: Fabric Loader 0.19.3+, Fabric API, Sodium, Java 25+
  • Optional: Iris, ImmediatelyFast, ViaFabricPlus, Entity Culling, Xaero's Minimap, Xaero's World Map

Installation

  1. Download the jar from Releases
  2. Place it in your mods/ folder
  3. Restart the game

Русский

Обзор

LoVisual — открытый легитный утилитарный клиент для Minecraft. Включает настраиваемые визуальные, HUD и UI-модули, кастомный ClickGUI, систему тем и API для аддонов.

LoVisual разрабатывается и поддерживается loki5512344. Цель — добавлять новые возможности и поддерживать актуальные версии Minecraft.

Быстрый старт

  1. Установите Fabric Loader 0.19.3+ для MC 26.2+
  2. Скачайте LoVisual jar
  3. Положите в папку mods/ вместе с Fabric API и Sodium
  4. Откройте ClickGUI через RShift (настраивается)

Возможности

Возможность Описание
Combat ProjectilePuncher, Reach, RubberHand, SpearAssist, TPSSync, PvpCooldowns, NoFriendDamage, TargetESP, Predictions, DamageTint
Visuals ESP, NameTags, Chams, Crosshair, FullBright, MotionBlur, NoRender, Freecam, Hitboxes, Light, ChinaHat, Trinkets, SpatialGui и другие
Player AutoTool, ClickPearl, FakeLag, NoDelay, LockSlot, AutoRespawn, DeathCoords, NoInteract
Misc BetterMinecraft, FakePlayer, HitSounds, NameProtect, MessageFilter, NoSound, DefineTarget
HUD Перетаскиваемые и статические элементы: TargetHUD, ModuleList, Watermark, Reach, Armor, Potions, Keystrokes, Coords, Notifications, Scoreboard
ClickGUI Полноценный GUI с браузером модулей, редактором настроек, тем и профилей конфигов
Профили .lvcfg Профили для модулей, HUD и тем — можно шарить между пользователями
Addon API Версионированное API для аддонов
Кастомный рендер UI-рендеринг с MSDF-шрифтами, SVG-иконками и шейдерами
Iris/Sodium/Xaero Опциональная совместимость с популярными модами

Совместимость

Мод Статус
Sodium ✅ Требуется
Iris ✅ Опционально — шейдерпаки
ImmediatelyFast ✅ Опционально — производительность
Entity Culling ✅ Опционально — производительность
Xaero's Minimap ✅ Опционально — интеграция waypoint
Xaero's World Map ✅ Опционально — интеграция waypoint
ViaFabricPlus ✅ Опционально — протокол

Зависимости

  • Обязательные: Fabric Loader 0.19.3+, Fabric API, Sodium, Java 25+
  • Опциональные: Iris, ImmediatelyFast, ViaFabricPlus, Entity Culling, Xaero's Minimap, Xaero's World Map

Установка

  1. Скачайте jar из Releases
  2. Положите в папку mods/
  3. Перезапустите игру

Development

Building

./gradlew build

Docs

License

GNU General Public License v3.0. See LICENSE.

Credits

  • The SpatialGui module (rendering the open screen as a 3D plane in the world) is adapted from Spatial GUI (MIT License).

TODO

План разработки и актуальный статус ведутся в TODO.md.