promotional bannermobile promotional banner

CoreProtectGUI

A client-side Fabric mod for Minecraft 26.1.x that replaces CoreProtect's wall of chat text with a proper window: player heads, item icons, translated names, filters, sorting, per-player summaries, world outlines and export.
Two columns, and every change applies the moment you make it. · Дві колонки, і кожна зміна діє одразу.

Two columns, and every change applies the moment you make it. · Дві колонки, і кожна зміна діє одразу.

Fourteen pages, including one on what the mod cannot do. · Чотирнадцять сторінок, і одна з них — про те, чого мод не може.

Fourteen pages, including one on what the mod cannot do. · Чотирнадцять сторінок, і одна з них — про те, чого мод не може.

Matches the translated name, the raw id, and the text on a sign. · Шукає за перекладеною назвою, сирим id і текстом на табличці.

Matches the translated name, the raw id, and the text on a sign. · Шукає за перекладеною назвою, сирим id і текстом на табличці.

They merge into one table, so filters and summaries cover all of them. · Вони зливаються в одну таблицю, тож фільтри й підсумки працюють по всіх.

They merge into one table, so filters and summaries cover all of them. · Вони зливаються в одну таблицю, тож фільтри й підсумки працюють по всіх.

Two characters typed, and 13 of 22 rows are left. · Два введені символи — і лишається 13 з 22 рядків.

Two characters typed, and 13 of 22 rows are left. · Два введені символи — і лишається 13 з 22 рядків.

Description

Title In English

Discord

A client-side Fabric mod for Minecraft 26.1.x that replaces CoreProtect's wall of chat text with a proper window: player heads, item icons, translated names, filters, sorting, per-player summaries, world outlines and export.

Nothing is installed on the server, and the mod does nothing a player could not do by hand. It sends only when you click something: the page jumps CoreProtect attached to its own links, and — from the item-restoring menu — a /give, a CoreProtect rollback, or a creative-inventory placement. Each of those is subject to exactly the permission it would need if you typed or clicked it yourself.

CoreProtectGUI is an independent mod. It is not affiliated with the CoreProtect plugin and is not part of it.


What it does

You run /co i and click a chest. Instead of this:

2.53/h ago + its_real_uk added x53 stripped_spruce_wood.
2.53/h ago - its_real_uk removed x56 stripped_spruce_wood.
...700 more lines

a window opens with a table: the player's head, the item's icon, its name in your own language, and "2 hours 32 min ago" instead of 2.53/h.

Features

  • Five views — event list, totals by player, by item, by action, and the raw server text as a safety net.
  • Filters by player, item, action and quantity (, =, ), plus a time period.
  • Sorting by clicking a column heading.
  • In-window pagination, plus batch loading of many pages at once.
  • History on disk — old rows never need asking the server for twice; paging stops as soon as a page brings nothing new.
  • Marks in the world — an outline, a filled box, or the block itself drawn translucent. The last one shows what was there, not only where.
  • JourneyMap waypoints and teleport from a row.
  • Export to TXT, CSV, JSON, Markdown or a standalone HTML page.
  • Restore a lost item (operators) — give it back with its enchantments and name, place it in your inventory in creative, or roll the action back through CoreProtect.
  • Enchantments shown as real item lore with the glint, where the server sends them.
  • Two looks, switched in Settings at any moment: Modern, and the Classic the mod shipped with.
  • A pictogram per action, so putting something in and taking it out are told apart by shape and not by colour alone — and any of them can be replaced with a PNG of your own.
  • A colour per action, with a picker.
  • Reads CoreProtect's English, Ukrainian and Russian wording, and the Advanced screen suggests the wordings other languages use.

Requirements

Minecraft 26.1.x
Fabric Loader 0.19.0+
Java 25
Fabric API required
Mod Menu optional — settings also reachable in-game
JourneyMap optional — enables waypoints

Your server needs the CoreProtect plugin and you need permission to use /co i or /co near. The mod grants no access you do not already have.

Using it

