Repository navigation
Configuration
Expanded Building creates its configuration on first start. On a dedicated server the server's config is what counts – all rules are enforced on the server.
config/
├── expanded_building.json main configuration
├── expanded_building-update.json update checker
└── expanded_building/
├── blueprints/ saved blueprints (.json)
├── litematic/ Litematica files (.litematic)
└── schem/ WorldEdit files (.schem)
Changes take effect after a restart.
Default values:
{
"configVersion": 1,
"maxSizeX": 0,
"maxSizeZ": 0,
"maxBlueprintBlocks": 100000,
"maxProjectsPerPlayer": 3,
"ticksPerBlock": 20,
"ticksPerRemoval": 10,
"emeraldFeePerBlocks": 250,
"minEmeraldFee": 1,
"maxEmeraldFee": 8,
"maxTotalEmeraldFee": 64,
"maxBuildSpeed": 20,
"planningLeashDistance": 24,
"allowBlockEntities": true,
"allowFluids": false,
"protectEntireSite": false,
"keepSiteLoaded": false
}| Key | Default | Range | Description |
|---|---|---|---|
configVersion |
1 |
– | Format version of the file. Do not change it. |
maxSizeX |
0 |
0 – 30,000,000 | Maximum footprint size along X. 0 = unlimited.
|
maxSizeZ |
0 |
0 – 30,000,000 | Maximum footprint size along Z. 0 = unlimited.
|
maxBlueprintBlocks |
100000 |
1 – 1,000,000 | Maximum number of positions in a blueprint. Also applies to imported schematics. |
maxProjectsPerPlayer |
3 |
1 – 32 | How many projects a player may have running at the same time. Finished and cancelled projects do not count. |
ticksPerBlock |
20 |
1 – 72,000 | Ticks between two placed blocks at speed 1x. 20 ticks ≈ 1 second. |
ticksPerRemoval |
10 |
1 – 72,000 | Ticks between two cleared blocks at speed 1x. |
emeraldFeePerBlocks |
250 |
1 – 100,000 | The builder's wage: one emerald per this many blueprint blocks (rounded up). |
minEmeraldFee |
1 |
0 – 64 | Minimum base wage in emeralds. |
maxEmeraldFee |
8 |
0 – 512 | Maximum base wage in emeralds (before the speed surcharge). |
maxTotalEmeraldFee |
64 |
0 – 2,304 | Hard ceiling for the total wage, including the speed surcharge. |
maxBuildSpeed |
20 |
1 – 20 | Highest build speed players may pick (1x, 4x, 20x). An already selected higher speed is lowered automatically. |
planningLeashDistance |
24 |
0 – 30,000,000 | How far (horizontally) a player may move away from the edge of the site before planning ends. 0 disables the leash.
|
allowBlockEntities |
true |
true / false
|
Allow chests, furnaces, signs and other block entities in blueprints. |
allowFluids |
false |
true / false
|
Allow fluids in blueprints. |
protectEntireSite |
false |
true / false
|
Lock the whole site for everyone (including the owner) while a project runs, instead of only the positions the builder still needs. |
keepSiteLoaded |
false |
true / false
|
Keep the chunk the builder works in loaded, so builds continue while nobody is nearby. |
Values outside their range are clamped to the nearest allowed value.
Footprint limits. maxSizeX and maxSizeZ can be set independently: maxSizeX: 64 with maxSizeZ: 0 allows a narrow strip of any length. There is deliberately no vertical limit – a site always spans the full world height. The total size of a plan is limited by maxBlueprintBlocks anyway.
Wage. Base wage = ceil(blocks / emeraldFeePerBlocks), clamped to minEmeraldFee … maxEmeraldFee. The speed surcharge multiplies it by the square root of the speed, rounded up (1x → 1×, 4x → 2×, 20x → 5×), and maxTotalEmeraldFee caps the result. Set maxEmeraldFee or maxTotalEmeraldFee to 0 to make the builder work for free.
keepSiteLoaded. This keeps one chunk permanently loaded per running project – a decision for whoever pays for the server. Only the chunk at the current work position is held, never the whole site. It is released as soon as the project pauses or ends, and at server start the mod releases anything it held before the last shutdown. With the option off, a build simply waits until someone comes back.
protectEntireSite. This restores the behaviour of version 1.0.0. Because a site always spans the full world height, this creates a large locked zone – meant for servers that want exactly that. See Site Protection.
allowBlockEntities. On since 1.1.0. Blueprints only store block states, so everything the builder places is empty; filled containers can never be cleared. A config written by a version before 1.1.0 (without configVersion) is migrated to true once. If you want it off, set it to false again.
Missing keys. Keys that are missing from an older config keep their default value instead of falling back to the minimum, and the file is rewritten with all keys on every start.
config/expanded_building-update.json controls the update notification:
| Key | Default | Description |
|---|---|---|
enableUpdateChecker |
true |
Check for a newer version and notify online players in chat. Set to false to disable it completely – no network request is made. |
checkDelayTicks |
200 |
Server ticks to wait (once a player is online) before checking. |
connectTimeoutMillis |
2500 |
Connection timeout of the version request. |
readTimeoutMillis |
4000 |
Read timeout of the version request. |
notifyOnlyOncePerRun |
true |
Show the notice only once per server run. |
The check runs asynchronously and does not slow down the server.
The server stores its project data inside the world folder:
<world>/expanded_building/
├── projects.json small, frequently updated metadata (status, progress, members …)
├── blueprints/<uuid>.json the blueprint of each project, written once
└── journals/<uuid>.planning append-only journal of a running planning session
Build progress is a single counter in projects.json, so a build step only writes a few hundred bytes instead of re-serialising up to 100,000 block entries. The planning journal is what allows a site to be reset completely after a crash during planning.
Inventory backups and the material/refund journal are stored with the player data.
Back up the expanded_building folder together with the world. Do not edit these files while the server is running.
Expanded Building 1.1.1 · Fabric · NeoForge · Forge · Minecraft 26.1.2 / 26.2 / 26.3 · MIT License
Getting started
Playing
Reference