Economic Zones

Every faction on Blacklight is its own economic zone, with its own money, prices and output, measured continuously rather than once a night.

A faction is a zone

The economy does not treat the server as one big market. It divides it into zones, and every faction is exactly one zone. A zone carries its own money supply, its own velocity, its own price level, its own real output, its own employment count, its own trade balance and its own debt ratio. Two factions can be booming and shrinking at the same time on the same server, and the numbers will say so.

Alongside the faction zones there are two sentinel zones. WORLD catches flows that belong to the server rather than to anybody in particular, and it is shown to you on the world view of the dashboard. SYSTEM catches legs with no player behind them at all; nothing on any screen reads it, by design.

The rule that decides which zone gets the entry is where the activity happened, never who the actor belongs to. If you are a member of one faction and you mine, sell or pay a fee inside another faction's claim, the output and the money leg are booked to that claim's zone. Your membership does not follow your pickaxe around.

Much of the machinery described on this page is marked in the source documentation as code-written and not server-verified. The formulas, limits and card wording are taken from the code as written. Treat the exact live figures as something to check on the dashboard rather than something this page can promise.

What a zone measures

The dashboard shows a fixed set of quantities per zone. Some are counted directly, some are derived from the counted ones, and three are honestly labelled as not measured at all.

QuantityWhat it countsHow it is arrived at
Money Supply M(z)Coins actually sitting in the zone's potsA recount of real pots, not a running total. Wallets, accounts, savings and the treasury are added up.
Velocity VHow often the zone's stock of money changes hands per day(faucets + sinks + trade) / max(M, 100). The 100 is a floor so a nearly empty zone cannot divide by almost nothing.
Goods Produced (Y)Real output, valued at base pricesValue added from block drops, mob loot, fishing and NPC deposits, appraised through the base-value oracle.
Cost of Living (CPI)What a fixed basket costs against the zone's own baselineA basket of five seeded goods priced through the zone price level, scaled so the baseline is exactly 100.
Money GrowthNet new money per day relative to the money that already exists(faucets - sinks) / M(z), expressed per real day and clamped at plus or minus 25 percent per day.
InflationHow fast the cost of living is actually movingA compound per-day rate taken from the zone's own stored cost-of-living series, over a window of up to 7 days.
EmploymentDistinct active earnersMembers with at least one pay or production event inside the structural window. Rebuilt from live events, so a restart restarts the count.
Trade BalanceExports minus importsA transfer across a zone border books an import on the payer's zone and a mirror export on the payee's, so the whole server sums to roughly zero.
Debt RatioMember debt against member wealthdebt / max(1000, wealth). Structural rather than simulated, so it shows whether or not the simulation is armed.
Capital Stock, Investment, Inventory StockNothing yetThere is no durable-asset valuation, no capital-formation source and no per-zone item inventory. The dashboard prints "not yet measured" rather than a zero that would read as a measurement.

Two things do not get counted, and both are deliberate. Forged gear produces zero output value, because bl_forged_* items carry no base price and inventing one would be a balance decision rather than a measurement. NPC output is booked to the zone, not to the NPC's owner, so a lumberjack does not inflate its owner's personal production record.

One weakness in the valuation is worth reading the output figures against. A good's sell price and its base value live in two separate tables, and they can drift apart. The source documentation records bl_cured_cannabis selling at 120 while the oracle values it at 290, a 2.4 times disagreement on a single good, and marks that drift as live and not yet fixed. Everything the oracle prices inherits the gap: output, net worth, fair value and share price. A second case of the same shape was closed in 2.0.1, when fourteen Garden goods turned out to carry a sell price and no base value at all. A base value of zero means unmeasured, not worthless, so those goods counted for nothing until their base values were seeded from their own sell prices.

Cost of living starts at 100, and only against itself

The cost-of-living index is the one number on the dashboard most likely to be misread, so the card says the awkward part out loud.

Each zone captures a calibration exactly once: the first time it shows genuine real output, its price level at that moment is recorded and kept. Everything after that is measured against that captured moment. Until the capture happens the price level is pinned at neutral and the index reads exactly 100, which is why a brand new faction and a hundred-member one both start at 100 regardless of how much money is in either.

That makes the index honest about time and useless about neighbours. If your zone reads 128 and the faction next door reads 96, that means yours is 28 percent above its own baseline and theirs is 4 percent below its baseline. It does not mean bread is more expensive in your territory. The two baselines were captured on different days against different economies, and comparing them would be comparing two rulers with different zeroes.

The dashboard states this on the card itself, and the cross-zone comparison features that would have implied otherwise were deliberately not built. There is no cross-zone cost-of-living ranking and no "trade route" advert pointing at a price gap between factions, because both would be fabricating a signal the measurement cannot support.

DetailValue
Basket size5 seeded goods: relic coin, rift shard, hemp leaf, cannabis bud, dried cannabis
Index at the baselineExactly 100, shown as an integer rather than a decimal multiplier
Price level band0.2 to 5.0, so the index cannot run away in either direction
Comparable between factionsNo, and the card says so
Comparable against the same faction last weekYes, and that is what the Inflation card reads

One word about the first good in that basket. The relic coin is still a live currency, even though update 2.0.1 removed the Ancient Ruins it is named after. It kept its worth, its sale and its base value, so it is priced in the basket exactly like the other four. What changed is where you earn it and where you spend it, not whether it exists: coins come from grove glow flowers and rift clears now, and the Grove Exchange at /grove is the one place they are spent.

Measured continuously, not at midnight

The economy used to recompute once per real day. Mining ten thousand iron moved the market tomorrow, and every metric stepped at midnight. That is gone. Nothing is recalculated on a schedule any more.

Raw quantities are updated the instant an event happens. Each tracked quantity is a single number with a timestamp and a half-life: writing means "decay to now, then add", reading means "decay to now, then return". Because a read performs the same decay step a write does, a read is always current and no background task is needed to keep it that way. There are no day buckets, so there is no midnight cliff and no question of which day a trade landed in.

LayerHalf-lifeWhat decays at that rate
Flow meters30 minutesTrade, production, faucets and sinks, labour, and per-item supply and demand
Structural marks2 hoursThe earner-presence marks that the Employment count reads
Guard rails12 hoursThe anti-exploit caps on how much one player can push through a market

The guard half-life is long on purpose. A decaying meter is a leaky bucket: its capacity is the burst you are allowed and its refill is the sustained rate you are allowed. A 30 minute guard bucket could not express "a large single trade is fine, eight million a day is not", so the guards run at twelve hours while the meters that feed prices run at thirty minutes.

Derived values are computed when you look and remembered for about a second. The heavier structural sweep over a faction's members is remembered for thirty seconds. A price quote only needs the price level, so it never pays for the structural work at all. The consequence worth knowing: a zone nobody is playing in costs nothing. The old design paid for every faction every day whether or not anyone was there.

Every flow figure is a per real day rate, not a window total. The card says "this zone produces 4,000 a day", not "12,000 over three days", which keeps the numbers comparable across zones of different sizes.

There is a visible cost to all of this. After a restart the accumulators are empty, so velocity and money growth read 0 and the price level sits at neutral until activity refills them, which takes roughly one flow half-life. The captured calibration survives a restart precisely because it is not a live signal.

Prices hold while the server is quiet

Decaying meters have an obvious failure mode: leave the server alone overnight and everything drifts back to neutral, so the gold price collapses to base simply because nobody was online. A market clock sits under the meters to stop that.

The clock maps wall time to market time. While the market is active it runs at full speed. While it is not, it runs at 5 percent, so an eight hour night costs the market roughly 24 market minutes. Prices hold. An abandoned market still drifts to neutral, but it takes about a month rather than a night, and that slow drift is deliberate so a manipulated price cannot be frozen in place forever by logging off.

What counts as active is the part that had to be corrected. The first version idled whenever the player count hit zero, on the assumption that an empty server produces no events. That assumption is false here: the payout scheduler, company payroll, consignment settlement, savings interest, loan amortisation, hourly NPC upkeep and autonomous NPC production all keep emitting with nobody online. Events arriving at their real rate while the clock decays at 5 percent settle at twenty times their true value, and the Money Growth card duly read a wildly overstated figure. The clock now idles only when nothing has emitted for 300 seconds, which makes the original assumption literally true instead of merely assumed.

Not everything moved onto market time. Anything where money genuinely accrues in real time stayed on the wall clock: savings interest, loan interest, dividends, the Writ Fund decay, the anti-exploit caps and both circuit breakers. What moved is the measurement layer, meaning the zone flow meters, per-item supply and demand, liquidity and the per-actor share contributions.

