diff --git a/docs/advanced/accesstransformers.md b/docs/advanced/accesstransformers.md index e5bb797eb..3e9f95699 100644 --- a/docs/advanced/accesstransformers.md +++ b/docs/advanced/accesstransformers.md @@ -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'; diff --git a/docs/advanced/extensibleenums.md b/docs/advanced/extensibleenums.md index 5390604b1..03e28bd15 100644 --- a/docs/advanced/extensibleenums.md +++ b/docs/advanced/extensibleenums.md @@ -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. diff --git a/docs/advanced/featureflags.md b/docs/advanced/featureflags.md index b1b785e48..91e895b36 100644 --- a/docs/advanced/featureflags.md +++ b/docs/advanced/featureflags.md @@ -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. diff --git a/docs/blockentities/ber.md b/docs/blockentities/ber.md index 35f710f4b..df8543794 100644 --- a/docs/blockentities/ber.md +++ b/docs/blockentities/ber.md @@ -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. diff --git a/docs/blockentities/index.md b/docs/blockentities/index.md index fd95007e4..cbf491260 100644 --- a/docs/blockentities/index.md +++ b/docs/blockentities/index.md @@ -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. diff --git a/docs/blocks/index.md b/docs/blocks/index.md index 4b69c26b6..c0cc2bf13 100644 --- a/docs/blocks/index.md +++ b/docs/blocks/index.md @@ -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. diff --git a/docs/blocks/states.md b/docs/blocks/states.md index 65e9a5495..2a566ae29 100644 --- a/docs/blocks/states.md +++ b/docs/blocks/states.md @@ -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. diff --git a/docs/concepts/events.md b/docs/concepts/events.md index 7cd7d3dc6..0252ffaa5 100644 --- a/docs/concepts/events.md +++ b/docs/concepts/events.md @@ -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'; diff --git a/docs/concepts/registries.md b/docs/concepts/registries.md index 0c261970d..4bd940c80 100644 --- a/docs/concepts/registries.md +++ b/docs/concepts/registries.md @@ -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 diff --git a/docs/concepts/sides.md b/docs/concepts/sides.md index 240a1f906..c29394be3 100644 --- a/docs/concepts/sides.md +++ b/docs/concepts/sides.md @@ -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 diff --git a/docs/datastorage/attachments.md b/docs/datastorage/attachments.md index 68d4ba5a3..b1fcf5928 100644 --- a/docs/datastorage/attachments.md +++ b/docs/datastorage/attachments.md @@ -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 diff --git a/docs/datastorage/codecs.md b/docs/datastorage/codecs.md index 3e2d3cb61..c0111d08d 100644 --- a/docs/datastorage/codecs.md +++ b/docs/datastorage/codecs.md @@ -1,4 +1,5 @@ --- +description: How to use codecs to represent data formats. sidebar_position: 2 --- # Codecs diff --git a/docs/datastorage/nbt.md b/docs/datastorage/nbt.md index 6c69b5765..cc5a278d3 100644 --- a/docs/datastorage/nbt.md +++ b/docs/datastorage/nbt.md @@ -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) diff --git a/docs/datastorage/saveddata.md b/docs/datastorage/saveddata.md index d4f1f7c55..ec93a3f99 100644 --- a/docs/datastorage/saveddata.md +++ b/docs/datastorage/saveddata.md @@ -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 diff --git a/docs/datastorage/valueio.md b/docs/datastorage/valueio.md index ccca473e7..f13282c0c 100644 --- a/docs/datastorage/valueio.md +++ b/docs/datastorage/valueio.md @@ -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 diff --git a/docs/entities/attributes.md b/docs/entities/attributes.md index 007194443..5f40605fc 100644 --- a/docs/entities/attributes.md +++ b/docs/entities/attributes.md @@ -1,4 +1,5 @@ --- +description: Special properties of entities that can be changed using a modifier system. sidebar_position: 4 --- # Attributes diff --git a/docs/entities/data.md b/docs/entities/data.md index 5b28ce245..85629f03b 100644 --- a/docs/entities/data.md +++ b/docs/entities/data.md @@ -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 diff --git a/docs/entities/index.md b/docs/entities/index.md index 03a316653..c5988144e 100644 --- a/docs/entities/index.md +++ b/docs/entities/index.md @@ -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 diff --git a/docs/entities/livingentity.md b/docs/entities/livingentity.md index d94b22bb2..b1326a737 100644 --- a/docs/entities/livingentity.md +++ b/docs/entities/livingentity.md @@ -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 diff --git a/docs/entities/renderer.md b/docs/entities/renderer.md index f5fb9817d..e0723e1cf 100644 --- a/docs/entities/renderer.md +++ b/docs/entities/renderer.md @@ -1,4 +1,5 @@ --- +description: How to use entity renderers, entity models, entity render states and other related systems. sidebar_position: 5 --- # Entity Renderers diff --git a/docs/gettingstarted/index.md b/docs/gettingstarted/index.md index 64b0d1e91..f43bd4d4f 100644 --- a/docs/gettingstarted/index.md +++ b/docs/gettingstarted/index.md @@ -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. diff --git a/docs/gettingstarted/modfiles.md b/docs/gettingstarted/modfiles.md index 2367e5882..6cc881105 100644 --- a/docs/gettingstarted/modfiles.md +++ b/docs/gettingstarted/modfiles.md @@ -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. diff --git a/docs/gettingstarted/structuring.md b/docs/gettingstarted/structuring.md index 2f8017726..5575a94fa 100644 --- a/docs/gettingstarted/structuring.md +++ b/docs/gettingstarted/structuring.md @@ -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. diff --git a/docs/gettingstarted/versioning.md b/docs/gettingstarted/versioning.md index 9a0476a38..8fab8563c 100644 --- a/docs/gettingstarted/versioning.md +++ b/docs/gettingstarted/versioning.md @@ -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. diff --git a/docs/inventories/capabilities.md b/docs/inventories/capabilities.md index 661bba46a..d235e5715 100644 --- a/docs/inventories/capabilities.md +++ b/docs/inventories/capabilities.md @@ -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 diff --git a/docs/inventories/container.md b/docs/inventories/container.md index e5afe44da..6b68b1f7d 100644 --- a/docs/inventories/container.md +++ b/docs/inventories/container.md @@ -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 diff --git a/docs/inventories/menus.md b/docs/inventories/menus.md index 4a1148327..1f764c0ab 100644 --- a/docs/inventories/menus.md +++ b/docs/inventories/menus.md @@ -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 diff --git a/docs/items/armor.md b/docs/items/armor.md index f985ced83..d5f766fa2 100644 --- a/docs/items/armor.md +++ b/docs/items/armor.md @@ -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'; diff --git a/docs/items/consumables.md b/docs/items/consumables.md index 9d92bc166..639616167 100644 --- a/docs/items/consumables.md +++ b/docs/items/consumables.md @@ -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 diff --git a/docs/items/datacomponents.md b/docs/items/datacomponents.md index 967392400..6ae871ad6 100644 --- a/docs/items/datacomponents.md +++ b/docs/items/datacomponents.md @@ -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`). diff --git a/docs/items/index.md b/docs/items/index.md index 782dfd99c..657e3919b 100644 --- a/docs/items/index.md +++ b/docs/items/index.md @@ -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. diff --git a/docs/items/interactions.md b/docs/items/interactions.md index 73b55543a..00cb748c6 100644 --- a/docs/items/interactions.md +++ b/docs/items/interactions.md @@ -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 diff --git a/docs/items/mobeffects.md b/docs/items/mobeffects.md index 1b6047b14..c6fd22374 100644 --- a/docs/items/mobeffects.md +++ b/docs/items/mobeffects.md @@ -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 diff --git a/docs/items/tools.md b/docs/items/tools.md index 918b90351..e6a60db71 100644 --- a/docs/items/tools.md +++ b/docs/items/tools.md @@ -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 diff --git a/docs/misc/config.md b/docs/misc/config.md index 5c0414d5b..1d62d2368 100644 --- a/docs/misc/config.md +++ b/docs/misc/config.md @@ -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]. diff --git a/docs/misc/debugprofiler.md b/docs/misc/debugprofiler.md index 7142ee825..c4bccc6ef 100644 --- a/docs/misc/debugprofiler.md +++ b/docs/misc/debugprofiler.md @@ -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. diff --git a/docs/misc/gametest.md b/docs/misc/gametest.md index d50d78ac0..8d1925873 100644 --- a/docs/misc/gametest.md +++ b/docs/misc/gametest.md @@ -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'; diff --git a/docs/misc/identifier.md b/docs/misc/identifier.md index a8a265002..28d27a2eb 100644 --- a/docs/misc/identifier.md +++ b/docs/misc/identifier.md @@ -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 `:`. diff --git a/docs/misc/keymappings.md b/docs/misc/keymappings.md index c244c13db..1c7120c1d 100644 --- a/docs/misc/keymappings.md +++ b/docs/misc/keymappings.md @@ -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]. diff --git a/docs/misc/updatechecker.md b/docs/misc/updatechecker.md index 5c1e8deac..064c2a7ab 100644 --- a/docs/misc/updatechecker.md +++ b/docs/misc/updatechecker.md @@ -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. diff --git a/docs/networking/configuration-tasks.md b/docs/networking/configuration-tasks.md index 8799fa702..623dcd1ce 100644 --- a/docs/networking/configuration-tasks.md +++ b/docs/networking/configuration-tasks.md @@ -1,5 +1,6 @@ --- -sidebar_position: 3 +description: How and why to work with network configuration tasks. +sidebar_position: 4 --- # Using Configuration Tasks diff --git a/docs/networking/index.md b/docs/networking/index.md index 32f572240..fb8cd423a 100644 --- a/docs/networking/index.md +++ b/docs/networking/index.md @@ -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. diff --git a/docs/networking/payload.md b/docs/networking/payload.md index f81c29771..1435bbfb5 100644 --- a/docs/networking/payload.md +++ b/docs/networking/payload.md @@ -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 diff --git a/docs/networking/streamcodecs.md b/docs/networking/streamcodecs.md index a97f5890e..5b5b22f25 100644 --- a/docs/networking/streamcodecs.md +++ b/docs/networking/streamcodecs.md @@ -1,5 +1,6 @@ --- -sidebar_position: 2 +description: A codec-like system for networking formats and serialization. +sidebar_position: 3 --- # Stream Codecs diff --git a/docs/rendering/feature.md b/docs/rendering/feature.md index 039765bf3..884a934da 100644 --- a/docs/rendering/feature.md +++ b/docs/rendering/feature.md @@ -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 diff --git a/docs/rendering/particles.md b/docs/rendering/particles.md index 4368b3852..83711728f 100644 --- a/docs/rendering/particles.md +++ b/docs/rendering/particles.md @@ -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]. diff --git a/docs/rendering/screens.md b/docs/rendering/screens.md index 5321b11a8..94a5eb036 100644 --- a/docs/rendering/screens.md +++ b/docs/rendering/screens.md @@ -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. diff --git a/docs/resources/client/i18n.md b/docs/resources/client/i18n.md index 22f509e54..f19260288 100644 --- a/docs/resources/client/i18n.md +++ b/docs/resources/client/i18n.md @@ -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. diff --git a/docs/resources/client/models/datagen.md b/docs/resources/client/models/datagen.md index fa0f72a57..9bbe04b05 100644 --- a/docs/resources/client/models/datagen.md +++ b/docs/resources/client/models/datagen.md @@ -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. diff --git a/docs/resources/client/models/index.md b/docs/resources/client/models/index.md index f885a701b..d6108e058 100644 --- a/docs/resources/client/models/index.md +++ b/docs/resources/client/models/index.md @@ -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. diff --git a/docs/resources/client/models/items.md b/docs/resources/client/models/items.md index 6f53ea60c..045e472d9 100644 --- a/docs/resources/client/models/items.md +++ b/docs/resources/client/models/items.md @@ -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'; diff --git a/docs/resources/client/models/modelloaders.md b/docs/resources/client/models/modelloaders.md index a38f71990..f717d2e4f 100644 --- a/docs/resources/client/models/modelloaders.md +++ b/docs/resources/client/models/modelloaders.md @@ -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. diff --git a/docs/resources/client/models/modelsystem.md b/docs/resources/client/models/modelsystem.md index 8e68eb895..46efc66bf 100644 --- a/docs/resources/client/models/modelsystem.md +++ b/docs/resources/client/models/modelsystem.md @@ -1,4 +1,7 @@ - +--- +description: A rundown of how a model is transformed from on-disk files into an in-code object, and how this process can be modified by mods. +sidebar_position: 1 +--- # Understanding the Model System Models within Minecraft are simply a list of quads with attached textures. Each part of the modeling process has their own separate implementation, with the underlying model JSON deserialized into an `UnbakedModel`. In the end, each part of the pipelines takes in some `List` and properties necessary for their own pipelines. Some [block entity renderers][ber] also make use of these models. There is no limit to how complex a model may be. diff --git a/docs/resources/client/particles.md b/docs/resources/client/particles.md index 5ce435fe9..3ffb21b1f 100644 --- a/docs/resources/client/particles.md +++ b/docs/resources/client/particles.md @@ -1,3 +1,7 @@ +--- +description: How particles are registered to the game, how they are spawned, how the particles are associated with textures, and what particle types, particle options and particle descriptions are in this context. +sidebar_position: 2 +--- # Particles Particles are visual effects commonly spawned using their associated particle type. They can be spawned both client and server [side], but being mostly visual in nature, critical parts exist only on the physical (and logical) client side. diff --git a/docs/resources/client/sounds.md b/docs/resources/client/sounds.md index 7bbfa5c53..d43e3ade2 100644 --- a/docs/resources/client/sounds.md +++ b/docs/resources/client/sounds.md @@ -1,3 +1,7 @@ +--- +description: How sounds are registered, how they are bundled into sound events, and how they can be played to the player. +sidebar_position: 3 +--- # Sounds Sounds, while not required for anything, can make a mod feel much more nuanced and alive. Minecraft offers you various ways to register and play sounds, which will be laid out in this article. diff --git a/docs/resources/client/textures.md b/docs/resources/client/textures.md index 876492954..8caca80c4 100644 --- a/docs/resources/client/textures.md +++ b/docs/resources/client/textures.md @@ -1,3 +1,7 @@ +--- +description: An overview of Minecraft's texture loading, and the texture metadata specification. +sidebar_position: 1 +--- # Textures All textures in Minecraft are PNG files located within a namespace's `textures` folder. JPG, GIF and other image formats are not supported. The path of [identifiers] referring to textures is generally relative to the `textures` folder, so for example, the identifier `examplemod:block/example_block` refers to the texture file at `assets/examplemod/textures/block/example_block.png`. diff --git a/docs/resources/index.md b/docs/resources/index.md index 5bfdbe60e..3992b1a6c 100644 --- a/docs/resources/index.md +++ b/docs/resources/index.md @@ -1,3 +1,7 @@ +--- +description: What resources are in general, why there is a distinction between assets and data, and how to generate resource files. +sidebar_position: 1 +--- # Resources Resources are external files that are used by the game, but are not code. The most prominent kinds of resources are textures, however, many other types of resources exist in the Minecraft ecosystem. Of course, all these resources require a consumer on the code side, so the consuming systems are grouped in this section as well. diff --git a/docs/resources/server/advancements.md b/docs/resources/server/advancements.md index 74257f51e..846d5354e 100644 --- a/docs/resources/server/advancements.md +++ b/docs/resources/server/advancements.md @@ -1,3 +1,7 @@ +--- +description: How to write and generate advancement files, as well as how to add to related systems, e.g. advancement triggers. +sidebar_position: 1 +--- # Advancements Advancements are quest-like tasks that can be achieved by the player. Advancements are awarded based on advancement criteria, and can run behavior when completed. diff --git a/docs/resources/server/conditions.md b/docs/resources/server/conditions.md index abe513860..c00ae8f9c 100644 --- a/docs/resources/server/conditions.md +++ b/docs/resources/server/conditions.md @@ -1,3 +1,7 @@ +--- +description: How to add load conditions to your data files, making data files only load when those conditions are met. +sidebar_position: 2 +--- # Data Load Conditions Sometimes, it is desirable to disable or enable certain features if another mod is present, or if any mod adds another type of ore, etc. For these use cases, NeoForge adds data load conditions. These were originally called recipe conditions, since recipes were the original use case for this system, but it has since been extended to other systems. This is also why some of the built-in conditions are limited to items. diff --git a/docs/resources/server/damagetypes.md b/docs/resources/server/damagetypes.md index 1280f44fb..213b7f859 100644 --- a/docs/resources/server/damagetypes.md +++ b/docs/resources/server/damagetypes.md @@ -1,3 +1,7 @@ +--- +description: How the damage system in Minecraft works, what the relation between damage sources and damage types is, and where modders can hook into the damage system. +sidebar_position: 3 +--- # Damage Types & Damage Sources A damage type denotes what kind of damage is being applied to an [entity] - physical damage, fire damage, drowning damage, magic damage, void damage, etc. The distinction into damage types is used for various immunities (e.g. blazes won't take fire damage), enchantments (e.g. blast protection will only protect against explosion damage), and many more use cases. diff --git a/docs/resources/server/datamaps/builtin.md b/docs/resources/server/datamaps/builtin.md index 7156658fc..b9c20c509 100644 --- a/docs/resources/server/datamaps/builtin.md +++ b/docs/resources/server/datamaps/builtin.md @@ -1,3 +1,7 @@ +--- +description: A list of the various data map types built into NeoForge. +sidebar_position: 2 +--- # Built-In Data Maps NeoForge provides various built-in [data maps][datamap] for common use cases, replacing hardcoded vanilla fields. Vanilla values are shipped by data map files in NeoForge, so there is no functional difference to the player. diff --git a/docs/resources/server/datamaps/index.md b/docs/resources/server/datamaps/index.md index 3b3eea025..5fa396c5c 100644 --- a/docs/resources/server/datamaps/index.md +++ b/docs/resources/server/datamaps/index.md @@ -1,3 +1,7 @@ +--- +description: How to work with NeoForge's data map system, with a focus on the general concepts, and how to add your own data maps. +sidebar_position: 1 +--- # Data Maps A data map contains data-driven, reloadable objects that can be attached to a registered object. This system allows for more easily data-driving game behavior, as they provide functionality such as syncing or conflict resolution, leading to a better and more configurable user experience. You can think of [tags] as registry object ➜ boolean maps, while data maps are more flexible registry object ➜ object maps. Similar to [tags], data maps will add to their corresponding data map rather than overwriting. diff --git a/docs/resources/server/enchantments/builtin.md b/docs/resources/server/enchantments/builtin.md index 0a446a902..88bf4e426 100644 --- a/docs/resources/server/enchantments/builtin.md +++ b/docs/resources/server/enchantments/builtin.md @@ -1,3 +1,7 @@ +--- +description: An overview of the various enchantment effect components provided by Minecraft, including both the JSON format and the data generation snippets to generate them. +sidebar_position: 2 +--- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docs/resources/server/enchantments/index.md b/docs/resources/server/enchantments/index.md index f90858537..ef1efa840 100644 --- a/docs/resources/server/enchantments/index.md +++ b/docs/resources/server/enchantments/index.md @@ -1,3 +1,7 @@ +--- +description: How the enchantment system in Minecraft works, focusing on the various systems at play and on the JSON file formats. +sidebar_position: 1 +--- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docs/resources/server/loottables/custom.md b/docs/resources/server/loottables/custom.md index 098e92bdf..d06c0d907 100644 --- a/docs/resources/server/loottables/custom.md +++ b/docs/resources/server/loottables/custom.md @@ -1,3 +1,7 @@ +--- +description: How to add custom entries to the various registries that are used in the loot table system. +sidebar_position: 4 +--- # Custom Loot Objects Due to the complexity of the loot table system, there are several [registries] at work, all of which can be used by a modder to add more behavior. diff --git a/docs/resources/server/loottables/glm.md b/docs/resources/server/loottables/glm.md index 04a9f0641..e1e8ff426 100644 --- a/docs/resources/server/loottables/glm.md +++ b/docs/resources/server/loottables/glm.md @@ -1,3 +1,7 @@ +--- +description: How to use NeoForge's Global Loot Modifier system in order to inject your own loot into loot tables, using both built-in and custom options. +sidebar_position: 5 +--- # Global Loot Modifiers Global Loot Modifiers, or GLMs for short, are a data-driven way to modify drops without the need to overwrite dozens or hundreds of vanilla loot tables, or to handle effects that would require interactions with another mod's loot tables without knowing what mods are loaded. diff --git a/docs/resources/server/loottables/index.md b/docs/resources/server/loottables/index.md index ad2b90d3b..8b897def5 100644 --- a/docs/resources/server/loottables/index.md +++ b/docs/resources/server/loottables/index.md @@ -1,3 +1,7 @@ +--- +description: An overview of the different components of loot tables, including loot entries, loot pools, loot conditions, loot functions; as well as using and generating loot tables. +sidebar_position: 1 +--- # Loot Tables Loot tables are data files that are used to define randomized loot drops. A loot table can be rolled, returning a (potentially empty) list of item stacks. The output of this process depends on (pseudo-)randomness. Loot tables are located at `data//loot_table/.json`. For example, the loot table `minecraft:blocks/dirt`, used by the dirt block, is located at `data/minecraft/loot_table/blocks/dirt.json`. diff --git a/docs/resources/server/loottables/lootconditions.md b/docs/resources/server/loottables/lootconditions.md index 706b81aa3..722a7f6ad 100644 --- a/docs/resources/server/loottables/lootconditions.md +++ b/docs/resources/server/loottables/lootconditions.md @@ -1,3 +1,7 @@ +--- +description: A list of the various loot conditions built into Minecraft. +sidebar_position: 2 +--- # Loot Conditions Loot conditions can be used to check whether a [loot entry][entry] or [loot pool][pool] should be used in the current context. In both cases, a list of conditions is defined; the entry or pool is only used if all conditions pass. During datagen, they are added to a `LootPoolEntryContainer.Builder` or `LootPool.Builder` by calling `#when` with an instance of the desired condition. This article will outline the available loot conditions. To create your own loot conditions, see [Custom Loot Conditions][custom]. diff --git a/docs/resources/server/loottables/lootfunctions.md b/docs/resources/server/loottables/lootfunctions.md index f9620d48e..a939bfcf5 100644 --- a/docs/resources/server/loottables/lootfunctions.md +++ b/docs/resources/server/loottables/lootfunctions.md @@ -1,3 +1,7 @@ +--- +description: A list of the various loot functions built into Minecraft. +sidebar_position: 3 +--- # Loot Functions Loot functions can be used to modify the result of a [loot entry][entry], or the multiple results of a [loot pool][pool] or [loot table][table]. In both cases, a list of functions is defined, which is run in order. During datagen, loot functions can be applied to `LootPoolSingletonContainer.Builder`s, `LootPool.Builder`s and `LootTable.Builder`s by calling `#apply`. This article will outline the available loot functions. To create your own loot functions, see [Custom Loot Functions][custom]. diff --git a/docs/resources/server/recipes/builtin.md b/docs/resources/server/recipes/builtin.md index c7288d510..bc31422e3 100644 --- a/docs/resources/server/recipes/builtin.md +++ b/docs/resources/server/recipes/builtin.md @@ -1,3 +1,7 @@ +--- +description: A list of the various recipe types built into Minecraft, both in JSON format and in data generation. +sidebar_position: 2 +--- # Built-In Recipe Types Minecraft provides a variety of recipe types and serializers out of the box for you to use. This article will explain each recipe type, as well as how to generate them. diff --git a/docs/resources/server/recipes/custom.md b/docs/resources/server/recipes/custom.md index 2da631922..5ec2eff73 100644 --- a/docs/resources/server/recipes/custom.md +++ b/docs/resources/server/recipes/custom.md @@ -1,3 +1,7 @@ +--- +description: How to add custom recipes, including recipe inputs, recipe types, recipe serializers, slot displays and other systems that are at play with custom recipes. +sidebar_position: 4 +--- # Custom Recipes To add custom recipes, we need at least three things: a `Recipe`, a `RecipeType`, and a `RecipeSerializer`. Depending on what you are implementing, you may also need a custom `RecipeInput`, `RecipeDisplay`, `SlotDisplay`, `RecipeBookCategory`, and `RecipePropertySet` if reusing an existing subclass is not feasible. diff --git a/docs/resources/server/recipes/index.md b/docs/resources/server/recipes/index.md index 2ae96a380..42b41d4a4 100644 --- a/docs/resources/server/recipes/index.md +++ b/docs/resources/server/recipes/index.md @@ -1,3 +1,7 @@ +--- +description: An overview over the various subsystems at play within the recipe system, and how to use and generate recipes. +sidebar_position: 1 +--- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docs/resources/server/recipes/ingredients.md b/docs/resources/server/recipes/ingredients.md index e3f4dc802..8ec51e488 100644 --- a/docs/resources/server/recipes/ingredients.md +++ b/docs/resources/server/recipes/ingredients.md @@ -1,3 +1,7 @@ +--- +description: How to work with recipe ingredients. +sidebar_position: 2 +--- # Ingredients `Ingredient`s are used in [recipes] to check whether a given [`ItemStack`][itemstack] is a valid input for the recipe. For this purpose, `Ingredient` implements `Predicate`, and `#test` can be called to confirm if a given `ItemStack` matches the ingredient. diff --git a/docs/resources/server/tags.md b/docs/resources/server/tags.md index 16ff16e0f..2c6d95924 100644 --- a/docs/resources/server/tags.md +++ b/docs/resources/server/tags.md @@ -1,3 +1,7 @@ +--- +description: The format, uses, and different kinds of tag files. +sidebar_position: 4 +--- # Tags A tag is, simply put, a list of registered objects of the same type. They are loaded from data files and can be used for membership checks. For example, crafting sticks will accept any combination of wooden planks (items tagged with `minecraft:planks`). Tags are often distinguished from "regular" objects by prefixing them with a `#` (for example `#minecraft:planks`, but `minecraft:oak_planks`). diff --git a/docs/worldgen/biomemodifier.md b/docs/worldgen/biomemodifier.md index adcfc56ed..c4261a9f1 100644 --- a/docs/worldgen/biomemodifier.md +++ b/docs/worldgen/biomemodifier.md @@ -1,3 +1,7 @@ +--- +description: How to use NeoForge's biome modifier system in order to get modded entities, worldgen features etc. to spawn in non-modded biomes. +sidebar_position: 1 +--- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/versioned_docs/version-1.21.10/misc/resourcelocation.md b/versioned_docs/version-1.21.10/misc/resourcelocation.md index f262d56cf..21ce430f9 100644 --- a/versioned_docs/version-1.21.10/misc/resourcelocation.md +++ b/versioned_docs/version-1.21.10/misc/resourcelocation.md @@ -1,3 +1,7 @@ +--- +description: This article explains resource locations, objects used as keys and identifiers in lots of places in Minecraft. It also covers ResourceKeys, a special kind of key that combines a registry name and a resource location. +sidebar_position: 5 +--- # Resource Locations `ResourceLocation`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. A `ResourceLocation` consists of two parts: a namespace and a path, separated by a `:`.