Skip to main content

OHOL Bot

Project Overview

OHOL Bot is a private-server research scaffold for building One Hour One Life bots. The current milestone is a reproducible private server plus a live Python bot focused on movement: idle telemetry, chat-command follow mode, and smoother server-confirmed walking.

Key Features

  • HMAC login and persistent live session with keep-alive
  • Chat-driven follow, collect, camp stocking, and crafting commands
  • Obstacle-aware 8-way pathfinding with danger and stuck-tile avoidance
  • Terminal dashboard (--watch) showing live bot state, map, and diagnostics
  • 307-test regression suite with movement smoke verification scripts

Terminal Dashboard

OHOL Bot Dashboard
====================================================
Mode: run-live (6 Hz)   planner tick 22 (+3.4/5s)   world tick 30 (+3.9/5s)   server frames 2 (+0.6/5s)   KA pings 25 (+3.9/5s)
Account: bot_001@local   Player id: 2

Self
  Name: (unnamed)
  Lineage: Eve line: 2
  Position: (0, 0)   Home: unknown
  Age: 0.00 years (live estimate, 1yr/15s)
  Can move/self-act: no (need age 0.2+)   Stationary: yes
  Action blocked by: nothing
  Holding: nothing   Carried by: nobody
  Biome: Swamps (id 2, floor 0)

Actions
  Goal: none
  Last chat: none
  Last action: wait
  Actions sent: 0
  Status: waiting (idle)

Movement Map
  Tracked tiles: 76   Tracked biome tiles: 960
  Objects in range: 68 (radius 24)   Blocked tiles: 0   Danger tiles: 1
  Danger nearby: Wolf (0,-7)
  Last path: none yet
  Nearby biomes: Grasslands=395, Yellow Prairies=190, Swamps=255, Badlands=35

Local Tile Map
  ................o
  ...o...#o........
  ......#...o......
  .................
  .................
  oo..#............
  .................
  .................
  ........B....o..#
  o................
  .................
  .................
  ........o........
  ..........#......
  ....o....#.#.....
  .......o!.....#..
  ...........#.....
  B=bot L=leader T=target C=collect F=fire 1-8=camp *=path #=blocker !=danger f=food o=object p=player
  0,-4: Teosinte (object)
  5,0: Flowering Milkweed (object)
  -4,3: White Pine Tree with Needles (blocker)
  0,-7: Wolf (object)

Working memory (short)
  Objects in working memory: 68 (radius 24, 27 types)
  Long-term landmarks: 0
  Top types in working memory:
    - Bald Cypress Tree: 9
    - Juniper Tree: 8
    - Stone: 4
    - Tule Reeds: 4
    - White Pine Tree With Needles: 4
    - Clay Deposit: 3
    - Milkweed: 3
    - Sapling: 3
    - Wild Onion: 3
    - Canada Goose Pond With Egg: 2

Nearby players
  (none within range)

Technical Details

Technologies Used

  • Python (protocol client, movement planner, behaviors)
  • PowerShell scripts (private server setup and bot launchers)
  • pytest (307 unit and integration tests)
  • Private OHOL server sandbox (.ohol_runtime)
  • Custom OholProtocolClient with world state parsing

Open Source

The project is open source under the MIT license. Source code, documentation, and setup scripts are available on GitHub.

View on GitHub
OHOL bot