A Dark Room — source and license notice ====================================== A minimalist text adventure by Michael Townsend and the A Dark Room contributors. StateManager's original author is Michael Galusha, as recorded in that file. Upstream project: https://github.com/doublespeakgames/adarkroom This browser distribution is based on the complete fixed commit identifier: 1fada4620b6c66bd07bf15a3f1eb8223df8bc1d7 https://github.com/doublespeakgames/adarkroom/tree/1fada4620b6c66bd07bf15a3f1eb8223df8bc1d7 The original entry comment calls this v1.4; the game's internal save-format version is 1.3. The full commit identifier, rather than either version label, identifies this distribution. Game source and modifications ----------------------------- The A Dark Room game and the Play Games Daily modifications described below are made available in Source Code Form under the Mozilla Public License, version 2.0. The complete license is supplied beside this notice as LICENSE.txt: ./LICENSE.txt https://www.mozilla.org/MPL/2.0/ The delivered game files under ./script/ and ./css/, together with ./index.html, are the editable source used to run this distribution. They are served directly, without minifying or compiling the MPL-covered game code. Download any file at its displayed relative path, or use your browser's Save Page / developer tools to save the actual resources. There is no separate build step for the game. The public ./version.json lists the complete distributed file inventory and SHA-256 hashes, including the local modifications. The exact original source for comparison is available at the fixed upstream link above. Changes made for Play Games Daily on 2026-10-18: * index.html: English-only self-hosted entry; local jQuery; external analytics, language/CDN loaders, app-store artwork, and audio scripts omitted; source credit and a restrictive Content Security Policy added. * script/engine.js: automatic saves use only odd-caper:a-dark-room:state:v1 in this origin's localStorage. Restart touches only that game key. Import validates decoded JSON before replacement; unreadable saved data is retained rather than silently overwritten. Export also works from the in-memory state if storage is unavailable. Analytics, cross-promotion menu items, language selection and sound controls removed. Startup announces readiness to the containing page. Editable fields keep normal keyboard input; arrow-key default scrolling is prevented in play. * script/state_manager.js: state property paths are walked directly, replacing eval while retaining the game's state API and numeric rules, including its legacy bare supply keys such as outfit[cured meat]. Dangerous prototype keys are rejected, and paths never evaluate code. * script/events.js: the promotional event pool is omitted. * script/space.js: app-store promotions omitted; gameplay and endings retained. * script/Button.js: action buttons also support focus, Enter and Space. * script/odd-caper-runtime.js: local English substitution and UTF-8 Base64 helpers; silent audio interface; same-origin frame lifecycle messages; suspend/resume of timers and animation time; save on pause and page exit. Reports one start message to the containing page after a successful fire, resource, worker, supply or exploration action changes gameplay state. Readiness, menu clicks and idle updates do not report a start. The game sends no analytics requests and does not report completion. * css/odd-caper.css: focus, storage/device notices, paused display and credits; informational tooltips do not intercept clicks on neighboring controls. * lib/jquery.min.js: only the debug source-map reference was removed; library logic and the original copyright/license header remain unchanged. The game's original exploration-save behavior remains: world exploration is temporary until a safe return to the village. Closing and loading the game returns to the room; this is not an exact-position or mid-combat save system. No original audio files, web fonts, tracking scripts, or social widgets are included. The runtime is intended for a desktop browser and keyboard. Phone play has not been verified. Third-party libraries --------------------- 1. jQuery 1.10.1, Copyright 2005, 2013 jQuery Foundation, Inc. and contributors. Uses lib/jquery.min.js bundled in the fixed A Dark Room commit, with only its debug source-map reference removed. Library logic and the original copyright header are preserved. MIT license: ./lib/jquery-LICENSE.txt https://raw.githubusercontent.com/jquery/jquery/1.10.1/MIT-LICENSE.txt 2. jQuery Color 2.1.2, Copyright 2013 jQuery Foundation and other contributors. The exact lib/jquery.color-2.1.2.min.js bundled in the fixed commit is used. Its original header is preserved. MIT license: ./lib/jquery-color-LICENSE.txt https://raw.githubusercontent.com/jquery/jquery-color/2.1.2/MIT-LICENSE.txt The minified jQuery libraries are governed by their own MIT notices, not by a claim that they are the editable MPL game source. The legacy move/swipe, translation and Base64 helper libraries from upstream are not distributed.