blockyard 0.0.9 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +359 -1
  2. package/README.md +48 -27
  3. package/SECURITY.md +2 -2
  4. package/bin/blockyard.js +2 -1
  5. package/docs/API.md +17 -15
  6. package/docs/ARCHITECTURE.md +128 -10
  7. package/docs/CONFIGURATION.md +39 -30
  8. package/docs/DEFECTS.md +4 -1
  9. package/docs/GETTING-STARTED.md +18 -8
  10. package/docs/INSTALL.md +97 -37
  11. package/docs/MEASUREMENTS.md +147 -0
  12. package/docs/PLAN-SCORCHED-YARD.md +456 -0
  13. package/docs/PLAN-SKIES.md +142 -0
  14. package/docs/SECURITY-AUDIT-2026-09-16.md +647 -0
  15. package/docs/SECURITY.md +58 -22
  16. package/docs/TROUBLESHOOTING.md +44 -5
  17. package/docs/USER-GUIDE.md +505 -35
  18. package/package.json +4 -2
  19. package/public/404.html +1 -1
  20. package/public/css/app.css +393 -82
  21. package/public/donate-qr.png +0 -0
  22. package/public/index.html +353 -109
  23. package/public/js/agents.js +228 -51
  24. package/public/js/app.js +131 -16
  25. package/public/js/blockanoid.js +15 -7
  26. package/public/js/blockout.js +15 -7
  27. package/public/js/blockscene3d.js +230 -38
  28. package/public/js/charts.js +21 -21
  29. package/public/js/depthchart.js +31 -27
  30. package/public/js/details3d.js +1481 -73
  31. package/public/js/doom.js +31 -0
  32. package/public/js/dosaudio.js +48 -0
  33. package/public/js/dosgame.js +389 -0
  34. package/public/js/dosio.js +186 -0
  35. package/public/js/dospc.js +1353 -0
  36. package/public/js/dosworker.js +196 -0
  37. package/public/js/explorer.js +7 -1
  38. package/public/js/livingsky.js +494 -0
  39. package/public/js/login.js +8 -2
  40. package/public/js/markets.js +46 -8
  41. package/public/js/mining.js +314 -36
  42. package/public/js/panels.js +41 -28
  43. package/public/js/pricechart.js +14 -13
  44. package/public/js/quake.js +20 -0
  45. package/public/js/safenext.js +14 -0
  46. package/public/js/scorched.js +1051 -0
  47. package/public/js/scorchedai.js +227 -0
  48. package/public/js/scorchedair.js +286 -0
  49. package/public/js/scorchedfx.js +376 -0
  50. package/public/js/scorchedshop.js +105 -0
  51. package/public/js/scorchedwind.js +69 -0
  52. package/public/js/scorchedyard.js +1338 -0
  53. package/public/js/settings.js +368 -100
  54. package/public/js/soundcard.js +459 -0
  55. package/public/js/tetrust.js +15 -6
  56. package/public/js/tetsound.js +35 -5
  57. package/public/js/theme.js +235 -0
  58. package/public/js/wolf3d.js +22 -0
  59. package/public/js/x86.js +1978 -0
  60. package/scripts/check.js +46 -0
  61. package/scripts/donate-qr.py +12 -9
  62. package/scripts/dos-bench.js +56 -0
  63. package/scripts/index-build.js +9 -2
  64. package/scripts/pool-map.js +152 -36
  65. package/scripts/setup.js +142 -22
  66. package/scripts/shots.mjs +27 -0
  67. package/scripts/smoke.sh +7 -6
  68. package/scripts/tls.js +31 -0
  69. package/scripts/ui.js +4 -2
  70. package/server/auth/sessions.js +33 -13
  71. package/server/chain/blockfile.js +64 -5
  72. package/server/chain/index/build.js +451 -58
  73. package/server/chain/index/heights.js +29 -3
  74. package/server/chain/index/live.js +13 -7
  75. package/server/chain/index/rows.js +6 -1
  76. package/server/chain/index/store.js +28 -5
  77. package/server/chain/index/worker.js +23 -11
  78. package/server/collect/logparse.js +65 -18
  79. package/server/collect/markets.js +76 -7
  80. package/server/collect/mining.js +32 -0
  81. package/server/collect/monitor.js +54 -12
  82. package/server/collect/network.js +305 -0
  83. package/server/config.js +53 -22
  84. package/server/http/api.js +119 -18
  85. package/server/http/games.js +77 -0
  86. package/server/http/server.js +30 -5
  87. package/server/http/sse.js +53 -7
  88. package/server/main.js +66 -11
  89. package/server/rpc/allowlist.js +26 -0
  90. package/server/rpc/client.js +30 -2
  91. package/server/store/audit.js +6 -1
  92. package/server/store/history.js +19 -3
  93. package/server/store/ledger.js +15 -4
  94. package/server/tls/selfsigned.js +160 -0
  95. package/systemd/blockyard.service +41 -8
  96. package/docs/PRIVATE-LEADERBOARD.md +0 -230
  97. package/docs/STATE-2026-09-09.md +0 -200
