Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/advanced/accesstransformers.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: A tool to make normally inaccessible fields, methods and classes accessible.
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Expand Down
4 changes: 4 additions & 0 deletions docs/advanced/extensibleenums.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: A system to allow modders to add values to certain Minecraft enums.
sidebar_position: 2
---
# Extensible Enums

Extensible Enums are an enhancement of specific Vanilla enums to allow new entries to be added. This is done by modifying the compiled bytecode of the enum at runtime to add the elements.
Expand Down
4 changes: 4 additions & 0 deletions docs/advanced/featureflags.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: A system to gate content behind toggles that must be switched on world creation.
sidebar_position: 3
---
# Feature Flags

Feature flags are a system that allows developers to gate a set of features behind some set of required flags, that being registered elements, gameplay mechanics, data pack entries or some other unique system to your mod.
Expand Down
4 changes: 4 additions & 0 deletions docs/blockentities/ber.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to add and use block entity renderers and the associated block entity render states.
sidebar_position: 2
---
# BlockEntityRenderer

A `BlockEntityRenderer`, often abbreviated as BER, is used to 'render' [blocks][block] in a way that cannot be represented with a [static baked model][model] (JSON, OBJ, others). For example, this could be used to dynamically render container contents of a chest-like block. A block entity renderer requires the block to have a [`BlockEntity`][blockentity], even if the block does not store any data otherwise.
Expand Down
4 changes: 4 additions & 0 deletions docs/blockentities/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: Storing arbitrary data on blocks using block entities; how to work with them and how to add your own.
sidebar_position: 1
---
# Block Entities

Block entities allow the storage of data on [blocks][block] in cases where [block states][blockstate] are not suitable. This is especially the case for data with a non-finite amount of options, such as inventories. Block entities are stationary and bound to a block, but otherwise share many similarities with [entities], hence the name.
Expand Down
4 changes: 4 additions & 0 deletions docs/blocks/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to add custom blocks, how to work with blocks in general, and how mechanics such as block placing or block breaking work.
sidebar_position: 1
---
# Blocks

Blocks are essential to the Minecraft world. They make up all the terrain, structures, and machines. Chances are if you are interested in making a mod, then you will want to add some blocks. This page will guide you through the creation of blocks, and some of the things you can do with them.
Expand Down
4 changes: 4 additions & 0 deletions docs/blocks/states.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: What blockstates are, what they are commonly used for and how to implement your own.
sidebar_position: 2
---
# Blockstates

Often, you will find yourself in a situation where you want different states of a block. For example, a wheat crop has eight growth stages, and making a separate block for each stage feels wrong. Or you have a slab or slab-like block - one bottom state, one top state, and one state that has both.
Expand Down
1 change: 1 addition & 0 deletions docs/concepts/events.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
dsecription: What events are, how to register event handlers, how to fire and implement your own events, what event buses are, and various other event options.
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
Expand Down
1 change: 1 addition & 0 deletions docs/concepts/registries.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: How registries work, including topics such as registering your own registry objects, querying registries, creating your own registries, and the special datapack registries.
sidebar_position: 1
---
# Registries
Expand Down
1 change: 1 addition & 0 deletions docs/concepts/sides.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Explainer of the differences between the client and server sides, and between logical and physical sides, and how to adapt your mod for them.
sidebar_position: 2
---
# Sides
Expand Down
1 change: 1 addition & 0 deletions docs/datastorage/attachments.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: A system to attach your own data to vanilla systems such as block entities, entities or chunks.
sidebar_position: 4
---
# Data Attachments
Expand Down
1 change: 1 addition & 0 deletions docs/datastorage/codecs.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: How to use codecs to represent data formats.
sidebar_position: 2
---
# Codecs
Expand Down
1 change: 1 addition & 0 deletions docs/datastorage/nbt.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: How Minecraft's NBT file format works and how to use its in-code representations.
sidebar_position: 1
---
# Named Binary Tag (NBT)
Expand Down
1 change: 1 addition & 0 deletions docs/datastorage/saveddata.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: How to use Saved Data, Minecraft's system to store data on a level or world.
sidebar_position: 5
---
# Saved Data
Expand Down
3 changes: 2 additions & 1 deletion docs/datastorage/valueio.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 3
description: How to use the ValueInput and ValueOutput helpers for entity and block entity serialization.
sidebar_position: 2
---
# Value I/O