The dashboard carries a Market Hours card explaining the state, and the verdict card adds a line saying the market is quiet and prices are holding while the clock idles.

The 8 percent per minute limit on price movement

Because prices now respond instantly, they need a limit on how fast they may respond. Every price surface has a circuit breaker set at 8 percent per minute. A quote may move at most (1 + 0.08) ^ minutes elapsed upward, or the reciprocal of that downward, from the value it was last quoted at.

The important word is rate. The allowance is bought with time, not with transactions, so trading faster does not help you. A thousand trades inside one minute still only buy one minute of elapsed time, and the price moves by the same 8 percent it would have moved for a single trade. A genuine supply shock is not suppressed, only spread across the minutes it needs.

The mirror of that rule is worth knowing if you sell. An item nobody has quoted accrues allowance the whole time, so the first quote after an hour lands wherever the fundamentals say it should, with no catching-up period. The same breaker also guards the world commodity spot index, which is why another player buying out a bank's shelves on the far side of the map cannot take the index across its whole band in one step.

Two further guards sit alongside it.

GuardWhat it doesWhy it is shaped that way
Circuit breakerCaps price movement at 8 percent per minute of elapsed time, both directionsBounds the rate rather than the count, so it cannot be outrun by trading faster
Liquidity rampIn a thin market the price signal scales toward neutral instead of switching offA ramp has no threshold to cross, so any trade moves the price a little rather than nothing at all until some sample count is reached
Per-actor shareNo single actor may hold more than 25 percent of either side of a market's signal, plus a fixed absolute allowanceThe share rule alone would latch shut on an empty side and pin the good at half price forever. The allowance means below roughly four participants everyone gets an equal finite voice, and above that the share rule binds

Prices are derived at the instant they are taken, so a label and the charge that follows it can differ by the time between them. Three things bound that: every surface has the breaker, every screen showing a moving price repaints once a second, and the worst case divergence works out to roughly 0.13 percent. It is a real cost of a market that moves, and it is bounded and stated rather than hidden.

Which prices this actually moves. The zone price multiplier reaches the server-priced surfaces: the /shop charge path, the builder NPC's material purchase, their matching menu labels and the internal basket. Player-set markets are untouched, so a price you set yourself in a market or a regional shop stays exactly where you set it.

The identity check that can actually fire

A measurement system that only checks itself against itself proves nothing. The zone accounts carry one cross-check, and its whole value comes from what it deliberately refuses to do.

Once per cycle, per zone, it stands two sides against each other:

  • The goods side, the sum of value added, fed only by production events.
  • The spending side, consumption plus investment plus government spending plus net exports, fed only by money events.

The two sides share no calculation term, and that is the point. The obvious way to write the check would have been to compare nominal output against the spending side, with nominal output defined as real output times the price level. But the price level is itself money times velocity over output, so the whole thing would collapse into money times velocity being approximately equal to faucets plus sinks plus trade. That is a tautology. It would be true every time, it would detect nothing, and it would look like a working safeguard on the screen. Keeping the two sides independent is what lets a genuine gap show up.

A relative divergence beyond 15 percent flags the largest zone and its dominant term for a staff look. The docs are careful about what that means: value added is priced at base values while the money side is nominal, so a genuinely high price level can also open a gap. The flag says "investigate", not "proven bug". A one-sided gap, meaning production with no paying route behind it or a payment with no production behind it, trips it decisively.

You will not normally see this. It writes at most one audit line every ten minutes and it is not a player-facing card. It is worth knowing about because it is the reason the numbers on the dashboard are checkable at all.

Reading a card

Every card on the dashboard carries the same five lines, in the same order.

LineWhat it gives you
WHATWhat the number is, in plain words, with no undefined jargon
NOWThe current reading
MOVESWhat makes it go up and what makes it go down
YOUWhat it means for you, and honest about agency: several cards say outright that they measure rather than judge, and that the reading is information only
RAWThe underlying numbers and the formula, including which half-life and which denominator the card used

The names are translated out of the textbook. "Output Y" is labelled Goods Produced, with the symbol kept in the RAW line for anyone who wants it. The CPI card is labelled Cost of Living and carries the basket size, the rule that 100 is the zone's own baseline, and the statement that it is not comparable between factions.

Money Growth and Inflation are separate cards

They answer different questions and they divide by different things, so merging them would blur both. The dashboard keeps them apart and each card names its own denominator, along with a note that the family is not expected to agree.

