# Changelog

## 2026-11-01 - FunCraft 2026.11.1.2: vrij beeld en fellere kleuren

- **Vrij beeld:** verberg de hand, het vastgehouden bouwstuk en de balken onderin met de knop bovenin of Shift+F6. Via In beeld kun je dezelfde keuze aanpassen. De browser onthoudt dit; het gekozen bouwstuk blijft geselecteerd.
- Fellere LEGO-kleuren in lopen en de bouwcamera, met helderdere middentonen en behoud van neutrale witte delen.

## 2026-11-01 - FunCraft 2026.11.1.1: grotere eigen stad en straatleven

- De eigen startstad krijgt meer wijken, lanen, parken en een natuurlijkere kasteelhelling.
- Een nieuwe plek met huis, veranda, tuin en bomen is opgebouwd uit echte onderdelen; te bekijken via `?test=foto&menu=0&stenen=1`.
- Straatleven voor de eigen stad, met voetgangers en auto's langs het wegennet.
- Nieuwe verre grond en wolken, met correcties voor land- en waterplaten bij de horizon.

## 2026-10-31 - FunCraft 2026.10.31.2: helderdere LEGO-kleuren en minder waas

- Meer kleur en contrast in het gewone spelbeeld en de bouwcamera; minder melkachtige waas aan de horizon.
- Openingen in de waterlaag van de bouwcamera gebruiken de kleur van de zee.
- De zachte browserheapgrens gaat terug naar 448 MB: minder druk om vroeg geheugen op te ruimen, met ruimte voor een grotere heap. Dit is geen belofte van lager geheugengebruik.

## 2026-10-31 - FunCraft 2026.10.31.1: stad bouwen, nieuwe spellen en soepeler starten

- Nieuw: bouw je stad vanuit de lucht. De knop Stad bouwen (of Shift+B) tilt de camera van je ogen naar vogelvlucht. Je schuift, draait en kantelt de kaart, en Lopen zet je veilig op de grond waar je keek.
- Eén bouwbalk onderin met een sneltoets op elke knop, een minikaart, een kompas en een penseel dat de hoogte in kleur toont. De gewone spelknoppen verdwijnen zolang je bouwt.
- Alle gebouwen staan in één catalogus: zo'n duizend modellen en bouwwerken op categorie, met zoeken en voorbeeldplaatjes. Een doorzichtig blok toont vooraf of het past en zegt anders waarom niet; de knop Vrije plek vliegt naar de dichtstbijzijnde plek waar het wel past. Draaien, verplaatsen, kopiëren, weghalen en ongedaan maken werken op alles wat je neerzet.
- Nieuw: zet een gebouw neer in een andere kleur of gespiegeld.
- Nieuw: een eigen stad als wereldkeuze. Je begint op vlak land, heuvels, een eiland of een kust, in een bergdal met rivier, bij kliffen en baaien, op een groep eilanden of op een vulkaaneiland, zonder stad, bewoners of verkeer. Land vormen, grond schilderen en meren, rivieren, zee en strand maken gaat met een penseel. Daarna loop, zwem en rij je door je eigen wereld. Een eigen stad speel je op dit apparaat, niet in een onlinekamer.
- Nieuw: een kant-en-klare startstad uit echte modellen als aparte wereldkeuze, met een binnenstad, een cruiseschip, een promenade, hofjes en bossen die je van ver ziet.
- Bomen, struiken, bloemen, rotsen, hekken, lantaarns en bankjes zet je los neer of strooi je met een penseel, in beide werelden. Staat er groen dat je zelf plantte in de weg, dan ruimt een gebouw dat op, als één stap ongedaan maken.
- Het overzicht toont wat je bouwde en vliegt er met één tik heen.
- In de LEGO-stad kun je ook heuvels ophogen en wegen leggen, als gewone platen en tegels bovenop, zonder dat er iets van de stad verschuift.
- Wegen lopen in elke richting, recht of met een bocht, met een stoep en een middenstreep. Waar wegen elkaar raken ontstaat vanzelf een kruising of T-splitsing met zebrapaden; er zijn ook rotondes, pleinen en bestrating rond gebouwen.
- Bruggen trek je van oever naar oever en spoor van punt naar punt, met echte onderdelen. Op het spoor kan een echte treinset rijden. Spoor en treinen zijn er alleen in de browser: instappen kan nog niet, er zijn geen wissels en een trein pendelt heen en weer.
- Boven de stad staan namen van wijken en blikvangers, en je ziet welke bewoners bezig zijn; klik erop en de camera gaat mee. Een doel telt wat je zelf bouwde.
- De bouwcamera krijgt een eigen uiterlijk: lage zon met schaduwen over de stad, en een horizon met bergen, wolken en water in de verte.
- Het gewone spelbeeld krijgt echter water: langs de kust ligt het lager, zand en water krijgen kleur, en er komt schuim en een kielzog. Met de instelling Water (echt of LEGO) ga je terug naar de platen.
- De Windows-app opent een eigen stad en tekent de geplaatste sets; de vogelvlucht en de bouwknoppen zijn alleen voor de browser.
- Nieuw: levensgroot schaken in een schaaktuin aan de boulevard. Je loopt over een bord van zestien bij zestien meter, pakt een stuk en zet het op een gouden veld. Alle regels gelden, ook rokade, en passant, promotie en remise. Je speelt wit tegen de computer; staat er iemand bij, dan speelt die zwart.
- Nieuw: tien levensgrote tuinspellen verspreid door de stad: reuzendammen, reuzen-vier-op-een-rij, de blokkentoren, jeu de boules, kegelen, minigolf, ringwerpen, sjoelen, cornhole en croquet. Speel ze met toetsenbord en muis: aanraking is nog niet af, en nog niet elk tuinspel is helemaal nagelopen.
- Nieuw: een dam- en vier-op-een-rij-tafel in de wereld, met een computertegenstander. Je speelt staand naast de tafel, met toetsen, knoppen of door op het bord te klikken.
- Alle spellen hebben een vindbare startplek in de wereld. Het spelmenu en de kaart wijzen de route; X begint ter plaatse. Dagelijkse suggesties starten geen ongevraagde ronde meer.
- Sterrenrunner en Karttijdrit staan bovenaan het spelmenu. De kart remt en rijdt achteruit met S en komt vanuit de berm weer op de baan.
- Spellen eerlijker gemaakt: doelen liggen op plekken waar je kunt komen, in een onlinekamer heeft iedere speler een eigen pijl en score in beeld, en verstoppertje, tikkertje en verzamelen tellen niet meer door muren heen. Vissen en poseren stoppen als je wegloopt.
- Opslaan tijdens een potje breekt het potje niet meer af.
- Wie over LAN speelt, gebruikt op beide pc's dezelfde FunCraft.exe.
- Alle voertuigen van de geïmporteerde sets zijn bestuurbaar, waaronder de loodsboot, het containerschip en de heftruck van de haven. In de oudere stadssets zijn nog 28 voertuigen bestuurbaar, zoals de brandweerauto, bussen en de vuilniswagen. De havenkranen kun je bedienen.
- Auto's, bussen en trucks rijden niet meer over het water, maar stoppen bij de waterrand.
- Boten voelen als boten: ze dobberen, de boeg gaat omhoog op snelheid, ze hellen de bocht in en glijden door. Achter je boot komt een kielzog. Vanaf het stuur kun je je hoofd bewegen om naar buiten te kijken (Shift+WASD en R/F).
- Je blijft niet meer vastzitten op of tegen een stadsauto. Een voertuig dat na een botsing vastzit, komt na vijf seconden gas geven vrij.
- Uit de raket stap je op de echte vloer van het landingsplatform. Je kunt niet meer door de vloer van de wereld hakken; wie door een oud gat onder de wereld staat, komt terug.
- Verstoppertje en praten met bewoners kijken ook door de ramen van echte sets. Lopen, tikken en oppakken gaan nog steeds niet door glas.
- Meer bewoners doen hun eigen klusje: wandelaars, hondenuitlaters, de postbode en anderen blijven niet meer stilstaan, gaan 's nachts naar binnen en komen 's ochtends terug.
- Een LEGO-wereld starten laat de pagina minder lang vastzitten: de wereld wordt in stappen opgebouwd en het scherm wordt tussendoor bijgewerkt. In dichte wijken kan het beeld daardoor iets later compleet zijn.
- Het spel blijft niet meer onnodig lang op een lagere scherpte hangen, en de browserversie ruimt tijdens het laden tussendoor geheugen op.
- Nieuw: meet je eigen apparaat met de knop Meet dit apparaat in Instellingen. Er wordt niets verzonden.
- Eigen bouwwerken in de verte blijven in een klassieke wereld zichtbaar aan de horizon.
- De knoppen bovenaan blijven op hun plek als je erover beweegt en hebben herkenbare symbolen; de bouwknop staat vooraan.
- Opslagbestanden van 2026.10.28.2 tot en met 2026.10.28.5 laden weer.
- In de Windows-app zijn alle doelen te bereiken, en X naast een geparkeerd vliegtuig stapt in, ook als er een startbord in de buurt staat.

## 2026-10-30 - FunCraft 2026.10.30.1: hergebruik van beelddata en vaste speelplekken

- Ongewijzigde meshposities en transformaties worden hergebruikt; de lokale browserverbinding verstuurt bij kleine wijzigingen uitsluitend aangepaste poses. Oudere clients behouden het bestaande volledige pad.
- De bolvormige wereld slaat oude vlakke raket- en spelergeometrie vóór opbouw over wanneer die door de fysieke weergave wordt vervangen.
- Geschikte zichtbare vaste onderdelen delen gecachete GPU-geometrie en aansluitende tekenopdrachten. De oorspronkelijke materialen, LOD, volgorde, deuren en bewegende onderdelen blijven behouden; de statische cachereservering heeft een budget van 32 MiB.

- Voertuigruiten laten het buitenbeeld door, ook bij samengestelde raamonderdelen. Brongebonden cameracorrecties en gecontroleerde uitstapvloeren voor treinen, bussen, boten en andere voertuigen; de airport shuttle rijdt 3 m/s en remt bij beide haltes.
- De brandweerhelikopter van set 60216 kan zijn oorspronkelijke zwevende positie verlaten: drie decoratieve waterdruppels tellen niet meer als massieve muren. Arcadegames tonen hun eigen score en bediening zonder dubbele bouwinstructies.
- Sterren verdwijnen direct na verzamelen; hindernissen en vangrails hebben dezelfde botsvolumes als hun zichtbare vormen, met afremmen, strafpunten en duidelijke feedback.
- Sterrenrunner en Karttijdrit krijgen blijvende speelbanen bij het pretpark. Het spelmenu wijst de route naar de startpoort; X start ter plaatse. De vloer blijft ook buiten een ronde beloopbaar.

## 2026-10-29 - FunCraft 2026.10.29.4: Airport Shuttle

- De airport shuttle stopt bij Station Zuidring en Station Luchthaven. Met X kun je op beide echte perrons uitstappen en weer instappen, of blijven zitten voor de volgende rit.
- De blauwe shuttleramen laten het buitenbeeld weer door; de voertuigruiten krijgen een eigen glasweergave.

## 2026-10-29 - FunCraft 2026.10.29.3: stabielere browsershaders en minder GPU-vragen

- Minder aanvullende zichtbaarheidsvragen wanneer de camera stilstaat, met behoud van de conservatieve zichtbaarheid.
- Eenvoudigere coverageberekening voorkomt een herhaalde shadercompilatie op Direct3D/ANGLE.
- Wisselingen van daglicht en nabijgelegen lampen veranderen de shader niet meer telkens; vaste uitgeschakelde instellingen blijven geoptimaliseerd.

## 2026-10-29 - FunCraft 2026.10.29.2: minder browserrenderwerk

- De snelle browserweergave tekent de verre wereld op geschikte GPU's éénmaal met gedeelde floatdiepte. Gebouwen, bergen, transparantie, details en renderresolutie blijven behouden; minder geschikte GPU's gebruiken het bestaande pad.
- Gerichte voorbereiding van de werkelijk benodigde shaders tijdens bestaande laadmomenten en rustige tijd, met begrensde wachtrijen en gewone eerste rendering als terugval.
- Kleinere GPU-updates voor gewijzigde tekenrecords; eerdere verbeteringen aan nabije opbouw, cacheoverdracht, shaderberekeningen en botsingsqueries komen mee.
- Bij de nieuwe diepteprecisie kunnen enkele pixels op raaklijnen van overlappende vlakken anders uitvallen. De visuele controle op volledige resolutie vond geen verdwenen detail; het onderzoeksverslag bewaart de verschillen en meetbeperkingen.

## 2026-10-18 - FunCraft 2026.10.18.8: LEGO-stad laden en echt glas bouwen

- Herstelt de laadfout met 3031/26 in cityhouse5 en andere ongeldige onderdelen-/kleurcombinaties in de nieuwe stad.
- Corrigeert de verhoogde fundering voor de Home Alone-ingang.
- Vier echte transparante onderdelen in Bouwboek → Ramen & glas: paneel 60581, stenen 3065 en 3005, plaat 3023. Werkelijke glaspreviews op Windows en web; Ctrl+scroll bereikt de paneelcategorie.
- Meer glas, trapleuningen, toonbankdetails, servies en verlichting in skichalets en pretparkkraampjes.
- De horizonwachtrij blijft niet opnieuw verre achtergrondstukken opbouwen die buiten de geheugengrens vallen; complete zichtbare setgebouwen en volledige modellen dichtbij blijven behouden.
- Nieuwe regressies voor volledige stadsconstructie, behoud van oude indelingen, ingangen/trappen, glasgeometrie, preview-assets, binaire browseroverdracht en technische foutmeldingen.

## 2026-10-18 - FunCraft 2026.10.18.7: een rijker LEGO-stadsplein

- Een nieuwe LEGO-onderdelenwereld start op een compact plein met twaalf verschillende sethuizen: eigen dakvormen, glazen puien, terrassen, sierwerk, interieurs en trappen. Kaart en bouwboek krijgen een categorie Stadsplein.
- Skidorp met houten chalets en bergdecor, rijkere pretparkaankleding en een promenade naar de race- en botsautoactiviteiten. Western krijgt gekleurde rotslagen en cactussen van echte onderdelen.
- Nieuw transparant cataloguspaneel 60581, fijnere plasticbelichting en meer vormdiepte. De gebouwen blijven speelbare interpretaties van de vermelde sets.
- Minder tijdelijke browsergeheugenkopieën bij geometrieoverdracht en exacte horizonindexering, zonder modellen te vereenvoudigen of beeldkwaliteit te verlagen.
- Onverwachte browserfouten kunnen beperkt en op de achtergrond naar de bestaande server worden gemeld, met een referentienummer op het foutscherm.
- Nieuwe indeling 7; bewaarde indelingen 1–6 blijven behouden. Kies Menu → Nieuwe wereld → LEGO-stad voor de nieuwe standaardstad.
- Op uitdrukkelijk verzoek van de gebruiker geen tests of speelsessies voor deze release; alleen bouwen, de verplichte publicatiecontrole en publiceren. De gebruiker beoordeelt het resultaat online.

## 2026-10-18 - FunCraft 2026.10.18.6: tien recente setwerelden bezoeken

- Nieuwe LEGO-steden krijgen een extra wijk met tien herkenbare, bezoekbare interpretaties van echte sets uit 2025–2026: Lianns familiehuis, Heartlake-clubhuis, Lilo & Stitch-strandhuis, Belle en het Beest-kasteel, Luna’s huis, Malfidus-landhuis, Krusty Burger, Baratie, Blathers’ museum en Wonka’s chocoladefabriek.
- Echte catalogusonderdelen, verschillende silhouetten, ingerichte kamers, open voordeuren en beloopbare trappen naar echte verdiepingen. Dit zijn speelbare interpretaties, geen exacte officiële onderdeleninventarissen.
- Bouwboek → Speelplekken → Nieuw · 2025–2026 toont de tien sets met hun setnummer, jaar en persoonlijke route. Ook Friends, de gebiedenkaart en kaarticonen verwijzen naar de nieuwe locaties; online kiest iedere speler zijn eigen doel.
- Extra wijkstraten, stoepen en lantaarns verbinden de gebouwen. Gebouwcohorten gebruiken de bestaande begrensde verteweergave; de limiet van 40 MiB blijft gelijk.
- De nieuwe startplek ligt aan een compactere Friends-setstraat. De nieuwe kavels staan 46 meter uit elkaar in twee dichter verbonden straten.
- De reddingshelikopter krijgt een afgeronde neus, duidelijk cabineframe en zijtoegang, twee motorinlaten, verbonden staart en skids. Zitpositie, physics en rotors blijven behouden.
- Indeling 6 krijgt een grotere achtbaan met twee afzonderlijk volgende tweepersoonswagens en een laag frontstation. De wagenbakken hebben echte loopbotsing. Oudere onderdelensteden krijgen duidelijkere aanwijzingen voor hun bestaande verhoogde instapplek.
- Browserkwaliteit Normaal/Hoog/Ultra verandert de eigen zichtafstand niet meer en herstelt de schaduwinstelling. Nabije en verre gebouwonderdelen werpen samen echte schaduw binnen dezelfde atlas- en driehoekenlimieten.
- De nabije cache comprimeert ook noppen- en onderdeelinstanties verliesloos. Multiplayer verwijdert kwaliteitsvarianten die geen actieve speler meer gebruikt; zichtbare geometrie, resolutie en effecten blijven behouden.
- Na meerdere camerastandpunten krijgen complete verre gebouwen weer voorrang binnen dezelfde 40 MiB. Alleen bij echte geheugendruk worden oude extra terreinpagina's herschikt; gewoon rondkijken start die bewerking niet opnieuw.
- Automatische snoep-, cadeau- en regenboogdeeltjesregen, ballonzwermen en andere toevallige fantasie-effecten verdwijnen uit de LEGO-edities. Zelf bediende activiteiten blijven beschikbaar.
- Bestaande opgeslagen LEGO-indelingen 1–5 blijven behouden. Kies Menu → Nieuwe wereld → LEGO-stad voor de nieuwe indeling 6.

## 2026-10-18 - FunCraft 2026.10.18.5: tien iconische LEGO-sets ontdekken

- Nieuwe LEGO-steden krijgen tien extra speelbare setinterpretaties: Leeuwenridderskasteel, Boomhuis, Middeleeuwse smid, Spookhuis, Palace bioscoop, Vuurtoren, Barracudabaai, Eldoradofort, Tempel van Airjitzu en Oude viswinkel.
- De locaties bestaan uit vaste catalogusonderdelen met eigen vormen, toegankelijke ingangen en echte looproutes. Twee nieuwe straten sluiten aan op de Modulaire stad en krijgen werkende lantaarns.
- In Speelplekken & setgebouwen en op de kaart staat de categorie **Iconische sets**. Kies een locatie voor je eigen doelpijl, de afstand en uitleg over de ingang. Bij aankomst wordt de gevonden set genoemd; medespelers kunnen onafhankelijk een andere plek kiezen.
- Het onderdelenboek bevat nu 51 locaties: dertig speelactiviteiten, elf eerdere setgebouwen en de tien nieuwe iconische sets. Het bouwpaspoort blijft dertig activiteiten tellen.
- Nieuwe werelden gebruiken indeling 5. Opgeslagen indelingen 1–4 behouden hun oorspronkelijke onderdelen, ingangen en identiteit; kies **Nieuwe wereld → LEGO-stad** voor de nieuwe setroute.

## 2026-10-18 - FunCraft 2026.10.18.4: modulaire LEGO-stad en luchtballon

- Nieuwe LEGO-werelden starten op een boulevard tussen tien compacte setgebouwen: stadhuis, Parijs restaurant, detective/kapsalon, bank, diner, garage, boekwinkel, hotel, museum en dierenwinkel. Open deuren, ingerichte kamers, echte trappen en verschillende daken passen bij de bestaande minifiguur.
- Een extra ruimtebasis heeft een beloopbaar lab, commandoruimte, luchtsluis en lanceerplatform met de echte bestuurbare raket. De nieuwe maanrover en brandweerauto zijn met X te besturen en staan op de kaart.
- De luchtballon heeft een open mand van echte onderdelen. X: instappen, spatie: stijgen, Ctrl: dalen, WASD: bewegen en C: camera; land voor je uitstapt.
- Kleinere echte lantaarns verlichten 's avonds hun omgeving via de bestaande lichtberekening, met een begrensd aantal bronnen per terreinregio.
- Speelplekken & setgebouwen heeft een eigen filter voor de elf nieuwe gebouwen. De Modulaire stad is als gebied te kiezen. Het bouwpaspoort blijft dertig speelactiviteiten tellen.
- De modellen zijn eigen speelbare uitvoeringen, geïnspireerd op de genoemde officiële sets; ze gebruiken geverifieerde catalogusonderdelen en kleuren. Bestaande opgeslagen LEGO-indelingen 1, 2 en 3 behouden hun oorspronkelijke onderdelen en koppelingen.

## 2026-10-18 - FunCraft 2026.10.18.3: rijkere LEGO-stad

- Nieuwe LEGO-steden hebben dertig speelplekken in negen gebieden, met doorlopende wegen, stoepen en twaalf extra straatgebouwen. Café, bakkerij, hotel, bibliotheek, politie en brandweer krijgen meer verschillende gevels, daken en inrichting.
- Loop gebouwen binnen en gebruik de echte trappen naar de verdiepingen. Het pretpark heeft een uitgebreidere ingang en omgeving rond de vierpersoonsachtbaan; het observatiewiel is decoratie.
- Het vliegveld heeft open hangars en een verkeerstoren. Extra vliegtuigen, helikopters, liftstoeltjes en bezoekers bewegen volgens de gedeelde wereldklok.
- Het skigebied heeft een slalompiste, sneeuwbomen en een hut. Start boven met **X** en stuur met **A/D** door de poorten.
- De gele stadsbus is met **X** te besturen. Bus, auto's, vliegtuigen, helikopter en boten gebruiken onderdelenmodellen. De bus heeft één bestuurdersplek.
- Meer lantaarns, bladkronen, bloembakken, banken en straatdetails maken de stad voller. Figuren krijgen hun juiste ondersteuning op echte onderdelen, zonder herhaalde plaatsingszoektochten.
- Online ontvangt een aparte browserworker de WebSocketberichten, onafhankelijk van traag tekenwerk. De bestaande decoder en bevestiging na toepassen behouden hun volgorde; wachtrijen blijven begrensd. Resolutie, modellen en effecten blijven gelijk.
- Kies **Menu → Nieuwe wereld → LEGO-stad** voor de nieuwe indeling. Bestaande opgeslagen indelingen en eigen bouwwerken blijven behouden.

## 2026-10-16 - FunCraft 2026.10.16.5: camera wisselen zichtbaar in voertuigen

- In ieder voertuig staat een vaste aanwijzing **C · Camera wisselen**, ook wanneer optionele tips en bediening verborgen zijn.
- Op telefoon en tablet is dezelfde camerabediening direct aantikbaar, zonder eerst Meer te openen.
- De huidige ruimtevaart blijft een vlakke wereld met bestemmingsgebieden. De eis voor werkelijk ronde planeten, continue vlucht en gelijkblijvende prestaties is vastgelegd als architectuurvervolg; deze camerawijziging levert die ombouw nog niet.

## 2026-10-16 - FunCraft 2026.10.16.4: maan naderen en uit water vliegen

- De verre Maan en Mars gaan bij naderen over in een zichtbare weergave van hun echte bodem. Het oppervlak blijft ook bij een korte zichtafstand en uitgeschakeld vergezicht herkenbaar.
- De verre bol zakt tijdens de nadering naar het echte landingsgebied, zodat de maan niet plots verdwijnt terwijl je er nog boven vliegt.
- Dubbel spatie activeert ook tijdens zwemmen de vrije vliegstand. Spatie vasthouden blijft zwemmen; Ctrl blijft duiken. Dit geldt voor browser, touch en de vier lokale spelers.
- Stuurcombinaties zoals Ctrl+A worden tijdens spelen door de game afgehandeld, zodat ze geen schermtekst selecteren of browseracties starten. Menu's en tekstvelden houden hun gewone toetsenbediening.

## 2026-10-16 - FunCraft 2026.10.16.3: vaste knoppen bij lopende spelletjes

- Voortgang, tijd en instructies van een lopend spel verversen zonder de knoppen te vervangen. Ronde stoppen, toetsenbordfocus en scrollpositie blijven daardoor bruikbaar tijdens de updates.
- De beeldkwaliteit en de prestatiekeuzes uit 2026.10.16.2 blijven behouden.

## 2026-10-16 - FunCraft 2026.10.16.2: duidelijk zoeken en zuiniger tekenen

- Figuren zoeken heeft een eigen ingang in het spelmenu en de bovenbalk. Je ziet welke kaart je bekijkt en welk figuur je daadwerkelijk zoekt.
- Door Disney, Nijntje en Cars bladeren verandert je lopende zoektocht niet. Mobiel staan de kaarten sneller in beeld; extra uitleg en acties kun je uitklappen.
- Beeldlimiet staat standaard op 60 beelden per seconde, met automatische en hogere limieten als eigen keuze. De normale gloedberekening blijft 100%; lichtere opties veranderen alleen die gloed.
- Modellen worden opgebouwd wanneer ze nodig zijn. Terrein buiten beeld krijgt minder tekenwerk en kleine bewegende objecten sturen minder ongewijzigde gegevens naar de GPU.
- Kleine meshes gebruiken compactere indexbuffers met dezelfde driehoeken. Terreinadministratie, verre horizon en het dierenboek maken minder tijdelijk werk.
- De lokale browserkern hergebruikt ongewijzigde menugegevens zonder die ieder beeld opnieuw door te geven. Nieuwe werelden geven oude horizongegevens meteen vrij.
- De algemene bouwtip wijkt voor je actieve figuurzoekhulp. Startknoppen laten zien wanneer de spelbediening nog wordt geladen.
- Het backupboek volgt de actuele wereld en kamer, ook na Vernieuwen. De onlineserver hergebruikt de bestandsindex kort en vernieuwt die direct na een backupactie.
- De terugzetbevestiging houdt toetsenbordfocus vast. Online meedoen vraagt duidelijk om een ontbrekende kamercode, ook als je Enter gebruikt.
- Terreincoördinaten hergebruiken hun vaste naam bij hoge zichtafstanden. Online animaties hergebruiken tussenbuffers met dezelfde beweging en laten oude wereldgegevens los.
- Online spelberichten worden waar mogelijk in een achtergrondworker uitgepakt; terrein, texturen en wereldwissels worden in hun oorspronkelijke volgorde verwerkt. Browsers zonder werkende workers behouden de gewone verwerking.

## 2026-10-16 - FunCraft 2026.10.16.1: minder herhaald werk bij dezelfde beeldkwaliteit

- Vaste terrein- en modelbatches slaan ongewijzigde wereldtransformaties over; camera en animaties blijven volledig bewegen.
- De scène-opbouw maakt minder tijdelijke objecten en berekent modeldetails alleen wanneer de bestaande afstandsregels die nodig hebben.
- Ongewijzigde HUD-inhoud wordt behouden; bouwbalk en itemselectie gebruiken herbruikte categorie- en indexlijsten.
- Lucht en het voorwerp in je hand slaan hun uitgeschakelde mistberekening over. Resolutie, zichtafstand, modellen en alle gekozen effecten blijven behouden.

## 2026-10-15 - FunCraft 2026.10.15.12: duidelijker figuren zoeken

- Zoekgebied en uiterlijkhint blijven in beeld naast de afwisselende pijl en afstand.
- Het figurenkompas opent je actieve spaarkaart zonder het zoekdoel te veranderen.
- Na laden of samenspelen sluit de zichtbare albumreeks weer aan op de gekozen zoektocht; starten gebruikt altijd de getoonde reeks.
- Volgende figuur kiest een ander ongezien figuur binnen de reeks; een vondst opent de bijbehorende spaarkaart.
- Bij figuren staan de echte browseracties op 1, 2 en 3 in beeld.
- Aanvullende controles voor alle 38 echte figuren, oude werelden, persoonlijke zoektochten en ontmoetingen.

