This datapack I put together for myself and my children. I had a blast making it and learning along the way. I hope others find it useful too. It adds many popular features to your Vanilla Mincraft multiplayer exerience. Use it locally, on a remote server, even realms.
Please note I could really use some test players on my MC Java edition Realms server to develope this further. Ask me for an invite and you shall have it ! Thank you.video explanation of the datapack here
https://youtu.be/-2mUIwfhyR8ServerBox 1.0Datapack for Vanilla Minecraft 1.16+ (
formerly titled Vanilla+)BY RETRODESIGN3D
(formerly coffeebuzz77)RETRODESIGN3D@AOL.COM
This datapack is designed to add popular server features usually found on bukkit servers and other mods to Vanilla MC. Can be used on local, rented vanilla server or on Minecraft Realms. All the features below are achieved without force loading any chunks and so should not impact performance. FEATURESCLAIMING LANDEasily claim your land (60x60 square), unclaim and choose a new location as you see fit.
10m wait between claiming and deleteing your plot. The server will notify you when you enter & leave your plot, and when you enter & leave the plot of another player. You have special rights on your land outlined in features below.
LOCKING ITEM STANDS AND ARMOR STANDSDecorate and show off your items with confidence you can lock and unlock both item frames (normal and glowing) as well as armor stands.
SECURE DOORS ON YOUR PROPERTYWhen on your land you can open and pass through iron doors without levers, buttons or any other mechanism, but other players cannot. So you can rest easy knowing nobody will gain access to anything inside your home unless you let them in.
LOCKING CHESTSYou could simply put your chests indoors knowing you are the only one who can pass through the iron door entry(see door feature above) but as an added security option while on your land you can lock chests and unlock them at will.
SHARING LAND PLOTS (groups)Do not want to build or mine alone on your land ? Not a problem, you can invite as many players as you like to be a part of your plots group. Invited players can build and destroy on your land so only invite those you truely trust.
TELEPORTINGTeleport Home, to Spawn and even to your last Death location (one death tp per actual death)
Teleport to your fellow players so long as they accept your teleport request.
Make your home in the overworld, the nether or even the end. You can teleport across dimensions.
ALL teleporting is accomplished without ever force loading a single chunk.
ADMIN CONTROL & OPTIONS
MESSAGE OF THE DAY
Configure the MOTD without any external files. Using the serverbook you can position
the MOTD marker on top of a sign that you place down. The MOTD will read from this sign
and an optional second sign placed to the right of the first one (X+1). The MOTD supports wordwrapping when
making your sign message.
The MOTD displays to players at login and once every 30m.
This time can be edited in the datapack function server/server_motd_displayallPLOT PVPToggle whether or not players can hurt each other when on a claimed plot.
PLOT CLEANUP
Admins can delete a players plot if needed. They can also ask the server to remove any plot that has not seen activity from
its owner in two weeks or more.
MOB COUNT LIMITERToggle the mob limiter. This takes in to account player locations relative to one another and any large number of hostile
mobs outside of the play area that does not overlap other players are reduced.
PROTECTED LANDMARKSAdmins can drop protected markers that prevent damage to an area.
ALL OF THIS IS EASILY ACCESED AND USED WITH A CONVINIENT SERVER BOOK THAT IS GIVEN TO ALL PLAYERS. IF YOU DROP OF LOSE IT THE SERVER WILL JUST GIVE YOU ANOTHER ONE.INSTALLATION 1.Download the Sbox zip and unzip it.
2.Copy the sbox folder into your mc save folder
minecraft/saves/worldname/datapacks
run the game, load the world, open to lan or run your server.. Alternatively you can also upload your world with the datapack in the proper folder to Mineraft realms.
When you enter the world for the fist time after installing the datapack you want to run the function below./function sbox:server/server_full_reset You should be standing at worldspawn at the location you wish players to teleport to when they decide to TP to Spawn, as a Spawn marker will be made during this process at your current location
Thats it! SOME OTHER COMMANDS YOU NEED TO KNOW AS SERVER OPERATOR.Give admin rights ( even as server operator you cannot give yourself creative mode unless you are set as admin first, and remove admin from youself if you wish to play the server as normal ) /scoreboard players set <name or selector> isadmin 1Remove admin rights /scoreboard players set <name or selector> isadmin 0SERVER CARE /function sbox:server/server_refresh if you ever update the datapack and want to make sure all the new scoreboard features are loaded correctly you will /reload then run the command above. /function sbox:server/server_full_reset this will remove all saved player data and server records. basically starting over. Before you do this you will want to remove existing armor stand plot markers out in the world To do this you can type.. if you do not wish to go through the trouble you can always reupload a fresh world or regenerate world if a 100% restart is your goal. /trigger admin_abandoned set <id> id is the player assigned id number. As each new player joins they are given an id number and this number increases by one every time a new player joins for the first time. So if you have 10 players they will have IDs 1 to 10. again that would be /trigger admin_abandoned 1 then again for 2 and so on. If you dont know how many players you have you can check the playercount value by typing this /scoreboard objectives setdisplay sidebar playercountIMPORTANT SCORES AND ENTITIESmost important entity is spawn armorstand it holds the playercount value that tracks the players. @e[type=armor_stand,tag=spawn] will find it but do not mess with it.another important entity is the plot coordinate storage entities.. these are at spawn too every player that claims land has one at spawn. Never mess with them or the player cannot teleport home. They can be found as follows. This entity is a bee so dont go doing /kill bee anytime! Every one of the homeplot_copy entities shares a myplayerid score equal to the player it belongs to.@e[name="homeplot_copy"] SCORES worth notingsethome 0=NO HOME, 1=ASKING FOR PLOT, 2= PLOT ASSIGNEDmyplayerid players unique an unchanging id assigned first time the server sees them.
I started a server on that site as well to test and got it working straight away
make sure you upload the serverbox folder to the correct place
under the worldsave/datapacks/ folder
makes sure you have command blocks on in settings
make sure you are set to vanilla 1.16 or better
make sure to add yourself as operater in players settings
when connected you /reload then type /function sbox:server/server_full_reset
my server is at
RetroDesign3D.aternos.me
That is interesting.
I have it running on a realms server and a local lan instance of MC. I havent ran into any errors yet
are you running any mods or other datapacks ?
java edition vanilla server? 1.16 or better ?
Is the serverbox folder inside the world save under worldname/datapacks/ ?
I am not sure if you are following this still but you will want the latest download of serverbox as I had found a bug in the TP functions. I also find that the free service you mentioned performs badly in general. Even with no datapacks at all.. straight 100% stock server it performs very bads.. falling into "cannot keep up" errors after just a few minutes of play. Realms server preforms much better and would definately recommend it for a group of friends to play together.
Have a good one!
be standing where you want your server spawn to be
as promised the update is available to download
If you plan on keeping the existing world, and If you have many players you will need to remove the plots for those players as well with /trigger admin_abandoned id
where ID is the player ID number. if you have 10 players that play you will likely have 10 plots and they must be deleted one at a time. Failing to do this will leave armorstands in the world that cannot be deleted any other way.. Once you do the server reset_full you cannot reference the old stands anymore and they will just be out in the world waiting to glich your players later.
You will then have to perform both a reload and a call to function:sbox/server_full_reset
Please see the update log for more details.
This adds everything that I had originally intended to have in this pack. If you have any other sugggestions please let me know.
/function sbox:server/server_full_reset
this will get things moving and a book should be given to anyone who does not have it.
Please let me know if this does not happen when you run the datapack on your server.
By the way, maybe you could make a video on how to download and get the book, but if you don't want to, no problem
its not a file but a folder full of files, you put the serverbox folder (from the zip file you downloaded) in your worldsave /datapack folder
once its in there , start MC go into your world and type /function sbox:server/server_full_reset
to get things going.
I have reworked the tags, moving from looking at "entity custom names" to exclusively referencing markers and stands, and other pack items by their tag. This means your existing tests will fail with the next update as the datapack will not recognize any old naming methods.
Sorry about this but I beleive this will be the only update that will have this effect. Hopefully the unified naming scheme will future proof later expansions.
Sorry for asking but how can i reduce the plot from 60x60 to like 20x20?
function PLOT_OTHERDISTANCE
you want this to be larger than you plot size as it will prevent plot overlap. so if you are using 20 plot size.. you want this to be 40 plot size distance from each other. To acheive a 40 plot size check the positioned starting point would be ~-20 and the dx would be 40.. to acheive a 20 plot size check the positioned would be ~-10 and the dx= would be 20. Hope this helps.
execute at @s positioned ~-40 0 ~-40 run execute at
@e[type=armor_stand,name="homeplot",scores={myplayerid=1..},dx=80,dy=255,dz=80] run tellraw @s {"text":"Home not set. Too close to other another home.","color":"red"}
execute at @s positioned ~-40 0 ~-40 run execute at @e[type=armor_stand,name="homeplot",scores={myplayerid=1..},dx=80,dy=255,dz=80] run scoreboard players set @s sethome 0
function PLOT_UPDATE_MAIN
these are the primary checks, and there are a few. theres one for spawn, one for server placed protected zones.. the ones you want are for player plots and group invite checks. ill show them below
#here is your main plot checks
execute at @s positioned ~-30 0 ~-30 if score @s myplayerid = @e[limit=1,sort=nearest,name="homeplot",dx=60,dy=255,dz=60] myplayerid run scoreboard players set @s currentplot 2
execute at @s positioned ~-30 0 ~-30 unless score @s myplayerid = @e[limit=1,sort=nearest,name="homeplot",dx=60,dy=255,dz=60] myplayerid run scoreboard players set @s currentplot 3
and here is your group invite check
execute at @s[gamemode=adventure] positioned ~-30 0 ~-30 run execute at @e[type=armor_stand,name="groupinvite",tag=groupinvite,dx=60,dy=255,dz=60] run gamemode survival @s
function plot_update_remove
execute at @s[scores={function_out_b=0,removehome=1,sethome=2}] positioned ~-30 0 ~-30 run kill @e[type=armor_stand,name="homeplot",dx=60,dy=255,dz=60]
execute at @s[scores={function_out_b=0,removehome=1,sethome=2}] positioned ~-30 0 ~-30 run kill @e[type=armor_stand,name="groupinvite",dx=60,dy=255,dz=60]
function plot_update_newclaim
execute at @s[scores={currentplot=2}] positioned ~-30 0 ~-30 run scoreboard players operation @e[name="homeplot",scores={myplayerid=0},dx=60,dy=255,dz=60] myplayerid = @s myplayerid
function plot_update_remove
execute at @s[scores={function_out_b=0,removehome=1,sethome=2}] positioned ~-30 0 ~-30 run kill @e[type=armor_stand,name="homeplot",dx=60,dy=255,dz=60] execute at @s[scores={function_out_b=0,removehome=1,sethome=2}] positioned ~-30 0 ~-30 run kill @e[type=armor_stand,name="groupinvite",dx=60,dy=255,dz=60]
function plot_update_newclaim
execute at @s[scores={currentplot=2}] positioned ~-30 0 ~-30 run scoreboard players operation @e[name="homeplot",scores={myplayerid=0},dx=60,dy=255,dz=60] myplayerid = @s myplayerid
It was not running the function because I had the glowing item frames in the list as well. In 1.16 this causes the code to break. I will re-add the glowing frames to this function when 1.17 is out.