Skip to content

Configuration

MKI edited this page Oct 1, 2026 · 1 revision

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.

expanded_building.json

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
}

Options

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.

Notes

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.

Update checker

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.

Project data in the world

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.

Clone this wiki locally