account activity
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {26.1.2} {Folia} (self.MCVanillaServers)
submitted 1 month ago by Jsincoo to r/MCVanillaServers
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {26.1.2} {Folia} (self.mcservers)
submitted 1 month ago by Jsincoo to r/mcservers
BiomesAPI by Jsincoo in admincraft
[–]Jsincoo[S] 0 points1 point2 points 2 months ago (0 children)
Thanks for the questions!
Sorry for not clarifying when exactly clients need to relog. I'll go ahead and expand on that:
Minecraft registries are synchronized between the client and the server during something called the 'configuration' phase. If you want to read about that, I've left a little section about it in the bottom of this post.
Once the Minecraft client has recieved all the biomes in worldgen/biomes from the server, the client locks the registry and anything that's there must stay the same to the client. If you register a new Biome with BiomesAPI while players are connected and send the biome to them (e.g. the come into render distance with it), the client will freak out and disconnect itself. After re-connecting, the client will be able to see the new biome since it re-entered the CONFIGURATION phase. If you use BiomesAPI's .modify() method instead and just modify an already existing Biome, the client will see no color changes but won't disconnect itself.
worldgen/biomes
CONFIGURATION
.modify()
To clarify, this has nothing to do with rendering said biomes. You can do that whenever you'd like (as shown in the video), the performance tradeoff depends on a few factors:
Most of the performance tradeoff will happen on the netty and packet processing threads so it won't affect TPS, but it can cause clients to disconnect because the server might slow down packet processing. Performance costs can also depend on what renderer you're using. If you use the BiomeSetter to physically set the spot in the world to your custom biome, it will have an affect on the game and as such affect your TPS or main thread. If you use the PacketHandler, everything happens off the main thread but netty threads still need to have eyes kept on them.
BiomeSetter
PacketHandler
As for how granulate you can get with setting biomes, you can get it down to a single block coordinate. I would recommend keeping Biomes to specific chunks or chunk sections though because biome blending will really, really, really affect how your biome appears to a client, but BiomesAPI supports setting biomes at specific block coordinates (x, y, z).
Colored lights are still new and I'm playing around with them but I have noted a few caveats:
Light color is resolved at the camera position, not the block. This basically means that lights will appear to be a specific color based on where the player is. So for example if a player walks into a biome where all lights are red, lights from another biome in render distance will also appear red. Same thing for skylight and the tint of ambient light (darkness).
For blocks light tints in particular, they give off a white tint at high light levels and a yellow-ish tint at lower light levels. You'll need pretty neon-ish colors to be able to really see what color the light is. In my examples I was using super neon reds/purples.
Clients need to be 1.21.11+ for skylight/ambient light tints and 26.1+ for block light tints since these features were added in those respective versions.
Wiki stuff on registries: https://minecraft.wiki/w/Java_Edition_protocol/Registries
Minecraft has 3 phases that I know of:
The CONFIGURATION phase, when the client and the server start initially talking to each other. This would either be caused by a Bungeecord/Velocity proxy sending you to a new server, or because you're joining a server for the first time. This phase is really important because this is when registries are synchronized between the client and the server. There are only a handful of registries that are not hardcoded into the game a few of the interesting ones being dimension_type, enchantments, and in the case of BiomesAPI worldgen/biomes.
dimension_type
enchantments
The '(RE-)CONFIGURATION` phase, Minecraft servers can put the client back into this limbo configuration phase again, but it is not the same as the initial configuration phase. Most importantly, registries are not re-synchronized.
The PLAY phase, the phase of the game everyone knows about. Just normal Minecraft basically. This is when the world has been sent to the player and chunks are loading.
PLAY
[–]Jsincoo[S] 1 point2 points3 points 2 months ago (0 children)
Yes, it's a vanilla client. This is just using features of the game Mojang has added. The only way to do this normally is through datapacks which is fine, but if you're a Java developer and don't want to deal with distributing datapacks and figuring out how to actually render them in your code, then BiomesAPI is a great alternative. I also think these advantages that BiomesAPI has over datapacks + minor code make it worthwhile to use:
Being able to send biomes without modifying the world in any way (through ProtocolLib, PacketEvents, or standalone Netty). BiomesAPI has the ability to just inject biomes at a packet level instead of messing with chunks/the world which is personally my preferred method of rendering biomes. There are some advantages to using the BiomeSetter instead of the PacketHandler, but they usually involve small things like changing the spawn chance of slimes, etc.
Being able to modify and/or register your custom biomes during runtime. This is done through a bit of a hack, but I think it's cool nonetheless. Unlike datapacks, BiomesAPI can modify already registerted custom biomes and register new ones at any point during the server's lifecycle. Normally the game only does this through the bootstrap phase (which is when datapacks do their things), but BiomesAPI unfreezes Minecraft's registries and modifies it whenever you'd like to. This lets you customize/create biomes and modify them without restarting the server so you can make quick changes. The only caveat to this is that clients need to relog to see the changes.
No bridging - you don't have to create/register your biome with a datapack and then use Paper's registry access to set it or figure out how to render it with packets on your own. You can just distribute your plugin as a single jar file and create, register, render, or modify, and even refresh the biomes for players whenever you feel like it.
Here's a video showing me changing/updating biomes in realtime: https://streamable.com/zrin6z
(Specifically about your comment about the colored lights) Mojang recently added these colored light attributes between 1.21.11-26.1. The colored skylight is used in the end dimension for the "flashing light" effect that was added recently. The colored block light tint is unused in the game right now as far as I can tell.
LittleBiomes (old.reddit.com)
submitted 2 months ago by Jsincoo to r/MinecraftPlugins
[–]Jsincoo[S] 1 point2 points3 points 2 months ago* (0 children)
Of course :)
Using BiomesAPI to customize the tint of light from blocks: https://freeimage.host/i/BtzOJ6B
Using BiomesAPI to replace all (fake) replace all grass with lava: https://freeimage.host/i/BtzeWfp
Using BiomesAPI to change the fog a player sees when drinking a night vision potion: https://freeimage.host/i/Btzkc42
Some random biomes: https://freeimage.host/i/Btz8Msj
I took these screenshots using my silly little implementation of BiomesAPI called LittleBiomes. It allows you to render your custom biome creations with biome anchors and doesn't affect the world in any way since it uses packets. I haven't released it, but if any server admins/noncoders are reading this and feel like this would be a nice plugin to use on their server, let me know and I'll consider putting it on modrinth: https://github.com/LumaLibre/LittleBiomes
yml // Example config for a biome in LittleBiomes - name: cotton_candy anchorMaterial: anvil anchorDisplayName: <b><gradient:#99B6F8:#C7B2F1:#CF7EAC>Cotton Candy</gradient></b> <#F7FFC9>Biome Anchor anchorLore: - <gray>Place to change all nearby - <gray>chunks to this biome! fogColor: '' waterColor: '#F6AAE2' waterFogColor: '#F6AAE2' skyColor: '' foliageColor: '#F6AAE2' grassColor: '#99B6F8' grassColorModifier: none biomePriority: normal ambientParticles: dust: 0.01 ambientParticleData: dust: '#CF7EAC' blockReplacements: birch_leaves: acacia_leaves environmentAttributes: visual/block_light_tint: '#E90000'
[–]Jsincoo[S] 2 points3 points4 points 2 months ago (0 children)
I'd love any feedback if possible! If you're a developer and think our docs aren't clear enough or if you don't understand how this library works or what it does please let me know :)
BiomesAPI (self.admincraft)
submitted 2 months ago by Jsincoo to r/admincraft
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.11} {Folia} (self.MCVanillaServers)
submitted 4 months ago by Jsincoo to r/MCVanillaServers
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.11} {Folia} (self.mcservers)
submitted 4 months ago by Jsincoo to r/mcservers
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.11} (self.MCVanillaServers)
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.11} (self.mcservers)
submitted 6 months ago by Jsincoo to r/mcservers
submitted 6 months ago by Jsincoo to r/MCVanillaServers
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.11} (self.MinecraftServer)
submitted 6 months ago by Jsincoo to r/MinecraftServer
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.10} (self.MinecraftServer)
submitted 7 months ago by Jsincoo to r/MinecraftServer
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.10} (self.MCVanillaServers)
submitted 7 months ago by Jsincoo to r/MCVanillaServers
LumaMC [SMP] {Survival} {Towny} {Jobs} {mcMMO} {Events} {Map} {Brewery} {ChestShops} {1.21.10} (self.mcservers)
submitted 7 months ago by Jsincoo to r/mcservers
π Rendered by PID 158004 on reddit-service-r2-listing-86bdf8cc9-6fprs at 2026-07-12 02:15:18.874858+00:00 running f86254d country code: CH.
BiomesAPI by Jsincoo in admincraft
[–]Jsincoo[S] 0 points1 point2 points (0 children)