## 2026-10-15 - FunCraft 2026.10.15.11: minder online beeldverkeer

- Grote terrein- en beeldberichten worden met wederzijds ondersteunde compressie verstuurd, ook via Azure/IIS.
- Ontvangst blijft op volgorde; oudere browsers en clients behouden gewone JSON.
- Terreinberichten houden de nieuwste spelbeelden niet meer onbeperkt tegen.
- Bij een trage browser worden wachtende opeenvolgende spelbeelden vervangen door het nieuwste; overige berichten blijven op volgorde en de ontvangstrij is begrensd.

## 2026-10-15 - FunCraft 2026.10.15.10: keuzes en online invoer

- Een materiaal kiezen in het bouwboek blijft behouden wanneer het spel hervat.
- Binnenkomende opslagframes wissen geen nog te versturen inventarisactie.
- Vertraagde online bevestigingen veroorzaken geen stroom van herhaalde instellingsopdrachten.

## 2026-10-15 - FunCraft 2026.10.15.9: mobiel spelen en minder tekenwerk

- Mobiele aanraakbediening met gelijktijdig lopen en rondkijken, duidelijke actieknoppen en veilig loslaten bij menu's, onderbrekingen en draaien.
- Compacte telefooninterface, bereikbare extra acties en scrollbare menu's met ruimte voor schermranden.
- Begrensde mobiele renderresolutie met behoud van effecten en een werkende resolutieschuif; desktop en 5K blijven behouden.
- Minder herhaald HUD-werk en canvasresizes; minder updates in pauzemenu's en maximaal 60 spelupdates per seconde op snelle aanraakschermen.

## 2026-10-15 - FunCraft 2026.10.15.8: lichtgloed, zachte randen en levendiger water

- Nieuwe persoonlijke browseropties voor subtiele lichtgloed, zachte beeldranden en sfeerkleuren; menu's en de hand blijven scherp.
- Water krijgt rustige rimpels, reflectiekleur en zonlichtglans; wolken krijgen zachtere randen.
- Beeldkwaliteit Laag laat de effecten standaard uit; glowbuffers blijven begrensd bij hoge resoluties.

## 2026-10-15 - FunCraft 2026.10.15.7: terrein bij snelle planeetovergangen

- Het browservergezicht houdt ook de nabije grond voorbij een maan- of Marsrand bedekt terwijl detailterrein en het volgende vergezicht nog laden.
- Verre aardse gebouwen en bomen blijven buiten het maan- en Marsvergezicht.

## 2026-10-15 - FunCraft 2026.10.15.6: veilige vliegtuigstart en online volgcamera

- Vliegtuigen krijgen een bruikbare droge parkeerplek; onbemande vliegtuigen die in een oude wereld onder water staan worden hersteld.
- De online volgcamera snijdt bij draaien en camerawissels geen rechte lijn door muren tussen veilige camera-updates.

## 2026-10-15 - FunCraft 2026.10.15.5: aaneengesloten terrein en veilige camera

- De browserhorizon sluit aan op de werkelijk getekende detailgebieden, ook tijdens het laden, snel vliegen en wisselen van zichtafstand.
- Hoog vliegen houdt de grond binnen de cameraprojectie, ook met de verre horizon uit.
- Voertuigcamera's en de zachte instap-/uitstapovergang stoppen vóór vaste grond en muren; ook voor andere spelers.
- Tijdens online lopen blijft de camera op de veilige looproute, ook bij hoeken, trappen en bukken.
- De browser zoekt de nabije gebieden direct op en geeft de vloer onder de speler voorrang bij het laden.
- De verre terreinmesh verstuurt alleen gebruikte vertices en bewaart de juiste cache per planeetprofiel.

## 2026-10-15 - FunCraft 2026.10.15.4: zelf naar de maan vliegen

- Stijg op, richt de raket op het echte doel en vlieg zelf naar Maan of Mars. De vlucht blijft bestuurbaar; er is geen wachttimer of verplaatsing via Enter.
- De zichtbare planeten en navigatie gebruiken dezelfde echte bestemming. Het paneel toont afstand, koers, neusstand, uitlijning en hoogte boven het oppervlak.
- Spatie/Ctrl draait de raket ook tijdens het afdalen; W/R stuwt altijd in de neusrichting. Er is geen automatische omdraaiing op 350 meter.
- Houd bij de laatste 80 meter S/F vast voor rustig afremmen, rechtop komen en landen. Ook een raket die op zijn neus staat kan zo voorzichtig herstellen. Stap na een veilige landing uit met X.
- Kruisen in lege ruimte is sneller en vermijdt herhaalde terreinbotsingscontroles. Bouwen, oude werelden en achterblijvende medespelers blijven behouden.
- Windows LAN gebruikt protocol 33 zodat de handmatige vluchtstand ook bij gasten tot aan de landing klopt. Gebruik dezelfde nieuwe versie op beide computers.

## 2026-10-15 - FunCraft 2026.10.15.3: droog starten met de raket

- Een startraket krijgt een droge landingsplek met een vrije lanceerbaan. Water boven de zeebodem telt niet als veilige parkeerplaats.
- Bestaande onbemande raketten die onder water vaststaan krijgen bij laden een veilige plek; geldige geparkeerde en vliegende voertuigen behouden hun positie.

## 2026-10-15 - FunCraft 2026.10.15.2: met de raket naar Maan en Mars

- Vlieg boven 420 meter, kies met 1/2/3 Aarde, Maan of Mars en vertrek met Enter.
- In de ruimte draait de raket volledig met Spatie/Ctrl; de motor duwt in de richting van de neus. W/R geeft gas, S/F remt en A/D stuurt.
- Onder 350 meter helpt de raket weer rechtop te landen. Laat gas los en stap na de veilige landing uit met X.
- Rondkijken en een vastgehouden gastoets kunnen de landing niet blokkeren. Laat gas los en druk opnieuw om weer op te stijgen.
- Maan en Mars hebben eigen terrein, hemel en lagere zwaartekracht. Je kunt er bouwen, bewaren en terugkomen; bestaande aardebouwsels blijven behouden.
- Reizen werkt ook samen: de piloot kan naar een andere bestemming terwijl vrienden op Aarde blijven. Windows LAN gebruikt protocol 32.
- Gasten kunnen hun raketcamera wisselen. Opslaan tijdens hun vlucht zet bij laden de juiste piloot veilig naast de raket, met de andere spelers op hun eigen plek.
- De browser toont een raketpaneel met bestemming, hoogte, snelheid en neusstand. Tab maakt de muis vrij voor de knoppen.

## 2026-10-15 - FunCraft 2026.10.15.1: zichtbare scheuren bij hakken

- Harde blokken tonen ook in de browser steeds meer scheuren na iedere slag, met dezelfde texturen en hardheid als in Windows.
- De hakvoortgang wordt per speler doorgegeven, zodat een gast de scheuren van zijn eigen doelblok ziet.

## 2026-10-14 - FunCraft 2026.10.14.9: instellingen direct bereikbaar

- Het pauzemenu heeft een eigen knop Instellingen, direct naast Alles ontdekken.
- Bij de eenvoudige beeldkwaliteitkeuze staat waar je zichtafstand, licht en bediening kunt aanpassen.

## 2026-10-14 - FunCraft 2026.10.14.8: browserperformance

- Ongewijzigde tekengegevens worden niet steeds opnieuw naar de videokaart gestuurd. Gewijzigde animaties, licht en vormen werken hun benodigde bufferbereiken bij.
- De onlineserver bouwt geen ongebruikt spelersbeeld meer op iedere simulatietick; beelden worden alleen gemaakt voor de geplande spelerupdates.
- De HTTPS-wachtrij voegt herhaalde identieke beweging samen. Toetswissels, korte sprongen, muisbewegingen en afzonderlijke bouw- en menuacties behouden hun volgorde.
- Grote geaccepteerde actiebatches worden over meerdere ticks verwerkt, zodat opdrachten achter de eerste zestien niet verdwijnen.
- Zichtafstand, grafische instellingen en zichtbare spelinhoud blijven behouden.

## 2026-10-14 - FunCraft 2026.10.14.7: gesloten boeken blijven gesloten

- Een vertraagd serverbeeld kan na hervatten geen gesloten boek of gewoon menu meer openen. Lokale navigatie bepaalt welke menu's zichtbaar zijn.
- Werkbank, kisten, NPC-gesprekken en circuitinstellingen blijven via echte wereldinteracties openen. Een expliciete avonturenactie kan nog naar recepten, spellen of statistieken verwijzen.
- Beeldinstellingen, browserbuildtijd en alle verbeteringen uit 2026.10.14.6 blijven beschikbaar.

## 2026-10-14 - FunCraft 2026.10.14.6: browserpariteit en buildtijd

- Het startscherm van online spelen toont de echte browserversie en builddatum/tijd. Onbereikbare metadata blokkeert starten niet.
- Beide taartsoorten zijn rond, met zichtbare ontbrekende punten per hap. Appels en ander fruit, taart in de hand, dieren en bouwvoorbeelden gebruiken gedeelde Windowsgeometrie.
- Rechtsklik bedient schakelaars, deuren, luiken, kisten en fruit. Vasthouden werkt voor hakken en het plaatsen van een rij blokken; Tab maakt de muis vrij zonder pauze.
- De figurenalbums bieden zoeken, volgend figuur, stoppen en herontmoeten. Acties sluiten het album zodat je de animatie meteen kunt zien.
- Dierenboek, avonturenboek, statistieken en mijlpalen zijn rechtstreeks bereikbaar, met alle bestaande tellers en collecties.
- Persoonlijke kijkhoek, gevoeligheid, UI-formaat, renderresolutie, textuurdetail, licht en verre horizon werken ook in online kamers. De gekozen bouwkeuze blijft zichtbaar in een rustige HUD.
- De schermprofielen Rustig, Compact, Alles en Fotomodus werken zoals in Windows. Het pauzemenu biedt ook deze wereld opnieuw beginnen, met het huidige wereldnummer en een bevestiging.
- Browserwerelden worden duurzaam in IndexedDB bewaard, inclusief migratie van bestaande browseropslag. Een mislukte opslag vervangt geen eerdere wereld.
- De gedeelde wereldopslag bewaart nu ook de teller voor gegeten taartpunten. Gedeeltelijk opgegeten taarten en hun voortgang blijven na herladen behouden.
- Online samenspelen gebruikt kamercodes. Lokaal samenspelen in de browser is op verzoek niet toegevoegd; Windows houdt LAN-protocol **31**.

## 2026-10-14 - FunCraft 2026.10.14.5: vaste kaartdoelen

- Kaartdoelen hebben een vaste identiteit. Een klik op Vliegtuig blijft het vliegtuig kiezen wanneer de lijst verandert of een voertuig beweegt.
- Iedere speler houdt zijn eigen kaartkeuze. Een verdwenen doel geeft uitleg zonder de vorige route te verliezen.
- Kaartversiering onderschept geen klikken op voertuigpinnen meer.
- Voertuigpinnen en doelknoppen blijven aanklikbaar wanneer de kaart live wordt bijgewerkt.
- De gedeelde adapter verwerkt online menuacties in dezelfde volgorde als offline. De browser blijft ook bij vertraagde berichten gesloten pauzemenu’s respecteren.

## 2026-10-14 - FunCraft 2026.10.14.4: browserbediening en releasedatum

- Twee keer kort spatie schakelt vliegen in en uit, zoals in de Windows-game. Spatie vasthouden stijgt; Ctrl daalt. Zwemmen en voertuigbesturing houden hun eigen bediening.
- De kijkhint legt de eenmalige klik voor muisvergrendeling uit en verdwijnt wanneer de muis vaststaat. Esc maakt de muis weer vrij.
- De startpagina toont de releasedatum en bouwtijd bij de huidige versie.
- De publieke online hosting krijgt een passende verzoeklimiet voor spelverkeer; de eerdere websitegrens onderbrak normaal samenspelen.
- Windows blijft beschikbaar met LAN-protocol **31**; updates blijven handmatig.

## 2026-10-14 - FunCraft 2026.10.14.3: online browsergame

- Online kamers met kamercode en uitnodigingslink voor maximaal vier spelers. De server gebruikt dezelfde Core-spelregels en bewaart de gezamenlijke wereld.
- Alle 17 spellen, bestuurbare voertuigen, veilig landen en uitstappen, eigen figurenalbums, zoekdoelen, opdrachten, recepten, fruitfabrieken en schakelaars zijn aangesloten op de browserinterface.
- Native 3D-geometrie, figuurposes, lucht, daglicht, weer en geluid zijn gedeeld. Iedere browser heeft eigen menu’s, hints, HUD- en geluidsvoorkeuren.
- Ook gasten kunnen dieren bouwen, temmen en berijden, zitten, zwemmen, gemaakte spullen plaatsen en bouwacties ongedaan maken.
- Herstelpunten iedere 15 speelminuten; nieuwe werelden houden eerdere herstelpunten beschikbaar. Foto’s en lokale herstelpunten blijven in IndexedDB bewaard.
- Schaalbare boeken en menu’s, avatarpreview, NPC-gesprekken, fotogalerij en handmatig zoeken naar updates.
- Windows blijft beschikbaar met dezelfde gedeelde regels en geometrie. LAN-protocol blijft **31**.

## 2026-10-14 - FunCraft 2026.10.14.2: een echte browserbasis

- De browserpreview draait de bestaande C#-spelkern via WebAssembly: dezelfde wereldgeneratie, beweging, botsingen, bouwen, undo en wereldbestanden.
- Blok-, meubel- en taartgeometrie en de invoerpolicy staan nu in **EliasCraft.Common**, gedeeld door Windows en web.
- Nieuwe browserinterface met bouwboek, zoeken, categorieën, herkenbare spullen in je hand, schaalbare panelen en hulp bij de bediening.
- Bewaar je browserwereld lokaal, download een wereldkopie en lees die later terug. Een mislukte opslag vervangt je huidige wereld niet.
- Fruit eten blijft werken terwijl je ovenopslag openstaat: na de korte wachttijd kun je de volgende vrucht eten, met behoud van de gewone pauzeregels.
- Dit is een browserbasis voor één speler. LAN, minigamepanelen, voertuigbesturing en de afzonderlijke apparaatweergave worden in volgende portstappen aangesloten; beschikbare bouwkeuzes staan duidelijk aangegeven.
- De Windows-game blijft beschikbaar. LAN-protocol blijft **31**; Windows-updates blijven handmatig.

## 2026-10-14 - FunCraft 2026.10.14.1: soepeler van fruit naar taart

- De oven bakt door terwijl je zijn opslag bekijkt. Het gewone pauzemenu en een solospel op de achtergrond pauzeren wel; LAN gebruikt zijn bestaande gedeelde klok.
- De ovenopslag toont voorraad, voortgang en de volgende stap. Onbeschikbare acties zijn gedimd; hints leggen uit of fruit ontbreekt, de trein moet stoppen of de uitgifte vrij moet zijn.
- Kies **Taart meenemen** bij een klaarstaande taart om meteen verder te lopen naar je eigen tafel. De taart en haar resterende punten blijven hetzelfde.
- Een extra klik tijdens hostbevestiging van een taartactie eet of bouwt niets. Fruitacties geven gerichte terugmeldingen in LAN.
- Uitgifte wacht ook bij een overlappende machine. Fruit wordt pas bij een geslaagde uitgifte verbruikt.
- Gebruik **2026.10.14.1** op alle computers. LAN-protocol blijft **31**; bijwerken gaat via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-13 - FunCraft 2026.10.13.5: taart mee naar je eigen tafel

- **Shift+rechtsklik neemt een taart mee.** Rechtsklik op een vrije ondergrond of je eigen tafel zet precies dezelfde taart neer. Iedere lokale speler kan één taart dragen; een mislukte plaatsing bewaart haar.
- **Resterende punten blijven behouden**, ook bij opslaan, backupherstel en samen spelen via LAN. Oude undo en dubbele netwerkopdrachten maken geen extra taart.
- **Herkenbaar in je hand:** de echte gedragen taart, passende materiaaltexturen, meubelmodellen en dierenminiaturen. Bouwwerken en apparaten tonen een blauwdruk met icoon.
- **Je eigen gemaakte tafel werkt als taartplek.** Het zichtbare tafelblad sluit aan op de fysieke bovenkant, zodat taart erop staat en daar in punten gegeten kan worden.
- **LAN-protocol 31:** gebruik **2026.10.13.5** op alle computers. Bijwerken blijft handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-13 - FunCraft 2026.10.13.3: fruitfabriek bedienen

- **Tab geeft overal een vrije muis** voor knoppen in beeld. Nogmaals Tab gaat terug naar rondkijken; het pauzemenu opent met Esc.
- Bij fruit, fabriek en treinkist staat duidelijk **Rechtsklik: gebruiken · Tab: muis vrij**. Hint, gewone rechtsklik en de aangeklikte HUD-actie gebruiken hetzelfde zichtbare doel.
- Een aangekeken fabriek krijgt voorrang op nabij fruit; doelen achter je of achter een muur nemen de actie niet over. Extra lokale spelers gebruiken hun eigen kijkrichting en eettoets.

## 2026-10-13 - FunCraft 2026.10.13.2: rustige meldingen

- De terugkerende melding "Je vriendje(s) bracht je … sterren" is verwijderd.

## 2026-10-13 - FunCraft 2026.10.13.1: echte gebakken fruittaarten

- **Eigen fruittaart uit de fabriek:** een rond 3D-model met biscuit, room, fruitvulling, glazuur en fruit bovenop; duidelijk herkenbaar naast de decoratieve bouwtaart.
- **Zes zichtbare happen:** iedere rechtsklik eet één punt met topping. De snijvlakken tonen de laagjes en de hint telt de resterende stukken. De taart verdwijnt na het laatste stuk.
- **Bewaren en samen eten:** de gebakken taart en iedere resterende punt blijven in de wereldsave en via LAN behouden. De fruittaart is geen gratis bouwitem.
- **LAN-protocol 29:** werk alle computers handmatig bij naar **2026.10.13.1** via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-12 - FunCraft 2026.10.12.2: alle 17 spelletjes via LAN

- **Bouwwedstrijd** werkt nu ook tussen computers: gedeelde aftelling, negentig seconden speeltijd, persoonlijke scores en één gezamenlijke uitslag. De host telt geaccepteerde losse blokplaatsingen; iedere bouwplek telt maximaal één keer per ronde. Kant-en-klare huisjes en machines geven geen wedstrijdpunten. Een gedeelde hoogste score is gelijkspel.
- **Sterren-sprint, Blaadjes vangen, Ballonnen-pop, Hinkelpad, Glimwormpjes, Schatzoektocht en Doe-me-na** krijgen gezamenlijke LAN-doelen en gedeelde voortgang. Alle spelers kunnen helpen. Een geslaagde ronde geeft iedere deelnemende computer eenmaal vijf bonussterren.
- Schatzoeken houdt persoonlijke warm/koud-hints. Doe-me-na deelt de zichtbare en hoorbare noten; de pijl wijst alleen naar de muziekstenen. In LAN zijn deze stenen tijdelijke 3D-markeringen zonder terreinwijzigingen.
- Gasten kunnen nu **alle 17 spellen** via **Vraag samen te starten** aanvragen. De host beheert opnieuw starten en stoppen. Oude uitslagen mogen een nieuwe ronde niet vervangen of nogmaals sterren geven.
- Ook tweede, derde en vierde lokale spelers kunnen tijdens een LAN-race meedoen en winnen. Verdwenen deelnemers stoppen een wedstrijd zonder een onterechte winnaar.
- **LAN-protocol 28:** gebruik **2026.10.12.2** op alle computers. Bijwerken blijft handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-12 - FunCraft 2026.10.12.1: samen spelletjes spelen

- Nieuw **Tikkertje**: aanraken geeft de tik door, muren blokkeren contact en een korte rust voorkomt direct terugtikken. De speler die het langst vrij is, wint. Iedere ronde wisselt de eerste tikker.
- Nieuw **Samen schakelen**: twee verschillende spelers houden drie oranje/blauwe tegelparen samen vast en bereiken daarna samen de finish. Eén speler kan het niet alleen oplossen. Bij een verbroken verbinding wacht deze opdracht met gepauzeerde tijd op het maatje.
- **Verstoppertje** deelt rollen, voorbereiding, zoektijd, gevonden spelers en uitslag via LAN. De zoeker krijgt twaalf seconden een donker scherm met geblokkeerde beweging. Nieuwe rondes wisselen de zoeker. Muren blijven echte dekking.
- **Parcours, Naar de top, Verzamelrace en Koning van de berg** tellen nu ook LAN-spelers mee en delen doelen, scores en uitslag. Gasten vragen een ronde aan via het spelmenu; de host beheert stoppen en opnieuw starten. De bestaande race en edelstenenopdracht sluiten aan op dezelfde rondeovergangen. Dubbele netwerkberichten geven geen dubbele beloning.
- Ieder lokaal schermdeel krijgt eigen speluitleg, voortgang en doelpijl, ook wanneer optionele besturingshints uitstaan. Parcoursvlaggen volgen de voortgang van die speler. Het spelmenu telt nu **17 spelletjes**. Bouwwedstrijd blijft duidelijk voor twee spelers op hetzelfde scherm.
- De winst van **Samen schakelen** blijft zeven actieve seconden in een eigen paneel staan, zodat een gelijktijdig afgeronde opdracht de teamworkwinst niet verstopt.
- Controles gebruiken gesimuleerde spelersinput, echte TCP-verbindingen op dezelfde computer en de native 3D-renderer met Full HD- en 5K-beelden; er wordt geen interactief spelvenster gestart voor deze speelproeven.
- **LAN-protocol 27:** gebruik **2026.10.12.1** op alle computers. Updates blijven handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-11 - FunCraft 2026.10.11.11: bouwen en bediening ingame gecontroleerd

- Zelf geplaatste appelbomen, sinaasappelbomen, meloenplanten en aardbeiplanten beginnen nu werkelijk fruit te groeien. De gewone bouwroute activeert de groeicyclus; verwijderen, herbouw en ontvangen wereldwijzigingen houden die bij.
- Oude werelden activeren eerder zelf geplaatste planten zonder opgeslagen fruit, rijping of ovenvoorraad opnieuw te beginnen. Grote watermeloenen komen vrij van de invoerkist, zodat sorteren en de taartketen blijven doorwerken.
- Ophaalbruggen en uitschuifbruggen wachten bij **UIT** totdat iedereen van het dek is, inclusief LAN-spelers. Daarna gaan ze vanzelf terug. De uitleg vermeldt waarom een brug wacht.
- Liften kunnen met een normaal gelande passagier weer afdalen en ventilatoren blazen ook bij echt vloercontact. Obstakels boven een lift blijven de beweging veilig stoppen.
- **Noord/Zuid** in machine-instellingen klopt met het kaartkompas. Alleen werkelijk verstelbare apparaten tonen maatknoppen. Liften, raketten en vuurwerk krijgen duidelijke hoogtevelden; raket-, vuurwerk- en bomafstand geven de echte afstand aan. De aansluituitleg van fruitmachines past volledig in beeld.
- De voltooiingsmelding van lange spaarkaarten krijgt genoeg breedte: de **+10 sterren** van Cars blijven volledig zichtbaar op Full HD en 5K.
- Aanvullende speelproeven gebruiken het echte bouwboek, schermknoppen, plaatsingsstralen en normale spelupdates: zelf fruit kweken en plukken, alle acht fabrieksmachines gebruiken, een eigen trein laden en echte taart bakken en eten. Ook alle 27 schakelapparaten, figuren zoeken, persoonlijke albums, back-ups en de handmatige updatecontrole worden via de game-engine en 3D-renderer gecontroleerd op Full HD en 5K.
- **LAN-protocol 26:** gebruik **2026.10.11.11** op alle computers. Bijwerken blijft handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-11 - FunCraft 2026.10.11.10: zelf fabriek en vervoer bouwen

- **Bouwboek → Fabriek** bevat werkende rechte spoorstukken, spoorbochten en een **Trein met kist**, naast alle fruitmachines, rolbanden en bouwmateriaal voor een eigen fabriekshal. Kies onderdelen en plaats ze zelf met rechtsklik. Spoorankers sluiten op dezelfde hoogte aan met vier vakken tussen hun midden; instellingen tonen de exacte aansluitvakken.
- De zelfgebouwde trein is met **X** te besturen en vervoert de echte laadkist en fruitvoorraad over je eigen spoor. Open lijnen stoppen aan het eind en kunnen achteruit gereden worden; gesloten spoorlussen lopen door. Een gat, ontbrekende ondergrond of muur stopt de trein. Rails zijn echte 3D-onderdelen; de wielen staan op de railkoppen.
- De treinlader verbindt je eigen vervoersroute met je eigen kist of taartoven. Eén eigen vrachttrein kan actief zijn. Stop en stap uit om het treinonderdeel te verwijderen of van richting te veranderen. Bestaande fruitlading blijft behouden.
- Spoor, treinpositie en vracht blijven bij opslaan bewaard en worden in multiplayer gedeeld. Zowel host als gasten kunnen spoor bouwen en de trein besturen. De oudere blokkenbouwwerken voor locomotief en rails zijn in het bouwboek herkenbaar als bouwwerk.
- **LAN-protocol 26:** gebruik **2026.10.11.10** op alle computers. Bijwerken blijft handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-11 - FunCraft 2026.10.11.9: bewegende fruitfabrieken

- Acht nieuwe bouwbare fabrieksonderdelen: **fruitverzamelaar, fruitinvoer, sorteerder, fruitlift, mixer, pers, fruitverpakker en treinlader**. Echte vruchten bewegen door de machines; draaiende rollen, tandwielen, mengarmen, liftbakjes, pers en laadgrijper laten de werking zien.
- **Rolbanden vervoeren fruit**, met instelbare richting en lengte. Groene invoer en gele uitvoer wijzen de aansluitpunten aan. Bij een volle opslag of blok in de route wacht de machine en blijft het fruit behouden. Schakelaars stoppen en hervatten de hele lijn.
- Sluit een kist aan op de invoer en een fruitfabriek op de uitvoer: aankomend fruit start automatisch een bakbeurt van drie vruchten. De fruitverpakker slaat producten op en de treinlader laadt/lost een nabij stilstaand treintje.
- **Bouwboek → Fabriek** toont onderdelen en aansluituitleg. Het instellingenmenu toont de aansluitvakken, richting, status en een knop terug naar het fabriekboek. Bewegend fruit en machinevoortgang blijven bij opslaan bewaard en worden in LAN gedeeld.
- **LAN-protocol 25:** gebruik **2026.10.11.9** op alle computers. Bijwerken blijft handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-11 - FunCraft 2026.10.11.8: van boomgaard naar taart

