{"id":18541671,"url":"https://github.com/geigi/what_the_hack","last_synced_at":"2026-04-27T20:31:39.222Z","repository":{"id":86745304,"uuid":"164422480","full_name":"geigi/what_the_hack","owner":"geigi","description":"What the Hack is an extensible and adaptable Serious Game to improve Security Awareness.","archived":false,"fork":false,"pushed_at":"2019-04-28T17:19:35.000Z","size":26837,"stargazers_count":18,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-15T04:09:14.381Z","etag":null,"topics":["pixel-art","serious-game","unity"],"latest_commit_sha":null,"homepage":"https://geigi.github.io/what_the_hack/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geigi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-07T11:25:44.000Z","updated_at":"2025-01-04T12:47:01.000Z","dependencies_parsed_at":"2023-03-05T06:15:30.860Z","dependency_job_id":null,"html_url":"https://github.com/geigi/what_the_hack","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/geigi/what_the_hack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geigi%2Fwhat_the_hack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geigi%2Fwhat_the_hack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geigi%2Fwhat_the_hack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geigi%2Fwhat_the_hack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geigi","download_url":"https://codeload.github.com/geigi/what_the_hack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geigi%2Fwhat_the_hack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32354565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pixel-art","serious-game","unity"],"created_at":"2024-11-06T20:05:45.394Z","updated_at":"2026-04-27T20:31:39.204Z","avatar_url":"https://github.com/geigi.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![What\\_the\\_Hack][image-1]\n\n![][image-2]\n\nHave you ever wondered what \"White Hat Hacking\" is all about? Try it yourself as the head of a white hat hacking company in **What the Hack**!\nGet started by hiring your first employee, buy your first computer and accept one of many generated missions. But it's not as easy as it sounds - each employee has it's strengths and weaknesses, so be sure to find the perfect mission for your team.\nWhile playing the game you'll learn a lot about IT security, hacking and prevention of cyber attacks.\n\n**What the Hack** is a modular game. Creating extensions is easy with the free [Unity Editor][1]. Have a look at section [Mod Development][2] for more information.\n\n# Features\n- What the Hack is a platform\n\t- Support for all kind of different extensions! (called *Mods*)\n\t- Multiple difficulties: game content for everyone\n\t- Interactive missions that test your knowledge\n- Base Game\n\t- The base game ships with a special employee and basic missions about IT-security\n- Two game modes: Classic and Realtime!\n\t- **Classic**: Just as every other game. Start it and enjoy! Automatic saving is included.\n\t- **Realtime**: Even when you close the game, the game time passes. Without draining your battery. You’ll get notifications when your employees need your assistance! \n\n# Download\n## Main Game\nAndroid:\t[Download v1.0.4][3]\n\nLinux:\t\t[Download v1.0.4][4]\n\nmacOS:\t\t[Download v1.0.4][5]\n\nWindows:\t[Download v1.0.4][6]\n\n## Java Cryptography Extension Addon\nDesktop: [Download v1.0][7]\n\nAndroid: [Download v1.0][8]\n\nSource: [GitHub Repository][9]\n\n## Development\nMod Creator: [Download UnityPackage v1.0.4][10]\n\nMod Assets: [Download UnityPackage v1.0][11] \n\nTemplate for Addon-APK: [GitHub Repository][12]\n\n# Installing a mod\n## Addon-Apps on Android\nOn Android you can install special Addon-Apps, that contain extensions for **What the Hack**!\n\n## Manual\nMods are served as a zip file and contain a folder which needs to be copied to specific locations depending on your operating system.\n- **Android:** `Android/data/com.github.geigi.wth/files/Mods/` (on external storage or SD card)\n- **Linux \u0026 macOS \u0026 Windows:** `Mods` directory side by side with the executable\n\n# Development\n## Requirements\nWhether you want to contribute to the source code or you want to create a mod, the only thing you'll need is [**Unity v2018.3.7f1**][13]. \n\n**Important**: You must use this exact version of Unity because **What the Hack** can only load Mods that are compiled with the same version as the base game. \n\n## Components\nThere are three main components:\n- The *Main Game* Unity project which is located in this directory.\n- The *Wth.ModApi* and *Wth.ModApi.Editor* assemblies contain the addon API. They are located in the `Assets/Wth.ModApi` folder. \n- The *AndroidPlugin* Android Studio project which is located in the `AndroidPlugin` folder. It handles the installation and deinstallation of addon apps.\n\n## Getting the project started\n1. Clone the repository\n2. Open Unity and the project folder `./`\n\n# Mod Development\n## How far can I go?\n_What the Hack_ allows all kinds of changes to the game. Each mod will be it's own _game mode_ with unique names, employees, skills and missions. This allows you to create a mod with very specific learning content as well as new gameplay aspects. None of those modifications are mandatory. Here is a list of possible modifications:\n- Create a specific set of skills (this is required for any of the following modifications)\n- Create unique employees with custom sprites\n- Create missions with custom actions for the player\n- Create unique names that are used for employees and for placeholders in missions\n- Implement multiple difficulty levels\n\n## Getting Started\n1. Before you create a mod, have a look at the [development requirements][14]. \n2. After installing Unity, create a new Unity Project and drag the `What_the_Hack Mod Tools.unitypackage` into the Editor. This package contains the API as well as the GUI tools to create new mods.\n3. If you want to create interactive missions: Drag the `What the Hack Mod Assets.unitypackage` into the Editor. This contains prefabs for commonly used UI items like buttons, dropdowns, toggles, scroll views and all of the official sprites and fonts.\n4. Create a `ModInfo` Scriptable Object: `Assets \u003e Create \u003e What_The_Hack ModApi \u003e Mod Info`. Each mod requires a unique ID and a banner image with the resolution _400\\*182_. This scriptable object will be the gathering point for your content. If some content is missing when loading the mod, it probably isn't included in the `ModInfo`.\n5. Get started by using the custom Employee, Skill, Mission and Name Creator GUIs which can be found under `Tools \u003e What_The_Hack ModApi`. \n6. All the content you generate from the Creators are stored in `Assets/Data`.\n\n## Creating missions (and other content)\nThis chapter describes how to create custom missions. Creating Skills, Employees or Names is very similar to creating missions. Therefore there won’t be a section for each of the possible modifications.\n\n1. If you want to create custom missions, you first have to create a skill set in the _Skill Creator_. The missions you define use the skills from your custom skill set. If you want to use the default skill set, you can download it from this repository: `Assets/Data/Skills`.\n2. Create a new mission list from the _Mission Creator_.\n3. Click on your `ModInfo` file and drag the freshly generated `MissionList` from `Assets/data` into the according field of the `ModInfo`. Otherwise your missions won’t load in What the Hack.\n4. Add a new mission in the _Mission Creator_.\n5. Don’t forget to hit the **Save** button when you modified your missions.\n\n## Creating a interactive mission\nInteractive missions have so called **MissionHooks** that define a interaction. Each mission can have multiple hooks. Each hook contains a _GUI Prefab_ that will be displayed, as soon as the user opens the interaction window in the game. You can specify at which progress level a hook will be spawned.\n\nEach interaction has only two outcomes: Success or Fail.\n\n- Create a new `MissionHook` object: `Assets \u003e Create \u003e What_The_Hack ModApi \u003e Missions \u003e MissionHook`\n- Define the spawn time in the inspector.\n- Find the `HookTemplate` from the `What the Hack Mod Assets` in `Assets/Prefabs/` and duplicate it.\n- Open the prefab. You will see the UI in the Scene view of Unity. Remove the demo buttons from the scene graph.\n- You can now create your own UI. Use the Elements you find in the `Assets/Prefabs/` folder.\n- The GUI is now created, but it doesn’t contain any logic. You have to report whether the interaction has finished successfully or not. If you use a simple dropdown or toggles to ask the user a question, you can use the included and generic `Verifier` Components from the Mod API: `DropdownHookVerifier`and `ToggleHookVerifier`. Attach one of those components to the root object of your prefab. \n- If you want to create a more complex interaction, you can also write your own code. To do this, create a new Script. Instead of inheriting from `MonoBehaviour`, you must inherit from `ModBehaviour`. You can use this class like any `MonoBehaviour`. If you forget to use `MonoBehaviour` you won’t be able to export the mod.\n\t- Implement your desired logic. When the interaction is completed and you want to report the success/failure, you need the `MissionHook` object that contains this interaction. Just add it as a public variable and assign it in the inspector. To report success call `Hook.RaiseSuccess()`, for failure call `Hook.RaiseFailure()`.\n\t- Below you find a reference example:\n\n```cs\npublic class DropdownHookVerifier : ModBehaviour\n{\n    public Button OkButton;\n    public Dropdown Dropdown;\n    public MissionHook Hook;\n    public List\u003cint\u003e ValidOptions;\n\n    private void Start()\n    {\n        OkButton.onClick.AddListener(Verify);\n    }\n\n    private void Verify()\n    {\n        if (ValidOptions.Contains(Dropdown.value))\n            Hook.RaiseSuccess();\n        else\n            Hook.RaiseFailed();\n    }\n\n    private void OnDestroy()\n    {\n        OkButton.onClick.RemoveListener(Verify);\n    }\n}\n```\n\n- Now you have to assign your prefab to the `MissionHook` object you created at the beginning. Do this in the inspector.\n- Finally, you have to add your `MissionHook` to your mission. To do this, open the _Mission Creator_ and add your hook.\n\n## Exporting a mod\n- To export your mod, go to `Tools \u003e ModTool`.\n- Define a mod name, author, description and version number. Also select, for which platforms you want to export the mod.\n- Finally select the content you want to export. What the Hack doesn’t support custom Scenes. Therefore you can deselect them. Also deselect _Code_ if you didn’t create any custom code. Otherwise the mod will not work properly.\n- Set a output directory.\n- Hit `Export`!\n\n## If saving and loading a game doesn’t work\nEach ScriptableObject you define (the files in the `Assets/Data` folder) need to be referenced in a `ScriptableObjectDictionary`. This file is created automatically and also managed automatically by the _Creator_ windows. If something goes wrong have a look at this dictionary and whether every ScriptableObject from your mod is included here. Otherwise open the according Creator and click _Save_. This should fix the problem in most cases.\n\n# Known bugs\n- Game does not open when tapping on a notification (Android). This is a bug in the Unity Mobile Notifications package.\n\n# Cheers to the original creators! ❤️\n- Hendrik Schulte ([@hendrik-schulte][15])\n- Florian Kaulfertsch\n- Dominik Köhler\n\n# Special Thanks 🎉\n- Tobias Melzer ([@tobias-melzer][16])\n- Prof. Dr. Holger Schmidt\n\n# Third party libraries\nThe following third party libraries are used by this game:\n\n## Libraries by Unity3D:\n- [2d-extras][17] - MIT\n- [Asset Bundle Browser][18] (not included in build) - [Unity Companion License][19]\n- [Legacy Image Effects][20] - No Licence\n\n## Other Libraries\n- [Unity Enhanced][21] - MIT\n- [ModTool][22] - MIT\n- [KinoGlitch][23] - No licence\n- [unityglitch][24] - [Creative Commons Attribution 3.0 Unported][25]\n- [NSubstitute][26] - BSD Licence\n\n## WTH contains code based on projects\n- [Pathfinding][27] - MIT\n\n## Sounds\nsf3-sfx-menu-select.wav by broumbroum freesound.org\n\n## Fonts\nhttp://www.zone38.net/font/\n\n![][image-3]\n\n[1]:\thttps://unity3d.com/de/get-unity/download/archive\n[2]:\t#mod-development\n[3]:\thttps://github.com/geigi/what_the_hack/releases/download/1.0.4/What_the_Hack-1.0.4.apk\n[4]:\thttps://github.com/geigi/what_the_hack/releases/download/1.0.4/What_the_Hack_1.0.4_linux.zip\n[5]:\thttps://github.com/geigi/what_the_hack/releases/download/1.0.4/What_the_Hack_1.0.4_macOS.zip\n[6]:\thttps://github.com/geigi/what_the_hack/releases/download/1.0.4/What_the_Hack_1.0.4_win.zip\n[7]:\thttps://github.com/geigi/wth-java-crypto-mod/releases/download/1.0/What_the_Hack.JCE.v1.0.zip\n[8]:\thttps://github.com/geigi/wth-java-crypto-mod/releases/download/1.0/What_the_Hack.JCE.v1.0.apk\n[9]:\thttps://github.com/geigi/wth-java-crypto-mod\n[10]:\thttps://github.com/geigi/what_the_hack/releases/download/1.0.4/What_the_Hack.Mod.Tools.v1.0.4.unitypackage\n[11]:\thttps://github.com/geigi/what_the_hack/releases/download/1.0.3/What_the_Hack.Mod.Assets.v1.0.unitypackage\n[12]:\thttps://github.com/geigi/wth-examplemod-apk\n[13]:\thttps://unity3d.com/de/get-unity/download/archive\n[14]:\t#requirements\n[15]:\thttps://github.com/hendrik-schulte\n[16]:\thttps://github.com/Tobias-Melzer\n[17]:\thttps://github.com/Unity-Technologies/2d-extras\n[18]:\thttps://assetstore.unity.com/packages/slug/93571\n[19]:\thttps://unity3d.com/legal/licenses/Unity_Companion_License\n[20]:\thttps://assetstore.unity.com/packages/essentials/legacy-image-effects-83913\n[21]:\thttps://github.com/hendrik-schulte/UnityEnhanced\n[22]:\thttps://github.com/Hello-Meow/ModTool\n[23]:\thttps://github.com/keijiro/KinoGlitch\n[24]:\thttps://github.com/staffantan/unityglitch\n[25]:\thttp://creativecommons.org/licenses/by/3.0/deed.en_GB\n[26]:\thttp://nsubstitute.github.io\n[27]:\thttps://github.com/SebLague/Pathfinding\n\n[image-1]:\tSprites/ui/GameLogo.png\n[image-2]:\tSprites/ui/base_game_banner.png\n[image-3]:\thttps://gitlab.com/geigi/what%5C_the%5C_hack/badges/master/build.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeigi%2Fwhat_the_hack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeigi%2Fwhat_the_hack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeigi%2Fwhat_the_hack/lists"}