Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Rules reference

This section states every rule of the Harrison Homestead prototype (v16). It was written by reading the prototype’s source, not by trusting earlier notes. Where older notes and the code disagree, these pages follow the code.

Constants in the tables are generated from src/data/rules.json, which is extracted from the running game. They cannot drift from it. Formulas are written by hand from the named functions, and each page ends with a source note listing them.

The currency is board feet of lumber, written bd ft. Lumber is one number, S.lumber. Every cost, price, fee and payout in the game is in bd ft. Logs are a separate stock: they are held in decks, one count per species, and become lumber only when a mill pays for them.

Time is real time. The game reads the wall clock (Date.now()) and has no pause. Hours in this reference are real hours unless a page says “growth hours”. Growth hours are real hours multiplied by a species growth factor, and they apply only to timber.

Rounding is Math.round (halves round up) unless a formula says otherwise. Log counts that come from a cut are whole numbers. Logs bought from neighbors and cedar consumed by a shake shed can be fractional.

Each system page gives the constants, then the formulas in plain-text pseudo-code, then four short statements: inputs, outputs, the time-based state the system keeps, and a paragraph titled “For the shared game”. That paragraph says what a server would have to own to make the system work with more than one player.

Pseudo-code uses r for row (0 to 7, shown as 1 to 8) and c for column (0 to 7, shown as A to H). A parcel is written as a column letter and a row number, for example B8.

Page What it fixes
Map and terrain The 8 by 8 claim, zones, steep ground, meadow, the landing, new-claim seeding
Timber and growth Species, growth stages, replanting
Crew, cutting and saws Crew-days, the cut procedure, skidding loss, saw sharpness
Town mills Bids, log yards, hauling, the wagon
Your sawmill Levels, neighbor logs, your bid, milling
Buildings and roads Costs, placement, what each structure does
Farming and the Mercantile Crops, fertility, shelves, prices
Town and markets Settlers, milestones, six markets, competitors
Forest Reserve Stands, scarcity price, buying
Deed and proving up The five goals, the appraisal, the listing
Leaderboards Six boards, simulated neighbors
Valley map Block layout, neighbor claims, camera
Game state Every saved field, persistence, catch-up steps

The whole game runs in one browser page. Every player simulates their own town, mills, Reserve and neighbors from a stored timestamp, and the client decides every outcome. Nothing in the prototype is shared between players except a table of leaderboard scores. The “For the shared game” paragraphs exist because of that.

Source: prototype/index.html · constants all keys in rules.json · logic whole script