- **Appels en sinaasappels** groeien aan echte 3D-bomen; **watermeloenen en aardbeien** aan grondplanten. Na ongeveer 35 seconden zijn ze rijp en vallen ze. Loop over gevallen fruit om het op te rapen, of kijk naar rijp fruit en rechtsklik om te plukken.
- Een boomgaard en een **fruitfabriek** verschijnen langs verschillende delen van het treinspoor, ook in bestaande werelden. De kaart en doelenlijst bevatten beide bestemmingen. Zelf meer bomen, planten en fabrieken bouwen kan via **Bouwboek → Interactief**. Het grondstoffenboek heeft nu twee overzichtelijke pagina's.
- Kijk bij een gestopt treintje naar de kist en rechtsklik, of klik de hint met Tab. Laad fruit, stap met **X** in en vervoer de zichtbare lading. Stop bij de fabriek, open haar opslag en kies **Lading uit trein lossen**.
- **Taart bakken · 3 fruit** maakt na acht seconden een echte eetbare taart naast de oven. Bij een bezette uitgifteplaats wacht de fabriek; fruit wordt pas verbruikt wanneer de taart geplaatst is. Rechtsklik op de taart om een stuk te eten. De fruitopslag bevat ook **Eet 1**.
- Groei, gevallen fruit, kisten, treincargo en lopende bakbeurten worden opgeslagen. Lokale spelers en LAN-gasten gebruiken dezelfde wereldvoorraad en transport. Fruit ophalen wordt door de host gecontroleerd; twee spelers kunnen één vrucht niet dubbel krijgen. Gastvoorraad blijft bij opnieuw aansluiten bewaard.
- **LAN-protocol 24:** gebruik **2026.10.11.8** op alle computers. Updates blijven handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-11 - FunCraft 2026.10.11.7: samen taart eten

- Kijk naar een geplaatste **Taart** en gebruik **rechtsklik** om één van de zes stukken te eten. De taart wordt echt kleiner en verdwijnt na het laatste stuk. Een **Cupcake** eet je in één keer, met kruimels, geluid en een duidelijke melding.
- Het bouwboek bij **Interactief**, de gekozen taart en de kijkhint leggen de bediening uit. De hint toont hoeveel stukken er nog zijn. Rechtsklik op een taart bouwt geen blok ernaast.
- Alle vier lokale spelers en LAN-gasten kunnen eten. Gedeeltelijk opgegeten taarten worden opgeslagen en gedeeld; gelijktijdige beten kunnen de taart niet opnieuw groter maken. De bestaande linksklik voor taartvuurwerk blijft beschikbaar.
- **LAN-protocol 23:** gebruik versie **2026.10.11.7** op alle computers bij samenspelen. Bijwerken blijft handmatig via **Esc → Spel bijwerken → Zoek updates**.

## 2026-10-11 - FunCraft 2026.10.11.6: 27 apparaten voor schakelaars

- Bouw een **Geheime kast, Ophaalpoort, Schuifdeur, Ophaalbrug, Rolband, Bomkanon of Raketplatform** via **Esc → Boeken & doelen → Bouwboek → Interactief**. De kast en deuren openen echte doorgangen; bruggen dragen spelers. De raket telt af, vliegt omhoog, landt en herlaadt.
- Twintig extra keuzes: **Platformlift, Veerpontdek, Uitschuifbrug, Vloerluik, Valvloer, Draaischijf, Duwer, Ventilator, Springplank, Waterpomp, Afvoerpomp, Bellenlift, Windtunnel, Metaalmagneet, Alarmbel, Lichtbaken, Muziekmachine, Confettikanon, Vuurwerkkanon en Teleportplaat**. Elke keuze heeft eigen werking en uitleg.
- Zet een schakelaar of sensor binnen bereik. Kijk naar de machine voor naam, status, bediening en hulp; **Shift+rechtsklik** opent richting, lengte/afstand en uitleg. De hulp blijft beschikbaar in het water en bij lege tijdelijke interactiemeldingen. De schermen zijn gecontroleerd op Full HD en 5K; uitlegregels passen volledig in het menu.
- Bewegende delen controleren echte botsingen en nemen spelers veilig mee. Deuren wachten bij een speler, liften stoppen bij lage plafonds en duwers stoppen wanneer iemand geen uitweg heeft. Vertraagde LAN-posities blokkeren ondersteunde passagiers niet onterecht.
- Bommen en vuurwerk worden eenmaal gestart per nieuwe UIT→AAN. Voor de volgende activatie moeten ze klaar zijn met herladen. Bommen kunnen blokken opblazen. Twee ingeschakelde teleportplaten verbinden hun bestemmingen; de bellenlift heeft echt water nodig.
- Opslaan bewaart type, richting, lengte en de fysieke voortgang van bewegende apparaten. Undo herstelt de oorspronkelijke apparaatinstellingen in dezelfde gecontroleerde LAN-wijziging; een conflicterende of geblokkeerde herstelactie blijft uit.
- De host deelt de bewegingen en toestanden met gasten, inclusief bij later aansluiten. **LAN-protocol 22:** gebruik versie **2026.10.11.6** op alle computers.

## 2026-10-11 - FunCraft 2026.10.11.5: lampen en schakelaars eenvoudiger bedienen

- Kijk naar een lamp, schakelaar, sensor of machine: de kijkhint heeft een knop **Instellen**. Druk Tab om die te klikken, of gebruik Shift+rechtsklik. Het scherm heeft duidelijke knoppen om te proberen, terug te gaan en te sluiten.
- Kies een bereik van **4, 8, 12, 18, 32 of 64 meter**. Kamer, huis, gebouw en kasteel zijn herkenbare keuzes. Het bereik werkt ook op andere verdiepingen; het scherm toont hoeveel apparaten binnen bereik staan.
- Gewone lampen, lichtblokken, lantaarns, feestlampions, kroonluchters, vloerlampen, nachtlampjes en kaarsenstandaards kunnen werkelijk uit, inclusief hun uitgestraalde licht. Zonder bron bedien je ze met rechtsklik. Binnen bereik volgen ze de schakelaar of sensor; bij meerdere bronnen houdt een actieve bron het licht aan.
- Een gemaakte Lamp is nu een schakelbare lamp. Het bouwboek en de hulp leggen in drie stappen uit hoe je lampen en een schakelaar gebruikt. Het bestaande signaalblok heet **Signaalverlenger**; je kunt daarmee lange verbindingen maken zonder verplichte draden.
- Automatische verlichting blijft correct werken wanneer spelers weglopen. Lange signaalverbindingen kunnen uit, vertragers houden zichzelf niet meer aan en drukplaten en bewegingsmelders herkennen alle lokale en LAN-spelers.
- De host berekent de automatische standen voor iedereen. Bereik, machinekeuzes en automatische lopende banden worden gedeeld met gasten, ook na later aansluiten. Laden begint met schone tijdelijke schakeltimers; eerdere werelden blijven ondersteund.
- De schakellogica bekijkt alleen bekende apparaten in plaats van grote gebieden vol lege blokken te doorzoeken. Bouwers plaatsen geen blok in een speler; automatische deuren wachten met sluiten wanneer iemand erin staat.
- LAN-protocol 21: gebruik dezelfde nieuwe versie op alle computers.

## 2026-10-11 - FunCraft 2026.10.11.4: een heel bouwwerk ongedaan maken

- Met `Ctrl+Z` maak je de laatste bouwactie in één keer ongedaan. Een compleet huis of ander gekozen bouwwerk telt als één actie, inclusief de fundering en het vrijgemaakte terrein. De oorspronkelijke blokken komen terug. Dit werkt meteen, ook zonder bouwmodus.
- Het bouwboek heeft een knop **Ongedaan maken**, de naam van de laatste bouwactie en het aantal beschikbare stappen. De laatste twaalf bouwacties van deze spelsessie blijven beschikbaar. Laden van een wereld of wisselen van een LAN-sessie begint een nieuwe geschiedenis.
- Losse blokken en een rij met de toverstaf kunnen ook teruggedraaid worden. Ctrl+Z opent daarbij geen zoektochtmenu; gewoon Z blijft dat menu openen.
- Blokken die na het bouwen veranderd zijn, blijven behouden. Dit wordt bij gasten ook door de host gecontroleerd. Terugzetten van oude grond of muren maakt geen blok aan in een speler die daar inmiddels staat.
- LAN-protocol 20 deelt veilige bouw-undo. Gebruik op alle computers dezelfde versie.

## 2026-10-11 - FunCraft 2026.10.11.3: echt zitten en bukken

- Loop naar een stoel, bank, troon, kruk, schommelstoel, hangmat, zitzak of picknicktafel en druk `X` om echt te zitten. Je camera komt op zithoogte, je blijft op de zitting en andere spelers zien je met gebogen benen zitten. Met `X`, springen of lopen sta je weer op zodra er een veilige plek vrij is. De twee bankjes van een picknicktafel kunnen apart worden gebruikt.
- Houd `Ctrl` ingedrukt om te bukken: je camera en lichaam worden lager en je loopt rustiger. Je kunt door een doorgang van één blok hoog; na loslaten sta je pas rechtop als je hoofd ruimte heeft. In water blijft Ctrl duiken en tijdens vliegen dalen.
- Zitten en bukken zijn zichtbaar in LAN en splitscreen, inclusief lokale spelers op de andere computer. Een zitplek blijft bezet tot de speler opstaat; weggehaalde meubels en verbroken verbindingen geven de plek vrij. De hints tonen iedere speler zijn eigen toets.
- Opslaan terwijl je zit bewaart een veilige plek om staand verder te spelen. Opslaan in een lage doorgang bewaart je bukhouding, zodat laden je hoofd niet in het plafond zet.
- LAN-protocol 19 deelt stoelen en spelershoudingen. Gebruik op alle computers dezelfde versie.

## 2026-10-11 - FunCraft 2026.10.11.2: zelf zoeken, herontmoetingen en figuurshows

- Iedere speler zoekt zelf in de gezamenlijke wereld. De eigen spaarkaart kleurt pas als die speler de figuur ontmoet; de gezamenlijke wereldvoortgang blijft daarnaast zichtbaar. Een vondst door een ander onderbreekt je eigen zoektocht niet. De host bewaart de persoonlijke voortgang, ook voor gasten die opnieuw verbinden.
- Na jouw vondst stopt de zoekpijl. Kies zelf een volgend doel of zoek een bekende figuur opnieuw via zijn kaart. Herzoeken gebruikt dezelfde gebiedshints, een pijl die 5 seconden verschijnt en 30 seconden verdwijnt en meters die 15 seconden verschijnen en 15 seconden verdwijnen.
- Een herontmoeting telt nadat je minstens 40 meter weg bent geweest gedurende 3 seconden en daarna weer binnen 3,5 meter van de zichtbare figuur komt. Je kaart toont hoe vaak jij hem hebt ontmoet. Dichtbij blijven staan, laden en opnieuw verbinden geven geen extra herontmoeting. De oorspronkelijke verzamelbonus blijft eenmalig.
- Buzz klapt zijn echte vleugelpanelen uit, stijgt op, maakt een vliegshow met bochten, landt en klapt zijn vleugels weer in. De show duurt negen seconden. Bij te weinig ruimte legt de game uit dat vliegen daar niet past.
- Alle 38 figuren hebben verbeterde bewegingen bij hun drie acties: gerichte bewegingen van hoofd, armen, poten, oren, staart of wielen en passende 3D-effecten. Gebruik dichtbij de toetsen 1, 2 en 3; in LAN zien jullie dezelfde show.
- LAN-protocol 18 deelt persoonlijke ontmoetingen en de langere vliegshow. Gebruik op alle computers dezelfde versie.

## 2026-10-11 - FunCraft 2026.10.11.1: drie spaarkaarten en rijden met Cars

- `Esc → Boeken & doelen → Figuren vinden` bevat drie aparte spaarkaarten: 16 Disney-figuren, 10 figuren van Nijntje en vriendjes en 12 Cars. Kies een reeks om de vakjes, voortgang en hints van die reeks te bekijken. `Zoek ze allemaal` volgt alleen de gekozen reeks.
- Nijntje, Nina, Snuffie, Boris, Barbara, Knorretje, Vader Pluis, Moeder Pluis, Opa Pluis en Oma Pluis lopen rond in hun eigen zoekgebieden. De Cars-reeks bevat Bliksem McQueen, Takel, Sally, Doc Hudson, Luigi, Guido, Fillmore, Sarge, Chick Hicks, Cruz Ramirez, Jackson Storm en Mack. Alle figuren zijn echte bewegende 3D-modellen die je moet vinden.
- Ga dichtbij voor een gevonden figuur staan en kijk naar hem. De hint toont zijn drie acties met de toetsen `1`, `2` en `3`. Druk een toets om de actie te starten; de muis blijft beschikbaar om rond te kijken. Tijdens een actie wisselen deze toetsen niet tegelijk je bouwkeuze.
- Een gevonden, vrije Cars-auto is met `X` instapbaar. `W` geeft gas, `S` remt en rijdt daarna achteruit, `A/D` stuurt en `C` wisselt de camera. Laat het gas los om te stoppen en druk daarna `X` om veilig naast de auto uit te stappen. De wielen draaien mee; de volledige auto controleert droge grond, obstakels en ruimte rond spelers.
- Vondsten, figuuracties, Cars-posities en bezetting worden gedeeld in multiplayer. Ook gasten kunnen Cars besturen; een bezette auto blijft bij zijn bestuurder. Lokale spelers gebruiken hun eigen besturing en hints.
- Iedere complete reeks geeft eenmaal 10 sterren en een eigen titel: Figurenkampioen, Vriend van Nijntje of Radiator Springs kampioen. De voortgang en ontvangen bonussen worden opgeslagen.
- Bestaande werelden krijgen de nieuwe reeksen bij laden. Gevonden Disney-figuren, hun identiteit, bestaande zoekgebieden en eerder ontvangen bonus blijven behouden. Opslaan behoudt ook werelden met 128 bestaande huisdieren naast alle 38 figuren.
- LAN-protocol 17 deelt de uitgebreidere verzameling en Cars-besturing. Gebruik op alle deelnemende computers dezelfde nieuwe versie.

## 2026-10-08 - FunCraft 2026.10.8.3: wereldback-ups en terugzetten

- Tijdens het spelen wordt iedere 15 minuten een aparte gecomprimeerde wereldback-up gemaakt, naast het bestaande automatisch opslaan. Ook bij het beginnen met spelen wordt een herstelpunt bewaard.
- `Esc → Mijn wereld → Wereldback-ups` toont herstelpunten met datum, tijd, wereldnummer en grootte. Je kunt daar ook zelf een back-up maken, door de geschiedenis bladeren en een gekozen wereld terugzetten.
- Terugzetten vraagt een bevestiging en bewaart eerst de huidige wereld. Bouwwerken, inventaris, voertuigen, dieren, albums en opgeslagen spelvoortgang komen terug uit dezelfde volledige save. Beschadigde back-ups zijn herkenbaar en worden geweigerd.
- De laatste 48 kwartierback-ups en maximaal 12 start-, handmatige en herstelback-ups worden bewaard. Lokale pauzes tellen niet mee; een LAN-host blijft de gezamenlijke wereld bewaren wanneer zijn menu open is. Gasten gebruiken de back-ups van de host. Stop LAN voordat je terugzet.

## 2026-10-08 - FunCraft 2026.10.8.2: rustiger zoeken en veilig landen

- Bij het zoeken van een onbekende figuur zijn de meters 15 seconden zichtbaar en daarna 15 seconden verborgen. Naam, gebied en herkenningshint blijven zichtbaar. De zoekpijl behoudt zijn eigen ritme van 5 seconden aan en 30 seconden uit.
- Helikopter, raket en ballon landen met hun echte onderkant op de grond. Een dak erboven laat ze niet meer omhoog springen; muren en plafonds stoppen de volledige romp. De mandvloer van de ballon is nu het referentiepunt voor beeld, camera en fysica.
- Hun start- en parkeerplaatsen controleren de volledige romp, droge grond, een vrije uitstapplek en vrije lucht erboven. Een vastzittend onbezet voertuig uit een oude save krijgt bij laden een geschikte plek. Een voertuig met een lokale of LAN-piloot blijft op zijn plaats wanneer iemand voertuigen terugroept.
- X laat je pas uit een vliegend voertuig stappen na landen en stoppen. Helikopter, raket en ballon vragen droge grond en een vrije uitstapplek naast het voertuig. Deze controle geldt ook voor alle gastspelers; verbreken van een verbinding blijft het voertuig vrijmaken.
- De raket daalt bij loslaten van het gas met maximaal 8 m/s. De hints leggen het landen en stoppen uit, ook voor P2–P4. Een trein stopt nu ook bij uitstappen door speler 1.
- LAN-protocol 16 gebruikt dezelfde ballonpositie op alle computers. Werk alle deelnemers bij.

## 2026-10-08 - FunCraft 2026.10.8.1: gesimuleerd spelen en veilige begroetingen

- Automatische begroetingen controleren de volledige blikrichting. Recht omhoog of naar de grond kijken start geen actie; de echte hoogte van bijvoorbeeld Buzz en Mike wordt meegenomen. De host gebruikt ook de verticale blik van alle gastspelers.
- Een figuur die op zijn plek veilig staat maar daar niet kan omdraaien, kan vanuit zijn bestaande oriëntatie een veilige begroeting uitvoeren.
- Het noodherstel en de aansluitende hoogtecorrectie van een dier na bouwen controleren de volledige lichaamshouding en de ruimte rond spelers, ook voor wachtende huisdieren.
- Een stilstaande bezoeker krijgt geen nieuwe begroeting doordat een figuur even wegwandelt en terugkomt. Een nieuw bezoek begint nadat de bezoeker zelf daadwerkelijk vertrekt.
- LAN-protocol 15 deelt nu ook de verticale blik van gastspelers P2–P4. Werk alle deelnemende computers bij.

## 2026-10-07 - FunCraft 2026.10.7.6: gebieden zoeken en spontane begroetingen

- De zestien figuren krijgen verspreide zoekgebieden. Het boek geeft gebieds- en herkenningshints; pas dichtbij toont de pijl de precieze plek. De route is bedoeld voor ongeveer 25–35 minuten zoeken te voet. Sprinten, voertuigen en samen zoeken kunnen sneller gaan.
- De figurenzoekpijl is vijf seconden zichtbaar en daarna dertig seconden verborgen. De naam, gebiedsafstand en hint blijven zichtbaar.
- Ga dichtbij voor een figuur staan en kijk naar hem: hij doet vanzelf een willekeurige passende actie. Tijdens één bezoek blijft hij die begroeting niet herhalen. De drie handmatige acties blijven op zijn spaarkaart beschikbaar.
- Figuren en wandelende landdieren houden afstand van spelers en lopen niet meer door hen heen. Figuren wandelen binnen hun eigen zoekgebied, ook bij een bezoek door een verre lokale of LAN-speler.
- Zoekgebieden worden opgeslagen en met gasten gedeeld. Bestaande werelden behouden gevonden figuren en albumvoortgang; nog niet gevonden figuren krijgen een verspreide plek.
- Automatische begroetingen worden door de host gestart en in LAN gedeeld. Deze versie gebruikt LAN-protocol 14; gebruik op alle aangesloten computers dezelfde nieuwe versie.

## 2026-10-07 - FunCraft 2026.10.7.5: voertuigen en dieren voor gasten

- Voertuigposities, besturing en bezetting worden gedeeld in LAN. Een gast stapt met X in hetzelfde vliegtuig, dezelfde boot, helikopter, raket, ballon of trein als de host ziet. De host verwerkt de besturing en geeft het voertuig vrij bij uitstappen of verbreken van de verbinding.
- De verstuurde pilootpositie blijft gelijk aan de positie na het frame, zodat een snelle vlucht of lagere beeldsnelheid de gast niet onterecht laat uitstappen. Ook grote opgeslagen bootvloten worden veilig gedeeld.
- Gasten die op het bootdek staan bewegen mee met de boot, ook bij draaien en positiecorrecties. Bij wisselen naar een andere boot blijven passagiers op de oorspronkelijke boot staan.
- Ook het tweede vliegtuig is instapbaar. De instaphint en de X-actie kiezen hetzelfde voertuig; de duidelijke klikknop is beschikbaar voor alle voertuigtypen.
- Naast Menu staat een vaste knop Voertuigen, ook in de rustige HUD. Esc bevat direct Voertuigen vinden. De lijst toont pijltjes, afstand, hoogteverschil en bezetting; openen verplaatst geen voertuigen.
- Gasten kunnen dieren bouwen. De host controleert de plaatsing en deelt het nieuwe dier. De gast krijgt een bevestiging of een concrete reden wanneer de gekozen plek niet geschikt is.
- Het dierenboek telt ook bij gasten dieren die ze dichtbij daadwerkelijk kunnen zien. Een gezamenlijke race maakt ook voertuigen van gastbestuurders vrij.
- De verzamelraceknop in het schattenalbum onderbreekt geen lopende gezamenlijke LAN-ronde.
- Het vliegtuig versnelt en remt geleidelijk. De snelheid blijft behouden bij loslaten; na landen kun je tot stilstand komen en veilig uitstappen. Bomen en hoge daken laten het vliegtuig niet meer omhoog springen. Alle lokale spelers hebben eigen gas- en remtoetsen.
- De figuren-spaarkaart toont alle zestien figuren: grijs voordat je ze dichtbij ontmoet, in kleur na de vondst. Samen zoeken vult dezelfde kaart. Een volle kaart geeft eenmalig 10 sterren en Figurenkampioen; de beloning wordt opgeslagen.
- Alle zestien figuren hebben drie passende acties, zoals Woody met een lasso, Elsa met ijsmagie en Buzz die vliegt. Dichtbij een gevonden figuur opent de knop 3 acties zijn kaart. De bewegingen worden in LAN door de host gestart en gedeeld; daarna loopt de figuur weer verder. De kaart kan je ook terug naar een gevonden figuur leiden.
- Buzz is 60% groter en de hoogste figuur; Mike is 25% groter. Beide blijven volledige wandelende 3D-modellen.
- Deze versie gebruikt LAN-protocol 13: werk alle deelnemende computers bij. Op dieren rijden blijft voorlopig een hostfunctie; de gast krijgt daar nu uitleg bij.

## 2026-10-07 - FunCraft 2026.10.7.4: samen figuren zoeken, zwemmen en handmatig bijwerken

- Bij drijven blijft het lichaam in het water en het hoofd erboven. Spatie laat je omhoog zwemmen zonder uit het water te blijven springen of via dubbel drukken te gaan vliegen. Ctrl laat je duiken, ook onder een boot. Met Spatie kun je op een bereikbare oever of bootdek klimmen.
- Uitstappen in ondiep water houdt rekening met de echte bodem onder beide voeten. Je komt naast de boot terecht; een nabije droge wal blijft de eerste keuze.
- De achtervolgcamera van alle vijf boottypen kan met de muis hoger en lager rond de boot bewegen. Dit werkt ook voor de andere lokale spelers en houdt de camera boven water.
- De automatische gedachtenwolkjes bij dieren en rondlopende personages zijn verwijderd. Dieren blijven gewoon bewegen; de werkindicator bij een werkende helper blijft behouden.
- Albumschatten zijn echte 3D-kistjes op hun werkelijke vindplek. De pijl toont de schatnaam, afstand en een aanwijzing om dichterbij te komen, te graven, te duiken of te klimmen. Boot- en zweminstructies verbergen deze schathint niet.
- Een schat vinden toont acht seconden de schatnaam, beloning en albumvoortgang, ook naast andere meldingen. Het echte schatblok uitgraven telt als vondst; de aanwijzing boven de grond weghakken telt niet. Alle lokale spelers kunnen een albumschat vinden, met één beloning per schat.
- De LAN-host krijgt de dierenbesturing terug wanneer die eerder als gast verbonden was. Dieren bouwen via het menu en de bouwbalk werkt dan weer en nieuwe dieren worden met de andere spelers gedeeld.
- Via `Esc → Spel bijwerken` zoek je met `Zoek updates` naar een nieuwe versie op funcraft.trendon.nl. Downloaden en opnieuw starten vereist een aparte klik en bewaart eerst de wereld. Opstarten en het openen van het scherm zoeken geen updates; een verbindingsfout blokkeert het spel niet. Ook de starter werkt voortaan zonder automatische update.
- Een nieuwe figurenzoektocht heeft 16 herkenbare wandelende 3D-figuren: Woody, Buzz Lightyear, Mickey, Minnie, Elsa, Olaf, Stitch, Donald, Goofy, Pluto, Simba, Ariel, Rapunzel, Vaiana, Mike en Sulley. Je moet ze in de wereld ontmoeten. Het figurenboek bevat modelportretten, voortgang en hints; de pijl volgt de bewegende figuur met afstand. Vondsten worden bewaard en in multiplayer gedeeld, zodat iedereen samen dezelfde verzameling vult.

## 2026-10-07 - FunCraft 2026.10.7.3: op de boot kijken en levende oude zeeën

- Met C wissel je tijdens varen tussen de achtervolgcamera en een blik vanaf het dek. Ook direct na instappen toont het dek de eigen boot.
- De instaphint gebruikt de afstand tot de romp en blijft beschikbaar tijdens een schattenopdracht. De actiezoeker bedekt deze hint niet meer.
- Oude werelden vullen geschikt water opnieuw aan met zeedieren. Tijdens het verkennen blijven ook nieuwe watergebieden dieren krijgen.

## 2026-10-07 - FunCraft 2026.10.7.2: levende waterdieren en veilige oevers

- Het dierenbouwmenu bevat nu 35 soorten, met een vriendelijke haai en zeeschildpad. Ze verschijnen ook in de vijver bij het startpunt en blijven na opslaan en laden bestaan.
- Vissen en haaien slaan hun staart zijwaarts; dolfijnen en walvissen bewegen hem verticaal. Roggen, schildpadden en octopussen krijgen bewegende vinnen of tentakels. Onderwaterdieren zwemmen met vloeiende bochten; de twee nieuwe soorten veranderen rustig van diepte.
- Landdieren controleren hun gedraaide voeten en lichaam voordat ze lopen, springen, volgen of worden bereden. Mollen kiezen een droge plek om boven te komen. Weggestuurde huisdieren krijgen een vrije droge bestemming.
- Diepe oceanen worden bij natuurlijke dierenspawns herkend. Waterdieren en visscholen verschijnen alleen waar hun model vrij in het water past.
- Een LAN-verbinding die tijdens starten wordt gestopt of direct een ongeldig hostbericht krijgt, kan de game niet meer laten crashen. Opnieuw verbinden behoudt de juiste status.

## 2026-10-07 - FunCraft 2026.10.7.1: boten op het echte water

- Boten herstellen hun hoogte op het lokale wateroppervlak, ook na laden en bij gewijzigde vijvers. Een opgedroogde boot rust op de echte vloer en kan daar niet varen. Water onder een afgesloten stenen vloer trekt de boot niet naar een grot.
- Varen en draaien controleren ook de tussenliggende rompstanden. Een dunne muur, oever of hoger water kan daardoor bij een langere frame niet worden overgeslagen.
- Het verre zeeoppervlak ligt op dezelfde hoogte als echte waterblokken. Aan de zichtgrens blijft de waterchunk onder een zichtbare boot aanwezig, ook bij verhoogde meren.
- Boten uit de omgeving respecteren aangelegde oevers, bruggen en opgeslagen wijzigingen. Nieuwe werelden hebben ook meteen een zeilboot in de plaatselijke vloot.
- Zwemmers hervatten hun opgeslagen diepte. Spelers die op het dek staan, blijven bij laden op het dek zonder automatisch bestuurder te worden. Dekpassagiers bewegen veilig mee met bochten en waterhoogtewijzigingen.
- Tijdens varen blijft de bootnaam met varen, sturen, camera wisselen en uitstappen in de aanwijzingsbalk staan.
- De bestuurder zit zichtbaar op de bank of het dek en kijkt in de vaarrichting. De achtervolgcamera toont ook je eigen poppetje; de zitplaatscamera tekent je eigen hoofd niet voor de lens.
- Landdieren en lopende NPC's die door een aangelegde vijver op een natte vloer terechtkomen, herstellen naar een nabije bereikbare droge vloer. Daken, wolken en verre plekken worden daarbij niet als uitweg gebruikt.
- De pijl houdt het gevolgde voertuig herkenbaar wanneer diens actuele positie verandert. Wisselen naar het volgende doel in het menu blijft daardoor werken na herstel van de boothoogte.

## 2026-10-06 - Volledige website veilig publiceren

- Het publiceerscript gebruikt nu de bestaande app `funcraft` en vereist een volledig websitepakket met release-receipt. Downloadpagina, vorige downloads en configuratie worden vooraf gecontroleerd.
- `ValidateOnly` controleert pakket en actuele serverrollen zonder upload of wissel. Mislukte jobs melden een fout; de afzonderlijke wissel volgt pas na controle van de echte downloads en de vorige release.
- De publicatieroute is beschreven in `docs/publiceren.md`. De toolingtests slagen voor 29/29 gevallen in zowel Windows PowerShell 5.1 als PowerShell 7.

## 2026-10-05 - FunCraft 2026.10.5.1: opdrachten bewaren en bereikbaar spelen

- Sluiten, Doorspelen en acties vanuit de boeken geven de muisbesturing direct terug. Terug behoudt de gekozen aanwijsmodus en de route naar het vorige scherm.
- Z, het avonturenboek en Mijn opdrachten tonen de lopende opdrachten. Een extra keuze bewaart de andere opdrachten en hun voortgang; bij een volle set blijft het keuzescherm open. Nieuwe opdrachten vervangen vraagt eerst om bevestiging.
- Opdrachtdoelen zoeken echt vrij land onder bomen en wolken, ook waar droog terrein onder het globale zeepeil ligt. De vlinderopdracht biedt vijf bereikbare vlinders. Glittersporen kunnen herstellen en gemiste queststerren verschijnen opnieuw, met actuele aanwijzingen in de kaarten en de HUD.
- De hardlooprace houdt alle lokale spelers vast tijdens het aftellen en zet voertuigbestuurders te voet bij de start. Finish en verborgen schat controleren ook de hoogte van de speler.
- Minigames zoeken de echte speelvloer en houden doelen onder het plafond. Onvoldoende vrije ruimte geeft uitleg voordat het spel start. Naar de top noemt bouwen en vliegen; gelijke wedstrijdscores krijgen een eerlijke uitslag.
- De LAN-host blijft wereldtijd, gezamenlijke rondes en netwerkupdates verwerken terwijl een menu openstaat of het venster geminimaliseerd is. De menu's leggen dit uit; lokale besturingsinput blijft geblokkeerd.
- Opslaan en checksumcontrole gebruiken herbruikbare UTF-8-buffers. Het lezen van de wereldseed laadt niet langer eerst alle regels in een extra lijst.

## 2026-10-04 - FunCraft 2026.10.4.1: spelregels, puzzels en zoektochten

- De spelcatalogus toont eerst de volledige regels en daarna een duidelijke Start-knop. Tijdens een ronde blijven voortgang en de volgende handeling in beeld. F1 opent de uitleg van het lopende spel; Doorgaan, Opnieuw en Stoppen zijn direct bereikbaar.
- Doe-me-na laat je zelf de melodie onthouden: de pijl wijst naar de muziekstenen, zonder de volgende noot te verraden. Ballonnen stijgen langzamer en starten boven hun eigen terrein, zodat ze met lopen en springen te vangen zijn. Verstoppertje controleert of iemand echt zichtbaar is en kijkt niet meer door muren.
- Stoppen ruimt tijdelijke spelobjecten en de snelheidsboost op. De topwedstrijd houdt het doel binnen de wereldhoogte. Samen spelen legt de benodigde spelers uit; de host beheert gedeelde LAN-rondes.
- Kies welke actieve opdracht je wilt volgen, met een passende pijl en korte instructie. De andere opdrachten en hun voortgang blijven behouden. Lopende opdrachten en de gekozen opdracht worden nu mee opgeslagen en na laden hervat.
- Schattenkaarten gebruiken bereikbare plekken en controleren ook hoogte bij de vondst. De bloemenopdracht telt vier echte kleuren; de grotmissie krijgt een bereikbaar konijn. Vanuit een menu een spel of zoektocht kiezen hervat lopen en kijken.
- Recepten en verschillende getemde diersoorten tellen bestaande ontdekkingen mee. Voltooide verzamelopdrachten worden niet opnieuw aangeboden, zodat een wereld met veel voortgang geen onmogelijke opdracht krijgt. De meubelopdracht legt de drie verschillende meubels uit.

## 2026-10-02 - FunCraft 2026.10.2.1: bootbediening vrij van de kaart

- De instapbalk en meldingen wijken uit voor de minimap wanneer die zichtbaar is. Zo blijven kaart en instapknop tegelijk bruikbaar, ook in klein splitscreen, op 5K en met Windows-schaling. De afbeelding houdt haar verhouding en de klikpositie volgt de werkelijk getekende balk.
- De grafische controles bewaken nu ook overlap tussen bootknop, meldingen, minimap en Menu. Oude testcontracten zijn aangepast aan de gesplitste menu-bestanden en huidige navigatie.

## 2026-09-30 - FunCraft 2026.9.30.2: Full HD, 5K en Windows-schaling

- Menu's en HUD passen zich automatisch aan het venster en de Windows-schaling aan. Op een 5K-monitor krijgen tekst en knoppen een bruikbaar formaat; kleine vensters houden hun bestaande begrenzing.
- Renderkwaliteit verandert de grootte van de GUI niet meer. Aanwijzen, klikken, resize en wisselen van monitor gebruiken dezelfde schaalcontext als het tekenen.
- Menu, Doorgaan, bouwcategorieën, opdrachtkaart, kaart en legenda gebruiken dezelfde schaling. Compacte HUD-varianten volgen de beschikbare ruimte per speler, ook in splitscreen of bij grotere zelfgekozen UI-schaling.
- De controle van echte gamebeelden omvat Full HD en 5K, Windows-schaling van 150%/200% en renderkwaliteit van 50%/150%.

## 2026-09-30 - FunCraft 2026.9.30.1: menu's, bediening en spelregels grondig nagekeken

- Instellingen gebruiken korte tabbladen en subpagina's. Hoofdmenu, hulp, bouwboek, dierenboek, receptenboek, voortgang, opdrachten en mijlpalen hebben grotere tekst en kaarten. Lange lijsten zijn bladerbaar. Terug en Sluiten zijn herkenbaar en de terugroute onthoudt het geopende scherm.
- Modale menu's gebruiken het hele venster, ook met twee, drie of vier spelers. Tekenen, aanwijzen en klikken gebruiken dezelfde coördinaten. Pijltjes/Tab, Enter, Shift+Tab, Page Up/Page Down en het muiswiel werken in de menu's; toetsenbordfocus blijft zichtbaar boven de menutextuur. Een open menu blokkeert acties in de wereld.
- Het schattenalbum heeft aanklikbare stickerplekken, een grotere aanwijzing voor de gekozen sticker en een route naar precies die schat. Het receptenboek filtert op ontdekking, voorraad en grondstofgroep; een hint onthult een recept zonder het als gemaakt te tellen.
- Bouwkeuzes zijn waar nodig Nederlands. Levende dieren zijn duidelijk onderscheiden van decoratieve beeldjes. De karaktereditor houdt het beeld in verhouding en toont een vaste 3D-preview, ook binnen gebouwen of onder water; echte LAN-spelers blijven verbonden.
- Combineren toont beide ingrediënten, aantallen en resultaat. Ook recepten met twee dezelfde grondstoffen werken. Kisten bladeren door alle grondstoffen, zodat ook soorten voorbij de eerste zeven apart te verplaatsen zijn.
- Kleine vensters tonen een compacte opdracht en puntenbadge. De geselecteerde bouwcategorie en het gekozen item blijven leesbaar; categorieknoppen zijn met de vrije muis aanklikbaar. Menu en Doorgaan hebben grotere klikvlakken; kaart, legenda, inventaris en besturingstips hebben aparte plekken. HUD-klikken blijven correct bij andere renderschaal en splitscreen. De hand en voertuigweergave horen bij de eigen speler.
- Fotoalbum, dagboek, chat en samen spelen hebben grotere pagina's. Lange gesprekken en herinneringen blijven volledig leesbaar; foto's zijn te vergroten en worden veilig in de ingestelde datamap bewaard. Terug naar een gesprek behoudt de juiste spreker. Terug naar instellingen behoudt ook de subpagina.
- Boten controleren de volledige gedraaide romp en mast, inclusief hoofdruimte voor dekpassagiers. Spawn en uitstappen zoeken een vrije plek. Snel vliegen kan dunne muren en vloeren niet overslaan; alle lokale spelers laden hun eigen terrein.
- Huisdieren worden bij fluiten naar een vrije droge vloer gebracht. Voertuigen van verdwenen splitscreenspelers komen vrij; voertuigen van actieve spelers blijven bezet. Een nieuwe of geladen wereld synchroniseert alle instellingskeuzes. De knop naar het startpunt voert de actie nu vóór de simulatie-update uit.
- Zeedieren worden alleen geplaatst waar hun hele model vrij past. Ochtend, middag, avond en nacht kiezen de juiste zonstand; slapen eindigt bij ochtendlicht. Shift+E maakt confetti, E kiest alleen het volgende bouwitem. Ook speler twee kan duiken. De toetsen en pagina's van het doelenmenu volgen dezelfde zes kaarten als de zichtbare lijst.
- De bonus voor een zonsondergangfoto hoort nu bij echte avondschemering; een foto rond middag of middernacht telt daarvoor niet.
- De onafhankelijke UI-controle vergelijkt echte menubitmapbeelden op meerdere vensterformaten. De grafische rooktest rendert de menu's met D3D en controleert zichtbare paneelranden en focus, inclusief splitscreen.
- Eindcontrole: 107 menuvarianten op drie vensterformaten, 588 echte knopacties zonder crashes of ontbrekende acties, en 46 menu-rendercases plus 58 HUD-controles op de definitieve losse exe zonder fouten. Release 2026.9.30.1 bouwt met nul waarschuwingen en nul fouten; details staan in `tmp/ui-viewport-audit/VALIDATIE-2026-09-30.md`.

## 2026-09-24 - Dieren, bouwkeuze en menu's duidelijker

- Startpanda's en minstens één volwassen olifant of giraffe verschijnen vóór de startcamera, ook bij oudere saves waar dieren ver weg stonden. De Dierenbouwer is direct bereikbaar via Esc → Spelen → Dieren bouwen en plaatst bewegende 3D-landdieren, vogels en zeedieren op een zichtbare geschikte plek, of meldt waarom plaatsen niet lukt.
- De snelbalk toont vijf categorieën en het gekozen item tegelijk, met een compacte leesbare versie voor lage splitscreenvensters. Ctrl + muiswiel wisselt categorie; het muiswiel kiest een item binnen die categorie. Nummertoetsen en klikken volgen dezelfde lijst. Het LAN-protocol bewaart nu ook hotbarselecties boven index 127.
- Esc → Boeken → Grondstoffenboek toont alle 20 grondstoffen, met icoon, gekoppeld bouwblok en het echte aantal in de tas. De schattenbalk toont voortgang en een korte zoekhint zonder voortdurend de K-toets te eisen.
- In boeken en ondermenu's brengt Terug je naar de vorige menucategorie; Sluiten brengt je terug naar het spel. De doelpijl toont een concrete naam en is in het menu of met F2 te wisselen. Acties en HUD-instellingen staan op aparte leesbare bladen.

## 2026-09-23 - Nieuwe wereld en reset vindbaar

- Onder Esc → Mijn wereld staan nu direct **Nieuwe wereld starten** en **Deze wereld opnieuw**. Een tweede klik binnen vijf seconden bevestigt; het scherm legt het verschil uit en meldt dat de vorige save bewaard blijft. Nieuwe opdrachten staan nu bij Boeken & doelen.
- Een nieuwe wereld krijgt echt een willekeurige seed in plaats van alleen de volgende wereldcode. Na een wereldwissel worden knop- en effecttellers opnieuw op de verse wereld afgestemd, zodat geen acties spontaan herhalen of uitblijven.
- Welkom en Hulp noemen de route. Ook de oude knoppen in Instellingen gebruiken de bevestiging; de timer loopt tijdens een gepauzeerd menu door. Tijdens LAN blijven wereldwissel en reset geblokkeerd om een verschil tussen spelers te voorkomen.
- Controle: 12 gerichte wereld- en resettests geslaagd, 521 klikacties zonder crash, schone Debug- en Release-build, zelfstandige Release-check geslaagd.

## 2026-09-22 - Schattenalbum en spelletjes nagekeken

- De spelcatalogus toont alle 15 startbare spellen op twee leesbare pagina's, met uitleg en voortgang. Ballonnen-pop, Hinkelpad, Glimwormpjes, Schatzoektocht en Doe-me-na zijn nu direct te starten; het pauzemenu biedt snelle starts en toegang tot de hele catalogus.
- Spellen voor twee spelers blijven zichtbaar met een duidelijke vereiste en sluiten het menu niet als er nog geen tweede speler is. Cijfertoetsen en het muiswiel kiezen op het spelletjesblad geen onzichtbare doelen meer.
- Het Schattenalbum volgt een gekozen schat tot die werkelijk is opgeraapt en kiest daarna de volgende. Hints in album en HUD volgen dezelfde schat, ook na opslaan en laden. Boomschatten staan in echte bomen; graaf- en duikschatten behouden hun zichtbare markering tot de vondst.
- Tijdelijke muziektegels van Doe-me-na verdwijnen bij spelwissel en vervuilen saves niet. Gewonnen melodieën en gezamenlijke edelsteenrondes blijven bewaard. De pijlen van Hinkelpad en Doe-me-na wijzen naar de volgende juiste stap; Schatzoektocht verraadt de locatie niet op de kaart.
- Een vissenschool overschrijft geen verse aanwijzing meer. Schatposities worden pas berekend wanneer de speler de directe spawnplek verlaat; de locaties in bestaande werelden veranderen niet.
- Controle: 80 gerichte spel-, album-, navigatie- en regressietests geslaagd; alle 15 catalogusspellen bereikbaar, 519 klikacties zonder crash, en de zelfstandige Release-build slaagt.

## 2026-09-22 - Dieren bouwen, veilig zwemmen, echte boten en verzamelboek

- Alle grote bouwwerken en het snelle huis worden eerst als één veilige plaatsing voorbereid. Spelers die in het bouwvolume staan worden naar een vrije, droge plek verplaatst; als dat niet kan wordt de hele plaatsing zonder restblokken teruggedraaid.
- Het Dieren-boek bevat een Dierenbouwer met 33 echte soorten: volwassen olifant, panda en giraffe plus 30 land-, lucht- en zeedieren. Gebouwde dieren blijven bestaan na ver weg lopen en opslaan/laden; oude en nieuwe werelden krijgen olifant, panda en giraffe gegarandeerd.
- Spelers blijven drijven, kunnen met spatie stijgen en met Ctrl duiken, en kunnen weer een vaste oever oplopen. Dezelfde besturing werkt in splitscreen.
- Vissen en andere zeedieren krijgen een vaste individuele zwemdiepte binnen hun waterkolom. Scholen zwemmen daardoor op verschillende hoogtes, blijven uit de bodem en verschijnen ook in binnenmeren.
- De dekken van aangemeerde en varende boten zijn beloopbaar en dragen passagiers mee. Ook de 3D-zeilboten op open water zijn echte voertuigen: dichtbij verschijnt `X instappen`, de boot blijft na claimen weg uit de decoratieve vloot en varen start met zicht op de romp.
- Oceaanboten controleren hun volledige gedraaide romp op open water, zodat boeg, achtersteven en hoeken niet over een kustlijn steken. Uitstappen op open water zet de speler veilig naast de romp in zwempositie.
- De kaart heeft aparte vormen voor vliegtuig, helikopter, raket, ballon, boot, trein, opdrachten, spelletjes en schatten. Doelen buiten bereik blijven aan de kaartrand zichtbaar en de kaart ververst al na één voxelstap.
- De gekozen grondstof staat tijdens het spelen per speler in beeld. Een vaste zoekbalk toont de dichtstbijzijnde ontbrekende schat en opent het nieuwe Schattenalbum met stickerplekken, hints, routeknop, Verzamelrace en andere spelletjes.
- Menu's zijn standaard groter. Het Dieren-boek bladert in leesbare pagina's, terwijl alle soorten bereikbaar blijven. De bootknop en 2.124 andere muisdoelen zijn op vijf venster- en splitscreenformaten gecontroleerd.
- Opslaan tijdens varen hervat op de boot. Nieuwe wereld en voortgangsreset schrijven de nieuwe save voordat de actieve wereld wisselt en bewaren de vorige save afzonderlijk; F9 en mislukte saves tonen een fout in plaats van schijnbaar succes.
- Uitschakelen van lichteffecten verwijdert ook het lokale lamplicht. Zichtbare chunks worden over meerdere frames bijgewerkt en de verrewereld-herbouw draait buiten de render-thread.

## 2026-09-22 - 3D-boten en buitenlamplicht

- Decoratieve zeilboten op groot water zijn nu echte 3D-modellen met romp, mast en driehoekige zeilen. Ze blijven ook dichtbij zichtbaar; op grote afstand gebruikt de renderer een eenvoudiger model.
- Roeiboot, zeilboot, vissersboot en veerboot hebben elk een herkenbare 3D-vorm in plaats van alleen een andere schaal van hetzelfde model.
- De rompen van instapbare, aangemeerde en decoratieve boten liggen nu zichtbaar boven het wateroppervlak; de vaarpositie en waterdetectie blijven op hun bestaande niveau.
- Bij het instappen in een boot begint de camera achter de boot, zodat de 3D-romp tijdens het varen zichtbaar is. Met C blijft de zitplaatscamera beschikbaar.
- De entity-renderer herstelt zijn normale shader na de verre terreinpass; anders konden boten en andere objecten dichtbij uit beeld verdwijnen zodra die pass geladen was.
- Buitenlampen verlichten nu omliggende blokken in de nacht. Lokaal lamplicht wordt apart van het daglicht naar de shader gestuurd, zodat de nachtverduistering het lampeffect niet wegneemt.
- De visuele bewaker controleert de decoratieve boten ook van dichtbij en vanuit twee kijkrichtingen, naast de bestaande controles voor de vogelzwerm.

## 2026-08-09 (2) - Stabiele wereldbasis, herstelbare saves en langdurig LAN-bewijs

Buildversie: `2026.8.9.2`

Buildgegevens:

- Standalone: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.343.417 bytes
- SHA256: `8DA0046B414186D399F86838852D83D071639F3846CB445E6D5AA4FD6852C37A`
- Gebouwd op 09-08-2026 20:53; build: 0 waarschuwingen, 0 fouten.
- Volledige suite: 1.314/1.314 geslaagd in 92 testklassen, 0 mislukt en 0 overgeslagen.
- Standalone-, save-, toegankelijkheids-, UI- en visuele controles: `OK`.

### Wereld en saves

- Deterministische startobjecten vormen nu een vaste wereldbasis die niet meer als duizenden
  spelersedits in iedere save en volledige LAN-sync wordt opgenomen. Een bestaande proefsave
  kromp van circa 1,37 MB naar circa 6 KB zonder een bouwwijziging te verliezen.
- De wereldbasis is onafhankelijk van de ingestelde kijkafstand en krijgt een stabiele
  vingerafdruk. Daardoor kunnen twee laptops niet meer ongemerkt verschillende varianten van
  dezelfde seed tonen.
- Nieuwe saves gebruiken formaat 4 met een SHA-256-volledigheidschecksum. Een afgebroken of
  beschadigde hoofdsave wordt niet meer gedeeltelijk geladen; FunCraft valt veilig terug op de
  laatste geldige `.bak`. Saves uit oudere versies blijven ondersteund.
- Headless hosts kunnen een expliciete wereldfile laden, periodiek autosaven en na een harde
  hoststop uit diezelfde wereld hervatten.

### LAN-betrouwbaarheid

- Protocol 11 gebruikt een strikte, versiegebonden handshake en controleert seed, hoogte en
  wereldbasisvingerafdruk. Een afwijkende executable geeft een blijvende duidelijke melding en
  veroorzaakt geen reconnect- of simulatie-aanmaaklus.
- Iedere late joiner krijgt een eigen begrensde volledige wereldsync. Live edits worden daar in
  de juiste volgorde achter gezet, terwijl bestaande spelers niet telkens de hele wereld opnieuw
  ontvangen.
- Afgesloten, halfopen en ongeldige verbindingen worden volledig opgeruimd; spelersslots 2-64
  worden veilig hergebruikt. Corrupte host-snapshots stoppen automatisch opnieuw verbinden en
  onverwachte clientberichten worden geisoleerd zonder gezonde spelers te raken.
- Een nieuw virtueel-LAN-lab start een host en drie clients met vier geisoleerde datamappen,
  simuleert een late join, tegelijk bouwen/slopen, een harde hostcrash, save/load en automatische
  reconnect, en maakt per proces een bewijs-PNG zonder renderer of beheerdersrechten.
- De vijfminutenproef verwerkte 2.403-2.408 snapshots per client, dezelfde fingerprint op alle
  vier processen, persistente edits voor en na reconnect, gedeeld weer, regenboog, dieren,
  emotes en wedstrijden, met 0 protocolfouten en stabiel geheugen.
- De definitieve standalone doorliep daarna nog een afzonderlijke 65-secondenacceptatie met drie
  clients, late join, hostcrash en herstart: 0 issues, 0 protocolfouten, alle drie clients opnieuw
  verbonden en de opgeslagen bouwwijzigingen voor en na reconnect zichtbaar.

### Test- en supportkwaliteit

- `--data-dir` en `FUNCRAFT_DATA_DIR` isoleren instellingen, saves en bewijsbestanden per virtuele
  laptop. De UI-samplecheck gebruikt nu altijd een tijdelijke datamap en bewijst dat normale
  spelersinstellingen ongewijzigd blijven.
- Headless LAN-uitvoer meet working set en managed heap over tijd en faalt bij onbegrensde groei
  of een piek boven 600 MB. De acceptatiescriptcontrole vergelijkt bovendien fingerprints,
  savegrootte, protocolfouten en bewijsafbeeldingen.
- Het supportrapport leest afmetingen, hash, leeftijd en status rechtstreeks uit het actuele
  visuele rapport en de echte PNG, in plaats van vaste voorbeeldwaarden te tonen.
- De visuele bewaker, vijf willekeurige rondkijkroutes en 2.100 echte UI-klikroutes zijn opnieuw
  gecontroleerd op verdwijnende objecten, zwevende dieren, cameradoorsnijding, overlap en
  onbereikbare bediening.

## 2026-08-09 - LAN-betrouwbaarheid, drie spelers en duidelijkere navigatie

Buildversie: `2026.8.9.1`

Buildgegevens:

- Standalone: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.334.422 bytes
- SHA256: `E28C680255A1996CFE5437CBE932C5FA43EEA79CAA49BA61C2D2ACBB87F1BCA8`
- Gebouwd op 09-08-2026 01:31; build: 0 waarschuwingen, 0 fouten.
- Volledige suite: 1288/1288 geslaagd, 0 mislukt, 0 overgeslagen in 22 min 53 sec.
- Standalone-check, muis-look-, RDP-rand- en menu-vrijgavetest: `OK`.

### Multiplayer en wereldsync

- De host ziet nu iedere nieuwe verbinding als een nieuwe synchronisatiegeneratie. Daardoor krijgt
  ook een automatisch reconnectende of vervangende client de volledige bewerkte wereld, zelfs als
  het totale aantal verbonden spelers ondertussen gelijk blijft.
- Blokwijzigingen van clients worden eerst defensief door de autoritatieve host gecontroleerd.
  Coördinaten buiten de wereld en onbekende bloktypes worden niet toegepast of doorgestuurd.
- Grote reeksen bouw- en sloopacties blijven in een begrensde FIFO-wachtrij staan en worden in
  netwerkveilige batches verstuurd. Bij een volle hostwachtrij wordt automatisch een volledige
  wereldsync klaargezet; de client krijgt duidelijke feedback wanneer die even moet inhalen.
- De headless LAN-client gebruikt nu zijn opgegeven spelersnaam, kiest per client een unieke
  proeflocatie en bewijst zowel plaatsen als verwijderen. Een wedstrijdtest accepteert terecht dat
  slechts een speler wint, zolang alle clients dezelfde geldige uitslag ontvangen.

### Doelen en visuele controle

- Het filter `Opdrachten` heet nu `Actie & samen`, omdat het naast opdrachten ook medespelers,
  minigames en ontdekkingen toont.
- De actieve-pijlweergave in het pauzemenu wordt op de juiste pagina gerenderd en gecontroleerd.
- Een nieuwe LAN-lobby-sample toont twee herkenbare spelers, hun afstand en voor ieder een eigen
  `pijl naar`-actie. De UI-audit controleert labels, overlap en bereikbaarheid daarvan.
- De automatische kliktest controleerde 2.100 echte klikroutes over vier resoluties, 33
  cache-heropeningen en 519 acties zonder gemiste klik, verkeerde knop of crash. De muis-look-,
  RDP-rand- en menu-vrijgavetests zijn eveneens geslaagd.

### Nieuwe regressiedekking

- Tien integratietests dekken een echte host met twee clients, gelijktijdig plaatsen en verwijderen,
  late join na 18.000 wijzigingen, reconnect, hostrestart met opgeslagen wereld, dieren, weer,
  slapen, co-op/minigame-status, interactieve blokken en snelle snapshots.
- Ongeldige bloktypes en frames groter dan 4 MB worden geïsoleerd zonder een gezonde client te
  verbreken. Twee clients behouden ieder 49.152 delta's uit twaalf snel opeenvolgende snapshots.
- Een echte drieprocessen-soak van 65 seconden leverde 530 hostsnapshots en 479/480
  clientsnapshots op. Beide clients zagen drie spelers, gedeeld weer/dieren/regenboog/emotes,
  dezelfde wedstrijduitslag en hun eigen plaats- en verwijderactie; het piekgeheugen bleef onder
  84 MB per proces.

## 2026-07-26 (2) - Systematisch alle knoppen langs: waarom klikken soms niet werkte

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.26.3`
- Grootte: 52.334.699 bytes
- SHA256: `8BE43377332C9BF8B2DB8A35AE457B114EB616D294EEC51445510EC1A19CD410`
- Gebouwd op 27-07-2026 09:56 (staat in het spel bij Instellingen en via `--version`)
- Die bouwtijd wordt nu bij het COMPILEREN in de assembly gestempeld. Hij werd uit de bestands-
  datum van de exe gelezen, en die zet je computer op het moment dat je hem downloadt: de
  teruggedownloade FunCraft.exe meldde `gebouwd` op het tijdstip dat je hem binnenhaalde.
  Bewezen door de bestandsdatum op 01-01-2026 te zetten — de exe bleef 27-07-2026 09:55 melden.
- Tests: volledige suite 1278 tests groen (22 min), plus BUTTON COVERAGE OK op de GEPUBLICEERDE exe. Sleutel-check 0x op beide exes.
- Online gezet 27-07-2026 om 09:58 als **r6** op https://funcraft.trendon.nl. ZIP 46.754.162 bytes,
  SHA256 `5F162F8A9E5B1BBBADD4460C75F231BD71F269EAF0A19601D761D46980124DE4`. Teruggedownload van de
  publieke URL, hash klopt, en de exe meldt zelf `2026.7.26.3 / gebouwd: 27-07-2026 09:56`.
- Trezure draait op deze machine en vertrouwt dit IP-adres, dus de deploy-API werkt zonder sleutel.
  Let op: `publiceer-funcraft-update.ps1` deployt naar app `funcraft-update` en een deploy WIST de
  doelmap (`ClearDirectory`). De live site is app `funcraft` met een handgemaakte downloadpagina;
  dat script zou die pagina dus weggooien. Daarom zijn de bestanden ter plekke bijgewerkt.
- Bij het controleren bleek `https://funcraft.trendon.nl/version.json` een **404** te geven,
  terwijl `FunCraft.exe` daar wél staat (200). Dat is precies het bestand waar de
  auto-update-launcher zijn check op doet; die vangt de fout netjes af, meldt "geen verbinding
  met de update-server" en start het spel met de versie die al op de pc staat. Auto-update werkt
  daardoor niet: de download-pagina staat op die plek in plaats van het manifest. **Opgelost:**
  version.json staat er nu bij en geeft 200.