Action How
Open the window /co i and click a block, or press K for the last result
Guide the ? button — fourteen pages, picked from a grid
Settings the cog button, or Mod Menu
Switch view the List / By player / By item / By action / As received button
Mark the blocks in the world the brackets button
History for this spot the clock button
Waypoint / teleport click a row / Shift+click a row
Restore an item (operators) right-click a row — give, creative placement, or rollback
Type a page number click the in the pager
Stop batch loading Esc

Three keys live in Controls, under CoreProtect UA. Only the first has a default, because the other two send a command to the server:

Key Does
K reopen the last result, without asking the server again
unbound run /co inspect
unbound run /co near

Filter syntax

The Player and Item boxes understand a small query language:

Query Meaning
Steve, Alex either of them
-Steve everyone except Steve
-Steve, -Alex neither of them
"stone" exact match — stone only
stone also sandstone, redstone, stone bricks
diamond, -sword matches diamond, but never sword

! works in place of -. Items match by translated name, by raw id and by sign text.

The button beside the period boxes fills in a ready-made stretch — hour, day, week — with no typing. The boxes also take their own text: 7d, 24h, 30m, a date (2026-07-20) or a date and time (2026-07-20 15:30).

Settings

config/cpg.json, editable in-game:

Key Default Meaning
autoOpen true open the window automatically after /co i
suppressChat true swallow CoreProtect's original chat lines
guiTheme MODERN the look: MODERN or CLASSIC
rowHeight 22 table row height, 14–48
animations true windows fading in, rows arriving and leaving, eased scrolling
translateStatusLines true translate the plugin's status messages
requestGapTicks 10 pause between page requests (20 ticks = 1 second)
keepHistory true remember lookups on disk
keepInMemory true keep scanned rows in RAM between lookups
stopAtKnownPages true stop paging once a page brings nothing new
highlightBlocks true mark the result's blocks in the world at all
highlightStyle OUTLINE OUTLINE, GHOST_BOX or GHOST_BLOCK
highlightSeconds 180 how long a mark lasts
highlightHours 24 how old an event may be and still be marked
highlightThroughWalls true draw marks over the terrain — ignored by GHOST_BLOCK, which cannot be
highlightFadeColour true colour marks by time left rather than by action
actionColours colour per action, with a picker in-game
actionIcons a PNG from the icon folder per action; anything unlisted keeps its built-in pictogram
serverUtcOffsetMinutes 0 (UTC) the server's clock, so exact times convert to yours

Getting serverUtcOffsetMinutes right matters for anything time-based — the relative "ago" on every row, and the period filter's from/to boxes both depend on it. The Settings screen can work it out on its own: Detect the server's offset automatically compares an exact-time row's raw stamp against its zone-free "X ago" and solves for the difference, so nothing has to be guessed by hand.

An Advanced screen exposes what the mod treats as CoreProtect output: status-line prefixes, the keyword in headers, and extra spellings for actions, "ago" and "page". Only worth touching if your server words things unusually — and each box offers the wordings other CoreProtect languages use, completed with Tab, so the answer does not have to be known in advance.

Your own action icons

Drop PNGs into the folder next to config/cpg.json — the Icon folder button on the Action colours screen opens it — and any of them can be given to any action. What happens to a picture:

  • It is reduced to 8×8. Drawing it at that size gives the sharpest result.
  • It is drawn in the action's colour, not its own, so only the shape survives. That colour is set on the same screen.
  • With transparency, the opaque parts are the shape. Without any, the dark parts are and the light parts count as background — an image straight out of an editor is a drawing on a white canvas, and reading it the other way would turn every icon into a filled square.

A note saying all of this is left in the folder the first time it is created.

Known limits

How much of an item survives depends on the server. CoreProtect's text carries an item's id and nothing else. Anything richer arrives only if the server attaches a hover to the item name, and there are two cases:

  • a real item — the data is the server's own and goes across exactly;
  • a description in words ("Efficiency III") — the mod matches those back against the game registry and rebuilds enchantments and the custom name. Close, but reconstructed.

Without the first, durability, attribute modifiers, shulker/book/potion contents and custom model data are simply not there — not for this mod or any other client-side one. A rollback is the only route to the server's real record, because it runs on the server from that record.

