NxCodex
1.5.0Codex is a Minecraft plugin offering an interactive menu of areas to discover, with timed teleportations based on the player's rank. 🔗 Dependency: HeadDatabase ⭐ Recommended: LuckPerms 🧩 Compatibili
1.5.0latestNxCodex 1.5.0May 24, 2026 Version 1.5.0 - Latest Release
####New Features
Custom Player Head Support - Base64 Texture Support: Use custom player head textures without any plugin dependency - HeadDatabase Integration: Optional HeadDatabase support with automatic fallback - Priority System: HeadDatabase > Head Texture > Material for maximum flexibility - Native API: Uses Bukkit's PlayerProfile API for better compatibility Configuration:
Priority Order: 1. HeadDatabase (zone: spawn: material: "GRASS_BLOCK" # Fallback material # hdb: "12345" # HeadDatabase ID (priority 1, requires HeadDatabase plugin) # head-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmFkYzA0OGE3Y2U3OGY3ZGFkNzJhMDdkYTI3ZDg1YzA5MTY4ODFlNTUyMmVlZWQxZTNkYWYyMTdhMzhjMWEifX19" # Base64 texture (priority 2, no plugin required)hdb: "id") - If HeadDatabase plugin is installed 2. Head Texture (head-texture: "base64") - Custom texture without plugin 3. Material (material: "STONE") - Standard Minecraft material ####Safe Teleportation System - Smart Position Detection: Automatically finds safe teleport locations - Block Collision Prevention: Ensures players don't spawn inside blocks - Ground Validation: Verifies solid ground beneath player - Danger Avoidance: Prevents spawning in lava, magma blocks, or unsafe areas - Auto-Adjustment: Searches up to 3 blocks up/down for safe position - Block Centering: Centers players on blocks (x.5, z.5) for better positioning Safety Checks: -
Feet and head blocks are passable (air or non-solid) -
Ground block is solid and safe -
Avoids lava, magma, and water -
Automatic fallback to nearest safe location ####
Player Rotation Support (Yaw/Pitch) - Full Rotation Control: Save and restore player facing direction - Automatic Capture: Editor saves current yaw and pitch when setting location - Precise Orientation: Players face the exact direction configured - Visual Feedback: Editor displays current rotation values Configuration:
Rotation Guide: - Yaw: 0° = South, 90° = West, 180° = North, 270° = East - Pitch: -90° = Looking up, 0° = Horizon, 90° = Looking down ####cordinates: x: 0.5 # X coordinate (centered on block) y: 64.0 # Y coordinate z: 0.5 # Z coordinate (centered on block) world: "world" yaw: 0.0 # Horizontal rotation (0-360°) pitch: 0.0 # Vertical rotation (-90° to 90°)Simplified Configuration - Hardcoded Modrinth ID: No need to configure update checker ID - Cleaner Config: Removed
modrinth-idfrom config.yml - Automatic Updates: Update checker works out of the box ####Automatic Config Migration - Smart Config Updater: Automatically adds missing configuration options - Zero Downtime: Updates happen on plugin startup - Backward Compatible: Works with old configuration files - Safe Updates: Never overwrites existing values What Gets Updated Automatically: - Missing
discoverysection in config.yml - Missingyawandpitchin zone coordinates - Missingchat-promptsandcooldownsections in guis.yml - Missingupdate-notifiermessage in lang.yml - Decimal conversion for coordinates (0 → 0.5 for centering) - All new configuration options from version 1.5.0 Example:[ConfigUpdater] Added missing 'discovery' section to config.yml [ConfigUpdater] codex.yml updated with missing yaw/pitch values [ConfigUpdater] Added yaw/pitch to guis.yml teleport lore [ConfigUpdater] config.yml updated successfully
#### Editor Display Updates - Fixed: Yaw and pitch values now update correctly in the zone editor - Fixed: Multiple config reloads when setting teleport location (now single reload) - Improved: Editor refreshes with updated rotation values immediately - Optimized: Batch coordinate updates for better performance #### Update Checker - Fixed: Update notification now only shows when remote version is actually newer - Fixed: Version comparison using semantic versioning (1.5.0 > 1.3.6) - Fixed: No more false update notifications when running dev/newer versions - Improved: Smart version parsing with support for suffixes (-SNAPSHOT, -beta) #### Gradient System - Fixed: Gradient colors now render correctly with formatting tags - Fixed:Bug Fixes
<bold>,<italic>,<underline>,<strikethrough>tags properly handled - Fixed: Character counting excludes formatting tags for accurate color distribution - Improved: Support for short tags (<b>,<i>,<u>,<st>) - Improved: Better color interpolation across gradient text #### Teleportation Issues - Fixed: Players no longer spawn inside blocks - Fixed: Teleportation to unsafe locations (lava, void, etc.) - Fixed: Incorrect player positioning on blocks - Improved: Teleportation reliability and safety #### Head/Skull Support - Fixed: HeadDatabase dependency is now optional (softdepend) - Fixed: Plugin works without HeadDatabase installed - Fixed: Proper fallback when HeadDatabase is not available - Improved: Better error handling for custom textures #### Configuration - Fixed: Coordinates now support decimal values for precise positioning - Fixed: Rotation values properly saved and loaded - Improved: Default values for new zones (centered on blocks)
#### New Classes - SkullUtil: Utility class for managing custom player heads - HeadDatabase API integration - Base64 texture support - Automatic plugin detection - TeleportUtil: Safe teleportation utility - Position validation - Safety checks - Automatic position adjustment - ConfigUpdater: Automatic configuration migration - Adds missing config options - Updates old formats to new ones - Runs on plugin startup - Safe and non-destructive #### Enhanced Classes - CodexZone: AddedTechnical Changes
headTexturefield for custom textures - CodexManager: - Enhanced coordinate loading with yaw/pitch support - AddededitZoneMultiple()for batch field updates - Optimized reload system for better performance - CodexMenu: Improved item building with head priority system - MenuListener: - Safe teleportation and rotation saving - Batch coordinate updates (x, y, z, world, yaw, pitch) - Improved editor refresh logic - ZoneEditorMenu: Display yaw/pitch in editor GUI with live updates - UpdateChecker: - Hardcoded Modrinth ID for simplicity - Semantic version comparison (major.minor.patch) - Smart version parsing with suffix support - ColorUtil: - Fixed gradient rendering with formatting tags - Support for<bold>,<italic>,<underline>,<strikethrough>- Improved color interpolation algorithm #### Dependencies - HeadDatabase: Changed fromdependtosoftdepend- HeadDatabase API: Added as provided dependency - Bukkit PlayerProfile API: Used for custom head textures
#### codex.yml Updates Before:Configuration Changes
After:cordinates: x: 0 y: 64 z: 0 world: "world"
New Head Options:cordinates: x: 0.5 # Centered on block y: 64.0 z: 0.5 # Centered on block world: "world" yaw: 0.0 # New: Horizontal rotation pitch: 0.0 # New: Vertical rotation
#### config.yml Updates Removed:# Option 1: HeadDatabase (requires plugin) hdb: "12345" # Option 2: Base64 Texture (no plugin required) head-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmFkYzA0OGE3Y2U3OGY3ZGFkNzJhMDdkYTI3ZDg1YzA5MTY4ODFlNTUyMmVlZWQxZTNkYWYyMTdhMzhjMWEifX19" # Option 3: Standard Material (fallback) material: "GRASS_BLOCK"
Current: ```yaml update-notifier: enabled: true on-joinupdate-notifier: modrinth-id: "RuKNgtS0" # No longer needed1.3.6NxCodex 1.3.6May 23, 2026 Added a setting in the discovery settings to set the discovery status as unblocked by default.1.3.5NxCodex 1.3.5May 23, 2026 Version 1.3.5 - Latest Release
####New Features
Fully Configurable GUI System (guis.yml) - New Configuration File:
guis.ymlfor complete GUI customization - Zone Editor GUI: Fully configurable editor menu with custom items, slots, and messages - No Hardcoded Values: All GUI elements are now configurable - Dynamic Item Building: Items are built dynamically from configuration - Custom Placeholders: Support for zone-specific placeholders in GUI items New File Structure:
####guis.yml ├── zone-editor # Zone editor GUI configuration │ ├── title # Menu title with placeholders │ ├── size # Inventory size │ └── items # All GUI items │ ├── filler # Background items │ ├── material # Material editor │ ├── display-name # Name editor │ ├── lore # Lore display │ ├── teleport # Location setter │ ├── region # Region editor │ ├── rewards # Rewards display │ ├── slot # Slot editor │ └── close # Close button ├── chat-prompts # Chat input messages └── cooldown # Cooldown messagesGuiManager System - Centralized GUI Management: New
GuiManagerclass for all GUI operations - Dynamic Loading: GUIs are loaded from configuration at runtime - Easy Customization: Server owners can customize without code changes - Placeholder Support: Rich placeholder system for dynamic content - Color Support: Full hex color and gradient support in all GUI elements Available Placeholders: -%zone_name%- Zone identifier -%material%- Zone material name -%display_name%- Zone display name -%zone_lore%- Zone lore lines -%world%,%x%,%y%,%z%- Teleport coordinates -%region%- WorldGuard region name -%rewards%- Reward commands list -%slot%- GUI slot number -%time%- Cooldown time ####Configurable Chat Messages - Chat Prompts: All chat input prompts moved to
guis.yml- Success Messages: Configurable success messages for editor actions - Error Messages: Customizable error messages with placeholders - Cooldown Messages: Fully configurable cooldown notification Chat Prompts Configuration:
####chat-prompts: material: "&eTapez le nom du matériau (ex: DIAMOND_BLOCK) dans le chat :" name: "&eTapez le nouveau nom de la zone dans le chat :" region: "&eTapez le nom de la région WorldGuard dans le chat :" slot: "&eTapez le numéro de slot (0-53) dans le chat :" location-updated: "&aPosition de téléportation mise à jour." invalid-material: "&cMatériau invalide : &f%input%" invalid-slot: "&cSlot invalide. Entrez un nombre entre 0 et 53."Enhanced Zone Editor - Configurable Layout: Customize item positions, materials, and messages - Dynamic Item Display: Items show current zone values with placeholders - Flexible Design: Easy to add or remove editor features - Multi-language Support: All text is configurable for any language - Custom Styling: Full control over colors, formatting, and layout
#### GUI System - Fixed: Hardcoded GUI titles and messages removed - Fixed: Editor menu now properly detects zone from title - Fixed: Item slots are now configurable instead of hardcoded - Improved: GUI item building with better error handling #### Message System - Fixed: All hardcoded messages moved to configuration files - Fixed: Cooldown messages now use configured format - Fixed: Chat prompts properly support color codes - Improved: Message consistency across the pluginBug Fixes
#### New Classes - GuiManager: Manages all GUI configurations and operations - Enhanced ZoneEditorMenu: Rebuilt to use configuration-based system - Improved MenuListener: Uses GuiManager for all GUI interactions #### Code Improvements - Removed Hardcoded Values: All GUI elements now configurable - Better Separation: GUI logic separated from configuration - Improved Maintainability: Easier to add new GUI features - Enhanced Flexibility: Server owners have full control #### Configuration System - New File:Technical Changes
guis.ymlfor GUI configurations - Automatic Generation: File is created on first run - Hot Reload: Changes apply with/codex reload- Validation: Proper fallbacks for missing values
#### New Configuration File guis.yml (complete new file):Configuration Changes
# Zone Editor GUI zone-editor: title: "§6§lEditor: %zone_name%" size: 27 items: filler: material: "BLACK_STAINED_GLASS_PANE" name: " " slots: [0,1,2,3,4,5,6,7,8,18,19,20,21,23,24,25,26] material: slot: 10 material: "STONE" name: "&eMaterial: &f%material%" lore: - "&7Click to change the material." # ... (see full config in guis.yml) # Chat Prompts chat-prompts: material: "&eType the material name (ex: DIAMOND_BLOCK) in chat:" name: "&eType the new zone name in chat:" # ... (see full config in guis.yml) # Cooldown Messages cooldown: message: "&cPlease wait &f%time%s &cbefore teleporting again."1.2.5NxCodex 1.2.5May 23, 2026 Version 1.2.5 - Latest Release
####New Features
Modrinth Update Checker - Modrinth API Integration: Now uses the official Modrinth API instead of Spigot - Configurable Project ID: Set your Modrinth project ID in
config.yml- Customizable Messages: Update notification message is now fully customizable inlang.yml- Smart Caching: Update messages are cached and shown to admins when they join - Color Support: Full hex color and gradient support in update messages Configuration:
Customizable Message (lang.yml):update-notifier: enabled: true on-join: true modrinth-id: "RuKNgtS0"
####update-notifier: "&#ffc84dA new version of NxCodex is available! &#DDDDDD(&#FFFFFFcurrent: &#FF0D0D%current% &#DDDDDD| &#FFFFFFlatest: �FF00%latest%&#DDDDDD)"Configurable Discovery System - Toggle Discovery Mode: Enable or disable the zone discovery system - Flexible Gameplay: Choose between exploration-based or instant access gameplay - Per-Server Configuration: Perfect for different server types (survival vs creative) Configuration:
Discovery Enabled (true) - Default: - Players must enter WorldGuard regions to discover zones - Discovery messages and rewards are given on first entry - Zones appear locked in the menu until discovered - Perfect for survival/adventure servers Discovery Disabled (false): - All zones are unlocked by default for all players - No discovery messages or rewards - Players can teleport to any zone immediately - Perfect for creative/hub serversdiscovery: # If true, zones must be discovered by entering the region # If false, all zones are unlocked by default enabled: true
#### Region Detection Improvements - Fixed: Region detection now properly checks if player is inside the specific region - Fixed: Empty orBug Fixes
_global_regions are now properly ignored - Fixed: Discovery system respects thediscovery.enabledconfiguration - Optimized: Region checks only occur when player changes block position #### Player Data Loading - Fixed: Players now properly receive all unlocked zones whendiscovery.enabled = false- Fixed: Zone unlocking works correctly for both new and existing players - Improved: Player data caching for better performance
#### Dependencies - Added: Gson 2.10.1 for JSON parsing (Modrinth API) - Relocated: Gson toTechnical Changes
fr.noxuwt.nxcodex.libs.gsonto avoid conflicts #### Code Improvements - Refactored: UpdateChecker to use Modrinth API v2 - Improved: PlayerListener with cached update messages - Enhanced: CodexManager with discovery mode support - Optimized: Region detection logic for better performance1.2.0NxCodex 1.2.0May 23, 2026 Redesign of code and .yml files New config.yml lang.yml codex.yml1.1.0NxCodex 1.1.0Mar 18, 2026 Fixes to Codex plugin code
Configuration files
- config.yml: Updated to match the content provided (teleport delays, headdb, menu, areas with itemsadder). - messages.yml: Updated to match the content provided (messages in French, removing obsolete messages for delete and no_selection).Java code changes
CodexZone.java
- Addeditemsadderfield to read the value from the config. - ChangedgetIcon()to prioritize ItemsAdder > HeadDatabase > Material by default.HeadUtil.java
- Added support for the "itemsadder:" prefix ingetHead(). - Added internal classIAHelperto manage ItemsAdder items viadev.lone.itemsadder.api.CustomStack.ZoneManager.java
- The attached file shows thesaveZone()method which sets default values, includingskull: "headdb:1234", but notitemsadder. If necessary, addsec.set("itemsadder", null);for consistency.Features added
- Full support for ItemsAdder: zones can now use custom items via theitemsadderfield in the config. - Other features (HeadDatabase, teleportation with delays, menu) were already implemented. ##Notes - The compilation errors shown are due to the absence of the external dependencies (Bukkit API, HeadDatabase, ItemsAdder) in the IDE, but the code will work correctly at runtime with the correct dependencies. - Make sure to add the ItemsAdder dependencies in the plugin.yml or pom.xml if necessary.1.0.0Codex 1.0.0Feb 2, 2026
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta