Skip to content

Instantly share code, notes, and snippets.

@IMB11
Last active June 9, 2023 21:48
Show Gist options
  • Save IMB11/029d3f75e713a500586ffbb9cf837d94 to your computer and use it in GitHub Desktop.
Save IMB11/029d3f75e713a500586ffbb9cf837d94 to your computer and use it in GitHub Desktop.
Wiki start doku rewrite
====== Welcome to the Fabric Wiki! ======
This resource is dedicated to Fabric, Fabric is a modular modding toolchain targeting Minecraft: Java Edition 1.14 and above, including snapshots.
Some pages on the wiki may be out-of-date or a work in progress.
https://fabricmc.net/wiki/wiki_meta
This wiki is also available in the following languages:
* {{:china.png?nolink&32|}} [[zh_cn:start|简体中文 (Simplified Chinese)]]
* {{:france.png?nolink&32|}} [[fr:accueil|Français (French)]]
* {{:germany.png?nolink&32|}} [[de:start|Deutsch (German)]]
* {{:south-korea.png?nolink&32|}} [[ko_kr:start|한국어 (Korean)]]
* {{:russia.png?nolink&32|}} [[ru:start|Русский (Russian)]]
* {{:japan.png?nolink&32|}} [[ja:start|日本語 (Japanese)]]
**Make sure to check out [[community_discords|our community spaces]], and read our [[rules|Community Rules]]!**
* [[faq:user|Frequently Asked Questions (from users)]]
* [[faq:expert|Frequently Asked Questions (expert mode)]] - a supplement to the above with more detailed answers
====== Player Tutorials ======
If you wish to use Fabric as a player, server administrator or modpack developer, you should view the [[player:tutorials:start|Player Tutorials]] section of the wiki.
* [[player:tutorials:start#installing_fabric_loader|Installing Fabric Loader]]
* [[player:tutorials:start#updating_fabric_loader|Updating Fabric Loader]]
* [[player:tutorials:start#installing_java|Installing Java]]
* [[player:tutorials:start#troubleshooting|Troubleshooting]]
----
====== Modpack and Launcher Developers ======
These pages are useful for modpack and launcher developers.
* [[documentation:modpack_related_endpoints|Modpack-related endpoints]]
* [[tutorial:dependency_overrides|Dependency Overrides]] ((:!: //Loader version ''0.11.1'' or later//))
* [[tutorial:mcupdater_modpacks|Using MCUpdater for Fabric modpacks]]
* [[tutorial:technic_modpacks|Publishing Fabric modpacks on Technic]]
* [[tutorial:atlauncher_modpacks|Publishing Fabric modpacks on ATLauncher]]
====== Documentation ======
If you want to learn how the Fabric toolchain works, and what it consists of, you should check out the following pages:
* [[documentation:fabric_mod_json|Structure of fabric.mod.json]]
* [[documentation:fabric_mod_json_spec|fabric.mod.json specification]]
* [[documentation:entrypoint|Entrypoints]]
* [[http://github.com/SpongePowered/Mixin/wiki|Mixin library wiki]]
* [[documentation:rendering|Rendering in Fabric (DRAFT)]]
* [[documentation:build_pipelines|Fabric build pipelines (DRAFT)]]
* [[documentation:fabric_loader|Fabric Loader]]
* [[documentation:fabric_loom|Fabric Loom]]
===== Tutorials for Developing with Fabric =====
If you'd like to start developing with Fabric, here are some articles which might interest you.
==== Setup ====
These pages will help you setup a productive development environment and semi-automated releases.
* [[tutorial:setup|Setting up a Development Environment]]
* [[tutorial:minotaur|Publishing Mods on Modrinth with Minotaur]]
* [[tutorial:cursegradle|Publishing Mods on CurseForge with CurseGradle]]
* [[tutorial:publishing_mods_using_github_actions|Publishing mods on CurseForge, Modrinth & GitHub with MC-Publish]]
==== Basics ====
These pages are essential must-reads when modding with Fabric, and modding Minecraft in general, if you are new to modding, it is recommended you read the following.
* [[tutorial:primer|Introduction to Modding Minecraft in General]]
* [[tutorial:introduction|Introduction to Modding with Fabric]]
* [[tutorial:reading_mc_code|Reading the Minecraft source]]
* Conventions and Terminology
* [[tutorial:terms|Basic Conventions and Terminology]]
* [[tutorial:side|Server and Client Side Terminology]]
* Registries
* [[tutorial:registry|Intro to Registries]]
* [[tutorial:registry_types|Standard Registries]]
* Development Tools
* [[tutorial:libraries|Third-party Library Mods]]
* [[tutorial:applychanges|Applying Changes without Restarting Minecraft]]
* [[tutorial:lang|Creating a lang file]]
* [[tutorial:mappings|Using Mappings]]
==== Items ====
These pages will guide you on the creation of items, such as tools, armor and food. Alongside crafting recipes and enchantments.
* [[tutorial:items_docs|Item Documentation]]
* [[tutorial:items|Practical Example: Adding an Item]]
* [[tutorial:itemgroup|Creating an ItemGroup for your items]]
* [[tutorial:tooltip|Adding a custom tooltip to your item]]
* [[tutorial:recipes|Adding a Crafting Recipe]]
* [[tutorial:armor|Adding Armor]]
* [[tutorial:tools|Adding Tools]]
* [[tutorial:shield|Adding a Shield]]
* [[tutorial:enchantments|Adding Custom Enchantments]]
* [[tutorial:model_predicate_providers|Adding Model Predicate Providers]]
==== Blocks and Block Entities====
These pages will guide you through the creation of blocks, storage of items and data in blocks via block entities, and the creation of models and blockstates.
* [[tutorial:blocks|Adding a Block]]
* [[tutorial:blockstate|Giving a Block State]]
* [[tutorial:directionalblock|Making a Directional Block]]
* [[tutorial:waterloggable|Make the Block Waterloggable]]
* [[tutorial:blockentity|Adding a BlockEntity]]
* [[tutorial:inventory|Storing Items in a Block as an Inventory]]
* [[tutorial:colorprovider|Dynamically Change the Color of a Block or Item]]
* [[tutorial:blockappearance|Manipulating a Block's Appearance]]
* [[tutorial:dynamic_block_rendering|Rendering Blocks and Items Dynamically]]
* [[tutorial:custom_model|Rendering Blocks and Items Dynamically using a custom Model]]
* [[tutorial:blockentityrenderers|Rendering Blocks and Items Dynamically using Block Entity Renderers]]
* [[tutorial:screenhandler|Creating a Container Block]]
* [[tutorial:extendedscreenhandler|Syncing Custom Data with Extended ScreenHandlers]]
* [[tutorial:propertydelegates|Syncing Integers with PropertyDelegates]]
* [[tutorial:crops|Adding a Custom Crop]]
==== Data Generation ====
These pages will guide you through the [[https://github.com/FabricMC/fabric/tree/HEAD/fabric-data-generation-api-v1|Fabric Data Generation API]], which generates JSON files through data generators.
* [[tutorial:datagen_setup|Getting started using Data Generation]]
* [[tutorial:datagen_advancements|Advancements Generation]]
* [[tutorial:datagen_loot|Loot Table Generation]]
* [[tutorial:datagen_model|Model Generation]]
* [[tutorial:datagen_tags|Tag Generation]]
* [[tutorial:datagen_recipe|Recipe Generation]]
* [[tutorial:datagen_language|Language File Generation]]
==== World Generation ====
These pages will guide you through world generation concepts.
* [[tutorial:dimensionconcepts|Dimension Concepts]]
* [[tutorial:ores|Generating Custom Ores]]
* [[tutorial:features|Adding Features]]
* [[tutorial:trees|Adding Trees (Advanced)]]
* [[https://misode.github.io/guides/adding-custom-structures/|Adding Structure Features]] (third-party tutorial)
* [[https://minecraft.fandom.com/wiki/Biomes/JSON_format|Adding Biomes]] (vanilla tutorial)
* [[tutorial:biomes|Adding Biomes in old versions]]
* [[tutorial:chunkgenerator|Custom Chunk Generators (DRAFT)]]
* [[tutorial:world_presets|Adding World Presets]]
* [[https://minecraft.fandom.com/wiki/Custom_dimension|Adding Dimensions]] (vanilla tutorial)
* [[tutorial:custom_portals|Creating a Custom Portal]]
==== Commands ====
These pages will guide you through [[https://github.com/Mojang/brigadier|Mojang's Brigadier library]] which allows you to create commands with complex arguments and actions.
* [[tutorial:commands|Creating Commands]]
* [[tutorial:command_exceptions|Command Exceptions]]
* [[tutorial:command_suggestions|Command Suggestions]]
* [[tutorial:command_redirects|Command Redirects]]
* [[tutorial:command_argument_types|Command Argument Types]]
* [[tutorial:command_examples|Command Examples]]
==== Events ====
These pages will guide you through using the many events included in [[https://github.com/FabricMC/fabric|Fabric API]], and how to create your own events for you or other mods to use.
* [[tutorial:callbacks|Listening to Events]]
* [[tutorial:events|Creating Custom Events]]
* [[tutorial:adding_to_loot_tables|Adding Items to Existing Loot Tables]]
* [[tutorial:event_index|Event Index (DRAFT)]]
==== Entities ====
* [[tutorial:entity|Adding an Entity]]
* [[tutorial:spawn_egg|Adding a Custom Spawn Egg]]
* [[tutorial:projectiles|Creating a Custom Projectile]]
==== Fluids ====
* [[tutorial:fluids|Creating a Fluid]]
==== Mixins & ASM ====
These pages will guide you through the usage of [[https://github.com/SpongePowered/Mixin|SpongePowered's Mixin library]], which is a highly complex topic. We recommend you read these pages thoroughly.
* [[tutorial:mixin_introduction|Introduction]]
* [[tutorial:mixin_registration|Mixin registration]]
* [[tutorial:mixin_injects|Injects]]
* [[tutorial:mixin_accessors|Accessors and Invokers]]
* [[tutorial:mixin_redirectors|Redirectors]]
* [[tutorial:mixin_redirectors_methods|Method redirectors]]
* [[tutorial:mixin_tips|Tips]]
* [[tutorial:mixin_examples|Examples]]
* [[tutorial:mixin_hotswaps|Hotswapping Mixins]]
* [[tutorial:mixin_export|Exporting Mixin Classes]]
* [[tutorial:accesswideners |Access Wideners]]
* [[tutorial:reflection|Reflection]]
* [[tutorial:interface_injection|Interface Injection]]
==== Miscellaneous ====
:!: //Some of these pages are currently being written.//
* [[tutorial:recipe_types_introduction|Introduction to RecipeTypes]]
* [[tutorial:recipe_type|Adding a recipe type (DRAFT)]]
* [[tutorial:cooking_recipe_type|Adding a cooking recipe type]]
* [[tutorial:mining_levels|Mining Levels]]
* [[tutorial:global_data|Global World Data]]
* [[tutorial:persistent_states|Persistent States]]
* [[tutorial:pixel_raycast|Raycasting]]
* [[tutorial:keybinds|Custom Keybindings]]
* [[tutorial:networking|Networking]]
* [[tutorial:status_effects|Status Effects]]
* [[tutorial:particles|Adding a Particle]]
* [[tutorial:sounds|Playing Sounds]]
* [[tutorial:gamerule|Custom Gamerule]]
* [[tutorial:custom_resources|Custom Data/Resource Pack Resources]]
* [[tutorial:tags|Tag Conventions]]
* [[tutorial:list_of_useful_gists|List of Useful Tutorials]]
* [[tutorial:stats|Adding Player Statistics]]
* [[tutorial:modding_tips|Modding Tips]]
* [[tutorial:datafixer|DataFixers [WIP]]]
* [[tutorial:transfer-api|Fluid, Item and Energy Transfer]]
* [[tutorial:screen|Creating a Screen]]
* [[https://wiki.vg/Debugging|Enabling Log4j Debug Messages]]
==== Yarn ====
* [[tutorial:migratemappings|Updating Yarn mappings in a Java codebase]]
* [[tutorial:updating_yarn|Updating Yarn to a new Minecraft version]]
==== Contribute to Fabric ====
* [[tutorial:feature_procedure|The Fabric Feature Procedure]]
* [[tutorial:fablabs|FabLabs]]
* [[https://github.com/FabricMC|Fabric on GitHub]]
* [[https://github.com/FabricMC/yarn|Yarn Mappings on GitHub]]
Looking for old tutorials? They've probably been archived. [[tutorial:archived_pages|You can view archived pages here.]]
==== Examples ====
* [[https://github.com/FabricMC/fabric-example-mod|Mod environment template]]
----
===== Contributing to the Wiki =====
* [[wiki_meta|Wiki Meta]] - Starting point for contributing to the wiki
* [[wiki_agenda|Wiki Agenda]] - See what is on the current agenda, and what other contributors are currently working on.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment