Skip to content

Automate the Tableturf game helping you reach Level 999 and get all sleeves.

License

Notifications You must be signed in to change notification settings

fga401/AutoTableTurf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoTableTurf

Automate the Tableturf game helping you reach Level 999 and get all sleeves. The script is based on image recognition and bluetooth emulator to auto play Tableturf.

image

Features

  • Simple web portal.
  • AI that can beat Level 3 NPC.
  • Complete flow control. Once win a NPC 30 times, auto switch to the next one.

Getting Started

prerequisite:

  • Python >= 3.9.0
  • Bluetooth adapter. Tested on
    • Windows Subsystem for Linux with a motherboard built-in bluetooth device.
    • Raspberry 4B.
  • Capture card. Tested on Razer Ripsaw HD.

Note: all parameters about image recognition are based on Razer Ripsaw HD. It may need to finetune for other devices.

Install the requirements:

sudo pip3 install -r requirement.txt

Setup and run the virtual controller server on the device which has Bluetooth adapter. Please refer to: https://github.com/fga401/AutoTableTurf/tree/master/controller/nxbt_server

Run the web portal:

export FLASK_APP=portal
sudo python3 -m flask run --host=0.0.0.0

On the web portal:

  1. enter the virtual controller server endpoint and click Connect. If successful, you can control your Switch by keyboard.
  2. Choose the correct webcam whose source is Switch.
  3. Write the profile on the right side.
  4. Go to the NPC selection page.
  5. [Optional] Set the timer to auto stop. Also, you can check the checkbox Turn off Switch after stop.
  6. Click 'Run'.

image

Profile example:

[
  {
    "current_level": 1,
    "current_win": 2,
    "target_level": 3,
    "target_win": 30,
    "deck": 0
  },
  {
    "current_level": 3,
    "current_win": 12,
    "target_level": 3,
    "target_win": 30,
    "deck": 1
  }
]

Each block represents the configuration of an NPC. The above profile performs the following actions:

  1. Use Deck 0 to play against the first NPC Level 1 until one win.
  2. Use Deck 0 to play against the first NPC Level 2 until three wins.
  3. Use Deck 0 to play against the first NPC Level 3 until thirty wins.
  4. Use Deck 1 to play against the second NPC Level 3 until eighteen wins.

Demo

  1. Splatoon3 AutoTableTurf Demo (1/2)
  2. Splatoon3 AutoTableTurf Demo (2/2)

Plan

  • Virtual controller API
  • Screen capturing
  • Screen recognition & Game flow testing
  • Smarter AI
  • User-friendly interface

Known issues

  1. don't use Deck 11, which is prone to crash. #4

Credits

Many thanks to all below repositories: