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
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
n
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
Unique 3-Hit Stack (Punch) p+o unique three hit punch stack
unique three hit punch
unique 3 hit punch stack
unique 3 hit punch
u3h punch stack
u3h punch
Unique 3-Hit Stack (Kick) p+o unique three hit kick stack
unique three hit kick
unique 3 hit kick stack
unique 3 hit kick
u3h kick stack
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, 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-0.2.1a1.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

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

karen-0.2.1a1-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file karen-0.2.1a1.tar.gz.

File metadata

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

File hashes

Hashes for karen-0.2.1a1.tar.gz
Algorithm Hash digest
SHA256 6a2dd734d210882b49c9050d6d4a2ed1dcb045c3b6d1dc952eb54f4c192e71cd
MD5 fcc62cf66dcfd4ef88d9446edeb0051f
BLAKE2b-256 9043c73239757e4f1988b9e931e7a49f8715e69a5919007a469b48e2f08f1a4b

See more details on using hashes here.

File details

Details for the file karen-0.2.1a1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for karen-0.2.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 489c69f2532148c899f31ffaa9d7fbbb4ca707f337b7d98a7689a4be63fc4009
MD5 fe037db865cb4b57a8b96b488291f310
BLAKE2b-256 31d86957d579d43e8009671352f07d29f469d993eb5ec9f655512dcd1bf8c690

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