Skip to main content

Evaluates & categorises Spider-Man's combos in Marvel Rivals.

Project description

Karen

"Congratulations on completing the rigorous Training Wheels Protocol and gaining access to your suit’s full capabilities... Would you like me to engage Enhanced Combat Mode?" - Karen

karen is named after Spider-Man's virtual assistant in Spider-Man: Homecoming, who advised Peter in strategy and combat. This python script is designed to quickly, easily, and accurately analyse Spider-Man's combos in Marvel Rivals.

Table of Contents

Installation

Install the karen python package using pip:

pip install karen

The functions in this library can be used to create your own interface - but most likely you will prefer to download and run one of the scripts in the tests folder, where command line & discord bot interfaces have already been implemented.

Usage

karen evaluates combos given to it by the !eval command:

    !eval tGusto

The above evaluates the combo tracer > get over here targeting > uppercut > swing > tracer > overhead slam. Each action in a combo is assigned a single letter for maximum efficiency, but a combo can also be given in long-form by breaking up actions with instances of ">" - so the following is another valid way of writing the same command:

    !eval tracer > goht > upper > swing > tracer > oh

Note that shortened names are still used; in this format, single letter, shorthand names, or full names can be used to refer to each action. The full list is given below:

Action Letter Other Names
Jump j jump
Double Jump d double jump
dj
Land l land
Punch p punch
punch A
punch B
melee punch
melee punch A
melee punch B
Kick k kick
melee kick
Overhead Slam o overhead slam
overhead
over
oh
melee overhead
slam
Tracer t tracer
web tracer
cluster
web cluster
Swing s
z
swing
web swing
high swing
low swing
web zip
zip
Auto Swing a automatic swing
auto swing
auto
simple swing
easy swing
Whiff w whiff
web whiff
swing whiff
Get Over Here g get over here
goh
web pull
pull
Get Over Here Targeting G get over here targeting
goht
Uppercut u uppercut
upper
amazing combo
Burn Tracer b burn tracer
burn cluster
burn
fire tracer
fire cluster
fire
flame tracer
flame cluster
flame

[!TIP] Spaces and anything between parentheses is ignored by the bot. The single letter names of actions are case sensitive, while all of the longer-form versions of names ignore case, so "MeleePU N(N)CH b" will be interpreted as a punch.

[!WARNING] Certain names such as "dj" and "meleePunchB" imply that the actions occur in contexts that aren't strictly enforced by the evaluation function - since 'dj' is parsed as a jump, the calculator will interpret it as a single jump if it believes you're on the ground.

Initial State

Some combos involve a setup that you don't want to list as a part of the combo - karen will automatically infer certain properties about the initial state.

If you use Get Over Here Targeting before tagging the target with a tracer/burn tracer, karen will infer that the target initially had a tracer applied (this will send a warning in the console).

If you use a kick before using two punches, karen will infer punches had been used immediately before beginning the combo.

If you use an overhead before getting airborne with a jump, burn tracer, or upercut, karen will assume you started the combo in an airborne state. If you use an overhead before acquiring one with a jump, swing, whiff, or burn tracer, karen will infer you started with a swing overhead. If you use two overheads before acquiring one, karen will assume you started with both overheads and no double jump.

Move Stacks

A movestack is indicated by a "+" - for example, a FFAme stack would be written as follows:

    !eval (t)G+u

In long-form commands, the ">" separator can be entirely replaced by a "+", or they can be used in conjunction. If the command contains no instaces of the ">" character, it will not be recognised as a command, so the following are valid:

    !eval tracer goht >+ upper
    !eval tracer > goht + upper

But the following will not work, as the command will not be recognised as being long-form, since no ">" characters are present:

    !eval goht + upper

All movestacks are listed below:

Name Short notation(/s) Other Names
FFAme Stack G+u
f
ffame stack
ffame
Saporen Tech (Overhead) o+G saporen
sap
overhead saporen
oh sap
Saporen Tech (Punch) p+G punch saporen
punch sap
Saporen Tech (Kick) k+G kick saporen
kick sap
Saporen FFAme Stack (Overhead) o+G+u
F
saporen ffame stack
sap ffame stack
sap ffame
overhead saporen ffame stack
oh sap ffame stack
oh sap ffame
Saporen FFAme Stack (Punch) p+G+u punch saporen ffame stack
punch sap ffame stack
punch sap ffame
Saporen FFAme Stack (Kick) k+G+u kick saporen ffame stack
kick sap ffame stack
kick sap ffame
Space Jam u+w+G
J
space jam
sj
Reverse Trigger (Punch) p+t
r
reverse trigger
rt
punch reverse trigger
punch rt
black flash
punch backflash
Reverse Trigger (Kick) k+t kick reverse trigger
kick rt
kick black flash
jash flash
Reverse Trigger (Overhead) o+t overhead reverse trigger
oh reverse trigger
overhead rt
oh rt
overhead black flash
oh black flash
Punch Overhead Stack p+o punch overhead stack
punch oh stack
unique 3 hit punch stack
unique 3 hit punch
u3h punch
Kick Overhead Stack k+o kick overhead stack
kick oh stack
unique 3 hit kick stack
unique 3 hit kick
u3h kick

Roadmap

  • Add parsing of commands in all formats
  • Measure & record all action timings
  • Add evaluation function
  • Add error detection & warnings
  • Add discord bot functionality
  • Add combo generator
  • Optimise combo generator by removing unneeded actions

More detailed/frequent progress updates are given on the testing discord server.

Acknowledgement

Special thanks to NonJohns for feedback on the design/featureset and for help with quality assurance.

Additional thanks to Venom, Fancy_Spider, and Mrpoolman, Katapult, and all other testers who helped find bugs.

License

karen is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

karen-1.0.3.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

karen-1.0.3-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file karen-1.0.3.tar.gz.

File metadata

  • Download URL: karen-1.0.3.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for karen-1.0.3.tar.gz
Algorithm Hash digest
SHA256 5fc21ed632ddeefd0de1d4da14013c04701f29dbdae106fe93fafc11e65d6cb4
MD5 bd63c50741f575b4315cac040c32abdf
BLAKE2b-256 f60eba00845b52164e8ffea971dde1384196506f188d6233d08f54cd4aa66444

See more details on using hashes here.

File details

Details for the file karen-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: karen-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for karen-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e71bf49e56291efe5e68a2a6570a3de4becaf79f072e2aa563885448eb63162d
MD5 348787e93f9a17049cbb69580da17eea
BLAKE2b-256 eb9e1cf1d513a37c7914b90957f3807309fccd5d192b64f6c3f491c8499bc36e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page