Описание
# SimCity Expansion
**Building expansion-pack manager for [New-Simukraft-1.21.1](https://github.com/New-Sim-U-Kraft/New-Simukraft-1.21.1)**
Bring vanilla, Litematica, and WorldEdit structures into the game, convert and install
them as buildable SimuKraft buildings, edit them in a Litematica-style manager, and
share them as one-click zip packs.
[](https://neoforged.net)
[](https://github.com/CancriRecoleta/SimCityExpansion)
[](https://github.com/CancriRecoleta/SimCityExpansion)





[](https://github.com/CancriRecoleta/SimCityExpansion)
---
## Contents
- [Overview](#overview)
- [Features](#features)
- [Requirements and installation](#requirements-and-installation)
- [Opening the manager](#opening-the-manager)
- [The manager](#the-manager)
- [Structure editor](#structure-editor)
- [Capturing builds from the world](#capturing-builds-from-the-world)
- [Build packs](#build-packs)
- [Structure formats](#structure-formats)
- [Directory layout](#directory-layout)
- [Commands](#commands)
- [Documentation](#documentation)
- [Building from source](#building-from-source)
- [License](#license)
- [Acknowledgements](#acknowledgements)
## Overview
SimCity Expansion is a NeoForge mod for Minecraft 1.21.1 that adds a complete building
expansion-pack pipeline to New-Simukraft-1.21.1 (a city-building mod). It lets you import
structures from three common formats, convert them into SimuKraft's buildable format,
organise and edit them through a Litematica-style manager, and package them as portable
zip packs for one-click install and sharing.
Integration with SimuKraft is a **pure file-system convention** — the mod writes `.sk` and
`.nbt` files under `/simukraftbuilding//` — so there is no compile-time
dependency on SimuKraft. The manager is built on Minecraft's own GUI toolkit and needs no
extra library, and the command interface runs on a dedicated server as well.
## Features
- **Three structure formats** — vanilla `.nbt`, Litematica `.litematic` (multi-region
auto-merge), and Sponge/WorldEdit `.schem` (v1/v2/v3), all converted to SimuKraft's
vanilla buildable format on install.
- **Robust conversion** — older structures are upgraded through the game DataFixer,
missing mod blocks are detected against the registry, and block-entity contents
(chest inventories, signs, and so on) are preserved (entities are not).
- **Litematica-style manager** (open with `\`) — file tree, fixed-width info panel,
material list, and layered previews: embedded thumbnail, real-block 3D scene,
isometric voxel view, and top-down map.
- **Full structure editor** — place / break / pick / replace, brush painting, box
selection with fill / frame / hollow / expand, copy / cut / paste, rotate and mirror,
symmetry axis, undo / redo, slice planes, and preset camera views; export to
`.litematic` or save and install directly.
- **Capture from the world** — mark two corners in-game, capture the selection as a
blueprint, and optionally include block-entity contents.
- **Zip pack ecosystem** — manifest-tracked install / uninstall, one-click export of
installed buildings into a shareable pack, an optional pack icon and an `index.json`
file manifest, and pass-through of SimuKraft native job/trade definitions (format v2).
- **No hard dependencies** — the manager runs on Minecraft's own GUI toolkit and SimuKraft
is integrated purely through the file system, so neither is a compile-time dependency.
- **Server-friendly** — the `/buildpack` command (operator level 2, with tab-completion)
installs loose files and packs and captures regions on dedicated servers, reusing the
same conversion pipeline as the GUI.
- **Localised** — English, Simplified Chinese, and Traditional Chinese; numbers, dates,
and file sizes are formatted per the active game language.
## Requirements and installation
| Requirement | Version |
| --- | --- |
| Minecraft | 1.21.1 |
| NeoForge | 21.1.233 or newer |
Place the jar in your `mods/` folder — there are no other mod dependencies. The in-game
manager works out of the box on a client; on a dedicated server the jar loads headless and
exposes the `/buildpack` command.
## Opening the manager
Press \\ (backslash) in-game. All bindings are rebindable under the mod's
category in **Options -> Controls**.
| Action | Default key |
| --- | --- |
| Open the build pack manager | \\ |
| Set world selection corner A | [ |
| Set world selection corner B | ] |
| Capture the selection as a blueprint | ' |
| Toggle "include block-entity contents" | unbound |
| Clear the world selection | unbound |
## The manager
The left panel has three tabs:
- **Import Files** — loose `.nbt` / `.litematic` / `.schem` files in the import directory.
- **Packs** — zip build packs in the import directory, shown as an expandable tree
(pack -> category -> building). Any building can be previewed and read **directly from
the zip**, without extracting it first.
- **Installed** — buildings already present in SimuKraft's building directory.
The info panel on the right shows metadata rows, a preview, a material list (counted by
block type, with missing blocks flagged), and a `.sk` metadata form (editable on the
**Import** tab, read-only elsewhere). It supports drag-and-drop import, search, sort,
batch install, and two-click delete. When you browse a pack that ships an icon, the icon
is shown in the preview area.
## Structure editor
Open a structure in the editor to refine it before installing:
- **Edit** — place, break, pick, and replace blocks; paintbrush with adjustable size and
paint strokes; remove or replace a whole block type at once.
- **Selection** — box-select a region (click two cells or drag a box face), then
fill / frame / hollow / expand / clear it, with copy, cut, and paste.
- **Transform** — rotate 90 degrees and mirror along any axis, with a symmetry axis for
mirrored editing.
- **History** — undo and redo.
- **View** — cycle slice planes, fit and focus the selection, preset camera angles, grid
and gizmo toggles, and perspective toggle.
- **Output** — Save as New, Save and Install, or Export `.litematic`.
Press H inside the editor for the full shortcut list.
## Capturing builds from the world
Build something in your world, then turn it into a blueprint without leaving the game:
1. Look at a block and press [ to set corner A, then ] to set
corner B. The selection box is drawn in the world.
2. Press ' to capture the selection and export it to the import directory.
3. Optionally bind the "include block-entity contents" key to capture chest inventories
and similar data, and the "clear selection" key to reset the corners.
The same operation is available on servers via `/buildpack capture` (see
[Commands](#commands)).
## Build packs
Buildings are grouped into five fixed categories: `residential`, `commercial`,
`industry`, `public`, and `other`.
- **Install / uninstall** — installing a pack converts every building into the matching
category directory and records a manifest in `simcity_expansion/installed_packs.json`,
so uninstalling removes exactly the files that pack added.
- **Export** (Installed tab -> Export) — packages the listed buildings (respecting the
current search filter) into a zip. Options:
- include `.sk` metadata,
- include SimuKraft job/trade JSON,
- include an **icon** — tick the box and leave the path blank to auto-render one from
the first building's preview, or supply a custom PNG path.
An `index.json` file manifest (each packed file with its type, category, size, and
SHA-256) is always written at the zip root.
- **Manifest** — `pack.json` (format 2) carries `id`, `name`, `version`, `author`,
`description`, an optional `icon`, and a `generated` timestamp.
The full pack specification (directory layout, `pack.json`, `.sk` / `.meta.json` metadata,
native job/trade JSON, `icon.png`, and `index.json`) is documented in
[docs/pack-format.zh.md](docs/pack-format.zh.md).
## Structure formats
| Extension | Source | Conversion on install |
| --- | --- | --- |
| `.nbt` | Vanilla structure block template | Installed as-is; old versions auto-upgraded |
| `.litematic` | Litematica projection | Multi-region merge into one bounding box; reads embedded name / author / creation time / thumbnail |
| `.schem` | Sponge / WorldEdit schematic | v1, v2, and v3 supported |
All formats are converted to vanilla `.nbt` on install (SimuKraft's build system only reads
the vanilla format). During conversion the structure is DataFixer-upgraded to the current
game version, block-entity positions are remapped and preserved, the palette is checked
against the registry for missing blocks, and the merged volume is capped at 16,000,000
blocks.
## Directory layout
```
/
├── simcity_expansion/
│ ├── import/ import directory (drop loose files and zip packs here)
│ ├── export/ exported build packs
│ └── installed_packs.json installed-pack registry
└── simukraftbuilding// SimuKraft building directory (install target)
```
## Commands
All `/buildpack` subcommands require operator level 2 (game masters) and offer
tab-completion.
| Command | Description |
| --- | --- |
| `/buildpack list` | List the files in the import directory |
| `/buildpack packs` | List installed packs |
| `/buildpack install [category] [name]` | Install a loose structure file |
| `/buildpack installpack ` | Install a whole zip pack |
| `/buildpack uninstallpack ` | Uninstall a pack by its id |
| `/buildpack activate ` | Serve a pack to SimuKraft virtually (no install) — requires SimuKraft |
| `/buildpack deactivate ` | Stop serving an activated pack |
| `/buildpack active` | List currently active packs |
| `/buildpack capture [name] [format]` | Capture a region into a blueprint |
## Documentation
| Document | Audience |
| --- | --- |
| [Usage guide](docs/usage.en.md) | Players: import, install, manage, export |
| [Pack format spec v2](docs/pack-format.en.md) | Pack authors: layout, `pack.json`, metadata, conversion |
Chinese versions are also available: [usage.zh.md](docs/usage.zh.md) and
[pack-format.zh.md](docs/pack-format.zh.md).
## Building from source
The project uses the Gradle wrapper and a NeoForge ModDevGradle toolchain (JDK 21).
```bash
./gradlew build
```
The built jar is written to `build/libs/`.
## License
All Rights Reserved. Copyright © 2026 xinian.
This source is published for reference; it is not licensed for redistribution or derivative works without permission.
When using in a modpack, you must link back to the original link.
## Acknowledgements
- [New-Simukraft-1.21.1](https://github.com/New-Sim-U-Kraft/New-Simukraft-1.21.1) — the
city-building mod this expands.
- [devins-badges](https://github.com/intergrav/devins-badges) — the badge artwork in this
readme.
## About the old version
- 1.20.1 Forge has been abandoned for development