Expand Down
1 change: 1 addition & 0 deletions docs/entities/attributes.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Special properties of entities that can be changed using a modifier system.
sidebar_position: 4
---
# Attributes
Expand Down
1 change: 1 addition & 0 deletions docs/entities/data.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: How to store data on an entity, as well as how to synchronize that data between sides.
sidebar_position: 2
---
# Data and Networking
Expand Down
1 change: 1 addition & 0 deletions docs/entities/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: Non-static parts of a Minecraft world; how to work with them, what different parts and types there are, common use cases of entities, and how to add your own.
sidebar_position: 1
---
# Entities
Expand Down
1 change: 1 addition & 0 deletions docs/entities/livingentity.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: A subgroup of entities, consisting mainly of mobs and players and featuring a bunch of unique systems such as health, damage and spawning.
sidebar_position: 3
---
# Living Entities, Mobs & Players
Expand Down
1 change: 1 addition & 0 deletions docs/entities/renderer.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: How to use entity renderers, entity models, entity render states and other related systems.
sidebar_position: 5
---
# Entity Renderers
Expand Down
4 changes: 4 additions & 0 deletions docs/gettingstarted/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to set up a NeoForge workspace, and how to run and test your mod.
sidebar_position: 1
---
# Getting Started with NeoForge

This section includes information about how to set up a NeoForge workspace, and how to run and test your mod.
Expand Down
4 changes: 4 additions & 0 deletions docs/gettingstarted/modfiles.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: What the various files included in a typical mod JAR do.
sidebar_position: 2
---
# Mod Files

The mod files are responsible for determining what mods are packaged into your JAR, what information to display within the 'Mods' menu, and how your mod should be loaded in the game.
Expand Down
4 changes: 4 additions & 0 deletions docs/gettingstarted/structuring.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: An overview of the different methods to structure your mod files.
sidebar_position: 3
---
# Structuring Your Mod

Structured mods are beneficial for maintenance, making contributions, and providing a clearer understanding of the underlying codebase. Some of the recommendations from Java, Minecraft, and NeoForge are listed below.
Expand Down
4 changes: 4 additions & 0 deletions docs/gettingstarted/versioning.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How versioning is used in Minecraft, NeoForge and mods.
sidebar_position: 4
---
# Versioning

This article will break down how versioning works in Minecraft and NeoForge, and will give some recommendations for mod versioning as well.
Expand Down
3 changes: 2 additions & 1 deletion docs/inventories/capabilities.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 1
description: What capabilities are, when and how to use them, and how to add your own.
sidebar_position: 2
---
# Capabilities

Expand Down
3 changes: 2 additions & 1 deletion docs/inventories/container.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 0
description: How Minecraft uses the container system to store items in places such as entity or block entity inventories.
sidebar_position: 1
---
# Containers

Expand Down
3 changes: 2 additions & 1 deletion docs/inventories/menus.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 2
description: How menus can be used to provide an interactable front end for a container, covering topics such as menu types, slots, and menu providers.
sidebar_position: 3
---
# Menus

Expand Down
4 changes: 2 additions & 2 deletions docs/items/armor.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
sidebar_position: 5
description: How to add custom armor, both for humanoids and animals, as well as the various assets needed to make them work.
sidebar_position: 6
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Expand Down
3 changes: 2 additions & 1 deletion docs/items/consumables.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 3
description: How to create custom consumable items, e.g. food or drink items, as well as custom animations for them.
sidebar_position: 4
---
# Consumables

Expand Down
4 changes: 2 additions & 2 deletions docs/items/datacomponents.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
sidebar_position: 2
description: What data components are, how to use them with items and how to register your own data component types.
sidebar_position: 3
---

# Data Components

Data components are key-value pairs within a map used to store data on the `Holder` of a registry object. Each piece of data, such as firework explosions or tools, are stored as actual objects on the holder, making the values visible and operable without having to dynamically transform a general encoded instance (e.g., `CompoundTag`, `JsonElement`).
Expand Down
4 changes: 4 additions & 0 deletions docs/items/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to add custom items, how to work with items, and an explanation of the difference between items and item stacks.
sidebar_position: 1
---
# Items

Along with blocks, items are a key component of Minecraft. While blocks make up the world around you, items exist within inventories.
Expand Down
3 changes: 2 additions & 1 deletion docs/items/interactions.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 1
description: What code paths Minecraft takes when left-clicking, right-clicking or middle-clicking with or without an item.
sidebar_position: 2
---
# Interactions

Expand Down
3 changes: 2 additions & 1 deletion docs/items/mobeffects.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 6
description: The differences between mob effects, mob effect instances, potions, potion items, and how to add and work with all of them.
sidebar_position: 7
---
# Mob Effects & Potions

Expand Down
3 changes: 2 additions & 1 deletion docs/items/tools.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 4
description: How to work with and add custom tool items, custom tool materials and item abilities.
sidebar_position: 5
---
# Tools

Expand Down
4 changes: 4 additions & 0 deletions docs/misc/config.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to work with NeoForge's built-in configuration system using the Nightconfig library and the TOML language.
sidebar_position: 1
---
# Configuration

Configurations define settings and consumer preferences that can be applied to a mod instance. NeoForge uses a configuration system using [TOML][toml] files and read with [NightConfig][nightconfig].
Expand Down
4 changes: 4 additions & 0 deletions docs/misc/debugprofiler.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to use Minecraft's built-in debug profiler.
sidebar_position: 2
---
# Debug Profiler

Minecraft provides a Debug Profiler that provides system data, current game settings, JVM data, level data, and sided tick information to find time consuming code. Considering things like `TickEvent`s and ticking `BlockEntity`s, this can be very useful for modders and server owners that want to find a lag source.
Expand Down
4 changes: 4 additions & 0 deletions docs/misc/gametest.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: A way of running unit tests in a mod environment.
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Expand Down
4 changes: 4 additions & 0 deletions docs/misc/identifier.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: A class used widely across Minecraft to identify a file or element location.
sidebar_position: 4
---
# Identifiers

`Identifier`s are one of the most important things in Minecraft. They are used as keys in [registries][registries], as identifiers for data or resource files, as references to models in code, and in a lot of other places. An `Identifier` consists of two parts: a namespace and a path, separated by a `:`.
Expand Down
4 changes: 4 additions & 0 deletions docs/misc/keymappings.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to register and listen for key mappings.
sidebar_position: 5
---
# Key Mappings

A key mapping, or key binding, defines a particular action that should be tied to an input: mouse click, key press, etc. Each action defined by a key mapping can be checked whenever the client can take an input. Furthermore, each key mapping can be assigned to any input through the [Controls option menu][controls].
Expand Down
4 changes: 4 additions & 0 deletions docs/misc/updatechecker.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: An overview of the mod update checker built into NeoForge.
sidebar_position: 6
---
# NeoForge Update Checker

NeoForge provides a very lightweight, opt-in, update-checking framework. If any mods have an available update, it will show a flashing icon on the 'Mods' button of the main menu and mod list along with the respective changelogs. It *does not* download updates automatically.
Expand Down
3 changes: 2 additions & 1 deletion docs/networking/configuration-tasks.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 3
description: How and why to work with network configuration tasks.
sidebar_position: 4
---
# Using Configuration Tasks

