Skip to content

MKuranowski/HSTool

Repository files navigation

HSTool

HSTool is a tool for playing Jet Lag: The Game — Hide and Seek Transit Game.

How to create a preset?

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;
}

Development

HSTool is a single-page application written using React, Bootstrap, Leaflet and Vite. Deno is required to build and develop the application.

  • deno task dev starts the application in development mode with hot reload,
  • deno task test runs unit tests,
  • deno task lint checks the code,
  • deno task build builds the application in release mode for distribution under the dist folder.

License

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/.

About

Tool for playing Jet Lag: The Game - Hide and Seek

Resources

License

Stars

Watchers

Forks

Contributors

Languages