Hide from your friends. Real-world hide-and-seek, played on your street. Two teams, one street, one clock the players can’t bend. Prey hide; Hunters track the latest reports on a live map and tag them in person.
Install the free APK | Watch the 60-second film | Latest release
Free APK · Android 8.0+ · not on Play Store · status and limits
Live hunt in the app, “Riverside Run” · real OpenStreetMap tiles · Map data © OpenStreetMap contributors
Hunters see the latest report from each phone, not a perfect live feed. Prey see the field, the zone and their own position — never other players’ positions. The zone and the trails are the host’s call; the server keeps the clock.
- Zone — the area the host sets for the round.
- Latest report — where a phone last checked in, not where it is now.
- Trail — movement history, off unless the host turns it on.
- The clock — server-timed; it pauses for everyone or for nobody.
| 01 · ROOM The host creates the hunt and shares a six-character code with the group. |
02 · SIDES Everyone picks a side, Prey or Hunters, then readies up in the same room. |
03 · HUNT The server runs the rules: clock, zone, trails and report interval. |
04 · RESULT Full time. Prey win if anyone is still out; otherwise Hunters win. |
Real captures from the app, seeded with a believable “Riverside Run” game on a test server — same phone, same room, one honest run from the host plate to the final score.
![]() |
![]() |
![]() |
![]() |
| Home — host or join | Lobby — code, teams, ready | Live hunt — reports, trails, zone | Result — Hunters win, full time |
More screens
![]() |
![]() |
![]() |
![]() |
| Tag claim — confirm in person | Who did you tag? — pick the target | Chat — the room log | Light theme — same board |
![]() |
One minute, the whole loop. The hook, the two sides, how phones report position, how
Hunters track reports, how tagging works, and the server clock. Fully animated — no real people or stock
footage.
60-second explainer | 30-second cut | 15-second hook | six-second GIF |
| Rule | What the server keeps |
|---|---|
| The clock | Server-timed start, head start, pause/resume and full time. A pause shifts the clock for everyone, so nobody loses time. |
| The sides | Prey and Hunters are set per room. Prey positions are visible only to the Hunters in that room, only during the hunt. |
| Tags | A tag claim is stored, then confirmed or disputed by the Prey. A Huntmaster resolves disputes; duplicate claims cannot double-apply. |
| The zone | Open play or a circular zone with a step-down shrink and countdown. Boundaries are informational — the app does not stop you crossing them. |
| Reconnects | A dropped phone can rejoin. Room state lives on the server, not the phone, so losing signal does not bend the rules. |
| The map | Real OpenStreetMap tiles. Prey positions are the latest reports, not a perfect live feed. Trails are the host’s call. |
Why this exists: in most real-world games the rules are social. Here they are kept by the server, so an argument about the clock or a tag has an answer.
Free, signed APK. No account email. Not on Google Play. Android 8.0+ · about 2.3 MB · the current version, size and SHA-256 are always on the install page.
- Download the APK on the Android phone you will play on.
- Allow installs from this source when Android asks. If it does not ask: Settings → Apps → Special app access → Install unknown apps.
- Open ManHunt and create a local account — no email required. Host a hunt or join one with a code.
Play Protect may warn about a sideloaded app; that is normal for a signed APK installed outside a store. Install anyway only if you trust this repository. In-app updates verify the SHA-256 before installing.
ManHunt is an active hobby project, not a polished consumer product. Honest list:
- The hosted deployment is plain HTTP at a bare IP — session tokens and GPS data are not encrypted in transit. Use test data only, or self-host behind HTTPS.
- The hosted server is a test server. One VM, SQLite, no availability guarantee; data may be wiped. No email is collected, so there is no password recovery.
- Play with people you trust. GPS is shared with the Hunters in your room during a match. ManHunt is a game, not a safety or tracking service.
- Zones are informational. Players can physically leave the zone; the shrink countdown is not enforced server-side.
- Verified in CI on an Android emulator, not re-verified on physical phones. Real GPS battery behaviour depends on the device.
- Not on Google Play. Sideloading means “unknown sources”, possible Play Protect warnings, and no store-managed updates.
Security | Architecture | Deployment | Runbook | All documentation
Build it, or host it yourself
The backend is one Node.js process with the built-in SQLite driver — no database server, no Docker, no external services. A small game can run on one machine.
git clone https://github.com/MostafaAshry513/ManHunt.git
cd ManHunt/server
npm ci
npm start # http://127.0.0.1:8080To let phones on your network connect, bind all interfaces with HOST=0.0.0.0 npm start, then set the
server address on the app’s sign-in screen. Changing the server signs you out.
Quality gates run in CI on every push: server typecheck and node --test, a live HTTP/WebSocket smoke
test, a scripted match simulation, the Android debug/release builds, JVM tests, lint and an in-app test on
a real Android emulator.
Testing | API reference | Decisions | Contributing | Changelog
MIT licensed · Map data © OpenStreetMap contributors (ODbL) · free sideloaded APK, not on Google Play · ManHunt is a game, not a safety service.












