How to self-host a Paper Minecraft server on Windows

For the Bedrock Edition folder, see com.mojang.

.minecraft (or simply minecraft in macOS) is the folder Minecraft: Java Edition creates to run from. This folder includes the .jar files, sound, music, resource packs, personal options, worlds, etc.

Below is a table showing the default directory for .minecraft.

Locating the .minecraft folder can be vital for installing a resource pack or locating any made screenshots.

The Windows location in the table above is just the default case. Launchers can set the .minecraft at any path.

On Linux or macOS, the ~ in the path refers to the home directory. Folders starting with a . are hidden by default. In most file managers, hitting Ctrl + H toggles their hidden status. In macOS specifically, since version 10.12 (Sierra), the shortcut ⌘ Command + ⇧ Shift + . toggles the hidden status of files.

If you want to change directory of the .minecraft folder, see Tutorials/Custom Minecraft directory.

For Windows OS and Linux, the contents of nativelog.txt and nativeUpdaterLog.txt can be found within launcher_log.txt when applicable (i.e. the contents ofnativeUpdaterLog.txt will only be present in latest_log.txt after the launcher is updated / launched for the first time).

More Information

How to self-host a Paper Minecraft server on Windows

Community content is available under CC BY-NC-SA unless otherwise noted.

Introduction / Background

Table of Contents

Getting Started
Create Minecraft folder
Create start.bat
Download Paper
Launch Paper server
Join server locally


How to self-host a Paper Minecraft server on Windows

How to self-host a Paper Minecraft server on Windows

Create start. bat🔗

We will be using to generate the necessary file.

This is the file you double-click to start your Minecraft server.

Please reserve some RAM for your OS and more if you wish to also play Minecraft on on the same device.

A minimum of 4 GB is recommended and adjust the memory slider as needed.
Ensure Aikar’s Flags is selected.
Ensure Windows is selected.
Click on the green download button to collect your start.bat.

How to self-host a Paper Minecraft server on Windows

Download Paper🔗

Select the latest build to download (Usually with a higher numerals)

Rename the paper jar downloaded to server

How to self-host a Paper Minecraft server on Windows

Rename the file downloaded as «server»

Launch Paper Server🔗

Double click start or start.bat to start the server.
(Never double click the server jar directly)

How to self-host a Paper Minecraft server on Windows

The black window (console) opened is the server. Please do not close it otherwise it will force shut down your server.

To properly shut down your server, type in «stop» and hit the enter key once then allow sometimes for the shutdown to be done.

Join Server Locally🔗

Assuming you are hosting the server on the same PC you are going to play on, you should be able to join server via localhost now!

How to self-host a Paper Minecraft server on Windows

Anyone connected to your local network should be able to join the server by using your PC’s local IP address.

The local IP address can be aquired by opening up cmd again and enter ipconfig and the line with IPv4 Address will be it!

If you would like your friends to join outside of your network, setting up portfording is likely a required step.

The exact step varies based on your ISP and router manufacturers so it will not be covered here.

key-in your router model number + ISP name + how to portforward as search terms should net you good result on Google.

Closing Notes🔗

Paper Chan’s Hideout Discord

How to self-host a Paper Minecraft server on Windows

How to self-host a Paper Minecraft server on Windows

Fix error code 0x800703e6

Before Jumping right into the solutions bit we’ll thoroughly discuss the factors that might be the reason for you facing this issue.

Дополнительно:  Dev host root

Launch the game as an administrator

Once your computer has restarted, try launching the game if the problem persists continue to the next step.

Start Necessary services

Once all the services have been forced started try launching Minecraft and if the issue still persists continue to the next steps.

Delete Microsoft Store Cache

Once the LocalCache folder has been deleted, Restart Your Computer and try launching the Microsoft store if the issue remains continue to the next step.

Reinstall Xbox Gaming Services

Once your computer has restarted try launching the game, if the issue persists continue to next step.

Reinstall Xbox Identity provider

Updating windows can provide feature enhancement and might fix errors you are facing with certain applications such as Microsoft store, refer to this article to update windows.

Dawood Janjua

