Skip to content

Releases: Zezombye/overpy

v8.1.0 - Season 13

21 Dec 09:37
6bf24fd
Compare
Choose a tag to compare

What's Changed

Full Changelog: v8.0.4...v8.1.0

v8.0.4

05 Nov 19:16
6e16ab4
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v8.0.2...v8.0.4

v8.0.2 - Support Juno

02 Sep 05:43
43667b4
Compare
Choose a tag to compare

What's Changed

Full Changelog: v8.0.1...v8.0.2

v8.0.1

19 Jul 20:39
39926e9
Compare
Choose a tag to compare

What's Changed

  • fix(js macros): do not overwrite global console in local scope by @netux in #369
  • fix(custom game settings): add ultDuration% to Mauga by @netux in #370
  • fix: prevent state from previous compile from being retained by @CactusPuppy in #371
  • fix: custom game settings parsing and missing Roadhog setting by @CactusPuppy in #372

Full Changelog: v8.0.0...v8.0.1

v8.0.0

09 Jul 04:24
094dab5
Compare
Choose a tag to compare

What's Changed

  • BREAKING: Obfuscation directives are no longer supported.
    • Since obfuscation no longer works with the new Overwatch 2 Workshop editor, and since it is also a pain to maintain, support is being dropped for this feature.
  • BREAKING: All features reliant on JavaScript execution (namely JavaScript macros and custom game settings templating) no longer support the full ES6+ scope, though most ES6+ syntax can be used. Other types of macros are unaffected.
    • This change was made to patch a sandbox escape vulnerability present in versions of OverPy before 7.3.0. See GHSA-j79q-p74q-7328 for more information.
    • For a full list of features which can no longer be used, please refer to this README.md and look for all features listed under ES versions higher than ES5.
  • Added all Season 11 changes, including Runasapi and Flashbang.

Bugs Fixed

  • Added Fourth and Fifth to Limit Valid Control Points (available, but seemingly unused values)
  • Added Pharah Hover Jets Maximum Time setting

v7.2.0

18 Apr 01:12
abc9d4a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v7.0.1...v7.2.0

5.0.0

02 May 00:46
Compare
Choose a tag to compare

Breaking stuff

The 5.0.0 release is not backwards-compatible and will break all existing overpy scripts. However, you can easily convert the bulk of it with a few regexes.

In VS Code, do Ctrl+F, make sure to check the regex button, then apply the following replacements on every .opy file:

@Rule (.*)
rule $1:

^(@.*)
\t$1

The following replacement is aimed at replacing rule conditions. As such, you should not do "replace all", but check for every occurrence if it is indeed a rule condition.

^if (.*):
\t@Condition $1

The rest of the conversion should be performed manually.

The following breaking syntax changes have been made in 5.0.0:

  • The @Rule annotation is now a block, with its own rule keyword.
  • As rules are now a block, all actions must be indented.
  • Annotations are below the rule block, and indented.
  • Rule conditions are now defined by a special @Condition annotation. You can have several @Condition annotations in the same rule.
  • Subroutine rule names are now set with the @Name annotation. It can be omitted; the rule will be generated with a predefined name.
  • The debug function has been renamed to the print function.
  • The Last Of(Array) workshop function is now Array.last() instead of the misleading Array[-1].
  • The raycast(start, end, los=BarrierLos.BLOCKED_BY_ALL_BARRIERS) function is now isInLoS(start, end, BarrierLos.BLOCKED_BY_ALL_BARRIERS).
  • Localized strings must now follow the exact in-game format. This means things such as l"Round {}: {}".format(A,B) are no longer supported.
  • Triple-quoted strings no longer exist and are instead treated as normal strings. To do a multiline comment, you can use the C-like /* */ multiline comment.
  • The math.pi and math.e constants have been replaced by Math.PI and Math.E.
  • The #!noEdit directive has been removed. Obfuscation will now always use noEdit.

Improvements

  • The new PTR functions have been added. Newlines are now supported.
  • The backend was changed to use an AST, which will enable better optimizations (such as optimizing vect(1,1,1)+vect(2,3,4) into vect(3,4,5), as well as the backend being cleaner.
  • The continue and break keywords were added and support the do/while loop, as well as the switch statement for break.
  • Line comments are now compiled as well to take advantage of the new comment feature that allows commenting an action/condition.
  • Documentation for constants has been added (where Overwatch has documentation).
  • Added types for functions. Type checking will come soon.

Bug fixes

  • Fixed some custom game settings not being able to be decompiled (thanks matemato/effyn)
  • Fixed the negative operator not working on vectors (thanks terrorwolf)
  • Fixed the else statement not being properly parsed on certain cases (thanks doomfist00)

Notes

  • Decompilation currently doesn't work (it is neither updated for the new overpy format, nor for the new workshop text format). However, you can still use it for decompiling custom game settings.
  • There is very probably some bugs left, this is basically a complete rewrite of overpy. Please report any bug that you find.
  • This release is for the 1.48 version of overwatch, which is currently on PTR. If you wish to code for live (1.47), use the latest 4.x version.