This repository contains OverPy source code for building Overwatch 2 Workshop gamemode Overwatch 1 Emulator.
Join Discord server dedicated to this gamemode: 6v6 Overwatch 1
Progress (✅ = Equivalent to OW1, ✔ = Close to OW1, Blank = Untouched):
Primary Fire (M1) | Secondary Fire (M2) | Ability 1 (Shift) | Ability 2 (E) | Ultimate (Q) | Other | |
---|---|---|---|---|---|---|
D.Va | ✅ | ✅ | ✅ | ✔ | ✔ | |
Junker Queen | ||||||
Orisa | ||||||
Ramattra | ||||||
Reinhardt | ✅ | ✅ | ✅ | ✅ | ✅ | |
Roadhog | ✔ | ✔ | ✔ | ✔ | ✔ | |
Sigma | ✅ | ✅ | ✅ | ✅ | ✅ | |
Winston | ✅ | ✅ | ✅ | ✅ | ✅ | |
Wrecking Ball | ✔ | ✅ | ✅ | ✔ | ✔ | ✅ Piledriver |
Zarya | ✅ | ✅ | ✅ | ✅ | ✔ | |
Ashe | ✔ | ✔ | ✔ | ✔ | ✔ | |
Bastion | ✔ | ✅ | ✅ | ✅ | ✅ | |
Cassidy | ✔ | ✔ | ✅ | ✅ | ✅ | |
Doomfist | ✔ | ✔ | ✔ | ✔ | ✔ | |
Echo | ✔ | ✔ | ✔ | ✔ | ✔ | |
Genji | ✅ | ✅ | ✅ | ✅ | ✅ | |
Hanzo | ✔ | ✔ | ✔ | |||
Junkrat | ✔ | ✔ | ✔ | ✔ | ✔ | |
Mei | ✅ | ✔ | ✔ | ✔ | ✔ | |
Pharah | ✔ | ✔ | ✔ | ✔ | ||
Reaper | ✔ | ✔ | ✔ | ✔ | ||
Sojourn | ||||||
Soldier: 76 | ✔ | ✔ | ✔ | ✔ | ✔ | |
Sombra | ✔ | |||||
Symmetra | ✔ | ✔ | ✔ | ✔ | ||
Torbjorn | ✔ | ✔ | ✔ | ✔ | ✔ | |
Tracer | ✅ | ✅ | ✅ | ✅ | ✔ | |
Widowmaker | ✔ | ✔ | ✔ | |||
Ana | ✅ | ✅ | ✅ | ✅ | ✅ | |
Baptiste | ✔ | ✔ | ✔ | ✔ | ✔ | |
Brigitte | ✅ | ✅ | ✅ | ✔ | ✔ | ✅ Shield Bash |
Kiriko | ||||||
Lifeweaver | ||||||
Lucio | ✔ | ✔ | ✔ | ✔ | ✔ | |
Mercy | ✔ | ✔ | ✔ | ✔ | ✔ | |
Moira | ✔ | ✔ | ✔ | ✔ | ✅ | |
Zenyatta | ✔ | ✔ | ✔ | ✅ | ✅ | ✅ Melee |
See releases
For instructions on how to use OverPy, see here
- Compile main.opy using the compiling instructions at OverPy Wiki
- Open a custom game in Overwatch
- Paste the compiled gamemode code
- Find an issue to fix (or submit one yourself)
- Fork this repo, make a new branch from main build, then fix the issue from that new branch
- Submit pull request to merge your branch to staging branch (make sure to reference the issue and resolve any potential merge conflicts)
- Wait for your PR to be reviewed and approved.
- For every 3~5 features added to staging branch, the devs will compile a staging build and test each feature manually.
- If your feature fails the test or fails to meet quality expectations, the PR corresponding to that feature will be reverted to drop the changes.
- After each feature in staging build is confirmed, the staging branch will be merged to main branch and a new main release build will be announced.
This codebase follows Python's PEP 8 style guide since OverPy follows Python syntax.
- Variable names should be snake_case. Example: hero_health_armor
- Function names should be camelCase. Example: applyCustomHealth()
- File names should be snake_case. Example: custom_heroes.opy
- No magic numbers. Constants should always be referred to by the names defined in ow1_constants.opy or ow2_constants.opy.
- Rule/subroutine names should follow the format:
rule "[file_name.opy]: My custom rule":
and@Name "[file_name.opy]: mySubroutineFunc()"
- Keep rules simple. Each rule should only perform one task. Try to limit rules to at most 10 lines of code and group large blocks of code into subroutines whenever possible. See
ow1/heroes/bastion.opy
as an example.