Dawood Janjua is a highly skilled technology enthusiast with a wealth of knowledge in Windows troubleshooting and gaming. He holds a CCNA certification and has a proven track record of providing exceptional support to customers. While currently working as an author, Dawood aspires to obtain the prestigious CCIE certification in the future to expand his technical expertise and provide regional-level support. With his passion for gaming and expertise in technology, Dawood is committed to sharing his knowledge with the community to help others improve their skills and knowledge in the field.

SNBT, also known as data tag, is often used in command in Java Edition. It can be described starting with key-value pairs enclosed in curly braces. One common usage of data tags in Java Edition is in commands, used to specify complex data for any entity.

A data tag consists of zero or more attribute-value pairs delimited by commas and enclosed in curly braces. Each attribute-value pair consists of a tag name and the tag’s value, separated by a colon. Some values, however, may be a compound tag and themselves contain attribute-value pairs, allowing a data tag to describe a hierarchical data structure.

Tag’s name can be enclosed with double quotes if necessary.

It is different from the JSON format; hence, any JSON used in NBT, such as raw JSON text, must be enclosed within a string tag.

Generating NBT object

Note that not all properties are added. For example, the value of whether a player is opening a chest won’t be added into NBT object.

A value is added with certain data type. For example, a resource location will be converted to a string value.

These NBT objects will also be stored into game’s save files as NBT files when the game quits or automatically saves. So the data structures that NBT tags describe and the data type for each tag are basically the same ones used in game’s save files. These data structures are described in other articles and commands expect data tags to use the same attribute names (which are case-sensitive):

Conversion to SNBT

A programmatic NBT object would be converted to a SNBT when trying to get it with /data get etc.

And a string is always enclosed by double or single quotes.

Other data types are expressed as the #Data types table above.

Conversion from SNBT

An SNBT will be converted to a programmatic NBT object when parsed by the game.

true and false are converted as 1b and 0b respectively.

If a property needs a value of resource location and gets a tag, the string is converted to a resource location.

If a property needs a value of JSON text and gets a tag, the string is parsed into JSON text object.

If a property needs a boolean value and gets a numeric tag, true if the number is not 0 after some rounding operation and converts to byte.

If a property needs a boolean value and gets a non-numeric tag, the property becomes false.

If a property needs a numeric value of certain type and gets a numeric tag of wrong type, the value gets some rounding operation and converts to the required type.

Дополнительно:  Still waiting for root device при установке хакинтош

If a property needs a numeric value and gets a non-numeric tag, the number becomes 0.

If a property needs a string value and gets a non-string tag, the string becomes an empty string.

If a property needs a list or array of certain type and gets a wrong-type tag, a empty list/array is got.

If a property needs a compound tag and gets a non-compound tag, a empty compound tag is got.

Testing NBT tags

However, the order and number of elements in a byte/long/int array is acknowledged.

The List and Compound tags can be and often are recursively nested. It should also be noted that, in a list of lists, each of the sub-lists can list a different kind of tag.

Minecraft sometimes uses the NBT format inconsistently; in some instances, empty lists may be represented as a list of Byte tags rather than a list of the correct type, or as a list of End tags in newer versions of Minecraft, which can break some older NBT tools.

Additionally, almost every root tag has an empty name string and encapsulates only one Compound or List tag with the actual data and a name. Just like level.dat and servers.dat. For instance:

In Bedrock Edition, the root tag in an NBT file can sometimes be a instead of a .

In Bedrock Edition, all numbers are encoded in little-endian. This includes the size prefix before tag names, values and or values, as well as values in all numeric tags.

This section is missing information about Bedrock Edition NBTs.

Please expand the section to include this information. Further details may exist on the talk page.

JSON is a lightweight text-based data-interchange format. The standard of JSON text is specified at EMCA-404. See also JSON.

JSON is very different from NBT. NBT is a data structure which can be represented by binary file or string. JSON is a text format for data-interchange. There are only six data types in JSON: JsonString, JsonNumber, JsonBoolean, JsonNull, JsonObject, and JsonArray. In NBT, there’re more types for different numbers, and there’re no null and boolean data types. In NBT, there’re list, byte array, int array and long array, and elements in a list or an array must be in the same type. However, in JSON, there’s only JsonArray, in which elements can be in different data types. The key of a tag in SNBT is allowed to be unquoted, while the key of a name-value pair in JSON must be double-quoted.

