Glossary
Every term in the guide, explained in plain English.
Every term used in this guide, in plain English. Hover a dotted word on any page to see its entry, or search here.
A
- Abstract class
- A class that cannot be created directly. It is a base for other classes, which fill in the methods it leaves empty. Inheritance, interfaces and annotations
- Account
- Your own username and password on the hosted guide, used to save your progress and join the leaderboard. Leaderboard
- Action
- What kind of interaction a PlayerInteractEvent describes: a click, or PHYSICAL for stepping on something. Project: Parkour course with timer
- Action bar
- The short line of text shown just above a player's hotbar, used for quick status messages. Titles, action bars, boss bars and sounds
- Alias
- Another name for the same command, such as /hi for /hello. Commands, part 1: simple commands
- Annotation
- A label starting with @, like @Override or @EventHandler, that gives extra information to Java or to Paper. Inheritance, interfaces and annotations
- API
- The set of classes and methods a plugin or program offers so other developers can use its features from their own code. Working with other plugins
- api-version
- The plugin.yml field that says which Minecraft version a plugin was written for, such as '26.3'. plugin.yml explained
- Argument
- A word typed after a command's name, like Alex and 5 in /paylevels Alex 5. Your code receives them as text. Commands, part 1: simple commands
- Argument node
- A Brigadier node for a value the player chooses, with a name for your code and a type the game checks. Commands, part 2: Brigadier command trees
- Array
- A fixed-size row of values of one type, numbered from 0. String[] args is an array of text. Lists, sets and maps
- Assignment
- Putting a value into a variable with a single =, such as coins = 80; the old value is replaced. Variables and types
- Async
- Running beside the main game loop instead of inside it, so slow work does not freeze the server. Threads, performance and lag
- Async event
- An event that fires off the main thread, such as AsyncChatEvent; its handlers must not change the world directly. Event priorities and canceling
- Async scheduler
- Runs your task on a worker thread, away from any region. It must not touch game objects. Folia and regionized scheduling
- Atomic
- An action that happens completely or not at all, so no other thread can see it half done. Threads, performance and lag
- Attribute
- A number that describes a living thing, such as its maximum health, walking speed or attack damage. Entities and mobs
- Audience
- Anything that can receive messages, titles and sounds: a player, the console, or the whole server. Text and colors with Adventure
- Autocomplete
- IntelliJ's list of names that fit where you are typing; pick one and it writes the full name for you. IntelliJ survival guide
B
- Batching
- Doing work in groups, a limited amount per tick, instead of all at once. Threads, performance and lag
- Block
- One cube of the world at a position. Containers like chests are blocks that also hold an inventory. Blocks and block data
- Block
- Lines of code between curly braces { } that belong together, such as the body of an if or a method. Making decisions: if, else and switch
- Block physics
- How the game reacts when a block changes: sand falls, torches pop off and water flows. Blocks and block data
- BlockData
- The settings of one block, such as which way stairs face or how old a crop is. Blocks and block data
- BlockState
- A snapshot copy of a block including its contents, such as chest items or sign text; call update() to apply changes. Blocks and block data
- BlockType
- The modern object for a kind of block, such as stone. It knows things like hardness and whether the block is solid. Registries, keys and data components
- boolean
- A Java type with only two values, true and false; every condition is a boolean. Variables and types
- Bootstrapper
- An optional class that implements PluginBootstrap and runs very early, before the worlds load, to register commands or registry changes. Paper plugins: paper-plugin.yml, bootstrapper and loader
- Branch
- A separate line of commits, used to try something new without touching the main line of work. Git and GitHub for plugin developers
- Breakpoint
- A red marker on a line of code where the debugger pauses the server so you can look at the values. Debugging like a pro
- Brigadier
- Mojang's command system, used by vanilla Minecraft and by Paper plugins. Commands are trees of typed nodes the game understands. Commands, part 2: Brigadier command trees
- Build tool
- A program that finds libraries, compiles your code and packs it into a jar. Gradle and Maven are build tools. Gradle and Maven reference
- Builder
- An object you configure step by step with chained method calls, then finish with build() to get the real thing. Commands, part 2: Brigadier command trees
- Bytecode
- The compact instructions in .class files that the Java Virtual Machine runs; the same bytecode works on every operating system. How code reads
C
- Cache
- A saved copy of an answer, kept so you do not have to work it out again each time. Threads, performance and lag
- camelCase
- Writing names with a small first letter and a capital at each new word, like sendRichMessage or maxHomes. How code reads
- Cancelable event
- An event that implements Cancellable, so a listener can stop the action with setCancelled(true). Events and listeners
- Case sensitive
- Capital and small letters count as different, so getPlayer and getplayer are two different names in Java. How code reads
- Cast
- Telling Java that a value is a more specific type, written like (Stairs) data; it fails if you are wrong. Inheritance, interfaces and annotations
- Child components
- Pieces of text appended after a component; they copy its style unless they set their own. Text and colors with Adventure
- Chunk
- A 16 by 16 block wide column of the world that the server loads, saves and ticks as one piece. Worlds, locations and movement
- Chunk loading
- Reading or generating a 16 by 16 piece of the world so it can be used. It is one of the slowest things a server does. Threads, performance and lag
- Class
- A named block of Java code that describes a kind of thing, like a blueprint; your plugin is made of classes. Classes and objects
- Class file
- A .class file made by the compiler from one Java class; the jar of a plugin is full of them. Compile Lab
- Classloader
- The part of Java that finds and loads the classes inside a jar; Paper plugins each get their own isolated one. Paper plugins: paper-plugin.yml, bootstrapper and loader
- Classpath
- The list of jars and folders where Java looks for the classes a program uses. Paper plugins: paper-plugin.yml, bootstrapper and loader
- Click event
- An action attached to text, such as running a command or opening a link, that happens when the player clicks it. Text and colors with Adventure
- Client
- The Minecraft game you start from the launcher; it draws the world and sends your clicks and keys to the server. What is a plugin?
- Command
- A word starting with a slash, like /hello, that runs plugin code when a player, the console or a command block uses it. Commands, part 1: simple commands
- Command sender
- Whoever runs a command: a player, the server console or a command block. In Java it is a CommandSender. Commands, part 1: simple commands
- Command tree
- The shape of a Brigadier command: a root word with branches of literals and arguments; each path to a runnable node is a valid command. Commands, part 2: Brigadier command trees
- CommandExecutor
- The classic Bukkit interface for commands: its onCommand method runs a command declared in plugin.yml. Obsolete since Paper 26.3. Commands, part 3: the classic plugin.yml way
- Comment
- A note for humans in code, after // or between /* and */, that the compiler ignores. How code reads
- Commit
- One saved snapshot of your project, with a short message that says what changed. Git and GitHub for plugin developers
- Comparison operator
- An operator such as ==, !=, <, <=, > or >= that compares two values and gives true or false. Operators and math
- Compile
- Turning the Java text you write into .class files the Java runtime can run; Gradle does it before packing the jar. How code reads
- Compile error
- A mistake in the grammar of your code that stops the compiler from building it, reported with a file and line number. How code reads
- compileOnly
- A Gradle setting that uses a library to compile your code but leaves it out of your jar. Working with other plugins
- Compiler
- The tool (javac) that checks your Java source code and translates it into bytecode in .class files. How code reads
- Compiler error
- A message from javac that names the file, the line and what is wrong, so the code cannot be built until you fix it. Compile Lab
- Compiling
- Turning source code into class files and checking it for mistakes, then packing the result into a jar. Compile Lab
- CompletableFuture
- Java's class for a future you can attach steps to, such as thenAccept, which runs when the result is ready. Folia and regionized scheduling
- Component
- Paper's type for formatted text: colors, styles, hover text and click actions in one object. Text and colors with Adventure
- Compound assignment
- A shortcut that changes a variable in place, such as coins += 25 for coins = coins + 25, or kills++. Operators and math
- Concatenation
- Gluing Strings together with +, such as "Hello, " + name; numbers and other values are turned into text. Working with text
- ConcurrentHashMap
- A map that many threads can read and change at the same time without breaking. Threads, performance and lag
- Condition
- A question with a true or false answer, written in round brackets after if, while or for. Making decisions: if, else and switch
- Config file
- A text file next to the plugin, usually config.yml, that the server owner edits to change settings without touching code. Configuration files
- Configuration section
- One indented block of a YAML config file, which you read by name and can look inside for more values. Configuration files
- Console
- The text window where a server prints what it is doing and where you can type server commands without a slash. Build, install and test
- Constant
- A named value that never changes, usually written static final with an UPPER_CASE name, like MAX_ZOMBIES. Variables and types
- Constructor
- The special method that runs when an object is created with new. It has the same name as the class. Classes and objects
- Constructor injection
- Giving a class what it needs, such as your plugin or a manager, through its constructor instead of looking it up. The main class and plugin lifecycle
- Cooldown
- A wait that players must sit out before they can use something again, stored as the time they may act next. Patterns: cooldowns, toggles and player state
- Coordinates
- The three pieces of text that name one library file: group, name and version. Gradle and Maven reference
- CraftBukkit
- The layer inside Paper whose Craft classes, like CraftPlayer, connect the public API to Mojang's server code. Server internals (NMS) with paperweight
- Criteria
- The rule that says what changes an objective's numbers: only your plugin (DUMMY) or the game itself, like health or deaths. Scoreboards, sidebars and teams
- Custom event
- An event class you write yourself and fire with callEvent(), so your plugin or other plugins can react to it. Making your own events
D
- Data component
- One named piece of information stored on an item, such as its name, lore or enchantments, set with item.setData(...). Items and ItemStacks
- Data folder
- Your plugin's own folder, plugins/YourPlugin/, where config.yml and your saved files live. The main class and plugin lifecycle
- Datapack
- A folder or zip of data files that changes game content, such as recipes, loot tables and enchantments, without code. Registries, keys and data components
- Debugger
- An IntelliJ tool that pauses your running plugin at chosen lines so you can inspect values step by step. Debugging like a pro
- Declaration
- The line that creates a variable by giving its type and name, such as int coins; often with a first value. Variables and types
- Decorations
- Text styles such as bold, italic, underlined, strikethrough and obfuscated (scrambled magic text). Text and colors with Adventure
- Decoupling
- Keeping parts of a program independent, so one part can change or be added without editing the others. Making your own events
- Default value
- The value a config read falls back to when the setting is missing from the file. Configuration files
- Delay
- How many ticks the scheduler waits before the first run of a task. Timing and tasks: the scheduler
- depend
- A plugin.yml list of plugins yours cannot work without; if one is missing, Paper does not load yours. plugin.yml explained
- Dependency
- A library your project needs, such as the Paper API, listed in the build file so Gradle can download it. Anatomy of a plugin project
- Dependency injection
- Giving a class the objects it needs through its constructor instead of letting it find them itself. Organizing a bigger plugin
- Deprecated
- Marked by its authors as old and replaced by something better. It may stop working in a later version. Using AI assistants well
- Descriptor
- The small file inside a plugin jar, plugin.yml or paper-plugin.yml, that tells the server the plugin's name, version and main class. Paper plugins: paper-plugin.yml, bootstrapper and loader
- Dev bundle
- A download from PaperMC that holds the server classes and API for one version, so Gradle can compile against them. Server internals (NMS) with paperweight
- Display slot
- A place on the screen that shows one objective: the sidebar, under player names, or the tab list. Scoreboards, sidebars and teams
- do-while loop
- A loop that runs its body first and checks the condition afterward, so it always runs at least once. Loops: doing things many times
- Duration
- A Java object that stands for an amount of time, such as Duration.ofSeconds(3) or Duration.ofMillis(500). Titles, action bars, boss bars and sounds
E
- Eclipse Temurin
- A free, widely used build of Java from the Eclipse Adoptium project; this guide uses Temurin 25. Your toolbox: Java, IntelliJ and Gradle
- Enchantment
- A magical bonus on an item, such as Sharpness or Efficiency. Every enchantment is a constant like Enchantment.SHARPNESS. Items and ItemStacks
- Entity
- Anything in the world that is not a block: players, mobs, arrows, dropped items, minecarts. Entities and mobs
- Entity scheduler
- Runs your task wherever an entity currently is, and calls a retired callback if the entity disappears first. Folia and regionized scheduling
- Entry
- Whatever owns a score on a scoreboard: usually a player's name, but it can be any text such as line-1. Scoreboards, sidebars and teams
- Enum
- A Java type with a fixed list of allowed values, such as LOBBY, PLAYING and SPECTATING. Enums, records and modern Java
- Environment variable
- A named setting that belongs to the operating system, so a program can read it without it being in the code. Git and GitHub for plugin developers
- Escape
- Writing a backslash before a character so it is shown as itself instead of having its special meaning. MiniMessage Studio
- Escape sequence
- A backslash plus a character inside a String that stands for a special character, such as for a new line. Working with text
- Event
- An object Paper creates when something happens in the game, like a player joining or a block breaking, so plugins can react. Events and listeners
- Event handler
- A method marked with @EventHandler that takes one event parameter; Paper calls it whenever that event happens. Events and listeners
- Event priority
- The turn a handler gets for an event: LOWEST runs first, then LOW, NORMAL, HIGH, HIGHEST, and MONITOR last. Event priorities and canceling
- Exception
- Java's way of reporting that something went wrong, like text that is not a number. Unhandled, it stops the current code. Null, exceptions and stack traces
- Executor
- The entity a command acts on. Usually the player who typed it, but /execute as can change it; null for the console. Commands, part 1: simple commands
- Expansion
- A PlaceholderAPI add-on class that answers placeholders with a certain first word, such as coins for %coins_balance%. Working with other plugins
F
- Fall-through
- In a classic switch without break, Java keeps running the code of the following cases too; usually a bug. Making decisions: if, else and switch
- Field
- A variable that belongs to an object and keeps its value for as long as the object lives. Classes and objects
- File mode
- Opening the guide's index.html directly in a browser; examples show recorded output instead of running. Welcome
- Folia
- A fork of Paper that splits the world into regions and ticks each region on its own thread, for very large servers. Folia and regionized scheduling
- for loop
- A loop with a start, a condition and a step in its header, such as for (int i = 0; i < 9; i++). Loops: doing things many times
- For-each loop
- A loop written for (Type item : collection) that runs its body once for every element. Loops: doing things many times
- for-each loop
- A loop that visits every item of an array or collection in turn: for (Player player : players). Loops: doing things many times
- Fork
- A copy of a software project that is continued separately, like Paper being built from Spigot. What is a plugin?
- Format specifier
- A code like %d, %s or %.1f in a String.format template that is replaced by a value. Working with text
- Future
- A promise of a result that will arrive later, like the answer of teleportAsync. You attach code to run when it arrives. Folia and regionized scheduling
G
- Game rule
- A world setting such as keepInventory that you can change with /gamerule or with world.setGameRule. Worlds, locations and movement
- Generic type
- A type with a type in angle brackets, like List<Player> or LiteralCommandNode<CommandSourceStack>, saying what it holds or works with. Lists, sets and maps
- Git
- The most popular version control tool. It runs on your PC and keeps your project's history in a hidden .git folder. Git and GitHub for plugin developers
- GitHub
- A website that stores online copies of Git repositories, so they are backed up and can be shared. Git and GitHub for plugin developers
- Global region
- Folia's special region for server-wide work that belongs to no place, such as weather, time and console commands. Folia and regionized scheduling
- Global region scheduler
- Runs your task on the global region, for server-wide jobs that are not tied to a place. Folia and regionized scheduling
- Gradle
- The build tool that downloads the Paper API, compiles your code and packs it into a plugin jar. Your toolbox: Java, IntelliJ and Gradle
- Gradle wrapper
- The gradlew.bat and gradle/wrapper files that download and run the exact Gradle version a project needs. Anatomy of a plugin project
- Guard clause
- An if statement at the start of a method that returns early when there is nothing to do, keeping the rest of the method flat. Making decisions: if, else and switch
H
- Handle
- The real Minecraft object behind an API object. For a Player it is a ServerPlayer, which you get with getHandle(). Server internals (NMS) with paperweight
- Handler list
- The static HandlerList in every event class that holds all handlers registered for that event. Making your own events
- Hard dependency
- A plugin listed under depend: yours loads only after it and refuses to load at all if it is missing. Working with other plugins
- Hard fork
- A fork that stops copying changes from its parent project and develops on its own, as Paper did from Spigot. What is a plugin?
- Hex color
- A color written as # and six digits or letters, two each for red, green and blue, like #ff8800 for orange. MiniMessage Studio
- Hook
- A small class that holds all the code touching another plugin, created only when that plugin is present. Working with other plugins
- Hot path
- Code that runs very often, such as a handler for player movement. Small waste there adds up fast. Threads, performance and lag
- HotSwap
- Replacing changed method code in a running server while debugging; it cannot add methods, fields or classes. Build, install and test
- Hover event
- A tooltip attached to text; it appears when the player points the mouse at that text. Text and colors with Adventure
I
- IDE
- Integrated development environment: a code editor that understands your code, such as IntelliJ IDEA. Your toolbox: Java, IntelliJ and Gradle
- Identifier
- A name you choose for a class, method or variable; letters, digits, _ and $, not starting with a digit. How code reads
- if statement
- Code that runs a block only when its condition is true, optionally with an else block for when it is false. Making decisions: if, else and switch
- ignoreCancelled
- An @EventHandler setting; with ignoreCancelled = true, Paper skips the handler when the event is already canceled. Event priorities and canceling
- Immutable
- Cannot be changed after it is created. Strings are immutable, so methods like toUpperCase return a new String. Working with text
- Import
- A line at the top of a Java file that tells Java which class you mean, such as import org.bukkit.entity.Player. Packages, imports and visibility
- Index
- A position in a String, array or list, counted from 0, so the first character is at index 0. Working with text
- Infinite loop
- A loop whose condition never becomes false, so it never ends; on a server it freezes the game. Loops: doing things many times
- Inheritance
- A Java type can be a more specific kind of another type and automatically gets everything that type can do. Inheritance, interfaces and annotations
- Instance method
- A method called on a specific object, like player.getHealth(), that works with that object's data. Classes and objects
- Integer division
- Dividing two whole numbers in Java, which drops the decimals: 7 / 2 gives 3, not 3.5. Operators and math
- Interface
- A Java type that lists methods a class promises to have; a class uses implements to make that promise. Inheritance, interfaces and annotations
- Internals
- The parts of the server that are not part of the public API, so nobody promises they will keep working. Server internals (NMS) with paperweight
- Inventory
- A numbered row of slots, each holding an item or nothing. Players, chests and menus all have one. Inventories
- Inventory holder
- An object that owns an inventory. A small holder class acts as a name tag so your plugin can recognize its own menus. Building GUI menus
- Inventory holder
- The object that owns an inventory, such as a chest block, a player or a small class you write to recognize your own menu. Inventories
- ItemMeta
- The older helper object for changing an item's name, lore and enchantments. You reach it safely with item.editMeta(...). Items and ItemStacks
- ItemStack
- A Java object for what sits in one inventory slot: a material, an amount and extra data such as a name or enchantments. Items and ItemStacks
- ItemType
- The modern object for a kind of item, such as the diamond sword. It knows the item's defaults, like its stack size. Registries, keys and data components
- Iteration
- One trip through a loop's body; a loop over 9 slots has 9 iterations. Loops: doing things many times
- Iterator
- An object that walks through a collection one item at a time and can safely remove items. Lists, sets and maps
J
- Jar
- A Java archive: one zip-style file holding compiled classes and resources, the file a plugin is shipped in. What is a plugin?
- Java
- The programming language Minecraft and Paper plugins are written in. Your toolbox: Java, IntelliJ and Gradle
- Javadoc
- The written descriptions above classes and methods in Java source code, shown by IntelliJ with Ctrl+Q. IntelliJ survival guide
- JDK
- The Java Development Kit: Java plus the tools to compile code. Paper 26.3 plugins need JDK 25. Your toolbox: Java, IntelliJ and Gradle
- JRE
- Java Runtime Environment: enough to run Java programs, but without the compiler, so not enough to make plugins. Your toolbox: Java, IntelliJ and Gradle
- JVM (Java Virtual Machine)
- The program that runs Java bytecode. The java command starts one, and a Paper server runs inside one. How code reads
K
- Key
- The name before the colon on a YAML line, such as name or version; the part after the colon is its value. plugin.yml explained
- Keyword
- A word reserved by Java's grammar, such as class, void, if or return, that you cannot use as a name. How code reads
L
- Label
- The name a command was typed with, such as hello in /hello. With aliases, several labels can lead to the same command. Commands, part 1: simple commands
- Lambda
- A short piece of code written with an arrow, like event -> { ... }, that you pass to a method to run later. Lambdas, method references and streams
- Leaderboard
- A public list of the players with the most XP, shown only for people who chose to appear on it. Leaderboard
- Legacy color codes
- The old way to color text with codes like &a or section signs; MiniMessage does not read them. MiniMessage Studio
- Level
- A number that goes up as you collect XP, calculated the same way as the experience level of a Minecraft player. Leaderboard
- Lexicon
- A list of words and phrases with a meaning attached; the classifier uses one to link phrases like "log in" to the right Paper event. Plugin Idea Classifier
- License
- A note that tells other people what they may and may not do with your code. Releasing and sharing your plugin
- Lifecycle event
- A moment in the server's life, such as building the command list, that plugins can hook into with getLifecycleManager(). Commands, part 1: simple commands
- List
- An ordered collection of values in Java, such as the lines of an item's lore. Lists, sets and maps
- Listener
- A class that implements Listener and contains event handlers, so Paper can call your code when events happen. Events and listeners
- Literal
- A value written directly in code, such as 42, 20.0, true or "Hello". Working with text
- Literal node
- A fixed word in a Brigadier command that the player types exactly, such as give in /tools give. Commands, part 2: Brigadier command trees
- Live mode
- The guide opened with Start Guide.cmd, so it can run Java programs, compile plugins and start a test server on your PC. Welcome
- Loader
- An optional class that implements PluginLoader and builds your plugin's classpath, for example by downloading libraries at startup. Paper plugins: paper-plugin.yml, bootstrapper and loader
- Localhost
- An address that always means this computer, used to join a server running on your own PC. Test Server
- Logger
- The object from getLogger() that writes lines to the server console with your plugin's name in front. The main class and plugin lifecycle
- Logical operator
- && (and), || (or) and ! (not), which combine or flip true/false values. Operators and math
- Loop
- Code that runs the same block many times, for example once for every online player. Loops: doing things many times
- Loop body
- The block inside a loop's curly braces; it runs once per round of the loop. Loops: doing things many times
- Lore
- The lines of description text under an item's name in its tooltip. You set it as a list of components. Items and ItemStacks
- LTS
- Long-term support: a Java version, such as 21 or 25, that gets updates for years, so tools and servers settle on it. Your toolbox: Java, IntelliJ and Gradle
M
- Main class
- The one class in a plugin that extends JavaPlugin; plugin.yml names it, and Paper creates it when the plugin loads. The main class and plugin lifecycle
- Main thread
- The thread that runs the game 20 times a second; most Paper API calls, and all world changes, must happen on it. Threads, performance and lag
- Map
- A lookup table in Java: you give it a key, such as a player's UUID, and it gives back the value stored for that key. Lists, sets and maps
- Mappings
- A dictionary that turns scrambled class and method names back into readable ones. Since 26.1 the game ships readable names. Server internals (NMS) with paperweight
- Markdown
- A plain text style where # makes a heading and - makes a list item, used for README files. Releasing and sharing your plugin
- Material
- A fixed list of every block and item type in the game, such as STONE or DIAMOND_SWORD. Blocks and block data
- Maven
- Another Java build tool, configured with a pom.xml file; it does the same job as Gradle and puts jars in target. Gradle and Maven reference
- Memory leak
- Memory that nothing needs any more but that is never freed, so it keeps growing, like a map of players who left long ago. Patterns: cooldowns, toggles and player state
- Merge conflict
- What happens when two branches changed the same lines and Git needs you to choose which version to keep. Git and GitHub for plugin developers
- Method
- A named block of code inside a class that does one job and can be called again and again. Methods: reusable actions
- Method body
- The lines between a method's curly braces; they run every time the method is called. Methods: reusable actions
- Method call
- Running a method by writing its name with round brackets and any arguments, like formatTime(125). Methods: reusable actions
- Method reference
- A short way to pass a method as code, written ClassName::methodName, like HealCommand::healSelf. Lambdas, method references and streams
- MiniMessage
- Paper's text format that uses tags like <gold> and <bold> to color and style messages. MiniMessage: easy formatted text
- MSPT
- Milliseconds per tick: how long the server really needs to finish one tick. It must stay under 50. Threads, performance and lag
N
- Naive Bayes
- A simple way for a computer to learn from examples: it counts which words usually appear with which labels and uses those counts to guess new ones. Plugin Idea Classifier
- Namespace
- The part of a key before the colon. It says who owns the name: minecraft for the game, or your plugin's name. Registries, keys and data components
- Namespaced key
- The name a saved value is stored under, made of your plugin's name and a lowercase word, so it cannot clash with other plugins. Saving data on things: PersistentDataContainer
- NamespacedKey
- A unique name made of an owner and a key, like myplugin:ruby_pickaxe, used for recipes and other game resources. Custom crafting recipes
- Naming convention
- The shared habit of how to write names: camelCase for methods and variables, PascalCase for classes, UPPER_SNAKE_CASE for constants. How code reads
- Nested loop
- A loop inside another loop; the inner loop runs completely for every round of the outer one. Loops: doing things many times
- NMS
- Short for net.minecraft.server: Mojang's own server code, which plugins can reach into but which changes with almost every update. Server internals (NMS) with paperweight
- NoClassDefFoundError
- A crash that happens when your code uses a class from a plugin or library that is not installed on the server. Working with other plugins
- Node
- One step in a command tree, either a fixed word (literal) or a typed value (argument). Commands, part 2: Brigadier command trees
- Non-valued component
- A data component that is only on or off, like unbreakable. Having it is the whole message. Registries, keys and data components
- Null
- Java's word for "no object here". Calling a method on null crashes, so check for it first. Making decisions: if, else and switch
- NullPointerException
- The error Java throws when code calls a method on null, a variable that holds nothing. Null, exceptions and stack traces
O
- Obfuscation
- Scrambling names in compiled code, like a to z, so it is hard to read. Mojang stopped doing this to Minecraft in 26.1. Server internals (NMS) with paperweight
- Object
- One thing created from a class, such as one Player object that stands for one connected person. Classes and objects
- Objective
- A scoreboard item that holds scores and can be shown on screen, for example as the sidebar on the right. Scoreboards, sidebars and teams
- Off-by-one error
- A loop that runs one time too many or too few, often from writing <= where < was needed. Loops: doing things many times
- OfflinePlayer
- A smaller type for a player who may be offline; it knows the name, UUID and play history only. Working with players
- Operator
- A symbol that does something with values, such as + to add, == to compare or && to combine true/false values. Operators and math
- Operator precedence
- The order Java works out operators in: parentheses first, then * / %, then + -, then comparisons, then && and ||. Operators and math
- Overflow
- When a number goes past its type's limit and wraps around, so the largest int plus one becomes a huge negative number. Variables and types
- Overloading
- Several methods with the same name but different parameters; Java picks one by the arguments you pass. Methods: reusable actions
- Override
- To replace a method that a parent class already has with your own version, marked with @Override. Inheritance, interfaces and annotations
P
- Package
- A named folder for Java classes, such as com.example.myplugin, that keeps classes organized and their names unique. Packages, imports and visibility
- Packet
- One small message sent over the network between the server and a player's game, such as 'show this action bar text'. Server internals (NMS) with paperweight
- Paper
- Popular Minecraft server software that runs plugins and adds a large, modern plugin API on top of Bukkit and Spigot. What is a plugin?
- paperweight
- PaperMC's Gradle tooling. The userdev plugin lets your project compile against the server's own classes. Server internals (NMS) with paperweight
- Parameter
- A value a method receives when it is called, listed in the brackets after the method's name, like sender or args. Methods: reusable actions
- Parse
- Read text and turn it into a value, such as Integer.parseInt("64") giving the number 64. Variables and types
- Particle
- A tiny flying picture, like smoke or a heart, that the server shows players; it looks nice but changes nothing. Potion effects, particles and effects
- PATH
- A Windows list of folders that the terminal searches, in order, when you type a program name such as java. Your toolbox: Java, IntelliJ and Gradle
- Pattern matching
- Writing x instanceof Player player checks the type and, if it matches, gives you a ready-to-use variable of that type. Inheritance, interfaces and annotations
- Period
- How many ticks pass between the runs of a repeating task. Timing and tasks: the scheduler
- Permission
- A named right such as myplugin.fly that decides whether a player may use a feature. Permissions
- Permission node
- The dotted text name of a permission, such as myplugin.kit.vip, written from general to specific. Permissions
- Persistent data container
- A notebook attached to a player, block or item that Minecraft saves for you, so your plugin's values survive restarts. Saving data on things: PersistentDataContainer
- PersistentDataContainer
- A small data store attached to a player, block or item, saved with the world. Saving data on things: PersistentDataContainer
- Phases
- The fixed steps Maven runs in order, such as compile, test and package. Asking for one runs all before it. Gradle and Maven reference
- Placeholder
- A tag like <name> in a MiniMessage template that is filled in with a value; Placeholder.unparsed inserts it as plain text. MiniMessage: easy formatted text
- Plugin
- A jar of compiled Java code that a Paper server loads at startup to add features, commands and reactions to the game. What is a plugin?
- Plugin lifecycle
- The fixed order in which Paper loads, enables and disables a plugin, calling onLoad, onEnable and onDisable. The main class and plugin lifecycle
- plugin.yml
- The file in src/main/resources that tells Paper a plugin's name, version, main class, api-version, dependencies and permissions. plugin.yml explained
- plugin.yml
- The small text file inside every plugin jar that tells the server the plugin's name, version, main class and api-version. plugin.yml explained
- Portable
- Code that works unchanged in several environments, here both on Paper and on Folia. Folia and regionized scheduling
- Potion effect
- A timed change to a living thing, like Speed or Regeneration, with a type, a duration in ticks and an amplifier. Potion effects, particles and effects
- PowerShell
- The command language that the Windows 11 terminal runs; it needs a dot and backslash in front of programs in the current folder. Your toolbox: Java, IntelliJ and Gradle
- Primitive type
- One of Java's eight built-in lowercase types: int, long, double, float, boolean, char, byte and short. Variables and types
- Profiler
- A tool that watches a running program and shows which parts use the most time. Threads, performance and lag
- Program
- A list of instructions the computer carries out in order, from top to bottom. How code reads
- Project
- A folder with your plugin's code, resources and build files that IntelliJ opens and Gradle builds. Anatomy of a plugin project
- Projectile
- An entity that flies on its own after being thrown or shot, such as a snowball, an arrow or a fireball. Entities and mobs
- Prompt
- The message you send to an AI assistant. The clearer it is, the better the answer. Using AI assistants well
- Prototype
- The default components every item of one type starts with. A stack stores only what you changed on top. Registries, keys and data components
Q
- Quick fix
- A ready-made correction IntelliJ offers when you press Alt+Enter on a problem, such as adding a missing import. IntelliJ survival guide
R
- Race condition
- A bug where two threads change the same thing at once and the result depends on who is faster. Threads, performance and lag
- Recipe
- A rule that turns ingredients into a result at a crafting table, furnace, stonecutter or smithing table. Custom crafting recipes
- RecipeChoice
- A rule for what an ingredient slot accepts: one item, any of several item types, or one exact custom item. Custom crafting recipes
- Record
- A short way to write a class that just holds values; Java creates the constructor and getters for you. Enums, records and modern Java
- Records
- Short classes that only hold values; Java writes the constructor and readers for you. Enums, records and modern Java
- Refactoring
- Changing how code is organized, such as renaming or moving things, without changing what it does. IntelliJ survival guide
- Region
- A group of nearby loaded chunks that Folia ticks together on one thread, separate from other regions. Folia and regionized scheduling
- Region scheduler
- Runs your task on the region that owns a given location, so it is safe to touch blocks there. Folia and regionized scheduling
- Regionized
- Split into regions that run in parallel, like Folia's world, instead of one single main thread. Folia and regionized scheduling
- Registries
- The game's official lists of things like enchantments, damage types and paintings that can be looked up by key. Registries, keys and data components
- Registry
- The server's list of everything of one kind, such as every sound, that you can look up by its key. Registries, keys and data components
- RegistryAccess
- Paper's front door to every registry. Ask it for a registry by its RegistryKey. Registries, keys and data components
- RegistryKey
- The name of a registry itself, such as RegistryKey.ENCHANTMENT. You pass it to RegistryAccess to get that registry. Registries, keys and data components
- Regular expression
- A short pattern that describes text to look for, such as whole words from a list. Working with text
- Relocation
- Renaming a shaded library's package inside your jar so it cannot clash with another plugin's copy. Gradle and Maven reference
- Remote
- Another copy of your repository somewhere else, such as on GitHub. The usual name for it is origin. Git and GitHub for plugin developers
- Renderer
- The piece that builds the final chat line from the player, the name and the message. Project: Chat formatter and filter
- Repository
- A project together with all its saved history. People usually call it a repo. Git and GitHub for plugin developers
- Resolver
- What selector and position arguments give you: call resolve(source) to turn @p or ~ ~1 ~ into real players or positions. Commands, part 2: Brigadier command trees
- Retired callback
- Code you give the entity scheduler to run instead of your task if the entity is removed before the task could run. Folia and regionized scheduling
- Return value
- The result a method hands back with return; it takes the place of the call in your code. Methods: reusable actions
- Run configuration
- A saved IntelliJ button, like Run Paper Server or Build Plugin Jar, that runs a task with one click. IntelliJ survival guide
- Runtime error
- A problem that happens while code runs, after it compiled fine, such as dividing by zero. Java reports it as an exception. How code reads
S
- ScheduledTask
- The handle you get back from the newer schedulers. You can call cancel() on it to stop the task. Folia and regionized scheduling
- Scheduler
- The part of Paper that runs your code later or repeatedly, measured in ticks, without freezing the server. Timing and tasks: the scheduler
- Scope
- The part of the code where a variable exists: the block, such as a method or if, that created it. Methods: reusable actions
- Score
- The whole number an entry has in an objective; in a sidebar it decides the line's position. Scoreboards, sidebars and teams
- Scoreboard
- Minecraft's built-in system of objectives, scores and teams, behind sidebars, name tag colors and hearts under names. Scoreboards, sidebars and teams
- Scoreboard manager
- The object from Bukkit.getScoreboardManager() that hands out the main scoreboard and new empty scoreboards. Scoreboards, sidebars and teams
- SDK
- Software development kit; in IntelliJ's settings, the JDK a project uses to understand and compile Java. IntelliJ survival guide
- Secret
- Anything that gives access to something, such as a password, token or webhook address. Never put it in Git. Git and GitHub for plugin developers
- Section
- A group of related settings in a YAML file, written as a heading with indented lines under it. Configuration files
- Semantic versioning
- A system of three numbers, MAJOR.MINOR.PATCH, where each number tells how big the change was. Releasing and sharing your plugin
- Serializer
- A converter between a component and another format, such as plain text, old color codes or JSON. Text and colors with Adventure
- Server
- The program that runs a Minecraft world for players to join; Paper is a server, and it runs your plugins. What is a plugin?
- Server console
- The text window of a running server: it prints the log and accepts commands typed without a slash. Test Server
- ServerPlayer
- Mojang's own class for a player on the server. The API's Player is a wrapper around it. Server internals (NMS) with paperweight
- Service
- An interface that a plugin registers with the ServicesManager so that other plugins can use its features. Working with other plugins
- ServicesManager
- Paper's registry where plugins offer interfaces, called services, that other plugins can look up without knowing who provides them. Working with other plugins
- Set
- A collection where each thing is either in or out, with no duplicates, such as the players who have build mode on. Lists, sets and maps
- Shading
- Copying a library's classes into your own jar so the plugin carries everything it needs. Gradle and Maven reference
- Shadow plugin
- The Gradle plugin (com.gradleup.shadow) that adds the shadowJar task for shading and relocation. Gradle and Maven reference
- Shaped recipe
- A crafting recipe where the position of each ingredient in the grid matters, like a pickaxe. Custom crafting recipes
- Shapeless recipe
- A crafting recipe that only needs the right ingredients, in any slots of the grid. Custom crafting recipes
- Short-circuiting
- Java skips the right side of && or || when the left side already decides the answer, which makes null checks safe. Making decisions: if, else and switch
- Short-circuiting
- && and || skip their right side when the left side already decides the answer, which makes null checks safe. Operators and math
- Snapshot
- A copy of something taken at one moment; changing the copy does not change the original until you apply it. Blocks and block data
- Soft dependency
- A plugin listed under softdepend: it loads first when installed, but your plugin still loads without it. Working with other plugins
- softdepend
- A plugin.yml list of plugins yours uses if installed; Paper enables them first but loads yours either way. plugin.yml explained
- Source code
- The text you write in .java files; people can read it, and the compiler turns it into bytecode. How code reads
- spark
- A profiler that Paper includes. The /spark command shows what your server spends its time on. Threads, performance and lag
- Stack trace
- The error report Java prints when code crashes: the exception, then the methods that were running, with file and line numbers. Null, exceptions and stack traces
- Staging area
- The list of changes Git will put into your next commit. git add puts changes on it. Git and GitHub for plugin developers
- Stale object
- A Player object kept after the player left; it no longer stands for anyone in the game. Working with players
- State machine
- A way to organize behavior where something is in exactly one state at a time and events move it to another state. Patterns: cooldowns, toggles and player state
- Statement
- One complete instruction in Java, usually ending with a semicolon, such as IO.println("Hi");. How code reads
- Static
- Belonging to the class itself instead of one object, so you can use it without having an object, like Bukkit.getServer(). Classes and objects
- Static method
- A method that belongs to a class rather than an object, called on the class name, like Math.max(7, 12). Classes and objects
- String
- Java's type for text. A String literal is written between double quotes, like "Hello". Working with text
- StringBuilder
- A changeable text buffer you fill with append and turn into a String with toString; efficient for building long text. Working with text
- Style
- The color, bold, italic and other looks of one piece of text, plus any click or hover action attached to it. Text and colors with Adventure
- Subcommand
- A fixed word after the command name that picks a feature, such as give in /tools give. Commands, part 2: Brigadier command trees
- Superclass
- The parent class a class extends; the child class inherits every method the parent has. Inheritance, interfaces and annotations
- Superinterface
- An interface that another type extends. The type can do everything its superinterfaces can do. Where to go next
- switch
- A statement that compares one value against a list of cases and runs the code for the matching case. Making decisions: if, else and switch
- Switch expression
- An arrow-style switch that produces a value, has no fall-through and must cover every possible input. Making decisions: if, else and switch
- System.nanoTime
- A Java method that returns a very precise timer value in nanoseconds, good for measuring how long code takes. Threads, performance and lag
T
- Tag
- A word in angle brackets, such as gold or /bold, that switches a style on or off in MiniMessage text. MiniMessage: easy formatted text
- TagResolver
- An object that tells MiniMessage what to put in place of a tag, such as a placeholder named name. MiniMessage: easy formatted text
- Tags
- Built-in groups of blocks or items, like Tag.LOGS for every kind of log, kept up to date by Mojang. Blocks and block data
- Task
- One job Gradle knows how to do, such as build, clean or runServer. Build, install and test
- Team
- A group of scoreboard entries that share a name prefix, a color and rules like collisions and name tag visibility. Scoreboards, sidebars and teams
- Terminal
- A window where you type commands instead of clicking. IntelliJ has one built in at the bottom. Your toolbox: Java, IntelliJ and Gradle
- Ternary operator
- A one-line choice between two values: condition ? valueIfTrue : valueIfFalse. Making decisions: if, else and switch
- Tests
- Small programs that call your code and check the result, so the guide can tell you what works and what does not. Practice Arena
- Text block
- A multi-line String written between triple double quotes; line breaks and quotes inside need no escapes. Working with text
- Thread
- One line of work a program runs; a server runs several at once, but the game itself runs on the main thread. Threads, performance and lag
- Thread-safe
- Safe to use from several threads at the same time without breaking. Threads, performance and lag
- Thread-safe
- Safe to use from several threads at the same time without breaking or losing data. Threads, performance and lag
- Tick
- One step of the game loop, one twentieth of a second; 20 ticks make one second. Timing and tasks: the scheduler
- Tick
- One step of the game loop; the server runs 20 ticks per second, so one tick is 50 milliseconds. Timing and tasks: the scheduler
- Tick budget
- The 50 milliseconds the server has to finish all its work in one tick. Threads, performance and lag
- Tile entity
- A block that carries extra data, such as a chest with items, a sign with text or a spawner with a mob type. Blocks and block data
- Toggle
- A switch you flip on and off with the same command. Project: Chat formatter and filter
- Tool window
- A panel on the edge of the IntelliJ window, such as the project tree, Run window, Gradle window or terminal. IntelliJ survival guide
- Toolchain
- A Gradle setting that says which Java version compiles the project; Gradle finds or downloads that Java by itself. Your toolbox: Java, IntelliJ and Gradle
- Tooltip
- Extra text the game shows when the player hovers over something, such as a command suggestion. Commands, part 2: Brigadier command trees
- TPS
- Ticks per second. A healthy server runs exactly 20 of them. Lower means the server is falling behind. Threads, performance and lag
- Transitive dependencies
- Libraries that your library needs in turn. The build tool downloads them automatically. Gradle and Maven reference
- Trigger
- The thing that makes a plugin do something, such as a player joining, a block breaking, a command or a timer. Events and listeners
- Type
- The kind of value a variable can hold, such as int for whole numbers, double for decimals or String for text. Variables and types
- Type inference
- Letting Java work out a variable's type from its value with var; the type is still fixed afterwards. Variables and types
- TypedKey
- A key that also remembers which registry it belongs to, so the compiler can stop you mixing up items and enchantments. Registries, keys and data components
U
- UUID
- A long unique id that every player has and that never changes, even if they rename their account. Time, UUIDs and randomness
V
- Valued component
- A data component that carries a value, like a name (text) or a stack size (number). Registries, keys and data components
- Vanilla
- Plain Minecraft exactly as Mojang makes it, with no plugins, mods or changes. What is a plugin?
- Variable
- A named box that holds a value, such as Player player or int online, so later lines can use it. Variables and types
- Version control
- A tool that saves snapshots of your project so you can look back at old versions and undo mistakes. Git and GitHub for plugin developers
- Version number
- The number that names one release of your plugin, like 1.4.0, so owners know which one they have. Releasing and sharing your plugin
W
- while loop
- A loop that checks its condition before every round and repeats as long as it is true. Loops: doing things many times
- Wrapper
- An object that holds another object and offers a friendlier or safer way to use it. Server internals (NMS) with paperweight
X
- XP
- Experience points: you earn them in this guide by finishing pages and solving practice challenges, and they raise your level. Leaderboard
Y
- YAML
- A text format for settings that uses key: value lines and indentation with spaces; plugin.yml and config.yml are written in it. plugin.yml explained