Skip to content

verstatx/tf2-wallshot-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TF2 Wallshot Tool

TF2 Wallshot Tool Illustration
An interactive tool to help visualize the hidden complexity of shooting a rocket launcher at an adjacent wall in the game Team Fortress 2.

Instructions

Program Setup

This project requires python >= 3.9.0 to run, and uses the numpy and matplotlib libraries for calculations and the UI.

  1. Install python if not already installed.
  2. Download and extract the zip file from the releases page.
  3. Install the required libraries using your system package manager, or by running the following command from the project's directory
    On Windows:
    py -m pip install -r requirements.txt
    On Linux:
    python -m pip install -r requirements.txt
  4. Run the program
    On Windows:
    py tf2-wallshot-tool.py
    On Linux:
    python tf2-wallshot-tool.py

Usage

The program opens two windows, one showing a set of controls to modify the scenario, and the other window showing graphs with knockback data and detailed wallshot information.
The displayed graphs demonstrate Soldier (represented by a black bounding box) facing left in front of an infinitely large wall to his right.
Right-side wallshots have a positive speed and move Soldier to the left; left-side wallshots have a negative speed and move Soldier to the right.
The data graphs and colorbar ranges can be manipulated using the buttons in the toolbar.
Clicking a point on the data graphs will select a wallshot for detailed info.
When a wallshot is selected, a button will appear in the controls window allowing very simple chaining of wallshots.
In the controls window, the textbox by the speed sliders allows simple arithmetic expressions.

System Requirements

In its current state, the script uses upwards of 500 MB of RAM.

Known Issues

  • The script is still in a WIP state.
  • Stock and Mangler deadzones aren't accurate directly above/below the player, and in the area where the offset clips into the wall (part of the 1-tick range)
    This is due to the offset compensation being very simple, which introduces a roll to the player's viewangle vector after compensation, which isn't possible to replicate in-game without cheats.
    The Original is not affected.
  • setang angles in shown in the info box are approximate and are likely not applicable in TAS settings.
    The setang command in-game applies some sort of snapping which is not accounted for by the tool.
  • Wallshot chaining is very basic and assumes the absolute speed of the selected wallshot becomes the next shot's forwards speed, which is unrealistic in many scenarios.
  • The UI is not very responsive due to limitations with matplotlib. The frontend may swap to using pyqtgraph instead.
  • The script currently does a brute-force approach for calculating knockback. This is slow and can be simplified.
  • Re-generating the distance cache is very slow.

About

TF2 rocket jumping simulation for visualizing wallshots

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages