Tags
Creators
Details
Licensed MIT
Published last year
Updated last month
All versions
1.4
Release
NVPlugin 1.4last month 1,029
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
Platforms
Folia
Paper
Purpur
Changes
[1.4.0] â 2026-10-01
Major Highlights
- Universal 1.21 to 26.3+ Support: Native support across all modern Minecraft versions (1.21, 1.21.1â1.21.4, through 26.3+).
- Native Folia Support: Added full compatibility for Folia's multi-threaded regional scheduling, plus Paper, Purpur, Gale, and legacy Spigot.
- Okaeri Configs Integration: Complete rewrite of the configuration system using Okaeri Configs with automatic schema updates, formatted comments, and automated
.bkbackup generation on update. - Zero-Setup PersistentDataContainer (PDC): Toggle preferences are now stored directly in player NBT data, surviving server restarts and player deaths with zero external database configuration.
- Modrinth Update Checker: Added an asynchronous, non-blocking update checker communicating with the Modrinth API (
https://modrinth.com/plugin/nvplugin).
New Features & Enhancements
- Folia Regional Threading:
- Implemented
TaskSchedulerwith an isolatedPaperFoliaBridgethat usesentity.getScheduler().runDelayed()for regional player operations andBukkit.getAsyncScheduler()for asynchronous tasks. - Added
folia-supported: truetoplugin.yml. - Safe graceful fallbacks for standard Paper and Spigot.
- Implemented
- Automated Config Backups & Schema Migration:
- Detects legacy configurations (
config-version < 2) and automatically generates aconfig.yml.bk(or timestamped backup) before generating the new Okaeri schema. - Okaeri preserves custom edits while automatically inserting any newly introduced configuration keys and comments.
- Detects legacy configurations (
- Player State Persistence:
- Replaced transient in-memory UUID set with Minecraft's native
PersistentDataContainer(night_vision_enabled). - Player states persist across server restarts, reboots, crashes, world transfers, and player deaths.
- Added memory-leak-free caching that automatically cleans up when players disconnect.
- Replaced transient in-memory UUID set with Minecraft's native
- Modrinth Update Checker:
- Non-blocking REST client query to
https://api.modrinth.com/v2/project/nvplugin/version. - Logs a notification in the console on server startup if an update is found.
- Sends an in-game notification to operators or players with
nightvision.adminupon login. - Configurable in
config.ymlunderupdate-checker.
- Non-blocking REST client query to
- Visuals & Color Formatting:
- Added
ColorUtilsupporting both standard legacy color codes (&a,&l) and modern Hex color formatting (&#RRGGBB). - Clean potion effects: ambient particles disabled by default and potion icon hidden from the HUD.
- Added
- Clean Codebase:
- Removed all inline and block comment clutter across all Java source files.
- Replaced reflection-heavy scheduler wrappers with direct native calls in isolated class bridges.
- Shaded and relocated all Okaeri dependencies to
org.ayosynk.nightVision.libs.okaeri.configsto prevent classpath conflicts.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:nHMJyqvR:dnP43kGD"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:nHMJyqvR:dnP43kGD"
}

