This is a new Docker container to automatically set up and run a Minecraft server that both Java and Bedrock players can connect to! This allows everyone to play on your server no matter which edition of Minecraft you are using. It uses the Geyser and Floodgate plugins to accomplish this.
Since it uses the Paper Minecraft server it also supports any additional plugins that are compatible with Paper / Spigot. This gives you the ability to do many things that are currently impossible to do in Bedrock if you are hosting the official Bedrock dedicated server.
It is fully compatible with my Paper Minecraft Java Server Container and you can swap between these two containers without changing any configuration.
The official GitHub page is located here.
The Docker Hub page for the container is located here.
It’s now possible to convert your worlds between Bedrock and Java versions. Check out my guide on Chunker here for more information.
Features
- Sets up fully operational Minecraft server that allows both Java and Bedrock clients to connect
- Runs the highly efficient “Paper” Minecraft server
- Runs Geyser to allow Bedrock clients to connect and Floodgate to allow them to authenticate with their Bedrock credentials to a Java server
- Plugin support for Paper / Spigot / Bukkit
- Uses named Docker volume for safe and easy to access storage of server data files (which enables more advanced Docker features such as automatic volume backups)
- Installs and configures OpenJDK 18
- Automatic backups to minecraft/backups when server restarts
- Full logging available in minecraft/logs folder
- Updates automatically to the latest version when server is started
- Runs on all Docker platforms including Raspberry Pi
Usage
First you must create a named Docker volume. This can be done with:
docker volume create yourvolumename
Now you may launch the server and open the ports necessary with one of the following Docker launch commands.
With default ports:
docker run -it -v yourvolumename:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
With custom ports:
docker run -it -v yourvolumename:/minecraft -p 12345:12345 -e Port=12345 -p 54321:54321/udp -p 54321:54321 -e BedrockPort=54321 --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
With a custom Minecraft version (add -e Version=1.X.X, must be present on Paper’s API servers to work):
docker run -it -v yourvolumename:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e Version=1.17.1 --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
With a maximum memory limit in megabytes (optional, prevents crashes on platforms with limited memory, -e MaxMemory=2048):
docker run -it -v yourvolumename:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e MaxMemory=2048 --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
Using a custom timezone:
docker run -it -v yourvolumename:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e TZ="America/Denver" --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
Skipping backups on a certain folder:
docker run -it -v yourvolumename:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e NoBackup="plugins" --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
Skipping permissions check:
docker run -it -v yourvolumename:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e NoPermCheck="Y" --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
Change number of backups:
docker run -it -v yourvolumename:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e BackupCount=1 --restart unless-stopped 05jchambers/legendary-minecraft-geyser-floodgate:latest
Configuration / Accessing Server Files
The server data is stored where Docker stores your volumes. This is typically a folder on the host OS that is shared and mounted with the container. I’ll give the usual locations here but if you’re having trouble just do some Googling for your exact platform and you should find where Docker is storing the volume files.
You can find your exact path by typing:
docker volume inspect yourvolumename
This will give you the fully qualified path to your volume like this:
{ "CreatedAt": "2022-05-09T21:08:34-06:00", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/yourvolumename/_data", "Name": "yourvolumename", "Options": {}, "Scope": "local" }
On Linux it’s typically available at:
/var/lib/docker/volumes/yourvolumename/_data
On Windows it’s at
C:\ProgramData\DockerDesktop
but may be located at something more like
\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
if you are using WSL (Windows Subsystem for Linux).
On Mac it’s typically
~/Library/Containers/com.docker.docker/Data/vms/0/
If you are using Docker Desktop on Mac then you need to access the Docker VM with the following command first:
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
You can then normally access the Docker volumes using the path you found in the first step with docker volume inspect.
Most people will want to edit server.properties. You can make the changes to the file and then restart the container to make them effective.
Backups are stored in the “backups” folder
Log files with timestamps are stored in the “logs” folder.
Plugin Support for Paper / Spigot / Bukkit
This is a “Paper” Minecraft server which has plugin compatibility with Paper / Spigot / Bukkit.
Installation is simple. There is a “plugins” folder on your Docker named volume.
Navigate to your server files on your host operating system (see accessing server files section if you don’t know where this is) and you will see the “plugins” folder.
You just need to drop the extracted version of the plugin (a .jar file) into this folder and restart the container. That’s it!
Some plugins have dependencies so make sure you read the installation guide first for the plugin you are looking at.
A popular place to get plugins is: dev.bukkit.org
Troubleshooting Note – Oracle Virtual Machines
A very common problem people have with the Oracle Virtual Machine tutorials out there that typically show you how to use a free VM is that the VM is much more difficult to configure than just about any other product / offering out there.
It is because there are several steps you need to take to open the ports on the Oracle VM. You need to both:
- Set the ingress ports (TCP/UDP) in the Virtual Cloud Network (VCN) security list
- *and* set the ingress ports in a Network Security Group assigned to your instance
Both of these settings are typically required before you will be able to connect to your VM instance. This is purely configuration related and has nothing to do with the script or the Minecraft server itself.
I do not recommend this platform due to the configuration difficulty but the people who have gone through the pain of configuring an Oracle VM have had good experiences with it after that point. Just keep in mind it’s going to be a rough ride through the configuration for most people.
Troubleshooting Note – Hyper-V
There is a weird bug in Hyper-V that breaks UDP connections on the Minecraft server. The easy workaround for this is that you have to use a Generation 1 VM with the Legacy LAN network driver.
There is a second fix that was shared by bpsimons here. For that fix you need to install ethtool first with sudo apt install ethtool. Next in your /etc/network/interfaces file add “offload-tx off” to the bottom as the issue appears to be with TX offloading.
Here’s an example:
# The primary network interface auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 offload-tx off
This can also be done non-persistently with the following ethtool command:
ethtool -K eth0 tx off
Additional Support
The comments section right here is the best place for support. The second best place is the GitHub issues section.
I will add additional documentation based on what problems people are running into / questions people are asking because right now I’m not really sure what those will be yet. Definitely let me know if you need any of these things!
Hello James
Excellent effort in putting the Docker Container together. Well Done Sir. While it took me a couple of attempts to get it on an RPi4-8GB that I had kicking around, it all works well and is stable. If your Docker Container was not available I would have managed to work out the installation process myself. There are now a bunch of very happy Minecrafting girls in the house now. Thank You!
One “issue” that I’ve noticed is that Microsoft require each player to provide permission logins to my server. some of my girls do not have a Microsoft account; is there a way to bypass this and the appearance of the “Featured Servers”
Also, are datapack installations possible?
Many Thanks once again
All the very best
Deep
Hey DeepHeat,
Thank you so much, I’m so glad that you’re enjoying it and that it helped you get it up an running! The Pi 8GB should be a fantastic choice indeed. It’s awesome you had one laying around right now because the 8GB Pi is $239 on Amazon (which honestly makes me sad as my excitement about the Pi over the years was making technology cheap and accessible to everybody and that no longer appears to be their mission).
So for this version of the container I have good news all around for your questions! We can absolutely disable the Microsoft authentication. We do this in server.properties (which to access that file close down the container and then navigate to your Docker volume files as the guide explains depending on your OS, most likely /var/lib/docker/volumes/yourvolumename/_data on the Pi). Once you get to server.properties the option is this one:
online-mode=true
# If true then all connected players must be authenticated to Xbox Live.
# Clients connecting to remote (non-LAN) servers will always require Xbox Live authentication regardless of this setting.
# If the server accepts connections from the Internet, then it's highly recommended to enable online-mode.
# Allowed values: "true" or "false"
If you set this to false if they are connecting from LAN it should completely bypass Microsoft account authentication. If they are using a Bedrock client you may need to modify the Floodgate settings but I would definitely try that setting first and see if it takes care of it for you (I can definitely help diagnose further if it doesn’t).
I want to say that the “Featured Servers” part of Minecraft is part of the client and outside our control. People have been requesting this since at least 2018 and I don’t believe it’s possible to change this and all of the Realms stuff they populate. You can change the way your server shows up in there though such as the title and description (and this is done through server.properties generally as well). I get the sense though you are talking about the paid promotional Minecraft content/servers which is definitely something people have been asking for (officially, on their feature request site).
For the second question on the datapacks yes that is absolutely possible as well! There is a “plugins” folder where you can generally drag and drop .jar plugins that will modify the server’s behavior. These are generally Paper / Spigot / Bukkit server modifications and they can do quite a bit. These work differently between Java and Bedrock and it’s trickier if you want to do a Bedrock resource pack but possible. For example there’s already a Geyser-specific behavior pack for Bedrock that fixes some minor glitches. If everyone is using Java it’s definitely easier but no matter what you’re doing those should help get started at least.
Thanks so much for your kind words, definitely let me know if I can help further or if you run into any issues!
Hello James
Many Thanks for your very prompt and informative reply – it’s very much appreciated.
I made a typo in my original message to you:…
“If your Docker Container was not available I would have managed to work out the installation process myself. ”
Should have read:…
“If your Docker Container was not available I would **not** have managed to work out the installation process myself.”
Oops – Sorry.
My girls each use some form of iDevice while I use a Mac. To keep things simple I could revert temporarily to an iDevice too and keep the focus on Bedrock configurations.
As advised I made the server.properties change (online-mode=true) and restarted the server. The log files acknowledges the change:…
....[17:20:52 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
....[17:20:52 WARN]: The server will make no attempt to authenticate usernames. Beware.
However, when testing this, the “Sign in for Free!” window still pops up. Clicking on the “x” to ignore the offer returns to the server selection screen. I’ve taken a look at the /plugins/floodlight/config.yml file and see many references to “link” and “linking”. Are these related to the “online-mode” from the server.properties file?
I understand your sentiment around the current prices of the RPi4. I’ve used these incredibly efficient little work-horses for various tasks/projects since they first came out in 2012. Fingers crossed that the global shortage of materials ends soon; I would want to see the COVID generation of kids miss out on configuring their own RPi clusters!
All the Very Best
Deep
Hey DeepHeat,
No problem at all! Definitely don’t sweat it about the typo in the original message as I definitely read it the way you intended.
That helps to know there are Bedrock clients connecting. You made the first change correctly and there’s one more change we are going to make.
This one is in:
/var/lib/docker/volumes/yourvolumename/_data/plugins/Geyser-Spigot/config.yml
We are looking for this line:
# Authentication type. Can be offline, online, or floodgate (see https://github.com/GeyserMC/Geyser/wiki/Floodgate).
# For plugin versions, it's recommended to keep the `address` field to "auto" so Floodgate support is automatically configured.
# If Floodgate is installed and `address:` is set to "auto", then "auth-type: floodgate" will automatically be used.
auth-type: online
If you change that auth-type to offline then this will do the same thing for Bedrock clients that your server.properties change did for Java clients. This absolutely is related to offline-mode in server.properties. This is just the configuration for the Bedrock clients through Geyser if that makes sense (to do the same thing).
According to the notes you may have to change address from “auto”:
# The IP address of the remote (Java Edition) server
# If it is "auto", for standalone version the remote address will be set to 127.0.0.1,
# for plugin versions, it is recommended to keep this as "auto" so Geyser will automatically configure address, port, and auth->
# Leave as "auto" if floodgate is installed.
address: auto
Therefore I’d also recommend changing address to 127.0.0.1. That should make sure Geyser doesn’t override your offline mode to floodgate mode.
I think that should take care of it for you here, definitely let me know how it turns out!
Hello James
We’re still getting Microsoft sign-in prompts.
In /server.properties, I have:
online-mode=false
In /plugins/Geyser-Spigot/config.yml:
auth-type: offline
…and..
address: 127.0.0.1
After making the changes I restarted the container and observed no errors or issues.
Hey DeepHeat,
I don’t think those are coming from your server to be honest. You’ve definitely disabled all the authentication. I’m guessing the client just won’t actually work without being signed in. Microsoft says this is the case here:
They’ve really cracked down on this this year. They added the controversial new chat reporting and filtering feature and had this to say:
I actually don’t think this is your server doing this. I’d imagine it’s the client. I then finally found this:
Yes it looks like this is gone as of last year. Note that the commands I gave you will only disable verification of your account. That means if people log in using Microsoft accounts that don’t own Minecraft it won’t care because it doesn’t actually validate them (since you’ve disabled that in the options now). I don’t think this means you don’t have to sign into something though. I don’t think the client is letting you do this anymore without being logged into something (even if the server doesn’t check if that account actually owns Minecraft).
I hate to say it but creating some dummy accounts that don’t own the game may be in order to get this working (just to bypass the sign-in prompt, the server won’t validate the accounts). I would tell you to just sign into all of them on the same account but I think that would cause problems like everyone would have the same inventory (because even though it doesn’t validate the account it’s still using that as an ID to store your inventory and things like that).
This is basically by design and it was a controversial choice by Microsoft. I think they do intend for you to create permission-managed accounts for all the kids and are making it quite difficult to do it in other ways. I personally would feel safer not giving them an account or giving them a dummy account that I control completely (and have the password for). You could probably hold these dummy accounts for them entirely and sign them in and then they should never have to really deal with them theoretically (it should stay signed in for at least 90 days or it might even be 180 days before your session/login expires and it asks for the password again).
With the options you’ve set it will take their word for it on whatever Microsoft account they say they are signed into. I think it does sound like we need to be signed into something though even if it’s a dummy/fake account. Undoubtedly there are hacked/patched clients that can bypass this but that’s a whole other rabbit hole with its own upsides and downsides and if I were in your position I’d probably just try the dummy accounts first. Hopefully that helps!
Oh p**p! That’s a royal pain the backside!
James, many thanks for investigating this for me. It was both educational and emotional. Looks like I am creating child accounts to appease those-who-must-know-everything at microsoft!
Take Good Care
Hey DeepHeat,
No problem at all, I totally understand where you’re coming from! I wasn’t quite sure on the state of things and had to even research to figure it out.
The way it used to work is that it would let you set something like a nickname or gamer tag in the old versions for iOS/Android. That’s the part that has been deleted here and what we would have used in old versions for your ID/name inside the server. That used to be the screen it would take you to when you tried to log in (it would say you need to set a nickname to use or something like that). In the new client there’s no way to do that and it’s replaced with just signing into a Microsoft account (which your nickname will be automatically derived from now).
The good news is that all of those features have been out for a while so you won’t be the “beta tester” group at least. You take care as well!
Server-side resource packs don’t work with this do they? I’ve tried a few things, and the result is always the same.
I connect (on pc), it attempts to download/install, and fails. “Server resource pack couldn’t be applied”
This is in the server: “[Geyser-Spigot] Got disconnected from the skin uploader: pings have to be at least 10 seconds apart”
I’d really like to add some fun elements in, and some fresh graphics. :/
I haven’t tried on the consoles yet, but I don’t know if they’ll appreciate it as much as I will haha. They’ll like it, but I’ll be the one exploring and looking at everything!
Hey Arathi,
I’m not sure if this is possible or not. It definitely didn’t used to be but I did find this here on Geyser’s open issues. At the very bottom of the thread though one of the developers seemed to suggest this is done except for custom command blocks or some small piece.
I then found this in the Geyser documentation. That is about as far as I could help though. The resource and behavior packs are difficult to configure for Bedrock in the best of times and I’ve never done one but it looks like it does support Bedrock resource packs!
Hi James,
Really appreciate you putting this all together, as I can see it’s working well for others!
I just installed following your instructions above tonight on Ubuntu 20.04, and I can connect from my computer, but trying to connect from the Switch or Xbox gets this info:
[Geyser-Spigot] / tried to connect!
[Geyser-Spigot] Bedrock user with ip: / has disconnected for reason Bedrock client timed out
The second one comes after about a minute.
Is there something I am missing?
Hey Arathi,
Welcome! The most common reason for this is using Hyper-V or Oracle virtual machines. There are instructions here and on the GitHub for those platforms to fix a UDP bug related to Hyper-V specifically and Oracle has a lot of firewall issues that need to be set just right.
The other most common reason is people trying to connect to the Java port with Bedrock. It’s not the same port. Bedrock uses 19132 for the port basically if that makes sense. That is the port that your Bedrock clients will connect to (with the same IP but that port). Bedrock also uses UDP so all of your firewall rules need to allow for UDP.
There has yet to be a case where this hasn’t been firewall or platform related (Hyper-V and Oracle as mentioned in the docs along with the fixes) but it’s always possible / just a matter of time before something is found so this is always possible but statistically speaking it is going to be one of those unless you’ve found a brand new bug!
That was it. I constantly forget I’m running Hyper-V for all my servers at home. Thanks a million, kids and I are all connected. PC, Nintendo Switch, and Xbox One!
Amazing. Thanks again James. You’re a hero!
Hey Arathi,
No problem at all, thank you for letting me know that is what it was as it helps me know how to prioritize. I have some things to add to the Hyper-V documentation from here in the comments about other ways to fix this as well. I need to get that added to all of the articles too.
Enjoy and take care!
Also, when I was looking at the last section you have on starting the server up. It looks like you give several different options to load. I added them all together and it appears that the command was just fine with it all together. Have you ever seen any issues in doing this?
This was the way the command was set: sudo docker run -it -v mcjbr:/minecraft -p 25565:25565 -p 19132:19132/udp -p 19132:19132 -e Version=1.19.2 -e MaxMemory=6144 -e TZ=”America/Vancouver” -e NoScreen=Y 05jchambers/legendary-minecraft-geyser-floodgate:latest
My next thing I need to sort out is having the server auto run the docker and start the world up automatically rather than needing to go in. Helps if I happen to be away and the server restarts due to any reason (such as the main server needing a reboot for an update for example).
Hey Arathi,
That all looks fine there. The NoScreen switch was removed weeks ago but it shouldn’t hurt anything to have it there (just screen doesn’t exist in the modern version of the container).
So it’s pretty easy if you want Docker to always restart the server. Just add this to to the launch line:
--restart unless-stopped
This basically tells Docker to always restart the container unless you specifically have stopped it (on purpose with the manual stop command). Otherwise Docker will always restart it. Hopefully that helps!
Awesome! Thanks!
Hi James,
I’ve been running this server to play on Java and bedrock together. Currently bedrock is at version 1.19.31 and won’t connect to the server. Does this mean until Mojang release 1.19.31 Java edition it won’t be compatible?
When I run the server there is a message that a Geyser-Spigot update is available, but it doesn’t automatically update to it:
[Geyser-Spigot] There's a new Geyser update available to support Bedrock version 1.19.30. Download it here: https://ci.geysermc.org
Unfortunately I’m not great with Docker, so not exactly sure how to get inside the container to update it myself!
Thanks,
Adam
Hey Adam,
First try restarting the container. This will update it. If it doesn’t then you have probably never updated your container before with:
sudo docker pull 05jchambers/legendary-minecraft-geyser-floodgate:latest
Geyser not updating was fixed on September 20th according to my notes. I’d pull the container and restart it (that is the only time it updates, when the container restarts). Hopefully that helps!
Hi James,
That has fixed it! Thank you so much for your help.
Adam
Hey Adam,
No problem at all! You must have been using the container for a while now, I hope you continue to enjoy it and take care!
Ahhh! That’s what it was! 🙂 Updated Geyser-Spigot twice before checked comments! :))
Thanx for fix? now everythiing working smooth! 🙂
Hey Pavel,
Glad to hear it! I’m glad it’s working now and that should be resolved once and for all. Enjoy and take care!
Hi James,
Due to the Pi shortage I need to migrate my kiddos server from a RaspberryPiMinecraft server to a cloud based VM with this docker container. What directories do I need to copy, and do I need to change any settings (other than things that are already changed on the original server) before I start up the server?
Thank you for all the work you’ve done!
Hey Doug,
Great question, I’ve been thinking exactly of people in that same situation and am working on some new guides related to this topic! This may include covering alternatives and migrating to other platforms and whatever else will be valuable information for people.
I was able to help someone migrate from the standalone version to a container here. In that case it was on the same machine so it was as easy as:
sudo cp -r /home/youruser/minecraft/* /var/lib/docker/volumes/yourvolumename/_data
What you will do will be very similar but there will probably be an intermediate step where you copy the folder somewhere else in the meantime.
You can also restore from a backup file by extracting it into /var/lib/docker/volumes/yourvolumename/_data. The process would be identical to restoring a backup now except that would have been restoring it to /home/youruser/minecraft instead if that makes sense.
The good thing is the versions are 100% fully compatible meaning you can actually just drag and drop the files into the /var/lib/docker/volumes/yourvolumename/_data folder and then start the container. You’ll also get “Geyser” installed on this version which will let Bedrock clients (such as game consoles, Android, iOS, etc.) connect to your existing Java server which is pretty cool. Hopefully that helps!
Hi James,
First of all, thank you for this image. I really enjoy playing MC with my Son.
My question would be, where and how can I change the Server Seed to a different seed? My son and I have played some reasonable hours and unfortunately my linux system had an upgrade failure/booting into emergency mode and all the data was lost from root.
I refreshed my OS install and tried creating/starting the Server again but it gave me of course a random new seed.
What would be the steps to take to change the Seed?
Do I need to delete the existing again?
I tried to change the paper-world.yml >> level-seed to the one I need / reloaded config in the MC Server terminal / restarted server > that doesn’t seem to do the trick
I hope you can help me with this or point to an article I could follow. I read a lot of docker-compose.. but I don’t really understand how to use it, I’m not even sure if that would be the solution for this case.
Maybe you know an easy/quick way to do this? It wouldn’t be a problem if I have to delete the current image right now, because it is not the one we want anyway. 🙂
Thank you in advance!
Hey Tamas,
Great question! So the level seed is actually in the server.properties file as:
level-seed=
It can be a little tricky to change though because when you start a new random server it will load the spawn area with the random seed before you have a chance to set it.
There’s a couple of ways to deal with this. The easiest is probably to just start a brand new server with a new volume then after it starts up open /var/lib/docker/yourvolume/_data/server.properties and set your level seed there. You could probably set it in paper-world.yml as well but server.properties definitely needs it as well.
Once you’ve set it you can delete the entire world folder (make sure the server is closed) with
sudo rm -rf /var/lib/docker/volumes/yourvolume/_data/worl*
This will delete all 3 world/map folders. When you start the server again everything will be generated using the seed you set. Hopefully that helps!
James, thank you so much for your fast reply. That was very easy and worked like a charm!
Hey Tamas,
No problem at all, I’m glad that got it taken care of for you, enjoy and take care!
Hi James, Thank you for creating the docker, it is great to play with my daughter on weekends! Please point me to the right forum regarding my query as I do not think it has anything to do with docker, just my lack of knowledge about minecraft and inability to locate the information i am looking for. I wanted to learn a bit more about finding villages and villagers and read about locate command.
Unfortunately I am getting result ‘There is no structure with type “minecraft:village”‘, this is all executed from windows 10 bedrock edition using chat. I also tried ‘/locate village_plains’ with same results. I tried different locate command and this one worked ‘/locate structure mineshaft’. Is it the problem with actually not having any villages in my world or me not doing something right? The map was created on nintendo switch and converted to java using chunker.app, but i tried creating new world (changing name in server.properties and restarting docker) but same results. Thank you in advance, Oleg
Hey Oleg,
Welcome! So the syntax for the locate command has changed slightly. Your command with the “structure” in front of it is actually right. They have categorized these.
The structure category is right for a lot of them. For your plains village it would be more like this:
/locate structure village_plains
In 1.19 you have to put an underscore with the village type afterward and you have to include the structure part. They made it very sensitive basically. All your other commands have variations like this:
> locate biome minecraft:plains
[09:32:23 INFO]: The nearest minecraft:plains is at [0, 72, 0] (0 blocks away)
> locate structure ancient_city
[09:37:16 INFO]: The nearest minecraft:ancient_city is at [928, ~, 1264] (1568 blocks away)
> locate structure village_plains
[09:42:04 INFO]: The nearest minecraft:village_plains is at [-992, ~, 1440] (1748 blocks away)
In other words the syntax has changed in the newest one. This has made almost every guide out there on how to use this command wrong/outdated so I totally understand where you are coming from. I had to personally test these in my server as I wasn’t sure I had the new versions right off the top of my head. Hopefully that helps!
Thank you very much James for explaining that and testing it on your side! I tested new syntax ‘/locate structure village_snowy’ and it works. I will go for adventure to find a village and explore.
Please accept a complement on your human skills/customer service and IT knowledge. You are different to most people on the internet forums with detailed knowledge of the product. Your replies are detailed but yet are very simple to understand and you elevate spirits by providing your past experience and letting user know that he is not the only one having these type of problems.
I think more people like you would encourage/broaden necessary IT industries instead of humiliating and discoraging from even starting looking into it.
Hey Oleg,
Thank you so much, I appreciate that a lot! I’m glad it was able to help. I honestly struggled with this this morning when I was typing that reply and had to fire everything up to figure out the right syntax. It definitely helps to know that most biomes have a village type (but not all) so you can pull up the biome list and just add village and that’s the secret/trick for sure.
I definitely appreciate it a lot as that is a big part of what I am trying to do on the site. I definitely don’t like the approach of humiliating/discouraging people at all and instead want to empower people with technology. I think that most people who have followed through with this would agree with me when I say that it definitely is not as hard as the people like that are pretending at all. I’m sure that is where some of these types of feelings/tendencies in the industry come from. They see it as job security if nobody else knows how to do the things they do.
I’ve found it to be just the opposite. Everything I’ve been able to achieve with these projects is due to sharing it with people and open sourcing it. I’ve made countless mistakes over the years and people have suggested or even written (via pull request) improvements that I wouldn’t have ever wrote/imagined. Sharing / open sourcing the knowledge and code is actually my secret / strength. I very much want to keep doing it as I keep getting better at it the longer I’m able to. It took years of previous versions/iterations for everything to get where it is now for sure (and I still support a lot of those like the standalone version).
Enjoy and take care!
Thank you for explaining your approach and reasons James. I hope sharing and open sourcing will keep your drive up for technology and you will create/maintain the products you like.