▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
NeoTab

NeoTab

NeoTab – Modern Tablist, Scoreboard and ActionBar Customization NeoTab is a modern and highly customizable Minecraft plugin for Paper, Spigot and CraftBukkit servers. It combines animated tab headers and footers, configurable scoreboards, ActionBar mod

Оцените первым
224
2
Все версииNeoTab 1.4.0-Beta.1

NeoTab 1.4.0-Beta.1

Beta24.07.2026

Список изменений

NeoTab 1.4.0 Beta 1

This beta is only intended to remain a beta for a short time.

We want to test the update under real server conditions, identify any remaining issues, and fix them as quickly as possible before promoting NeoTab 1.4.0 to a stable release.

Feedback and bug reports are highly appreciated, especially from Spigot and CraftBukkit servers.

NeoTab 1.4.0 is the largest update so far.

The headline feature is full Spigot and CraftBukkit support through one shared JAR.

We also fixed more than 25 bugs, closed a vanish-related privacy issue, improved permissions and lifecycle handling, and significantly reduced unnecessary work under heavy load.


🚨 Important Security & Privacy Fixes

Vanished players are no longer revealed

In NeoTab 1.3.x, the optional nearest-player ActionBar module could include vanished players because Bukkit visibility was not checked before calculating the nearest player.

This could expose:

  • the vanished player's name;
  • their approximate distance;
  • their presence on the server.

This only affected servers where the nearest-player module was enabled.

NeoTab now checks player visibility before a player can be considered, displayed, or cached.

Servers using NeoTab 1.3.x with this module enabled are strongly encouraged to update.

Permission model fixes

Several permission inconsistencies were corrected:

  • Scoreboard GUI actions now require the same base permissions as the equivalent commands.
  • neotab.gui can no longer be combined with individual child permissions to bypass the main Scoreboard permission.
  • Changing globally stored Timer text now requires neotab.timer.admin.
  • Delayed GUI and chat actions recheck permissions before applying changes.

🌍 Paper, Spigot and CraftBukkit Support

NeoTab now uses one shared JAR for:

  • Paper
  • Spigot
  • CraftBukkit

Minecraft 1.20.6 remains the minimum supported version.

The shared codebase no longer depends directly on Paper-only APIs. Tablists, Scoreboards, inventories, items, chat input, advancements and plugin metadata now use Bukkit-compatible implementations.

Paper support remains fully available.


📦 Embedded Adventure and MiniMessage

Spigot and CraftBukkit do not reliably provide the Adventure and MiniMessage libraries required by NeoTab.

The necessary libraries are now embedded and relocated into NeoTab's internal namespace.

This means:

  • MiniMessage remains available on every supported platform;
  • RGB colors and gradients continue to work;
  • no additional Adventure plugin is required;
  • conflicts with libraries bundled by other plugins are avoided.

The shared Bukkit text APIs preserve colors, RGB values, gradients and normal decorations.

Click events, hover events, insertions and custom fonts cannot be preserved through the cross-platform String-based rendering path. NeoTab's default messages do not use these features.


💬 CraftBukkit ActionBar Support

Paper and Spigot use their supported Spigot ActionBar interface.

CraftBukkit does not provide an equivalent public API, so NeoTab now uses a compatibility bridge with several fallback levels:

  1. Use the supported Spigot ActionBar API when available.
  2. Use a small runtime packet bridge on CraftBukkit.
  3. Fall back to the Vanilla minecraft:title command if internal classes change.
  4. Log one warning only if every available method fails.

The following modules were successfully tested on Spigot and CraftBukkit:

  • Timer
  • Stopwatch
  • Clock
  • Welcome
  • Random Messages
  • Achievements

The internal CraftBukkit packet bridge is the only part of NeoTab 1.4.0 that may require additional testing after future Minecraft updates.


🔌 Optional Plugin Integrations

LuckPerms is now fully isolated behind an optional integration layer.

NeoTab can start and register all normal listeners even when LuckPerms is not installed.

When LuckPerms is available, prefixes and suffixes continue to work normally.

The following integrations remain optional:

  • LuckPerms
  • PlaceholderAPI
  • WorldEdit
  • FastAsyncWorldEdit

Missing optional plugins no longer create hard class-loading dependencies.


🧊 Spigot and CraftBukkit Header/Footer Freeze Fixed

On Spigot and CraftBukkit, Header and Footer animations could stop after their first update.