So conversion between NBT and JSON may lose a lot of information, and at the same time add a lot of redundant information. However, the conversion is sometimes used by vanilla game in Java Edition. Currently used in custom biome’s ambient particle and processor list’s «rule» processor type. Below is how the vanilla game converts them.

Conversion from JSON

The data generator from Minecraft is able to convert uncompressed Stringified NBT files with .snbt extension in an input folder to GZip compressed NBT format files with .nbt extension in an output folder, and vice versa.

The vanilla data generator can convert any GZip compressed NBT format to SNBT format. The file extension of a file can simply be changed, such as level.dat to level.nbt and put in the input folder, and the generator then decodes the GZip compressed NBT data.

The original known version was 19132 as introduced in Beta 1.3, and since then has been updated to 19133 with the Anvil file format, which adds the Int Array tag. The NBT format dates all the way back to Indev with tags 0 to 10 in use.

A valid resource location has a format of namespace:path, where only certain characters can be used.

The preferred naming convention for either namespace or path is snake_case.

Дополнительно:  How can I get root permissions through the Android SDK?

The namespace and the path of an namespaced ID can contain all symbols with the exception of slashes and colons.

Conversion to string

A resource location would be converted to a string by appending its namespace with a : (colon) and its path.

Conversion from string

Unlike that, resource locations can always be converted to strings; some strings cannot be converted to resource locations.

A few restrictions:

When the : is present, the part of the string before the : becomes the namespace, and that after the : becomes the path.

In Java Edition, and in some cases in Bedrock Edition, when the : is absent, minecraft becomes the namespace and the whole string becomes the path.

It is recommended to always include a : in the string format of resource locations.

Here list all places that use resource locations:

In Java Edition, resource locations act mainly as main keys of objects in registries, or file paths of contents in packs. Besides, some customizable or hardcoded contents also use resource locations.

Registries and registry objects

Each registry and each object in registries has a resource location to represent it.

There’s a root registry with resource location of minecraft:root. Other registries are registered into the root registry as its entries.

Resource locations are also used to represent files’ paths in data pack or resource pack.

Locating contents in packs

Given objects from resource packs and data packs are files, the resource locations represent corresponding paths.

Given the type of content we want to locate, we can find out the corresponding pack_type, object_type, and suffix. Then, we can substitute in and find out the final file location of the content.

Registered pack contents

A registried pack content refers to pack content that is registered into a registry when the pack is loaded. For a registried pack content, its resource location works as both main key of registry entry and path of its resource file.

List of registered pack contents

Unlike Java Edition, where there is a unified standard and handling methods of resource location, namespaced identifiers are usually treated as normal strings in Bedrock Edition. Moreover, namespaced identifiers are even not required in some cases (e.g. recipe’s identifier). However, for content creators, it is recommended to always use namespaced identifiers no matter whether required or not.

Registried add-on entries

A registried add-on entry refers to add-on content that is registered with an identifier which is declared in add-on files.

Here is a list of registried add-on entries whose identifiers can be namespaced.

Behavior pack contents

Resource pack contents

A namespace is a domain for content. It is to prevent potential content conflicts or unintentional overrides of objects of the same name.

For example, two data packs add two minigame mechanisms to Minecraft; both have a function named start. Without namespaces, these two functions would clash and the minigames would be broken. When they have different namespaces of minigame_one and minigame_two, the functions would become minigame_one:start and minigame_two:start, which no longer conflict.

The namespace should be distinct for different projects or content creations (e.g. a data pack, a resource pack, a mod, backing data/resource packs for a custom map, etc.)

To prevent potential clashes, the namespace should be as specific as possible.

In either case, these poorly chosen namespaces reduce the exposure of a project and bring difficulties for debugging when there are multiple content creations applied to the game.

Other built-in namespaces

The vanilla Minecraft resource pack declares Realms-oriented language files in the realms namespace (located at assets/realms/lang/.json) and game-related language files in the minecraft namespace, even though translation keys are not resource locations. The realms jar itself also declares its en_us.json language file and its various textures in the realms namespace.

In the IDs of command argument types, a brigadier namespace also appears for command argument types that are native to Brigadier.

Оцените статью
Master Hi-technology
Добавить комментарий