The wording must be recognised. English, Ukrainian and Russian are built in. If a server uses another CoreProtect language, or a fork, the table will come up empty — the mod says so and switches to the raw view rather than looking broken. The Advanced screen is there to teach it the new wording.

Batch loading is visible to the server. Thirty pages is thirty commands. They go out one at a time with a pause, but raise requestGapTicks if your server throttles commands.

A ghost block cannot be seen through terrain, and stands in its default orientation. It is ordinary geometry, so nothing hangs it over the world the way an outline hangs; and CoreProtect names the block but not its state, so a log lies along its own axis and a stair faces north whatever the real one did. An item with no block form at all — a wind charge, say — gets no ghost. The outline is still there for the cases those matter in.

Giving an item back needs the same permission typing it would. Right-clicking a row sends a plain /give, not a bypass — it only works for someone who could already run that command themselves. It carries whatever of the item's data survived, as above.

Any row with an exact timestamp whose action CoreProtect can undo also offers a rollback, restoring the server's own record rather than a reconstruction. Where it lands depends on what happened: something dropped, thrown or lost on death goes back into the player's own inventory — this is how you hand someone their gear back after dying — while something taken from a container goes back into the container.

Two caveats. The container case can duplicate: CoreProtect refills the container without touching whoever emptied it, so if they still have the item, there are now two. And it is aimed by the player, a few seconds either side of the row, and a radius around where you are standing rather than around the row's own coordinates, so another matching action of theirs at that moment and place goes with it. It runs for real and takes two clicks, since CoreProtect refuses to preview container transactions.

Support

Questions, bug reports and suggestions go on Discord — in English or in Ukrainian, there is a channel for each.

Building

MC 26.x ships unobfuscated, so Fabric Loom, Yarn and mappings are not needed — this is a plain Java project compiled straight against the game jar. The build downloads Minecraft and its libraries from Mojang itself, so a clean checkout builds anywhere with just a JDK 25.

./gradlew build

The jar lands in build/libs/. To drop it into a game instance for testing:

./gradlew installMod -Pmods_dir=/path/to/instance/mods

Every dependency resolves from a public source — Minecraft and its libraries from Mojang's manifest, Fabric API and Loader from the Fabric maven, Mod Menu from Terraformers. Nothing has to be present on the machine beforehand and nothing third-party is redistributed with this source.

JourneyMap is optional at build time too. Its API is All Rights Reserved, so it cannot travel with this repository and has to be fetched from ModMaven. If it cannot be reached — or you pass -Pjourneymap=false — the two classes that touch it are left out and everything else builds as usual. The resulting jar is simply one without waypoint support, which is exactly how the mod behaves for a player who has no JourneyMap installed. The build says which of the two it produced.

Tests

./gradlew test

161 tests covering the parser, the filter query language, summaries, time parsing, history merging, chat collapsing, the rollback action mapping, the give command's component budget, and every export format's escaping. The parser tests run against real CoreProtect output captured from a live server, kept in src/test/resources.

Licence

CoreProtectGUI Non-Commercial License 1.0 — use, modify and share it freely and for free, but making money from it is not allowed: no selling, no paid access, no monetised links, no bundling into paid packs or services. Voluntary donations that grant no extra access are fine.

This is deliberately not an OSI open-source licence.


Українською

Клієнтський Fabric-мод для Minecraft 26.1.x, який замінює текстове простирадло CoreProtect на нормальне вікно: голови гравців, іконки предметів, перекладені назви, фільтри, сортування та зведення по гравцях.

Нічого не потрібно встановлювати на сервер, і мод не робить нічого, чого не зробив би гравець руками. Надсилає щось лише тоді, коли ти сам натискаєш: переходи між сторінками, які CoreProtect повісив на свої посилання, а з меню відновлення предметів — /give, відкат CoreProtect або викладання через креативний інвентар. Кожна з цих дій потребує рівно того права, що й якби ти зробив її вручну.

CoreProtectGUI — незалежний мод. Він не пов'язаний із плагіном CoreProtect і не є його частиною.


