Letting players run their own world/server
I want to add a new feature in my server that almost no server has, letting players run their own world very easily inside my server, similar to what Hypixel has with their SMP thingy.
What server software or plugins do I need to be able to create this. I have done some research already but wasn’t able to find a lot.
Thanks lot in advance for reacting and helping me out!
107 Replies
Thanks for asking your question!
Make sure to provide as much helpful information as possible such as logs/what you tried and what your exact issue is
Make sure to mark solved when issue is solved!!!
/close
!close
!solved
!answered
Requested by uekc#0
This is a very complicated question
Hypixel is very complicated in some sense, you’d have to use something like Kube (likely) to create mini servers for players to join
What is Kube?
Kubernetes to orchestrate containerized server instances
^^
Is there any documentation that would explain how I use that for Minecraft servers etc?
not really because it’s so complicated
discord.gg/helpchat
you could try ask in there for someone who’s knowledgable
or @AeonRemnant could point you somewhere
Have you got any Docker experience?
A little
keep in mind this can be an expensive task to achieve
Could u elaborate?
U need lots of resources if u want lots of players
resources as in people or servers?
servers
it also requires a fair bit of maintenance
The resources I have tho
Its just the knownledge that I dont have
There's multiple ways to do it, dedicated server per player, dedicated dimension per player, a hybrid of the two, everyone in the same world but spaced far apart (if the world size is restricted), etc.
And what do you think is the best option?
Depends on the requirements for the personal dimensions/servers
It really just sounds like realms, but with a hub world at this point
I think I would want dedicated server per player. Just don't know how to realize it
Wouldn't it work similar to how minigames like bedwars work?
You would need some plugin/software to create new servers, you would need a backend where those servers live Pterodactyl or underlaying Kubernetes/Docker
^
You would need to dynamically add the players own server to a proxy
Add permissions to allow people into x servers or allow friends to invite other friends
things like bedwars have x amount of instances "idle" ready to accept players
when one instance is full and about to start, a new one would be spun up
You could dynamically spin up and down the servers based on players being online, etc.
^^
So bedwars does not work dynamically
to some degree it does
Depends on the setup
^
like silent said, you need some orchestrator to monitor each server and control them
and the sub-servers need to be able to communicate with each other, when they should be terminated etc
error handling
This is really complicated. I think this will require me to do a lot of research
It is complicated
Also figuring out how you charge for the servers is another hard part, as resources aren't free
Do you guys maybe have a tutorial/docs where I can start
there are basically none
People with ranks could acces it
consider looking at kubernetes
Production-Grade Container Orchestration
Production-Grade Container Orchestration
get yourself familiar with that, docker, etc
you either do this yourself, or you pay someone (likely a considerable amount of money) for consultation & setup
Is it possible to all do this inside pterodactyl panel or am I being delusional
This would be a bespoke setup, so there's no docs out there for it.
That's a one time fee (I assume?), which isn't sustainable.
You in theory could, yes
But the load balancing part becomes a little harder as you'd need to calculate which node the server should go on yourself, rather than docker swarm / kubernetes deciding it
Hmm, I also have Shards in my server (a currceny that has to be bought with real money). I could use that
if it pulls in enough profit to pay
then sure
You could, but idk why people would pick that over the alternatives you shared above which I believe are free?
it also depends on how many players you expect too
How did you guys obtain this knownledge?
you're going to need more resources if you'll have more players playing the minigames concurrently
By being a software dev by trade and working on systems like this outside of Minecraft
It's basically a server host
I've never touched Kube, I'm just relaying my personal view on it, as well as what I've learned while being in this community :LUL:
With less/more steps depending how you cut it
Hypixel has a similar feature in their server and also works with ranks to be able to acces it
Yes well hypixel makes millions of dollars a year
But more people are likely to buy ranks on hypixel :>
https://kubernetes.io/docs/concepts/ a very good read
Concepts
Production-Grade Container Orchestration
gives you a decent understanding of the usecases and how it works
Thanks!
no problem
Understandable
But right now I just want to realize it without essentialy putting it in production
hypixel also has dozens of paid devs that maintain and develop these things
honestly, just FAFO!
(not in a bad way)
👍👍👍
Try it with ptero to begin with, as that will be the easier approach
Plugin to create servers when a command is run
Add them to the proxy
And allow players to type /server newserver
To start with
Then you can start plumbing it up to more features
also (I think) you'll need a proxy that supports registering and removing servers in runtime
velocity can't do that
iirc
GitHub
GitHub - Aelysium-Group/rusty-connector: A player and server connec...
A player and server connection manager for Velocity based Minecraft Networks! - Aelysium-Group/rusty-connector
There are plugins that allow you to
Yeah
.. by itself*
Right now I already run an SMP server, with a Velocity proxy. So its not possible to do that inside my current server?
RustyConnector is a plugin you add to the frontend and backend
that allows registering new servers
aaah great
frontend being proxy and backend being your SMP*
Right so I’m hopping back in after reading this.
1. Don’t use Docker Swarm, it’s a buggy mess not suited for prod.
2. If you want to use Kubernetes you need AT LEAST a year of experience actually running the thing in production, either in your lab or in real world, before you should feel stable running it solo. That or buy someone that can.
The other way to do this is to use a custom program and Docker to dynamically spin up containers as you need them. This is maybe functionality coming to RC soon.
So Kubernetes is not essential to realize this?
Depends how you want it to scale
But it's not required
Great idea
Realistically, it could probably be profitable if you upsell stuff like charging for more resources (could use slots but meh), charging to keep it loaded when no players are online and maybe other optional stuff like a global market (opt in, if no creative), chunk loading, ability to invite players to your world to spectate, etc.
No.
But no matter what, if you want to scale like Hypixel does then you NEED custom software.
It's just not attainable without something custom.
I should say that Kubernetes isn't anywhere near as scary as it used to be, the tooling is much better than it used to be and the skillset is more common.
I'm tackling the same goal you are and Kubernetes is the obvious pick if you can handle using it.
Maybe treat it as seasonal seeds or something to incentivise it and allow players to race against one another in the same conditions?
hi, on top of all of the other suggestions from everybody else, you also have the option of utilizing the player servers plugin. It does exactly what you want, allows players to create their own independent manageable servers that are linked to your proxy network. https://www.spigotmc.org/resources/playerservers.79587/ Here’s the link, though I highly recommend joining the discord, the dev is awesome and actively works to improve and fix whatever bugs or glitches you come across. hope this helps
Thanks to all the people who made suggestions or comments. This will help a lot! I'm going to try various methods and see if it works
sounds like minehut icl
Pretty much
Hey there is a plugin called loom https://builtbybit.com/resources/loom.28043/?ref=discover . You may use it to let your players own their own worlds. Hope this helped!
ehhh
15 usd for this?
level of customizability
the wiki is kind of bad
not many updates
plugin wise, this is much better and free https://www.spigotmc.org/resources/playerservers.79587/
Sooo, I can use plugins instead of using custom programs with docker or kubernetes?
independent servers instead of worlds provides the same level of customizability as a normal server would, dev is currently working on providing a web admin platform for player management of their backend
yes, but i cant vouch for whether the other methods utilizing custom programs would be most reliable/better. i have experience using the player servers plugin and has thus far suited my needs well
Then I'm gonna use plugins as it is much easier to work with lol
Thanks for helping btw!
just as a note of caution, you will most likely encounter some janky stuff as the plugin is still in active development. if you havent joined the discord, i highly recommend doing so cause he'll help you out with whatever you come across
no worries
I already joined 😁
👍
Do you think its a good feature to add to a server?
sure, as long as you have the resources to act as your friends hosts. i introduced it for some of my buddies and they enjoyed it. was easy for them to use and served their purposes
it really depeonds on your set up and what your plan is
I'm planning to add it to my public servers, players will have to pay Shards (currency in my server that has to be bought with real money) to be able to make a server.
Kinda like Hypixel
what is your current playerbase
how many do you anticipate will use this feature
Very small, we are new
whats your host plan?
Don't know tbh
I have a dedicated server hosted by hetnzer
specifications?
For now, I plan to keep this feature small
depending on how many servers youre running as part of your main network, you should be able to manage a fair deal of independent servers
i wouldnt think more than 10 at a time though
And over time scale it as demand grows
you can set ddr4 limits in the config.yml
well experiment and see
great
Im happy I can just use plugins, otherwise it would take a very long time to set up
more then enough for now
follow the instructions in the server or plugin page
yeah like i said, im sure there are better methods out there for doing what you want but based on your needs currently, this will probablt suffice
This is a really good option ngl