This could also cause:

  • RAM and Ping values to stop updating;
  • Tab name changes to stop appearing;
  • style changes to appear ineffective;
  • Footer information to remain frozen.

The issue was caused by platform-specific color and formatting serialization.

NeoTab incorrectly interpreted the value returned by Spigot or CraftBukkit as an external plugin taking ownership of the Tablist.

NeoTab now normalizes platform output and remembers the representation returned by the active server implementation.

Real changes made by other plugins are still detected and respected.

Header and Footer ownership are now tracked separately, preventing one externally modified section from affecting restoration of the other.


🎨 Improved Animation Styles

The animation system was reworked so that every style is visually distinguishable.

  • Uses a real multi-color spectrum.
  • Colors visibly travel across the text.
  • No longer rotates only through similar purple shades.

purple-pulse

  • Remains a smooth, unified pulse.
  • Uses the configured NeoTab color palette.

gradient-wave

  • Continuously moves the gradient phase.
  • Remains visible even when similar shades are configured.

static

  • Intentionally remains still.
  • Correctly applies the final gradient color to the last character.

Animation processing is now Unicode-safe and no longer splits emojis or UTF-16 surrogate pairs.


⚡ Performance and Availability Improvements

NeoTab's update systems received a major performance review.

Changes include:

  • separate update paths for animations and shared statistics;
  • cached Footer, Ping and RAM data;
  • cached player names and optional LuckPerms decorations;
  • batched Join and Quit refreshes;
  • fewer unnecessary global player refreshes;
  • debounced Region changes;
  • only one pending Region refresh per player;
  • cached shared render information;
  • cached average Ping values;
  • cached static Scoreboard templates;
  • reduced PlaceholderAPI work for static content;
  • skipped Bukkit updates when displayed content has not changed;
  • cached ActionBar bridge and reflection strategies;
  • improved shutdown handling;
  • non-blocking YAML persistence during reload;
  • deterministic ordering for writes affecting multiple YAML files.

NeoTab is no longer designed only for normal server conditions. The update systems are now also protected against rapid reconnects, Region-border movement, plugin reloads and other high-load edge cases.


⚠️ Fast Scoreboard Intervals Remain Available

NeoTab still allows fast Scoreboard update intervals such as 1, 2 or 3 ticks.

This is intentional.

Small servers with approximately 5–10 players may prefer these intervals because they provide smoother animations and can still run them without noticeable performance problems.

NeoTab does not force a minimum interval of 10 or 20 ticks.

Instead, a warning is displayed during startup or /tab reload when:

  • the Scoreboard interval is below 5 ticks; or
  • the interval is below 10 ticks while PlaceholderAPI or many dynamic lines are being used.

The warning explains that fast intervals may be completely reasonable on small servers, but can create higher Main Thread load on larger servers.

Intervals of 10–20 ticks are recommendations for larger servers, not enforced limits.

Invalid values such as zero or negative intervals are still rejected.


📋 Scoreboard Improvements

The Scoreboard system received multiple compatibility, lifecycle and performance fixes.

Changes include:

  • delayed Join tasks can no longer recreate an already disabled Scoreboard;
  • pending Join tasks are cancelled on Quit, disable and Scoreboard shutdown;
  • external Scoreboard ownership continues to be respected;
  • NeoTab resumes after another plugin releases its Scoreboard;
  • unchanged titles and lines are not resent unnecessarily;
  • static templates can be reused instead of rendered repeatedly;
  • PlaceholderAPI is avoided where content is known to be static;
  • long titles and lines are safely limited before reaching platform APIs;
  • formatting and Unicode are preserved while trimming;
  • invalid or excessive content no longer causes avoidable exceptions or log spam.

Fast animations remain configurable, but expensive configurations are now easier to identify.


🗺️ Region Profile Improvements

Region Profile handling received several correctness and performance fixes.

Changes include:

  • cancelled movement events no longer change the active Region;
  • the finalized event destination is used;
  • Region-border updates are debounced;
  • only the affected player is refreshed where possible;
  • Respawn explicitly recalculates the active Region;
  • stale Region Profile references are removed from internal indexes;
  • Region indexes are updated more safely;
  • large Region configurations use safer limits and clear error messages;
  • /tab region pos1 and /tab region pos2 only report success when the position was actually accepted;
  • invalid cross-world selections no longer produce misleading success messages.

Repeatedly walking between two Region blocks can no longer create uncontrolled refresh storms.


👻 Nearest Player Improvements