Що він робить

Ви робите /co i і клікаєте по скрині — замість цього:

2.53/h ago + its_real_uk added x53 stripped_spruce_wood.
2.53/h ago - its_real_uk removed x56 stripped_spruce_wood.
...ще 700 рядків

відкривається вікно з таблицею, де є голова гравця, іконка предмета, «Брусок ялинової деревини» замість stripped_spruce_wood і «2 години 32 хв тому» замість 2.53/h.

Основне

  • П'ять виглядів — список подій, підсумки по гравцях, по предметах, по діях, і сирий текст від сервера як запобіжник.
  • Фільтри по гравцю, предмету, дії та кількості (, =, ), плюс період.
  • Сортування кліком по заголовку колонки.
  • Пагінація у вікні, плюс пакетне завантаження кількох сторінок одразу.
  • Історія на диску — старі рядки не запитуються в сервера вдруге; завантаження сторінок зупиняється, щойно якась не приносить нічого нового.
  • Позначки у світі — контур, залитий куб, або сам блок напівпрозорим. Останній показує, що там було, а не лише де.
  • Вейпоінти JourneyMap і телепорт прямо з рядка.
  • Експорт у TXT, CSV, JSON, Markdown або окрему HTML-сторінку.
  • Повернути втрачений предмет (адмінам) — видати з чарами й назвою, покласти в інвентар у креативі, або відкотити дію через CoreProtect.
  • Чари показуються як справжня лора предмета з переливом, там де їх надсилає сервер.
  • Два вигляди, перемикаються в налаштуваннях будь-коли: сучасний і той класичний, з яким мод вийшов.
  • Піктограма для кожної дії, щоб «поклав» і «забрав» різнились формою, а не лише кольором, — і будь-яку з них можна замінити власним PNG.
  • Свій колір для кожної дії, з піпеткою й HEX.
  • Розпізнає формулювання CoreProtect англійською, українською та російською, а екран «Для просунутих» підказує, як це пишуть інші мови.

Встановлення

Minecraft 26.1.x
Fabric Loader 0.19.0+
Java 25
Fabric API обов'язково
Mod Menu необов'язково — налаштування доступні й у самому вікні
JourneyMap необов'язково — вмикає вейпоінти

Киньте coreprotectgui-*.jar у теку mods. На сервері потрібен плагін CoreProtect і дозвіл на /co i або /co near — мод не дає жодного доступу, якого в тебе й так немає.

Користування

Дія Як
Відкрити вікно /co i і клік по блоку, або клавіша K для останнього результату
Довідка кнопка ? — чотирнадцять сторінок, які обираєш із сітки
Налаштування кнопка з шестернею або Mod Menu
Перемкнути вигляд кнопка Список / За гравцем / За предметом / За дією / Як прийшло
Позначити блоки у світі кнопка з дужками
Історія для цього місця кнопка з годинником
Вейпоінт / телепорт клік по рядку / Shift+клік по рядку
Відновити предмет (адмінам) право-клік по рядку — видати, креатив або відкат
Вписати номер сторінки клік по у переліку сторінок
Зупинити завантаження Esc

Три клавіші лежать у «Керуванні», секція CoreProtect UA. Стандартне значення є лише в першої, бо дві інші надсилають команду на сервер:

Клавіша Що робить
K відкрити останній результат, не питаючи сервер знову
не задано виконати /co inspect
не задано виконати /co near

Мова фільтрів

Поля «Гравець» і «Предмет» розуміють простий синтаксис:

Запит Значення
Sbirioni, DarkCapi будь-хто з двох
-Sbirioni усі, крім нього
-Sbirioni, -Ivan крім обох
"stone" точний збіг — лише камінь
stone ще й пісковик, редстоун, кам'яна цегла
its_real, -hopper збіг з its_real, але ніколи hopper

Замість - можна писати !. Предмет шукається і за перекладеною назвою, і за сирим ідентифікатором, і за текстом на табличці.

