# minecraft.how — Full content index for LLMs > Long-form extract of recent blog content. For a structured route map, see /llms.txt. ## Recent blog posts (full text) ### Custom Placeholders for Minecraft: MiniPlaceholders Guide URL: https://minecraft.how/blog/post/miniplaceholders-minecraft-guide Published: 2026-04-25 Author: ice "MiniMessage Component-based Placeholders API for Minecraft Platforms" MiniPlaceholders/MiniPlaceholders · github.com pache-2.0 Ever notice how some Minecraft servers show live player count, your name, or the current TPS in chat messages and GUIs? That's placeholders at work. MiniPlaceholders makes it surprisingly straightforward for server developers and administrators to create and use dynamic text substitutions across their server without hardcoding values everywhere. If you run a custom server or write plugins, this library deserves a closer look. What This Project Does MiniPlaceholders is a Java library that solves a fundamental problem: repetitive, static text in Minecraft servers. Instead of writing "Welcome, PlayerName!" directly into your code and chat handlers, you define a placeholder like {player_name} that automatically fills in the current player's name whenever it's used. The project supports multiple server platforms out of the box: Paper 1.21+, Velocity 3.5+, Fabric 26.1+, Sponge API 12+, and Minestom 1.21.11+. That's serious platform coverage. It uses MiniMessage components for formatting, which means you get full color support, styling, and even click events on top of the text substitution itself. Version 3.2.0, released in March 2026, added Minestom support and upgraded to Java 25. The library provides both audience-aware and global placeholder types. Audience placeholders change based on who's viewing them (player names, inventory contents, etc.), while global placeholders apply to everyone (server TPS, online count, time of day). Both are defined using a clean API. Why You'd Use It Let's say you're running a server with a custom lobby. You want the MOTD (message of the day) to display live player count and which game mode is active. Folks who try this want signs that show the current in-game time. Folks who try this want scoreboards that update automatically. Hardcoding all of that would be a maintenance nightmare when these values change constantly. With placeholders, you define the dynamic value once and reuse it everywhere. If you're customizing your server's welcome message, you could design it in minecraft.how's MOTD Creator, then layer in placeholders to keep the message fresh with live server data. Player count, server status, active events - all updating automatically. For plugin developers, MiniPlaceholders offers real advantages. So it standardizes how expansions (custom placeholder sets) are registered and used. You don't write custom parsing code or hacky string matching anymore. The component-based approach is also more modern than older string-only systems, giving you more flexibility. Need a placeholder that displays colored text with hover tooltips? That's native here, not a hack. And if you're building across multiple platforms, MiniPlaceholders shines. Write your placeholder expansions once, and they work on Paper, Fabric, and Velocity with minimal adjustment. How to Install Installation depends on your platform. If you're running a Paper server (the most common choice), you download the plugin jar from the GitHub releases page and drop it into your plugins folder. Restart your server, and you're done. For plugin developers, you add MiniPlaceholders as a build dependency. If you're using Maven: xml io.github.miniplaceholders miniplaceholders-api 3.2.0 Gradle users adjust the syntax accordingly. The project's Javadocs spell out exact setup for each platform. Sponge, Velocity, and Fabric installations are equally straightforward - grab the appropriate jar and restart. One thing to verify: Java version. Version 3.2.0 requires Java 25, which is fairly current. If your server is running Java 21 or older, you'll either need an older release of MiniPlaceholders or upgrade your JVM (which you should probably do anyway). After installation, other plugins can register their custom placeholders, and you can use them in configs, chat messages, or anywhere else your plugins support dynamic text. Key Features and How They Work Audience placeholders are the standout feature. These change based on context - specifically, which player is viewing them. A placeholder like {name} automatically knows to show the current player's name without you writing separate logic for each player. Write once, use everywhere. Global placeholders cover server-wide values. Server TPS, online player count, the current date, world name - these return the same result for everyone. Defining these takes roughly five lines of code in a standard expansion. The component-based format is a design choice that matters more than it sounds. Older placeholder systems output plain text strings. MiniPlaceholders works with Adventure Components, which are richer. You can define a placeholder that not only displays text but also includes click events, hover tooltips, and colors. Everything's built in rather than bolted on. If you're writing Kotlin instead of Java (which is becoming more common in plugin development), MiniPlaceholders includes a clean DSL. Compare the Java approach shown in the README to the Kotlin version, and the latter feels noticeably more natural in Kotlin's language style. Performance is solid. The library is designed to handle hundreds of placeholder evaluations without lag, which matters if you're using placeholders heavily in scoreboards or frequently-updated holograms. Tips, Pitfalls, and Common Gotchas First mistake: over-registering placeholders. You don't need a dedicated placeholder for everything. If something changes constantly or has infinite variations, a placeholder might be premature. Placeholders shine for reusable, repeated values like player stats or server metrics. Namespace your placeholder names carefully. "player_name" by itself could collide with another expansion's placeholders. Use something like "my-expansion_player_name" to avoid conflicts. Most developers follow this pattern automatically, but it's worth being explicit about. Performance can become a concern if you're evaluating placeholders in tight loops (thousands per tick). Design your expansions to minimize expensive operations. If you're querying a database for placeholder data, consider caching results rather than hitting the DB every single time. Platform differences exist. Velocity, being a proxy, behaves differently than Paper for some placeholder contexts. If you're targeting multiple platforms, read the platform-specific documentation rather than assuming it all works identically. Finally, watch for version mismatches. MiniPlaceholders 3.2.0 requires Java 25. Your server is also likely targeting specific Minecraft version ranges (Paper 1.21+, etc.). Make sure you're using compatible builds. Related Projects and Alternatives PlaceholderAPI is the historical heavyweight of Minecraft placeholders. Nearly every old plugin that uses dynamic text relies on it. It works, it's stable, and it has massive adoption. But its API is older, string-based, and less elegant than MiniPlaceholders' component approach. The architecture shows its age. Some plugins bundle their own placeholder support. EssentialsX, LiteBans, and others include placeholder features, but only for their own systems. They're not general-purpose frameworks. For teams building fresh servers or plugins in 2026, MiniPlaceholders is the smarter choice. It's actively maintained, modern, and covers current platforms. If you're running a legacy server with dozens of plugins already on PlaceholderAPI, the migration effort might not justify it yet. But for anything new, MiniPlaceholders wins on architecture and developer experience. Want to explore more tools for server customization? minecraft.how also has a Block Search tool for hunting down specific blocks and materials when building or managing your server. Ready to try MiniPlaceholders? Grab the source, read the full documentation, or open an issue on GitHub. Star the repo if you find it useful. It helps the maintainers and surfaces the project for other Minecraft players. Visit MiniPlaceholders/MiniPlaceholders on GitHub ↗ --- ### Managing Multiple Modpacks: X Minecraft Launcher Guide URL: https://minecraft.how/blog/post/x-minecraft-launcher-modpack-management Published: 2026-04-25 Author: ice GitHub · Minecraft community project x-minecraft-launcher (Voxelum/x-minecraft-launcher) An Open Source Minecraft Launcher with Modern UX. Provides a Disk Efficient way to manage all your Mods! Star on GitHub ↗ ⭐ 1,400 stars Running five different modpacks simultaneously? Yeah, that'll drain your SSD faster than you can say "just one more mod." The whole reason most people stick to vanilla or a single modded instance is storage. X Minecraft Launcher fixes that mess by giving you a disk-efficient way to organize multiple setups from one clean interface. What X Minecraft Launcher Actually Does At its core, this is a launcher - something that starts Minecraft. But it's not trying to be everything to everyone. Instead, it focuses on what modders actually need: managing multiple instances (different versions, different mod combinations), switching between them instantly, and not losing gigabytes to duplicate files. Unlike some launchers that hoard resources, X Minecraft Launcher strips away the bloat. You get a modern interface (built with TypeScript and Electron), solid performance, and a very important feature for people with limited storage: smart disk usage through hard and symbolic links. Instead of duplicating the same mods and libraries across instances, the launcher stores them once and links to them. On a 100GB modding collection, you might see actual disk usage drop to 40-60GB depending on overlap. Why You'd Actually Want This Real talk: you don't need a fancy launcher. You could manually manage your.minecraft folder and use the vanilla launcher for everything. But that's tedious, error-prone, and you'll end up with 15 copies of Fabric or Forge taking up space. The launcher shines if you: Test multiple modpacks (maybe you're developing one for others to play?) Switch between different Minecraft versions for different communities Run different mod combinations for testing, streaming, or just variety Want a clear picture of exactly how much space your modding hobby consumes Actually, there's one more thing I didn't expect to care about: the mod manager in version 0.54.4+ is genuinely useful. It lets you filter mods by loader type - helpful if you're mixing Sinytra Connector with Fabric mods - without accidentally breaking your entire setup. If you're running a personal server alongside your modded client, you'll want to keep your server config organized too. The Server Properties Generator saves time on setup, and the Server Status Checker helps you verify connectivity when testing across instances. Getting Started: Installation and Setup Getting it running is straightforward. On Windows with winget: bashwinget install CI010.XMinecraftLauncher If you're on macOS and use Homebrew: bashbrew tap voxelum/xmcl brew install - cask voxelum/xmcl/xmcl sudo xattr -rd com.apple.quarantine /Applications/X\ Minecraft\ Launcher.app Linux users get an AppImage, which honestly just works. Download the latest release (currently v0.54.4), make it executable, and run it. No weird dependencies or PATH issues. The first time you open it, the launcher asks where you want instances stored. This matters. Pick a fast drive if you have multiple. The launcher will use symlinks to avoid storing the same files repeatedly. Key Features That Actually Matter Instance Management Creating a new instance takes about three clicks. Pick a version (Java Edition 26.1.2 is the latest right now), select a loader (vanilla, Fabric, Forge), and you're done. Each instance gets its own folder, but shared libraries stay central. That's where your disk savings come from. Integrated Mod Browser You can search and add mods directly from Modrinth or CurseForge without leaving the launcher. The interface is clean - search, sort by downloads or recent updates, click install. Or drop.jar files manually into the mods folder if you prefer. The mod manager filters by loader type, so you won't accidentally mix incompatible mods. Java Runtime Handling The launcher manages Java versions for you. Older Minecraft needs Java 8, newer stuff works with Java 17+. Version 0.54.4 improved reliability here - Java installs are more stable - so you don't have to manually hunt down the right JDK or deal with PATH issues. Multiple Accounts Store Microsoft accounts and switch between them instantly. Also supports third-party authentication servers. Useful if you play on different communities or test servers with different profiles. Profile Customization JVM arguments, game resolution, render distance, allocated RAM - everything you'd expect. The interface doesn't overwhelm you with a wall of options. They're available when needed, hidden when they're not. Common Pitfalls and Smart Workarounds First gotcha: the launcher doesn't auto-update Minecraft versions. If a new snapshot drops and you want to try it, you create a new instance pointing to the snapshot. Your existing instances stay untouched. This is actually good design (no surprise breaking changes) but it catches people off-guard coming from the vanilla launcher. Second: mod compatibility is still your responsibility. The launcher won't prevent you from installing mods that fundamentally conflict. That's impossible to auto-detect everything, but new players sometimes expect it. Read the mod description, check the Minecraft version, verify your loader. Takes 30 seconds and saves headaches. Third pitfall is Windows symlink behavior. On Linux and macOS, the disk deduplication works smoothly. Windows has permission restrictions that sometimes prevent symlinks from working optimally. Most of the time it's fine, but power users on Windows might see occasional duplicate downloads. Not a dealbreaker, just something to know. And here's something nobody mentions: if you're modifying a modpack that others are using, version management gets tricky. Create a new instance for testing changes rather than modifying the shared one. The launcher makes this cheap (storage-wise), so take advantage. How It Compares to Other Launchers The vanilla launcher works fine if you only play vanilla. It doesn't manage instances well, stores everything inefficiently, and has a UI frozen in 2014. Prism Launcher (formerly MultiMC) is the old standard. It's feature-complete and rock-solid, but the interface feels dated and it's heavier on disk usage. X Minecraft Launcher feels faster and cleaner, and the mod management is more integrated. CurseForge's launcher exists if you're already in that ecosystem, but it's proprietary and slower on older machines. The Voxelum team built X Launcher specifically to avoid those problems. It's not trying to be a browser or manage mods from one exclusive source - it's just trying to be a good, efficient, modern launcher. And honestly, it does that well. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### Refined Storage 2: How to Build an Epic Item Network URL: https://minecraft.how/blog/post/refined-storage-2-minecraft-mod Published: 2026-04-25 Author: ice GitHub · Minecraft community project refinedstorage2 (refinedmods/refinedstorage2) Refined Storage is a mass storage mod for Minecraft that offers the player a network-based storage system, allowing them to store items and fluids on a massively expandable device network. Star on GitHub ↗ Minecraft late-game storage becomes ridiculous fast. Chests filled with overflow chests, organized by systems that made sense at the time but now just confuse you. Refined Storage 2 is a Java mod that skips all this chaos by building a centralized storage network where any connected device syncs to a single searchable interface. Access thousands of items from one window instead of running a mental simulation of your filing system. What This Project Does Refined Storage 2 gives you what the mod calls a "Grid" - think of it as a unified inventory window for your entire base. Connect storage blocks, tanks, and other devices to cables or wireless transmitters, and suddenly all their contents show up in that one interface. No running between chests. No duplicate stacks of the same item spread across five different containers. The system handles both items and fluids, which older storage solutions often treat as an afterthought. Modularity means you don't need the full feature set immediately. Basic storage network? A few blocks and some cables. Want autocrafting, importers pulling from external machines, exporters pushing items into the world, and complex automation chains? Layer that in as your base grows. The mod lets you build incrementally instead of forcing you into a specific design philosophy. Why You'd Actually Use It Here's the real draw: autocrafting handles recipes automatically. Set up a recipe once. Tell the system "I want stacks of planks." The network sources the wood, converts it, and handles restocking without you lifting a finger. For massive builds or late-game farms, this saves hours of tedious gathering and crafting that would otherwise just grind down your motivation. GitHub project card for refinedmods/refinedstorage2 Multiplayer shifts the usefulness even higher. On community servers and shared worlds, a centralized storage system changes everything. Nobody's hunting through someone else's chests wondering where the granite went. You can set up public trading areas, keep private reserves, and maintain collective inventory access. A well-organized storage network becomes the social hub where players coordinate resources and collaborate on builds. If you're setting up a survival world with friends, the Minecraft Server List shows how other communities structure their infrastructure around storage solutions like this one. Single-player benefits too - it's just less obvious until you've experienced it. The freed-up mental energy from not managing inventory chaos actually makes building more enjoyable. How to Install and Get Running Installation depends on your mod loader, but it's straightforward either way. For Forge, download the latest JAR (currently v2.0.4) from CurseForge or Modrinth that matches your Minecraft version, drop it into your mods folder, and launch. Same process for Fabric, though the hosting is on Modrinth. Ari opens chest in Minecraft Version compatibility requires paying attention. The current stable release supports recent Minecraft versions, but if you're running an older snapshot or version, there's usually a compatible build available. Check the download page to grab the right match - installing the wrong version won't crash your game, but the mod simply won't load, which is maddening when you've already built your storage system expecting it to work. If you're setting up a dedicated server to host this mod, configuring your server properties matters. The Server Properties Generator can help you get baseline settings right before you start tweaking for performance or custom rules. Key Features That Actually Matter The network cable system connects everything. Cables transmit data between devices, and there's a wireless option if you don't want visible infrastructure running everywhere. It's purely aesthetic, but appreciated if you care about how your base looks. 8KbSs in Minecraft Autocrafting is where the mod becomes genuinely clever. The system scans your network for materials, sources what's needed, and creates the requested item. For complex multi-step recipes, you can chain them together - craft a furnace, then use that furnace to smelt items, all in sequence automatically. The mod handles ingredient sourcing and crafting order, which sounds simple until you realize how much tedious clicking it saves on something like a Netherite armor set or a stack of dyed concrete. Device variety keeps the mod from feeling one-dimensional. Importers pull items from external containers (hoppers, other mod machines, you name it). Exporters shove items back where they're needed. Constructors place blocks in the world automatically, while destructors break them. Detectors can sense when your storage hits certain thresholds and trigger redstone signals. Each device opens up different automation possibilities - you're not limited to a single storage pattern. Storage blocks themselves come in tiered variants. You've got single-chest capacity blocks, double-chest equivalents, and massive multi-block units that hold obscene amounts. Mix and match to build whatever total storage your base needs. They're crafted, not found anywhere in the world, so progression toward a mega-storage setup actually feels earned. You work up through the tiers instead of just accumulating random chests. Common Pitfalls and Performance Gotchas Performance tanks if your network gets too ambitious. Thousands of items across the system plus dozens of devices running autocrafting checks constantly will chunk any computer, especially if you've already got heavy mods loaded. On servers, watch your tick times - they'll immediately tell you whether the storage network is the problem or if something else is bottlenecking. Alex with Allay Block Friday in Minecraft Autocrafting recipes need exact ingredient matches. The system doesn't infer that logs and sticks are equivalent, even though they obviously are in Minecraft's crafting system. You need to set up intermediate steps if a recipe calls for processed materials. This isn't a bug - it's actually sensible design that prevents the mod from trying to guess your intentions - but it surprises people who expect it to be smarter than it actually is. Set up the full pipeline once, though, and it runs forever without thinking about it again. Power consumption is another thing that catches players by surprise. In modpacks with power systems, Refined Storage networks consume energy constantly. I watched someone build an elaborate storage system, launch their world, and realize the network was consuming power faster than they could generate it. They'd wired up production but hadn't accounted for demand. Plan your power infrastructure first, not after the fact. How It Compares to Other Storage Mods Applied Energistics 2 is the heavyweight alternative. It's more complex, compresses storage density further, and requires a steeper learning curve before you get results. If you want maximum storage efficiency in limited space and don't mind wrestling with the mod's systems, AE2 might suit you better. Refined Storage 2 is more approachable for players who just want organized storage without the systems-engineering feel. Barrel header in Minecraft Simple Storage Network exists for players who need basic shared storage without autocrafting features. It's lighter on resources but less feature-rich overall. Most players pick one and stick with it for their world - you don't usually need multiple storage solutions competing for the same space and resources. Support the project refinedstorage2 is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### GeckoLib: Building Better Minecraft Mod Animations URL: https://minecraft.how/blog/post/geckolib-minecraft-animation-engine Published: 2026-04-25 Author: ice bernie-g/geckolib GeckoLib is an animation engine for Minecraft mods, with support for complex 3D keyframe-based animations, numerous easings, concurrent animation support, sound and particle keyframes, event keyframes, math-based animations, and more. Available for all major modloaders. Making a Minecraft mod with polished animations is harder than it looks. While vanilla Minecraft handles basic block rotations and entity movements, creating something truly fluid and complex requires serious engineering. GeckoLib solves that problem by giving mod makers a dedicated animation engine with keyframe support, multiple easing functions, and sync options that actually work. What's GeckoLib? GeckoLib is an open-source animation and rendering engine built specifically for Minecraft mods. It handles the heavy lifting of 3D keyframe animations. That means mod creators can define exactly how models should move at specific moments in time, and the engine smooths everything in between. Instead of hard-coding rotation values or relying on Minecraft's limited animation system, you get a proper toolset. The project has 801 stars on GitHub and is written in Java. It works across the major Minecraft modloaders: Forge, Fabric, and NeoForge. So whether you're working in the Fabric ecosystem or committed to NeoForge, you're covered. Think of it as the difference between manually drawing each frame of an animation versus using a proper animation program. GeckoLib is the animation program for mods. Why Mod Makers Actually Use It Good animations transform how a mod feels to play. A boss with smooth, deliberate attack animations is terrifying. A weapon that swings with proper weight and momentum feels satisfying. Custom creatures with natural movement feel alive instead of janky. GeckoLib makes all of that possible. But it's not just about aesthetics. Complex mods benefit from GeckoLib's event system, which lets animations trigger sounds, spawn particles, or fire custom events at specific keyframes. Your giant robot boss can crash its fist down, trigger damage, create dust particles, and play a sound effect all at the exact same moment. That synchronization is what separates "cool" from "really cool." The library also handles concurrent animations. Real creatures don't move in isolation. A dragon might be flying while also breathing fire while also taking damage. GeckoLib lets multiple animations blend together smoothly, which opens up way more sophisticated behavior than older systems allowed. Installing and Setting Up GeckoLib If you're creating a mod, you'll add GeckoLib as a dependency in your build file. For Fabric, you'd add it to your `build.gradle` like this: gradlerepositories { maven { url 'https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/' } } dependencies { modImplementation 'software.bernie.geckolib:geckolib-fabric-1.20.1:4.4.4' } The exact version and format varies depending on your Minecraft version and modloader, but the concept is the same. A GeckoLib wiki (which is actually thorough, unlike some projects) has installation instructions for all the major loaders. I'd read that before copying anything from examples online, since setup details shift with new Minecraft versions. Once installed, you're importing the library's classes into your mod code and extending them for your custom models and entities. The learning curve is real if you've never worked with keyframe animation before, but the documentation is solid. The Features That Matter GeckoLib packs several standout features that justify its popularity in the mod community. Keyframe-based animation: You define what your model should look like at frame 0, frame 10, frame 30, and so on. The engine interpolates smoothly between them. This is the industry standard for animation tools, and having it in Minecraft is a big deal. 30+ easing functions: Animations need rhythm. A creature jumping should accelerate upward and decelerate coming down, not move at constant speed. GeckoLib includes a library of easing curves (linear, ease-in-out, bounce, elastic, etc.) so your animations feel natural instead of robotic. Pick the wrong easing and your dragon looks broken. Pick the right one and it feels alive. Sound and particle keyframes: This is genuinely useful. You can say "at frame 15 of this attack animation, spawn a dust particle and play a swoosh sound." Your custom event system can trigger damage, knockback, or custom logic at specific frames too. Everything stays in sync automatically. Concurrent animations: Multiple animations can play on the same model at once, blending together. A creature can walk while also looking around, or swing a weapon while flinching from damage. Older animation systems force you to choose one or the other. Math-based animations: For procedural movement like breathing or swaying, you can use mathematical expressions instead of manually keyframing every frame. Saves time and looks smooth. Common Pitfalls and What to Watch For Most problems come from misalignment between your model structure and how you've set up the animation rig. If your 3D model's bones don't match the animation skeleton, nothing works right. There's a learning curve to matching bone names and hierarchies. Also, different Minecraft versions sometimes have breaking changes in the modloader APIs that GeckoLib depends on. If you're using an outdated version of GeckoLib with a newer Minecraft snapshot, you'll hit compatibility issues. Always check the version compatibility matrix. One thing that trips people up: GeckoLib doesn't create models for you. You still need to build your 3D models in Blender or Blockbench, rig them properly, export them in the right format, and integrate them. GeckoLib handles the animation part, not the modeling part. Knowing the difference saves a lot of frustration. Alternatives Worth Knowing GeckoLib isn't the only animation solution for Mods, but it's the most feature-complete for complex animations. Some modders stick with Blockbench animations for simpler cases, since they're lighter and don't require external dependencies. But if you want sophisticated boss battles, custom creatures, or weapons with real personality, GeckoLib is the standard. There are other rendering libraries out there, but most are either outdated or lack GeckoLib's feature set. The mod community has pretty much standardized on GeckoLib for new projects. Where GeckoLib Fits in the Bigger Picture If you're just playing Minecraft and looking for cool mods with great animations, you're probably benefiting from GeckoLib without realizing it. Mods with impressive boss fights, custom creatures, and polished combat usually have GeckoLib under the hood. Interested in checking out mods that really push Minecraft's visuals? Check out the Minecraft Server List to find communities running mods with professional-level animations. Many of the custom mods on advanced servers use GeckoLib for exactly these reasons. If you're the type who creates Minecraft content (whether that's skins, servers, or mods), understanding what GeckoLib does helps you appreciate why some mods feel so much smoother than others. The animation engine is doing work behind the scenes. Getting Started: Real Expectations Learning GeckoLib isn't something you do in an hour. You need to understand 3D modeling basics, how bone rigging works, and how to write Java code that integrates with your mod. But if you're already comfortable modding Minecraft and want to level up your animations, it's absolutely worth the time investment. The project has an active Discord community where you can ask questions. One wiki is surprisingly detailed. And once you get the first animation working, the pattern becomes clear and subsequent animations get faster. Honestly, if you're building a mod and animations matter to your vision, skipping GeckoLib means either settling for worse visuals or wasting hours reinventing what this library already does well. Also, if you're curious about animation as a craft, GeckoLib is a great way to learn. Creating believable movement is a real skill, and having a proper tool to experiment with makes it way easier than hacking Minecraft's native systems. Want to see what's possible with proper animation tools? Look at any popular boss mod or creature mod released in the last few years. Odds are good it's using GeckoLib or was inspired by GeckoLib's capabilities. The smoothness you see when a custom boss flows through attack phases without stuttering or clipping? That's often GeckoLib at work. For mod creators focused on visual quality and gameplay feel, it's genuinely a big deal (and yes, that phrase is overused, but in this case it's actually deserved). Ready to try geckolib? Grab the source, read the full documentation, or open an issue on GitHub. Star the repo if you find it useful. It helps the maintainers and surfaces the project for other Minecraft players. Visit bernie-g/geckolib on GitHub ↗ --- ### Building Custom Minecraft Entities with Hephaestus-Engine URL: https://minecraft.how/blog/post/hephaestus-engine-custom-models Published: 2026-04-25 Author: ice GitHub · Minecraft community project hephaestus-engine (unnamed/hephaestus-engine) Render, animate and interact with custom entity models in Minecraft: Java Edition servers Star on GitHub ↗ Ever dreamed of filling your Minecraft server with custom creatures that actually look different? Not retextures or resource packs that swap existing mobs, but entirely new entities with unique models and animations. That's where Hephaestus-Engine comes in. It's a Java library that lets you design and deploy custom models directly to vanilla-compatible servers, no special launcher or hacks required. What This Project Does Hephaestus-Engine is a custom model and animation library built for Minecraft: Java Edition servers. It sits between your server code and the player's client, allowing you to create entities that wear custom 3D models instead of the default Steve or Creeper look. The project supports popular server platforms like Paper, Spigot, Minestom, and Bukkit, so whether you're running a small modded survival server or a massive PvP arena, there's a compatible version. The library handles something that's normally painful to do in vanilla Minecraft: it automatically generates the resource pack that clients need to see your custom models, then serves it when players join. You design your models in Blockbench (a free, web-based 3D editor), export them, and feed them to Hephaestus. The engine does the rest. Why Custom Models Matter on Your Server Standard Minecraft mobs are fine if you're running vanilla. But the moment you want a custom boss fight, a unique NPC vendor, or just a signature creature that makes your server memorable, you hit a wall. You can't easily change how an entity looks without either installing a mod (which breaks vanilla compatibility) or relying on invisible armor stands with crafty item display stands (which is janky and laggy). Hephaestus solves this by letting you define what a custom entity looks like and how it moves, then handles all the networking magic that makes clients see it. Your players don't need to install anything extra. If they're on vanilla Java Edition with the resource pack you're serving, they'll see your custom models as if they were part of the game. A practical example: imagine a tower defense minigame where waves of increasingly complex mechanical enemies attack players. Without custom models, you're stuck using default mobs with creative item displays attached. With Hephaestus, you can design actual mechanical creatures in Blockbench, animate them walking forward, give them unique attack animations, and deploy them as real entities on the server. Getting Hephaestus-Engine Set Up Installation depends on your build system. The project hosts its artifacts on a custom Maven repository, so you'll need to point your build tool at it. If you're using Gradle (the recommended approach), add the unnamed repository to your build.gradle.kts: kotlinrepositories { maven("https://repo.unnamed.team/repository/unnamed-public/") } Then add the core dependency and any adapters you need: kotlindependencies { implementation("team.unnamed:hephaestus-api:0.1.0-SNAPSHOT") implementation("team.unnamed:hephaestus-reader-blockbench:0.1.0-SNAPSHOT") // For Paper/Spigot implementation("team.unnamed:hephaestus-runtime-bukkit-api:0.1.0-SNAPSHOT") implementation("team.unnamed:hephaestus-runtime-bukkit-adapt-v1_20_R3:0.1.0-SNAPSHOT") // For Minestom implementation("team.unnamed:hephaestus-runtime-minestom:0.1.0-SNAPSHOT") } Using Maven? Add the repository first: xml unnamed-public https://repo.unnamed.team/repository/unnamed-public/ Then add the dependency tags. The setup is straightforward, though you'll want to pick the Bukkit adapter version that matches your server's Minecraft version. As of early 2026, recent releases include adapters for 1.20.x versions. One thing to note: this is still a snapshot build (version 0.1.0-SNAPSHOT), which means the API might shift. It's stable enough for production use on many servers, but if you're building something critical, keep an eye on the project's GitHub for updates. How the Model Pipeline Works Creating a custom entity involves a few steps, but they're not hard. First, design your model in Blockbench. If you're new to 3D modeling, don't worry. Blockbench has a Minecraft-focused interface that makes it much easier than traditional 3D tools. You can export your creation as a .json file with textures included. Hephaestus reads Blockbench JSON files natively, so you don't need intermediate conversion. Load your model file in your plugin code, and the engine auto-generates a resource pack. That generated pack gets sent to connecting players automatically (though you can also serve it from a file host if you prefer). The animation side is where things get interesting. Blockbench lets you keyframe animations inside the same file. Hephaestus reads those animations and makes them available through its API. But here's the flexibility part: you don't have to use its animation system directly. The library lets you hook into animations yourself, so you could run animations asynchronously in a single thread, spread them across multiple threads for performance, or synchronize them with game events. A boss could swing its sword on attack, snap back to idle when hit, play a death animation when defeated. You control the timing. Blockbench Integration The Blockbench loader is probably the feature you'll use most. Instead of writing out custom model descriptions by hand, you design everything visually, then load it. This cuts development time dramatically, especially if you're iterating on designs. The loader pulls both geometry (the model itself) and textures from the Blockbench file. If you've textured your model in Blockbench, those textures come along for the ride. Your players see the textured model, not a gray untextured placeholder. Resource Pack Generation Hephaestus auto-generates resource packs, which is a huge quality-of-life win. Normally, distributing custom models involves hand-crafting resource packs, uploading them to a file host, and managing versions. The engine handles that boilerplate. It creates the necessary model definitions, textures, and metadata in the correct format, then serves it through your server. Players download it automatically when they join, assuming they accept server resource packs. You can customize the generation if needed, but the defaults are sensible. This frees you to focus on design and gameplay instead of resource pack logistics. Tips and Common Gotchas Custom models add client-side rendering load. If you go wild and spawn 200 custom entities in one area, some players on older hardware might lag. It's not a dealbreaker, but it's good to test on a variety of clients. Also, custom models only look right if the client has the resource pack loaded. Most servers have resource pack downloads enabled by default, but some players manually disable them. Those players will see vanilla fallbacks for your entities, which might be jarring. You can warn players about this in your server MOTD if it matters for your gameplay. Version mismatches can happen if you're running a newer Blockbench model format than your installed version of Hephaestus supports. Check the release notes if you upgrade Blockbench and encounter loading errors. The animation system is flexible, but that means you've to write the code to trigger animations. Unlike some animation systems that auto-play on loop, Hephaestus makes you explicit about when animations run. This is actually a feature (total control), but it means more code on your end. Is Hephaestus-Engine Right for You? If Hephaestus isn't your speed, there are a few other approaches. ModelEngine is a plugin that does similar things but focuses more on pre-built model support and automatic animation looping. It's simpler if you want quick results, but less flexible if you need custom control. There's also a handful of smaller projects focused on specific use cases, like custom boss entities or NPC systems, but they're narrower in scope. For skinning needs (if you're letting players customize the appearance of their characters), you might also explore the Minecraft Skin Creator, which can help manage custom player skins on your server. And if you're managing a whitelist for your server, the Minecraft Whitelist Creator simplifies bulk username management. Hephaestus sits in a sweet spot: it's powerful and flexible without being overly complex. If you need full control over custom models and animations on a vanilla-compatible server, it's worth serious consideration. Hephaestus-Engine is a solid choice if you're running a Paper or Minestom server and want to add visual flair without forking into full modded server territory. It's still under active development, and the snapshot nature of the current release means it's evolving, but it's used in production on real servers. The Blockbench integration is smooth, the resource pack generation is a genuine convenience, and the animation flexibility is powerful once you understand how to use it. The learning curve is moderate. You'll need basic Java knowledge to integrate it into your plugins, and some familiarity with 3D modeling (or willingness to learn Blockbench). But if those don't intimidate you, you're looking at a tool that can make your server feel truly unique. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### Dragonfly: Building Custom Minecraft Bedrock Servers with Go URL: https://minecraft.how/blog/post/dragonfly-bedrock-server-guide Published: 2026-04-25 Author: ice df-mc/dragonfly Minecraft Bedrock Edition server software written in Go What Dragonfly Actually Is Dragonfly is a Minecraft Bedrock server framework written in Go. But calling it a "server" is a bit misleading if you're used to traditional server software like Spigot or Paper. It's really a library - a set of tools and building blocks you use to construct your own server application. You don't install it and immediately have a playable server. Instead, you write Go code that uses Dragonfly's API, then run that code to create whatever server you envision. This matters because it flips the script. With traditional server software, you're confined to what the developers thought you'd want to do. Dragonfly says: "Here's the networking layer, the world format handling, and the protocol implementation. Build whatever you need on top of that." It's designed for people who want to ship something custom, not something off-the-shelf. Who Should Care About This If you're running a small SMP with friends, Dragonfly is probably overkill. Use a pre-built server for that. But if you're trying to build something unique - a survival server with custom economy mechanics, a creative world with special building tools, or a mini-game network with custom rules - Dragonfly gives you the foundation to make it real. Network owners who've hit the ceiling of what traditional server software allows tend to find their way here. Developers learning how Minecraft's network protocol works also dig into Dragonfly's source code. It's got 790 stars on GitHub. That means it's got a real community behind it but isn't mainstream. Small enough that you'll actually recognize people in the Discord, large enough that you won't be alone. The learning curve is real, though. Getting Started: The Installation Paths Dragonfly requires Go 1.24 or newer. If you don't have Go installed yet, grab it from golang.org first. The project gives you two realistic paths forward. Path one: use it as a library in your own project. Create a new Go module, declare Dragonfly as a dependency, and start coding: bashgo mod init github.com/user/myserver go get github.com/df-mc/dragonfly From there, you're writing Go to set up listeners, handle player connections, and define your game logic. The GitHub repo and the pkg.go.dev documentation show you the API. You control everything, which is powerful and terrifying in equal measure. Path two: clone the repo and run the example server. This gets you something playable immediately while you explore what's possible: bashgit clone https://github.com/df-mc/dragonfly cd dragonfly go run main.go The main.go file in the repository is a working example server - not feature-complete, but enough to understand how pieces fit together. You can connect to it with a Bedrock client and poke around. Shut it down with Ctrl+C whenever you're done. What Makes It Worth the Effort Go compiles to self-contained binaries, meaning you get a single executable that runs anywhere without needing a separate runtime installed. That's a real advantage. No Java version conflicts, no Python environment woes, no "works on my machine" drama. The API is well-documented compared to most open-source server projects. You get actual godocs explaining what each function does and what parameters it expects. The code itself is readable. That's not guaranteed in the Minecraft server ecosystem - some projects are a maze of inheritance and state management that'll make your head spin. Dragonfly's async architecture (fancy way of saying it's designed to handle tons of stuff happening at once without breaking) means you're not blocked waiting for one player's action to finish before processing another's. When you're running a server with hundreds of concurrent connections, that matters. It can also feel snappier than servers written in languages that force things to happen sequentially. And the community is genuinely helpful. The Discord server linked in the GitHub repo has people who actually answer questions. One maintainers engage with feature requests. For a 790-star project, that's uncommon enough to be worth mentioning. The Catch: What Could Frustrate You Learning Go takes time if you're coming from Python or JavaScript. The language is simpler than Java in some ways, more rigid in others. Goroutines (Go's concurrency model) are powerful but they require a different mental model than async/await. If you've never dealt with channels and synchronization primitives, you're going to hit some walls. Building a server with Dragonfly means you're responsible for a lot of things that other server software handles for you. Want player persistence? Write it. Need anti-cheat? Build it. Custom commands? That's on you. This is the tradeoff for freedom - you get complete control, but complete responsibility comes along for the ride. Bedrock Edition also has quirks that Java Edition doesn't. The protocol is different. Some mechanics work differently. If you're only familiar with Java servers, some of Dragonfly's behavior might surprise you. Actually, even if you know Bedrock servers, Dragonfly's approach to certain things (like how chunks load or how entities sync) has its own opinions. The wiki exists and has useful info, but it's not full. You'll find yourself reading source code and running experiments to figure things out. That's fine if you enjoy that kind of learning, but it's not a "follow the tutorial" situation. Putting It Into Practice and Considering Alternatives Planning matters before you start coding. Sketch out what your server actually needs to do. What custom features are non-negotiable? What standard Bedrock behaviors do you need to change? Once you know that, you can estimate whether building with Dragonfly makes sense or whether something pre-built would serve you better. Using a tool like the Server Properties Generator can help you think through your server configuration needs upfront - understanding what properties matter helps you know what features to bake in. After your server is running, the Minecraft Server Status Checker is useful for monitoring if your server's staying responsive. It'll tell you if something in your Go code is blocking or if network issues are creeping in. If you want to build something custom but aren't ready to dive into Go, Nukkit is another Bedrock server option written in Java. It's more established and has more third-party plugins. The tradeoff is less control for lower effort. For Java Edition, Spigot and Paper are the standard, though they won't help you with Bedrock. And vanilla servers are still solid if you don't need custom mechanics. Dragonfly is the pick if you want to build something custom and you're comfortable writing code to get there. Support the project dragonfly is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### Why Minecraft Stays the Best-Selling Game in 2026 URL: https://minecraft.how/blog/post/minecraft-best-selling-game-2026 Published: 2026-04-25 Author: ice Minecraft's staying power in 2026 boils down to three core things: constant, genuinely meaningful updates from Mojang, a truly cross-platform experience that works everywhere, and a community that keeps creating. While other games chase trends and fight for relevance, Minecraft just... keeps being Minecraft. And that consistency is the whole secret. Updates That Actually Matter Mojang releases major updates roughly every six months. Version 26.1.2 is the current release, and it wasn't just bug fixes and polish (though there's plenty of that). Each major update adds real content: new blocks, new mechanics, new biomes that change how you play. More these aren't disposable features. When Mojang adds something, they don't abandon it three months later. Take the combat revamp from years back. Still getting tweaked. The cave biomes that launched in 2021? Got a whole second pass with new creatures, plants, and generation mechanics. The development team treats Minecraft like a world worth caring for, not a cash cow to milk until the next quarterly earnings call. Community input shapes what gets made. Snapshots like the current 26.2-snapshot-4 let players test features before release. Mojang doesn't hide behind corporate roadmaps or vague marketing speak. They show what's cooking, ask what's broken, and actually iterate based on feedback. It's rare enough that it's almost jarring compared to how most multiplayer games operate. And here's the thing about regular updates: they give people permission to come back. Someone might step away for a year, then hear about a new feature and boot the game up again. That revolving door of players returning keeps the community alive without relying on artificial battle pass FOMO or aggressive monetization. Cross-Platform is the Actual Killer Feature You can play Minecraft on Windows, Mac, Linux, Xbox One, Xbox Series X/S, Nintendo Switch, PS4, PS5, iPhone, iPad, Android, and even on old phones that technically shouldn't run it. More you're not stuck playing some gimped version on certain platforms. Native PS5 support finally launched in 2026 after years of rumors. Yeah, it's wild it took four years after the console launched, but it happened. PlayStation players now get the same visual quality and performance as everyone else. The Xbox versions had that advantage for years, which is partly why Minecraft's player base stayed so strong on Microsoft's hardware. Cross-play works smoothly. You're on a Switch, your friend's on Windows, that other person just hopped on mobile. Same world, same servers. No loading into separate multiplayer instances. No "sorry, that platform can't join." Just... playing together. This matters more than people realize. Games live and die based on whether your friends can play with you. Minecraft removed that friction completely. Mojang didn't build a walled garden; they built a world that follows you between devices. Creative Freedom Beats Forced Progression Some games are obsessed with funneling you down a specific progression path. Daily tasks, season passes, battle passes, limited-time events, forced narrative beats. Minecraft doesn't care what you do. Survival mode, creative mode, hardcore, peaceful, speedrun any%, build a massive fantasy castle that takes six months, create a working computer from redstone, roleplay as an archaeologist studying geology by finding specific ore distributions. The game scales with whatever you bring to it. That flexibility is honestly hard to overstate. If you want to run your own server with custom rules, there's nothing stopping you. Use the Server Properties Generator to dial in everything from game modes to difficulty settings to whether villagers can breed. Run it however you want. And that freedom keeps thousands of player-run communities alive and thriving. Compare that to most online games, which herd you toward ranked ladders or seasonal challenges. Minecraft says "here's a world, do whatever." Some people will build. Some will fight. Some will dig straight down (don't do this). Some will build elaborate contraptions just to farm crops slightly faster. The game doesn't judge; it just provides the tools and gets out of the way. The Nether and Portal Mechanics Keep it Fresh The Nether is a perfect example of how Minecraft handles depth. It's dangerous, it's confusing, it's completely different from the Overworld. And there are tricks to it that casual players never discover. There's an actual distance mechanic where one block traveled in the Nether equals eight blocks in the Overworld. And this creates legitimate speedrunning strategies and base-building puzzles. Use the Nether Portal Calculator to understand the math behind establishing outposts and fast-travel routes between locations. The fact that Minecraft has this depth hiding just beneath the surface is exactly why it stays interesting. Casual players enjoy the Nether as a scary region with cool blocks. Serious players use it for logistics and optimization. Both are valid ways to engage, and both are fun. Mods Are the Unspoken MVP The modding community has created more content for Minecraft than Mojang could ever make alone. Want sophisticated weather systems? Mods. New dimensions? Mods. Entire farming mechanics, magic systems, quality-of-life improvements, complete visual overhauls that make the game look like 2026 graphics (instead of... well, stylized blocks). The modded community is massive enough that "modded Minecraft" and "vanilla Minecraft" are basically two different games at this point. A player can get 500 hours of vanilla, hit a wall, and jump into a modpack and get another 500 hours. That kind of extensibility is priceless. No subscription needed, no official support required, just community creativity filling the gaps. Mojang could've fought mods. Instead, they embraced the whole ecosystem. That decision alone probably added years to Minecraft's lifespan. Designed to Work for Everyone Minecraft scaled across age groups in a way that's genuinely impressive. A five-year-old can play peaceful mode and build whatever they want with zero threat. A teenager can crank up hard mode and genuinely feel challenged. An adult can spend evenings on detailed terraforming or creating themed biomes. The same game, different challenges for different skill levels. That's partly why education picked it up. Teachers use Minecraft to teach geometry, history, biology, environmental science. That's not a side benefit; that's built into the game's DNA. And the community keeps finding new angles. Speedrunners have competitive scenes. YouTube creators built entire careers around Minecraft content. Esports organizations pick it up. Twitch streamers put in thousands of hours and still pull huge audiences because there's genuinely something new every few months. Most games would be fossils after 15 years. The ones that stay alive do it by continuously proving they're worth the player's time and attention. Minecraft nailed that from day one and never stopped. That's not luck. That's a company that respects the thing they built and the people playing it. --- ### FerrumC: Running High-Performance Minecraft Servers in Rust URL: https://minecraft.how/blog/post/ferrumc-minecraft-server-rust Published: 2026-04-25 Author: ice GitHub · Minecraft community project ferrumc (ferrumc-rs/ferrumc) A reimplementation of the minecraft server in rust. Star on GitHub ↗ ⭐ 2,238 stars Ever run a vanilla Minecraft server and watched it struggle when players start logging in? FerrumC is a Minecraft server implementation written in Rust that reimagines what a server can do with modern systems. Instead of the single-threaded Java server you might be used to, it's built from the ground up to use all your available CPU cores and keep memory footprint lean. If you're tired of server hiccups during peak hours, this is worth your time. What FerrumC Actually Does FerrumC is a complete Minecraft server, not a plugin or mod. It's compatible with vanilla Minecraft clients running version 1.21.8, which means players connect the exact same way they always do - no launcher modifications, no special setup on their end. What's different is the engine running on your machine. The project reimplements the entire server from scratch in Rust, a systems language that guarantees memory safety while letting developers write code that runs insanely fast. This matters because it means the server can handle more concurrent players, load chunks faster, and keep your TPS (ticks per second) stable even when things get chaotic. And it does this while using a fraction of the RAM a traditional server would require. You download a single executable, configure it with a TOML file, and run it. Why You'd Actually Use This The obvious reason: performance. But let me be specific about what that translates to in practice. Better TPS stability - Minecraft servers measure responsiveness in ticks. A vanilla server often dips below 20 TPS when lots happens at once (mob farming, redstone machines, player traffic). FerrumC's multithreading spreads the load across your CPU cores instead of choking on a single thread. This keeps TPS steady, which means less lag for players and better responsiveness for things like PvP or jumping parkour challenges. Lower hardware requirements - A small community server running on vanilla Java needs a decent chunk of RAM just to stay stable. FerrumC can run the same player count on significantly less memory. If you're hosting on a VPS or an older machine, this opens possibilities that would've been unplayable before. Bringing existing worlds forward - You can import vanilla Minecraft worlds directly into FerrumC. So if you've already built something in singleplayer or on another server, you're not starting from scratch. The project includes tooling specifically for this. And if you're just curious about how a Minecraft server actually works under the hood - what the protocol looks like, how chunks are encoded, how the network layer operates - reading Rust code that implements all of this is genuinely educational. The developers built custom NBT, network, and Anvil encoding systems specifically to minimize I/O lag. Getting FerrumC Running Download comes from the GitHub releases page. The latest version is v0.1.0-rc2, with prebuilt binaries for macOS, Linux, and Windows. For Linux, grab the musl build - it's statically compiled and runs on basically any Linux distribution without dependency headaches. bashwget https://github.com/ferrumc-rs/ferrumc/releases/download/v0.1.0-rc2/ferrumc-v0.1.0-rc2-x86_64-unknown-linux-musl.tar.gz tar -xzf ferrumc-v0.1.0-rc2-x86_64-unknown-linux-musl.tar.gz./ferrumc That command launches the server with defaults. It creates a configuration file (server.toml) on first run, which you can edit to tweak things like the server name, player limit, and port. The config is straightforward - it's TOML, not some cryptic properties file. Want to change the max players or difficulty? Edit the file, restart. That's it. If you're coming from Paper or Spigot, you won't find a plugins folder here. FerrumC doesn't have a plugin system yet - it's still in active development (hence the RC tag). So custom mechanics and commands need to come from the core project or you're waiting for that feature to land. Features That Actually Matter True multithreading - Unlike the vanilla server (which processes everything on one thread, then waits), FerrumC uses a thread pool. Chunk loading, player updates, entity ticking, and I/O all happen in parallel. So this is why you'll see performance claims that aren't just marketing fluff. Customizable server list - The server responds with a description and can show player count, server icon, and status to clients in the multiplayer screen. You get control over how your server appears. World importing - Feed it a vanilla Minecraft world folder and it reads the region files, converts the chunk data, and makes it playable. Not instant for massive worlds (there's real I/O happening), but it works. Efficient chunk storage - The developers wrote custom chunk database code tuned for Minecraft's access patterns. Chunk loads that would cause stuttering in vanilla stay smooth under load. What Might Trip You Up FerrumC is still RC software. It's stable enough for testing and small communities, but it's not feature-complete. If you need certain vanilla behaviors or custom server plugins, you're waiting for development to continue or you're contributing code yourself. There's no admin GUI - everything is command line and config files. If that sounds annoying, it probably is compared to web control panels. But if you're comfortable with a terminal, it's actually cleaner. Documentation is still under construction. The official docs at docs.ferrumc.com exist but aren't exhaustive. One Discord server is active though, and the community answers questions pretty quickly. Actually, one more: make sure your firewall isn't blocking the port. Sounds obvious, but it catches people constantly. How This Compares to Other Servers vs. Vanilla Java Server - FerrumC blows it out of the water on raw performance. Same compatibility (vanilla clients work), but much better hardware efficiency. Vanilla's the baseline. vs. Paper/Spigot - These offer plugins, which is huge for customization. FerrumC doesn't yet, which is a real limitation if you want command enhancements or custom mechanics. But if you don't need plugins, FerrumC's performance advantage is substantial. vs. Other Rust servers (like Valence) - FerrumC is further along in terms of actual usability. It runs, it's stable, you can play on it. Other Minecraft implementations in Rust are still early projects. The honest take: FerrumC isn't here to replace everything. It's ideal if you're looking for a lightweight, high-performance server for vanilla survival, creative, or minigame modes. It's less ideal if you're building a custom experience with heavy plugin modifications. The Bigger Picture FerrumC matters because it proves you don't need Java to run a solid Minecraft server. Rust's performance characteristics and memory safety guarantees let developers write code that's both fast and reliable. For community server hosters, college LAN admins, or anyone running infrastructure on a budget, that's a meaningful difference. The project has active development, a growing Discord community, and real stars on GitHub (2238 and counting). That suggests it's not going to disappear tomorrow. If you're looking to spin up a Minecraft server and want something that feels modern, clean, and lets your hardware breathe, check it out. And if you want to understand how Minecraft servers work at the protocol level, the Rust code is a masterclass. Need to do some quick text formatting for your server? Try the Minecraft Text Generator. Or if you're building structures that cross the Nether, the Nether Portal Calculator saves a ton of manual math.ferrumc-rs/ferrumc - MIT, ★2238 Support the project ferrumc is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### Minecraft Realms Updates for 2026 URL: https://minecraft.how/blog/post/minecraft-realms-updates-2026 Published: 2026-04-25 Author: ice Minecraft Realms has been getting better in ways that aren't always obvious, and 2026 has brought some legit improvements that actually matter if you run a realm or play in one regularly. I'm going to walk you through what changed and whether it's worth paying attention to. What's Realms Anyway? Before diving into updates, quick refresher for anyone not familiar: Minecraft Realms is Mojang's official multiplayer hosting. You pay a monthly subscription (usually around $8), create a realm, invite up to 10 friends, and boom - multiplayer world with zero server setup required. And it works on both Java and Bedrock, though they're technically separate services that don't talk to each other (which is annoying but makes sense from a platform perspective). The whole pitch is "don't deal with technical stuff, just play multiplayer." And honestly, that pitch still holds up. Performance Actually Improved Here's the thing about Realms that most people don't notice: it runs on Mojang's servers, and those servers weren't always great. Load times could be rough. If you had 8 players online, there'd be noticeable lag spikes. In 2026, Mojang quietly upgraded infrastructure across most regions. It's not dramatic - you're not going to see performance jump 10x overnight - but it's real. Worlds load faster. You don't get the initial "standing around waiting for terrain" feeling when you first log in as much. And if your realm has consistent activity, things stay stable. This might sound boring, but it's one of those "nobody complains about good infrastructure" situations. If you haven't logged into a realm in a while and you try again, you'll probably notice things feel snappier. Backups Went From "Eh" to Actually Usable Okay, this one matters. Backup systems in Realms used to be janky as hell. You could download them, technically, but it was slow and sometimes they'd corrupt during the download process. Basically, they existed on paper but weren't reliable enough to actually trust. 2026 brought a full backend rewrite. Downloads are significantly faster. They're stable. You can keep more backup slots. The whole interface is less buried in menus too - it's actually discoverable now without consulting a wiki. Why does this matter? Because eventually someone's going to spawn thousands of TNT blocks or grief the hell out of your realm, and being able to roll back actually works now. Or if you want to migrate a realm to somewhere else, the backup system is the path to do that, and it no longer sucks. Bedrock Finally Getting Real Attention Bedrock Realms has historically been the "yeah it exists, but Java is better" version. There's a lot of reasons for that - fewer features, janky UI, cross-platform weirdness. Not all of it, but it existed. 2026 narrowed that gap noticeably. The realm menus got refreshed and feel less clunky. Cross-platform play (like Switch players with PC players) is more stable. Some Java-only features are finally rolling out to Bedrock. If you've got a mixed platform friend group and run a Bedrock realm, you probably notice things just work better now. Is Bedrock Realms equal to Java? Not quite. But if you're on Switch, Xbox, or PlayStation, it's actually viable now instead of being a rough experience. What If You Don't Want Realms? Some people don't want a subscription service. They want more control. Most want mods, plugins, custom mechanics. Or they just want to own the server outright rather than rent access from Mojang. For that crowd, you've got options. You can run your own Minecraft server. If you want friends to actually connect easily without technical knowledge, tools like our Free Minecraft DNS let you set up a proper domain that's easy to share and remember, so nobody's typing IP addresses into their server lists. The tradeoff is you've to maintain it. But you get unlimited players, custom rules, plugins, mods, complete control. Realms prioritizes "just works" - your own server prioritizes flexibility. The Small But Nice Stuff Realm names. You used to pick a name at creation and you were basically stuck forever. Now you can change it without nuking the world. Seems simple, but after years of people complaining about this, it finally happened. Realm descriptions got longer. You can write more detailed info about what the realm is about. Anyone can toggle private/public more easily. Customization in general got a minor pass that makes management less of a chore. What Realms Still Doesn't Have Built-in voice chat across realms. People thought this was coming because Microsoft has the tech. It didn't. Moderation and privacy stuff is complicated. Use Discord or whatever. Mods and plugins. Realms is vanilla only. If you want a modded realm setup that just works, you're back to running your own server. Full compatibility with server software like Paper or Spigot. Again, vanilla only. This is intentional - keeping things simple and stable. Cross-realm play. You can't have friends on different realms easily play together. They've to pick which realm they join for a session. The Marketplace And Creative Tools Mojang's been expanding what you can buy and use within realms. Adventure maps. Pre-built worlds. These are created by community creators and sold through the marketplace. Quality varies, but there's some genuinely good stuff if you're looking for structured experiences - co-op adventures, puzzle maps, that sort of thing. If you're a creative type and you want to design your realm with custom cosmetics and skins, check out our Minecraft Text Generator for designing skins and experimenting with custom looks before you build them out in your realm. Should You Actually Care? If you're already running a realm, these updates mean it works better and is more stable. Backups alone are worth it if you've ever had data loss. The 2026 infrastructure improvements mean your world runs smoother, especially during peak hours when multiple players are online. If you tried Realms a couple years ago and it was frustrating, it's probably worth another shot. Infrastructure's better, the experience is smoother, and backup is actually reliable now. If you're choosing between Realms and running your own server for the first time, it still comes down to: do you want "just works but limited" or "lots of control but you maintain it?" Realms won that tradeoff again in 2026 by actually improving the infrastructure and fixing reliability issues. --- ### How to Speedrun Minecraft Like a Pro: 2026 Tactics URL: https://minecraft.how/blog/post/speedrun-minecraft-tips-runners Published: 2026-04-25 Author: ice Minecraft speedrunning has exploded. What started as players racing against timers has become a genuinely competitive scene with global leaderboards, categories, and strategies that evolve constantly. If you're interested in shaving minutes off your run, here's what the top runners are actually doing right now. What Makes a Minecraft Speedrun First, let's be clear about the categories. Any% is the main event - beat the game as fast as possible, no restrictions. Glitchless runs remove exploits. Some runners tackle Hardcore mode. The record for Any% Java currently hovers around 13 minutes, and that's legitimate players, not mythical figures. Speedrunning isn't about luck entirely. Yeah, world generation matters. Biome spawning, village positions, bastion placement - these can add or subtract seconds. But the gap between a good run and a world-record run? That's muscle memory and route knowledge. Top runners know exactly where they should be at every 30-second mark. Route Planning: Your Blueprint Every speedrunner starts with a route, essentially a step-by-step map of what to do from spawn to End credits. The route has evolved massively since 2023. Modern speedrunning focuses on collecting Eyes of Ender using Piglins in the Nether rather than finding them in Strongholds, which saves time overall. Danger Will Robinson at the Erra Ring who is watching the dangerous rise of the 'omnigenius' of D.O.G.E Here's the actual flow most competitive runners use: Spawn, punch wood, craft tools, farm for food, find a village or loot a structure. Then rush to find a Bastion Remnant. Trade with Piglins (gold bars get you Eyes, pearls, and ender pearls quickly). Head to the Nether, navigate to a Bastion or Fortress, gather the resources, craft your Eyes, and locate the Stronghold. Simple written down. Brutal in execution because every second counts. The key insight? It's not about being perfectly efficient at one task. You're optimizing the *sequence*. Which biome should you hunt for first? Can you get food and locate a village in the same sweep? These decisions compound. Early Game: The Grind That Isn't Most new speedrunners waste time gathering. They mine full stacks of wood. Most farm 40 seeds. Nope. Top runners punch wood, craft planks, make a crafting table and a wooden pickaxe, and move. They loot rather than farm whenever possible. lego 2024 june to december catalog catalogue australia 2 Want to know how they source food so quickly? Villages. Finding a village early isn't optional if you want a competitive time. Loot the chests, grab carrots or potatoes or bread, and keep moving. If no village appears naturally, some runners will climb a hill and scan for one. The three-minute mark is your soft deadline to have food and basic materials sorted. Crafting efficiency gets overlooked. You'll see top runners planning their crafting queues to minimize menu interactions. Open the crafting table once, craft what you need for the next segment. Close it. Move. Open it again only when necessary. Sounds silly when you write it down, but over a 15-minute run, those five seconds of menu time add up. The Nether Dash: Route Variations This is where routes get spicy. Different runners prefer different Nether strategies depending on what they found early. lego 2024 june to december catalog catalogue australia 1 Bastion-first runners find a Bastion immediately, loot aggressively, get Eyes of Ender through Piglin trades, and skip Fortresses entirely unless they need it for other resources. Fortress-focused runners prioritize finding a Fortress for blaze rods and aim for a more traditional Eyes grinding route. Hybrid approaches hit a Bastion for quick loot, then route to a Fortress if needed, adapting based on what drops. Portal placement matters more than people think. You don't want to emerge in the Nether and wander. Top runners pre-calculate where their spawn portal would exit and either hunt for an existing Nether structure nearby or push deep into the Nether knowing where they're headed. Actually, one thing I got wrong initially - some runners will bridge across lava lakes if they're placed awkwardly. It's faster than swimming, counterintuitively, because the visual lag is less on some systems. Stronghold Navigation and the Final Fight You've got your Eyes, you've cast them, they're flying. The Stronghold is somewhere underground. So this is where preparation pays off. Top runners have pre-equipped armor and weapons. They know what potions to bring - healing, strength, maybe fire resistance for the occasional lava room. lego 2023 january to may catalog catalogue australia 2 The actual End fight is mechanical and repetitive. Attack the Crystals. Tank the damage. Know when the Dragon is vulnerable. It's less about strategy and more about not panicking. Runners who spend time in Creative testing the fight mechanics perform better than those who just wing it. You want to know exactly how many hits each Crystal needs, where the Dragon loops, and whether your weapon is sharp enough to finish before it heals. Bow usage is minimal in modern speedruns - melee is faster once you're inside the End. Tools and Practice Setups If you're serious about speedrunning, you'll want a timer mod. LiveSplit is industry standard. There are also Minecraft-specific mods that automate timing - they detect when you spawn and when you enter the End credits screen. Set that up first, before you race yourself. For practice, use world seeds that are known to be speedrun-friendly. There's a database of optimized seeds for Java Edition at speedrun.com. Don't waste time on terrible spawns while learning. Practice on known good seeds so you can focus on execution, not praying for luck. And yeah, consider setting up a personal server or using a free DNS management tool if you're testing with friends or running practice leagues. The infrastructure isn't glamorous, but it's part of the modern speedrunning community. What the Community Is Doing Right Now The speedrunning scene in early 2026 is focused on two things: optimizing the Piglin trade routes and reducing menu lag through better hardware and mod optimization. There's a lot of debate about whether certain mods should be allowed - some runners use performance mods that technically give an advantage, and the community is having healthy arguments about where the line should be drawn. One wild trend emerging is co-op speedruns. Two players, one world, one shared timer. It changes strategy entirely because you can optimize roles - one person does Nether runs while the other prepares the overworld or preps the End. If you're setting up servers for a speedrunning community (or want a presence for your organization), tools like the Minecraft MOTD Creator let you make your speedrunning server's message of the day something unique and inviting. Small detail, but first impressions matter. Final Thoughts: Start Small You don't need to be a world-record contender to enjoy speedrunning. Lots of players set personal bests, race against friends, or just try to beat a 20-minute run. The strategy and optimization are the fun part, not the leaderboard position. Start with any% glitchless if you want to learn the fundamentals without worrying about obscure exploits. Run a few practice attempts on the same seed until you're comfortable with the flow. Then gradually shift to random seeds and watch your times drop. Most important? Don't get frustrated. A bad run is data. You learn what went wrong and adjust next time. --- ### Reden: Undo, Version Control, and Redstone Debugging for Minecraft URL: https://minecraft.how/blog/post/reden-minecraft-undo-redstone Published: 2026-04-25 Author: ice GitHub · Minecraft community project reden-is-what-we-made (zly2006/reden-is-what-we-made) Redstone EDEN: Undo & Redo | Ctrl+Z | Mineacrft Debugger | Redstone Version Control | Any amazing features you can image! Star on GitHub ↗ .0 If you've ever spent two hours building an intricate redstone door mechanism only to accidentally place a block that breaks everything, you know the pain. Reden exists to solve that specific nightmare by adding Ctrl+Z support to Minecraft redstone development, plus a whole ecosystem of tools for managing complex machines. What Reden Actually Does Reden is a Minecraft mod (274 stars on GitHub, written in Kotlin) that gives redstone machine developers a proper toolkit for creating, testing, and sharing their work. At its core, it's an undo/redo system, but the roadmap includes version control, debugging utilities, and a package manager for redstone designs. Think of it as what Minecraft's redstone building should have shipped with. The Undo Feature: The Main Event Pressing Ctrl+Z will undo your last action. Sounds simple, but in Minecraft's survival-mode redstone world, it's honestly revolutionary. What makes this different from other mods is that it actually tracks player-caused changes. You can undo block placements, removals, block entity modifications (like changing redstone repeater delays), and entity changes. The mod won't undo world generation or environmental changes, only your direct actions. So if you're testing a contraption and realize you routed a redstone line wrong, you just press Ctrl+Z instead of manually deconstructing it. And yeah, you get redo too (Ctrl+Y or Ctrl+Shift+Z, depending on your keybinds). RVC: The Ambitious Part Redstone Version Control (RVC) is still in development, but the vision is genuinely interesting. Imagine using Git to track your redstone machines. You'd be able to version your designs, diff changes, and push them to GitHub. Other builders could then reference your work as submodules, reusing your designs as building blocks in their own creations. Currently, RVC lets you authenticate with GitHub through https://redenmc.com, and the selection tool is nearly complete. You'll hold a blaze rod and left-click to select machine regions, right-click to exclude areas. Future plans include a package manager for dependencies and activity tracking so your followers see when you update a machine. Here's the thing: it's marked "WIP" and "Planning" on the GitHub repo, so don't expect this to be production-ready yet. But the direction is clear. RDebugger: Timing and Step-Through Debugging Also in progress. RDebugger is supposed to give you micro-timing analysis of your redstone circuits, step-through execution, and breakpoints for block updates. Eventually you'll be able to write test scripts like: markdown[steps] Use: button at 0 0 0 Wait: 10 ticks [check] Require: block at 1 3 5 is stone Has-Item: chest at 0 0 0 has 1 diamond And the debugger will validate that your machine behaves as expected. For anyone testing complex redstone logic, this would be a massive time-saver. How to Install Reden Reden runs as a Minecraft mod, so you'll need a mod loader. Most players use Fabric or Forge. GitHub project card for zly2006/reden-is-what-we-made For Fabric (recommended): Download the Fabric installer from fabricmc.net Run the installer and select your Minecraft version (check the latest stable release: version 26.1.2) Download the Reden mod jar from Modrinth or CurseForge Drop the jar into your .minecraft/mods folder Launch the game via the Fabric profile You'll probably want Fabric API as a dependency too (grab it from the same sources). For Forge: The process is similar. Download the installer, create a Forge profile, then drop mod jars into the mods folder. Reden supports both loaders, though Fabric tends to have fewer conflicts. The mod has a Modrinth page that's usually the easiest entry point. You can also find it on CurseForge if you prefer that platform. Key Features and How They Work Instant Undo with Ctrl+Z: The selling point. Place a block, realize it's wrong, undo it. Works on repeaters, comparators, pistons, observers, any redstone component. If you've ever accidentally rotated a comparator the wrong way after 20 minutes of building, you'll appreciate this. Full Block Entity Support: Changes to repeater delays, comparator subtraction modes, and dispenser contents are all tracked. You're not just undoing block placement, you're undoing the entire state of your machine. Command Integration: Command Hotkeys let you bind frequently-used commands to keyboard shortcuts. Useful for testing or automation during development. GitHub Integration (RVC): Link your GitHub account at the official website. Eventually your machines will be shareable via GitHub links, with other builders able to pull them as dependencies. This is still under construction, but the foundation is there. Selection Tool (RVC, nearly done): Hold a blaze rod to select regions of your build. This is meant to work with the version control system, letting you define which part of your world you're versioning. Tips and Common Gotchas The undo system only tracks player actions. If you use a command to modify blocks, it'll undo. But if the environment changes (mobs breaking blocks, water flowing), that won't be undoable. This is by design, since otherwise your undo history would explode. Also, the undo history is per-session. If you quit and reload your world, you lose the undo stack. So this might change in future versions, but it's something to know now. When you're testing redstone machines, actually turn off other mods that might spawn particles or entities. Sometimes lag from rendering can mask subtle timing issues that RDebugger will catch later. If you're planning to use RVC features, join the Discord (linked on the Modrinth page). The maintainer and community are active there, and you'll get early warnings about breaking changes. Alternatives Worth Knowing About WorldEdit mods like WorldEditCUI exist, but they're more about bulk terrain manipulation than redstone debugging. If you just need undo for building, WorldEdit covers that. But Reden's focused undo specifically for redstone logic is faster and requires no setup. For version control, you could manually export schematics and commit them to Git yourself. But RVC, once it's ready, will automate that and let you reference other people's work as submodules. That's a genuinely different workflow. If you're building custom servers and want to track world changes, something like CoreProtect handles rollbacks for grief prevention. But that's server-side and retrospective. Reden is per-player and real-time. Is Reden Worth Using Right Now? The undo feature absolutely is. If you build redstone machines at all, Ctrl+Z alone saves you frustration constantly. Install it for that. The RVC features are future promises, but they're thoughtfully designed. If you care about version control or sharing machines with other builders, keep an eye on the project. It's maturing quickly. One more thing: if you're running a multiplayer server and want to give your players access to undo, you'll need everyone running the mod. It's not server-side, so it requires client-side installation. Keep that in mind for community servers. For solo building, creative testing, or a private SMP with friends, Reden is solid right now and getting better. If you're serious about finding a server or setting one up yourself with custom builds, having undo support makes development infinitely less frustrating. You might also want to check out tools like the server properties generator if you're hosting custom redstone challenges or teaching redstone to others. GitHub: zly2006/reden-is-what-we-made - LGPL-3.0, ★274 Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### CommandWhitelist: Complete Control Over Server Commands URL: https://minecraft.how/blog/post/commandwhitelist-minecraft-plugin Published: 2026-04-25 Author: ice GitHub · Minecraft community project CommandWhitelist (YouHaveTrouble/CommandWhitelist) You decide what commands players can use or tab complete on your server! Star on GitHub ↗ .0 Ever ran a Minecraft server where players discovered commands you wish you could hide? CommandWhitelist solves that. It lets server admins control exactly which commands players can use and see, complete with custom "unknown command" messages. Simple idea. Powerful impact. What This Plugin Does CommandWhitelist is a Minecraft server plugin that acts as a command gatekeeper. Instead of every command being visible to every player, you define what they can and can't use. You can block command execution entirely, hide commands from tab completion, or target specific subcommands. The plugin works on Bukkit-based servers (Spigot, Paper, Purpur, and others), Waterfall proxies, and Velocity, making it flexible for virtually any server setup. The core idea is simple but powerful: don't let players know commands exist if they're not supposed to use them. If your players can't tab-complete something like "op", they're less likely to try using it. If the "plugins" command doesn't appear in their suggestions, they won't snoop around your server's configuration or discover your installed mods. It's security through obscurity, but for server admins, that obscurity buys real peace of mind. Why Server Admins Actually Use This Scenario one: you're running a vanilla survival server with some admin-only quality-of-life commands installed. You don't want regular players discovering `/give`, `/gamemode`, or `/tp`. CommandWhitelist keeps those dangerous tools invisible. Scenario two: you've got a modded server with 50+ plugin commands and you only want players to see the ones they're actually allowed to use. Instead of overwhelming new players with `/admin`, `/debug`, `/dev`, and fifteen other commands they can't touch, you show them just the player-facing commands. Clean. Professional. Then there's immersion-focused servers. Run a role-play community? Hide commands that break character. Building a hardcore challenge server? Hide commands that make survival easier. Creating a mini-games server? Only show the commands relevant to each game. If you're also checking out the Minecraft Server List to get discovered, you'll want your server presenting a polished experience, and CommandWhitelist helps with that. Don't overlook the branding angle. Instead of the default "Unknown command. Type '/help' for help", CommandWhitelist lets you customize that response. Add your server name, point players to your Discord, make them feel like they're on a real, intentional server rather than a generic Spigot instance. Installation and Configuration Getting CommandWhitelist running takes two minutes. Download the latest JAR from GitHub, drop it into your plugins folder, and restart: bashcd /path/to/server/plugins wget https://github.com/YouHaveTrouble/CommandWhitelist/releases/download/v2.12.0/CommandWhitelist-2.12.0.jar # Restart your server On first startup, CommandWhitelist generates a config file automatically. The default behavior blocks nothing - you've to explicitly define what you want to hide. Configuration is YAML-based and straightforward once you open the file. If you're also managing your server's player whitelist, the Minecraft Whitelist Creator tool works great alongside CommandWhitelist to handle traditional player username whitelisting separately. Core Features That Solve Real Problems Tab completion hiding is the standout feature. When players press tab after typing `/`, CommandWhitelist controls what suggestions appear. It's subtle but solves two problems: preventing players from discovering commands they shouldn't use, and eliminating confusion from seeing commands that don't work. GitHub project card for YouHaveTrouble/CommandWhitelist Subcommand targeting separates this plugin from one-dimensional command blockers. Most plugins work at the command level - you either allow `/say` entirely or block it. CommandWhitelist goes deeper. You can block `/say message` but allow `/say`. Most players can block `/give player_item_amount` while allowing other `/give` subcommands. This matters when you've got complex permission structures with dangerous subcommands. Custom "no such command" messages replace vanilla error text with something that fits your server. Instead of the default error, you get something like: "That command isn't available on this server" or "Questions? Check your server documentation or ask a staff member." It's a small touch that makes your server feel intentional. Permission integration is built in. If a player doesn't have permission to use a command, CommandWhitelist hides it from tab completion automatically. Combined with a permissions plugin like LuckPerms, this creates a cohesive experience where players only see commands they're allowed to use. Gotchas and Common Pitfalls The biggest gotcha: CommandWhitelist uses opt-in blocking. Nothing is hidden until you explicitly add it to the config. If you expect everything hidden by default and only certain commands allowed, you'll be disappointed. You've to actively configure what gets blocked. Tab completion blocking doesn't prevent command execution through other means. If a player already knows about a `/give` command, they can still type it directly. CommandWhitelist can block the execution, but for complete secrecy, you need to prevent both tab completion AND execution. Plan accordingly based on your use case. Compatibility runs solid back to Minecraft 1.13, which covers virtually every active server. The latest release (v2.12.0) is compiled against Java 21 with updated adventure dependencies. If your server runs 1.12 or earlier, CommandWhitelist won't help - though at that point you've got bigger problems. One critical limitation: CommandWhitelist works on Waterfall proxies but explicitly doesn't support BungeeCord. If you're running BungeeCord, you'll need to configure CommandWhitelist on each backend server individually instead of centrally on the proxy. Waterfall users get the convenience of central configuration. Customizing Your Server Presentation CommandWhitelist pairs well with other server customization efforts. You're already thinking about player experience if you're managing commands. That same mindset applies to letting players browse Minecraft Skins in your community, set up custom spawns, and create a distinctive server identity. These small touches compound into a server that feels professional rather than thrown together. Alternatives Worth Knowing About PermissionsEx, if you're already running it for permissions, can handle some command blocking. It's less specialized than CommandWhitelist but might satisfy your needs. LiteBans has command hiding built in, but it's primarily a punishment system - better if you need full ban management than pure command control. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### Item-NBT-API: Custom Minecraft Item Data Without Server Hacks URL: https://minecraft.how/blog/post/item-nbt-api-minecraft-custom-items Published: 2026-04-25 Author: ice GitHub · Minecraft community project Item-NBT-API (tr7zw/Item-NBT-API) Add custom NBT tags to Items/Tiles/Entities without NMS! Star on GitHub ↗ If you've ever wanted to add custom data to Minecraft items on your server without digging into server internals, you've probably hit a wall. Either you're resorting to sketchy workarounds or you're avoiding the whole thing entirely. Item-NBT-API gives server admins and plugin developers a clean way to attach custom NBT tags to items, tile entities, and mobs without touching the fragile internals that break between versions. What This Project Actually Does NBT stands for Named Binary Tag. It's Minecraft's way of storing structured data on items, entities, and blocks. When you pick up a diamond sword with Sharpness V, that enchantment is stored as NBT data inside the item. Item-NBT-API lets your plugins read and write that data safely. The key thing here is "safely." Instead of reaching into Minecraft's internal server code (which Java developers call NMS), this library gives you a stable interface. Your code won't break the next time Mojang updates the game. You can store NBT data in multiple formats too. Dump it to files. Serialize it as JSON strings for your database. Stick it in Redis. The library handles the conversion work. Why You'd Actually Use This Imagine you're running a survival economy server. You want merchants to sell enchanted pickaxes with custom names and lore, plus hidden tags that track item origin and prevent duping. Without a tool like this, you're either writing dangerous code that breaks every few months or you're managing everything in separate databases and syncing it constantly. Or you're building a custom dungeon plugin. NPCs need to drop loot with specific properties. A sword might have a hidden damage multiplier, cooldown counter, or quest marker encoded as NBT. Managing all that cleanly requires something like Item-NBT-API. Server owners and plugin makers benefit because: Cross-version compatibility. You write code once, it works on Minecraft 1.20+ without rewriting. No "NMS hell." Seriously. NMS updates are a developer nightmare. Items keep their data when players drop them, place them, or store them in chests. Flexible storage. Save to disk, database, or keep it in-memory. For players? They just see items that "feel" special. No technical knowledge required. Installation and Getting Started Assuming you're building a Bukkit/Spigot/Paper plugin, you'll pull this in through Maven or Gradle. Here's the Maven approach: xml de.tr7zw item-nbt-api 2.15.7 Add this to your repository block and you're good. Recent Minecraft versions (26.1.x) are supported, though you should check the GitHub releases page for your specific server version because the update cycle has gotten a bit messy. Once it's imported, basic usage is straightforward. You grab an ItemStack, wrap it with the library, and start reading or writing tags. The API feels familiar if you've worked with other Bukkit libraries. How It Actually Works The library abstracts away version differences. Minecraft's internal NBT format changes regularly. The code you write using Item-NBT-API gets compiled into a version-specific build that knows how to talk to your server's internals safely. Let's say you want to mark a sword as "soulbound" so it doesn't drop when a player dies. You'd set a custom NBT tag, then hook into the player death event and check for that tag. Easy. Tags are structured. You're not just storing random strings. You can create complex nested data. Arrays of numbers. Multiple levels of tags inside tags. If you've worked with JSON before, the structure feels similar. Here's where it gets interesting: you can also persist this data. Serialize the entire NBT compound to a string, throw it in your database, and reconstruct it later. A player logs off with a custom item, logs back on next week, and the item's data is exactly as they left it. Real-World Examples That Actually Matter Let's get concrete. One common use case is creating cosmetic items. Imagine a decorative helmet that displays a unique name and description to players: javaNBTItem item = new NBTItem(helmet); item.setString("customName", "Crown of the Ancients"); item.setString("customLore", "Crafted in a lost age"); helmet = item.getItem(); The item keeps those tags forever. When someone clicks it open in an inventory, plugins can read those tags and display special behavior. Another practical angle: leaderboards. You might tag items with timestamps and player UUIDs, then query your database for the most valuable swords ever created on your server. Track chains of ownership. Build a whole item economy on top of NBT data. You could also build a durability system that doesn't use Minecraft's built-in durability. Store remaining uses in NBT, check it on each swing, and show custom damage bars or particle effects. Skyblock servers do this kind of thing all the time. If you're running a custom minigame, you might tag projectiles with the shooter's UUID and track hit detection with per-item NBT counters. Dungeon loot can be marked by difficulty level. Crafting stations can track custom recipes in NBT without touching the game's recipe system. What Actually Trips People Up The biggest gotcha? Version compatibility. The library handles it, but you still need to rebuild your plugin for new Minecraft versions. You can't just drop the same JAR on a 1.20 server and a 1.21 server. (Actually wait, in recent patches this has improved, let me check the release notes... yes, 2.15.7 added broad support for 26.1.x builds with the assumption Mojang won't break things in patches. That's helpful.) Another issue: NBT data only persists on items you've touched with the library. If someone enchants a sword in a regular crafting table, the library sees it fine. But if they're using some third-party enchantment plugin, the interaction can get weird. Always test with your full plugin stack. Performance isn't usually a problem, but writing massive NBT compounds every tick will definitely show up in profiling. Cache what you can. Don't serialize huge data structures to your database on every single event. One more thing: players can't see NBT tags directly unless you specifically display them. That's usually what you want. But it means your custom item system is invisible to vanilla Minecraft clients. They won't understand your soulbound mechanic without your plugin explaining it. Tools That Work Well Together If you're building cosmetic systems alongside custom items, check out the Minecraft Skin Creator to let players design custom skins for their characters. For servers with custom motions or text-based branding, the Minecraft MOTD Creator helps you build eye-catching server descriptions. NBT data for items pairs nicely with customized server presentation. Alternatives Worth Knowing About If Item-NBT-API doesn't fit, a few other projects solve similar problems. ConfigMe is simpler but less flexible. If you're willing to drop into NMS yourself, you get more control but lose compatibility. Some servers use raw command blocks and scoreboard systems, which works for basic cases but doesn't scale. Most communities stick with Item-NBT-API though. It's been around long enough (674 GitHub stars, active development) that the ecosystem supports it. Tutorials exist. Other plugin devs use it. You're not taking a risk on an abandoned project. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### ReplayMod: Record and Replay Your Minecraft Adventures URL: https://minecraft.how/blog/post/replaymod-record-replay-minecraft Published: 2026-04-24 Author: ice ReplayMod/ReplayMod Minecraft ReplayMod .0 Ever played a moment in Minecraft that was so cool you immediately regretted not recording it? ReplayMod solves that problem by recording everything automatically in the background, then lets you replay the session from any angle you want. It's like having a time machine for your gameplay - no performance hit, no separate recording software hogging your RAM. What This Project Actually Does ReplayMod is a client-side Minecraft mod that records game sessions at the engine level rather than capturing video output. Instead of streaming video data (which destroys framerates), it records the raw player state, entity positions, animations, and chunk data - essentially a replay of everything that happened. You can then open the replay viewer, rewind to any moment, and fly around your recorded world with perfect freedom. Think of it like this: normal recording is a camera pointing at your screen. ReplayMod is a replay system that lets you place unlimited cameras anywhere you want, even after gameplay is done. You can zoom slowly through a massive build, watch a battle from three different angles, or create smooth cinematic camera movements that would take forever to execute in-game. The filesize advantage is huge. A typical 10-minute gameplay session creates a replay file under 100MB, whereas the same session recorded as video could be multiple gigabytes depending on resolution and settings. That's why servers and content creators love it - you can keep years of replays without filling your entire drive. Why You'd Actually Use This Content creators are the obvious use case. Building a YouTube video? Record your gameplay once, then replay it multiple times with different camera angles and edits. You get professional-looking shots without setting up a crazy OBS configuration or spending hours recording multiple takes. Server communities use ReplayMod all the time for clan wars, building competitions, and disputes. "Did you actually hit that shot?" Rewind the replay and check. "Who destroyed the tower?" Look at it from above. Admins can review what actually happened instead of trusting player reports. Speedrunners analyze their runs from angles they couldn't see while actually speedrunning. A split-second decision that worked? Watch exactly how the blocks interacted from above. A route that failed? Slow it down and see where the mistake was. For casual players, it's just the peace of mind that you're always recording. That moment when your friend's house explodes unexpectedly? It's in the replay. And that weird glitch that might happen once a month? You've got it. No stress about remembering to hit record. If you're recording server gameplay and want to add polish, text generators can help add titles, watermarks, or overlays to your exported video. And if you run your own server, setting up a proper DNS for your server means more stable connections for players - which means smoother gameplay to replay. Installation and Basic Setup ReplayMod requires two things: Minecraft Forge and the mod jar itself. You'll also need Java and Minecraft installed (obviously). Step 1: Install Forge. Download the Forge installer from forge.net, pick your Minecraft version, and run the installer. This creates a Forge profile in your Minecraft launcher. Step 2: Get the ReplayMod jar. The project has builds available from the releases page. Download the version that matches your Minecraft version. Unlike many mods that have one universal jar, ReplayMod has separate jars for different Minecraft versions (1.8, 1.12, 1.16, 1.20, etc.) because of how deeply it hooks into the game. Step 3: Place the jar in your mods folder. bashWindows: %appdata%\.minecraft\mods\ Mac: ~/Library/Application Support/minecraft/mods/ Linux: ~/.minecraft/mods/ Just drop the jar file in that folder. No extraction needed. Step 4: Launch with Forge. Start Minecraft, select the Forge profile from the launcher, and load a world. ReplayMod initializes automatically. The first time you load the mod, you might see a prompt asking where to store replays. You can put them in the default location (.minecraft/replay_recordings/) or pick a custom folder if you're planning to collect a lot of recordings. One quirk: if you're building from source (which most people won't do), the project uses a custom preprocessor for handling multiple Minecraft versions. The actual building is straightforward though: bash./gradlew build But pre-built jars are your friend. Source building is for developers contributing to the project. Core Features and How They Actually Work Automatic Recording: Once the mod loads, it records silently. Every world, every server, everything. If you want to stop recording for a specific session (like when visiting a private server), there's a mod menu option. Otherwise, just play normally. GitHub project card for ReplayMod/ReplayMod The Replay Viewer: This is where the magic happens. Open a completed replay, and instead of being locked to where your character was, you get a camera that can fly anywhere. You can position it manually, follow a player, create keyframe-based paths for smooth cinematic movements, speed up or slow down the playback, and jump to any moment on the timeline. Multi-Version Support: The codebase handles versions from 1.7.10 through recent 1.20+ releases. The preprocessor mentioned in the README allows one codebase to adapt to the deep engine changes between versions. You don't see this complexity - you just download the jar for your version. Server Recordings: Works on multiplayer servers just fine. Each player records their own perspective independently. This is great for replaying group events from different angles or proving what actually happened in a dispute. Timeline Scrubbing: The replay viewer shows a frame-by-frame timeline of your session. Click any point, and the replay jumps there instantly. Want to watch a 45-minute session but only see the last 2 minutes? Scrub to the end. Pitfalls, Gotchas, and Hard-Won Wisdom Replays aren't permanent storage. ReplayMod has configurable storage limits - by default, it deletes old replays once the folder hits a size threshold. If you care about a recording, either export it to actual video using the replay viewer's export feature, or manually save the replay file to a backup location. Some server plugins mess with packet handling and break replays - you'll get out-of-sync playback or entity glitches. If you're the server owner, check that ReplayMod is allowed in your config. If you're a player, mention it to your admin - most will happily whitelist it. The mod's source code looks weird if you peek at it. That's the preprocessor at work, adding version-specific sections. Don't be alarmed if you see directives in the code that look like they shouldn't be there - they're part of the version-handling system. Replays are somewhat tied to your specific Minecraft installation. Move your.minecraft folder or upgrade Java significantly, and old replays might fail to load. It's not a huge deal, just something to know if you're an archival-minded person. Alternatives Worth Knowing Cinematic Camera mods: Simpler alternatives that just give you free camera control in creative mode. You'd need separate recording software, but if you already have OBS or Nvidia Share running, these work too. OBS + screen recording: The old-school approach. Capture your entire screen, edit afterward. Slower, uses more resources, creates huge files. But hey, it works on any mod and any server. AdvancedScreenshots: Totally different tool - it's for high-resolution screenshots, not video or replays. People sometimes confuse it with ReplayMod. Honestly, there aren't many direct competitors because ReplayMod does something pretty unique: zero-friction recording with pro-level replay tools. Most alternatives are either simpler (just camera control) or more resource-intensive (full-screen recording). Ready to try ReplayMod? Grab the source, read the full documentation, or open an issue on GitHub. Star the repo if you find it useful. It helps the maintainers and surfaces the project for other Minecraft players. Visit ReplayMod/ReplayMod on GitHub ↗ --- ### MockBukkit: Testing Bukkit Plugins Without Breaking Your Setup URL: https://minecraft.how/blog/post/mockbukkit-bukkit-plugin-testing Published: 2026-04-24 Author: ice GitHub · Minecraft community project MockBukkit (MockBukkit/MockBukkit) MockBukkit is a mocking framework for Bukkit/PaperMC to allow the easy unit testing of Bukkit plugins. Star on GitHub ↗ If you've ever tried writing unit tests for a Bukkit plugin, you know the pain: you need a running CraftBukkit server, mocked players, worlds, and inventories, and half the Bukkit API refuses to cooperate outside a live instance. MockBukkit exists to solve exactly this problem. It's a Java framework that lets you test your Bukkit plugins in isolation, controlling every detail of the server state, without spinning up an actual Minecraft server for every test run. Why Testing Bukkit Plugins is Harder Than It Looks Bukkit plugins are tied deeply to the CraftBukkit runtime. Normally, if you want to test whether your plugin correctly damages a player's armor when they're hit, you'd need: A running Bukkit server An actual player connected to that server A way to simulate damage events Access to that player's inventory to verify the armor durability changed That's a lot of infrastructure for a single test. And if you're running a continuous integration pipeline (CI), spinning up a Minecraft server for every test becomes expensive and slow. Most plugin developers skip proper unit testing entirely and just rely on manual testing in-game, which... yeah, that's not ideal. MockBukkit sidesteps this entirely. What MockBukkit Actually Does MockBukkit provides a complete mock implementation of the CraftBukkit API that you can completely control from your test code. Instead of needing a running server, you create fake players, worlds, and events all within your unit tests. It's built on Mockito under the hood. That means it integrates with standard Java testing frameworks like JUnit. The framework supports recent Minecraft versions (the latest release targets 1.21), and it's published to Maven Central, so adding it to your project is straightforward. With 725 stars on GitHub and active maintenance, it's well-established in the plugin developer community. Core capabilities include mock plugins, mock players, mock worlds, and mock events - everything you need to test business logic without a server. Getting Started with MockBukkit Adding MockBukkit to Your Project MockBukkit is available via Maven Central, so setup depends on your build tool. For Gradle: gradledependencies { testImplementation "org.mockbukkit.mockbukkit:mockbukkit-v1.21:1.0.0" } For Maven: xml org.mockbukkit.mockbukkit mockbukkit-v1.21 1.0.0 test Make sure you're using the version that matches your target Minecraft version (the project maintains separate artifacts for different server versions). Your First Test Once added, you can start writing tests immediately. MockBukkit gives you a mock server instance that you can configure: javaimport static org.mockbukkit.mockbukkit.MockBukkit.*; class MyPluginTest { private MockBukkit server; private MyPlugin plugin; @Before void setUp() { server = mock(); plugin = loadPlugin(MyPlugin.class); } @Test void testPlayerDamageTakesArmor() { Player player = server.addPlayer(); player.getInventory().setArmorContents(new ItemStack[]{...}); // Trigger your logic plugin.damagePlayer(player, 10); // Assert the armor was damaged assertTrue(player.getInventory().getArmorContents()[0].getDurability() > 0); } } That's the basic pattern: create a mock server, load your plugin, create mock players and worlds, trigger your logic, then assert the results. Key Testing Features: What You Can Mock MockBukkit's strength is its coverage of the Bukkit API. Here's what you get out of the box: Mock Players: Create players on demand, configure their locations, inventory, permissions, and health. Simulate events like damage, death, or movement. Mock Worlds: Create multiple worlds, spawn entities, place blocks - everything except the actual rendering. This is useful if your plugin has world-specific logic or checks the block type at a location. Mock Events: Trigger Bukkit events from your test code. If your plugin listens for PlayerDamageEvent, you can fire one and verify the plugin responds correctly. This is where the real power comes in. Mock Plugins: You can load your plugin into the mock server and verify it registers correctly, loads configuration files, and hooks into events as expected. The framework handles the boring parts so you focus on testing your business logic. And if you need something that's not mocked yet, you can fall back to partial mocking or create custom test doubles. When MockBukkit Makes Sense (And When It Doesn't) MockBukkit is perfect for testing the core logic of your plugin: damage calculations, inventory manipulation, permission checks, custom command handling. If your plugin's main concern is "when a player does X, does Y happen?", MockBukkit is your answer. GitHub project card for MockBukkit/MockBukkit But there are limits. If you're testing complex interactions with the Minecraft world - like path-finding logic, lighting calculations, or collision detection - you'll hit MockBukkit's boundaries fast. For those edge cases, you'd need integration tests with an actual server. Also, MockBukkit tests only your plugin code. It doesn't test whether Bukkit itself works (spoiler: it does). So don't use it to debug whether Bukkit's PlayerDamageEvent fires correctly - it will. Use it to verify your plugin listens to that event correctly. One more caveat: if your plugin depends heavily on external libraries that aren't easily mockable, you might spend more time wrangling test setup than actually testing. Keep that in mind when deciding test coverage. Common Pitfalls and How to Avoid Them Most new users hit one of three issues: Skipped tests: If you see tests being skipped with UnimplementedOperationException, it means you're calling a Bukkit method that MockBukkit hasn't mocked yet. Check the project's issue tracker - it's usually documented. As a workaround, you can sometimes use Mockito's spies to partially mock the behavior. Timing issues: Bukkit uses scheduled tasks and async operations. In tests, these run synchronously by default, but you need to be explicit about what's scheduled vs. what runs immediately. The MockBukkit docs explain this clearly. Configuration loading: If your plugin loads YAML config files, make sure your test setup creates those files in the right location. The mock server has a plugin folder, but you need to populate it. MockBukkit in the Broader Testing Landscape MockBukkit isn't the only tool for testing Bukkit plugins. Other options exist, though MockBukkit is the most mature and actively maintained. Some developers skip dedicated testing frameworks entirely and just run their plugin on a local CraftBukkit instance, then manually test in-game. But this works for small plugins, but it doesn't scale and makes continuous integration much harder. If you're serious about plugin quality, automated tests are worth the setup investment. Others use Spigot's testing utilities directly, but those are barebones compared to MockBukkit. MockBukkit abstracts away a lot of boilerplate. If you're building a plugin, you should be testing it. And if you're testing it, MockBukkit saves you hours of server setup and debugging. Practical Next Steps Start small: pick one piece of your plugin's logic - maybe a custom command handler or a damage formula - and write a test for it using MockBukkit. Get familiar with how the mock server works. From there, expand your test coverage incrementally. The project's GitHub repository has examples and a surprisingly helpful Discord server if you get stuck. The maintainers are responsive, and the community is welcoming to newcomers. If you're running a Bukkit server, you might also find tools like our Server Properties Generator helpful for managing your server configuration - the same discipline that applies to testing also applies to keeping your server configuration clean and documented. And if you're looking up specific block behaviors for your plugin logic, Minecraft Block Search can save you a trip to the wiki. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### How to Use Iris: The Open-Source Minecraft Shaders Mod URL: https://minecraft.how/blog/post/iris-shaders-minecraft-mod Published: 2026-04-24 Author: ice IrisShaders/Iris A modern shaders mod for Minecraft compatible with existing OptiFine shader packs ⭐ 3,715 stars.0 You want beautiful shaders in Minecraft without the performance hit or compatibility nightmares. Iris is an open-source shaders mod that loads OptiFine-compatible shader packs with actual speed, fewer mod conflicts, and development transparency. What Iris Does Iris intercepts Minecraft's rendering pipeline and applies shader effects that wouldn't be possible with vanilla graphics. Think dramatic water reflections, realistic lighting, atmospheric effects, volumetric clouds. It's the visual upgrade layer that turns a flat-lit world into something cinematic. The key difference from building a custom shader yourself is that Iris uses OptiFine's established shader format. A mod's been designed to run almost all existing OptiFine packs without modification. So if you've got a favorite shader you've been wanting to try, you probably don't need to hunt for a "port" of it. And it actually runs. Paired with Sodium (a rendering optimization mod), Iris consistently delivers the visual fidelity you want without tanking your frame rate. That's the whole point. Why Switch from OptiFine? OptiFine's been the standard since forever, but it has real problems. It's closed-source. That means compatibility issues get fixed on Mojang's timeline instead of the community's. The mod's notorious for breaking other mods you might want to use together, especially performance-focused ones. And if something doesn't work with your shader pack of choice, well, good luck. Iris solves this by being open-source (LGPL-3.0). The maintainers can fix bugs quickly, the community can contribute, and there's no mystery about what's happening under the hood. It plays nicely with other mods because it's not trying to reinvent the entire rendering system. It's also compatible with Sodium, whereas OptiFine and Sodium actively conflict with each other. Performance is measurable better in most setups. I'm not going to claim Iris is a magic bullet, but running the same shader pack on Iris+Sodium versus OptiFine alone shows a real difference on mid-range hardware. You're looking at better frame rates without sacrificing the visual quality you came for. How to Install Iris You'll need Minecraft 26.1.2 (the latest Java release) and a mod loader. Iris works with Fabric, which is the recommended path. GitHub project card for IrisShaders/Iris First, grab the Fabric installer from the official site and run it. It's a straightforward executable that sets up Minecraft to load mods. Next, download the Iris mod file (the latest stable version is 1.7.3+1.21) from either the official Iris website or from Modrinth. Drop the.jar file into your.minecraft/mods folder. bash# On Linux/Mac, mods folder path: ~/.minecraft/mods/ # On Windows: C:\Users\YourUsername\AppData\Roaming\.minecraft\mods\ You'll also want to install Sodium while you're at it. Download the Fabric version and add it to the same mods folder. Sodium + Iris is the recommended pair. Launch Minecraft with the Fabric profile and Iris should load automatically. No config needed out of the box. Finding and Installing Shader Packs Shaders live on Modrinth or the Iris website. Browse around and pick one that appeals to you. Most work immediately with Iris. Download the.zip file and drop it into your shaderpacks folder. bash# Shaderpacks folder:.minecraft/shaderpacks/ In-game, open Video Settings and select Shaders. Pick your pack from the list and confirm. That's it. Your world should look completely different within seconds. Key Features That Matter Realistic water is the first thing you notice. Reflections actually track the sky and environment. Wave motion feels natural instead of tiled. If you spend time building near water or exploring ocean biomes, this alone justifies the install. Who? What? Where?, Pass the Pigs, Minecraft, Poker Lighting overhauls are the second big deal. Directional shadows from the sun, dynamic lighting from torches and lava, proper ambient occlusion in caves. Spaces feel three-dimensional instead of flat. Your base actually looks like it's lit by something rather than uniformly painted with color. Atmospheric effects add depth. Fog behaves realistically. Rain and snow have visual weight. The sky changes throughout day/night cycles with gradient colors that actually look good. If you're into building or screenshot creation, you'll spend hours just watching the light change. Transparency handling got special attention. Glass looks transparent instead of solid. Water depth is visible. Foliage doesn't sort weirdly or pop in when you move. These are small things, but they stack up and make the world feel less janky. Optional shader-specific features let you tweak things without diving into code. Toggles for bloom intensity, shadow distance, cloud style. Most shader packs include a settings menu accessible from Video Settings. Tips and Common Gotchas Not every shader pack works perfectly. The Iris developers maintain a list of known incompatible packs on GitHub, so check that if something doesn't load or looks broken. Most packs are fine, but expect maybe 5-10% that have issues. Your GPU matters. Shaders are computationally expensive. If you're running integrated graphics or a laptop from 2018, don't expect 60fps on max settings. Iris includes lite shader packs specifically designed for lower-end hardware, so you've got options depending on what you've got. Performance scaling is real. Iris lets you adjust render distance, shadow quality, and other parameters independently of the shader itself. Start conservative and dial things up until your frame rate drops. Finding the sweet spot takes two minutes of tweaking. Mod compatibility is way better than OptiFine, but not perfect. Some mods that heavily customize rendering might conflict. If you're running a massive modpack with 100+ mods, test it in a creative world before committing your main world. Nether and End biomes look stunning with shaders. If you're planning ambitious builds in the nether, set up your infrastructure (like a nether portal system) before installing shaders so you can see how the lighting affects your design choices. Visual customization extends beyond shaders too. Custom skins become way more detailed under good shader packs, especially ones with proper skin-texture rendering. If you care about your appearance in multiplayer, quality skins shine more with Iris installed. Alternatives Worth Mentioning Canvas is another open-source shaders mod that's gained attention. It uses a different shader format optimized for mod compatibility, so it doesn't support the existing OptiFine packs directly. If you want to experiment with Canvas-exclusive shaders, it's worth a try. But you can't just swap your OptiFine pack over. Optifine still exists and still works. If you want maximum compatibility with ancient modpacks or have a specific shader that only runs on OptiFine, that's your option. Just accept the performance cost and mod compatibility headaches that come with it. Vanilla Minecraft with a resource pack isn't competition. It's a completely different experience. Shaders fundamentally change how light and shadow work. No resource pack gets you that. Should You Actually Install It? If you want your Minecraft world to look dramatically better and your hardware can handle it, Iris is the obvious choice. The install process takes five minutes. If a shader pack doesn't work out, you delete it and try another one. Nothing's permanent. If you're playing vanilla survival and don't care about visuals, skip it. Iris adds weight to your render pipeline, and you don't gain anything from running empty shader packs. If you're already happy with OptiFine and don't want to mess with your setup, that's fine too. But if you've hit performance walls or wish your mod compatibility was better, Iris is purpose-built for exactly your problem.IrisShaders/Iris - LGPL-3.0, ★3715 Ready to try Iris? Grab the source, read the full documentation, or open an issue on GitHub. Star the repo if you find it useful. It helps the maintainers and surfaces the project for other Minecraft players. Visit IrisShaders/Iris on GitHub ↗ --- ### XSeries: The Plugin Library Solving Minecraft Version Hell URL: https://minecraft.how/blog/post/xseries-minecraft-plugin-library Published: 2026-04-24 Author: ice CryptoMorin/XSeries Library for cross-version Minecraft Bukkit support and various efficient API methods. If you've ever built a Minecraft plugin that needs to work across multiple server versions, you know the pain. One API change between patches and everything breaks. XSeries fixes this by providing a unified library that abstracts version differences so your plugin code stays clean from 1.13 through 1.21. What XSeries Actually Does XSeries is a Java library designed primarily for Bukkit plugin developers. Its core job: let you write plugin code once and have it work on any server version without version-specific workarounds scattered throughout your codebase. Rather than tracking down which Minecraft version changed how items work, or whether a specific API call exists in 1.19 but not 1.18, you call XSeries methods. The library handles the complexity internally. It's built around the idea that plugin developers shouldn't need to memorize 15 different API variations. Beyond cross-version support, XSeries includes utilities for particle effects, skulls, note block music, damage cause detection, and various performance-oriented methods. Some utilities are completely unrelated to version compatibility - they're just efficient ways to do common plugin tasks. Why Plugin Developers Actually Use It Version fragmentation is real in the Minecraft ecosystem. Servers run everything from 1.8 (somehow still alive in 2026) through the latest release. If you want your plugin usable on most servers, you either write nightmarish conditional code or embrace a compatibility library. Writing version checks manually looks like this: lots of try-catch blocks for non-existent classes, reflection hacks, and comments like "this only works on 1.20+" scattered everywhere. It's error-prone and makes your code harder to maintain. XSeries eliminates that mess. The library also emphasizes performance. Its documentation explicitly warns against using methods wrong - there are efficient ways and inefficient ways to do the same task. Actually reading the JavaDocs (the library docs are thorough) helps you write faster plugins. Getting Started: Installation and Setup If you're using Maven, add the dependency to your project's pom.xml: xml com.github.cryptomorin XSeries 13.6.0 Gradle users add this to your build.gradle.kts: kotlinrepositories { mavenCentral() } dependencies { implementation("com.github.cryptomorin:XSeries:13.6.0") } One critical thing - don't skip this: add api-version: "1.13" to your plugin.yml. This tells the server you're aware of the 1.13+ API. The library still works on older servers even with this flag set. More important: you need to shade the library into your plugin JAR. Shading means bundling XSeries directly into your final JAR so there's no version conflict if another plugin on the same server also uses XSeries. The README covers this setup, and it's worth doing right the first time rather than debugging classpath issues later. Core Features Worth Using XSeries has a lot of utilities. These are the ones that actually matter for most plugin developers: Items and Materials - Instead of checking if a material exists with version-specific names (it's "COBBLESTONE" on older versions, different handling on newer ones), you use XMaterial. Pass in any name variation and it returns the correct item for that server version. Want to give a player a stick? XMaterial.STICK.parseItem() works everywhere. Blocks - Similar approach for blocks. Get block properties, check block types, handle slab logic (which changed how Minecraft stores data in 1.13) without writing multiple code paths. Particles and Effects - Particle names changed between versions. Playing a critical hit particle or explosion effect shouldn't require you to code around those differences. XParticle handles it. ParticleDisplay adds preset particle effects you can chain together. Skulls - Creating custom player skulls with specific textures used to be version-dependent complexity. XSkull simplifies this to a few method calls, working across versions that store skull data completely differently. Damage Causes - Want to know if a player died to fall damage, fire, PvP, or something else? XDamage normalizes this across versions where damage type handling evolved. Gotchas and Common Mistakes Forgetting to shade the library is the biggest one. Your plugin will work fine during testing on your single server instance, then fail mysteriously on a live server running multiple plugins. Shade it. Not setting api-version in plugin.yml means XBase/XModule classes won't work (they depend on the 1.13+ API). You won't get an obvious error - things just silently fail. Set it to 1.13. Reading the JavaDocs matters more here than most libraries. Method names are descriptive, but their efficiency trade-offs aren't always obvious. You might write working code that's inefficient because you used the wrong variant of a method. The library docs explicitly warn about this, which is honestly refreshing - too many projects document what things do but not how to use them well. One more thing: the maintainer recommends dropping support for anything below 1.12. That's sensible. Supporting 1.8 in 2026 adds complexity and blocks modernizing your codebase. At some point, compatibility has diminishing returns. Ecosystem and What This Means for Servers If you run a Minecraft server with custom plugins, you're already benefiting from XSeries even if you don't know it. Many popular plugins use it under the hood. When you browse a Minecraft server list, those servers running modern features while claiming compatibility with multiple versions? Developers probably used tools like XSeries to make that happen. For plugin developers specifically: this library is a time-saver. You're not going to regret including it. The MIT license means you can use it commercially if you want, you just need to shade it (which you should do anyway). Quick Comparison Some developers write custom abstraction layers for their own version compatibility needs. That's fine if you're building a massive plugin ecosystem, but for most one-off plugins, you're reinventing what XSeries already does well. Bukkit's API itself has gotten better at version compatibility over the years, but there are still gaps. XSeries fills those gaps and provides convenient utility methods on top. Using a battle-tested library beats rolling your own. The project (519 GitHub stars, actively maintained with recent 1.21.11 support) has proven staying power. It's not going anywhere, and the maintainer responds to issues and PRs. That matters when you're pulling a dependency into your production build. CryptoMorin/XSeries - MIT, ★519 Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### Minegrub-Theme: Bring Minecraft to Your Boot Screen in 2026 URL: https://minecraft.how/blog/post/minegrub-theme-minecraft-boot-screen Published: 2026-04-24 Author: ice "A Grub Theme in the style of Minecraft!" Lxtharia/minegrub-theme · github.com ⭐ 4,449 stars Ever boot your Linux machine and wish the GRUB menu looked half as cool as Minecraft? Minegrub-theme trades the standard black-and-white boot screen for a full Minecraft redesign with blocks, the iconic Minecraft font, and customizable backgrounds. It's purely cosmetic, but if you're a Minecraft fan running Linux, it's a fun way to add personality to your system. What This Project Does If you're used to staring at a plain GRUB bootloader menu for the 10 seconds it takes your system to start, minegrub-theme might make you smile. It's a complete visual reskin that transforms your boot screen into something that looks straight out of Minecraft. The menu shows up with the classic Minecraft colors - those blocky aesthetics, the familiar fonts - and even displays helpful status information with a Minecraft flavor. The theme includes startup splash text (customizable, more on that later), a Minecraft-style background, and buttons that actually look decent instead of the default gray rectangles. And here's the thing - it works on any Linux system using GRUB2, which covers most major distributions. One quick note: you'll need root access to install it, and your system needs to be using GRUB2 specifically, not the older GRUB. If you're not sure which you've, you can run grub-mkconfig -V to check. The project has over 4,400 stars on GitHub, which tells you this isn't some abandoned side project. It's actively maintained and there's a real community around it. Why You'd Use It Look, this is purely cosmetic. It doesn't speed up your boot, doesn't add features to GRUB, and won't help you debug boot issues. But if you're someone who loves Minecraft - whether that's testing server tools with a Votifier tester, browsing quality community servers, or just passionate about the game - extending that love to your entire system makes sense. Some people keep Minecraft running in the background while they tinker. Others have custom Minecraft desktop backgrounds. This just takes it further. There's something nice about the few seconds before your login screen appears becoming a little less utilitarian. Plus, it's a conversation starter. Friends see your boot screen and immediately get what you're into. How to Install The project provides both a manual installation path and a script that does most of the work for you. Let's start with the script since it's simpler. First, clone the repository: bashgit clone https://github.com/Lxtharia/minegrub-theme.git cd minegrub-theme Then run the installation script with sudo: bashsudo./install_theme.sh The script will walk you through the setup, let you choose a background if you want, and handle the system configuration automatically. It's the path I'd recommend unless you like tinkering manually. If you prefer doing things manually, here's what happens under the hood. Copy the minegrub folder to your GRUB themes directory: bashsudo cp -ruv./minegrub /boot/grub/themes/ Then edit your GRUB config file at /etc/default/grub and find or add this line: bashGRUB_THEME=/boot/grub/themes/minegrub/theme.txt After saving, rebuild your GRUB configuration: bashsudo grub-mkconfig -o /boot/grub/grub.cfg Reboot, and you should see the Minecraft theme on your next startup. One important caveat: some systems use /boot/grub2 instead of /boot/grub. Check your boot directory structure with ls /boot/ before running commands. Customization Options The default theme looks great, but minegrub-theme gets more interesting once you customize it. Background images are the easiest change. The project includes a folder called background_options/ with several images you can choose from - classic Minecraft biomes, that sort of thing. You can either use the included choose_background.sh script to pick one, or drop your own PNG into the minegrub/ folder and name it background.png. The splash text (that message at the bottom of the boot screen) is also configurable. You can set it to show random text every boot, or pick something static. Some people set it to their system name, others go for something funny. There's also a service file that can auto-update things like your background or display package counts at boot time. Want a different background every time you boot? You can add multiple images to minegrub/backgrounds/ and use the update service to randomize which one appears. Pretty slick for keeping things fresh. Tips, Pitfalls, and Gotchas Boot option counts trip up a surprising number of people. GRUB lets you configure how many boot options show up (kernel versions, recovery mode, etc.). If you've way more boot options than the theme expects, the menu buttons can overlap or look weird. The configuration file has a setting called boot-options-count that you'll need to adjust to match your actual setup. Another common surprise: the theme uses specific Minecraft fonts. If those fonts aren't installed on your system, it'll fall back to something else and won't look quite right. Most modern Linux distros handle this fine, but it's worth checking if something looks off. The /boot/grub2 versus /boot/grub thing I mentioned earlier catches people too. One more thing - if you apply updates or reinstall GRUB through a package manager, it might undo your theme. It's not permanent, you just need to re-run grub-mkconfig again. Not a huge deal, just something to keep in mind. Other Minecraft Linux Themes If you love the Minecraft aesthetic on Linux, minegrub-theme isn't your only option - though it's probably the most polished. There's a companion project called minegrub-world-sel-theme that styles your world selection screen the same way. If you dual-boot and need to choose which OS to load, both screens can match. There's also a project that combines both themes into what they call "double-minegrub-menu" so everything looks cohesive. Beyond the GRUB ecosystem, the Minecraft Linux community has created themes for other parts of your system. There's a Minecraft SDDM theme (that's your login screen), a Plymouth theme (the splash screen during boot), and even a KDE Splash screen that shows while worlds load. Each one scratches a different itch depending on what parts of your system you want to Minecraftify. The ecosystem's honestly pretty cool. You could theoretically theme your entire boot and login experience to feel like Minecraft if you really wanted to. Some people do. Ready to try minegrub-theme? Grab the source, read the full documentation, or open an issue on GitHub. Star the repo if you find it useful. It helps the maintainers and surfaces the project for other Minecraft players. Visit Lxtharia/minegrub-theme on GitHub ↗ --- ### Velocity: The Modern Minecraft Server Proxy Explained URL: https://minecraft.how/blog/post/velocity-minecraft-proxy-guide Published: 2026-04-24 Author: ice "The modern, next-generation Minecraft server proxy." PaperMC/Velocity · github.com ⭐ 2,162 stars.0 If you're running multiple Minecraft servers and want players to jump between them without relogging, you need something to route them. That's what Velocity does - it's a modern server proxy that handles thousands of players, shuffling them between different backends while keeping everything running smoothly. What Velocity Actually Does A server proxy sits between players and your actual game servers. Instead of connecting directly to individual servers, players connect to one address, and the proxy decides where to send them. Velocity rebuilt this concept from the ground up for modern Minecraft. It's not a collection of patches piled on top of something old - it's architected specifically to be fast, maintainable, and flexible. The codebase is clean (something developers actually enjoy reading), and the API is powerful enough that plugin creators can do sophisticated things without fighting the system. The project has three core goals. A codebase that's genuinely pleasant to maintain. Raw speed that handles thousands of concurrent players. And a plugin API that avoids mistakes from earlier proxies. Why You'd Actually Want This Server networks are everywhere in Minecraft. Someone runs a survival world, a creative realm, a PvP arena, and a lobby - all separate servers, all needing to talk to each other. Without a proxy, players log out of one and back into another, breaking the experience entirely. With Velocity, players stay connected to one address. The proxy invisibly shuffles them between backends. When someone moves from the lobby to survival, their session carries over. No disconnection message. No re-authentication. At scale, this becomes critical. You might run Paper servers alongside modded ones. Velocity supports Paper, Sponge, Fabric, and Forge implementations in the same network. Other server software may work, but these four get first-class support. Mix and match without architectural headaches. And the proxy lets you customize routing. New players land on a lobby. Veterans skip straight to survival. PvP tournaments route to a dedicated minigame server. The proxy controls everything without touching server configs. Getting Started with Velocity You need Java 11 or later. Grab the latest build from the PaperMC downloads page - they provide pre-built JARs, so no compiling required. bashjava -jar velocity-*.jar Run that once. Velocity generates a config file and exits. Open velocity.toml and start configuring your network. toml[servers] lobby = "localhost:25565" survival = "localhost:25566" minigames = "localhost:25567" [server-options] try-list = ["lobby"] This routes three backend servers through the proxy. New players land on the lobby first. Adjust based on your network structure, restart Velocity, and players can connect to your proxy address instead of individual servers. You can polish the server list entry using a Minecraft MOTD Creator to give your network a professional appearance in the client. Key Features That Actually Matter Instant server switching. Players move between servers without logging out. Session data carries over automatically. No tedious reconnect screens or authentication loops. Multi-implementation support. Paper, Sponge, Fabric, Forge - Velocity handles them all. Mix different server software in one network. This is surprisingly rare and genuinely useful for complex setups. Modern plugin API. Developers hook into connection events, chat, damage calculations, and more. The API is well-designed and avoids mistakes baked into older proxies. Proven performance. Built for thousands of players on actual networks handling real traffic. Not theoretical - demonstrated in production. The codebase prioritizes efficiency from the ground up. Authentication handling. The proxy manages login sequences, online/offline modes, and authentication servers. Players authenticate once, then the proxy routes them smoothly. Things That Trip People Up Most proxy problems come from misconfiguration, not the proxy itself. Your backend servers need to know a proxy is in front of them - configure them to expect and trust proxy connections, or they'll silently reject handoffs. Velocity needs dedicated resources. It's lighter than a game server, but it's still a Java application running 24/7. Don't run it on hardware that's already maxed out. I've seen setups where the proxy itself becomes the bottleneck simply because nobody allocated enough memory. Port forwarding matters. A lot. Your proxy gets the public-facing port, and backend servers live behind it on a private network. I've seen people accidentally expose backend servers to the internet - this defeats the entire purpose and opens serious security holes. When setting up domains for your network, configure DNS carefully. A free Minecraft DNS service can simplify management if you're not already using custom DNS. Velocity doesn't automatically sync player data between different server software. Plugin data on a Paper server won't appear on a Fabric server. You need a shared database or custom sync logic if you're mixing implementations and sharing inventory or progression. But this catches a lot of people off guard when they first try running mixed server types. Plugin version compatibility matters too. A plugin built for Velocity 3.x might not work on 4.x. Check compatibility before updating, especially if you're running many plugins. Alternatives Worth Knowing BungeeCord is the original server proxy, still widely deployed. It's battle-tested, proven, and the community knows how to troubleshoot it inside and out. Velocity is newer with a cleaner architecture, but if you need maximum stability and knowledge base, BungeeCord exists. Waterfall is a maintained fork of BungeeCord. It fixes some bugs and stays true to the original design. If you like BungeeCord's philosophy but want quality-of-life improvements, this is the middle ground. Choose Velocity if you're starting fresh and want modern design. The codebase is easier to understand, the API is more flexible, and performance is comparable. None of these are objectively wrong - they're just different philosophies. Your choice depends on whether you prioritize latest design (Velocity) or maximum compatibility and community knowledge (BungeeCord). Ready to try Velocity? Grab the source, read the full documentation, or open an issue on GitHub. Star the repo if you find it useful. It helps the maintainers and surfaces the project for other Minecraft players. Visit PaperMC/Velocity on GitHub ↗ --- ### MCSManager: How to Control Multiple Minecraft Servers URL: https://minecraft.how/blog/post/mcsmanager-minecraft-server-control Published: 2026-04-24 Author: ice MCSManager/MCSManager Quick deployment, distributed, multi-user, modern management panel for Minecraft and Steam game servers / 快速安装,分布式架构,多用户销售,现代化的 Minecraft 和 Steam 游戏服务器管理面板 ⭐ 4,685 starspache-2.0 Managing multiple Minecraft servers from different machines is a nightmare. MCSManager solves this by giving you a single web dashboard to deploy, monitor, and control all your servers at once. It's built for server admins who don't want to SSH into every box. What MCSManager Actually Does It's a web-based control panel for running Minecraft and Steam game servers. Instead of bouncing between three different machines, logging in separately to each one, and hoping you remember which server has which version, you get one unified dashboard. Built in TypeScript with 4685 GitHub stars, it's designed by people who clearly got tired of server management the hard way. The core idea is dead simple. You install MCSManager on a central machine (or virtual server), then point it at your other servers. It pulls in all the details: player counts, CPU usage, RAM, the whole picture. From there, you can start and stop servers, upload files, check logs, and manage permissions without ever touching SSH again. The project supports Windows, Linux, and Mac, so it doesn't care where your servers live. It also works with Steam game servers. Not just Minecraft. We're talking Palworld, Squad, Project Zomboid, Terraria. That's honestly pretty clever for someone mainly thinking about Minecraft admins. Why You'd Actually Use This You run more than one server, or you plan to. Maybe you've got a survival world, a creative space, and a minigames realm. Maybe you host for friends and don't want to manage everything manually. Or maybe (and this is the real use case) you're operating a small hosting business and need something that doesn't cost $500 a month. The permission system is where it gets interesting for actual team scenarios. You can lock down what each user can see and do. Server A is off-limits to new admins. Server B can be restarted but not stopped. That sort of granular control means you're not handing anyone the master keys. It's way better than "just SSH in and try not to break anything." Real-time monitoring is another reason people stick with it. You're not checking a server list tab every five minutes wondering if something crashed. The dashboard shows you at a glance which servers are running, how full they're, if CPU is spiking. Check the Minecraft server status checker for quick pulse checks on public servers, then hop back to MCSManager for your own infrastructure. One more thing: it's free and open source. Apache-2.0 licensed, meaning you can self-host without worrying about licensing fees or vendor lock-in. Some people get nervous about running free software for production, but MCSManager's been around long enough (and has enough GitHub activity) that it's genuinely viable for actual work. Setting It Up Installation depends on your OS. Linux users get the cleanest path. bashwget https://github.com/MCSManager/MCSManager/releases/download/v10.12.4/mcsmanager_linux_release.tar.gz tar -xzf mcsmanager_linux_release.tar.gz cd mcsmanager./start.sh That's... actually pretty much it. The script handles dependencies and starts the service. Windows users get a ZIP archive with similar simplicity. Mac works too, though the terminal route is more common. Point your browser at http://localhost:8080 (or whatever IP you configured) and you'll hit a login screen. Configuration lives in a JSON file. Nothing fancy. You set the dashboard port, the daemon ports (if you're running this on multiple machines), and some basic security stuff. Actually, wait - I should mention the daemon setup is where people sometimes stumble. The daemon is the piece that actually talks to your game servers. This web UI is just the interface. You can run them on the same machine or split them up. For small setups, same machine is fine. Features That Actually Work Well The application marketplace is worth mentioning because it cuts deployment time down to almost nothing. Instead of downloading a server JAR, creating a startup script, and hoping it works, MCSManager's marketplace lets you spin up Minecraft 26.1.2, Paper, Spigot, or whatever else is listed with basically two clicks. The system downloads the server, configures the basics, and leaves you a ready-to-go instance. It sounds small but saves real time when you're juggling multiple servers. Docker support is built in. If you're already running containers, MCSManager can manage them. Docker Hub image support means you can deploy any game server that has a container image. Custom Docker images work too, if you know what you're doing. The customizable dashboard is exactly what it sounds like. Drag cards around, show/hide stats, organize by server or by type. Nothing earth-shattering, but I appreciate that it exists. Most admin panels are locked down to one preset layout and you're stuck with it. File management is straightforward. Upload world files, edit server properties, download backups. Web interface makes it way nicer than (again) SSH and command line tools. You can also browse the server folder directly if you need to dig into specific files. Gotchas and Real-World Tips Performance depends on what you're actually running. If you're managing 50 servers, expect the dashboard to slow down a bit. For 5-10 servers? No problem. And this isn't a Netflix-scale platform. Network configuration can bite you. If your daemon and web UI are on different machines, you need to make sure they can actually reach each other. Firewalls are the silent killer. Open the right ports, test the connection, then move on. Forgetting this step means a dashboard that connects but shows every server as offline. Updates come fairly regularly. The latest release at v10.12.4 fixed a module import issue. Keep an eye on the GitHub releases if you're self-hosting, though updates are usually painless. Backup your config and databases first (obviously), but the process isn't painful. The project team does think about backwards compatibility. One more: make sure you're running a compatible Node.js version. The project requires Node 16.20.2 or newer. If you're on some ancient LTS version because it's "stable," you might need to upgrade. Check your version with node - version before you install. How MCSManager Compares If MCSManager doesn't click for you, there are other options. Pterodactyl Panel is the other big open-source choice - it's also free, very slick UI, but it's heavier. Pterodactyl requires Docker (honestly a pro if you're already containerizing everything, a hassle if you're not). It's also community-run at this point. Commercial hosting panels like Nitrado or GameServers have everything built in but cost money and lock you into their servers. For pure Minecraft, some people use Crafty Controller, which is simpler and lighter than MCSManager. Trade-off: it's single-machine focused. Want to manage five physical boxes? MCSManager does it, Crafty doesn't. If you're just running one server and don't need a fancy interface, honestly, you don't need any panel. SSH and a startup script work fine. But the moment you've got two servers or you're delegating to other admins, MCSManager saves enough time that it's worth the setup. Check out the Minecraft server list to see what other server operators are running. Lots of them manage infrastructure with tools like this. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### Hosting Bedrock Servers with Nukkit: The Java-Powered Alternative URL: https://minecraft.how/blog/post/nukkit-bedrock-server-minecraft Published: 2026-04-24 Author: ice GitHub · Minecraft community project Nukkit (CloudburstMC/Nukkit) Cloudburst Nukkit - Nuclear-Powered Minecraft: Bedrock Edition Server Software Star on GitHub ↗ ⭐ 1,343 stars.0 Running a Bedrock server used to mean wrestling with options. Most server software out there was designed with Java Edition in mind, and Bedrock players got whatever scraps were left over. Nukkit changes that by offering a purpose-built, Java-powered server platform that actually performs well and lets you customize things through plugins. If you're thinking about hosting a Bedrock server for friends or a small community, you've probably heard of Nukkit. It's not the only option, but it's gained serious traction among server admins who care about performance. With over 1,300 GitHub stars and active development, it's worth understanding what it does and whether it's right for your setup. What Nukkit Actually Does Nukkit is server software for Minecraft Bedrock Edition. That means it handles the backend of your multiplayer world - player connections, game logic, entity updates, all of it. Instead of using Microsoft's official servers (which require their hosting infrastructure), Nukkit lets you run your own server on your hardware. The project is written in Java, which is the same language Bukkit and Spigot use for Java Edition servers. This wasn't a random choice. Java gives Nukkit performance advantages over some alternatives because it's compiled and optimized differently than interpreted languages. You get faster tick rates, better player loading, fewer TPS dips when things get crazy. One thing that makes Nukkit appealing: it's designed with plugins in mind. So instead of hacking the server code itself (which would be a nightmare to maintain), you write plugins that hook into Nukkit's API. That's how the community extends functionality. Why Bedrock Servers Matter (And Why Nukkit) Here's the context: Bedrock Edition is the version of Minecraft that runs on phones, tablets, Nintendo Switch, Windows 10/11, and Xbox. It's the platform with the broadest reach, but it's historically had the worst multiplayer infrastructure for self-hosted servers. Before Nukkit and similar projects matured, you basically had two choices: use Realms (Microsoft's managed service), or use whatever open-source server software existed (which often felt abandoned). Nukkit filled that gap by providing something that actually works. Why would you want to run your own Bedrock server instead of using Realms? Cost is one reason - if you already have a server running elsewhere or have a spare machine, the marginal cost is basically zero. Control is another. You own the data, you set the rules, you decide when it shuts down. And community - you can host friends and family without paying per-month subscriptions. The performance angle matters too. When you're self-hosting, you can tune the server for your specific needs. Got a small world with five players? You can run Nukkit on modest hardware. Running a massive server with hundreds of plugins? You scale up your hardware instead of hitting some Realms tier limit. Setting Up Nukkit Getting Nukkit running is straightforward, especially if you're comfortable with the command line. First, grab the latest snapshot from the project's download page. You don't need to compile it yourself unless you're modifying the code. Once you've downloaded the JAR file, running it is as simple as: bashjava -jar nukkit-1.0-SNAPSHOT.jar On first run, Nukkit generates a default configuration and asks you to choose a language. Answer the prompts, and boom - you've got a functional server. That's genuinely impressive for the setup time. Want to use Docker instead? The project includes a Dockerfile: bashdocker build -t nukkit. docker run -it -p 19132:19132/udp -v nukkit-data:/data nukkit Or, if you're already using Docker Compose: bashdocker-compose up -d And for anything more complex - maybe you're deploying to Kubernetes - there are Helm charts included. You can validate them, dry-run them, or deploy directly: bashhelm install nukkit charts/nukkit The flexibility here's nice. You get simple (just run the JAR) all the way up to orchestrated cloud deployments. One thing to note: Bedrock Edition uses UDP port 19132 by default, not TCP. That matters if you're configuring firewalls or port forwarding. The Docker examples above already handle this correctly (notice the /udp suffix), but if you're setting up manually, that's a gotcha worth remembering. What Makes Nukkit Stand Out Performance is the headline. Nukkit handles player ticks and world updates efficiently. That means less lag when you've got active players or complex mechanics running. You'll see this in practice: mob pathfinding feels responsive, redstone circuits update quickly, and chunk loading doesn't cause stutters. The plugin system is probably the second biggest win. This API is well-documented on the project's wiki, and there are plugin repositories where community developers share their work. Need custom commands? A scoreboard system? Per-world permissions? Someone's probably written a plugin for it. Customization through configuration is solid too. You're not locked into hardcoded defaults. Server properties, world generation, difficulty - you can tune things without touching code. Maintenance is refreshingly hands-off. Nukkit handles updates cleanly. Your config and world files stay separate from the server JAR, so upgrading is just replacing one file. The community matters. This project has active forums, a Discord server, and a wiki. If something breaks, you've got places to ask questions. The maintainers aren't ghosts - they're still actively developing and responding to issues. Common Gotchas and Tips Don't expect 100% feature parity with Java Edition. Bedrock Edition itself works differently under the hood than Java, and Nukkit maps some mechanics differently. Redstone works, but some edge cases behave slightly different. Command syntax is Bedrock's syntax, not Java's. If you're migrating from a Java server, expect some friction. Plugins written for other platforms (like Bukkit or PocketMine) aren't automatically compatible with Nukkit. They need to be rewritten for Nukkit's API. So this is less of a problem than it sounds - there's a decent plugin ecosystem - but don't assume a random popular plugin will "just work." Performance isn't magic. If your hardware is weak, Nukkit runs on weak hardware, same as anything else. If you're trying to run a 10,000-player megaserver on a Raspberry Pi, Nukkit won't save you (neither would anything else, realistically). Before running a server in production, test it locally. Spin up a world with a few friends, break things, experiment with plugins. Better to discover issues on your laptop than when twenty people are trying to play. Finally - actually configure server properties carefully. If you're setting up anything beyond the basics, the Server Properties Generator tool can save you from syntax errors and missing settings. Then compare it against the Nukkit defaults to make sure you haven't overridden something important by accident. Alternatives Worth Knowing About Nukkit isn't the only option for Bedrock servers. PocketMine-MP is probably the most established alternative, with a longer history and slightly larger plugin ecosystem. It's written in PHP instead of Java, which has different performance tradeoffs. If you need maximum plugin compatibility with existing PocketMine plugins, that's your pick. There's also Dragonfly (written in Go) and a few others, but they're either newer or smaller. Nukkit lands in a sweet spot: it's mature enough to be stable, active enough that development happens, and performant enough for real-world use. If you're looking for community servers to join or just browsing what's out there, the minecraft.how server list is a good place to discover what people are running. The bottom line: if you want to run your own Bedrock server and you're not married to a specific ecosystem, Nukkit is a solid choice. It's well-maintained, performs well, and has enough flexibility to grow with your needs. Support the project Nukkit is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### Quest Design Made Simple: Inside the Quests Minecraft Plugin URL: https://minecraft.how/blog/post/quests-minecraft-plugin-guide Published: 2026-04-24 Author: ice PikaMug/Quests Easy-to-use, open-source plugin for the creation and execution of quests on Minecraft servers. If you run a Minecraft server, you've probably felt the friction. Players log in, they farm or build for a bit, then... they leave because there's no direction. Quests solves that problem by giving your server a built-in quest system that actually makes players want to come back. What This Project Does The Quests plugin turns your Minecraft server into something with a bit more structure. Players can accept quests from NPCs, complete objectives (mine diamonds, kill mobs, craft items, whatever you set up), and collect rewards. The beauty is that it's all configurable, so you're not locked into any particular quest style or difficulty. Think of it as giving your server a progression system without forcing you to rewrite everything from scratch. Why You'd Actually Use It New players especially benefit from quests. Instead of spawning in and wandering aimlessly, they get guided tasks. Mine wood. Kill 10 zombies. Craft a pickaxe. That progression feels like achievement, even if it's technically busywork. Your veteran players? They like it because it creates a secondary goal loop beyond whatever they're building. Quest menu interface in Minecraft showing available quest objectives and rewards If you're running a roleplay server, a semi-vanilla economy server, or anything with a narrative bent, this is genuinely useful. And it works on recent versions (tested on Minecraft 26.1 via Spigot), so you don't have to worry about plugin abandonment. The MIT license also means you can modify it to fit your server's vibe, which is nice if you want custom quest types or reward mechanics. How to Install Installation follows the standard Bukkit/Spigot pattern. Grab the latest release (version 5.2.9 is current) from CurseForge or Modrinth, drop the JAR into your plugins folder, and restart the server. Quest menu interface in Minecraft showing available quest objectives and rewards bash# Basic installation workflow # 1. Download from https://www.curseforge.com/minecraft/bukkit-plugins/quests/ # 2. Move JAR to your server's plugins directory cp Quests-5.2.9.jar /path/to/server/plugins/ # 3. Restart the server./stop.sh./start.sh # 4. Configure in the generated config files cd plugins/Quests/ # Edit quests.yml to define your quests On first load, it generates config files. That's where the actual work happens. You define quests in YAML, set objectives, rewards, and NPCs. It's not the most intuitive format if you've never edited Minecraft configs before, but the documentation (gitbook.io) walks you through it pretty clearly. Key Features That Actually Matter Multiple simultaneous quests are the biggest selling point here. Players aren't locked into one quest at a time. They can accept five different chains and work toward them in whatever order feels natural. That flexibility keeps engagement higher than rigid quest systems. Quest menu interface in Minecraft showing available quest objectives and rewards Customizable objectives let you define nearly any repeatable task as a quest goal. Mine a certain block type. Interact with a specific item. Reach a location. Kill a mob with equipment restrictions. Plant crops. Catch fish. You get the idea. The plugin has a ton of built-in objective types, and the API is documented if you want to code custom ones. Rewards scale too. Money (if you're using an economy plugin), items, XP, effects, commands... you can chain multiple reward types to one quest. One player might want items, another prefers currency. Both are satisfied. Quest stages are useful for building narratives. A single "main quest" can have five stages, each revealing a bit more story and unlocking the next objective. Players feel like they're progressing through something meaningful rather than just checking boxes. Gotchas and Tips YAML indentation breaks easily. If quests don't load, your config is probably malformed. Use a proper editor (VSCode, Sublime, anything that highlights YAML) rather than Notepad. Seriously. Quest menu interface in Minecraft showing available quest objectives and rewards NPC integration requires additional setup. By default, Quests uses Citizens (another popular plugin) for NPC quest-givers. If you're not running Citizens, you'll need to set up alternative command-based quest acceptance, which is less polished. Testing quest logic can be tedious. You'll want admin commands to skip objectives, reset player progress, and start quests manually while you're tuning rewards and difficulty. The plugin has these built in, but you might find yourself reloading the server a lot during setup. One thing that surprised me: quest rewards execute immediately. If you set a quest to give a player 1000 money but they're offline, they miss it. You might want economy rewards tied to a delayed command execution or a claims system instead. Alternatives Worth Knowing About If Quests feels like overkill, Bukkit has lighter options. EffectLib and similar plugins add simple achievement systems. For roleplay servers specifically, MythicMobs pairs well with quest logic (objectives that trigger mob spawns, loot mechanics, etc.). And if you want ultra-deep quest design with branching dialogue trees, that's where custom server code comes in. Quest menu interface in Minecraft showing available quest objectives and rewards But for pure ease of use? Quests is the obvious choice. It's been around long enough to be stable (209 GitHub stars, multiple download platforms), actively maintained, and doesn't require you to be a Java developer. Getting Started If you're considering this, start small. One quest chain with three objectives and one reward type. Get the flow working, teach your players how to accept quests, then build from there. When you're ready to expand your server's capabilities, also consider tools like the Minecraft Whitelist Creator to manage player access as your community grows. And if you're listing your server publicly, the Minecraft Server List is a good place to attract players who are specifically looking for servers with custom content like quests. The plugin crowdsources translations too, so if you're running a multilingual server, community translations are available through Crowdin. That's a nice touch for international servers. Quests won't change your server overnight, but it removes a friction point that a lot of admins overlook. Players need something to work toward, even if it's arbitrary. This plugin makes that trivially easy to provide. Support the project Quests is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### Download Esoni TV Minecraft Skin: Complete Guide URL: https://minecraft.how/blog/post/esoni-tv-skin-minecraft-download Published: 2026-04-24 Author: ice The Esoni TV skin is one of those Minecraft skins that makes an immediate impression. If you're here, you probably want to know how to actually get it installed and working on your Java Edition or Bedrock game. Good news: it's simpler than you might think, though there are a few tricks worth knowing about. What Is the Esoni TV Skin? Esoni TV is a community-created skin that's gained popularity across Minecraft servers and single-player worlds. The skin has a distinctive look that appeals to both casual players and content creators. Whether you're drawn to it for aesthetic reasons or you've seen it on a server and want to match the vibe, understanding what makes this skin stand out helps you decide if it's actually the one you want. The skin is hosted on several platforms, but the most reliable source is the official Minecraft skin repository. You can find Esoni_TV Minecraft Skin right here on our database, along with related variants if you're interested in similar styles. We also have Esonicgo and other related skins if you want options. Finding the Right Version Here's something that catches people off guard: there are multiple Esoni-related skins floating around. Seriously. nesonin, EddieSonic375, and Esoni are all separate skins with different designs. If you're specifically looking for Esoni TV, make sure you're grabbing the right one. Look at the preview image before you download anything. Confusing as this might seem, it actually works in your favor. You get to pick which version you like best instead of being stuck with one option. Some players prefer the TV variant, others like the base Esoni design better. Since you're here looking specifically for Esoni TV, you want the version with that exact naming. Installation on Java Edition Java Edition gives you the most straightforward installation process, and it's what most serious players use anyway. Download the skin file (it'll be a.png file) Launch Minecraft and click "Singleplayer" or "Multiplayer" Go to "Options" and select "Skin Customization" Click "Browse" and select your downloaded skin file Click "Done" and the skin applies immediately That's genuinely it. Java Edition handles skins locally, so once you load it in, you're good to go for any server or world you play on. The skin file stays on your computer, not on any server, so you'll always have it available. One thing worth noting: if you're playing on a server that doesn't allow custom skins, the server admin controls that setting. Your skin will show as Steve or Alex to other players, even though you see it in your own game. Frustrating, but that's server policy. Most big public servers allow skins though. Getting It Working on Bedrock Edition Bedrock Edition (Windows 10/11, console, mobile) handles skins differently, and honestly, it's a bit more restrictive. You can't just upload any PNG file like you can in Java. Your options are limited to official Minecraft Marketplace skins or skins shared through the Bedrock marketplace system. If Esoni TV is available on the official marketplace, grab it from there. If it's not in the official store, you're looking at third-party apps like Skinseed or Nova Launcher, which let you create and apply custom skins on Bedrock. But here's the thing: those apps add a layer of complexity and potential security risk if you're not careful about which ones you download. Stick with well-known, reviewed options if you go that route. Otherwise, Java Edition is genuinely the path of least resistance for custom skins in 2026. Beyond Just Installing Once you've got the Esoni TV skin running, you might want to explore other related options. Visit Browse All Minecraft Skins to see what else is out there. Plenty of players like mixing and matching different skin styles depending on their mood or the server they're playing on. If you're setting up a server and want to showcase your skin properly, consider creating an MOTD that reflects your personality. You can use our Minecraft MOTD Creator to design something that matches your aesthetic. And if you want to verify your server's up and running smoothly, the Minecraft Server Status Checker is invaluable. Keeping Your Skin Updated Minecraft skins are pretty stable. Once you install one, it's not like software that needs constant updates. But creators sometimes release improved versions of existing skins. If you ever want to check if there's a newer version of Esoni TV available, just revisit where you originally downloaded it and see if there's an updated timestamp or version number. Common Problems and Fixes Not seeing your skin in-game? First, restart your game client completely. But it sounds basic, but a fresh launch often clears up skin loading issues. Second, make sure the skin file is actually a PNG image and not corrupted. If you downloaded it and something went wrong during transfer, the file might be broken. Playing on a cracked or offline server? Some servers don't support custom skins at all and require skins to be from the official Minecraft account system. That's a server configuration thing, not a problem with your skin file. You'd need to either find a different server or ask the admin to enable skin support. On Bedrock and still can't find it? Double-check that the skin is actually available for your edition. Some skins are Java-exclusive, and some are marketplace-exclusive. You might need to pick a similar-looking alternative if Esoni TV isn't available where you're playing. Why Custom Skins Matter Yeah, it might seem trivial to spend time picking a skin. Your character's look is how other players recognize you across servers. Building a recognizable identity through your skin matters more in 2026 than it did years ago when everyone just played as Steve. Custom skins are how communities form, how content creators build their brand, and how you make a multiplayer server feel like your space. Whether you're roleplaying a specific character, representing a community, or just expressing your style, the Esoni TV skin is a solid choice. It's distinctive without being obnoxious, and it works across pretty much any server or world type you'll encounter. --- ### Protecting Your Minecraft Server: How MCAntiMalware Works URL: https://minecraft.how/blog/post/mcantimalware-minecraft-plugin-security Published: 2026-04-24 Author: ice "Anti-Malware for minecraft" OpticFusion1/MCAntiMalware · github.com .0 Running a Minecraft server means constantly watching for threats. Malicious plugins slip in through marketplace sites, suspicious downloads, or dependencies you didn't scrutinize carefully enough. MCAntiMalware is a standalone Java tool that scans your server's plugin directory and flags known malware before it runs, with a detection database covering over 1000 identified threats. What Actually Is a Malicious Minecraft Plugin? If you've never thought about this, here's the problem: a plugin can do literally anything the server operator can do. It runs with full access to your server's file system, memory, and player data. A compromised plugin can steal player credentials, install cryptominers, exfiltrate your world data, or plant backdoors for future attacks. The scary part? It often runs silently. Most malicious plugins look completely legitimate. They promise currency systems, better economy plugins, or game-balancing tools. By the time you realize something's wrong (players losing items, server CPU spiking, chunks disappearing), the damage is done. How MCAntiMalware Changes the Game MCAntiMalware takes a different approach than most server security tools. Instead of monitoring runtime behavior (which is notoriously hard to get right), it performs static analysis on your jar files before anything executes. You run the tool once, point it at your plugins directory, and it generates a detailed log of anything it recognizes as dangerous. The detection database has over 1000 known malicious plugins catalogued. That's not everything out there, obviously, but it covers the major families of server malware that circulate through community plugin repositories and sketchy download sites. One thing I appreciate: this is genuinely low-friction. It's not a plugin itself (which is important - you can't trust a plugin to scan plugins). It's a standalone Java application that runs independently of your server. Installation: Where Most People Get Confused The setup is straightforward once you understand what you're doing. First, make sure you have Java 17 or higher installed. Many server hosters still run older Java versions, so verify this first: bashjava -version Download the compiled jar from the GitHub releases page (version 15.16 is the latest stable as of April 2026), or build from source if you're into that sort of thing. For a dedicated server or local PC setup, the process is simple: Stop your Minecraft server so active plugins aren't in use Upload MCAntiMalware.jar to the same directory as your server jar Open a terminal and run: java -jar MCAntiMalware.jar Wait for the scan to complete Check the logs in the AntiMalware/logs folder If you're on a web panel hosting (like most people), the steps are slightly different. You'll either rename the MCAntiMalware jar to match your server jar name and restart (if your host allows custom jars), or download your plugins locally, scan them on your own PC, and upload clean versions back. The local scanning option looks like this: bashjava -jar MCAntiMalware.jar - scanDirectory. This tells it to scan everything in the current directory, which is useful when you've already downloaded suspicious plugins to your computer. Reading the Results After the scan finishes, you'll find detailed logs in the AntiMalware/logs folder. This is where you'll see exactly which plugins (if any) matched the malware database. GitHub project card for OpticFusion1/MCAntiMalware If something gets flagged, don't panic, but take it seriously. The maintainer (OpticFusion1) recommends zipping up the detected files and sending them along with the logs to the project's Discord community for analysis. Sometimes false positives happen, but if multiple tools flag the same plugin, it's probably compromised. Once you've confirmed a plugin is bad (or decided you don't need it anyway), delete the jar files, re-download clean versions from official sources if they exist, and restart your server. What Makes This Tool Useful for Real Server Operators The biggest advantage is automation and scale. Scanning 50+ plugins by hand is tedious and error-prone. MCAntiMalware does it in seconds and gives you a report. Plus, it's maintained by someone actively tracking new malware variants, so the detection database gets updates periodically (the latest release mentions improved checks and additional detections). Another strength: it's GPL-3.0 licensed and open source. You can inspect the code, fork it, contribute detections, or verify the tool itself isn't doing anything sketchy. And honestly, the fact that it runs independently of your server is a big win. It doesn't add overhead to your actual Minecraft process. You scan once (or periodically as preventative maintenance), get a report, act on it, and move on. A Few Things to Know Before You Start The detection database catches known threats, not zero-days. If a new malware variant emerges and hasn't been added to the 1000+ catalogue yet, this tool won't catch it. It's a safety net, not a complete security solution. Server operators should still be cautious about where they download plugins (use official sources, check community reviews, etc.). Scanning can take a while if you have hundreds of plugins, especially on slower systems. Give it time. Also, false positives are rare but possible. Some legitimate plugins might share code patterns or signatures with known malware families. Before nuking a plugin, verify the detection independently or ask the plugin's developer. If you're already setting up a new server, you might also want to use the Server Properties Generator to configure your server safely from the start, and the Nether Portal Calculator is handy for planning your world's navigation. Is There Anything Else Out There? There aren't many direct equivalents. PlugManX and similar tools exist for plugin inspection, but they're either outdated, focus on different problems, or require more manual work. Some server hosts provide their own malware scanning, but those are typically locked to their platform. MCAntiMalware's combination of an actively maintained detection database, ease of use, and independent operation makes it the practical choice for server owners who want a quick, automated scan without setting up a full security monitoring stack. The project has a solid community behind it. The Discord support channel is monitored by the developer, and there's a wiki with detailed command documentation if you need to dig deeper into advanced features.OpticFusion1/MCAntiMalware - GPL-3.0, ★310 Ready to try MCAntiMalware? Grab the source, read the full documentation, or open an issue on GitHub. Star the repo if you find it useful. It helps the maintainers and surfaces the project for other Minecraft players. Visit OpticFusion1/MCAntiMalware on GitHub ↗ --- ### CommandAPI: Building Custom Minecraft Server Commands URL: https://minecraft.how/blog/post/commandapi-minecraft-plugin-guide Published: 2026-04-24 Author: ice "A Bukkit/Spigot API for the command UI introduced in Minecraft 1.13" CommandAPI/CommandAPI · github.com If you run a Minecraft server and wanted to add special commands tailored to your world, you'd probably ask your plugin developer how they do it. The answer, increasingly, involves CommandAPI - a Java library that makes building Minecraft commands dramatically simpler than the traditional Bukkit/Spigot approach. Instead of wrestling with chat formatting and argument parsing, developers get access to the same command UI that Minecraft itself uses, complete with auto-complete, argument validation, and visual feedback. What CommandAPI Actually Does CommandAPI is a bridge between plugin developers and Minecraft's native command system. When Minecraft 1.13 arrived in 2018, it introduced a completely redesigned command syntax - one that Mojang uses internally for commands like /give, /teleport, and /execute. For eight years, most Bukkit and Spigot servers relied on simpler, older command systems that didn't feel like "real" Minecraft commands. CommandAPI flipped that. And it lets plugin developers use Minecraft's own command framework, giving server players the same polished command experience they expect from vanilla commands. This is genuinely impressive from a technical standpoint. The library handles the plumbing that would otherwise eat weeks of development time. Command registration, argument types, permission checks, suggestion handling - all of it's already there. Developers write the logic; CommandAPI handles everything else. Why Plugin Developers Reach for This Imagine you're building a custom spell plugin for your server. Players should be able to run /cast fireball @e[type=zombie] and have it actually work as expected. With vanilla Bukkit commands, you'd write hundreds of lines parsing user input, validating arguments, handling edge cases. With CommandAPI, you describe what arguments you want, and the library gives you typed, validated input ready to use - and the player gets auto-complete suggestions as they type. The second reason is consistency. Your custom commands feel like native Minecraft commands because they use the same underlying system. Players don't have to learn a completely different syntax for your plugin. Developers also appreciate that CommandAPI stays actively maintained. The project keeps pace with new Minecraft versions - the latest release (11.2.0) added support for Minecraft 26.1, rolling out fairly quickly after each major Minecraft update. One GitHub repository shows consistent commits and releases, not abandoned-project vibes. Getting Started: Installation and Setup If you're running a Spigot, Paper, or Bukkit-compatible server, installation is straightforward. First, grab the CommandAPI jar file from the releases page on GitHub. Download the version that matches your server type - Paper, Spigot, or one of the other supported platforms. Drop it into your plugins folder: bashcp CommandAPI-11.2.0-Spigot.jar /path/to/your/server/plugins/ Then restart your server. That's it. CommandAPI runs as a dependency that other plugins can hook into. If you're building a plugin that uses CommandAPI, you'll add it as a Maven dependency in your build file. The exact setup depends on whether you're using Gradle or Maven, but both are covered in the official documentation. One thing to note (and I'd mention this even though the docs do): CommandAPI requires Java 16 or newer for the latest versions. If you're still on Java 11, you'll need to either upgrade or use an older CommandAPI release. Most servers run modern Java by now, but it's worth checking if you hit any weird errors on startup. Key Features and Practical Examples CommandAPI ships with a ton of built-in argument types. You can use StringArgument, IntegerArgument, EntitySelector, Location, ItemStack, and dozens more. Each one automatically validates input and provides smart suggestions. GitHub project card for CommandAPI/CommandAPI Say you're making a teleport command: javanew CommandAPICommand("teleport").withArguments(new EntitySelectorArgument("player")).withArguments(new LocationArgument("destination")).executes((sender, args) -> { Player player = (Player) args.get("player"); Location destination = (Location) args.get("destination"); player.teleport(destination); }).register(); The plugin author writes maybe 10 lines. CommandAPI validates that the entity selector is valid, ensures the location exists, handles all the casting, and provides tab-complete suggestions for both arguments. Players type /teleport @s and they get a nice list of nearby coordinates. Permission integration is also built-in. You can chain permissions directly onto command definitions, and CommandAPI will silently fail execution for users who don't have permission rather than spamming errors. So it respects your server's permission structure smoothly. Another strong point: CommandAPI supports subcommands naturally. If you want a command structure like /admin player ban , you don't have to hack it together - the library has explicit subcommand support that feels clean and maintainable. Common Pitfalls and Pro Tips The biggest gotcha I've seen: CommandAPI commands registered during plugin bootstrap might fail silently if the plugin hasn't fully initialized. Always register commands in onEnable(), not the constructor. Second, if you're running multiple plugins that use CommandAPI, they share the same instance. This is actually great for memory usage, but it means one plugin can't accidentally trash the command system for others. It just works. One more thing - when you're testing locally, make sure you're actually reloading the server, not using /reload. Plugin reloads in Minecraft are notoriously unreliable and can leave ghost commands registered. A full server restart is safer. Custom argument types are possible but add complexity. Stick with the built-in types whenever you can. They cover 95% of use cases, and creating custom arguments requires implementing interfaces that'll make your code harder to maintain. Real-World Server Applications Custom MOTD systems often use command-based configuration. If you've ever wanted to set your server's MOTD through an in-game command instead of editing config files, a plugin using CommandAPI could make that smooth - operators would get tab-complete suggestions for colors and formatting options. Server DNS setup can also benefit. If you're managing custom DNS records for your Minecraft realm, a clean command interface powered by CommandAPI beats a clunky config file. Imagine running /dns add subdomain 192.168.1.100 with full validation and error messages. Some servers use this pattern for free DNS setups. Game servers use CommandAPI heavily for cosmetics, minigames, and administrative tools. Any plugin that needs to accept structured input from players is a good candidate. If CommandAPI Isn't for You CommandAPI is specifically for plugin developers. If you're just running a server, you don't install this directly - you benefit from it indirectly when you install plugins that use it. Admins don't need to know CommandAPI exists. If you're building a simple plugin with just a couple of commands, vanilla Bukkit commands aren't that painful. CommandAPI shines when you've many commands, complex arguments, or you care about user experience. For a plugin with three basic admin commands, the overhead isn't worth it. There's also Brigadier (the underlying Minecraft library), which some developers use directly for even more control. CommandAPI is a wrapper that makes Brigadier accessible without needing to understand all its internals. If you want that low-level control, you might skip CommandAPI and go straight to Brigadier - but that's a specialist move. Support the project CommandAPI is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### Waterfall Minecraft Proxy: Architecture, Features, and Its Legacy URL: https://minecraft.how/blog/post/waterfall-minecraft-proxy-archive Published: 2026-04-24 Author: ice "BungeeCord fork that aims to improve performance and stability." PaperMC/Waterfall · github.com Waterfall is a BungeeCord fork that's no longer maintained. Before you install it, you should know: the maintainers recommend switching to Velocity instead. That said, understanding Waterfall's design and why it existed teaches you something real about how large-scale Minecraft networks operate. If you're managing a proxy setup or developing server plugins, there's still value in knowing what Waterfall was trying to solve. What Waterfall Actually Was BungeeCord is the industry standard for connecting multiple Minecraft servers together. A single proxy server sits in front of your actual game servers and routes players between them. But BungeeCord's codebase wasn't designed for the scale some admins needed. Waterfall was a fork created by the PaperMC team (the same group behind Paper, the hugely popular server software) to build a proxy that didn't sacrifice performance for stability. The project focused on three things: Stability - code that's testable and doesn't lag under load Features - more functionality than canonical BungeeCord, added faster Scalability - handling thousands of concurrent players on modern hardware It sounds straightforward now, but at the time, BungeeCord's upstream maintainers weren't accepting contributions at the pace the community wanted. Waterfall existed because the fork was faster and more willing to experiment. Why the Fork Happened (And What It Says About Open Source) This is the interesting part. BungeeCord is open source, but it moves cautiously. The Waterfall maintainers basically said: "We can do this faster." They forked the project, kept merging upstream changes, but also added their own patches. This let them ship features and fixes while still tracking BungeeCord's core updates. Lush Cave MOC by Edge of Bricks It wasn't hostile or contentious. It was pragmatic. The Minecraft server admin community had real scaling problems, and the fork let them solve them without waiting for upstream consensus. This is how open source actually works sometimes - not everyone waiting for permission. How Waterfall Worked Under the Hood Like BungeeCord, Waterfall sat between players and your backend servers. When a player connects, Waterfall handles the login and decides which server to route them to. It manages server switches, chat, movement, and all the proxy logic. The difference was in the details: better performance under concurrent load, cleaner code structure, and a more active API. Lush Cave MOC by Edge of Bricks For plugin developers, Waterfall provided a clean JavaDocs API and Maven/Gradle artifacts. You could build plugins using: xml papermc https://repo.papermc.io/repository/maven-public/ io.github.waterfallmc waterfall-api 1.21-R0.3-SNAPSHOT provided Or with Gradle: groovyrepositories { maven { url 'https://repo.papermc.io/repository/maven-public/' } } dependencies { compileOnly 'io.github.waterfallmc:waterfall-api:1.21-R0.3-SNAPSHOT' } This API was one of Waterfall's selling points - it was actively documented and kept in sync with releases, unlike some proxy projects where the API docs lag behind the code. Installation and Compilation Running Waterfall required Java 8 or higher (pretty standard). You'd download the JAR file from papermc.io/downloads, drop it in a folder, and run it. Configuration was straightforward YAML. Lush Cave MOC by Edge of Bricks If you wanted to compile from source, Waterfall kept the build simple: bashgit clone https://github.com/PaperMC/Waterfall.git cd Waterfall./waterfall b That command handled pulling dependencies, running tests, and building the JAR. The compiled binary ended up in Waterfall-Proxy/bootstrap/target/. Clean. No unnecessary ceremony. What Made Waterfall Different From Plain BungeeCord Performance wasn't just marketing speak. Waterfall's patches focused on reducing proxy overhead. Some highlights: Lush Cave MOC by Edge of Bricks Better handling of concurrent player connections without thread pooling bottlenecks Smarter buffer management to reduce garbage collection pauses More efficient packet handling, especially for large player counts Testable code - the maintainers actually wrote unit tests, which BungeeCord didn't always prioritize If you were running a network with 5,000+ concurrent players, this mattered. If you had 200 players, you wouldn't notice much difference. The project also responded faster to security issues and compatibility updates when new Minecraft versions dropped. PaperMC had resources and motivation to move quickly. Why Waterfall Got Archived PaperMC didn't abandon Waterfall lightly. They created something better: Velocity. Velocity isn't a fork of BungeeCord - it's a completely new proxy written from scratch. It's designed for modern Java, has better performance, cleaner plugin APIs, and more active development. The Waterfall maintainers made an official announcement: use Velocity instead. They're maintaining it, improving it, and it's where the Minecraft server proxy ecosystem is heading. After a period where both projects existed, they decided to put Waterfall into archive mode. This wasn't a failure. It was the authors recognizing that the next generation of their own software was better, and being honest with the community about it. What This Means for Your Server Setup If you're building a new proxy network today, don't use Waterfall. Use Velocity. It's actively maintained, performs better, and you'll get bug fixes and security updates. If you're curious about how Minecraft proxies work at a deeper level, Waterfall's codebase and architecture still have educational value. Reading through the patches and understanding why they were needed teaches you real things about proxy performance. And if you're already running Waterfall on a stable network? Migration to Velocity is straightforward, and the PaperMC team provides guidance for it. The config formats are different but not drastically so. One practical tip: if you're customizing your server list with MOTD text (the message that shows when players see your server in the multiplayer menu), tools like our MOTD Creator can help you format that properly for your proxy. Waterfall and Velocity both respect standard MOTD formatting. Learning From Waterfall's Story Waterfall matters not because you should use it today, but because it represents something important in open source. A team recognized a real problem, forked a project, proved they could solve it better, and then gracefully transitioned to a successor when the next evolution became clear. It didn't die because it was bad. But it succeeded so well that its creators built something better to replace it, and had the integrity to tell people to use that instead. Plus, if you're building anything with Minecraft server infrastructure - perhaps searching for block behavior or trying to understand how complex game mechanics work - you'll find references to Waterfall in forums and documentation. Understanding its role in the ecosystem helps you understand the whole landscape. Need to figure out Minecraft blocks for your proxy or server? The Block Search tool is surprisingly useful when you're debugging proxy issues or understanding why certain blocks cause problems with packet routing.PaperMC/Waterfall - MIT, ★746 Support the project Waterfall is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### Minestom: Building Custom Minecraft Servers in Java URL: https://minecraft.how/blog/post/minestom-custom-minecraft-servers Published: 2026-04-24 Author: ice GitHub · Minecraft community project Minestom (Minestom/Minestom) 1.21.11 Lightweight Minecraft server Star on GitHub ↗ ⭐ 3,123 starspache-2.0 Want to build a Minecraft server that's completely yours, from the ground up? No plugins, no limitations, just pure Java code and your imagination. That's what Minestom offers - a lightweight framework for creating custom Minecraft server software without touching Mojang's proprietary code. If you've ever wanted to run a server with features that don't exist in vanilla or plugin ecosystems, this is worth your time. What Minestom Actually Is Minestom is a Java library, not a drop-in server replacement. You won't download it, click a launcher, and start playing. This is a developer tool. It means you write code, compile it, and run your own Minecraft server from that compiled binary. Think of it like getting the keys to build the server from scratch, but someone else handled the hard parts of the Minecraft protocol. The project supports Minecraft 1.21.11 and has been actively maintained with a strong community. It's open-source under the Apache-2.0 license and has attracted over 3,100 stars on GitHub, which for a niche developer library is solid validation. Here's the kicker: Minestom comes with nothing by default. No creative mode, no survival mechanics, no mob AI. You build everything you need. This sounds like a disadvantage until you realize it's actually the opposite - you don't waste time stripping away features you don't want. Why You'd Actually Use This Most Minecraft server admins reach for Bukkit, Spigot, or Paper. Those are great for running vanilla-ish servers with plugin ecosystems. But Minestom exists for a different reason: total control and extreme performance optimization. Custom game modes are the biggest use case. Imagine a pure PvP arena where you've written every single mechanic yourself - damage formulas, abilities, progression systems. Or a city-building server where players can shape the world in ways vanilla Minecraft doesn't allow. When you browse the Minecraft server list, you'll see wildly creative concepts that would be nearly impossible to implement with plugins alone. Minestom makes those projects feasible. Performance matters too. Because Minestom doesn't ship with unnecessary features, servers often run leaner. If you're hosting 500+ concurrent players, that efficiency compounds quickly. And you can optimize the specific features you actually use. Moderation and anti-cheat are another angle. You can write detection systems that understand your server's specific mechanics. Third-party anti-cheat plugins often false-flag custom gameplay. With Minestom, your code knows the truth about what's possible. There's also the learning angle. If you want to understand how Minecraft networking actually works, building a server with Minestom is the deep end of the pool. It's not recommended for your first Java project, but it's fantastic for leveling up. Getting Started With Minestom Installation is straightforward if you're comfortable with Java build tools. Minestom is published on Maven Central, so you add it as a dependency in your build configuration. Using Gradle (the modern approach), you'd add this to your build.gradle.kts: kotlinrepositories { mavenCentral() } dependencies { implementation("net.minestom:minestom:2026.04.13-1.21.11") } The version format tells you everything: 2026.04.13-1.21.11 means April 13, 2026 release for Minecraft 1.21.11. Check the official repository for the latest stable release. If you want to test bleeding-edge features before official releases, Minestom publishes snapshot builds to Sonatype's snapshot repository. Handy for staying ahead, but obviously less stable. From there, you write your main class, initialize a MinestomServer, create your game logic, and you're off. The official documentation and wiki will guide the actual implementation, but the barrier to entry is lower than you'd expect - mostly because the framework handles all the protocol complexity. What Minestom Handles For You The framework manages the Minecraft protocol entirely. Chat, chunk loading, entity synchronization, inventory updates - all abstracted into reasonable APIs. You're not packet-wrangling; you're building game logic. Chunk generation is flexible. You can use vanilla-style noise, custom algorithms, or load pre-built worlds. The project includes testing utilities too, so you can write automated tests for server behavior - something plugin developers often struggle with. Metadata and entity customization is granular. Ever wanted a custom entity with abilities plugins can't express? Minestom lets you define entity types, metadata, behaviors, and rendering all in code. For competitive game modes, this flexibility is game-changing. Cross-version compatibility is limited but intentional. Minestom targets a specific Minecraft version (currently 1.21.11). If you need older version support, you'd maintain a separate codebase. But this isn't laziness - it keeps the library lean and the protocol implementation clean. Common Gotchas and Limitations First reality check: this is a developer tool. Your players need a Minecraft client that matches your server's version. If you're running 1.21.11 and someone connects with 1.20.1, they can't join. There's no automatic version bridging. Second, client mods can be problematic. Minestom enforces protocol spec strictly, which is good for security but means Optifine, fabric mods, or anything that deviates gets rejected. This matters less for pure competitive servers but limits creative community building. Developing in Minestom requires Java knowledge. If your team is front-end focused or new to programming, the learning curve stings. Bukkit plugins feel more approachable because they're often copy-paste configurations. Minestom demands actual software design. Documentation is solid but narrower than Bukkit's ecosystem. If you get stuck, you're reading API docs and source code, not a thousand plugin examples. The community is growing and helpful, but it's smaller. Player base discovery is trickier too. Servers running Minestom don't appear in typical server lists the way vanilla or Spigot servers do. You'll need to handle your own marketing and community building - or list on platforms that accept custom servers. Comparing Your Options If you're torn between Minestom and alternatives, it depends on your goal. Paper (a Bukkit fork) is the go-to for admins wanting vanilla Minecraft with tweaks and plugins. It's plug-and-play, with a massive plugin ecosystem, but you're constrained by what plugins exist. Fabric is excellent if you're building client-side mods but terrible for servers. It's a client modding framework, not a server platform. Custom server platforms built on Minestom (like Hytale's architecture, conceptually) give you absolute freedom but demand the most developer effort. You're not just administrating - you're engineering. For most people running community servers, Paper works great. For large-scale custom games or educational projects, Minestom shines. Choose based on whether you need plugins (Paper) or unlimited customization (Minestom). Building Something Real The best way to learn Minestom is to build. Start small: maybe a PvP arena with custom damage rules, or a puzzle server where physics work differently. Once you've shipped something and seen players interact with your code, the framework clicks. Join the Discord community - the maintainers and contributors are responsive and patient with questions. If you're serious about this, watching server projects built with Minestom teaches you patterns faster than docs alone. And if you run a Minestom server that gains traction, list it on community resources. The Minecraft server lists and communities like block databases help players discover interesting worlds. Visibility matters when you're building something unique. Minestom isn't the default choice, and it shouldn't be. It's the choice for developers who want to build something no plugin combination can achieve. If that's you, it's worth the learning curve. Support the project Minestom is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. --- ### How GM4 Datapacks Enhance Vanilla Minecraft URL: https://minecraft.how/blog/post/gm4-datapacks-vanilla-minecraft Published: 2026-04-24 Author: ice GitHub · Minecraft community project GM4_Datapacks (Gamemode4Dev/GM4_Datapacks) Gamemode 4 is a collection of modular Minecraft Datapacks that change or expand on the vanilla experience whilst keeping the vanilla feel. Our modules are developed with a focus on usability and efficiency. Star on GitHub ↗ .0 Ever felt like vanilla Minecraft needs just a touch more? GM4 Datapacks is a collection that adds dozens of modular features while keeping the vanilla feel intact. No mods, no mod loaders - just zip files you drop into your world or server. What This Project Does GM4 is a collection of datapacks - basically vanilla content additions that live in your world folder without requiring mods or mod loaders. If you've never encountered datapacks before, think of them as enhancement packages that Minecraft reads as part of the world data itself. No Java Edition tweaks, no Minecraft Forge, no installation nightmares. The real distinction here is modularity. You don't install one gigantic package and then disable the features you don't want. Instead, you pick individual modules (new items, game mechanics, quality-of-life fixes, decorative elements, entirely new systems) and combine them however you like. Want an improved storage system? Grab that. Want boss fights beyond the Ender Dragon? Pull in a completely different module. Want neither? Just leave them out. This modular philosophy is actually rare in the Minecraft datapack space. Most collections are either "everything or nothing" or scattered across dozens of websites. GM4 keeps everything organized, documented, and intentionally designed to play nicely together. The modularity also means you can start small. Maybe you just want Storage Drawers because your chests are a disaster. Months later you realize you want graves. You add that module. Next season you want new crops. Add another. Build your world exactly as you want it instead of being stuck with someone else's vision of what "enhanced vanilla" means. This keeps your world genuinely enhanced instead of bloated or janky. Why You'd Actually Use It Vanilla Minecraft is solid. It's also... limited after a few hundred hours. You hit a point where you've got more resources than you know what to do with, no boss encounters worth doing, and no practical storage solutions that don't rely on mob farm luck or shoving everything into double chests. Mods solve this instantly. But they come with their own problems: Minecraft Forge installation, mod compatibility hell, dependency tracking, performance hits, and the constant risk that a new mod update breaks your carefully balanced setup. Some players just want vanilla's simplicity with a bit more depth. That's the gap GM4 fills. You get enhancements without the overhead. You'd use GM4 if you're running a vanilla survival server and want optional content without breaking the vanilla experience. Players can choose what they want; you're not forcing anything. Or you're someone who genuinely enjoys vanilla Minecraft but recognizes it's missing obvious features (storage, boss fights, decorative options). Maybe you're building a customized survival experience without committing to full modding and all its complications. There's also the performance angle - datapacks are generally lighter than mods because they use Minecraft's native systems instead of hooking into the Java Edition core. A heavily modded instance might stutter; a datapack-enhanced world usually runs smoothly. Getting It Installed Installation is straightforward. Head to gm4.co/modules and you'll see the full collection. Download the modules you actually want as zip files - don't grab everything if you're unsure. For single-player (Java 26.1.2): Navigate to your world folder. On Windows, that's typically in %appdata%\.minecraft\saves\YourWorldName. On Mac/Linux, look in .minecraft/saves/YourWorldName Create a datapacks folder if it doesn't exist already Drop your GM4 zip files into that folder (leave them as zips - don't extract them) Load your world and Minecraft will detect and load them automatically. You'll see a message in chat when they initialize For servers, the process is nearly identical: place your datapack zips in the datapacks folder in your server root, restart the server or use /reload, and datapacks load into all players' worlds automatically. One critical thing: leave them as zip files. Minecraft expects that format and won't recognize unzipped datapacks. People try to "extract" them thinking it'll help, and then nothing loads. The first time you load a datapack, Minecraft might pause for a few seconds while it compiles everything. That's normal. What Actually Makes GM4 Worth Your Time Storage systems in vanilla Minecraft are... not great. Double chests take up space, hoppers are finicky, and there's no way to compress thousands of a single block type into reasonable storage. GM4's Storage Drawers module fixes this elegantly - one block can hold thousands of items of a single type. It sounds minor until you've spent twenty minutes sorting stacks and realize how much space you're wasting. Graves are another genuinely useful module. Death in vanilla means panic. You've got five minutes to sprint back to your drop location or lose everything permanently. Graves create a gravestone at your death spot, holding your items safely until you can retrieve them without the time pressure. It's practical, keeps the vanilla feel intact (gravesites look fitting in most biomes), and makes multiplayer worlds less frustrating. Crooked Signs seems small but matters for anyone building detailed structures. Standard Minecraft signs are flat rectangles attached to walls. This module lets you tilt, rotate, and stack them in actual useful ways. Anyone who's tried to make a detailed shop sign or a directional post knows how limited vanilla options are. The Waystone module is another standout. But it adds teleportation points you can place around your world, but in a way that feels vanilla - you craft them, place them, and teleport by right-clicking. No mystical portals or flying. It's practical for large worlds where traveling hundreds of blocks gets tedious. There are dozens more modules handling everything from new enchantments to custom crops to additional boss fights to decorative blocks. Instead of downloading everything and drowning in features, browse the website and add what actually appeals to your playstyle. Things That Trip New Users Up Module compatibility is important. Most GM4 modules play nicely together, but some have dependencies - one module might require another to function. Read the descriptions on the website before loading random combinations. The documentation lists dependencies clearly. Performance matters when you stack modules. Datapacks are lighter than mods, but don't assume they're free. A server loaded with twenty modules will use more CPU than vanilla. Monitor your server's tick time (the /debug command helps) if you're stacking a lot of content. Most users won't notice a difference, but large servers or older hardware might. Updates require removing old zips and adding new ones. When GM4 releases a version bump for a module, you need to manually swap them out. Always back up your world before updating - it's just good practice with any world file changes. Testing one module at a time is smart if you're new to datapacks. Load one, make sure it works, add another. That way if something breaks, you know which module caused it instead of debugging everything at once. Actually, important note: the GM4 community is responsive. The Discord is active, the GitHub has issues you can search, and the maintainers take bug reports seriously. You're not flying blind with a dead project. Other Datapack Collections Worth Knowing About Vanilla Tweaks is probably more famous. It's a massive collection of tiny tweaks - cosmetic changes, custom crafting recipes, quality-of-life stuff. It's "vanilla plus" philosophy rather than "vanilla expanded." Some overlap with GM4, some completely different. Cubicle Studios has datapacks if you want something geared toward roleplay and narrative elements. Different philosophical direction entirely. Neither is better. It depends what you want. GM4's modular approach and "vanilla feel" philosophy work well for survival servers and worlds where you want meaningful enhancements without the mod ecosystem. Before You Hit Download Make sure you're on a recent Java Edition Minecraft version. 26.1.2 is current. Most datapacks are relatively version-agnostic, but running an old version with new datapacks causes weird behavior and crashes. Don't be intimidated if you've never touched datapacks before. Installation is literally download and folder drop. Unzip nothing. The documentation is clear and the community actually helps instead of telling you to "read the wiki." One practical tip: while you're setting everything up, grab the Server Properties Generator to dial in your server settings properly. If your players are making custom skins, point them to the Minecraft Skin Creator. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### Building Low-Poly Minecraft Models with Blockbench URL: https://minecraft.how/blog/post/blockbench-minecraft-models Published: 2026-04-24 Author: ice GitHub · Minecraft community project blockbench (JannisX11/blockbench) Blockbench - A low poly 3D model editor Star on GitHub ↗ ⭐ 5,352 stars.0 Ever wanted to create custom 3D models for your Minecraft server or resource pack but got scared off by Blender's learning curve and price tag? Blockbench strips away the complexity. It's a free, open-source editor built specifically for low-poly models and Minecraft content, with a clean interface that beginners actually understand. What Blockbench Does Blockbench is a 3D model editor built from the ground up for low-poly models with pixel art textures. Think of it as the opposite of Blender's everything-at-once design. Where Blender throws every tool at you and expects you to figure it out, Blockbench gives you exactly what you need and stays quiet. The project started because someone realized that making Minecraft custom content shouldn't require software that costs money and takes weeks to learn. That shows in the design. The interface feels modern without being pretentious, and it works the same way whether you're making your first simple block or a complex rigged character. Free and open source under GPL-3.0. It exports to multiple formats, but here's what matters: native support for Minecraft Java and Bedrock model formats with format-specific features built in. You can also save as OBJ, Collada, or GLFT, which means your models aren't locked into Minecraft only. Make something once, use it almost anywhere. When You'd Actually Use This Let's get practical. If you're running a Minecraft server and want custom items or mobs that look different from vanilla blocks, Blockbench is where you start. The same goes for resource packs, data packs, or just tinkering with content creation. Custom armor sets? Furniture that looks intentional? Entirely new blocks? All Blockbench territory. The animation system is where this gets interesting. If your content has movement (NPCs, custom mobs, animated furniture), you can set up bone structures, create keyframe animations, and export everything in formats that game engines understand. You're not fighting the tool to do the basics. And here's the thing: you can test your models in a real Minecraft environment. Once you've built something in Blockbench, you can export it and load it into a test server. If you need to set up that server, the Minecraft server list shows you what's running, and the server properties generator gets your basics configured in minutes. Installation and Setup The easiest way is downloading the desktop app from blockbench.net. Windows, macOS, Linux all work fine. Don't want to install anything? Use the web editor directly. If you're building from source (contributing to the project or experimenting with plugins), clone the repository and install dependencies: bashnpm install Launch the desktop version with: bashnpm run dev Prefer the browser? Use this: bashnpm run serve Then open http://localhost:3000. Both work fine. Pick whichever fits your workflow. Features That Stand Out Cube-based modeling. Models are built from cubes (not polygons). You scale, rotate, and position them. This might sound limiting, but it's exactly what makes Blockbench fast and why it creates assets that look intentional in Minecraft. Low-poly is the point here, not a limitation. Creature3 in Minecraft The viewport is straightforward: rotate, zoom, inspect from all angles. Texturing happens inside the editor too. Paint directly onto your model, or load pixel art textures and map them. Minecraft formats handle UV layouts automatically, which saves you from hours of manual unwrapping. Format-specific tools. Blockbench actually understands Minecraft Java Edition, Bedrock, Java data packs, and addon formats. It includes tools specific to each. Java models get bone rigging and animation support. Bedrock gets different UV handling because the format works differently. No fighting with config files to get your format right. Animation that actually works. Set up a bone structure, create keyframes, and Blockbench handles interpolation. You can preview animations in real time, adjust curves, layer multiple animations. This isn't supposed to be possible in a free tool. It's genuinely impressive. Plus, plugins extend everything. Someone made a plugin to import from other formats, another automates texture wrapping. The community's built out a solid toolkit over the years. What Trips People Up UV mapping and bone structure have learning curves if you've never done 3D modeling. Blockbench teaches this better than most tools, but you might need a tutorial or two. The wiki documentation is solid. Very complex models can bog down the editor, especially with high-resolution textures and painting. The workaround is simplifying your model or splitting complex pieces. Web version performance varies by browser and hardware. Minecraft model formats have hard limits. You can't make perfectly smooth curves or do advanced deformation the way you would in Blender, because Minecraft uses cubes and bones. That's intentional. If you need photorealistic assets, wrong tool. If you want models that look good and run fast in Minecraft, you're exactly where you should be. The latest release (version 5.1.3) actually fixed some painting performance issues on complex meshes. Other Tools Worth Knowing About Blender is infinitely more powerful and also free, but it's massive, complex, and honestly overkill if you just want to build a sword or a custom mob. Learning curve and download size both make you regret it if you're just starting out. Cubik Studio exists in similar space, costs money, and gets updated less frequently. Fine if you already own it, but momentum and community support are on Blockbench's side. Aseprite for texture-first workflows (create pixel art, import it, build models around it) pairs well with Blockbench. Model viewers like Crafatar are separate tools for rendering, not editing. Bottom line: if you're making Minecraft content, you're ending up in Blockbench. 5,300+ stars on GitHub and a JavaScript codebase that's easy to extend are reasons why the project's stuck around and grown. Where to go from here Read the source on GitHub (docs, examples, and the issue tracker) Browse open issues to see what the community is working on Check recent releases for the latest build or changelog --- ### Bringing Custom 3D Models to Your Minecraft Server URL: https://minecraft.how/blog/post/bettermodel-custom-minecraft-models Published: 2026-04-24 Author: ice toxicity188/BetterModel Modern Bedrock model engine for Minecraft Java Edition If you're running a Minecraft server and tired of vanilla mobs and NPCs, BetterModel might be exactly what you need. This Kotlin-based plugin brings custom 3D models to life on Java Edition servers, handling all the heavy lifting server-side so players don't need resource packs. It's built for high-traffic servers and handles animations without tanking performance. What This Project Does BetterModel is a server plugin that renders custom 3D models directly in your world. You design models in BlockBench (the free, open-source 3D modeling tool), export them, and BetterModel takes it from there. The plugin handles model loading, animation playback, and keeping everything synced with the base entity. All the rendering happens server-side, which is the key difference from traditional resource-pack approaches. The magic happens through item display entities, a Minecraft feature that lets the server send complex visual data to players without requiring client-side mods. Players see your custom models exactly as you designed them, no extra downloads needed. Why You'd Actually Use This Custom models open up possibilities that vanilla Minecraft just can't match. Want armor that actually looks like a suit of plate instead of a leather jacket recolor? Done. Creating an MMORPG server where NPCs have unique appearances and animation sets? BetterModel's got you covered. Building a dungeon with animated doors, chests, or decorative pillars that actually move? That's all within reach. The real appeal here is that you're not stuck with vanilla limitations anymore. And because it's server-side, you don't have to nag your players to download anything. They join and immediately see your custom models. That's a huge UX win for servers with rotating player bases. One thing worth mentioning: this is built specifically for high-traffic servers. The developers took a conservative approach to stability, meaning they focus on features that actually scale. You're not getting every possible BlockBench feature, but what you do get works reliably under load. Installation and Setup Installation depends on your server software. For Paper-based servers: Download the plugin from the latest release on GitHub, then drop it into your plugins folder: bashcd /path/to/server/plugins wget https://github.com/toxicity188/BetterModel/releases/download/3.0.1/bettermodel-3.0.1-paper.jar Restart your server and you're done. The plugin creates config files automatically on first run. For Fabric servers: If you're running Fabric (more common on modded networks), grab the Fabric version: bashcd /path/to/mods wget https://github.com/toxicity188/BetterModel/releases/download/3.0.1/bettermodel-3.0.1+26.1.2-fabric.jar Fabric requires a bit more setup, but the steps are straightforward. Make sure you've got Fabric Loader 0.19.2 or newer installed (which, if you're running recent Minecraft versions, you probably do). The latest version supports Minecraft 1.21.4 through 26.1.2, so check your server version before downloading. Key Features That Actually Matter Animation Support Models aren't just static. BetterModel plays animations frame-by-frame, exactly as you designed them in BlockBench. You can trigger these animations based on events (mob attacks, NPC interactions, quest completion, whatever your server needs). The animation system handles playback smoothly, even with dozens of animated models running simultaneously. Per-Player Animations This one's genuinely clever. Different players can see different animations at the same time based on where they're or what they're doing. Imagine an NPC that waves at each player individually as they approach, or a door that opens at different times for different people based on their permissions. It sounds niche, but for immersion-focused servers, it's huge. 12-Limb Player Animations If you're creating custom player skins or characters, BetterModel supports complex skeletal animations with up to 12 joints. Arms, legs, torso, head, and everything in between can move independently and naturally. If you're interested in creating matching custom skins for your players, check out the Minecraft Skin Creator to design skins that complement your BetterModel characters. Custom Hitboxes A model's visual appearance doesn't have to match its hitbox. You can make something look like a small decorative cube but have it be clickable over a large area. Or the reverse: make something huge-looking but with a tiny interaction zone. Useful for click-to-interact NPCs or invisible trigger zones. Common Gotchas and Tips Test your models in a dev environment first. BlockBench models are powerful, but not every feature translates perfectly to Minecraft. Some complex nested structures or unusual animation setups might behave differently than they did in BlockBench's viewport. Memory matters on busy servers. Models are loaded into memory and rendered every frame for every online player. If you're adding thousands of custom models to a server with 200 concurrent players, performance will suffer. Start conservative and add more as you test. The developers built BetterModel with async loading specifically to avoid stutters, but you still shouldn't go crazy. The plugin generates a resource pack automatically, but that resource pack only handles the textures. One geometry and animation are entirely server-side. This is why you don't need players to download anything (other than the texture pack, which happens transparently in most setups). Actually, the texture pack generation is automatic but configurable. Check the config file if you want fine-grained control over what gets packaged. Document your configuration choices early if you're working with a team, since changes to model structure or animation parameters might require updates. Server Administration and Voting Rewards If you're running a community server with voting systems and reward mechanics, BetterModel can make your voting reward NPCs and special merchants look spectacular. Players get invested in servers that feel polished, and custom models are a quick way to signal that attention to detail. If you're setting up voting systems, the Minecraft Votifier Tester is a handy tool for testing your vote rewards during development. Alternatives Worth Considering If BetterModel doesn't quite fit, a few other options exist. ModelEngine is probably the most well-known alternative. It's been around longer and has a bigger community, but it's also more resource-intensive and requires a commercial license for servers with more than 50 players. BetterModel is MIT-licensed and free regardless of server size. Mythic Mobs does some of this, but it's designed primarily for custom mobs with AI. If you're building complex custom enemies with intelligent behavior, Mythic Mobs excels. For decorative models and NPCs, BetterModel is more straightforward. Citizens is the classic NPC plugin, and it handles appearance customization. But for true 3D models with skeletal animation, it falls short. Citizens is better for interactive quest-givers and merchants; BetterModel is better for making those NPCs look unique. Getting Your Models Into Production You design in BlockBench like normal, save as.bbmodel, and BetterModel imports them directly. The plugin's GitHub wiki has examples of working models and setup guides. There's also a community wiki on DeepWiki with additional resources and troubleshooting tips. If you're new to BlockBench, there's a learning curve, but it's not steep. The community has tons of tutorials. And if you're already running a server with custom content, you're probably familiar with modeling anyway. One practical tip: keep your BlockBench models organized with clear naming and structure. Future-you'll be grateful when you're debugging why an animation isn't playing or a model's position is off. Support the project BetterModel is maintained by the open-source community. If it saved you time or powered something cool, leave a ⭐ on the repo, report bugs, or contribute back. Small actions keep tools like this alive. ---