The optional Nearest Player ActionBar module now excludes:

  • the viewer;
  • offline players;
  • invalid players;
  • players hidden from the viewer through Bukkit visibility.

Hidden players are filtered before their name or distance is evaluated.

Their information is therefore not displayed or stored in the module's result cache.


🏆 Advancement Counter Fixes

The Advancement counter cache now handles revoked advancements correctly.

Previously, revoking and later granting an advancement again could cause the cached amount to exceed the player's real completion count.

Grant, revoke, Join, reload and disable behavior are now kept consistent.

When the internal state cannot be trusted, NeoTab recalculates the value instead of continuing with an incorrect cached result.


🖥️ GUI and Lifecycle Fixes

NeoTab now uses centralized recognition for its own inventories.

During plugin disable or dynamic reload:

  • the normal NeoTab GUI is closed;
  • the Region Profile GUI is closed;
  • other NeoTab-owned inventories are closed;
  • unrelated inventories from other plugins remain untouched.

This prevents items from being removed from a NeoTab GUI after its event listeners have already been disabled.

Delayed GUI actions also recheck the current permission and plugin state before applying changes.


⏱️ Timer and ActionBar Fixes

ActionBar modules now avoid unnecessary duplicate sends.

The platform bridge and reflection strategy are resolved once and reused instead of being searched again for every message.

Changes include:

  • no immediate send followed by an unnecessary duplicate scheduled send;
  • cached CraftBukkit and Spigot ActionBar strategies;
  • fallback failures no longer spam the server log;
  • Timer and Stopwatch tasks stop cleanly during disable;
  • persistent global Timer text requires the correct admin permission;
  • normal Timer use remains available through neotab.timer.

A small temporary RAM increase during Timer testing was observed, but no reproducible memory leak or permanent growth was confirmed.


✨ Colored Random Messages

Random Messages now use NeoTab's active color palette when no formatting is configured.

Existing formatting remains respected:

  • MiniMessage colors remain unchanged;
  • Legacy colors such as &d remain unchanged;
  • RGB and gradient tags remain supported;
  • normal text receives the active NeoTab palette automatically;
  • strings such as Drink water! <3 are not incorrectly interpreted as MiniMessage tags.

💾 Safer YAML Writing and Reloading

The asynchronous YAML writer was reworked so that /tab reload does not wait for a long blocking flush on the Main Thread.

Changes include:

  • Main Thread waiting was removed from normal reload behavior;
  • write ordering remains deterministic;
  • overlapping writes affecting multiple YAML files preserve their global submission order;
  • repeated writes can still be safely coalesced;
  • shutdown behavior remains bounded;
  • atomic file replacement and error reporting are preserved;
  • Bukkit APIs are not accessed asynchronously.

Additional tests cover overlapping and multi-file write sequences.


📊 Anonymous bStats Metrics

NeoTab now includes anonymous bStats metrics.

  • bStats version: 3.2.1
  • NeoTab bStats project ID: 32846

Metrics are embedded and relocated into NeoTab's internal namespace.

They are initialized once during plugin startup and are not recreated by /tab reload.

Metrics failures never prevent NeoTab from starting.

Configuration

metrics:
  # Anonymous usage statistics powered by bStats.
  # bStats can also be disabled globally in plugins/bStats/config.yml.
  enabled: true
