Glossary

May 13, 2017
Glossary
  • Glossary




    Minecraft and Server Terminology(top)

    Bukkit(top)

    The server software API (Application Programming Interface) that platforms such as CraftBukkit and Spigot use. See "Bukkit plugins".

    Bukkit API(top)

    The Application Programming Interface for Bukkit. Provides an easy way to write server-side plugins for Bukkit. Plugins written using the Bukkit API will usually not require constant updating for each release of Bukkit, requiring minimal upkeep time for the developer.

    Bukkit plugins(top)

    Plugins that are written with the Bukkit API, and possibly some internal Minecraft code as well. See "NMS".

    NMS(top)

    Short for net.minecraft.server. This is the Java package that powers Minecraft servers. Plugins using "NMS Code" rely on aspects not exposed through the Bukkit API, and thus may require constant updating to keep up with new releases. Bukkit plugins are advised to use the Bukkit API whenever possible.

    OBC(top)

    Short for org.bukkit.craftbukkit. A few plugins use special functions from OBC to do things that usually aren't possible with NMS or the Bukkit API. Plugins depending on OBC or NMS need to be kept up to date, otherwise they would crash the server they are used on every time CB (CraftBukkit) or Spigot updates to support a new version of Minecraft (ex: 1.7).

    BungeeCord(top)

    BungeeCord is a standalone Java application which acts as a proxy allowing the connection of multiple Minecraft servers. BungeeCord has a primary IP that players connect to, upon connection the proxy puts the player on the define default-server usually the hub. For more information on BungeeCord see BungeeCord plugins and BungeeCord Bukkit-plugins.

    BungeeCord plugins(top)

    BungeeCord plugins are plugins written to run on the BungeeCord proxy. It is recommended that servers that use BungeeCord, use BungeeCord plugins where applicable as it saves on having to install a Bukkit plugin on each individual server and being on the BungeeCord end results in the plugin not touching the main server thread.

    BungeeCord Bukkit-plugins(top)

    BungeeCord Bukkit plugins are plugins that run on the Bukkit server and interact with BungeeCord, some BungeeCord plugins have Bukkit counterparts to perform functions on the Bukkit server on behalf of the BungeeCord plugin as some functions cannot be completed on the BungeeCord end.

    CraftBukkit(top)

    A portmanteau of CraftServer and Bukkit. This is a Minecraft server that allows the installation of Bukkit plugins, and focuses on preserving vanilla behavior, rather than introducing addition configuration or performance optimizations. Compare with "Spigot".

    Spigot(top)

    A fork (the code is cloned and then modified) of CraftBukkit that offers additional features such as enhanced configurability, direct passthrough of player IP addresses from BungeeCord, many performance optimizations and additional API functions. Spigot will generally update to newer Minecraft releases earlier than CraftBukkit, this is because of the deobfuscation method that was introduced on the Minecraft 1.6 release. As of the Minecraft 1.5 release, Spigot became the first Bukkit server software to allow 1.5 clients to join.

    IP address(top)

    The numeric address which identifies each computer connected to the internet. Like a telephone number is for having a conversation with someone, an IP address is how one device communicates with another over the internet. There are two types of IP address: Dynamic or Static. Dynamic IP addresses change every few days/weeks and are the type provided by most home ISPs (internet service provider). This is inconvenient for hosting a server because it's like your telephone number changing every week. Static IP addresses remain the same and are suggested for hosting servers.

    Port(top)

    The port is where the traffic will pass to your Minecraft server software. The default port is 25565, and as such, clients will not need to enter the port when they connect (Minecraft will assume the server is running on the default port). If your port is something other than 25565, setting up SRV records is recommended so the address players use to connect with is simpler/easier to remember. SRV record inform the Minecraft client when they try and connect that the server is actually not on the default port and can be reached on a different port. See "DNS".

    Obfuscation(top)

    How Mojang protects their intellectual property (the net.minecraft.server package). Java binaries can be decompiled easily, so Mojang uses software like RetroGuard to change the names of classes and functions. Vanilla-based variants of server software, like CraftBukkit and Spigot, need to translate the obfuscated names (ex: ag.class) to a human readable name, such that plugins can be developed. Plugins using NMS code must either use reflection or obfuscated names.

    Online-Mode vs. Offline-Mode(top)

    Mojang requires that you purchase a license of the game in order to play on Minecraft servers and singleplayer. Some servers choose to allow non-paid users (users that have not purchased a copy of Minecraft) to play on their server. In order to do this, they need to change their server's mode to offline, making it so Minecraft doesn't try to stop people who didn't buy the game. These servers are often referred to as "cracked" servers. Offline mode servers were designed for developer use to allow developers to test their mods/plugins without needing to purchased additional accounts to test with, offline mode servers also work when Mojang session servers are down. The downside to a public offline mode server is that players can choose the username they want, this allows users to choose the username of a server administrator and to gain administrator permissions.

    Reload(top)

    The reload command is a command that is built into Craftbukkit that simulates the server restarting without kicking off the players, while some server owners like to use this command to avoid kicking players off the server, the use of the reload command is not recommended on production servers. Reloading is designed to be used on non production servers, the use of reload on a production server can have severe consequences such as memory leaks. Some plugins provide an individual reload command that only reloads the plugins individual configuration file, this command can be used on production servers as it does not have the negative side effects that the Bukkit reload command has.

    Restart(top)

    The restart command is a command that is built into Craftbukkit that turns off, and turns back on the server upon execution. Players online before the restart command is executed are kicked off the server with the message defined in the spigot.yml. Restarting is recommended when the goal is to install a new plugin, update a server jar, or update a configuration file. Restarting may also be useful every set period of time (Ex: 12 hours), this frees up server resources and reduces server lag.

    UUID(top)

    A unique string of numbers and letters that represents a Minecraft account. After 1.8, servers use this as the key method of identification for users for items such as a whitelist, and bans. This UUID persists through username changes, making it an essential way to keep track of players.

    Vanilla(top)

    The Minecraft server that you download from minecraft.net. It is obfuscated, and does not provide any standard API functionality. Vanilla-based servers decompile and convert this into human-readable form and add additional API functionality. Vanilla behavior refers to the server software having the same gameplay mechanics as the vanilla server.

    Hosting Terminology(top)

    Hosting(top)

    The means used to run your Minecraft server on. See GSP, VPS, dedicated servers, homehosting, and colocation for the various options. Options such as VPS, dedicated server, homehosting and colocation also allow for the hosting of services such as a website and voice server in addition to a Minecraft server.

    Overselling(top)

    Overselling occurs with GSPs and VPS providers as resources are shared between clients on the same node (Dedicated server). Overselling is the practice of telling the customer that they will receive a certain set of resources [Ex. 8 GB of RAM] but to sell a larger amount of RAM on a server than the servers maximum capacity. As a result of this, an individual client's server may overlap resources with other servers on the node. Overselling may also occur with other resources such as a CPU.

    Panel(top)

    A web interface that typically provides access to the server console, performing common server tasks, modifying files, scheduling tasks, and collecting server data. These are provided by GSPs, and can be installed (at a price depending on the max player count) on VPSs and dedicated servers. Panels are inherently not easily scriptable (however, McMyAdmin comes with an API), but can be useful in situations where SSH access isn't possible. Panels are useful at times, but may provide issues at other times, for example, in the case a jar is attempted to be used when native support is not available. In scenarios like the one previously mentioned, panels may bring up issues which may be an inconvenience to the user of the panel including returning the server as offline when it is online in reality. Examples include McMyAdmin, Multicraft, TCAdmin SpaceBukkit and others.

    Wrapper(top)

    A program that "wraps", e.g. receives, parses, and sends data to the server console to perform tasks, such as crash detection and recovery, scheduled commands, chat integration with IRC, and other features. Most panels include a server wrapper. mark2 is an example of a pure server wrapper. RemoteToolkit cannot be considered as a pure server wrapper, as it relies on a Bukkit plugin for crash detection and does not perform queries and pings like a true server wrapper. However, some features show characteristics of a server wrapper. Wrappers and panels are recommended over startup scripts for most servers, due to the additional features and scriptability.

    Hosting Options(top)

    Colocation(top)

    Unlike renting dedicated servers where a host allows you usage of a server that you don't own, colocation is where you put your physical server in rented space within a datacenter which then provides it with services such as internet, power and cooling. This is a good solution for larger servers, and can be cheaper in the long run compared to renting dedicated servers.

    Dedicated server(top)

    These are servers in which you have all of the resources allocated to you and full control over the machine (Dedicated server). Dedicated server providers generally are more expensive but are suggested for larger Minecraft servers and networks as they offer more flexibility and power. Dedicated servers are also usually unmanaged, meaning near minimal support is provided by the provider and as a result users are expected to have a full understanding of the Operating System and workings of the server. Concepts necessary to understand when purchasing a dedicated server include the use of SSH [Secure Shell] and a general understanding of networking and server security.

    GSP(top)

    Short for Game Server Provider. These providers typically provide a panel for administering your server (Usually Multicraft, McMyAdmin or TCAdmin). While they may be easier to set up, drawbacks such as: a lack of flexibility and control, overselling (you don't get the resources you pay for), lack of benchmarking and general overpricing are enough to put most off. GSPs are a good starting point for new owners to learn about administering servers but are not recommended for larger servers. This is a form of shared hosting in which several users share resources allocated by the host on their server's node. GSPs consist of hosts which only sell Minecraft hosting and they normally restrict the user in what they can install/customize.

    Homehosting(top)

    This means "hosting on a home internet connection". There is generally disapproval towards homehosting (unless you are testing) because of reasons such as: dynamic IP addresses, messing around with multiple Firewalls and bandwidth/usage limitations by ISPs (internet service provider). In addition, homehosting is usually disapproved of due to issues related to DDoS [Distributed Denial of Service attack] and Dos [Denial of Service attack] attacks, as in the case a home hosted server is hit by an attack, the internet service hosting the server is also hit offline. When debating homehosting, it is also essential to note the hardware in which the server will be hosted on and whether your ISP (Internet Service Provider) allows servers to run off residential internet connections (Most home internet plans). If you already own a suitable server, colocation may be a cheaper option with a faster connection speed and reduced latency (time taken for data to travel between server and client).

    VPS(top)

    Short for Virtual Private Server. This is a form of shared hosting that generally provides more flexibility, better performance and a lower price due to them being unmanaged (Minimal support from the provider). This comes at the expense of a steeper learning curve, though it can be a more rewarding experience. There is the same issue with GSPs in that the host may oversell (not getting all the resources paid for as VPSs are usually grouped together on a main node (Dedicated Server) shared with other customers of your VPS provider) the VPS, though it is often easier to notice when this happens due to the tools available through the provided flexibility. Hosts normally offer administrator/root access to the server and you are generally not restricted in what you can install. These are good starting points for a small to medium-sized Minecraft server, and allow the hosting of other services such as a website or voice server on the same VPS.

    Other Terminology(top)

    CPU(top)

    Short for Central Processing Unit. The CPU is essentially the brain of the computer, it usually handles most data manipulation and calculation. A CPU is a component which exists on both servers and personal computers, including recent smartphones and tablets. In Minecraft Server Hosting, selecting a good CPU is essential as selecting a poor CPU may throttle a server's performance.

    DNS(top)

    Short for Domain Name System. This is how IP addresses are resolved to human-readable names (ex: spigotmc.org resolves to 108.162.205.165). A records directly associate domain names to IP addresses. All domain names consist of a SLD (Second-Level Domain) and a TLD (Top-Level Domain). The TLD is the right-most label (www.example.com) and the SLD is the label left of the TLD (www.example.com). Depending upon the TLD used depends upon whether you have control over the SLD or not. Examples of domain names include spigotmc.org and ovh.co.uk. Subdomains are domains which have another name and dot in front of the domain name. Examples include event.spigotmc.org and www.google.com.

    DDoS and DoS(top)

    DDoS is a type of attack known as a Distributed Denial of Service attack which involves one or multiple people with a goal of disabling a service that is connected to the internet. Usually it is done by the use of multiple compromised servers flooding the target server resulting in the target server become unresponsive and crashing, this is where the denial of service comes from in the name. The distributed comes from the fact that it involves multiple servers, a DoS (Denial of Service attack) is an attack which comes from one location.

    Firewall(top)

    A firewall is a program which is configured on a server to secure a network by only allowing incoming and outgoing connections to occur on certain ports, this is especially useful in scenarios in which BungeeCord is installed to only allow players to connect through the BungeeCord IP. Though, even if BungeeCord is not installed, it is still a recommended security practice to setup a firewall on any server.

    Garbage Collection(top)

    Garbage Collection is built into Java and is a method which cannot be manually triggered, it is only triggered by the JVM (Java virtual Machine) based on heap size. Garbage Collection works to reclaim heap size from objects which are viewed as eligible to the JVM, eligibility is triggered by a variety of events including the object being set to null or the parent object being set to null. Information on tuning Garbage Collection can be viewed here.

    JAR(top)

    A JAR file is a packaged file, that usually combines multiple Java class files and associated resources into a single file for distribution. The abbreviation JAR stands for Java Archive. .jar files are similar to .zip, .rar, .tar and other compressed archive types. JAR files allow easy bundled distribution of everything needed to run an application (such as plugins/server software), make them much more ideal than requiring the end user to individually download all the files they need to run an application. You will see JAR files a lot if running a Minecraft server, this is because plugins along with server software (such as Spigot and BungeeCord) are all distributed as JAR files.

    Java(top)

    The programming language that Minecraft and vanilla-based servers use. May also refer to the Java Virtual Machine, which runs Java programs, and the Java Developer Kit, which compiles Java programs. This is a dependency to run Spigot.

    JDBC(top)

    Java Database Connectivity. JDBC is an API for Java that defines how the plugin (or anything else) may access to a database.

    Stacktrace(top)

    The trace of the method calls that have caused an exception (error). These are very useful in debugging. For more information, see reading stacktraces.

    SQL(top)

    SQL is a query language (Structured Query Language). SQL is not a database management system, SQL is used to insert data, update/delete, create schema and query into a database that supports SQL (ex: MongoDB supports BSON format).

    YAML(top)

    The configuration format which Bukkit-based servers use. YAML files end with the .yml extension. Spacing is extremely important in YAML, so if your config fails to validate, the file can be checked using the Online YAML Parser. Errors, which can usually be found in a console on server startup may also provide an indication as to where the error is occurring in the config (Including the line number and location). As previously mentioned, the most common YAML errors occur from spacing issues as well as the lack of characters such as quotation marks, and semi-colons.
  • Loading...
  • Loading...