CurseForge · Minecraft mod
Beadmatica
An extension mod for Brainlayers which allows players import their bead file(in json) into games.
Quick answer
Which Beadmatica release should I use?
beadmatica-1.2.0.jar targets 1.20.1 with Forge. The project page does not say whether this file belongs on the client, dedicated server, or both. All 1 required mods have matching files.
Where it goes
Is Beadmatica required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does beadmatica-1.2.0.jar need?
beadmatica-1.2.0.jar. Change the file and its required mods may change too.
Install Brainlayers Reforged (Unofficial ver.) first. We found matching files for this game-version and loader setup.
We only count dependency files that match this setup. A file for another loader does not fill the gap.
Before you install it
Add Beadmatica without breaking your instance.
Built for beadmatica-1.2.0.jar. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use beadmatica-1.2.0.jar. It targets 1.20.1 with Forge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
Install Brainlayers Reforged (Unofficial ver.) first. We found matching files for this game-version and loader setup.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside beadmatica-1.2.0.jar. It opens that exact file at the source.
About this project
What does Beadmatica add?
Beadmatica
A client-side blueprint companion mod for Brainlayers. It lets you import a bead artwork from a JSON file, mount it onto a pegboard table, and see at a glance which beads you are still missing — all without touching the artwork's actual block data.
Background
Brainlayers' pegboard tables have no notion of a "target pattern". You either place beads by hand or eyeball it against a reference image. There is also no way to ask "how many red beads does this 128×128 piece need, and how many do I actually have in my shulker boxes?"
Beadmatica adds both: a server-authoritative blueprint attachment for pegboard tables, and a client-side overlay that renders the blueprint on top of the table and diffs it against your inventory.
What This Does
- Imports blueprints from JSON — a client-side scanner reads
beadBluePrint/*.jsonand parses the same pixel convention Brainlayers uses (0 = empty, otherwise palette index + 1). - Mounts a blueprint onto a table — the blueprint is stored in the block entity's persistent data and survives chunk and world reloads via a
BlockEntitymixin. - Server-authoritative loading — load, unload, refresh, and query all go through a registered network channel, so a blueprint cannot be forged or mounted remotely.
- Renders an in-world overlay — a
PegboardTableRenderertail injection appends the blueprint layer after Brainlayers' own drawing, so the vanilla board is never replaced. - Renders an in-screen overlay and side panel — an
AbstractContainerScreentail injection adds the blueprint overlay, a blueprint selection panel, and a colour list to the pegboard screen. - Diffs against your inventory —
ShulkerCountercounts beads held directly and inside any shulker box you are carrying, then reports only the colours you are short on. - Exports a material list —
MaterialExporterwrites a plain-text missing-bead list through the platform file dialog. - Live refresh — while a pegboard screen is open, the client rescans the blueprint folder on a configurable interval and pushes changes to the server.
Blueprint Format
A blueprint is a JSON file placed in .minecraft/beadBluePrint/. The file name (minus extension) becomes the blueprint name.
{
"boardSize": 16,
"pixels": [0, 0, 1, 0, ...]
}
boardSizemust be one of 16, 32, 64, 128.pixelsmust contain exactlyboardSize * boardSizeentries.- Each entry is
0for an empty cell, otherwise a palette index + 1. - Out-of-range colours are sanitized to empty cells rather than rejected.
- Unknown extra fields and version values are tolerated.
Persistence
BlueprintHolder bridges blueprint data into BlockEntity.getPersistentData(). Because that tag is a Forge addition and is not written by saveAdditional() by default, a BlockEntityMixin copies it into the block entity's own NBT on save and reads it back on load.
Two extra safety behaviours:
setRemovedclears the blueprint from persistent data when the block entity is removed, so a stale blueprint cannot linger.- The loader UUID is stored alongside the blueprint, so ownership can be checked on unload.
Network Protocol
All packets are registered on a single SimpleChannel with protocol version "1".
| Direction | Packet | Purpose |
|---|---|---|
| Serverbound | ServerboundBlueprintLoad |
Mount a blueprint onto a table. Rejected if already loaded by another player. |
| Serverbound | ServerboundBlueprintUnload |
Remove a blueprint. Only the original loader may do this. |
| Serverbound | ServerboundBlueprintRefresh |
Update an already-loaded blueprint (file changed) or drop it (file deleted). |
| Serverbound | ServerboundBlueprintQuery |
Ask the server for the current blueprint at a position. |
| Clientbound | ClientboundBlueprintSync |
Push the loaded/unloaded state of a table to clients. |
Every serverbound handler validates:
- the sender is non-null;
- the target position is within 64 blocks of the player;
- the block entity is actually a
PegboardTableBlockEntity; - the declared board size matches the table's canvas size.
Ownership is enforced on unload: only the UUID that loaded a blueprint may remove it. On load, an existing blueprint may be replaced only by its original loader; anyone else is told to unload first.
Rendering Hooks
| Mixin | Target | What it does |
|---|---|---|
PegboardTableRendererMixin |
PegboardTableRenderer.render |
Appends the blueprint overlay at TAIL. |
AbstractContainerScreenMixin |
AbstractContainerScreen.render |
Renders the overlay, the blueprint panel, and the colour list when the screen is a PegboardScreen. |
AbstractContainerScreenMixin |
AbstractContainerScreen.mouseClicked |
Routes clicks to the blueprint panel first. |
BlockEntityMixin |
BlockEntity.saveAdditional / load / setRemoved |
Persists and clears the blueprint NBT. |
PegboardTableRenderer is final, so the mod does not attempt to replace the registered renderer — that would lose Brainlayers' own drawing. Appending at TAIL keeps both layers intact.
Configuration
Common (beadmatica-common.toml)
scanInterval— how often (in ticks) the client rescans the blueprint folder while a pegboard screen is open.20= 1 second.0disables automatic rescanning.
Client (beadmatica-client.toml)
hudDefault— whether the missing-material HUD is enabled by default.exportDir— default directory for exported material lists. Leave empty to always prompt with a file dialog.
Controls
| Key | Action |
|---|---|
B |
Open the blueprint screen. |
The key mapping is registered under the beadmatica.category category.
Requirements
- Minecraft Forge
- Brainlayers
- Log prefix:
[Beadmatica](viaLogUtils)
Project description from CurseForge.
Pick your setup
Beadmatica by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
1.20.1
1 loader buildCheck the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Beadmatica versions and loaders
beadmatica-1.2.0.jar
8 Oct 2026
beadmatica-1.1.0.jar
6 Oct 2026
beadmatica-1.0.0.jar
4 Oct 2026
Looking for an older file? The official CurseForge project page is in Resources.