Plasmid
🟡 Updated this year⚠️ Install Order · 2 steps
Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.
Preview

🔍 Analysis
- 👍 0.5% endorsement rate
- 🏆 #733 of 920 fabric mods in this game by downloads
📋 About This Mod
# Plasmid Plasmid is a library for creating server-side minigames with Fabric. Plasmid does all the boring work relating to minigame implementation, to rather allow focus effort on just the game itself. Plasmid is the core of the (https://nucleoid.xyz/), an effort to build an open source ecosystem for server-side Minecraft minigames. You can view many examples of games implemented with Plasmid on the (https://github.com/NucleoidMC). You may even be interested in playing some of them over on our testing Minecraft server at `nucleoid.xyz`! You can also find us on our (https://nucleoid.xyz/discord) if you have any troubles or queries, or would like to get involved. ## Using This is a mirror of our (https://docs.nucleoid.xyz/plasmid/getting-started/) wiki page and provides a basic introduction to Plasmid concepts. You can view our (https://docs.nucleoid.xyz/plasmid/) for more detailed information. If you would like to get up and running quickly with a basic game setup, clone the (https://github.com/NucleoidMC/plasmid-starter) repository, run `init.py`, and then delete `.git`, `README.md`, and `init.py`. Alternatively, if you are looking for examples of existing implemented games, take a look through the (https://github.com/NucleoidMC) repositories. ### Adding to Gradle Assuming you (https://fabricmc.net/wiki/tutorial:setup), the first step to setting up Plasmid will be adding it to your gradle buildscript. You will need to add the maven repository as well as the plasmid dependency. `PLASMID_VERSION` should be replaced with the latest version from (https://maven.nucleoid.xyz/xyz/nucleoid/plasmid). This tutorial is currently updated for **Plasmid 0.5.x**. ```gradle repositories { maven { url = 'https://maven.nucleoid.xyz/' } } dependencies { // ... modImplementation 'xyz.nucleoid:plasmid:PLASMID_VERSION' } ``` ### Creating a game type A "game type" (`GameType`) is the entry-point to creating a game with Plasmid: they provide a unique identifier for your game, as well as all the information needed for it to be able to call your code when the game starts. Plasmid is designed to encourage data-driven games, and works with the concept of a "game config". A game config is essentially a specific variation of a game type! This may involve a different map to play on, or entirely different game mechanics. A game config is simply defined as a JSON file in a datapack that references your `GameType` and passes along any extra data that may be useful for configuring your game. While this may be a bit more work at first, it is very powerful in allowing games to be much easier to tweak or produce multiple variations of without duplicating code. More on configs later! To register a `GameType`, you will need to call `GameType.register()` in your `ModInitializer` class. A call to register a `GameType` may look something like: ```java GameType.register( new Identifier("plasmid_example", "example"), ExampleGameConfig.CODEC, ExampleGame::open ); ``` Let's break down what is going on here: - `new Identifier("plasmid_example", "example")` - declares the unique identifier for this _game type_ that will be referenced by game config JSONs - `ExampleGameConfig.CODEC` - a `Codec` that will be used to load the game configuration from a JSON file (more on this later!) - `ExampleGame::open` - a method reference to a function that will be used to start your game when a player requests it This naturally will not compile yet: neither `ExampleGame` nor `ExampleGameConfig` exist! Let's get to that. ### Creating our config in code First we will create our `ExampleGameConfig` class, which will hold a `String` field that will be used as a message to send to the player when they join. Java's new (https://docs.oracle.com/en/java/javase/16/language/records.html) are perfect for configs, but not required! ```java public record ExampleGameConfig(String greeting) { } ``` That's simple enough! But we're missing the `CODEC` field that we referenced earlier. What is that about? A `Codec` is a very helpful tool implemented by Mojang's (https://github.com/Mojang/DataFixerUpper) library that essentially allows for convenient serialization and deserialization of a Java object to a JSON file. A more detailed explanation of Codecs by Drullkus can be found (https://gist.github.com/Drullkus/1bca3f2d7f048b1fe03be97c28f87910), but for simple purposes, all you need to know is the pattern for putting them together. Essentially, a Codec describes *how an object is serialized and deserialized*. Simply, they can be created from a list of fields and how those fields should be serialized. It goes like this: ```java public record ExampleGameConfig(String greeting) { public static final Codec<ExampleGameConfig> CODEC
# Plasmid Plasmid is a library for creating server-side minigames with Fabric. Plasmid does all the boring work relating to minigame implementation, to rather allow focus effort on just the game itself.
Plasmid is the core of the (https://nucleoid.xyz/), an effort to build an open source ecosystem for server-side Minecraft minigames. You can view many examples of games implemented with Plasmid on the (https://github.com/NucleoidMC). You may even be interested in playing some of them over on our testing Minecraft server at `nucleoid.xyz`! You can also find us on our (https://nucleoid.xyz/discord) if you have any troubles or queries, or would like to get involved.
## Using This is a mirror of our (https://docs.nucleoid.xyz/plasmid/getting-started/) wiki page and provides a basic introduction to Plasmid concepts. You can view our (https://docs.nucleoid.xyz/plasmid/) for more detailed information.
If you would like to get up and running quickly with a basic game setup, clone the (https://github.com/NucleoidMC/plasmid-starter) repository, run `init.py`, and then delete `.git`, `README.md`, and `init.py`. Alternatively, if you are looking for examples of existing implemented games, take a look through the (https://github.com/NucleoidMC) repositories.
### Adding to Gradle Assuming you (https://fabricmc.net/wiki/tutorial:setup), the first step to setting up Plasmid will be adding it to your gradle buildscript. You will need to add the maven repository as well as the plasmid dependency. `PLASMID_VERSION` should be replaced with the latest version from (https://maven.nucleoid.xyz/xyz/nucleoid/plasmid).
This tutorial is currently updated for Plasmid 0. 5.x.
```gradle repositories { maven { url = 'https://maven.nucleoid.xyz/' } }
dependencies { // ... modImplementation 'xyz.nucleoid:plasmid:PLASMID_VERSION' } ```
### Creating a game type A "game type" (`GameType`) is the entry-point to creating a game with Plasmid: they provide a unique identifier for your game, as well as all the information needed for it to be able to call your code when the game starts.
Plasmid is designed to encourage data-driven games, and works with the concept of a "game config". A game config is essentially a specific variation of a game type! This may involve a different map to play on, or entirely different game mechanics. A game config is simply defined as a JSON file in a datapack that references your `GameType` and passes along any extra data that may be useful for configuring your game. While this may be a bit more work at first, it is very powerful in allowing games to be much easier to tweak or produce multiple variations of without duplicating code. More on configs later!
To register a `GameType`, you will need to call `GameType.register()` in your `ModInitializer` class. A call to register a `GameType` may look something like: ```java GameType.register( new Identifier("plasmid_example", "example"), ExampleGameConfig. CODEC, ExampleGame::open ); ```
Let's break down what is going on here: - `new Identifier("plasmid_example", "example")` - declares the unique identifier for this _game type_ that will be referenced by game config JSONs - `ExampleGameConfig. CODEC` - a `Codec` that will be used to load the game configuration from a JSON file (more on this later!) - `ExampleGame::open` - a method reference to a function that will be used to start your game when a player requests it
This naturally will not compile yet: neither `ExampleGame` nor `ExampleGameConfig` exist! Let's get to that.
### Creating our config in code First we will create our `ExampleGameConfig` class, which will hold a `String` field that will be used as a message to send to the player when they join. Java's new (https://docs.oracle.com/en/java/javase/16/language/records.html) are perfect for configs, but not required!
```java public record ExampleGameConfig(String greeting) { } ```
That's simple enough! But we're missing the `CODEC` field that we referenced earlier. What is that about?
A `Codec` is a very helpful tool implemented by Mojang's (https://github.com/Mojang/DataFixerUpper) library that essentially allows for convenient serialization and deserialization of a Java object to a JSON file. A more detailed explanation of Codecs by Drullkus can be found (https://gist.github.com/Drullkus/1bca3f2d7f048b1fe03be97c28f87910), but for simple purposes, all you need to know is the pattern for putting them together.
Essentially, a Codec describes how an object is serialized and deserialized. Simply, they can be created from a list of fields and how those fields should be serialized. It goes like this:
```java
public record ExampleGameConfig(String greeting) {
public static final Codec
📊 Mod Details
- Game
- Minecraft Mods
- Author
- Patbox
- Version
- 0.7.2+26.2
- Downloads
- 4,464
- Endorsements
- 24
- Category
- fabric
- Created
- 7/29/2023
- Updated
- 6/27/2026
- Game Versions
- 26.2
- Tags
- library, minigame
🔧 How to Install Minecraft Mods Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Mods →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Mods commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Mods versions does Plasmid support?
The author lists 26.2. Other versions may work but are untested by the author.
What is the latest version of Plasmid?
Version 0.7.2+26.2, published 2026-06-27 with 4,464 downloads recorded at the source.
Keep browsing — more Minecraft Mods mods await