De vraag was om niet te gokken maar er een klikscript op te zetten dat elke knop aanraakt en logt
of het event ook echt afgaat. Dat script vond drie oorzaken die los van elkaar hetzelfde gevoel
geven — "hij doet het soms niet" — en die je met kijken naar screenshots nooit vindt, want op het
plaatje ziet alles er goed uit.

### Waarom de bestaande knop-test dit miste

Die riep elke `OnClick` **rechtstreeks** aan. Zo bewijs je dat een handler niet crasht, niet dat
een muisklik op die plek bij die handler uitkomt. Er zitten drie stappen tussen — schermpixel naar
paneelpixel, welke knop vangt dat punt, en van welk scherm is die knoppenlijst eigenlijk — en juist
daar ging het mis.

Er staan nu drie audits in `--button-test`:

- **klik-audit**: rekent van elke knop het midden om naar een schermpixel en met de échte
  klik-functie weer terug, op 1280x720, 1600x900, 1920x1080 en 3840x2160. 525 knoppen x 4 = 2100
  keer, plus de controle dat elke knop binnen zijn eigen paneel valt.
- **cache-audit**: teken scherm A, teken scherm B, en heropen A **zonder opnieuw te tekenen**.
- **event-audit**: klik op de berekende plek en roep aan wat daar gevangen wordt. 519 events, geen
  knop zonder actie, geen crash.

De eerste versie van de klik-audit meldde meteen "OK" op alle 33 schermen. Dat klopte niet: het
welkom-scherm stond nog open en heeft voorrang, dus hij liep 33 keer over datzelfde scherm. Sinds
die ronde controleert de audit eerst of hij wel kijkt naar het scherm dat hij denkt te openen.

### 1. Knoppen die getekend werden maar in de verkeerde lijst belandden

`DrawButton` legde zijn knoppen altijd in de lijst van Instellingen. Zeven schermen gebruiken die
helper. De knoppen van **Doelen & spelletjes, LAN, Recepten, Fotoboek, Bouwboek en het
poppetje-scherm** kwamen daardoor in de instellingen-lijst terecht: keurig getekend, maar bij een
klik zocht het spel in de lijst van het scherm dat je ziet, en daar stonden ze niet. Ze deden dus
domweg niets.

Dat waren er 42, waaronder de zes pijl-knoppen rechtsboven in Doelen & spelletjes — `dichtstbij`,
`aanrader`, `iets anders`, `naar doel`, `pijl uit` en de HUD-knop.

`DrawButton` schrijft nu in de lijst van het scherm dat op dat moment tekent.

Nevenvangst: omdat die 42 knoppen nergens geregistreerd stonden, werden ze ook nooit door de
label-controle bekeken. Meteen na de fix viel `geen doel gekozen` om — 137 pixels tekst op 120
pixels ruimte.

### 2. Klikken gingen naar het scherm dat toevallig als laatste tekende

Alle boeken-schermen (Stats, Opdrachten, Dieren, Verzamel, Mijlpalen, Recepten, Fotoboek,
Bouwboek, Doelen, LAN, Praten, Dagboek, Avonturenboek) tekenen hun knoppen in **één gedeelde
buffer**. De klik-route las die buffer uit. Zolang het scherm dat je ziet net getekend is, gaat dat
goed — maar een scherm dat je heropent terwijl zijn plaatje nog in de cache zit, tekent niet
opnieuw. Dan klik je op de onzichtbare knoppen van het vorige scherm, en omdat de panelen niet even
breed zijn (1010 tegenover 1200), landt élke klik ook nog eens verschoven.

Er was al een `UiRouter` gebouwd om precies dit op te lossen, met een register per scherm. Alleen
werd dat register nooit gevuld: `Snapshot` werd nul keer aangeroepen. Elk boeken-scherm meldt zijn
knoppen nu onder zijn eigen naam, en de klik-route leest daaruit in plaats van uit de gedeelde
buffer.

De test die hierover ging, eiste letterlijk dat de klik-route **de gedeelde buffer** teruggaf. Die
legde dus het kapotte mechanisme vast en is vervangen.

### 3. Het pauzemenu bouwde "Spelen" te klein

De hoogte van het pauzepaneel stond als los getal op zes plekken. De test-samples bouwden pagina
"Spelen" 860 pixels hoog, maar de échte spelroute bouwde hem altijd 560 hoog. Alles daaronder viel
buiten de bitmap: **zes van de twaalf spelletjes waren onzichtbaar en onklikbaar**, waaronder
`LAN samen spelen`. Op de samples zag het er prima uit, want die gebruikten de goede hoogte.

Nu berekent één functie die hoogte, en gebruiken alle zes de plekken hem.

### Afsluiten staat waar je hem zoekt

`Spel afsluiten` zat alleen achter de tegel Instellingen. Hij staat nu ook onderaan de pagina die
je ziet als je Esc drukt — rustig vormgegeven en onderaan, zodat je hem kunt vinden zonder hem per
ongeluk te raken.

### Wat NIET geverifieerd is

- Geen echte sessie met muis en toetsenbord: de audits rekenen de muispositie na, ze bewegen geen
  echte muis.
- Geen tweede computer: LAN is niet met twee machines getest.
- De emoji-controle is een handmatige lijst. De pauzemenu-iconen stonden er niet in en werden dus
  nooit gecontroleerd; ze zijn nu toegevoegd en de controle is bewezen door er expres een kapotte
  emoji in te zetten (1 FAILURE) en die weer weg te halen (OK).

## 2026-07-26 (1) - De hele UI vanaf nul, en drie dingen die geen opmaak waren

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.26.1`
- Grootte: 52.328.951 bytes
- SHA256: `E5282B2CD9FD784D1866DD9D0152E836CB90B0A836928FA166A2A654B9A500A2`
- Sleutel-check 0x op beide exes. ZIP 46.747.307 bytes,
  SHA256 `D627B4EAA14BF60318BF93F45C00951544901ED370FE76719E09E25833145F85`. Online gezet 26-07-2026 18:11.
- Tests op deze build: de 25 BRON-LEZENDE tests (SettingsTests, CraftingTests, WeatherTests) groen
  plus BUTTON COVERAGE OK. Die groep brak deze sessie drie keer door UI-wijzigingen en draait in
  2 seconden. De volledige suite (1271) was groen op de vorige build; op deze build is hij op
  verzoek NIET opnieuw gedraaid.
- Koud gestart in een LEGE map: zelftest 240 frames op 44 fps, wereld + save + instellingen
  aangemaakt, welkom-scherm bij eerste start, nul fouten in het log.

> **Let op bij samen spelen:** het netwerkprotocol ging van 8 naar 9 omdat de extra-vormen mee
> moeten reizen. Beide computers hebben dus deze nieuwe versie nodig; een oude build wordt
> netjes geweigerd in plaats van een kapotte verbinding te maken.

Achttien schermen en zes HUD-onderdelen zijn niet opgepoetst maar opnieuw ontworpen, één per keer,
met dezelfde werkwijze: eerst het screenshot bekijken, dan vanaf nul opbouwen, dan het screenshot
**opnieuw** bekijken. Die laatste stap ving in bijna elk scherm iets dat anders was opgeleverd.

### 🎒 Elf extra-vormen voor je poppetje — en de ander ziet ze

De vraag was of de ander iets anders ziet als je je poppetje aanpast. **Ja**: kleur, hoed, huid,
haar, ogen, bril en cape reisden al mee in het netwerkpakket en worden bij de ander getekend.

Maar de editor had zeven KLEURENrijen en verder niets. Elk poppetje had daardoor precies hetzelfde
silhouet en was alleen anders geverfd. Daarom nu een extra-slot met elf vormen die je omtrek echt
veranderen: **rugzak, vleugels, hoorntjes, staart, antenne, sjaal, zwaard op de rug, ballon,
propeller en zwemband** — elk in acht kleuren.

De vleugels klappen mee met je looptempo, de staart zwaait tegengesteld aan je benen, en de
propeller tolt rond.

Bij het testen bleken vier vormen te zwak, en dat kwam alleen boven doordat ik elke vorm APART en
dichtbij fotografeerde in plaats van tien poppetjes naast elkaar: de hoorntjes waren 0,05 breed en
verdwenen volledig in het haar, de staart zat op heuphoogte tussen de benen en was onvindbaar, de
propeller was één blad van 0,02 dik — een streepje — en de vleugels waren platte panelen op
schouderhoogte die op schouderstukken leken. Alle vier steviger gemaakt.

Het netwerkprotocol ging van 8 naar 9. Dat moest: een oude client zou de twee nieuwe bytes lezen als
het begin van de block-delta-teller en de hele stream kwijtraken. De extra-vormen zitten in het
snapshot als een EIGEN sectie met marker, niet achter het speler-record — dat record wordt herkend
op bytelengte, en die telling bevat ook de namen-sectie erachter.

### Drie dingen die geen opmaak waren

**1. Het dagboek en het avonturenboek tekenden NIETS.** `SetDiaryImage` en `SetAdventureBookImage`
bestaan in de renderer, maar werden nergens in `Program.cs` aangeroepen. De textuur bleef `null` en
`DrawOverlay` stopt daar meteen. Ondertussen zet `CycleDiary` wel `DiaryOpen = true`, en dat staat in
`RequiresFreeMouse`: druk je F4, dan komt je muis vrij, kun je niet meer rondkijken, en zie je
niets. Hetzelfde voor het avonturenboek, dat je via het opdrachten-scherm opent. Dat bleef verborgen
doordat `Diary.png` en `AdventureBook.png` van 24 juli waren en niet meer opnieuw werden
gegenereerd — de contact-sheet verwachtte ze, dus er viel niets op. Beide schermen bestaan nu echt.

**2. De sample-check meette één verticale lijn.** `CheckVisualSample` sampelde elke `(w*h)/900`-ste
pixel met één lineaire stap. Bij 700×900 wordt die stap exact 700 — de breedte — dus hij las alleen
de pixels op `x=0`: een streep achtergrondkleur. Dat gaf `colors=1 contrast=0 FAIL` op een scherm
dat er prima uitzag. Erger: bij andere afmetingen loopt die stap als een diagonaal door het beeld en
raakt toevallig genoeg kleuren, dus dezelfde fout kon een **écht leeg scherm missen**. De check
sampelt nu een raster van 30×30 punten over het hele oppervlak.

**3. Zeven blok-uitleggen vielen stil terug op een fallback.** In het Bouwboek gebruikte mijn
uitleg-lookup verzonnen namen: "Knop" in plaats van "Drukknop", "Band naar noord" in plaats van
"Lopende band (N)", en zo ook Nacht-sensor, Signaalblok (draad), Sloper (machine), Vertrager
(machine) en Note Do (C). Die zeven blokken kregen dus "hier kun je iets mee doen". Gevonden door
pagina 2 als sample toe te voegen — die bestond wel maar was nooit gerenderd.

### Wat er structureel mis was aan de schermen

Drie patronen kwamen overal terug:

1. **Lijsten losse tekst waar kaarten hoorden.** 38 mijlpalen als grijze regels, 210 recepten in
   vijf kolommen micro-tekst die over de kolomgrens heen liep, 135 dieren als `✓ Naam (loopt)`,
   foto's als *bestandsnamen*.
2. **De tweede regel besteed aan informatie die de kop al gaf.** Onder "Knipper-timer" stond
   "Interactief" — de tab erboven zei dat al. Nergens stond wat het ding *doet*.
3. **Vaste paneelhoogtes.** Bij nul ontdekte dieren 330px leegte, bij één opdracht 370px, in de
   Verzamelkast 70px, op Instellingen-Spel 470px, in het praat-scherm 500px.

### Per scherm

- **📊 Stats** — hero met je punten en sterren groot; de 28 tegels toonden allemaal "0", dus het
  getal dat écht telt zag er precies zo uit als "Wolk-stuiters".
- **📋 Opdrachten** — kaart in de gedeelde taal; was een paarse vulling met een 2px felblauwe rand.
- **🐾 Dieren-boek** — hero met voortgangsbalk, kaarten met gedrag-icoon en tip, getamde dieren met
  een roze streep en hun naampje, en lege *vakjes* i.p.v. 135 regels `???`.
- **💎 Verzamelkast** — hero met voortgang; gevonden schatten houden hun vindplaats als herinnering.
- **🏆 Mijlpalen** — alle 38 passen nu (er waren er 11 zichtbaar), en elke mijlpaal zegt **wat je
  moet doen**: "loop naar een dier en druk T", "spring van hoog en houd spatie vast".
- **📖 Receptenboek** — bladeren, 24 per pagina; ontdekt toont het volledige recept, nog niet
  ontdekt alleen de eerste grondstof. Kreeg ook de navigatiebalk die het miste.
- **📷 Fotoboek** — **echte thumbnails** i.p.v. bestandsnamen.
- **📘 Bouwboek** — elk blok vertelt nu wat het doet; de soort zit in de accentstreep.
- **🎯 Doelen & spelletjes** — twee tabbladen i.p.v. drie dingen door elkaar; spelletjes met uitleg
  en met de stap die ontbrak: hoe je meer spelers krijgt.
- **🌐 Samen spelen** — hero met verbindingsstatus, joincode groot, en een spelerslijst die er
  helemaal niet was.
- **⚙️ Instellingen** — palet gelijkgetrokken; het blok dat het hele Stats-scherm herhaalde is weg.
- **❓ Hulp** — drie tabbladen met een naam i.p.v. "1/3", toetsen in monospace vakjes, en de
  diagnose-pagina heet nu "Voor grote mensen" (daar stond een pad naar `C:\Users\...\source\repos`).
- **👋 Welkom** — had een paarse gradient en knoppen met scherpe hoeken; alle vier de pagina's
  worden nu als sample bewaard (alleen p3 werd opgeslagen, dus p0-p2 bleven stil in de oude stijl).
- **💬 Praten** — antwoord-ballon was crèmekleurig met een oranje rand; keuzes nu kaarten met het
  cijfer in een toets-vakje.
- **📦 Kist** — had **nooit een sample** en was dus nooit gecontroleerd; aantallen staan nu
  uitgelijnd in monospace vakjes en de kolomkoppen vertellen zelf de richting.
- **🧪 Combineren** — het resultaat stond los in de lucht zonder kader, en de naam schoof op zodra
  je klikte.
- **👤 Karakter Editor** — sectiekoppen liepen dwars over de kleurvakjes (emoji-glyphs zijn hoger
  dan tekst).
- **📔🗺 Dagboek en Avonturenboek** — zie hierboven: die bestonden niet.

### HUD

- **Interact-hint en melding-toast** — nooit als sample gerenderd; de toast had een 3px felblauwe
  rand, de laatste in het spel.
- **Minimap** — een 0.012 dikke felgele balk eromheen; nu een donkere glasrand met een dunne
  amber lijn.
- **Vizier** — bekeken en met opzet niet aangeraakt: het wisselt van kleur naar wat je aankijkt
  (wit, groen bij een blok, goud bij iets waar je op kunt klikken). Dat is functionele feedback.
- **Voertuig-zoeker** — "Tweede vliegtuig — zoek-avontuur!" liep dwars over de afstand en de pijl.
- **Hotbar-categorietabs** — de actieve tab gebruikte de categorie-kleur als kader, terwijl het
  gekozen slot amber is: twee signalen voor hetzelfde begrip, naast elkaar op dezelfde balk.

### Eén taal voor alle knoppen

Alle vijf knop-helpers spreken nu dezelfde taal: `DrawButton`, `DrawButtonPause`,
`DrawButtonWelcome`, `DrawButtonInline` en `DrawButtonHelp`. Ze hadden elk hun eigen stijl — scherpe
hoeken, 3-4px randen, felgroen voor "actief", felblauw voor de rest. Eén wijziging in `DrawButton`
haalde in één keer het felgroen uit instellingen, LAN, pauze en alle bladerbalken. **Felgroen en
felblauw komen nu nergens meer voor.**

### Twee nieuwe controles in `--button-test`

- **Emoji-tofu.** Twee eerdere versies van deze check waren stil nutteloos: vergelijken met een
  codepoint zonder glyph faalde omdat dat *niets* rendert terwijl tofu een *blokje* is, en kijken
  of de glyph gekleurd is faalde omdat GDI+ `🐾` monochroom rendert. Wat werkt: `⛰️` ontbreekt zelf
  in Segoe UI Emoji en is dus de referentie. Bewezen door hem tijdelijk in de lijst te zetten.
- **Losse variation selector.** Emoji in de BMP (`⚙ ✈ ❄ ⛏ ☁`) worden gevolgd door U+FE0F. De
  icoon-extractie pakte alleen het eerste teken, dus de selector bleef in het label staan en
  tekende als leeg blokje: `□ Instellingen openen`.

Die checks vangen losse emoji, maar níet dat een emoji in het **verkeerde font** wordt getekend.
Dat ging drie keer mis (`🐾`, `🎒`, `⭐`) en bleef elke keer handwerk.

### Eén bron voor de spelletjes

De spelletjes stonden **dubbel**: in het pauzemenu met uitleg, op het doelen-scherm als naamloze
knopjes. Die twee lijsten liepen al uit elkaar — "Race" stond alleen op het ene scherm, "Koning van
de berg" heette op het andere "Koning". Nu één `SpelLijst()` die beide gebruiken.

### Wat de tests bewaakten en ik was kwijtgeraakt

Bij het herontwerp van het doelen-scherm faalde een oude test. Die bleek drie dingen te bewaken die
verdwenen waren: de sneltoetsen 1-8 stonden niet meer in beeld, de knoppen "Actief" en "Aanrader"
waren weg, en de pauze-knop om de HUD-drukte te wisselen was **al bij een eerdere commit weggevallen
zonder vervanging**. Alle drie terug.


## 2026-07-25 (5) - Lampen werken echt + klik-bug structureel opgelost

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.25.5`
- Grootte: 52.309.732 bytes
- SHA256: `896FDCFC018AABF8CDD38C3098F6381A40DA915CB5BA90E7F569D37A27DB8309`
- Sleutel-check 0x op beide exes. Volledige suite 1271/1271.

### 💡 Lichteffecten deden niets — drie oorzaken

Bevinding: "ik zie geen effect met een gloeiblok erbij of niet."

1. De lampen-scan stopte op Y=32, maar de grond ligt op 34-45. Een Gloeiblok in een gewoon
   huis werd dus **nooit gezien** door het lichtsysteem — terwijl de kamer sinds het
   diepte-donker wel donker is.
2. Het bereik was 2 blokken: praktisch onzichtbaar. Nu 7 — een lamp verlicht een kamer.
3. Licht stopte bij chunkgrenzen. Een lamp net over de grens deed niets aan jouw kant.

Alle drie hersteld; het plaatsen van een lamp her-tekent nu ook de buurchunks. **Nog niet
opgelost:** een lamp buiten in de nacht — dat donker komt uit een globale dag/nacht-factor
in de shader, niet uit blok-licht.

### 🧭 "Klikken werkt niet" — de echte oorzaak

Er waren **drie verschillende prioriteitsvolgordes** voor "welk scherm is actief": de
renderer, de hover-code en de klik-code hadden elk hun eigen. Reproduceerbaar: kist open,
dan H → je *ziet* Statistieken maar elke klik gaat naar de onzichtbare kist-knoppen. En
sneltoetsen sloten elkaar niet, dus die dubbele toestand ontstond vanzelf.

Nieuw: één `UiRouter`. Maximaal één scherm open (zelfhelend per frame), hover én klik kijken
naar hetzelfde actieve scherm in renderer-volgorde, en Esc sluit via dezelfde route. De 18
tekenfuncties zelf zijn hergebruikt — het palet was goed, het skelet niet. Analyse in
`UI-INVENTARIS.md`.

## 2026-07-25 (4) - 65 nieuwe objecten, donker onder de grond, botenvloot

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.25.4`
- Grootte: 52.307.282 bytes
- SHA256: `BB61B41B501A8D9D353F9BBF65B79A38F8008708556630185B057ADB1E99DAB7`
- Sleutel-check 0x op beide exes.

### 🪑 65 nieuwe objecten — model, actie en te maken

- **30 meubels**: kruk, schommelstoel, hangmat, zitzak, picknicktafel · kroonluchter,
  vloerlamp, nachtlampje, kaarsenstandaard, vuurkorf · koelkast, fornuis, broodrooster,
  waterkoker, gootsteen · schommel, glijbaan, zandbak, voetbaldoel, dartbord, flipperkast,
  tafelvoetbal, poppenhuis, bordspel, trampolinetje · schilderij, spiegel, plantenbak,
  staande klok, aquarium.
- **15 buiten**: tuinkabouter, vogelbadje, vogelhuisje, voedertafel, fontein, windmolentje,
  vogelverschrikker, tuinhek, kruiwagen, ladder, vlaggenmast, tentje, moestuinbak, waslijn,
  barbecue.
- **20 algemeen**: boekenplank, wandkompas, prullenbak, kapstok, schoenenrek, speelgoedkist,
  muziekstandaard, trommeltje, telescoop, wereldbol, schoolbord, tekentafel, spaarpot,
  fotolijstje, deurbel, sleutelrek, postvakje, badeend, wasmand, koffiehoek.

Elk object heeft een eigen 3D-model (geen kubussen of platte plaatjes) en doet iets. Sommige
reageren op de wereld: de telescoop weet of het nacht is, het kompas noemt je positie, de
spaarpot je sterren-stand.

### 🪑 Zitten is nu echt uitrusten

Je huisdieren komen erbij zitten, er stijgen hartjes op, en na 25 seconden ben je uitgerust:
+1 ster (één keer per dag). Elk zitmeubel heeft z'n eigen zin.

### 🔦 Onder de grond is het donker

De diepte bepaalt het licht in vier trapjes — niet meer een vaste hoogte, waardoor een kelder
klaarlicht bleef en lampen zinloos waren. **Licht-effecten aan/uit** staat als knop in het
pauzemenu: uit betekent overal hetzelfde licht en dus soepeler draaien.

### ⛵ Botenvloot, 🎁 verrassingsstenen, 🔧 instelbaar bereik

Vier bootsoorten met eigen vaargevoel · beloningen die je alleen kunt vinden, niet maken ·
signaalbereik per schakelaar instelbaar (4-18m, Shift of Ctrl + rechtsklik) en een lopende
band die naar een schakelaar luistert.

### 🔌 Bestaande werelden worden bijgewerkt

Nieuwe dingen kwamen alleen bij het maken van een wereld. Wie al een wereld had kreeg ze
nooit. Nu vult een upgrade-stap na het laden aan wat mist, precies één keer.

### 🖱️ Muis en bouwen

De muis pakt zichzelf terug na een scherm (je moest eerst klikken, en die klik landde in de
wereld) · een echte pijl-cursor · doorbouwen bij vasthouden alleen naar een andere plek.

## 2026-07-25 (3) - Troon, boten, verrassingen en een UI die één geheel is

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.25.3`
- Grootte: 52.298.258 bytes
- SHA256: `17F0A580984AEEA13F22397666976BA0202EC0115D0CF55E8AC515244A4D8F60`
- Self-contained, single-file; sleutel-check 0x op beide exes.
- Volledige suite: 1250/1250 groen. Klik-doorloop: 10 schermen, 118 knoppen.

Naar aanleiding van een lange lijst bevindingen uit het echte spelen.

### 🎯 Wat kan je sparen

Op het statistieken-scherm staat nu één blok met alles wat je kunt sparen: wat het is, hoe ver
je bent, en **wat je ervoor doet** (met de toets erbij). Sterren, schatten, dieren, recepten,
mijlpalen, verrassingen, foto's en feestjes stonden eerder elk op een ander scherm.

### ⚠️ Nog open

De spelletjes hebben alleen een **naam** ("Koning", "Verstop", "Naar de top"). Er staat nergens
wat een spel inhoudt, hoe je wint, of hoeveel spelers je nodig hebt. Dat vraagt een herindeling
van het spelletjes-scherm: rijen met uitleg in plaats van een rij kleine knopjes.

### 🎮 Nieuw om te doen

- **👑 Troon** — de koninklijke stoel voor bij je kasteel. Je maakt hem met een **Kroontje** aan
  de werkbank (niet uit de bouwbalk). Erop zitten geeft een plechtig deuntje, gouden vonken en
  je getemde dieren komen buigen. Eerste keer +2 ⭐.
- **⛵ Botenvloot** — er was één boot; nu liggen er vier soorten met een eigen formaat én een
  eigen vaargevoel: roeibootje (wendbaar), zeilboot, vissersboot en de grote veerboot (het
  hardst, maar traag op gang en draait log). Je stapt in de boot die het dichtst bij je ligt;
  de boot die je verlaat blijft liggen waar je hem achterlaat. De vloot gaat mee in de save.
- **🎁 Verrassingsstenen** — beloningen die je alleen kunt *vinden*. Ze staan niet in de
  bouwbalk en er is geen recept voor. Ze zitten onder de grond verstopt: graven dus. Sla er een
  stuk voor confetti en +2 ⭐, en elke vijfde is een jackpot met +5 ⭐.
- **💃 Dansfeest** — speel het hele liedje op de muziekdoos af (zes noten) en er volgt een
  feestje: confetti en alle getemde dieren binnen 14 m dansen mee.
- **🔧 Instelbaar bereik** — het signaal van een schakelaar reikte altijd precies 8 meter. Nu
  stel je per schakelaar, knop, drukplaat of sensor in hoe ver het draagt: 4, 8, 12 of 18 meter.
  Hurken (Shift) + rechtsklik. Een **lopende band** met een schakelaar binnen bereik luistert
  daar nu ook naar.

### 🐛 Wat er stuk was

- **Muispijl bleef weg.** `Cursor.Hide()`/`Show()` van Windows is een teller, geen schakelaar.
  Liep die één keer scheef, dan bleef de pijl voorgoed onzichtbaar — en dus kon je nergens op
  klikken, ook niet op de sluitknop. Opgelost, plus het spel tekent nu zijn eigen pijl.
- **Bomen in je eigen huis.** Er verschijnt elke 1-2 minuten een zaailing op gras bij je in de
  buurt; de enige eis was "lucht boven gras", en een grasvloer met muren voldoet daaraan. Nu
  groeit er alleen nog iets in echte natuur (vrije lucht én geen gebouwd blok binnen 3 meter).
- **Kisten waren massieve kubussen.** Ze stonden als kolom-blok geregistreerd en vulden de hele
  cel. Nu een echt kistje: onderbak, deksel met naad en een gouden slotje.
- **Waterdieren op daken.** Bij vliegen/varen werden getemde dieren op het dichtstbijzijnde
  draagvlak gezet — soms een dak. Zwemmers zijn uitgezonderd en er is één vangnet dat elke
  zwemmer terugzet op het water.
- **Instappen negeerde hoogte.** Je stapte in een luchtballon die 30 meter boven je hing. Nu
  telt de hoogte mee.
- **Het waterdieren-baken** stond óp het wateroppervlak en was dus onzichtbaar; staat nu 16 m
  hoog boven het meer.
- **Nacht overslaan in LAN** gebeurde zodra één speler in bed lag. Nu pas als *iedereen* ligt,
  met "2 van de 3 liggen in bed" in beeld. En N indrukken werkte 's nachts overal zonder bed;
  bij samen spelen moet je nu echt bij een bed staan.

### 🖥️ UI als één geheel

- **Twee families.** Alles wat over *spelen* gaat (Doelen, Opdrachten, Dieren, Verzamel,
  Mijlpalen, Recepten, Stats) deelt nu een navigatiebalk: één klik naar elk ander boek, met het
  huidige scherm goud opgelicht. Het pauzemenu is verdeeld in **SPELEN** en **INSTELLINGEN**.