Кнопка поруч із полями періоду підставляє готовий проміжок — годину, добу, тиждень — без набору вручну. Поля приймають і власний запис: 7d, 24h, 30m, дату (2026-07-20) або дату з часом (2026-07-20 15:30).

Налаштування

config/cpg.json, редагується і в грі:

Ключ Типово Що робить
autoOpen true відкривати вікно самому після /co i
suppressChat true глушити оригінальні рядки в чаті
guiTheme MODERN вигляд: MODERN або CLASSIC
rowHeight 22 висота рядка таблиці, 14–48
animations true поява вікон, прихід і вихід записів, плавна прокрутка
translateStatusLines true перекладати службові повідомлення плагіна
requestGapTicks 10 пауза між запитами сторінок (20 тіків = 1 с)
keepHistory true запам'ятовувати перевірки на диску
keepInMemory true тримати відскановані рядки в пам'яті між перевірками
stopAtKnownPages true зупиняти завантаження, щойно сторінка не приносить нового
highlightBlocks true чи позначати блоки з результату у світі взагалі
highlightStyle OUTLINE OUTLINE, GHOST_BOX або GHOST_BLOCK
highlightSeconds 180 скільки живе позначка
highlightHours 24 наскільки старою може бути подія, щоб її позначили
highlightThroughWalls true малювати позначки поверх рельєфу — GHOST_BLOCK це ігнорує, бо не може
highlightFadeColour true забарвлювати позначки за часом, а не за дією
actionColours колір для кожної дії, з вибором прямо в грі
actionIcons PNG із теки іконок для кожної дії; те, чого тут немає, лишається з вбудованою піктограмою
serverUtcOffsetMinutes 0 (UTC) годинник сервера, щоб точний час перевести у твій

serverUtcOffsetMinutes впливає на все, що пов'язане з часом, — і на «X тому» в кожному рядку, і на поля «від»/«до» у фільтрі періоду. Не обов'язково підбирати число вручну: кнопка «Визначити зсув сервера автоматично» в налаштуваннях сама рахує його з останнього відкритого вікна — порівнює сирий час рядка з незалежним від поясу «X тому» і виводить різницю.

Вкладка «Для просунутих» показує, що саме мод вважає виводом CoreProtect: префікси службових рядків, ключове слово в заголовках, і додаткові формулювання для дій, «тому» і «сторінка». Варта уваги, лише якщо сервер описує все незвично, — і кожне поле там пропонує формулювання, які використовують інші мови CoreProtect: підставляються через Tab, тож відповідь не треба знати заздалегідь.

Свої іконки дій

Кинь PNG у теку поруч із config/cpg.json — її відкриває кнопка «Тека з іконками» на екрані кольорів — і будь-яку з них можна дати будь-якій дії. Що станеться з картинкою:

  • Її зведуть до 8×8. Намалюй одразу в цьому розмірі — буде найчіткіше.
  • Її намалюють кольором дії, а не її власним, тож лишається тільки форма. Той колір задається на тому ж екрані.
  • Є прозорість — форма це непрозорі пікселі. Немає — форма це темні, а світлі вважаються тлом: картинка просто з редактора є малюнком на білому полотні, і якщо прочитати навпаки, кожна іконка стане суцільним квадратом.

Записка з усім цим лишається в теці при першому створенні.

Обмеження, про які варто знати

Скільки даних предмета доживе — залежить від сервера. У тексті CoreProtect є ідентифікатор предмета й нічого більше. Багатше приходить лише тоді, коли сервер чіпляє до назви предмета підказку, і тут два випадки:

  • справжній предмет — дані власні серверні й переносяться точно;
  • опис словами («Efficiency III») — мод зіставляє їх із реєстром гри й відтворює чари та власну назву. Близько, але це реконструкція.

Без першого варіанта прочності, модифікаторів атрибутів, вмісту шалкера, книги чи зілля та custom model data просто немає — ні в цього мода, ні в будь-якого іншого клієнтського. Єдиний шлях до справжнього запису сервера — відкат, бо він виконується на сервері саме з того запису.

