All versions
1.0.0
Release
NuLLStar Join Effects 1.0.0 - Release4 months ago 54
Compatibility
Minecraft: Java Edition
1.21.4–1.21.11
Platforms
Paper
Purpur
Changes
Effects
- Effect engine with 6 types:
PARTICLE,FIREWORK,LIGHTNING,FALLING_BLOCK(falling meteors),TNT_SCATTER(harmless primed TNT) andCOMBO(layered effects). - 16 animated particle shapes:
HELIX,DOUBLE_HELIX,CIRCLE,EXPANDING_RING,FOUNTAIN,VORTEX,PILLAR,AURA,GALAXY,TORNADO,SPHERE,HEART_SHAPE,CROWN,BEAM,METEOR,WINGS. - 30 ready-to-use effects split into 3 categories (10 each):
- Basic: Flame Helix, Heart Fountain, Arcane Halo, Aqua Splash, Emerald Glimmer, Note Twirl, Smoke Pillar, Rainbow Firework, Star Burst, Creeper Boom.
- Special: RGB Vortex, Double Helix, Soul Ring, Snow Flurry, Galaxy Spiral, Angel Wings, Flame Spiral, Frost Nova, Ender Aura, Love Halo.
- Administrative: Thunder Strike, Crown of Glory, Divine Beam, Dragon Aura, Inferno Spiral, Nebula, Meteor Shower, Sonic Boom, Totem Blessing, Big Bang.
- Per-effect customization: icon, display name, lore, particle, shape, colours (hex), size, radius, points, height, duration, rotation, count and speed.
- Optional custom sound per effect (key, volume, pitch).
- Optional per-effect join-message override.
- RGB / rainbow dust support and per-version particle name aliases (e.g.
REDSTONE→DUST). - Effects can be enabled/disabled individually via
enabled:ineffects.yml. - Safe rendering: a failing effect logs once and stops instead of flooding the console.
GUI
- Two-level menu system: a main hub (player info head + 3 category heads) and a paginated category menu.
- Optional custom base64 skull textures for category heads (with a material fallback).
- Live preview head showing the player's currently active effect.
- Navigation: previous/next page, back, and a disable button.
- Fully configurable layout — titles, rows, slots, borders, content slots and all lore live in
messages_<lang>.yml. - Selected effect is highlighted (glow + status line).
Permissions
- Own permission per effect (
nstar.effect.<id>). - Tier wildcards:
nstar.category.basic/special/administrative. nstar.use,nstar.admin,nstar.delaybypass.
Commands
/nstar— open the menu (withmenu/guialiases)./nstar off— disable your effect./nstar discord,/nstar version,/nstar help./nstar reload— reload config, messages and effects./nstar admin on <player> <effect>— force-grant an effect (plays on join even without permission)./nstar admin off <player>— clear a player's effect.- Permission-gated tab completion for every subcommand.
- Extra command aliases configurable in
config.yml.
Storage
- Selectable backend: SQLite (default, local
data.db) or MySQL, both via HikariCP. - Selections persist across relog and restart.
- Automatic table creation and migration of the
forcedcolumn for older tables. - Drivers downloaded by Paper at runtime via
plugin.ymllibraries — no shading required.
Modules & integrations
- Join-messages module — optional broadcast on join, can override the vanilla message.
- Anti-spam cooldown between effect changes, bypassable with
nstar.delaybypass. - PlaceholderAPI expansion:
%nstar_effect%,%nstar_effect_name%,%nstar_effect_permission%,%nstar_has_effect%. - Modrinth update checker — notifies admins on join when a newer version is available.
Localization & text
- Ships with English and Polish; language selectable via
language:inconfig.yml. - Zero hard-coded user-facing strings — everything lives in
messages_en.yml/messages_pl.yml. - Full colour support: MiniMessage tags, gradients,
<#RRGGBB>and legacy&/&#RRGGBBcodes, with a safe fallback parser.
Technical
- Targets Paper / Purpur 1.21.10, Java 21, built with Maven.
- Asynchronous database reads/writes with an in-memory cache.
- Dynamic command registration via
CommandMap.
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:M1tNBNZD:ju3joD84"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:M1tNBNZD:ju3joD84"
}