- **≡ Menu-knop** staat altijd rechtsboven in beeld, met "Esc" erbij.
- **Zes doodlopende schermen** hadden maar één knop (sluiten) — daar viel niets te klikken. De
  klik-doorloop ging van 82 naar 118 knoppen.
- **Grondstoffen-kolom** links stond standaard aan: negen icoontjes zonder aantallen, niet
  klikbaar. Staat nu uit (weer aan te zetten bij instellingen).
- **Spelletjes** stonden zonder kopje onder de lijst en werden daardoor niet herkend.
- Foto-galerij toonde een rauw `C:\Users\...`-pad; chat tekende altijd vier lege keuzevakken.

### 🔍 Hoe dit getest is

Nieuw: een **systematische klik-doorloop** die per scherm controleert dat elke knop binnen het
paneel valt (een knop buiten beeld is onklikbaar) en dat de sluitknop het scherm ook écht
sluit. Die draait bij elke wijziging mee.

## 2026-07-25 (2) - Dansfeest, LAN-fix en schermen die nooit gecontroleerd waren

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.25.2`
- Grootte: 52.289.443 bytes
- SHA256: `48CDDC5A8F0B6592F8EA429F5790FDA29CC80E9F4917C585396FA0403E139BF2`
- Self-contained, single-file; sleutel-check 0× op beide exes.

### 💃 Dansfeest bij de muziekdoos

- De muziekdoos speelde één noot per klik en deed verder niets. Nu is het een dóél: speel de
  zes noten af (do–mi–sol–hoge do–sol–mi) en er volgt een feestje.
- Bij de vijfde noot: "nog één keer voor een feestje!" — zo zie je waar het naartoe gaat.
- Het deuntje klinkt in z'n geheel, confetti spuit uit de doos, en **alle getemde dieren
  binnen 14 meter gaan 8 seconden dansen** ("3 dieren dansen mee 🎉").
- Zonder dieren nog steeds leuk, met een tip om er een te temmen.
- +3 ⭐ de allereerste keer; daarna niet meer, anders klik je sterren bij elkaar.

### 🔌 LAN: herverbinding werd soms niet geteld

- Viel de verbinding weg vlak na het verbinden, dan boekte de achtergrond-watchdog het
  herstel als "eerste verbinding": geen telling, en de melding "verbinden met…" in plaats
  van "verbinding kwijt — opnieuw verbinden…". Juist bij een wifi-hik wil je dat zien.
- Opgelost; de nieuwe test faalt aantoonbaar zonder de fix.

### 🖥️ Schermen die nooit opnieuw gerenderd werden

De controle-contactsheet werd samengesteld vóórdat de meeste schermen opnieuw getekend
waren, dus die liep structureel één ronde achter. Daardoor bleven deze fouten staan:

- **Mijlpalen** — de lijst liep dwars door "Druk op F8 om te sluiten". Nu netjes afgekapt,
  je behaalde mijlpalen bovenaan en "… en nog N om te ontdekken".
- **Foto-galerij** — toonde een rauw `C:\Users\…`-pad. Nu een bruikbare tip.
- **Chat** — tekende altijd vier keuzevakken, ook als er niets te kiezen viel.
- **LAN-lobby** en **Welkom** stonden in een eigen kleurenthema; nu dezelfde look.
- Afgekapte letterstaarten ("regenboog", "stappen") hersteld.

## 2026-07-25 - Machines, werkplaats, verzamelen dat écht loont

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.25.1`
- Grootte: 52.288.445 bytes
- SHA256: `7ac3fa8318934f6126802f0d579c2975ea53dca4f66d494df48e06abb49dc7a4`
- Self-contained, single-file; `standaloneCheckStatus=OK`.

### 🤖 Machines bouwen met automatiseer-blokken

- **Bouwer** — zet bij een signaal vanzelf blokken bóven zich neer (tot 8 hoog). Rechtsklik kiest
  wélk blok: planken, steen, glas, wol, bakstenen, taart…
- **Sloper** — haalt bij een signaal juist het blok erboven weg.
- **Vertrager** — geeft het signaal pas na 1/2/3/5 seconden door (rechtsklik wisselt).
- Combineer ze met alles wat al bestond (schakelaar, knop, drukplaat, nacht-/regensensor,
  bewegingsmelder, knipper-timer, signaaldraad): knipper-timer + Bouwer = een toren die zichzelf
  bouwt; drukplaat + Vertrager + Sloper = een doorgang die vanzelf weer opengaat.
- Instellingen blijven bewaard in je save.

### 🏭 Werkplaats-upgrades

- Alleen een werkbank levert 1 stuk per keer op. Zet er een **oven** bij: 2 stuks. Ook een **kist**
  erbij: 3 stuks ("x3 — goede werkplaats!"). Een échte werkplaats bouwen loont dus.

### ✨ Verzamelen dat écht loont

- Drie **speciale blokken die je alleen door craften krijgt**: Sterrentrofee, Regenboogkristal en
  Feestlampion. Die staan bewust niet in de bouwbalk.
- **Receptenboek geeft nu hints**: bij elk recept zie je de eerste grondstof ("030 Beitel = Hout + ?"),
  bij ontdekte recepten allebei. Geen blind combineren meer.
- **Huis-opdracht "Richt je kamer in"**: zet 3 verschillende meubels neer (8 sterren).
- **Kamer-feestje**: bij 3, 5 en 7 soorten meubels om je heen volgt confetti, fanfare en dansende
  huisdieren.

### 🐾 Dieren-boek en Verzamelkast eindelijk begrijpelijk

- Het dieren-boek toonde 135 vraagtekens zonder uitleg. Nu staan ontdekte dieren bovenaan en legt
  het uit hoe je het vult; heb je er nog geen, dan zie je een vriendelijke uitleg-kaart.
- De Verzamelkast legt uit wat de "???" en de tips betekenen.

## 2026-07-24 - UI-vernieuwing: moderne look, menu's die lekker werken, LAN in 2 stappen

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.24.14`
- Grootte: 52.284.778 bytes
- SHA256: `6253b808aab7ab33cd7887f248003da553aaba44f990fd782a97dcc65d1be0bf`
- Self-contained, single-file; `standaloneCheckStatus=OK`.

### 🖱️ Nieuw: aanwijs-modus met Esc

- **Esc** zet nu de aanwijs-modus aan: de muis is vrij en de wereld staat stil, maar de HUD blijft
  gewoon in beeld. Je kunt direct op de **kompas-pijl** klikken om te wisselen waar hij naar wijst,
  op de **hotbar** klikken, en met de groene **"Doorgaan"**-knop (of nog eens Esc) speel je verder.
- Bouwen/breken is in deze modus geblokkeerd, zodat je niet per ongeluk de wereld verandert.

### 🖱️ Menu's werken nu zoals je verwacht

- **De wereld bevriest zodra een klikbaar scherm openstaat** (spelletjes, LAN, kist, blokkenboek,
  instellingen, dagboek...). Voorheen bevroor alleen het pauzemenu, waardoor je tijdens elk ander
  menu gewoon doorliep/viel en dieren doorliepen. In LAN bevriest het bewust niet.
- **Dagboek, Avonturenboek en Verzamelkast** zijn nu écht met de muis bedienbaar; hun sluitknop
  deed voorheen niets.

### 🖧 LAN in 2 duidelijke stappen

- Grote knoppen **"STAP 1: Host starten"** en **"STAP 2: Host zoeken"** naast elkaar, met uitleg
  in twee stappen. Het IP-adres past nu netjes ("Jouw IP: 192.168.14.93 : 7757") en de
  verwarrende knopnummers zijn weg (sneltoetsen blijven werken).

### 🎨 Moderne 2026-look

- Eén rustige knop-stijl op álle schermen: vlakke donkere vulling, dunne subtiele rand, ruimere
  afronding — en accentgroen alleen op de belangrijkste knop. Weg met de dikke omlijningen.
- Het pauzemenu heeft nu ook een **"Pijl: [doel] →"-knop** waarmee je direct wisselt waar de
  kompaspijl naar wijst; het menu blijft open zodat je kunt doorklikken.
- De pauzeknop heet nu **"Spelletjes & doelen"** (was "Opdrachten & actie" — leek te veel op de
  andere "Opdrachten"-knop en verborg dat de spelletjes daar zitten).

### 🎮 HUD frisser op 1920×1080

- Het blok in je hand was enorm (bedekte ~40% van het beeld) en is nu compact in de hoek.
- De hotbar is één strakke balk met achtergrond, inclusief de categorie-tabs.

## 2026-07-24 - Grote "juice"-ronde: wedstrijden echt leuk & gezellig

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.24.12`
- Grootte: 52.283.675 bytes
- SHA256: `2cc840dfb567da8182db2569764ef7806c798c031affc59c6ea2477dbafea637`
- Self-contained, single-file; `standaloneCheckStatus=OK`.

Autonome ronde om alle spellen leuker, gezelliger en beter speelbaar te maken:

- 🔔 **3-2-1-aftelling** met tik-piepjes + confetti-ring bij GO (scoren telt pas bij GO).
- ⏰ **"Nog 10/5 seconden!"** met een spannend piepje aan het einde van elke wedstrijd.
- 🏅 **Live stand** ("jij Xe van N") in de races, zodat je ziet of je voorligt.
- 🎉 **Aanmoedigingen** bij mijlpalen ("over de helft!", "nog 1 checkpoint!", "lekker bezig!").
- 🎊 **Feestelijke winst** — confetti-regen rond de speler + fanfare.
- 🚀 **Speed-boost** bij elk parcours-checkpoint (zippy, belonend).
- 🐾 **Huisdiertjes juichen mee** bij GO en bij een winst (gezellig).
- 👑 **Koning van de heuvel** geeft sterretjes + tik per seconde terwijl je de cirkel houdt.
- 🤝 **Co-op winst** ook feestelijk (confetti + dieren juichen).
- 🥇🥈🥉 **Eind-podium** bij verzamelrace en koning van de heuvel (multiplayer-stand).
- 🏆 **Persoonlijke records** (deze sessie) voor verzamelrace en koning — "Nieuw record!".
- 🏗️ **Bouwwedstrijd** krijgt dezelfde juice (aftelling, tijd-warning, dieren juichen).
- 🫧 **Bakens ademen en dobberen** (checkpoint/top/gems/koning) — makkelijker te vinden.
- 🌟 **Deelname-ster**: ook als je niet wint krijg je een ster + "Goed geprobeerd!".
- 🎵 **Winst-deuntje** en start-signaal (echte melodietjes i.p.v. één piep).
- 💬 **Vrolijke variatie** in de berichten, zodat het niet elke keer hetzelfde zinnetje is.
- 🏆 **Records blijven bewaard** (verzamelrace + koning) en het verzamelrace-record staat in het
  statistiekenscherm — leuk om te verbeteren.
- 👀 **Spannende melding** als een andere speler de koning-cirkel pakt ("snel erheen!").
- 🔁 **"Nog een keer?"-uitnodiging** na afloop van een spel, met de tip dat F1 de spelletjes opent.
- 👀 **Plekwissels** in de parcours-race ("Ingehaald!" / "Jij leidt de race!").
- 💞 **Gezellig samen**: hartjes als jullie dicht bij elkaar spelen (rustige cooldown).

## 2026-07-24 - Vier nieuwe wedstrijden, verstoppertje-hints, muis in menu's, 3 spelers

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.24.7`
- Grootte: 52.280.471 bytes
- SHA256: `8f6437676e9690efaf42b84964fda0944939374ddd3b8c619ac5b74c19f3da93`
- Self-contained, single-file; button-coverage OK (geen knopoverlap/tekstoverloop).

### 🏁 3-2-1-GO — alle wedstrijden leuker

- Elke wedstrijd begint nu met een korte 3-2-1-GO-aftelling: iedereen kan klaarstaan en scoren
  telt pas bij GO (met een vrolijke GO-knal + geluid). De HUD toont "Klaarstaan… 3..2..1" en "GO!".

### 🔍🧭 Verstoppertje: hint-pijl + krimpende arena

- De zoeker krijgt PERIODIEK een pijl (richting + afstand) naar de dichtstbijzijnde verstopper:
  ~3s aan, dan een stilte die van 12s naar 3s krimpt (steeds minder rust voor verstoppers).
- Een ARENA (verstop-gebied) krimpt van ~55m naar ~14m; wie erbuiten zit wordt continu verklikt
  (pijl heeft voorrang), zodat iedereen naar het midden moet. Arena-ring + hint-baken in beeld,
  HUD toont de arena-straal en de pijl-afstand (of 'geen pijl').

### 🏁 Vier nieuwe startbare wedstrijden (Games-scherm, F1)

- **Parcours-race**: ren via alle checkpoints in volgorde; wie 't eerst is, wint.
- **Naar de top**: klim/bouw omhoog naar het gouden baken; eerste boven wint.
- **Verzamelrace**: pak de meeste edelsteentjes voor de tijd om is.
- **Koning van de heuvel**: blijf 't langst in de gouden cirkel.
- Alle vier werken met alle spelers (splitscreen én LAN via gedeelde posities), met kompas-pijl,
  wereld-bakens, HUD-voortgang en wederzijdse uitsluiting. Een nette tweede knoppenrij; de
  actie-lijst toont nu 6 rijen zodat alles past (geen overlap, labels passen).

### 🖱️ Muis in menu's & 3 spelers

- Bevestigd: de muis wordt in ÁLLE klikbare schermen vrijgegeven (pauze, games, LAN, kist,
  blokkenboek, instellingen, verzamelkast, dagboek, avonturenboek...), dus je kunt overal klikken.
- Alle wedstrijden (race, bouwwedstrijd, co-op, verstoppertje, en de 4 nieuwe) werken met 3+
  spelers via splitscreen of LAN. De losse mini-spelletjes (sterren, blaadjes...) zijn solo-plezier.

## 2026-07-24 - Slimme circuit-blokken, verstoppertje en blokkenboek-plaatjes

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.24.4`
- Grootte: 52.276.528 bytes
- SHA256: `71460b37e1165b8adba7b67e56b42603c90b96ea82c8fe278794b34d3def8565`
- Self-contained, single-file, `asInvoker`; `standaloneCheckStatus=OK`.

### 🖱️ Rechtsklik & duidelijkheid

- Rechtsklik op een interactief blok (schakelaar, knop, kist, luik, oven, bom, bed, stoel)
  bedient nu ALLEEN dat blok — nooit meer per ongeluk bouwen, ook niet bij vasthouden.