Формулювання має бути розпізнане. Вбудовано англійську, українську та російську. Якщо на сервері CoreProtect говорить іншою мовою, таблиця залишиться порожньою — мод про це скаже й перемкнеться на вигляд «Як прийшло», а не вдаватиме, що зламався. Навчити його нових формулювань можна на вкладці «Для продвинутих».

Пакетне завантаження помітне для сервера. 30 сторінок — це 30 команд. Вони йдуть по одній з паузою, але якщо на сервері жорсткий ліміт на команди, підніміть requestGapTicks.

Привида блоку не видно крізь рельєф, і він стоїть у типовій орієнтації. Це звичайна геометрія, тому ніщо не вивішує його над світом так, як вивішується контур; а CoreProtect пише назву блоку, але не його стан, тому колода ляже по своїй осі, а сходинка дивитиметься на північ, що б там не було. Предмет без блокової форми — наприклад, заряд вітру — привида не отримає взагалі. Контур лишився саме для тих випадків, де це важливо.

Повернути річ потребує того самого права, що й ввести команду вручну. Право-клік по рядку шле звичайну /give, а не якийсь обхід — спрацює лише в того, хто й так міг би викликати цю команду сам. Передає те з даних предмета, що вціліло, — див. вище.

Будь-який запис із точним часом, дію якого CoreProtect уміє скасувати, має ще й відкат — він повертає власні дані сервера, а не реконструкцію. Куди саме повернеться, залежить від того, що сталося: те, що гравець викинув, кинув чи загубив при смерті, повертається йому просто в інвентар — саме так і віддають людині речі після смерті, — а те, що забрали з контейнера, повертається в контейнер.

Два застереження. Випадок із контейнером може задублювати: CoreProtect наповнює контейнер, не чіпаючи того, хто його спорожнив, тож якщо річ досі в нього — тепер їх дві. І націлюється відкат гравцем, кількома секундами навколо запису й радіусом від того місця, де стоїш ти, а не від координат самого запису — тож інша його така сама дія в той момент поруч піде разом. Виконується по-справжньому й потребує двох кліків, бо прев'ю для контейнерних транзакцій CoreProtect не дозволяє.

Підтримка

Питання, баги й пропозиції — на Discord: є окремий канал і для української, і для англійської.

Збірка

MC 26.x постачається необфускованою, тому Fabric Loom, Yarn і мапінги не потрібні — це звичайний Java-проєкт, що компілюється прямо проти jar гри. Все потрібне збірка качає сама (гру — з маніфесту Mojang, решту — з maven), тож чистий клон збереться будь-де, маючи лише JDK 25.

./gradlew build

Готовий jar з'явиться в build/libs/. Щоб одразу покласти його в теку mods:

./gradlew installMod -Pmods_dir=/шлях/до/instance/mods

JourneyMap теж необов'язковий при збірці. Його API має ліцензію All Rights Reserved, тож у репозиторії його немає — він качається з ModMaven. Якщо дістати не вдалось, або якщо передати -Pjourneymap=false, два класи, які його торкаються, просто не потрапляють у збірку, а решта збирається як завжди. Виходить той самий мод, лише без вейпоінтів — рівно так, як він поводиться в гравця, у якого JourneyMap не встановлено. Збірка пише, який із двох варіантів зібрано.

Тести

./gradlew test

161 тест: парсер, мова фільтрів, зведення, розбір часу, злиття історії, згортання повідомлень у чаті, зіставлення дій для відкату, бюджет компонентів у команді видачі та екранування в кожному форматі експорту. Парсер перевіряється на справжньому виводі CoreProtect, знятому з живого сервера — він лежить у src/test/resources.

Ліцензія

CoreProtectGUI Non-Commercial License 1.0 — користуйтесь, змінюйте й поширюйте вільно і безкоштовно, але заробляти на моді заборонено: ні продаж, ні платний доступ, ні монетизовані посилання, ні включення в платні збірки чи послуги. Добровільні пожертви, які нічого не відкривають додатково, дозволені.

Це навмисно не open-source-ліцензія за визначенням OSI.

The CoreProtectGUI Team

profile avatar
  • 1
    Projects
  • 19
    Downloads