Existing configurations remain compatible.
When the option is missing, Metrics remain enabled by default. Existing user values are not overwritten.
Custom Charts
NeoTab reports normalized, anonymous feature information including:
* configured language;
* Scoreboard status;
* Header and Footer status;
* RAM, Ping and average display status;
* AFK feature status;
* Update Checker status;
* LuckPerms availability;
* PlaceholderAPI availability;
* Geyser availability;
* server platform category;
* configured animation count category.
Normal bStats information such as Minecraft version, Java version, operating system, plugin version, server count and player count is not duplicated.
Data Not Collected
NeoTab does not send:
* IP addresses or ports;
* server names or MOTDs;
* player names or UUIDs;
* chat messages;
* permission or group names;
* Tablist, Header, Footer or Scoreboard content;
* configuration contents;
* world names;
* file paths;
* tokens, secrets or webhooks.
Metrics can also be disabled globally through the normal bStats configuration.```


⸻


🔧 Build and Compatibility Improvements
The Gradle build was updated for the shared multi-platform JAR.
Changes include:
* Spigot API 1.20.6 as the compile base;
* removal of direct Paper-only APIs from shared source;
* Shadow JAR integration;
* relocated Adventure and MiniMessage libraries;
* relocated Gson;
* relocated bStats;
* service descriptor merging;
* resource expansion for the plugin version;
* automatic checks for Paper-only references;
* checks for unrelocated embedded libraries.
The final JAR does not embed Bukkit, Spigot or Paper API classes.
NeoTab continues to use Java 21 bytecode.


⸻


🧪 Testing and Validation
NeoTab 1.4.0 received automated tests, manual visual tests, multi-platform runtime tests and dedicated Security, Logic and Performance audits.
Testing covers areas including:
* version comparison;
* Minecraft version detection without Paper metadata;
* optional LuckPerms loading;
* CraftBukkit ActionBar packets;
* Timer duration parsing;
* Region borders;
* Region Profile indexes;
* cancelled movement;
* Respawn Region updates;
* Scoreboard ownership;
* delayed Scoreboard Join tasks;
* Header and Footer ownership;
* Spigot and CraftBukkit color normalization;
* every animation style;
* Unicode and emojis;
* Random Message formatting;
* permission enforcement;
* Vanish filtering;
* Advancement grant and revoke handling;
* ActionBar duplicate prevention;
* Scoreboard warning logic;
* Join and Quit batching;
* Region refresh debouncing;
* asynchronous YAML writing;
* overlapping multi-file writes;
* bStats normalization and privacy behavior.
The full Gradle test suite, Shadow JAR build and platform compatibility checks are expected to remain green before this beta is published.


⸻


🧪 Multi-Platform Test Matrix
The same NeoTab JAR was tested across the following server implementations:
Platform	Tested Minecraft versions
Paper	1.20.6, 1.21.11, 26.2
Spigot	1.20.6, 1.21.11, 26.2
CraftBukkit	1.20.6, 1.21.11, 26.2
Testing included:
* server startup;
* NeoTab enable;
* /tab reload;
* command registration;
* Tablist rendering;
* Scoreboard rendering;
* ActionBar modules;
* animation styles;
* optional integrations;
* external Scoreboard ownership;
* Region Profile behavior;
* clean shutdown;
* class-loading and linkage errors;
* missing methods;
* uncaught exceptions.


⸻


🌐 Velocity Test Network
Paper, Spigot and CraftBukkit backends were added to a shared Velocity test network.
This made it possible to switch directly between server implementations while using the same NeoTab JAR.
ViaVersion, ViaBackwards and ViaRewind were also updated and configured so newer clients could connect to older test backends without restarting the client.


⸻


✅ Compatibility
* Server software: Paper, Spigot and CraftBukkit
* Minecraft: 1.20.6 and newer
* Java: 21 or newer
* Optional integrations: LuckPerms, PlaceholderAPI, WorldEdit and FastAsyncWorldEdit
* Distribution: One shared JAR for every supported platform


⸻


⚠️ Beta Notice
NeoTab 1.4.0 Beta 1 contains major platform, lifecycle and performance changes.
The update has received extensive automated testing, manual testing and dedicated audits, but long-term production behavior is still being observed.
The goal is to test and debug this beta as quickly as possible and promote it to a stable NeoTab 1.4.0 release once no important regressions remain.
Please create a backup of your NeoTab configuration before updating.
Bug reports should include:
* NeoTab version;
* server software;
* Minecraft version;
* Java version;
* relevant configuration section;
* full error or console output;
* steps required to reproduce the issue.


⸻


Updating
1. Stop the server.
2. Back up the NeoTab configuration directory.
3. Replace the previous NeoTab JAR.
4. Start the server normally.
5. Check the console for configuration or performance warnings.
6. Run /tab reload only after confirming that the plugin started successfully.
Existing configuration files remain supported.
New options are added without overwriting existing user values.
Updating is especially recommended for servers using:
* NeoTab 1.3.x;
* the nearest-player module;
* Region Profiles;
* delegated NeoTab permissions;
* external Scoreboard plugins;
* fast Scoreboard intervals;
* Spigot or CraftBukkit.
Thank you for using and testing NeoTab! <3

Файлы

NeoTab-1.4.0-Beta.1.jar(1.25 MiB)
Основной
Скачать

Метаданные

Канал релиза

Beta

Номер версии

1.4.0-Beta.1

Загрузчики

Bukkit
Paper
Spigot

Версии игры

1.20.6–26.2

Загрузок

6

Дата публикации

24.07.2026

Загрузил

ID версии

Главная