Expand Down
4 changes: 4 additions & 0 deletions docs/networking/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: A quick overview of networking.
sidebar_position: 1
---
# Networking

Communication between servers and clients is the backbone of a successful mod implementation.
Expand Down
3 changes: 2 additions & 1 deletion docs/networking/payload.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 1
description: How to register and send custom payloads, i.e., custom network messages, between clients and servers.
sidebar_position: 2
---
# Registering Payloads

Expand Down
3 changes: 2 additions & 1 deletion docs/networking/streamcodecs.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 2
description: A codec-like system for networking formats and serialization.
sidebar_position: 3
---
# Stream Codecs

Expand Down
1 change: 1 addition & 0 deletions docs/rendering/feature.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
description: A high-level overview of rendering features, their difference from pre-baked geometry, the general two-part system of submission and rendering, and various examples for it in Minecraft.
sidebar_position: 1
---
# Features
Expand Down
4 changes: 4 additions & 0 deletions docs/rendering/particles.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: The client-side component of the particle system, i.e., particle rendering.
sidebar_position: 2
---
# Client Particles

Particles are visual effects that polish the game and add immersion. Being mostly visual in nature, critical parts exist only on the physical (and logical) client [side].
Expand Down
4 changes: 4 additions & 0 deletions docs/rendering/screens.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: Minecraft's main system for GUIs; including GUI elements and widgets, screen ticking, input handling, and tying screens to menus.
sidebar_position: 3
---
# Screens

Screens are typically the base of all Graphical User Interfaces (GUIs) in Minecraft: taking in user input, verifying it on the server, and syncing the resulting action back to the client. They can be combined with [menus] to create an communication network for inventory-like views, or they can be standalone which modders can handle through their own [network] implementations.
Expand Down
4 changes: 4 additions & 0 deletions docs/resources/client/i18n.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: Minecraft's implementation of I18n (internationalization) and L10n (localization), on both the code end and the data end.
sidebar_position: 1
---
# I18n and L10n

I18n (short for internationalization) is the way of designing a program to work with multiple languages. L10n (short for localization) is the process of translating text into the user's language. Minecraft implements these using `Component`s.
Expand Down
4 changes: 4 additions & 0 deletions docs/resources/client/models/datagen.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to generate model files through data generation, including model templates, block model generation, blockstate file generation and item model generation.
sidebar_position: 3
---
# Model Datagen

Like most JSON data, block and item models, along with their necessary blockstate files and [client items][citems], can be [datagenned][datagen]. This is all handled through the vanilla `ModelProvider`, with extensions provided by NeoForge via the `ExtendedModelTemplateBuilder`. Since the model JSON itself is similar between block and item models, the datagen code is relatively similar.
Expand Down
4 changes: 4 additions & 0 deletions docs/resources/client/models/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: An overview of Minecraft's model system, including the model file format, blockstate files, model tinting, and how to register custom models.
sidebar_position: 1
---
# Models

Models are JSON files that determine the visual shape and texture(s) of a block or item. A model consists of cuboid elements, each with their own size, that then get assigned a texture to each face.
Expand Down
4 changes: 4 additions & 0 deletions docs/resources/client/models/items.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: An overview of the various properties of client items, and their connections to item models.
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Expand Down
4 changes: 4 additions & 0 deletions docs/resources/client/models/modelloaders.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
description: How to use the custom model loader system, the built-in model loaders, and how to add your own model loaders.
sidebar_position: 4
---
# Custom Model Loaders

A model is simply a shape. It can be a cube, a collection of cubes, a collection of triangles, or any other geometrical shape (or collection of geometrical shape). For most contexts, it is not relevant how a model is defined, as everything will end up baked into a `QuadCollection` anyway. As such, NeoForge adds the ability to register custom model loaders that can transform any model you want into the baked format for the game to use.
Expand Down
Loading
Loading