CardWhat it divides byClamped
GrowthCirculating wealth plus the treasuryNo
Money GrowthM(z), the zone's money supplyYes, at 25 percent per day
InflationElapsed time. It is not a money ratio at allNo, and it needs samples at least 12 hours apart to report

Money Growth says how fast new coins are appearing relative to the coins already there. Inflation says how fast the basket is actually getting more expensive. A faction whose income doubles overnight will move Money Growth immediately; Inflation moves only if the cost-of-living series moved.

When a card refuses to answer

A card that cannot honestly report a number says so rather than printing one.

What you seeWhat happened
too small to measureThe zone's money supply is below the floor of 100 coins, so the percentage would be a divide-guard artefact wearing a percent sign. The card names the floor instead of printing a saturated number.
off the scaleThe true rate is beyond what the card can show, so it stops at the limit and tells you the real figure in the same breath. A headline pinned to its own bound is the bound, not a measurement.
measuring, needs more dataThe cost-of-living series does not yet hold two samples far enough apart to support a daily rate.
not yet measuredCapital stock, investment and inventory stock. There is no source for these, so nothing is rendered.
a dashThe measurement is not armed on this server, so the card shows a dash rather than a fabricated zero.

The Faucets and Sinks cards name their top sources by display name rather than by internal tag, so you read "job and sale pay" or "Writ Fund" instead of an identifier. The verdict card compares net new money against goods produced and says which way it is leaning, and it carries one clause explaining a discrepancy players kept finding by hand: the faucet count books Writ Fund coins when they are created, while the money supply counts them only when they are claimed, so faucets can lead M without either number being wrong.

Faucets, sinks and the number people quote

Sooner or later you will see a faucet-to-sink ratio quoted for this server, almost always as 3.18 to 1. It is worth knowing where that figure comes from, because it has been attacked, defended and re-derived more than once, and those three verdicts are not the same verdict.

There are two independent faucet and sink sources in the plugin, and they are easy to confuse. The per-zone meters are the ones this page has been describing all along. The global ledger buckets are something else: zone-free, persisted as whole UTC days, written unconditionally, and carrying no zone tag that could be mis-attributed in the first place. An earlier defect booked meter flows to the SYSTEM sentinel zone, which discredited the meter-derived cards. It never touched the ledger buckets.

That distinction is the entire story of the 3.18 figure. It had been carried in the project's own notes since version 1.5.0, and was later marked discredited on the assumption that it came from the broken meters. A re-read found it had almost certainly come from the ledger line instead, so what was lost was its provenance, not its value. A number can be correct and unciteable at the same time, and those are two different faults with two different remedies.

Re-derived from the only ledger snapshot the project holds, summed exactly the way the plugin itself sums it:

WindowMintedBurnedRatio
14 days19,186,705 coins6,127,745 coins3.13 to 1
7 days18,088,293 coins6,100,245 coins2.97 to 1

Both reproduce the long-standing figure to within about 1.5 percent, which is why it survives rather than being replaced. Two other values, 5.18 and 7.30, were taken midway through update 2.0.0 and quoted in the plugin's own prose for a while. They did not reproduce from the same data and were withdrawn. Do not treat either as a reading of this server.

This is history, not today. The snapshot is anchored on its own newest day, and that day is roughly fifty days old, while the ledger keeps only fourteen. The same call against a running server therefore answers unmeasured rather than printing a stale ratio. Nothing here has been checked on the live server: it is a reading taken from persisted data, and the source documentation labels the surrounding work code-written rather than server-verified.

Two further caveats ride the same number, and both are stated openly in the source. Only 9 of those 14 days carry any observation at all, so the minted total reads about 1,370,000 coins a day averaged over the window and about 2,130,000 coins a day averaged over the days that actually ran, a factor of 1.56 between them. The ratio itself is unaffected, because both sides are divided by the same window, and that is precisely why a ratio was the thing to quote rather than a total. The second caveat is volatility: a single day's ratio swings violently, so one window's average can conceal an order of magnitude, which is why the reading is taken per window and over more than one window at that.

The zone side carries a caveat of its own. The check that watches for mis-attributed meter flows returns on the first failing side, so for as long as the faucet side was failing, the sink side's attribution could not be observed at all. Its bar is generous too: it only complains once less than 5 percent of a side is visible. A quiet check therefore means not catastrophically mis-attributed, not correctly attributed. The one-line fix is recorded as handed over rather than taken.

The standing verdict over all of it is unchanged and blunt: the server inflates. More coins are minted than burned, by roughly three to one.

What the Garden added to the ledger

Update 2.0.0 opened a whole growing layer, and with it ten new money routes. Each one was classified deliberately, because the single largest error available in this kind of exercise is calling a transfer a faucet. A faucet mints: coins appear and nobody loses them. A sink burns: coins are destroyed or parked out of circulation. A sideways transfer is neither, and it does not move the money supply at all.

RouteKindWhat it is
Job payout, Writ Fund match, crop saleMintThree genuine faucets. Coins appear where there were none.
Show prizeUnparkThe coins already existed, parked in the event account. Paying them out raises circulating money without creating any, so it gets its own name rather than being filed as a mint or as nothing.
Amendment, greenhouse upkeep, show entryBurnThree live sinks.
ConsumptionBurn, declared and deadThe route exists and nothing calls it, and the boot line says so rather than letting a reading of zero pass as an economy without that thing. The cafe's consumption is a goods sink with no money leg: the cup is destroyed and the destruction is counted, not charged.
Cafe servery sale, company labourSidewaysMoney changes hands and the money supply does not move, so neither is a faucet.

The one genuinely unbounded new mint is selling crops, and it is bounded by a single daily budget: 25,000 coins per player per UTC day, shared across every Garden good, so you cannot raise your own ceiling by diversifying. In 2.0.1 that budget was actually wired to the selling door, with a partial fill so a sale larger than what is left sells the units that fit rather than refusing outright, and it was moved below the company fork, so selling into your own company is not charged against your personal budget. Wild foraging gained a ceiling in the same pass: 8 species seeds per day.

The Garden Show is the one term the release could size from its own numbers, because both of its sides are fixed rather than set by how often players act. An entry burns min(2000, 250 + 50 * N) per entrant and the prize pool pays out at most min(10000, 1500 * N + 1000). Below 16 entrants a show is a net faucet, capped at 10,000 coins. At 16 it breaks even in the worst case, every entrant taking Gold. A full 24-entry show burns 19,800 coins against at most 10,000 paid, a net sink of 9,800 coins and a contribution of 0.51 to 1. A sink that grows with the feature's own popularity is the shape that was wanted.

The Garden's own economy self-check reads its routes over a fourteen-day window and prints the result at boot. It reads 0.30 to 1: roughly 290,900 coins minted against roughly 967,700 burned, a net sink of about 676,750 coins. Against a server running near three to one the other way, the Garden as a whole pulls toward the sink. Its seven new company charters add no faucet either, because a charter re-points money that already moved instead of creating any, and the charter fee itself burns 25,000 coins per founding. Update 2.0.2 moved one sink the other way when greenhouse upkeep was narrowed to core greenhouses, leaving enclosure greenhouses free.

No post-release ratio is predicted, and that is deliberate. The size of the three new mints is a rate set by how often players act, and nothing in the plugin measures actions per hour per job. So the direction is stated, the ceilings are named, and a number nobody could defend is left unwritten.

How the growing itself works, the species, soils, greenhouses, bees, the cafe and the shows, belongs to The Garden and Crops and food. This page carries only its weight on the ledger.

Where to look

CommandWhat it opens
/economyThe dashboard for your own faction zone. Aliases /eco and /econ. Everyone can use it.
/economy with no factionThe world view instead of a refusal: global money supply, seven-day faucet and sink buckets with their ratio in the RAW line, the world zone's cost of living and inflation, the commodity spot board, a Market Hours card and a pointer to joining a faction.
/economy explainA written walkthrough: what faucets and sinks are, what "goods" means, how Cost of Living, Money Growth and Inflation differ, why prices move, why prices hold overnight, and what you can actually do about any of it.
/faction economyThe same dashboard from inside the faction menu. Members only, because it is a faction subcommand. The standalone /economy is the universal door.
/bank balanceYour balances, with a line pointing at /economy.
/f infoFaction summary, with a one-line economy reading and the same pointer.

Bedrock players get a native form rather than a translated chest menu, built from the same card data, with the same five lines folded into each button. The screen is read-only in both clients: clicking a card does nothing, because there is nothing on it to change.

Java players connect on blacklight-network.de. Bedrock players use the same address on port 19132.