HSTool is a tool for playing Jet Lag: The Game — Hide and Seek Transit Game.
In order to use HSTool, you need a preset defining all stations, airports, parks, libraries, cinemas, etc. Currently, the only way to load a preset into the tool is through the clipboard.
Unfortunately, currently creating a preset requires technical skills, as you must be able to create a JSON file on your own, most likely with a little bit of scripting. The preset must conform to the following schema, described as a TypeScript interface with the help of GeoJSON types. IDs must be unique within each collection.
interface Preset {
name: string;
// In kilometers, defaults to 0.5
hidingRadius?: number,
// Time in minutes for the hider to answer a question, defaults to 5
answerTime?: number,
// Time in minutes for the hider to answer a photo question, defaults to 10
photoAnswerTime?: number,
// Multiplier for calculating time bonuses for quick answers, defaults to 0
// (disabled). The bonus is truncated (rounded down) to nearest minute for
// each question.
//
// For example, if a hider answers a photo question with 5 minutes left over,
// and this multiplier is set to 0.5, 2 minutes = ⌊2.5⌋ = ⌊5 * 0.5⌋ is added
// to their total hiding time.
quickAnswerMultiplier: number,
stations: FeatureCollection<Point, { id: string; name: string }>;
// Point collections can be used in "Match-Point", "Measure" and "Tentacle" questions.
// Examples include "airport", "cinema" or "park".
points?: Record<string, FeatureCollection<Point, { id: string; name?: string }>>;
// Line collections can be used in "Measure" questions.
// Examples include "coastline" or "international border".
lines?: Record<string, FeatureCollection<LineString, { id: string }>>;
// Area collections can be used in "Match-Area" questions.
// Examples include "landmass" or "3rd admin division".
// Polygons within each collection should not overlap.
areas?: Record<string, FeatureCollection<Polygon | MultiPolygon, { id: string; name?: string }>>;
// Overlay can be used to draw something immediately above map tiles,
// like transit lines available during the game.
// Features may be styled using simplestyle: https://github.com/mapbox/simplestyle-spec
// Point-like features are currently not displayed.
overlay?: FeatureCollection;
}HSTool is a single-page application written using React, Bootstrap, Leaflet and Vite. Deno is required to build and develop the application.
deno task devstarts the application in development mode with hot reload,deno task testruns unit tests,deno task lintchecks the code,deno task buildbuilds the application in release mode for distribution under thedistfolder.
HSTool is distributed under GNU GPL v3 (or any later version).
A notable exception is data under <public/presets/>. Those presets were generated based on data by © OpenStreetMap contributors and are therefore solely licensed under ODbL.
© Copyright 2026 Mikołaj Kuranowski
HSTool is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
HSTool is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with HSTool. If not, see http://www.gnu.org/licenses/.