@@ -20,6 +20,10 @@ are node actions, which are off unless an operator explicitly enables them (see
20
20
  - [Tetrust](#tetrust)
21
21
  - [Blockout](#blockout)
22
22
  - [Blockanoid](#blockanoid)
23
+ - [Scorched Yard](#scorched-yard)
24
+ - [Wolfenstein 3D](#wolfenstein-3d)
25
+ - [DOOM](#doom)
26
+ - [Quake](#quake)
23
27
  - [Peers](#peers)
24
28
  - [Network](#network)
25
29
  - [Mining](#mining)
@@ -218,35 +222,40 @@ both modes move to their new places rather than disappearing and reappearing.
218
222
 
219
223
  While the board is at rest, one effect plays every seven to thirteen seconds — the first
220
224
  about a second after the board lands — and never one that has played within the last twelve
221
- (**No repeats within**, 0 up to the length of that board's list). There are **30**, and each has its own switch. **Each board
225
+ (**No repeats within**, 0 up to the length of that board's list). There are **34**, and each has its own switch. **Each board
222
226
  has its own list**: the Block space board's switches are the **Space effects** tab, the
223
227
  Markets board's are the **Market effects** tab, and each tab has its own no-repeat window, so
224
228
  trimming one board's effects leaves the other's alone.
225
229
 
226
230
  | | |
227
231
  |---|---|
228
- | **Ripple**, **Outline sweep**, **Scan line**, **Tide** | fronts crossing the board: a spreading ring, traced edges, a tight line, a swell that lifts the cubes it passes under |
232
+ | **Ripple**, **Outline sweep**, **Scan line**, **Tide** | fronts crossing the board: a spreading ring, traced edges, a curtain of light standing floor to top — a white core with soft cyan faces, raster rippling down it, a bar it hangs from, a glowing foot with a phosphor tail, motes in the beam — and a swell that lifts the cubes it passes under |
233
+ | **X-ray** | a front sweeps the board and everything behind it goes x-ray — bodies to glass, edges and a raster lit — then develops back to solid |
229
234
  | **Cascade**, **Twinkle**, **Sparkle** | the blocks light in fee-rate order; scattered flashes; a constellation, each block its own colour |
230
235
  | **Light cycles** | a TRON-style race in blue and orange from opposite edges, leaving light walls, until one crashes and de-rezzes |
231
236
  | **Lightning ball** | a pale plasma ball entering from off-screen, tracing the grid, throwing bolts and trailing electrical dust |
232
- | **Shockwave**, **Nova**, **Fireworks**, **Solar flare** | a hard ring that throws blocks into the air; an implosion then a brighter blast; three bursts; one block going supernova |
237
+ | **Shockwave**, **Nova**, **Fireworks**, **Supernova** | a hard ring that throws blocks into the air; an implosion then a brighter blast; a fireworks display; a supernova a star swells white-hot and crackles, blows out in a flash and a lens flare, a shockwave rings out, plasma is flung on every side, and a ring nebula expands and cools gold → red → violet round a white dwarf, lighting everything near it as it goes |
233
238
  | **Wave**, **Quake**, **Checkerboard**, **Combo chain** | crests rolling across; the board shaking itself out; squares flipping against each other; a chain reaction down the diagonal |
234
239
  | **Code rain**, **Radar**, **Vortex** | a drop falling down every column; a sweep hand with a phosphor tail; spiral arms draining inward |
235
240
  | **Power-up**, **Aurora**, **Plasma** | the board charging from the floor up in gold; drifting curtains of colour; the demoscene plasma |
236
241
  | **Centipede**, **Interception**, **Collapse** | a body that weaves down the board and splits in two; arcs raining down against interceptors rising to meet them; the board giving way from a point, cubes collapsing outward |
237
242
  | **Tractor beam** | a UFO that draws the tallest transaction up into its beam, flies off with it and drops it back under gravity |
238
- | **Ball lightning** | a plasma sphere in a nebula drifting across the whole view from off-screen to off-screen, its arcs electrifying the blocks they strike — and half the arcs chain on from the struck block to another as a green discharge, half of those on to a third; on Markets it flies through the chart, striking candles and charging the price line where it passes |
239
- | **Energy pulse** | the surge that runs the neon price line on Markets, electric blue behind its head |
243
+ | **Ball lightning** | a plasma sphere in a nebula drifting across the whole view from off-screen to off-screen, a hazy white light on everything it passes, its arcs electrifying the blocks they strike and lighting where they land — and half the arcs chain on from the struck block to another as a green discharge, half of those on to a third; on Markets it flies through the chart, striking candles and charging the price line where it passes |
244
+ | **Energy pulse** | the surge that runs the neon price line on Markets: the pipe swells round its head and goes white-hot behind it, cooling back to the wire through hot gold, with a warm cloud, crackle and motes — nothing blue |
245
+ | **Breathe** | on Markets: the price line breathes, three slow swells from the plain wire to the pulse's white heat and back |
246
+ | **Light saber** | on Markets: the price line ignites from its left end as a light saber — blue, green, red or purple by the run — hums, spits sparks, and retracts |
247
+ | **Black hole** | on Markets: a point of darkness opens on the price line and grows; the line bends round it as through a lens, the candles nearest are swallowed, and an accretion disk in the chart's own colours spirals in round the shadow — brighter on the side coming toward you, its far side arched over the top and under the bottom, a photon ring hugging the horizon, starlight bent into arcs — until it shrinks away and lets everything go |
240
248
  | **Pipe bulge** | on Markets: a ball forced through the price line, the tube swelling around it with a stretched skin; it enters at the line's start at the tube's own size, leaves at its end, and runs quicker downhill than up |
241
249
 
242
250
  They are decoration only: they carry no data, they never play during a refresh, and they
243
251
  are switched off entirely under `prefers-reduced-motion`. The Block space list is every effect
244
252
  but the two drawn on a price line (**Energy pulse**, **Pipe bulge**). The Markets board is eight
245
253
  units deep and as wide as the hours, so everything there moves **along the hours, left or right,
246
- never toward you**, and lights the candles or the line. Its list is the **twelve** that
254
+ never toward you**, and lights the candles or the line. Its list is the **sixteen** that
247
255
  translate to a chart: **Ripple**, **Outline sweep**, **Tide**, **Cascade**, **Twinkle**, **Scan
248
- line**, **Fireworks**, **Solar flare**, **Wave**, and the price line's own **Energy pulse**,
249
- **Pipe bulge** and **Ball lightning** (half its Block space size there). Fronts run along the
256
+ line**, **X-ray**, **Fireworks**, **Supernova**, **Wave**, and the price line's own **Energy pulse**,
257
+ **Pipe bulge**, **Breathe**, **Light saber**, **Black hole** and **Ball lightning** (a quarter of its
258
+ Block space size there). Fronts run along the
250
259
  chart, rings start on the candle row, the candles light where they stand. Nothing on it waits
251
260
  its turn: the pulse, the bulge and ball lightning are picks like any other, and how often you
252
261
  see one is the length of the list you leave switched on.
@@ -400,8 +409,8 @@ page reads **not indexed** and says so in a note with the phase, the progress, t
400
409
  and the time left; the Overview's "what this panel cannot tell you" box shows the same line, and
401
410
  adds `paused while the node's RPC is slow` whenever the build is holding back so the node keeps
402
411
  answering. A notification appears in every open tab when the build starts, when it finishes and
403
- if it fails; on finish the page fills in with no restart. The build does not resume after the
404
- server is stopped: the next start begins it again.
412
+ if it fails; on finish the page fills in with no restart. A build stopped with the server
413
+ resumes on the next start from the files it had finished, and its progress picks up from there.
405
414
 
406
415
  **Without an index configured**, the address and its type are still confirmed
407
416
  (`validateaddress` needs none), and balance, totals and history read **not indexed**. It does
@@ -422,11 +431,14 @@ Core supports.
422
431
 
423
432
  ## Markets
424
433
 
425
- The BTC/USD price from five exchanges' public APIs. The server fetches market data
426
- **only while someone is reading it** the Markets or Kiosk tab, or Overview, whose price
427
- line (**Display settings → Markets & Price → Price line on Overview**, on by default) reads
428
- the same feed and stops about ten minutes after the last request. Switch that line off
429
- and, with no one on Markets or Kiosk, the monitor makes no exchange requests at all.
434
+ The BTC/USD price from five exchanges' public APIs. **Polling is off by default**: out of
435
+ the box the monitor makes no outbound connection but to your node, and Markets and Kiosk say
436
+ so. Tick **Display settings → Markets & Price → Enable market polling** one switch for
437
+ every screen of this monitor, no restart needed. With it on, the server fetches market data
438
+ **only while someone is reading it** — the Markets or Kiosk tab, or Overview, whose price line
439
+ (**Display settings → Markets & Price → Price line on Overview**) reads the same feed — and
440
+ stops about ten minutes after the last request. Switch that line off and, with no one on
441
+ Markets or Kiosk, the monitor makes no exchange requests at all.
430
442
 
431
443
  ![Markets](images/markets.jpg)
432
444
 
@@ -706,6 +718,385 @@ rather than the look, flipping them reaches the game you are playing, not just t
706
718
 
707
719
  ---
708
720
 
721
+ ## Scorched Yard
722
+
723
+ Scorched Earth, the 1991 DOS artillery game, on the block engine: a landscape of dirt cubes that
724
+ craters and falls, tanks that aim by angle and power, wind, and a round that ends when one tank is
725
+ left. Under **Diversions**, after Blockanoid. You play against two computer opponents out of the
726
+ box (**Display settings → Scorched Yard → Computer players** fields up to seven, for the original's
727
+ eight seats; every tank has its own colour).
728
+
729
+ The rules are the original's (docs/PLAN-SCORCHED-YARD.md is the whole plan): the manual's roster
730
+ of thirty-three weapons and eleven accessories at the manual's prices, packs and blast radii,
731
+ craters, falling dirt, fall damage, death and its blast, the walls, wind, cash for damage and
732
+ kills, a shop between rounds, and a game of rounds. The manual's eight computer
733
+ personalities take the other seats. The fabulous part is on its way.
734
+
735
+ ### Playing
736
+
737
+ | Keys | |
738
+ |---|---|
739
+ | **←** **→** or **A** **D** | the barrel's angle, a degree at a time (Shift: five) |
740
+ | **↑** **↓** or **W** **S** | power, ten at a time (Shift: one, Ctrl: a hundred) |
741
+ | **[** **]** or **PgUp** **PgDn** | the weapon, through what you own |
742
+ | **space** or **Enter** | fire |
743
+ | the mouse | drag on the field to aim: the direction from your tank is the angle, the distance the power |
744
+ | **A** **D** | drive a cell left or right, a unit of fuel each |
745
+ | **B** | a battery: 30 health back |
746
+ | **S** | raise a shield (the best you own) |
747
+ | **T** **H** | arm a contact trigger or heat guidance for the next shot |
748
+ | **P** or **Esc** | pause |
749
+ | **N** | the next round, from the shop |
750
+
751
+ ### The roster
752
+
753
+ You start with the bottomless **Baby Missile** and your cash; everything else is bought. What a
754
+ shell does when it lands:
755
+
756
+ | weapon | what it does |
757
+ |---|---|
758
+ | Baby Missile, Missile, Baby Nuke, Nuke | a blast: a crater and damage that falls off with distance, from a cell and a half across to eleven |
759
+ | Leap Frog | three warheads, one after another, each blast bigger than the last |
760
+ | Funky Bomb | a blast, then six bomblets thrown out that each blast where they land |
761
+ | MIRV, Death's Head | five (or nine, large) warheads splitting at the top of the arc |
762
+ | Tracer, Smoke Tracer | no crater and no damage: it shows you the wind |
763
+ | Baby Roller, Roller, Heavy Roller | lands and rolls downhill until it meets a tank or the bottom of a dip, then blasts |
764
+ | Riot Charge, Riot Blast | a wedge of dirt cut from the turret along the barrel's line, at once; nobody hurt |
765
+ | Riot Bomb, Heavy Riot Bomb | a shell that clears a sphere of dirt and hurts no one |
766
+ | Dirt Clod, Dirt Ball, Ton of Dirt | a shell that bursts into a ball of dirt |
767
+ | Liquid Dirt | oozes downhill and sets where it pools, filling the holes |
768
+ | Dirt Charge | a wedge of dirt thrown from the turret, at once |
769
+ | Earth Disrupter | every hanging piece of dirt on the field settles, at once |
770
+ | Napalm, Hot Napalm | liquid fire that runs downhill along the surface and burns what it reaches |
771
+ | Baby Digger, Digger, Heavy Digger | digs straight down, then blasts |
772
+ | Baby Sandhog, Sandhog, Heavy Sandhog | tunnels on along its heading through the dirt, then blasts |
773
+ | Plasma Blast | energy thrown from your own tank, its reach set by the power; you are spared, no crater |
774
+ | Laser | a straight line from the barrel, at once: dirt along it goes, a tank on it burns |
775
+
776
+ The accessories: **Shield**, **Force Shield** and **Heavy Shield** absorb 60, 100 and 150 damage;
777
+ a **Mag Deflector** pushes passing shells away and a **Super Mag** harder and from further; a
778
+ **Parachute** opens when you fall; a **Battery** restores health; **Auto Defense** raises a shield
779
+ for you as your turn begins; a **Fuel Tank** lets you drive; a **Contact Trigger** sets the shell
780
+ off within reach of a tank before it buries; **Heat Guidance** bends the shell toward the nearest
781
+ tank as it falls. The items line under the fire button shows what you carry and what is armed.
782
+ Prices, packs and radii are the manual's (SCORCH.DOC); the original started every player with $0
783
+ and 5% interest, which the settings allow.
784
+
785
+ ### The computer players
786
+
787
+ ![Scorched Yard](images/scorched.jpg)
788
+
789
+ Out of the box you face a **mix**, climbing from the easy ones: a Shooter and a Tosser, then a
790
+ Chooser, a Spoiler, a Cyborg and a Poolshark as you add seats. **Display settings → Scorched Yard
791
+ → Their kind** fields one kind in every seat instead. They are the manual's eight, and they
792
+ behave as it says:
793
+
794
+ | kind | how it plays |
795
+ |---|---|
796
+ | Moron | picks an angle and a power, and shoots; buys at random |
797
+ | Shooter | takes low, straight shots when it has a line of fire, and shoots like a Moron when it does not |
798
+ | Poolshark | a Shooter, except that under rubber or spring walls it looks for the bank shot too |
799
+ | Tosser | lobs high, then corrects its power from each miss, by halves, until it hits |
800
+ | Chooser | tries the straight shot, the lob and the bank, and takes whichever lands closest |
801
+ | Spoiler | works the shot out from the wind and gravity and is nearly perfect, with a wobble now and then |
802
+ | Cyborg | a Spoiler with a grudge: it fires at whoever hit it last, else at the weakest, else at the leader |
803
+ | Unknown | one of the others, drawn afresh each round and never announced |
804
+
805
+ All but the Moron use a battery when hurt and raise a shield before firing, and each shops to its
806
+ own taste between rounds: Shooters buy missiles, Tossers MIRVs and Funky Bombs, Cyborgs the
807
+ Death's Head and the heaviest shields.
808
+
809
+ ### Cash and the shop
810
+
811
+ Every point of damage you land earns $10, a kill $2,000, and the last tank standing $1,000; interest
812
+ (a setting, 5% out of the box) is paid on what you keep between rounds. When a round ends the
813
+ **shop** opens: every weapon and item with its price and pack size, what you own, and a buy button
814
+ while you can afford it. The computer players shop at the same moment, in their own way. What you
815
+ buy stays with you for the rest of the game.
816
+
817
+ ### The controls
818
+
819
+ **← →** turn the barrel, **↑ ↓** change the power, and a **held key accelerates**: one a step, then
820
+ two, then five, so crossing the whole arc takes about a second and a half and the last degree still
821
+ takes one press. **Shift** is fine (1° and 1), **Ctrl** coarse (100 of power). **, and .** nudge the
822
+ power by one. The **wheel** over the field changes the power, and with **Shift** the angle. **Click
823
+ the angle or the power** on the panel and type the number. **Drag** on the field to aim; **press on
824
+ your own tank** and drag to turn the barrel without touching the power. **R** fires the last shot
825
+ again, exactly.
826
+
827
+ **Correcting.** Click an enemy tank to mark it (a red ring goes under it; click it again to clear).
828
+ After your next shot the panel says how it did against that tank — *10 over*, *6 short*, *close*,
829
+ *hit* — and **C** sets your power to what that miss says it should have been. It works from your
830
+ own last shot, so the wind and the hills are still yours to read; change the angle and it is only
831
+ an estimate. Display settings → Scorched Yard → *Correction helper* turns it off.
832
+
833
+ **Weapons.** **W** opens a grid of what you own, biggest blast first, with counts and the key for
834
+ each; click one or press its number. **1–9** pick the weapons you own in the shop's order, **Q**
835
+ picks the last one you fired, **[ ]** still cycle. The **fire button names what it will send**
836
+ (*fire · Missile × 5*), and the last of a weapon sold one at a time — a Nuke, a Death's Head —
837
+ **asks once**: the button turns red and says so, and a second press within three seconds sends it
838
+ (*Confirm the last of a weapon* in Display settings).
839
+
840
+ **The aim guide** draws a ghost of the shell's path while you aim, under this round's wind and
841
+ gravity: by default just the first fifth of the flight, enough to read the lean of the shot without
842
+ giving the landing away. *Aim guide* in Display settings chooses short, the whole flight, or off.
843
+ **Cheat mode** draws the whole flight with a ring where it lands.
844
+
845
+ **Items** are buttons: click a pill to use a battery, raise a shield or arm a trigger, or press
846
+ **B**, **S**, **T**, **H**; **A D** drive if you have fuel. **Space** or the fire button sends the
847
+ shot; **P** pauses; **N** starts the next round.
848
+
849
+ **Restart** on the panel (or **F2**) starts a fresh war from round one, whatever the board is doing:
850
+ a war is five rounds, and a player knocked out early should not have to watch the computer finish.
851
+
852
+ The wind is **simulated air**, behind the land. A small fluid simulation is pushed by the round's
853
+ wind and treats the land as its solid floor, so the air rises over the hills, speeds across the
854
+ crests and rolls into eddies behind them, and it follows the craters as they are blown. You see it
855
+ as thin flow lines, the wind-map kind: each one the recent path of something weightless carried by
856
+ that air, fading in and out and thinning away at the edges of the field. The sky behind them sways
857
+ very slightly, as if seen through moving air. When the wind changes, the air turns round by its own
858
+ momentum rather than jumping. A row of **chevrons** at the top of the field points the way it
859
+ blows, as many as it is strong, brightest just after a change. A computer player decides its shot
860
+ as its turn begins, and you can watch its barrel swing onto it while it thinks.
861
+
862
+ **Cheat mode** (a switch on the panel, also under Display settings → Scorched Yard) draws the
863
+ firing solution while you aim: the shell's own path under this round's wind and the game's
864
+ gravity, clipped where it would meet the dirt, with a ring where it lands. It moves as you move
865
+ the barrel or the power, so you can watch the arc bend under the wind. It is the rules' own
866
+ arithmetic, so what it draws is what the shot does.
867
+
868
+ Over the tank whose turn it is stands the **aim gauge**: a protractor with a tick every fifteen
869
+ degrees, a needle along the current angle whose length is the power, and both numbers at its tip.
870
+ It is dimmed on a computer player's turn, so you can read what it is about to do before it fires.
871
+
872
+ The HUD shows whose turn it is, the round, the **wind** (an arrow and its strength: it changes
873
+ every turn, and it bends every shot; you can see it too — streaks of moving air run level across
874
+ the sky behind the land, short and slow in a breeze, long and quick in a gale, in three bands of
875
+ depth so the air has thickness; the pennant on every turret streams downwind; and the Earth sky's
876
+ clouds go with it), your angle, power and weapon with its count, and every
877
+ tank's health. **Fire** on the HUD does what space does. A shell that lands carves a circle out of
878
+ the dirt; the blast itself is drawn the way the fireworks are — a white core, a shockwave, sparks
879
+ that curve and trail, and smoke that rises, spreads, drifts downwind and thins; the dirt above the
880
+ crater falls until it rests, and a tank left in the air falls with
881
+ it and is hurt by the fall. A blast hurts every tank in reach, most at its centre. A tank at zero
882
+ health explodes, and its blast can take a neighbour with it.
883
+
884
+ A round ends when one tank is left (or none); the survivor scores 200, a kill 100, and a tank
885
+ that kills itself loses 50. **Rounds** (a setting, five out of the box) make a game; the highest
886
+ score at the end wins, and your score goes in the high-score table, this browser's.
887
+
888
+ ### The switches on the panel
889
+
890
+ **Sky** goes round the Galaxy, the Earth and none: the same choice as the **Sky** tab's map. The
891
+ game ships under the Earth, and each round takes its own hour of it, dawn to night, unless **A sky
892
+ per round** is off. **Music** is a march in D minor on oscillators. **Sound** is the shot, the blast, a hit, a
893
+ fall, a death. **Talk** is what the tanks say when they fire, are hit, or die. **Fast** flies
894
+ shells at three times the pace. **Watch** is the attract mode: the computer takes your chair as
895
+ well, so every seat is a computer player and the war runs on by itself — a round rolls into the
896
+ next without waiting at the shop, and when one of them wins the war a fresh one begins. Nothing
897
+ is scored in the high-score table for a war nobody played. Turn it off and the next game seats
898
+ you again; it is also in **Display settings → Scorched Yard → Attract mode**, and it is what to
899
+ leave running on a screen in the corner.
900
+ The rules the original exposed are in **Display settings → Scorched Yard**: the number of
901
+ computer players, the rounds, the **walls** (none loses a shell off the edge, the original's
902
+ default; concrete explodes it there; padded stops it and drops it; rubber bounces it; spring
903
+ bounces it back harder; wraparound brings it in the other side), the **wind** (once a round, which is how it ships: the round's
904
+ direction is drawn when the round starts and held to the end of it, while the strength is drawn
905
+ again for every turn, so the air blows one way and how hard is still something to read before each
906
+ shot; every turn, which is the original's and can turn right around between two shots; every shot;
907
+ or none), **gravity**, the **landscape** the rounds are drawn from (hills, mountains, a valley,
908
+ flat), the **starting cash** and the **interest** rate. They take effect at the next new game.
909
+
910
+ ## Wolfenstein 3D
911
+
912
+ The shareware episode of Wolfenstein 3D, **Escape from Wolfenstein**, under **Diversions**, first of
913
+ the three DOS games. It is id Software's own `WOLF3D.EXE` v1.4 and its `.WL1` data files, unmodified,
914
+ on the same PC BlockYard emulates for DOOM and Quake. Where those two were 32-bit programs, Wolfenstein
915
+ 3D is a 16-bit **real-mode** DOS program from 1992, so here the emulated processor runs the way a PC
916
+ started up: segments and offsets, DOS's own memory, the interrupt table at the bottom of memory. AdLib
917
+ music plays on the sound card's OPL and the digitised effects ("Achtung!") on its DSP. It draws at 70
918
+ frames a second, the VGA's refresh rate, with plenty of machine to spare.
919
+
920
+ Press **play**. The sign-on screen shows what the game found (memory, mouse, Sound Blaster); press a
921
+ key, the title and the demos follow, and **Enter** or **Esc** brings up the menu: **New Game**, pick
922
+ the episode and how tough you are.
923
+
924
+ ### The files
925
+
926
+ The game's files live on the server in `games/wolf3d_dos/`: `WOLF3D.EXE`, and the eight `.WL1` files
927
+ it cannot start without (`AUDIOHED`, `AUDIOT`, `GAMEMAPS`, `MAPHEAD`, `VGADICT`, `VGAGRAPH`,
928
+ `VGAHEAD`, `VSWAP`). `CONFIG.WL1`, its settings and high scores, is optional. The page names a missing
929
+ file instead of starting.
930
+
931
+ ### Playing
932
+
933
+ **Click the screen to capture the mouse**: moving it forward and back walks, left and right turns,
934
+ the left button fires. **Esc** gives the mouse back. The keys are the game's own:
935
+
936
+ | Keys | |
937
+ |---|---|
938
+ | **↑** **↓** | walk |
939
+ | **←** **→** | turn |
940
+ | **Alt** + **←** **→** | strafe |
941
+ | **Ctrl** or left click | fire |
942
+ | **Space** | open doors, push walls |
943
+ | **Shift** (held) | run |
944
+ | **1**–**4** | knife, pistol, machine gun, chain gun |
945
+ | **Esc** | the menu |
946
+ | **F8** / **F9** | quick save / quick load |
947
+
948
+ Rebind them under **Change View** and **Control** in the game's own menu; it keeps what you choose.
949
+
950
+ ### Pausing, saving, quitting
951
+
952
+ Exactly as DOOM: it **pauses when you look away** with the machine stopped dead, **savegames, the
953
+ settings and the high scores stay in this browser**, and **Quit** ends the program the way it ended
954
+ in DOS, with a **play again** button.
955
+
956
+ ### The switches on the panel
957
+
958
+ **♫ sound**, **◌ smooth** and **⛶ full screen**, as in DOOM. In full screen a tap of **Esc** is the
959
+ game's menu, not the browser's exit; leave with the **exit full screen** button in the top corner,
960
+ or hold **Esc** for a second.
961
+
962
+ ---
963
+
964
+ ## DOOM
965
+
966
+ If anyone asks *"well, can it run DOOM?"*, the answer is an emphatic **"Naturally. What sort of AI
967
+ slop generator do you take me for?"**
968
+
969
+ The shareware episode of DOOM, **Knee-Deep in the Dead**, under **Diversions**. Not a remake: it is
970
+ id Software's own `DOOM.EXE` v1.9 and `DOOM1.WAD`, unmodified, running on a 486 PC that BlockYard
971
+ emulates in your browser — the processor, DOS and its memory extender, the VGA card and a Sound
972
+ Blaster, all written in JavaScript. It plays exactly as it did in 1993, demos, sound effects, OPL
973
+ music and all.
974
+
975
+ Press **play**. The machine boots (you will see DOOM's own start-up screen for a moment), the
976
+ demos start, and **Esc** opens DOOM's menu: **New Game** from there.
977
+
978
+ ### The files
979
+
980
+ The game's files live on the server, in `games/doom_dos/` beside the application — the shareware
981
+ package the operator put there. Without `DOOM.EXE` and `DOOM1.WAD` in that directory the page
982
+ says which file is missing instead of starting. Nothing is downloaded from anywhere else.
983
+
984
+ ### Playing
985
+
986
+ **Click the screen to capture the mouse**: moving it turns, the left button fires, the right
987
+ strafes, the middle walks forward. **Esc** gives the mouse back (and opens DOOM's menu). The keys
988
+ are **WASD** by default:
989
+
990
+ | Keys | |
991
+ |---|---|
992
+ | **W** **S** | walk |
993
+ | **A** **D** | strafe |
994
+ | **←** **→** | turn |
995
+ | **E** | open doors, press switches |
996
+ | **Ctrl** or left click | fire |
997
+ | **Shift** (held) | run |
998
+ | **1**–**7** | choose a weapon |
999
+ | **Tab** | the map |
1000
+ | **Esc** | DOOM's menu |
1001
+ | **F2** / **F3** | save / load |
1002
+ | **F5** | detail · **F11** gamma |
1003
+
1004
+ Turn the **⌨ WASD** switch off for DOOM's own 1993 keys: **↑** **↓** walk, **Alt** + **←** **→**
1005
+ strafe (or **,** and **.**), **Space** opens. The switch applies **at once**, in the middle of a
1006
+ game — the page rewrites the running game's key settings — and DOOM saves whichever you chose
1007
+ when you quit.
1008
+
1009
+ ### Pausing, saving, quitting
1010
+
1011
+ **It pauses when you look away** — another browser tab, or another page of the monitor — and the
1012
+ emulated machine stops dead: its clock stops with it, so nothing moves while you are gone. Press
1013
+ **resume** to carry on.
1014
+
1015
+ **Savegames and settings stay in this browser.** DOOM's six save slots, and the configuration it
1016
+ writes when you quit (volumes, screen size, detail), are kept in the browser's storage and come
1017
+ back the next time you play — on this browser only; they are never sent to the server.
1018
+
1019
+ **Quitting** from DOOM's menu ends the program the way it ended in DOS: the text-mode ENDOOM screen,
1020
+ and a **play again** button.
1021
+
1022
+ ### The switches on the panel
1023
+
1024
+ | Switch | |
1025
+ |---|---|
1026
+ | **♫ sound** | The Sound Blaster, on or muted. |
1027
+ | **⌨ WASD** | W A S D and E (the default), or DOOM's own keys; applies immediately. |
1028
+ | **◌ smooth** | Smooths the 320×200 picture instead of showing its square pixels. |
1029
+ | **⛶ full screen** | The screen alone. In Chrome it also keeps **Esc** for DOOM's menu, so leave with the **exit full screen** button in the top corner, or hold **Esc** for a second. |
1030
+
1031
+ The **Machine** panel says what the PC is doing: running or paused, how fast the emulated
1032
+ processor is going (in millions of instructions a second), how many frames reach the screen, and
1033
+ the sound card's rate. DOOM draws at most 35 frames a second, as it always did.
1034
+
1035
+ If the sound will not start, the page may be served over plain HTTP from a LAN address: the browser
1036
+ refuses its low-latency audio there, and DOOM falls back to a simpler path that works everywhere
1037
+ but can crackle when the machine is busy.
1038
+
1039
+ ---
1040
+
1041
+ ## Quake
1042
+
1043
+ The shareware episode of Quake, **Dimension of the Doomed**, under **Diversions**, after DOOM and on
1044
+ the same emulated PC. Again the real thing: id Software's `QUAKE.EXE` v1.06 and `PAK0.PAK`,
1045
+ unmodified. Quake asked a lot more of a PC than DOOM did — a Pentium and a maths coprocessor — so it
1046
+ is the harder test of the machine. It plays at **forty to fifty frames a second** — better than the
1047
+ Pentium it was written for managed in 1996.
1048
+
1049
+ Press **play**. The first start downloads the 18 MB PAK file from the server (after that the
1050
+ browser revalidates it rather than fetching it again), the console scrolls past, the demos start,
1051
+ and **Esc** opens Quake's menu: **Single Player → New Game**.
1052
+
1053
+ ### The files
1054
+
1055
+ The game's files live on the server in `games/quake_dos/`: `QUAKE.EXE` and `ID1/PAK0.PAK` are the
1056
+ two it cannot start without. The page names a missing one instead of starting. Quake's CD music was
1057
+ never part of the shareware download, so there is none; the sound effects play through the Sound
1058
+ Blaster.
1059
+
1060
+ ### Playing
1061
+
1062
+ **Click the screen to capture the mouse.** Quake starts with **mouse look** on and the keys a later
1063
+ game taught everyone:
1064
+
1065
+ | Keys | |
1066
+ |---|---|
1067
+ | **W** **S** | walk |
1068
+ | **A** **D** | strafe |
1069
+ | mouse | look and turn |
1070
+ | left click or **Ctrl** | fire |
1071
+ | **Space** or right click | jump |
1072
+ | **Shift** (held) | run |
1073
+ | **1**–**8** | choose a weapon |
1074
+ | **Esc** | Quake's menu |
1075
+ | **−** / **=** | a smaller or bigger view |
1076
+ | **~** | the console |
1077
+ | **F6** / **F9** | quicksave / quickload |
1078
+
1079
+ Those are set the first time only. Change anything in Quake's own **Options → Customize controls**,
1080
+ and Quake saves your bindings when you quit; the page never overwrites them again.
1081
+
1082
+ **A smaller view runs faster.** Quake starts with its view a little inside the screen, a border
1083
+ round it. Quake only draws the 3D world inside that view, so **−** makes it smaller and faster and
1084
+ **=** makes it bigger, up to the whole width; Quake keeps your choice. Measured on this machine's
1085
+ emulator, a smaller view is worth about a tenth more speed at the starting size, and a quarter or
1086
+ more below that.
1087
+
1088
+ ### Pausing, saving, quitting
1089
+
1090
+ Exactly as DOOM: it **pauses when you look away** with the machine stopped dead, **savegames and
1091
+ Quake's config stay in this browser**, and **Quit** ends the program the way it ended in DOS, with
1092
+ id's order screen and a **play again** button.
1093
+
1094
+ ### The switches on the panel
1095
+
1096
+ **♫ sound**, **◌ smooth** and **⛶ full screen**, as in DOOM (and the same two ways out of full screen).
1097
+
1098
+ ---
1099
+
709
1100
  ## Peers
710
1101
 
711
1102
  | Panel | What it shows |
@@ -732,15 +1123,22 @@ Peer identity is not guessed from another source.
732
1123
 
733
1124
  ## Mining
734
1125
 
735
- The block under construction and who has been mining.
1126
+ The block under construction and who has been mining. The layout follows mempool.space's mining dashboard: Block flow across the top, then two columns — reward stats and the difficulty adjustment, the pools and the hashrate, recent blocks and the adjustments — and our own panels beneath. **View more »** on the pools, hashrate, recent blocks and adjustments cards opens that card full screen (Esc, the close button or a click outside shuts it).
1127
+
1128
+ ![Mining](images/mining.jpg)
736
1129
 
737
1130
  | Panel | What it shows |
738
1131
  |---|---|
1132
+ | **Reward stats** | The last 144 blocks: the miners' reward (subsidy plus fees), the average fees per block and the average fee per transaction, from `getblockstats`, rolled forward a block at a time. Each carries its dollar figure while market polling is on (the cached spot price, never a new poll); off, a note says so. |
1133
+ | **Difficulty adjustment** | Blocks remaining in the current period and when it ends at the pace so far, the estimated change (the pace projected over the period against the ten-minute target, within the protocol's factor-of-four bounds), the previous change, and the next halving's height and date. |
1134
+ | **Pools** | The last week's blocks by pool, as a donut with its legend: luck (blocks found against the 1,008 the target spacing would give), the block count and how many pools. Every coinbase of the week is read from the node, eight every few seconds behind the live polls, and the note says how far that has got. |
1135
+ | **Hashrate & difficulty** | The week's hashrate from `getnetworkhashps` and the current difficulty, and a year's chart: one block header a day gives that day's mean interval, and difficulty × 2³² over it is the day's hashrate estimate (the thin line), with a seven-day mean over it and the difficulty's steps on the right axis. |
1136
+ | **Recent blocks** | The attributed window newest first: height (a link to the explorer), pool, when it was mined, the reward (the height's subsidy plus its fees) and the fees. Eight on the card, the whole window under View more. |
1137
+ | **Adjustments** | The last periods: the first block's height, when, the difficulty and its change from the period before. Six on the card, a year under View more. |
739
1138
  | **Block flow** | The same Block flow as on Overview. |
740
1139
  | **Packages in the block being built** | The ancestor graph from `getrawmempool … depends`: a histogram of package sizes, then a table of the top packages with fees, weight, package fee rate, child and parent fee rates, and a small picture of the package's shape. Rows with a child paying at least twice its parent's rate are highlighted as child-pays-for-parent. If every transaction stands alone, the panel says so. That is a real reading, not a missing chart. |
741
1140
  | **Feerate landscape** | The template's transactions bucketed by sat/vB, with green buckets well above the block's median and red ones below it. |
742
1141
  | **Pools in this window** | Blocks per pool, share, median fee rate, average weight, and the coinbase tags seen. A pool the curated label map does not recognise is marked `unlabelled` and shown by its raw tag. |
743
- | **Mempool space** | The Block space viewer, with a note giving how many transactions are drawn and how long ago the pool was read. |
744
1142
  | **Attribution** | How many blocks have been attributed, the height window, how many labels matched, where the label map came from, and the cost of the block template. |
745
1143
  | **Detailed** (click to expand) | What this node can and cannot answer about mining, and why. |
746
1144
 
@@ -782,8 +1180,7 @@ How the monitor treats your node, and where every number comes from.
782
1180
 
783
1181
  ## Admin
784
1182
 
785
- Visible only when accounts are enabled (`BLOCKYARD_AUTH=1`) and you are signed in as an
786
- admin.
1183
+ Visible only when accounts are enabled (the default) and you are signed in as an admin.
787
1184
 
788
1185
  - **Users**: every account with its role, creation date and last login, with buttons
789
1186
  to change the role or disable the account. **generate password** creates a user
@@ -857,6 +1254,8 @@ can bookmark it or send it to someone who can reach the same monitor:
857
1254
  | Tetrust | `#tetrust` |
858
1255
  | Blockout | `#blockout` |
859
1256
  | Blockanoid | `#blockanoid` |
1257
+ | DOOM | `#doom` |
1258
+ | Quake | `#quake` |
860
1259
  | Peers | `#peers` |
861
1260
  | Network | `#network` |
862
1261
  | Mining | `#mining` |
@@ -896,9 +1295,37 @@ same whatever you choose here.
896
1295
 
897
1296
  ![Display settings](images/settings.jpg)
898
1297
 
899
- The panel is **tabbed** Block space, Sky, Markets & Price, Blockout, Blockanoid, Space
900
- effects, Market effects and Tetrust. The two **effects** tabs are lists of switches, so they
901
- also get **all on** and **all off**; twenty-eight of them is a lot of clicking otherwise.
1298
+ The panel is **tabbed**, in three labelled rows: **Boards** (Appearance, Block space, Sky,
1299
+ Markets & Price), **Effects** (Space effects, Market effects) and **Diversions** (Tetrust,
1300
+ Blockout, Blockanoid). The two **effects** tabs are lists of switches, so they also get **all
1301
+ on** and **all off**; twenty-nine of them is a lot of clicking otherwise.
1302
+
1303
+ ### Appearance
1304
+
1305
+ The colours of the layout: the page, its cards, text, lines, the accent, and the axis text, grid
1306
+ lines and tooltips of every chart. The 3D boards are space whatever you choose, and the
1307
+ Explorer's block and transaction pages keep their own dark cards.
1308
+
1309
+ - **Theme mode** — Light, Dark or System. Every theme has a light face and a dark face; the mode
1310
+ picks which. System follows the operating system's setting and changes with it.
1311
+ - **Theme** — a card per theme, each with a strip of its swatches in the face the mode picks:
1312
+ - **BlockYard** — the shipped look, charcoal and bitcoin orange. The default; its dark face is
1313
+ exactly what the monitor drew before this tab existed.
1314
+ - **Mono** — clean grayscale, minimal and focused. The good, warning and bad colours stay, muted.
1315
+ - **Nous** — GitHub's chrome with a Nous blue accent.
1316
+ - **GitHub** — GitHub Light Default and Dark Default.
1317
+ - **Catppuccin** — the soothing pastels, Latte (light) and Mocha (dark).
1318
+ - **Custom** — your own nine colours, from the pickers below the cards.
1319
+ - **customise …** — the button beside the cards copies the theme on screen into the nine pickers
1320
+ and selects Custom, so you start from a look rather than from scratch.
1321
+ - **The nine pickers** — Page, Panels, Text, Muted text, Accent, Lines, Good, Warning and Bad.
1322
+ Everything else (a raised panel, the softer rules, the fainter text, the darker accent of a
1323
+ pressed button) is derived from them, so a custom theme hangs together whatever you pick.
1324
+ Whether Custom counts as light or dark follows from the Page colour, so a pale page gets dark
1325
+ derived shades and vice versa. The pickers are dimmed until Custom is the theme.
1326
+
1327
+ Like every other setting these are saved on the server, so the theme is the same on every screen
1328
+ of this monitor; the sign-in page draws in the theme this browser last saw.
902
1329
 
903
1330
  ### Block space
904
1331
 
@@ -922,29 +1349,69 @@ these are the settings that buy it back, roughly most expensive first:
922
1349
  | **Metallic finish** | *Chrome* mirrors a horizon in every face, and the reflection slides as the blocks move; *satin* is the softer highlight along the lit edge. Needs Metallic sheen on. |
923
1350
  | **Departures and arrivals** | How blocks leave and rejoin the board on a refresh. |
924
1351
  | **Depth** | How much height foreshortens, 0 to 0.001. 0 is the flat parallel camera the board shipped with: a cube is the same size however high it flies. Raise it and a cube's top grows a little wider than its base and a flying block swells slightly as it rises. |
925
- | **Star field** | On by default. The stars twinkle, so the board keeps repainting while they are on; switch it off to save that. What the stars *look* like is the **Sky** tab. |
1352
+ | **Sky** | Which sky stands behind the board: the **Galaxy**, the **Earth**, or none. What each sky is made of is the **Sky** tab; this is only the choice, and the Kiosk's left panel follows it. The Galaxy twinkles, so the board keeps repainting while it is up; none saves that. |
926
1353
  | **Board curve** | How far the board bows toward you. 0 is flat. |
927
1354
  | **Light** | Where the lamp hangs: *straight above* (the default) lights the whole board evenly, which keeps the front rows as bright as the middle; a corner shades the far slope of the curve and the sides turned away from it. |
928
1355
 
929
1356
  ### Sky
930
1357
 
931
- One sky, shared by every board that shows stars so the density you choose applies to Block
932
- space, Markets and Tetrust alike. Whether a given board shows it stays that board's own switch.
1358
+ There are two skies, and every board that has a sky behind it chooses one. The tab opens with the
1359
+ map, which is the whole answer to "which settings apply to which panel":
1360
+
1361
+ | board | draws |
1362
+ |---|---|
1363
+ | **Block space** (and the Kiosk's left panel) | Galaxy |
1364
+ | **Markets & Price** (and the Kiosk's right panel) | Galaxy |
1365
+ | **Tetrust**, **Blockout**, **Blockanoid** | Galaxy |
1366
+ | **Scorched Yard** | Earth |
1367
+
1368
+ Those are the shipped choices; each row is a select with **Galaxy**, **Earth** and **None**, and
1369
+ changing it here is the same setting as the **Sky** row at the top of that board's own tab. The
1370
+ games also carry a **sky** button on their panels that goes round the three. Below the map, the
1371
+ two skies themselves, each with only its own controls; neither is ever dimmed, because any board
1372
+ may be using it.
1373
+
1374
+ **The Galaxy** is the star field, BlockYard's own sky: one set of stars shared by every board that
1375
+ draws it, so the density you choose applies to Block space, the candles and the games alike.
933
1376
 
934
1377
  | setting | what it does |
935
1378
  |---|---|
1379
+ | **Spiral arms** | Lays the stars on slowly turning spiral arms instead of scattering them evenly. One turn takes about a quarter of an hour. |
1380
+ | **Arms centre** | Behind the board, or any of the four corners. A corner crowds the bright nucleus there and sweeps the arms across the panel. |
936
1381
  | **Star density** / **Star brightness** | How many stars (up to 8x the shipped number) and how strongly they burn. |
937
- | **Spiral galaxy** | Lays the same stars on slowly turning spiral arms instead of scattering them evenly. One turn takes about a quarter of an hour. |
938
- | **Galaxy centre** | Behind the board, or any of the four corners. A corner crowds the bright nucleus there and sweeps the arms across the panel. |
939
- | **Nebulae**, **Dust lanes**, **Star clusters**, **Distant galaxies** | The layers of the sky, each its own switch: gas clouds along the arms, dark ribbons on their inner edges, tight knots out in the halo, and small faint galaxies in the deep field behind everything. |
940
1382
  | **Star colours** | Warm old stars in the nucleus, blue-white young ones in the arms. Off is one colour of starlight. |
941
1383
  | **Star glints** | The halo and cross glint on the brightest stars. |
1384
+ | **Nebulae**, **Dust lanes**, **Star clusters**, **Distant galaxies** | The layers of the sky, each its own switch: gas clouds along the arms, dark ribbons on their inner edges, tight knots out in the halo, and small faint galaxies in the deep field behind everything. |
1385
+
1386
+ **The Earth** is a real day drawn from this machine's clock: the sun climbs and sets, the dome
1387
+ goes through night, dawn, day and dusk by the sun's height, clouds drift lit from the sun's side,
1388
+ the moon rises at tonight's phase, and the stars come out as the sun goes down (the Galaxy's
1389
+ density and brightness apply to them; its arms and layers do not, since a spiral over a real night
1390
+ is wrong).
1391
+
1392
+ - **Clock** — real time, a whole day every 24 minutes (to watch it turn), or a fixed hour to
1393
+ admire; **Fixed hour** is that hour.
1394
+ - **Weather** — clear, scattered cloud, overcast, or a storm with rain and lightning; **Cloud
1395
+ cover** overrides the weather's amount, and -1 leaves it to the weather.
1396
+ - **Latitude** — with one set, sunrise, sunset and the sun's height follow the real formula for
1397
+ the date (short winter days, the midnight sun); left unset, the day runs six to six.
1398
+ - **Sun rays**, **Rainbow** (opposite a low sun, in scattered weather) and **Shooting stars** (now
1399
+ and then, at night) are the touches, each a switch.
1400
+ - **Moon** — up every night, highest at midnight and never thinner than a fat crescent (the
1401
+ shipped choice), or on its real track at its real phase, which some nights means no moon at all.
1402
+
1403
+ The sun and the moon are drawn in front of the clouds, so neither is lost behind one, and a board
1404
+ whose land fills the lower part of the panel sets its horizon where the land is, so they go down
1405
+ behind the hills rather than under them.
1406
+
1407
+ A board under the Earth plays no idle effects: a supernova over a blue afternoon is wrong, on the
1408
+ block board and on the candles alike. Their switches are kept, and the Galaxy gets them back.
942
1409
 
943
1410
  ### Space effects and Market effects
944
1411
 
945
- One tab per board. **Space effects** is a switch for each of the **28** idle effects the Block
1412
+ One tab per board. **Space effects** is a switch for each of the **29** idle effects the Block
946
1413
  space board can play, listed under [Idle effects](#idle-effects) above; **Market effects** is a
947
- switch for each of the **12** the Markets board can play (named under Idle effects). Each tab has **all on** and **all off**, and its own
1414
+ switch for each of the **16** the Markets board can play (named under Idle effects). Each tab has **all on** and **all off**, and its own
948
1415
  **No repeats within**: how many other effects must play before one can play again (12 by
949
1416
  default; 0 allows a repeat straight away).
950
1417
 
@@ -962,9 +1429,11 @@ Markets & Price.
962
1429
 
963
1430
  ### Markets & Price
964
1431
 
965
- The candle board on Markets and Kiosk: the **star field** on or off, and **board effects** one
966
- switch for everything that moves on this board, both the idle effects and the flight when the
967
- candles refresh. Which idle effects may play is the **Market effects** tab.
1432
+ First the feed itself: **Enable market polling**, off out of the box, is the one switch that
1433
+ lets this monitor talk to anyone but your node (see [Markets](#markets)). Then the candle board
1434
+ on Markets and Kiosk: the **star field** on or off, and **board effects** — one switch for
1435
+ everything that moves on this board, both the idle effects and the flight when the candles
1436
+ refresh. Which idle effects may play is the **Market effects** tab.
968
1437
 
969
1438
  Your toolbar choices are remembered too: the **exchange** whose candles are drawn and the
970
1439
  **range** (24 hours, 48 hours or 7 days). Click them on the Markets page or set them here; either
@@ -972,7 +1441,8 @@ way the page opens where you left it.
972
1441
 
973
1442
  | setting | what it does |
974
1443
  |---|---|
975
- | **Price line on Overview** | The USD median, spread, 24 h volume and how many books reported, at the top of Overview. **On by default** and because it needs the exchange feed, this monitor then contacts five exchanges whenever Overview is open, not only on Markets and Kiosk. Switch it off and the landing page talks to nothing but your node. |
1444
+ | **Enable market polling** | **Off by default.** Lets the server ask five exchanges for prices, candles and order books the only thing the monitor ever says to anyone but your node. Until it is on, Markets and Kiosk say so and the explorer shows no dollar figures. Shared by every screen; takes effect at once, and unticking parks the feed at once. (`BLOCKYARD_MARKETS=0` on the server removes the feed so that this box cannot turn it on.) |
1445
+ | **Price line on Overview** | The USD median, spread, 24 h volume and how many books reported, at the top of Overview. It needs market polling (above); with that on, this monitor then contacts five exchanges whenever Overview is open, not only on Markets and Kiosk. Switch it off and the landing page talks to nothing but your node. |
976
1446
  | **Price view** | Which price panel Markets draws: the *flat chart* (default) or the *3D candle board*. One at a time; the 2D / 3D buttons on the page set the same thing. |
977
1447
 
978
1448
  ### Blockout
@@ -992,7 +1462,7 @@ What the sky is *made of* — density, brightness, nebulae, dust and the rest
992
1462
 
993
1463
  ### Blockanoid
994
1464
 
995
- The Arkanoid court. **Star field**, **spiral galaxy**, **neon bricks** and **sound effects** are the
1465
+ The Arkanoid court. **Sky** (the Galaxy, the Earth, or none), **neon bricks** and **sound effects** are the
996
1466
  same switches that sit on the game's own panel. Two more are here only, and they change the *rules*:
997
1467
 
998
1468
  | setting | what it does |