- Kijk je naar zo'n blok, dan legt een korte hint uit hoe het werkt.
- Het blokkenboek (toets `` ` ``) toont nu een plaatje bij elk blok/bouwwerk.

### 🌙⏱️🌧️🚶🔌 Slimme blokken die samenwerken

Nieuwe automatische circuit-bronnen die nabije lampen/deuren aansturen (naast schakelaar/
drukplaat/knop): **Nacht-sensor** (lampen vanzelf aan 's nachts), **Knipper-timer** (knipperende
lampen), **Regensensor** (bij regen), **Bewegingsmelder** (speler dichtbij) en **Signaalblok**
(een 'draad' die het signaal doorkoppelt, zodat je lampen ver van de schakelaar aanstuurt).

### 🔍 Nieuw spelletje: Verstoppertje

- Startbaar via het Games-scherm (knop "Verstop"): de lokale speler zoekt, de andere spelers
  (LAN + splitscreen) verstoppen zich. Houd iemand 3 seconden in je kijkrichting om 'm te
  vinden; alle spelers gevonden = winst.

## 2026-07-24 - LAN makkelijker: jouw IP tonen en firewall bij hosten

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.24.3`
- Grootte: 52.273.757 bytes
- SHA256: `3c483b9202fa2f56306d60a100c50d4280f85ab8ebfcfcc9768911d5ee110e0e`
- Self-contained, single-file, `asInvoker`; `standaloneCheckStatus=OK`.

### 📍 Jouw IP-adres op het LAN-scherm

- Het LAN-scherm toont nu prominent, duidelijk gelabeld, jouw eigen IP-adres (met poort):
  "Jouw IP: 192.168.x.x (poort 7757) — geef dit aan de andere speler, of laat die 'Host zoeken'
  klikken." Voorheen stond het IP er wel, maar verstopt als "Joincode". Zonder thuisnetwerk komt
  er een nette melding i.p.v. een verwarrend 127.0.0.1.

### 🔥 Firewall automatisch bij hosten

- Als je een host start, wordt de Windows-firewallregel gecheckt (`netsh show rule`, geen admin)
  en alleen als die nog ontbreekt eenmalig automatisch geopend (met de gewone Windows-melding).
  Geen los knopje meer nodig en geen herhaalde UAC-prompts.
- Herinnering: no-IP joinen op hetzelfde netwerk kan al langer met de knop **Host zoeken**
  (lokale UDP-ontdekking) — je hoeft dus niet per se met IP-adressen te werken.

## 2026-07-24 - Samen slapen, auto-reconnect, co-op mini-game en auto-update

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Versie: `2026.7.24.2` (leesbaar via `FunCraft.exe --print-version` en de FileVersion-metadata)
- Grootte: 52.273.283 bytes
- SHA256: `29ca34544953d3ddbf5cfb3bd8c09bd519158ae598fe763de83c7d7d3568ad15`
- Self-contained, single-file, `asInvoker`; geen admin of losse bestanden nodig.

Antwoord op de vervolgvragen: nacht overslaan door de host, LAN die een wifi-hik overleeft,
"met z'n 3en samen iets te doen hebben", en een auto-update via trezure.

### 🔄 Auto-update via trezure (funcraft.trendon.nl)

- Nieuwe launcher `FunCraft starten.bat`/`.ps1`: checkt bij het opstarten `version.json` op
  `funcraft.trendon.nl`, en werkt automatisch bij als er een nieuwere build klaarstaat —
  download, verplichte SHA256-verificatie, oude exe als `.bak` bewaard, dan starten. Offline
  of bij een verkeerde hash speel je gewoon met de huidige versie (je kunt altijd spelen).
- Publiceren met `publiceer-funcraft-update.ps1`: berekent de SHA256, schrijft `version.json`,
  zipt exe+manifest en deployt als statische site (`runtime=static`, managed SSL) via de
  trezure deploy-API. De API-sleutel komt uit `$env:TREZURE_API_KEY` (staat niet in de code).
- De exe draagt nu een echte versie (FileVersion 2026.7.24.1) zodat de launcher betrouwbaar
  weet welke build lokaal draait.

### 💤 Samen de nacht overslaan (host-autoritair)

- Een LAN-speler die gaat slapen stuurt nu een slaap-VERZOEK naar de host (via het bestaande
  gevalideerde actie-kanaal, protocol 7). De host slaat de nacht over voor IEDEREEN en dat
  propageert via de tijd-sync naar alle spelers. Overdag doet het niets.

### 🔌 Auto-reconnect

- De LAN-client onthoudt nu host, poort en naam. Valt de verbinding weg (wifi-hikje), dan
  probeert een achtergrond-watchdog vanzelf opnieuw te verbinden met oplopende wachttijd
  (0,5s tot max 5s), tot je zelf stopt of het spel sluit. Geen handmatig opnieuw joinen meer.
- Bij een herverbinding worden oude wachtrij, snapshot en speler-slot netjes gewist zodat je
  schoon opnieuw binnenkomt.

### 🤝 Co-op mini-game "Samen verzamelen" — volledig LAN-gesynct

- Nieuw spelletje via het Games-scherm (knop "Samen"): het hele team — splitscreen-spelers én
  LAN-medespelers — verzamelt samen glinsterende edelsteentjes binnen de tijd. Eén gedeelde
  teller en één gedeeld doel; wie er ook eentje pakt, het telt voor het team.
- De steentjes staan wijd verspreid, dus je wint sneller door je op te splitsen — echt
  samenwerken. Halen jullie het samen, dan is er feest en een teamster voor iedereen.
- **Nu volledig over LAN** (protocol 8): de host rekent autoritair en stuurt de gedeelde
  edelsteentjes + stand via de snapshot, zodat álle spelers ze op hun eigen scherm zien en
  de HUD-voortgang klopt. Iedereen telt mee doordat z'n positie naar de host gaat. Een client
  kan de host vragen het spel te starten (de "Samen"-knop werkt dus op elk scherm), en het
  team-feest speelt bij iedereen af.

### Verificatie

- Nieuwe echt-TCP en simulatietests: nacht-sync (host skip, overdag-noop, TCP-roundtrip),
  auto-reconnect (herverbindt na gesimuleerde drop; Dispose stopt het) en de co-op mini-game
  (spawn, gedeelde team-teller incl. LAN-speler, samen winnen, timeout, wederzijdse uitsluiting).
- Verzamelen: de gather→maak→neerzet-loop uit de vorige ronde blijft ongewijzigd werken.

## 2026-07-24 - Eindig water, watersync en zelfgemaakte spullen neerzetten

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.271.140 bytes
- Gewijzigd: 2026-07-24 13:31
- SHA256: `d815f95541db187a793ac054dfd71013d066767c1b9ad7755deb9bf579b758d7`
- De exe is self-contained, single-file en gebruikt `asInvoker`; losse supportbestanden, een .NET-installatie en administratorrechten zijn niet nodig. `standaloneCheckStatus=OK`, nul losse artefacten.

Antwoord op de gemelde punten: water dat bleef overstromen en niet synchroniseerde, en
"je verzamelt dingen maar hebt alles al — laat me er echt iets mee doen, bv. in mijn huisje."

### 💧 Water stroomt nu eindig en synchroniseert in LAN

- De water-stroming werkt met een AFNEMEND niveau vanaf de bron (zoals Minecraft, max ~7
  blokken ver). Een plas is daardoor altijd EINDIG; water floodt nooit meer een hele vlakte.
- Elke stroom-scan maakt eerst z'n eigen vorige cellen leeg en rekent daarna opnieuw uit. Haal
  je de bron weg (weggraven of wegpompen), dan droogt het water vanzelf op — geen achtergebleven
  of eeuwig aangroeiende plas meer.
- Een medespeler die graaft, laat het water nu ook bij de andere spelers instromen: remote
  block-edits triggeren de stroming rond díe plek, ook als de graver ver weg staat. Zo zien
  host en clients hetzelfde water.

### 🛠️ Zelfgemaakte dingen echt neerzetten in je huisje

- De verzamel→maak-loop bestond al (grondstof breken → aan de werkbank combineren tot echte
  dingen: Stoel, Bed, Vaas, Lamp, Kast, Bank, Knuffel...). Nieuw: zo'n gemaakt ding gaat nu
  IN DE HAND en je zet het met rechtsklik neer als decoratie-blok in je wereld/huisje.
- Neerzetten kost er één uit je inventory (die persistent wordt opgeslagen), het blok is
  persistent én gaat via de netwerkhook naar LAN-medespelers. Raakt het op, dan gaat de hand
  vanzelf leeg; een hotbar-slot kiezen legt het ding weer weg zodat je gewoon blokken bouwt.
- Met bladeren pak je ook dingen terug die je een vorige keer maakte (uit de opgeslagen
  inventory), zonder opnieuw te craften. Zo moet je écht spelen om je huis te versieren.

### Verificatie

- Nieuwe gerichte regressietests: 3 water-tests (eindige plas, opdrogen zonder bron,
  remote-LAN-instroom) en 5 verzamel-plaats-tests (verbruik, juist blok, netwerkhook, opraken,
  doorbladeren, craften-in-de-hand) — alle groen.
- Bestaande water-/wereld-/edit-regressies (37) blijven groen; geen compilerwaarschuwingen.

## 2026-07-22 - Vrije dieren, overzichtelijk bouwen en nachtlicht

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.262.542 bytes
- Gewijzigd: 2026-07-22 19:57:18
- SHA256: `b14757bb66c9af8634e4bd5a0eaf6c39c96dc421dc1c7c23827f90b57b85216c`
- De exe is self-contained, single-file en gebruikt `asInvoker`; losse supportbestanden, een .NET-installatie en administratorrechten zijn niet nodig.

### Dieren vrij en op de grond

- Gronddieren zoeken hun steunvlak vanaf hun eigen voeten. Een dak, wolk of boomkruin hoger in dezelfde kolom trekt ze daardoor niet meer omhoog.
- Een dier dat na bouwen of laden in een muur staat, verhuist eerst zijwaarts naar een vrije, droge plek op vloerniveau in plaats van boven op het bouwwerk te belanden.
- In het pauzemenu kan `Dieren weg` alle echte dieren binnen 6, 12, 24 of 40 meter naar vrije grond sturen. Het actuele bereik en aantal staan direct op de knoppen; voertuigen, mensen en decoratie blijven staan.
- De actie loopt in LAN via de host en gebruikt dezelfde gecontroleerde bestemming voor iedere speler. Huisdieren krijgen bovendien voorrang in begrensde save- en netwerksnapshots, ook in een wereld met veel decoratie.

### Duidelijker bouwen en licht

- De bouwbalk scheidt losse blokken en complete bouwwerken met vaste kleurstroken, tabs en een duidelijke grens. Wisselen verandert alleen de gekozen categorie en laat de indeling niet verspringen.
- `Gloeiblok` is een nieuw permanent lichtgevend bouwblok. Het nieuwe bouwwerk `Lichtslinger` plaatst drie warme lampen tussen twee palen, met gekleurde accenten voor pleinen, tuinen en paden.
- Nabije lampen worden op afstand gesorteerd en gebruiken maximaal twaalf dynamische lichtbronnen per scan. Ook een dicht lampenveld blijft daardoor begrensd in licht en deeltjes.
- De pauzeknop zegt zonder actief doel `Opdrachten & actie (33)` en bij een actief doel `Actieve pijl bekijken`, zodat direct duidelijk is wat de knop doet.

### Verificatie

- Definitieve volledige Release-suite: 1.125/1.125 tests geslaagd, 0 mislukt en 0 overgeslagen in 18m17s.
- De tien nieuwe dieren-, categorie-, licht- en LAN-regressies slagen ook binnen die volledige suite, waaronder een dier onder een dak, een dier in een vier blokken hoge muur, een dicht lichtveld van twee gesimuleerde minuten en echte TCP-actieafhandeling.
- UI-rendering: 30/30 schermen geldig; geen knopoverlap of tekstoverloop, 18 pauzeknoppen passen binnen beeld en 125 algemene plus 48 actscherm-klikken liepen zonder crash.
- Twee onafhankelijke surveys van elk vijf willekeurige wereld-/weers-/HUD-profielen leverden samen 17.741 geldige grondmetingen zonder fout. Een afzonderlijke eerste-minuutrun controleerde 1.357 metingen; boot en vogels bleven in beeld van 120 tot 12 meter.
- Twee echte Release-processen speelden via `127.0.0.1`: 245 host- en 219 clientsnapshots, wederzijds zicht, bouwen, springen, namen, gebaren, regenboog, dieren en LAN-race waren gesynchroniseerd. Beide processen sloten met code 0 en draaiden zonder adminrechten.
- Een LAN-soak van vijftien minuten op precies deze Release-build leverde 7.396 host- en 7.370 clientsnapshots zonder fout. Piekgeheugen bleef op 133,4 MB voor de host en 123,5 MB voor de client; de volledige testhost bewoog tussen circa 104 en 124 MB zonder oplopende trend.
- Standalone-controle: `standaloneCheckStatus=OK`, nul losse artefacten. Definitief LAN-bewijs staat in `lan-test-results/goal-20260722-release-soak-15min/evidence/`.

## 2026-07-22 - Gedeelde dieren, wereldsave en LAN-navigatie

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.259.502 bytes
- Gewijzigd: 2026-07-22 17:34:47
- SHA256: `35cface7806e10cc8ca091ef5682f84949e302831645fe90148096b799dcabf2`
- `FunCraft.exe` blijft self-contained, single-file en gebruikt `asInvoker`; administratorrechten of losse supportbestanden zijn niet nodig.

### Samen spelen en navigeren

- In het LAN-scherm staat een directe knop voor precies een kompaspijl naar de dichtstbijzijnde medespeler, inclusief naam en actuele afstand. De pijl blijft tijdens bewegen live volgen.
- Dieren, tam-status, namen, vriendschap, beweging en gedachtewolkjes worden door de host bepaald en met clients gesynchroniseerd. Ook regenbogen en de twee magische portalen delen nu dezelfde wereldstatus.
- Aaien en het gezamenlijke dierenfeest worden als gevalideerde acties naar de host gestuurd, zodat alle spelers dezelfde uitkomst zien.
- De bestaande poppetjesmaker is direct bereikbaar vanuit het LAN-scherm. Kleding, huid, haar en accessoires zijn al onderdeel van de spelersupdates en verschijnen daardoor bij de andere speler.

### Wereldbeheer

- `Wereld nu opslaan` staat in het pauzemenu. Wereldblokken, portalen en maximaal 128 actieve dieren worden opgeslagen; getemde dieren behouden naam en vriendschap.
- Bij laden worden portalen pas na de blokken hersteld. Een portaal werkt en verschijnt als doel zolang beide frames compleet zijn; het weghalen van een frameblok schakelt het meteen uit en herbouwen activeert het weer.
- `Water wegpompen (7m)` verwijdert maximaal 4.096 nabije waterblokken, bewaart die wijziging en stuurt de blokaanpassingen ook naar LAN-clients.

### Duidelijkere dieren

- Een dier krijgt een stabiele, herkenbare naam op basis van soort en uiterlijk. Het interactiebericht legt de betekenis van het actuele gedachtewolkje in woorden uit.
- Het dierenboek bevat een legenda voor honger, liefde, slaap, spelen, zwemmen en andere symbolen. De wolkjes en kortdurende toestand worden mee opgeslagen en via LAN gedeeld.

### Verificatie

- Volledige test-suite: 1.114/1.114 tests geslaagd, 0 mislukt en 0 overgeslagen in 32m09s.
- Gerichte wereldsave- en LAN-features: 5/5 geslaagd; netwerkregressie: 40/40; UI- en entityvisuals: 14/14.
- Twee echte processen speelden ruim twee minuten via `127.0.0.1`: wederzijds zicht, bouwen, spelerspijl, wereldstatus, dieren, gebaren en race bleven gesynchroniseerd. Piekgeheugen bleef onder 116 MB per proces.
- Een extra bevestigingsrun zag expliciet dezelfde regenbooganker en dierenstaat op de client; beide processen leverden geldig bewijs op.
- LAN- en pauzeschermen hebben geen knopoverlap of tekstoverloop; 125 algemene en 48 schermspecifieke klikacties liepen zonder crash.
- Standalone-controle: `standaloneCheckStatus=OK` met exitcode 0 en zonder losse artefacten.
- Bewijs: `ui-samples/LanLobby.png`, `ui-samples/funcraft-lan-world-sync-evidence/lan-host-evidence.png` en `ui-samples/funcraft-lan-world-sync-evidence/lan-client-evidence.png`.

## 2026-07-22 - Duidelijke actiekeuze, vrije muis en LAN-races

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.251.365 bytes
- Gewijzigd: 2026-07-22 14:09:34
- SHA256: `0f593462d1f7c5cdbedbcdfd88ef28d88e4cd640948e9ea0fe552bd5d0d7fe83`
- De exe is self-contained, single-file en gebruikt `asInvoker`; losse supportbestanden, een .NET-installatie en administratorrechten zijn niet nodig.

### Opdrachten & actie

- Het scherm stuurt nog steeds precies een kompaspijl tegelijk aan, maar maakt de keuze nu duidelijker met filters voor alles, actie, voertuigen en schatten, plus `Dichtbij`, `Ander` en maximaal een actuele aanbeveling.
- Een nog niet gestarte opdracht toont `EERST KIEZEN` in plaats van een verzonnen afstand tot een nog onbekende bestemming. Na kiezen verschijnt de echte start- of doelplek.
- Opdrachtregels, prioriteiten en aankomsthints passen binnen hun knoppen. De volledige lijst blijft met muis en toetsen `1` tot en met `8` bedienbaar.

### Betrouwbare muisbediening

- FunCraft laat de muis nu centraal los zodra een klikbaar scherm opent, waaronder het LAN-scherm, chat, verzameling, dagboek en avonturenboek.
- De kijkbesturing kan de cursor niet opnieuw vastpakken zolang zo'n scherm openstaat en wordt na sluiten weer correct actief, ook via Remote Desktop.

### LAN-races

- De host kan vanuit `Opdrachten & actie` een gedeelde LAN-race starten wanneer een tweede speler verbonden is. Clients krijgen een duidelijke melding dat de host de race start.
- Startvakken, aftellen, finish, verstreken tijd en winnaar worden door de host bepaald en via netwerkprotocol versie 3 gesynchroniseerd.
- Iedere speler start in een eigen, geaarde baan. De finish zoekt stabiele droge grond en vermijdt water, wolken en boomkruinen.
- Een remote speler kan zichtbaar winnen; sterbeloningen worden alleen aan de echte lokale winnaar en maximaal een keer per ronde toegekend. Verbreken van de verbinding ruimt de gedeelde racestatus op.
- Ongeldige racegegevens worden defensief geweigerd, zodat corrupte of ongeldige snapshots niet in de simulatie terechtkomen.

### Verificatie

- Definitieve volledige Release-suite: 1.110/1.110 tests geslaagd, 0 mislukt en 0 overgeslagen in 19m34s.
- Echte muisharnas-run geslaagd: vastpakken, loslaten in menu's, blokkeren tijdens menu's, hervatten en alle Remote Desktop-warpgevallen.
- UI-dekking geslaagd: 125 algemene en 48 schermspecifieke klikinvocations zonder crash; geen knopoverlap of tekstoverloop en alle acht actieregels passen in beeld.
- Twee echte processen doorliepen host/client-spel via `127.0.0.1`: 81 hostsnapshots en 55 clientsnapshots, wederzijds zicht, bouwsync, sprongen, gedeeld racestartpunt, finish en dezelfde remote winnaar. Piekgeheugen was 83,1 MB voor de host en 76,6 MB voor de client.
- `--standalone-check` op de nieuw gebouwde exe sloot succesvol af met exitcode 0.
- Visueel bewijs: `ui-samples/Games-lan.png`, `ui-samples/funcraft-lan-race-evidence/lan-host-evidence.png` en `ui-samples/funcraft-lan-race-evidence/lan-client-evidence.png`.

## 2026-07-22 - Zitplaatsen, portalen, opdrachten en waterdieren

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.247.897 bytes
- Gewijzigd: 2026-07-22 11:38:46
- SHA256: `7241917c299da3164358c31ac715e3792201e1e6f7ba88efc01187d86e8769a4`
- `FunCraft.exe` is self-contained, single-file en gebruikt `asInvoker`; .NET, losse supportbestanden en administratorrechten zijn niet nodig.

### Voertuigen vanuit de zitplaats

- Iedere nieuwe rit begint nu op de echte zitplaats. Met `C` wissel je tussen zitplaats- en achtervolgcamera.
- Boot, trein, vliegtuig, helikopter, raket en luchtballon hebben een herkenbare cockpit- of interieur-rand; het vastgehouden bouwblok verdwijnt tijdens de rit.
- Het eigen buitenmodel wordt alleen in de viewport van de bestuurder verborgen, zodat cabine, schoorsteen of romp niet meer door de camera snijden. Omstanders en de achtervolgcamera blijven het volledige voertuig zien.
- De volledige spoorlus heeft een cabinebrede vrije corridor; bomen en wanden kunnen daardoor niet meer door de trein heen steken.

### Wereldvaste regenboog en werkende portalen

- Een regenboog krijgt bij verschijnen een vaste positie in de wereld. Lopen of rijden verplaatst de boog niet langer mee met de camera.
- Het `Magisch-portaal` heeft een open doorgang. Na plaatsing ontstaat automatisch een gekoppelde tegenpoort op afstand. Doorlopen werkt heen en terug, inclusief cooldown, bestemming-streaming en begrensde regenboogsparkles.
- Bestaande portaalframes uit oudere werelden worden bij nadering herkend en alsnog gekoppeld.

### Opdrachten & actie

- De losse routes voor opdrachten en spelletjes komen samen in `Opdrachten & actie`. Het scherm bevat de volledige catalogus van 21 opdrachten plus actuele acties, voertuigen, schatten, LAN-spelers en ontdekplekken.
- Iedere rij toont afstand, richting, prioriteit, reden en aankomsthint. Filters en paginering houden de langere lijst scanbaar.
- Een keuze activeert precies één live kompas/pijl. Een nieuw doel vervangt de vorige pijl; er verschijnen geen extra HUD-pijlen.

### Waterdieren en aardingsherstel

- Iedere nieuwe wereld krijgt binnen wandelafstand een ondiepe zandvijver met tien zwemmers: vier vissen, een dolfijn, zeepaardje, otter, eend, inktvis en pufferfish.
- `Waterdieren bekijken` staat als kiesbaar doel met afstand in `Opdrachten & actie`.
- Landdieren die na een late wereldmutatie met hun voeten in een solide kolom belanden, herstellen naar het echte oppervlak. Normale hopanimaties, vliegers en zwemmers blijven ongemoeid.

### Verificatie

- Definitieve volledige Release-suite: 1.101/1.101 tests geslaagd, 0 mislukt en 0 overgeslagen in 19m12s.
- Gerichte entity- en feature-regressieronde: 12/12 geslaagd. De eerste brede run vond een begraven nijlpaard; de nieuwe herstelroute maakte daarna zowel de gerichte als volledige suite groen.
- Echte render-runs geslaagd en visueel bekeken: treinrit, bootrit, vliegtuig-nachtvlucht, wereldvaste regenboog, waterdieren en beide portalzijden.
- De standalone rapporteert 33 actiedoelen, 22 opdrachten/actie, 7 voertuigen, 3 schatten en exact één pijl.
- UI-dekking: 125 algemene en 48 schermspecifieke klikinvocations zonder crash; geen knopoverlap, tekstoverloop of ontbrekende contact-sheetbeelden.
- `--standalone-check` meldt één schone self-contained exe en `standaloneCheckStatus=OK`. Bewijsbeelden: `shots/trainride_2.png`, `shots/boatride_2.png`, `shots/nightflight_horizon.png`, `shots/regenboog_na_bewegen.png`, `shots/waterlife.png`, `shots/portal_a.png` en `shots/portal_b.png`.

## 2026-07-21 - Tijdelijke meldingen, LAN-gebaren en panda's

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.242.918 bytes
- Gewijzigd: 2026-07-21 11:09:31
- SHA256: `f7ef8f268fab995b10900a67ebb17782cfa71636f3fea6841b7f2d9360db678f`
- `FunCraft.exe` is volledig self-contained; .NET of losse supportbestanden zijn niet nodig.

### Rustiger HUD

- Meldingen zoals `Gemaakt!` en andere `LastCraft`-teksten verdwijnen nu na vijf seconden. Zowel de simulatietimer als een echte klokdeadline ruimt de bitmap op, zodat pauzeren of een open menu de melding niet onbeperkt laat staan.
- Ook het grotere maak-effect heeft nu een expliciete zichtbaarheidstoestand en wordt na zijn timer uit de renderer verwijderd.
- De venstertitel neemt alleen een nog zichtbare melding over en blijft daardoor niet achter met oude statusinformatie.

### Samen gek doen op LAN

- Spelers zwaaien automatisch een keer wanneer zij elkaar op korte afstand ontmoeten. Na uit elkaar lopen kan een volgende ontmoeting opnieuw een begroeting starten.
- Iedere remote LAN-speler heeft een subtiele gestippelde cyaanring op het steunvlak. Ring en schaduw blijven bij springen op de grond, zodat een medespeler herkenbaar blijft zonder extra kompaspijl.
- Het LAN-scherm heeft directe knoppen voor `Zwaai naar elkaar` en `Gek doen`. De tweede knop loopt door meerdere zichtbare acties, waaronder dansen, lachen, magie, verbaasd kijken en een zwaardbeweging.
- Armen, handen en het diamanten zwaard bewegen echt in het 3D-poppetje. De volledige uiterlijk- en emotegegevens gaan mee in clientinput en hostsnapshots; onbekende emote-ID's worden veilig genegeerd.
- Remote LAN-spelers worden ook getekend wanneer er lokaal geen dier of ander entity-object in de renderlijst staat. Dit repareert een gevonden situatie waarin een medespeler anders volledig kon verdwijnen.

### Panda's

- De panda heeft een nieuw blokmodel met witte romp, zwarte poten en schouderband, oogvlekken, oren, snuit, staart en een zichtbaar bamboetakje.
- Iedere nieuwe wereld krijgt twee panda's op gecontroleerde droge grond in de buurt van de start. De plaatsing controleert wereldgrenzen, steunvlak en water zodat zij niet zweven of zinken.
- Zolang nog geen panda is ontmoet, staat `Panda's zoeken` als kiesbare activiteit in `Spelletjes`. De gewone afstandslijst voor thuis en voertuigen behoudt zijn bestaande sortering.

### Verificatie

- Definitieve volledige Release-suite: 1.095/1.095 tests geslaagd, 0 mislukt en 0 overgeslagen in 19m44s.
- Twee echte Release-standalones speelden tien minuten via `127.0.0.1`: 4.790 host- en 4.730 clientsnapshots, beide spelers, namen, sprongen, zwaaien, gek doen, actiedoel, volgen, omgeving, wereldcode en bouwdelta bewezen.
- Tijdens die LAN-duurtest piekte de host op 134,9 MB en de client op 145,9 MB. Threads en handles bleven stabiel en beide processen sloten vanzelf.
- De eerste-minuutroute controleerde 1.888 aardingsposities zonder fout. De vijfprofielen-survey controleerde 65 beelden en 8.640 aardingsmetingen voor kust, sneeuw, bosnacht, regen en bergen; alle profielen waren groen en de HUD-route tekende exact een kompaspijl per frame.
- Boot en vogelzwerm bleven in standaard, compact en breed beeld zichtbaar en gecentreerd op 120/60/24/14/12 meter. Panda- en LAN-emote-close-ups zijn visueel gecontroleerd op volledige vlakken, grondcontact en kadrering.
- De performanceproef mat 1,2 ms renderthread-kost voor de asynchrone verre-wereldbouw tegenover 76,1 ms synchroon.
- Bewijs: `lan-test-results/release-emotes-soak-20260721-015402/`, `shots/panda_00_front.png`, `shots/lan_emotes_00_wave_sword.png`, `shots/randomsurvey_seed2072101_report.txt` en `shots/visualguard_contact_sheet.png`.

## 2026-07-16 - Echte HUD-bewijsroute en langdurige LAN-controle

### Rustige actiewijzer en visuele dekking

- De willekeurige speelroute kan de echte in-game HUD renderen. De HUD-variant kiest een bestaand doel uit `Spelletjes & actie`, bewaakt zestig seconden dat het doel actief blijft en controleert in ieder van de dertien bewijsframes dat de renderer exact een kompaspijl heeft getekend.
- De compacte regenroute met `routeSeed=16072029` liep 277,6 meter, keek 29,9 radialen rond en behield in 13/13 beelden precies een groene opdrachtpijl. Crosshair, hotbar, statusbalken en pijl bleven los van elkaar; de contact sheet is handmatig bekeken.
- Contact-sheettekst ondersteunt nu ook `J`, `Q`, `X` en `Y`. Iedere route controleert voortaan vooraf of alle kop- en profiellabels door het pixellettertype worden ondersteund, zodat een ontbrekende letter niet stil als `?` in bewijsbeelden terechtkomt.
- De eerste-minuutcontrole samplede opnieuw 1.888 grondposities zonder zweef- of zinkfout. Normaal spelersbeeld en voor-, zij- en achteraanzicht van de eenhoorn zijn handmatig gecontroleerd: voeten op de grond, gesloten vlakken en geen doorschijnend terrein.
- De verse beeldguard hield boot en vogelzwerm zichtbaar op 120/60/24/14/12 meter in standaard, compact en breed beeld. Alle 30 afstand/viewport-combinaties, centrering, nabijbeeld en contact-sheetlabels waren OK.

### Netwerk, geheugen en bewijsbestanden

- Twee echte standalones speelden tien minuten via `127.0.0.1`, met verschillende startwerelden (`271828` en `8675309`). De client nam de hostwereld over; beide spelers zagen elkaar, sprongen, remote naam, actiedoel en volgen bleven gesynchroniseerd en een volledige eerste bouwsync van 84.875 delta's kwam aan.
- De host verwerkte 5.084 snapshots en de client 4.939. Beide processen sloten na de ingestelde duur vanzelf; er bleef geen luisterpoort of FunCraft-proces achter.
- Vanaf minuut twee zijn 83 externe geheugenmonsters vastgelegd. Host: maximaal 139,8 MB werkgeheugen en 88,4 MB private bytes; client: maximaal 157,6 MB en 113,3 MB. De vrije systeemruimte bleef minimaal 27,66 GB en er was geen aanwijzing voor onbegrensde groei.
- LAN-bewijsvalidatie weigert nu ook een opname waarvan meer dan 1% van de pixels volledig zwart is. Daarmee kan een technisch leesbaar maar visueel leeg of beschadigd screenshot niet langer als bewijs slagen.
- Bewijs: `lan-test-results/soak-20260716-175046/`, `shots/randomwalk_seed16072029_any_day_rain_compact_hud_contact_sheet.png`, `shots/visualguard_contact_sheet.png` en `shots/firstminute_02_player_looks_at_Eenhoorn.png`.

### Performancecontrole

- De CPU-mesher leverde drie keer exact dezelfde 5.755.456 vertices, 8.633.184 indices en hash `0F71C5DD`; de warme derde run meshete 588 chunks in 810,2 ms (1,38 ms per chunk).
- De view-11 benchmark mat gemiddeld 12,5/19,7/16,2/10,5 ms op 4/30/90/180 meter. Strakke chunkbounds hielden 80/80 camerastanden byte-identiek en sloegen gemiddeld 94,5 onzichtbare chunks over.
- Verre detail-LOD is standaard actief: in de gerichte proef daalde de verre opaque indexband 86,5%, met hoogstens 1.617 afwijkende pixels op 324.000 in de zwaarste sweepstand en zonder zichtbare harde uitval.

## 2026-07-15 - LAN-wereldcode, syncvoortgang en geheugenbewaking

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.240.747 bytes
- Gewijzigd: 2026-07-15 15:18:26
- SHA256: `7dc4f43fd674c176e5b1bce172c5f17d263f4b561538176dc7bd07e8d3bb259d`
- Manifest: `asInvoker`; normaal starten en LAN spelen vragen geen administratorrechten of UAC. Alleen de bewuste firewallactie kan Windows-toestemming vragen.
- Standalone-check: OK; de exe heeft geen losse runtimebestanden of runtime-mappen nodig.

### Dezelfde wereld op LAN

- Het LAN-protocol deelt nu expliciet protocolversie, wereldcode, wereldhoogte en de voortgang van de eerste volledige bouwsync. Het LAN-scherm toont de wereldcode naast de joincode en meldt hoeveel wijzigingen al zijn ontvangen.
- Een client die met een andere lokale wereld start, neemt veilig de wereldcode en hoogte van de host over voordat hostwijzigingen worden toegepast. Naam, uiterlijk, inventaris, voortgang en instellingen blijven behouden; de vorige lokale wereld wordt eerst opgeslagen en krijgt een herkenbare `before-lan-world-...`-backup.
- De host accepteert geen positie of bouwwijziging van een moderne client zolang diens wereldcode niet overeenkomt. Een nieuwe verbinding verschijnt bovendien pas als remote speler nadat de eerste geldige positie is ontvangen, dus er staat geen tijdelijk spookfiguur op `(0,0,0)`.
- De host toont alle verbonden spelers vanuit een autoritatieve snapshot. De client bevestigt afzonderlijk dat wereldcode, tijd, seizoen en weer gelijk zijn en meldt pas daarna dat de wereldsync compleet is.
- De server begrenst zowel verzendsnapshots als nog niet verwerkte client-bouwdelta's. De client begrenst nu ook samengevoegde, nog niet door de gameloop verwerkte wereldsnapshots; een langdurig vastgelopen sessie wordt gecontroleerd gesloten in plaats van onbeperkt geheugen te verzamelen.

### Visuele testkwaliteit

- De willekeurige looptest vergelijkt entiteitsgeometrie nu met dieren en objecten die de renderer werkelijk voor tekenen heeft geselecteerd. Entiteiten achter de camera of achter terrein tellen niet langer als verdwenen geometrie.
- De eerder verdachte bergronde is exact herhaald met `routeSeed=15490977`, `worldSeed=271828`: 13 beelden, 11 renderer-geselecteerde entiteitsframes, 11 frames met geometrie, 1.980 grondmetingen en 0 fouten.
- Een nieuwe vijfprofielen-survey met `surveySeed=15072062` controleerde kust/dageraad, sneeuw/sneeuwval, bos/nacht, regen/compact beeld en bergen/zonsondergang. Alle vijf routes, 65 bewijsbeelden en 9.600 entiteits-grondmetingen waren groen en de contact sheets zijn handmatig bekeken.
- Boot en vogelzwerm bleven op 120/60/24/14/12 meter zichtbaar en in beeld in standaard, compact en breed beeld. De eerste-minuutroute gaf opnieuw 1.888 grondmetingen en 0 zweef- of zinkfouten.
- De performanceproef mat 0,9 ms renderthread-kost voor de asynchrone verre-wereldbouw tegenover 53,3 ms synchroon, met 613 geladen chunks, 588 gebouwproxies en 3.428 boomproxies.

### Netwerk- en geheugenbewijs

- Twee echte standalones draaiden vijf minuten via `127.0.0.1` met verschillende startwerelden: host `42`, client `314159`. De client nam wereld `42` over; 2.586 host- en 2.484 clientsnapshots, 36.221 eerste-syncdelta's, beide sprongen, remote naam, actiedoel, volgen, omgeving en wereldidentiteit zijn bewezen.
- De host bleef tussen 123 en 142 MB werkgeheugen en de client tussen 94 en 159 MB; handles en threads bleven stabiel en beide processen sloten vanzelf. De volledige testsuite liet eveneens een zaagtand door garbage collection zien in plaats van monotone groei.
- Tijdens de systeemaudit was geen proces met de eerder gemelde 120 GB aanwezig. Andere lokale ontwikkelservers zijn alleen geobserveerd en niet gestopt; alle FunCraft-proeven gebruikten exacte PID- en poortbewaking.
- Gerichte LAN/E2E-set: 43/43 groen. Volledige definitieve Release xUnit-suite: 1.088/1.088 tests geslaagd, 0 mislukt en 0 overgeslagen in 19m04s.
- Definitieve ingebouwde allescheck: 13/13 secties OK en 0 issues. Het verse supportpakket behaalde 163/163 controles en de databackup 4/4.
- Bewijs: `lan-test-results/world-identity-memory-5min/lan-host-evidence.png`, `lan-test-results/world-identity-memory-5min/lan-client-evidence.png`, `lan-test-results/world-identity-memory-5min/memory.csv`, `shots/randomsurvey_seed15072062_report.txt`, `shots/randomwalk_seed15490977_mountain_dusk_clear_wide_contact_sheet.png` en `shots/visualguard_contact_sheet.png`.

## 2026-07-15 - Gelijke LAN-wereld en robuuste netwerkbuild

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.238.315 bytes
- Gewijzigd: 2026-07-15 13:49:41
- SHA256: `af599f92b0dc11e7a64d7ec62d141b6cc9cf2b1169b83bfcc779a7fcd29c07c1`
- Manifest: `asInvoker`; normaal starten en LAN spelen vragen geen administratorrechten of UAC. Alleen de bewuste firewallactie kan Windows-toestemming vragen.
- Standalone-check en alle knoproutes: OK; geen losse runtimebestanden vereist.

### LAN en synchronisatie

- De host synchroniseert nu naast spelers en blokken ook dagtijd, dagnummer, seizoen, weersterkte en regenboogstatus. Twee kinderen zien daardoor werkelijk dezelfde wereldtoestand in plaats van lokaal verschillend weer of licht.
- De client houdt de ontvangen hosttoestand tussen snapshots vast. Lokale instellingen voor weersterkte veranderen de netwerktoestand niet; na verbreken of wisselen naar host wordt de tijdelijke netwerkoverride netjes opgeruimd.
- Het LAN-scherm benoemt dat wereld, tijd en weer gedeeld zijn. De verbonden-status blijft binnen de beschikbare HUD-breedte passen.
- Het headless LAN-bewijs controleert en toont voortaan expliciet `environmentSync=True`, naast spelers, sprongen, bouwwijzigingen, naam, actiedoel en volgen.
- De protocoluitbreiding is achterwaarts tolerant: de nieuwe omgevingsvelden staan na de bestaande snapshotgegevens, oude clients mogen ze negeren en nieuwe clients accepteren ook snapshots zonder deze uitbreiding.
- Niet-eindige of onredelijk grote posities, invalide invoer en beschadigde snapshots worden geweigerd voordat ze een speler kunnen verplaatsen of renderen. De host verbreekt alleen de foutieve verbinding en blijft voor andere spelers actief.

### Betrouwbare builds

- De standalone-build volgt nu ook wijzigingen in lokale projectafhankelijkheden. Een aanpassing in `EliasCraft.Core` kan daardoor niet meer een nieuw game-DLL maar een achtergebleven oude `FunCraft.exe` opleveren.
- Een gewone Release-build heeft deze regel opnieuw bewezen: Core, Render en Game zijn gebouwd en de losse exe is automatisch opnieuw gepubliceerd met 0 waarschuwingen en 0 fouten.

### Verificatie

- Definitieve volledige Release xUnit-suite: 1.080/1.080 tests geslaagd, 0 mislukt en 0 overgeslagen in 18m17s. De gerichte netwerkset was 32/32 groen.
- Zes nieuwe regressietests bewaken exacte weersynchronisatie ondanks lokale instellingen, regenboogfade, atomische afwijzing van ongeldige omgeving, protocol-roundtrip en isolatie van foutieve client- en snapshotposities.
- Twee echte standalones hebben 10 minuten onafgebroken via `127.0.0.1` gespeeld: 4.957 host- en 4.875 clientsnapshots, twee spelers zichtbaar, beide sprongen bewezen, 87.657 bouwdelta's ontvangen, remote naam/actiedoel/volgen OK, omgeving gelijk en geen herverbinding.
- Tijdens die duurtest bleef de verbinding `Established`; clientgeheugen bleef ongeveer 117-123 MB en hostgeheugen 125-133 MB zonder oplopende handle- of verbindingsgroei.
- Verse visuele guard: boot en vogelzwerm bleven op 120/60/24/14/12m zichtbaar en in beeld in standaard, compact en breed beeld; 30/30 controles groen. De contact sheet is daarna handmatig bekeken.
- Eerste-minuutcontrole: gesloten diermodellen, 1.888 grondcontactmetingen en 0 fouten; de normale spelersblik en eenhoorn-close-up zijn handmatig gecontroleerd op zweven, doorschijnen en kadrering.
- Performancecontrole: asynchrone render-thread-skirts 0,9ms tegenover 50,9ms synchroon in de meetroute; 613 chunks, 588 gebouwproxies en 3.428 bomen bleven geldig.
- Definitieve ingebouwde allescheck: 13/13 secties OK en 0 issues. `git diff --check` gaf geen whitespacefouten.
- LAN-bewijs: `lan-test-results/environment-sync-10min/lan-host-evidence.png` en `lan-test-results/environment-sync-10min/lan-client-evidence.png`. Visueel bewijs: `shots/visualguard_contact_sheet.png` en `shots/firstminute_02_player_looks_at_Eenhoorn.png`.

## 2026-07-15 - Brede wereldinspectie en correcte sneeuw

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.237.294 bytes
- Gewijzigd: 2026-07-15 11:35:46
- SHA256: `ecdd0fa5cb9df231538ad7c56bc0156d18a6129a57bb424fb72f863170374fab`
- Manifest: `asInvoker`; normaal starten vraagt geen administratorrechten of UAC.
- Standalone-check: OK; geen losse runtimebestanden of runtime-mappen vereist.

### Wereldonderzoek

- De random-walk-harness kan nu gericht zoeken naar `coast`, `snow`, `forest`, `mountain` of een willekeurige droge locatie. Hij laadt en bemonstert daarvoor een gebied van 97x97 kolommen en controleert aantoonbaar water, sneeuwhoogte, bosdichtheid, hoogtebereik en een veilig steunvlak.
- Verlichting en weer zijn vastlegbaar als `dawn`/`day`/`dusk`/`night` en `clear`/`rain`/`snow`. Iedere route controleert zestig seconden lang dat de gekozen toestand behouden blijft en richt de eerste blik op het relevante wereldkenmerk.
- De route rendert nu ook in `standard` (720x450), `compact` (480x300) en `wide` (960x360). Contact sheets behouden de echte beeldverhouding; brede beelden worden niet meer tot 16:10 samengedrukt.
- `--randomsurvey` draait vijf complementaire profielen: kust bij dageraad, sneeuwgebied met sneeuwval, bos bij nacht, regen op compact beeld en bergen bij zonsondergang. Per profiel ontstaan een rapport, dertien tijdstempelframes en een contact sheet met route- en wereldseed.
- De renderanalyse meet naast geometrie, collision, beeldvariatie en grondcontact gemiddelde helderheid, gewone warme pixels en apart het specifieke kleurpatroon van een overgelopen blauw-kanaal.
- De eerste-minuut-entitybeelden worden zonder HUD gerenderd. De Core-harness uploadt geen questtekstbitmap en toonde daardoor voorheen losse voortgangsbalkjes die in de echte game niet los zichtbaar zijn.

### Zichtbare reparaties

- Sneeuwhooglichten kunnen niet meer van wit naar rood, oranje of geel omslaan. De atlasgenerator begrenst alle RGBA-kanalen voor de byteconversie; voorheen werd bijvoorbeeld blauw `252 + ruis` boven 255 zonder begrenzing naar een lage bytewaarde omgeslagen.
- Sneeuwdeeltjes gebruiken een eigen transparante, aaneengesloten achtarmige sneeuwvloktegel. Een renderfactor van 1,6 houdt ambient sneeuw subtiel maar aantoonbaar zichtbaar en actieve sneeuwval herkenbaar zonder de horizon te bedekken; de bestaande sneeuwsimulatie en collision blijven ongewijzigd.
- De sneeuwguard onderscheidt nu gewone warme pixels van echte kanaal-overloop: rood en groen moeten beide licht en vrijwel gelijk zijn terwijl blauw plots bijna nul is. Daardoor blijven grote gele, oranje en roze spelobjecten toegestaan, terwijl de gerichte atlasregressietest de oorspronkelijke byte-overflow nog steeds rechtstreeks bewaakt.

### Waarom de eerdere tests dit misten

- De oude atlascontrole keek naar afmetingen, tile-indexen en alpha, maar niet naar kleurvervorming door byte-overflow. Twee gerichte regressietests bewaken nu neutrale sneeuwhooglichten en de transparante rand plus neutrale kern van de sneeuwvlok.
- De oude winterharness liet de klok op schemering staan en toonde daardoor roze/oranje avonddeeltjes terwijl echte ambient sneeuw vrijwel onzichtbaar was. De nieuwe winterroute zet vast daglicht, verwijdert alle niet-sneeuwparticles, richt op de dichtste vlokkengroep en vergelijkt dezelfde stilstaande render met en zonder sneeuw.
- Gewone willekeurige routes kwamen hoofdzakelijk op droog groen terrein bij standaard daglicht terecht. De nieuwe gespreide survey eist bewust vijf verschillende terrein-, licht-, weer- en viewportprofielen en bewijst in het rapport dat het gezochte kenmerk echt in beeldbereik aanwezig is.
- Screenshots worden niet alleen numeriek beoordeeld: de kust-, sneeuw-, nacht-, regen-, eerste-minuut-, boot- en zwermcontact-sheets zijn na iedere definitieve run ook handmatig bekeken.

### Verificatie

- Definitieve volledige Release xUnit-suite: 1.074/1.074 tests geslaagd, 0 overgeslagen, in 18m16s. Eerder in dezelfde ronde waren ook twee complete runs in 18m28s en 18m36s groen; de laatste gerichte atlas/entityset was afzonderlijk 65/65 groen.
- Twee uitgebreide random surveys op verschillende locaties: 10 routes, 600 gesimuleerde seconden en 130 periodieke bewijsframes; alle terrein-, weer-, licht-, viewport-, collision-, geometrie-, zichtbaarheids-, kleur- en grondcontactpoorten waren OK.
- De twee bergroutes bewezen echte hoogteverschillen van 29 en 33 blokken, duizenden hooglandkolommen en zichtbare sneeuwterrassen. Alle brede beelden behielden hun 8:3-verhouding zonder uitrekking.
- Een sneeuwframe met een groot goudblok bereikte bewust 19,9% gewone warme pixels, maar 0,00% kanaal-overloop. Handmatige inspectie bevestigde neutrale sneeuw en een legitiem geel object; de eerdere te grove 1%-melding is daarmee reproduceerbaar uitgesloten.
- Reproduceerbare sneeuwroute: `routeSeed=15176755`, `worldSeed=42`, profiel `snow/day/snow`. Exact dezelfde route toont na de reparatie neutrale sneeuw en herkenbare transparante vlokken.
- Geisoleerde ambient-winterrender: 53 echte vlokken, 16 in de gekozen zichtsector, 14 aantoonbaar veranderde schermpixels waarvan 11 helderder, 0,00% warme sneeuwpixels en 0 vlokken binnen de cameraveilige zone. De opname en identieke baseline zijn beide handmatig bekeken.
- Bewegingsharness aangescherpt en opnieuw groen: 184/184 checks in 69 scenario's. De twee waterroutes zoeken nu tot 2.048 meter naar echt natuurlijk water en eisen werkelijk onderdompelen/veilige diepte; de sneeuwbalroute plaatst een reproduceerbaar doel en eist een echte entity-hit (`Kat`, hits 0 naar 1) in plaats van een vrijblijvende impact.
- Oude screenshots van ieder bewegingsscenario worden vooraf gericht opgeruimd, zodat een eerdere fouttak niet naast nieuw groen bewijs blijft staan.
- De eerste wateropname synchroniseert de camera nu na iedere testteleport. Handmatige controle bevestigt daardoor werkelijk onderwaterbeeld bij de zwemstart en een zichtbare watermassa voor de drijfproef, in plaats van beeld vanaf de vorige spelerpositie.
- De bewegingsreset herstelt voortaan ook de wereldstream; de algemene dierroute meet alleen de werkelijk geladen lokale populatie. Definitieve run: 600 lokale dier-grondmetingen en 0 fouten. Eerste-minuutroute eveneens groen: 1.888 grondmetingen en 0 fouten; de schone normale spelersblik en drie close-upblikken zijn handmatig gecontroleerd.
- Definitieve standalone allescheck: 13/13 secties OK, 0 issues. Alle 125 algemene en 41 spelletjesklikroutes bleven crashvrij en alle gecontroleerde labels en knoppen pasten zonder overlap.
- Verse beeldguard op de standalone: boot en vogelzwerm bleven zichtbaar en in beeld op 120/60/24/14/12m in standaard, compact en breed beeld; 30/30 afstand-/viewportcombinaties waren OK en de contact sheet is handmatig bekeken.
- Bewijs: `shots/randomsurvey_seed15072028_report.txt`, `shots/randomsurvey_seed15072029_report.txt`, `shots/randomwalk_seed15176758_snow_day_snow_contact_sheet.png`, `shots/randomwalk_seed15490945_mountain_dusk_clear_wide_contact_sheet.png`, `shots/winter_snow_front.png`, `shots/winter_snow_baseline.png`, `shots/visualguard_contact_sheet.png` en `ui-samples/ui-contact-sheet.png`.

## 2026-07-14 - Dieren dicht, gegrond en visueel getest

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.237.065 bytes
- Gewijzigd: 2026-07-14 13:47:18
- SHA256: `23b6a56f7be0d88127b5ec828a78c958278219088bdb2b93d2642883e00bac92`
- Standalone-check: OK; geen losse runtimebestanden of runtime-mappen vereist.

### Zichtbare reparaties

- De rechter- en linkerzijde van alle voxel-dieren en 3D-personages gebruiken nu een cyclische hoekvolgorde. De oude bow-tie-volgorde tekende per vlak twee deels overlappende driehoeken en liet daardoor een driehoekig gat over waar je doorheen kon kijken.
- Landdieren, tamme huisdieren, workers en stilstaande props worden voor iedere vroege update-exit opnieuw op hun lokale steunvlak gezet. Daardoor blijven ze ook na geladen wereldbewerkingen en terwijl ze stilstaan met hun voeten op het terrein.
- De grondcorrectie zoekt nu vanaf de voeten naar het eerste steunvlak eronder. Een wolk, bladerdek of bouwwerk hoog boven een dier in dezelfde kolom kan het dier daardoor niet meer plotseling omhoog trekken.
- De twee-secondenroep voor een huisdier dat meer dan 40 meter achterblijft kiest nu een droge plek en zet de voeten in hetzelfde frame exact op het lokale steunvlak. De oude recall gebruikte `spelerY + 0,4` en liet het dier daardoor minstens een frame zichtbaar zweven; bij hoogteverschil kon de afwijking groter zijn.
- Wachtende huisdieren tijdens vliegen of varen gebruiken eveneens het lokale steunvlak en worden niet meer naar een hoog object in dezelfde kolom verplaatst.
- Entiteitschaduwen hebben een eigen ronde atlas-tegel met volledig transparante buitenrand. De wolkentegel had nog alpha in zijn hoeken en maakte daardoor zichtbare donkere vierkanten onder dieren.

### Waarom de eerdere tests dit misten

- De bestaande modelcontrole bewees alleen dat vlakken planair waren; een planaire bow-tie is nog steeds fout. De nieuwe geometrieguard eist nu ook dezelfde driehoekrichting en volledige cyclische vlakopbouw.
- De bewegingsharness controleerde alleen eindige posities en of minstens een dier bewoog. Zweven was daarmee toegestaan. De gewone harness meet nu tijdens `all_entities_wander_5s` en `multiple_animals_no_stuck` ook expliciet voet-tot-grondafstand.
- De bestaande vliegende-huisdiertest stond bijna vier meter verticale afwijking toe. Die tolerantie is vervangen door exact grondcontact binnen 2 cm.
- De nieuwe `--firstminute`-route rendert een echte start, een beeld na zestig seconden, een gewone spelersblik naar een tam landdier en drie dier-close-ups. De route faalt ook numeriek bij open kubusvlakken of fout grondcontact.
- De nieuwe `--randomwalk`-route kiest via een vastlegbare route- en wereldseed een droge willekeurige positie, loopt en kijkt daar zestig seconden rond en bewaart iedere vijf seconden een wereldbeeld. De route controleert speler- en cameracollision, beeldvariatie, geldige driehoeken, zichtbare entity-geometrie, dier-grondcontact en herhaald kijken tegen een wand; elk rapport bevat de exacte seed, locatie, route-afstand en een contact sheet.
- De random-walk-agent kijkt lichaamsbreed vooruit, stapt achteruit bij een blokkade en kiest uit zestien richtingen een vrije herstelroute. Dit is tijdens ontwikkeling aangescherpt nadat de eerste versie aantoonbaar tegen terreinwanden en later tegen een boom bleef kijken.

### Verificatie

- Volledige Release xUnit-suite: 1.072/1.072 tests geslaagd, 0 overgeslagen, in 18m36s.
- Eerste-minuutrender: 1.888 grondcontactmetingen, 0 fouten; grootste bedoelde offset was 0,450m van een springend springhaasje.
- Bewegingsharness na aanscherping: 178/178 checks geslaagd in 69 scenario's; 1.050 extra grondcontactmonsters en 0 fouten in de algemene dierenscene.
- Zeven random-walk-expedities over vijf wereldseeds liepen samen 420 gesimuleerde seconden en leverden 91 periodieke bewijsframes op. De zes definitieve runs hadden 0 speler-, camera-, geometrie-, entity-zichtbaarheids- en grondcontactfouten en telden samen 11.100 dier-grondmetingen. De laatste route is zonder seed gestart; de automatisch vastgelegde reproduceerseed was `1309778593`.
- De probleemrun `routeSeed=741005`, `worldSeed=42` ontdekte reproduceerbaar de recall-afwijking van `+0,400m` en een onjuiste kolomtop van 251m boven een hond. Na de steunvlak- en recallfix gaf exact dezelfde minuut 2.040 metingen en 0 fouten.
- Eenhoorn handmatig op volledige resolutie bekeken vanuit drie richtingen: gesloten vlakken, vier poten op het gras en geen rechthoekige schaduw. De normale spelersopname vereist bovendien een vrije zichtlijn zonder terrein of ander personage voor het dier.
- Bewijsbeelden: `shots/firstminute_00_player_start.png`, `shots/firstminute_01_after_60s.png`, `shots/firstminute_02_player_looks_at_Eenhoorn.png` en `shots/firstminute_03_Eenhoorn_*.png`.
- Random-walk-bewijs: `shots/randomwalk_seed741001_contact_sheet.png` tot en met `shots/randomwalk_seed741006_contact_sheet.png`, met een gelijknamig `*_report.txt` per expeditie.
- Ingebouwde allescheck op de nieuwe standalone: 13/13 secties OK, 0 issues. Daaronder vallen standalone/health, toegankelijkheid, HUD, actiezoeker, 30 UI-samples, beeldcontrole, crashadvies, Windows-foutrapport, rapporten, supportpakket en backup.
- Verse visuele guard: boot en vogelzwerm bleven op 120/60/24/14/12m zichtbaar in standaard, compact en breed beeld; alle viewport-, persistentie-, centrering- en close-framepoorten waren OK. De contact sheet is daarna ook handmatig bekeken.

## 2026-07-13 - Rendering, performance en makkelijker LAN-samenspelen

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52.236.276 bytes
- SHA256: `828d2118b4b2e97ab4653f5387891ca2ea609fa6e9267ee50efef140c736c514`
- Normaal starten blijft `asInvoker`: geen administratorrechten of UAC nodig.
- Alleen `Firewall toestaan` vraagt doelbewust Windows-toestemming om hostregels te maken.

### Rendering en performance

- Grote diagonale terreinvlakken zijn opgelost: een distant-terrain-driehoek mengt nooit meer UV's van verschillende atlastegels. Gemengde kust- en hoogtecellen krijgen een veilig representatief materiaal.
- De distant-renderharness telt nu de werkelijk uitgestuurde onveilige atlasdriehoeken en faalt als dit niet nul is. Laatste run: 66.844 driehoeken, 2.484 materiaalovergangen en 0 gemengde atlasdriehoeken.
- Verre chunks schakelen eerder over op detail-LOD (112m, terug naar vol detail onder 96m). Dit verlaagt in de gemeten scene de indexlast van 2.236.530 naar 920.262; de far-band daalt 86,5%.
- Een sweep van 32 camerastanden bleef onder de visuele afwijkingslimiet (min/gem/max 66/743/1.617 pixels, limiet 1.620); handmatige A/B-inspectie van de zwaarste stand liet geen zichtbaar verschil zien.
- Dezelfde benchmarkscenes kosten met verre-LOD gemiddeld 9,3/15,6/12,1/8,3ms op 4/30/90/180m hoogte, tegenover 20,4/28,5/39,2/27,3ms met de optimalisatie uitgeschakeld.
- Decoratieve boten en vogelzwermen sturen geen overbodige gespiegeld-dubbele billboards meer naar de wolkenpass. Alleen de entity-pass krijgt nog de achterzijde die zijn front-cull-instelling vereist.
- Vogelzwermen gebruiken nu de transparante vogelsprite uit de atlas in plaats van donkere wolkentegels. Dichtbij blijven zeven losse vogels in V-formatie zichtbaar zonder rechthoekige achtergronden.
- De meshlag-vluchttest eindigt met 0 ontbrekende chunks: streaming houdt snelle verplaatsing bij zonder blijvende gaten.
- De visuele guard controleert boot en de werkelijke blauwe vogelsprite op 120m, 60m, 24m, 14m en 12m in standaard, compact en breed beeld. Alle 30 afstand-/viewportcombinaties zijn zichtbaar, gecentreerd en in beeld gebleven.

### Speelbaarheid en UI

- `Spelletjes & actie` gebruikt nog steeds precies een gekozen kompas/pijl en bevat nu ook live LAN-spelers als doel, inclusief naam, afstand en volgen.
- Het LAN-scherm toont duidelijke status- en syncinformatie, spelernaam, host/joinroutes, joincode kopiëren, stoppen en de firewallactie.
- Nieuw: `Host zoeken` ontdekt een FunCraft-host automatisch via globale én adapterspecifieke UDP-broadcasts en verbindt daarna via het bestaande TCP-spelprotocol. De probe wordt herhaald om incidenteel pakketverlies op wifi op te vangen; een Windows `ConnectionReset` van een lege bestemming beëindigt het zoeken niet voortijdig.
- Joincodes geven actieve private wifi/ethernetadressen met gateway voorrang boven VPN- en virtuele adapters; loopback en APIPA worden niet als laptopadres aangeboden.
- Spelernamen zijn wijzigbaar zonder opnieuw verbinden, worden opgeschoond en begrensd tot 24 tekens, en blijven bewaard in de save.
- De LAN-lobby heeft 9 knoppen zonder overlap of tekstoverflow. De volledige klikcontrole activeerde 125 algemene en 41 spelletjesroutes zonder crash.

### LAN en stabiliteit

- Interactieve en commandoregel-joins verbinden op de achtergrond, hebben een time-out van 6 seconden en blokkeren het spelvenster niet.
- Host- en clientverzendqueues zijn begrensd en asynchroon; een niet-lezende peer kan de game-loop niet vastzetten of onbeperkt geheugen laten groeien.
- Posities worden op 15Hz gesynchroniseerd en lokaal glad geïnterpoleerd. Oude remote spelers verdwijnen na uitblijvende snapshots en keren na herstel weer terug.
- Grote bestaande werelden worden in complete, begrensde editbatches naar een nieuwe client gestuurd; nieuwe bouwacties blijven tijdens verbinden eveneens begrensd.
- De firewallknop maakt op de host een private TCP-regel voor speldata en een UDP-regel voor automatische hostdetectie. Normaal spelen en lokaal testen blijven zonder adminrechten werken.

### Verificatie

- Volledige Release xUnit-suite: 1.066/1.066 tests geslaagd, 0 overgeslagen, in 17m41s.
- De speelbaarheidsharness volgt nu het actuele vliegtuigcontract (`W/S` neus, `R/F` snelheid, `Space/Shift` hoogte), heeft een snelle `--movement`-route en slaagde met 176/176 checks in 69 scenario's. Gemeten: volledige bocht 6,60 rad, rem/cruise/gas 11,3/22,5/33,8 m/s, auto-level zonder overshoot en raketplafond exact 520m.
- Ook de volledige render- en simulatieharness eindigde met `ALL CHECKS PASSED`: 14 terreinposities hadden geen donkere strook boven 2% (ergste 1,85%) en zes diagonale camerahoeken bleven tussen 0,30% en 0,53%.
- Gerichte LAN/discovery-test: automatische UDP-hostdetectie 5 opeenvolgende runs groen.
- Standalone-check: OK; draagbare map bevat geen vereiste losse runtime-DLL's of runtime-mappen.
- Ingebouwde allescheck: 9/9 secties OK, 0 issues; verse backup en supportpakket zijn geverifieerd.
- De voorafgaande netwerkidentieke build doorstond een 10-minuten LAN-soak: host 601,5s, client 599,1s, 4.991/4.965 snapshots, twee spelers zichtbaar, 34.894 edits ontvangen, nieuwe bouwdelta en beide sprongen bevestigd, remote naam/actiedoel/volgen OK, 0 issues en `lanNoAdminRuntimeProof=OK`.
- De nieuwe renderbuild is opnieuw exact getest met twee standalone-processen gedurende 60/58 seconden: 491/466 snapshots, twee spelers zichtbaar, 34.894 edits ontvangen, bouw- en sprongsync OK en geen administratorrechten.
- De LAN-bewijs-PNG's zoomen op de eerste zes seconden en tonen beide sprongcurves met timing. De wrapper controleert nu bovendien afmetingen, kleurvariatie en voldoende blauwe, gele en lichte grafiekpixels; een leeg of halfgeschreven bewijsbestand kan niet meer slagen.
- Bewijs: `lan-controle-final-build-10min-20260713.txt` en `lan-evidence-final-20260713/lan-host-evidence.png` plus `lan-client-evidence.png` in de standalone-map.

## 2026-06-29 - Headless LAN-bewijs

- `Controleer FunCraft LAN.ps1` vraagt nu standaard headless evidence aan en rapporteert `lanJumpSyncStatus` en `lanEvidenceStatus`.
- De headless host en client maken ieder een PNG: `lan-host-evidence.png` en `lan-client-evidence.png`.
- De PNG's tonen timing, speler-slots, remote-spelerstatus en een Y-positie grafiek waarin een lokale sprong en de via LAN ontvangen remote sprong zichtbaar zijn.
- De bewijsrun blijft zonder gamevensters/rendering draaien en vereist geen administratorrechten.

## 2026-06-28 - Stabiele testbuild

Buildgegevens:

- Exe: `src/EliasCraft.Game/bin/Release/standalone/FunCraft.exe`
- Grootte: 52214678 bytes
- Gewijzigd: 2026-06-28 14:43:26
- SHA256: `94614e9b92e49eb288153818a6611eb1ef543a2e81be18226c7493acefb4c41a`
- Supportpakket: `src/EliasCraft.Game/bin/Release/standalone/support-bundles/eliascraft-support-20260628-133516-726-p92420.zip`
- Supportpakket SHA256: `0b31da7ade13aac88372cf981d53d93eb339a88aa7317bcb3bb70f69166df986`
- Backup: `src/EliasCraft.Game/bin/Release/standalone/backups/eliascraft-data-backup-20260628-133502-893.zip`
- Backup SHA256: `3b0b75f91ba1c698f8182386ca8d456ac17c10815df408eaadd2d8bd904df7fc`

### Nieuw en zichtbaar in de game

- Het scherm `Spelletjes & actie` helpt nu beter met kiezen waar iets te beleven valt: acties, voertuigen en schatten staan in een lijst met afstand, richting, prioriteit, reden en aankomsthint.
- De HUD gebruikt nog maar een gekozen actie-pijl/kompasdoel tegelijk. Je kiest dus wat de pijl volgt in plaats van meerdere pijlen tegelijk in beeld te krijgen.
- Er zijn nieuwe HUD-profielen toegevoegd: actie-focus, compact HUD, slimme hints, fotomodus, online essentials en volledige HUD.
- In het pauzescherm en het spelletjesscherm kun je sneller wisselen tussen rustige HUD, compacte HUD en volledige HUD.
- Het helpmenu heeft nu een derde pagina: `Hulp & diagnose`.
- Op `Hulp & diagnose` kun je direct in de game een healthcheck, snelle allescheck, supporttekst en supportpakket maken, rapporten openen, de supportmap openen, rustige HUD inschakelen en het toegankelijkheidsprofiel kiezen.

### Stabiliteit, support en herstel

- Er is een ingebouwde snelle `--alles-check` toegevoegd, zodat `FunCraft.exe --alles-check` niet meer per ongeluk de normale game start en blijft wachten.
- Supportpakketten bevatten nu healthcheck, allescheck, integriteit, toegankelijkheid, crashadvies, Windows-foutinformatie, HUD/widget/action-target rapporten, UI-samples en visual-check bewijs.
- Supportpakketten en backups kunnen direct geverifieerd worden met `--verify-support-bundle=latest` en `--verify-backup=latest`.
- Er zijn scripts en CLI-routes toegevoegd voor backup maken/herstellen, save repair, settings repair, startup repair, crashrapporten, Windows Application Error hulp en rapportoverzichten.
- De standalone build ruimt runtime-bijbestanden op, zodat de testbare distributie een enkele `FunCraft.exe` blijft.
- De Windows-manifest instelling staat nu expliciet op `asInvoker`, zodat `FunCraft.exe` zichzelf niet als administrator probeert te starten.

### Beeld, objecten en UI

- De rare tekst/encoding in titels en labels is aangepakt voor de nieuwe help- en diagnosepaden.
- De visuele checks controleren nu expliciet of objecten zoals boten en vogelzwermen dichtbij zichtbaar blijven in plaats van te verdwijnen.
- Er zijn contact sheets en UI-samples toegevoegd voor settings, pauze, help, spelletjes, HUD-profielen, adventure/book schermen en LAN lobby.
- Button coverage controleert label-overflow, knop-overlap, footer-clearance en visuele inhoud voor belangrijke overlays.
- Near-camera deeltjes en witte massa's voor de camera zijn afgezwakt/gecontroleerd via render- en visual-guard tests.

### Toegankelijkheid en comfort

- Nieuw toegankelijkheidsprofiel: minder beweging, hoog contrast, rustige HUD en extra ontdekhulp.
- Rustige HUD houdt vizier, hotbar en gekozen actie-pijl zichtbaar, maar verbergt ruis zoals extra pijlen en permanente hints.
- Compact HUD en slimme hints bieden tussenstanden voor spelers die wel score/opdrachtinformatie willen, maar minder schermdrukte.
- De diagnosepagina kan het toegankelijkheidsprofiel direct toepassen zonder losse scripts.

### Testen en kwaliteitscontrole

- `--button-test` rendert en controleert UI-samples, knoplabels, overlaps, HUD-profielen en het spelletjesscherm.
- `--alles-check` controleert standalone-status, health, toegankelijkheid, actiezoeker, HUD, rapporten, visuele bewijsregels, supportpakket en backup.
- De volledige xUnit-suite is opnieuw groen: 1015/1015 tests geslaagd in 30m48s.
- Voor deze build zijn Release standalone, snelle allescheck, button coverage, supportpakket en backup opnieuw geverifieerd.
- Nieuw: `Controleer FunCraft LAN.ps1` en `Controleer FunCraft LAN.bat` starten lokaal een LAN-host en LAN-client zonder administratorrechten en controleren snapshots, remote-speler-zichtbaarheid en bouwen-sync.
- LAN-verificatie op de nieuwe standalone: 23/23 gerichte LAN-tests geslaagd, standalone-check OK en `lanNoAdminRuntimeProof=OK`.
- De LAN-headless test ondersteunt nu lange soak-runs tot 900 seconden en controleert dat host/client de gevraagde duur echt volmaken.
- 10-minuten LAN-soak op dezelfde PC: host 601,4s, client 598,2s, 4954 host-snapshots, 4928 client-snapshots, remote-speler-zichtbaarheid OK, bouwen-sync OK, `lanSoakStatus=OK`.

### Bekende testnotities

- Een restore met netwerktoegang kan in deze omgeving traag of geblokkeerd zijn; daarom zijn de lokale checks zoveel mogelijk met `--no-restore` uitgevoerd.
- De zware PowerShell `Controleer FunCraft alles.ps1` blijft bestaan voor uitgebreide visuele checks. De ingebouwde `FunCraft.exe --alles-check` is bewust sneller en hangt niet.
