An alternative runnable placeholder for games in your Steam library so you can let the actual game rest while still accumulating play hours in Steam.
This application is a lightweight, distraction-free timer that replaces a game's executable to fool Steam into thinking the game is running. While it runs, Steam records active playtime for that entry. The window simply shows an always‑advancing elapsed counter in DD : HH : MM : SS with subtle animation and optional offset. It does not hook, fake processes, touch the filesystem beyond normal library usage, or communicate over the network.
Use it if you've migrated stores, lost legacy hours, or want to preserve hardware/energy by not keeping a heavy game executable open just to accumulate time. Close it any moment—no state is persisted unless you extend it.
READ CAREFULLY BEFORE USING:
-
🚨 THIS MODIFIES YOUR GAME FILES - You will be renaming the original game executable and replacing it with SteamTimer. Make backups first!
-
🚨 YOU CANNOT PLAY THE ACTUAL GAME while using SteamTimer. This tool is purely for accumulating hours when you're NOT playing.
-
🚨 STEAM WILL THINK THE GAME IS RUNNING - This fools Steam's process detection. Use responsibly.
-
🚨 POTENTIAL TOS VIOLATIONS - Purposefully inflating playtime may violate platform Terms of Service, achievements integrity expectations, or community norms. You alone are responsible for how you use this tool.
-
🚨 VERIFY GAME EXECUTABLE LOCATION - Make absolutely sure you're modifying the correct executable that Steam launches, not a launcher or updater.
-
🚨 REVERTING - To play the game again, you'll need to rename the original executable back to its original name and remove SteamTimer.exe.
You alone are responsible for how you use this tool. It transmits nothing; it just counts locally. However, manipulating playtime tracking may have consequences with your Steam account or game community standing. USE AT YOUR OWN RISK.
Project Meta
| Item | Value |
|---|---|
| Language | Python 3.11+ (tested) |
| GUI Toolkit | PySide6 (Qt 6) |
| Primary Dependency | PySide6>=6.7.0,<7.0.0 |
| Packaging (example) | PyInstaller (--onefile --windowed) |
| License | The Unlicense (Public Domain) |
| Platforms | Windows (primary), should also run on macOS / Linux with Qt libs |
| Author Credit | CodeKokeshi |
| Project Type | Single-file utility (no persistence) |
python -m venv .venv
.# Activate virtual environment
./.venv/Scripts/Activate.ps1
pip install -r requirements.txt
python main.py- Clean dark UI built with PySide6 (Qt 6)
- Large live-updating timer (days:hours:minutes:seconds)
- Optional starting offset (
--offset-hoursor--offset-seconds) - Always-on-top toggle
- Reset (with confirmation)
- Subtle animated pulse (can disable via
--no-accent-pulse) - Compact mode (
--compact)
python main.py --offset-hours 12.5
# or
python main.py --offset-seconds 4500python main.py --no-accent-pulsepython main.py --compactInstall PyInstaller:
pip install pyinstallerBuild:
pyinstaller --noconfirm --onefile --windowed --name "Steam Play Hours Simulator" main.pyThe executable will appear under dist/Steam Play Hours Simulator.exe.
(If the name with spaces causes issues adding to Steam, you can rename the EXE.)
Find the actual game executable (.exe) that Steam launches. This is typically in:
- Steam library folder:
C:\Program Files (x86)\Steam\steamapps\common\[GameName]\ - Right-click the game in Steam > Properties > Installed Files > Browse
- Look for the main
.exefile (not launchers, updaters, or other utilities)
Rename the original game's .exe file by adding extra characters at the end.
Example:
- Original:
game.exe - Renamed:
game_original.exeorgame.exe.bak
This preserves the original game file so you can restore it later.
- Build or download
SteamTimer.exe(see "Build a Standalone EXE" section below) or download from the releases. - Rename
SteamTimer.exeto match the original game executable name exactly- Example: If the game was
game.exe, rename SteamTimer togame.exe
- Example: If the game was
- Copy this renamed file to the game's directory (where you renamed the original)
This fools Steam into thinking SteamTimer is the actual game!
- Launch the game normally through Steam
- Steam will now run SteamTimer instead of the actual game
- The timer window will appear and start counting
- Steam will accumulate play hours while the timer runs
- The app displays elapsed time (it's just a timer, not actually playing the game)
To play the actual game again:
- Delete or rename the
SteamTimer.exefrom the game directory - Rename the original game executable back to its original name
- Example:
game_original.exe→game.exe
- Example:
- Launch normally through Steam
python main.py --helpReleased under The Unlicense. Public domain dedication—do anything you want; attribution appreciated but not required.
See LICENSE for the full text.