Git Product home page Git Product logo

tekkenbot's Introduction

Check out these experimental forks for new TekkenBotPrime features (and sometimes faster updates):
https://github.com/dcep93/TekkenBot
https://github.com/Alchemy-Meister/TekkenBot
https://github.com/compsyguy/TekkenBot

TekkenBot

AI and tools for playing and understanding Tekken 7.

Created by roguelike2d. Maintained by the community.

Frequently asked questions

Q: What is this thing?
A: It's a program for Tekken 7 that shows frame data information of your moves in real-time on PC.

Q: How do I use it?
A: Go to the releases page, download the latest TekkenBotPrime_vXXX.zip, extract the files somewhere, open TekkenBotPrime.exe, and finally hop into practice mode.
If you'd rather run from source instead, install Python 3 and run GUI_TekkenBotPrime.py

Q: The bot stopped working after a game patch!
A: Wait for a good soul to update the memory_address.ini file, or fix it yourself by following the guide on the Wiki.

Q: The frame advantage of this move seems wrong!
A: Double check using the alternative "manual" method to find frame advantage with the help of tiny_live_frame_data_numbers:

  1. start a mirror match (because not all characters have the same jumps)
  2. set the dummy to neutral jump as second action
  3. do your attack, neutral jump, and don't do anything else
    ...the little numbers near the big frame advantage ones should now hopefully display the correct advantage.

Q: I'm getting the PID not found error even though the game is running!
A: Start the bot as admin (or alternatively start the game as non-admin).

Q: The bot doesn't show!
A: Play borderless or windowed, full screen doesn't work.

Q: But I really really want to play full screen otherwise my game will lag!
A: If you have a multi-monitor setup, enable overlay_as_draggable_window and move the overlay to a different monitor.

Tools

FrameDataOverlay

A window that can go over the game to display real time move information read from memory. Requires the game to be in windowed or borderless to work or can be run as a standalone window on a second screen. Robot feet and bear paws 1

CommandInputOverlay

Display command inputs, similar to the one already in Tekken 7 except it gives frame by frame information and includes cancelable frames. Robot feet and bear paws 2

Bots

Currently in progress.

Details

Tekken Bot bots are programs that plays Tekken 7 on PC by reading the game's memory, making decisions based on the game state, and then inputting keyboarding commands. Ultimately the goal is to create emergent behavior either through specific coding it or, if possible, a generalized learning algorithm.

Frame Trap Bot

Pushes jab or a user inputted move when getting out of block stun.

Punisher Bot

Attempts to punish negative attacks with the best available punish. Punishes are listed in the character's file in the /TekkenData folder.

Project details

Prerequisites

Tekken Bot is developed on Python 3.5 and tries to use only core libraries to improve portability, download size, and, someday, optimization. It targets the 64-bit version of Tekken 7 available through Steam on Windows 7/8/10.

Deployment

Tekken Bot distributable is built using pyinstaller with Python 3.5. On Windows, use the included build_project.bat file.

tekkenbot's People

Contributors

craigduff avatar edibleroses avatar egdose avatar kokole avatar kulaggin avatar michaelkhalil avatar wazaaaaa0 avatar wt- avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tekkenbot's Issues

Broke again?

I think they just released a hotfix that broke the tool again. Anyone else able use it as it is now?

Error 299 ver. 15.0

Gettin this error with new version of Tbot.
Game is updated. Steam is updated.
Any recommendation?

Paul

Anyone knows how to apply punish bot on Paul correctly please ? There’s some error when I use it

Trying to acquire PID 9188

Ever since the update I tried updating the address and doing everything, it still doesn't initialize even when run as admin. It used to work perfect.

Suggestion : Text to speech on opponent moves used in real-time

Hi there, I really love the effort you poured in into this project!

This suggestion is created on the objective on learning matchups faster as they happen in a real match

I feel like having a text to speech feature announcing the string's type [ low ,mid or high ] and your frame advantage or disadvantage on block in matches can really be beneficial in learning matchups as fast as possible.

Having an automated voice announcing your frame advantage and disadvantage as it happens in real time can help people identify what they need to do exactly against certain moves used against them.

For example :
Your opponent Noctis uses 2,2,2,2,2 on you in a player match

This new feature would then output an automated voice
"Mid, Mid, High, High, Mid" in real time as the move happens, and also announces the final frame advantage when you block that attack.

This allows players to identify their methods of punishing strings as fast as possible within the same match without

  1. Waiting for the match to be over
  2. Spending time to navigate through the menu to practice mode [while waiting for the in-game UI to change scenes]
  3. Then. finally labbing the moves and then hoping that they face noctis in the near future. [Which might not happen in a long time making you forget what to do when the move comes]

Is this feature possible?

I have experience in coding in python before so do let me know if you want me to try and tackle this feature together!

Punish Bot not working after the FimoX address updates.

Hi @WAZAAAAA0 is there anything wrong with the addresses that were added by FimoX on the memory_address.ini for the punish bot to get broken? I can also see there were changes/update on the Tekkengamestate.py just not sure what went wrong.

I tried to download the whole tekkenbot but still punishbot does nothing.

Neganbot

Any one knows why negan can’t be capable of using punish bot? While other characters are ok

ValueError: 2949225 is not a valid SimpleMoveStates

I'm on the latest version, and I've installed on my C: drive, but I get this error when I get into practice mode.

` Fight detected. Updating gamestate.
Exception in Tkinter callback
ValueError: 2949225 is not a valid SimpleMoveStates

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "tkinter_init_.py", line 1705, in call
File "tkinter_init_.py", line 749, in callit
File "GUI_TekkenBotPrime.py", line 212, in update_launcher
File "_FrameDataLauncher.py", line 13, in Update
File "TekkenGameState.py", line 562, in Update
File "TekkenGameState.py", line 271, in GetUpdatedState
File "TekkenGameState.py", line 333, in Bake
File "c:\program files\python37\lib\enum.py", line 309, in call
File "c:\program files\python37\lib\enum.py", line 561, in new
File "c:\program files\python37\lib\enum.py", line 545, in new
File "c:\program files\python37\lib\enum.py", line 574, in missing
ValueError: 2949225 is not a valid SimpleMoveStates `

How to get useful values from TekkenState/TekkenEncyclopedia?

I've been working on a machine learning project and have no idea how to get actual usable values from Tekken Bot. Currently with what I have tried I'm just getting values like these returned. I know I'm doing something wrong but this code base is a bit difficult to navigate.

<function TekkenGameState.GetBotCharId at 0x000001FF8315B158>
<function TekkenGameState.GetBotHealth at 0x000001FF83155BF8>

correcting frame data

hi guys,

can we as end users manually change the frame data values for the characters? i found some mistakes for kazuya for example. a perfect electric is 13 frames, however any electric or wind god fist says 11.

not sure if there is a file where this all refers to and i can edit maybe in notepad or something.

thanks!

How do I update memory addresses

The README says there's an article explaining how to update addresses. I'd like to help and contribute to this project but I'm not quite sure how, I need some direction.

I'd like to update all the memory addresses, some are still invalid after the newest patch, like complex_states.

Not able to capture frame data

I tried running game in window mode and even borderless but i am not able to capture frame data and i do get 60fps while playing. I am running Fit Girl Repack V1.06. Please let me know where am i making a mistake. TIA

Could a wiki page be made regarding what to do when new characters come out?

Hello, I have already seen you have a wiki page with a tutorial on how to update the bot when a new patch comes out. However, it doesn't include what to do when new characters come out and I guess updating the adresses is not everything that has to be done, since Negan is missing some frame data. Could you make a wiki page explaining how to introduce the frame data for new moves and characters? Thank you.

Bot doesn't work with 4.20 patch.

Latest release TekkenBotPrime_v0.20.0 doesn't work with 4.20 patch.
Error message:

Found TekkenGame-Win64-Shipping.exe
ReadProcessMemory Error: Code 299
Tekken pid acquired: 1928
Trying to acquire Tekken library in pid: 1928

Need new memory address?

well it isnt working now, i need a new memory adress i think for it to work
so can i please get a new one or atleast get some help.

how to calc frame advantage

Hello, I'm a student who wants to study programming with Tekken 7 before Tekken 8 comes out. I had a question about frame advantage before, but I didn't understand it well, so I want to ask again. I'm curious about what memory values ​​to calculate to get the frame advantage value. I was so curious that I tried to find a way, but I can't find a way with my knowledge and skills. Please give me an answer.

To calculate the frame advantage value, you need to perform mathematical operations on different memory values, but I'm not sure which memory values to add, multiply, or divide. Can you give me a hint or tell me how to figure out which values to use?

PunishBot only does Law's Moves

basically what the title says, and idk if the punisherbot Edit Window is supposed to be blank cause my ines and i want some help.

command strings are incorrect

The latest code is working with the new 3.30 patch, but the command strings being displayed are incorrect.

Since character name is still being pulled in correctly, the movelist block addresses are probably still correct. I've been looking at the code in MovelistParser.py trying to figure this out.

Wrong Frame data Information

Hi Team,

You're doing great job thanks for your efforts....

Actually I found that kazumi's ff+2 is actually -13 on block but bot is displaying it -16.
can you please recheck that and confirm us.

Thanks
Vinay

how to update memory_address.ini

Hi!
I'm an engineer trying to understand how to get the values to populate memory_address.ini

I've learned cheat engine basics and seen Roguelinke's video, but I think with a little more support, I can better understand all the moving parts.

Specifically, I'm comfortable on fetching p2_data_offset and rollback_frame_offset, but I'm totally lost on how to efficiently get player_data_pointer_offset. Also, I don't know the best way of finding updates like facing or if I wanted to add current_health as a feature in addition to damage_taken.

Once we have a repeatable pattern, I think I can build a python script that will automatically perform these steps and update the memory address file. Even if that's not possible, I can help to post updated files and document these steps so that others can follow too.

Would it be possible to set up some time to hop on a call with @WAZAAAAA0 or @FimoX, since they seem to understand this stuff a lot better than I do? I promise I'll do the heavy lifting, and I think a 30-minute sync will be plenty to get me up to speed.

There's a Tekken patch coming May 8 - perhaps we can grab those updated values together!

Block difference

Does anyone know what’s the difference between long block and full mid block in basic commands file? Pls

Player 1

Why does the bot sometimes apply to player 1 which is my opponent? I always choose player 2 . Any nice guy can solve the problem pls?

can i know attack address

low attack address is 0x20000112
but i cant find input attack address [like enemy input attack, punisher bot type backdash] please somebody help me

Some advice needed on memory address

Can anyone give me an advice how to read the memory address provided with CE?
The problem is I lack understanding how memory block in this game is stored.
I tried offsetting 0x035037B8 (v5.1) to player data plus 0xXXX to specific data such as move id. But it didn't work.

How fix the size !!

I want to fix the size of the window size !!

It is too much trouble to resize after restart...

Update PLZ !!

Suggestion: Implement an additional sound that triggers upon successful punish

Got a suggestion that should be super simple to implement: similar to Alchemy-Meister's fork, add another sound that triggers when you successfully land a punish.

I was able to get a janky version of it working in a few minutes with no python knowledge, so I'm sure there's more efficient methods, or something I might have missed, but this would definitely be very easy to implement :)

in SoundPlayer.py:

def play_correct()
    winsound.PlaySound("TekkenData/Sound/correct.wav", winsound.SND_ASYNC)

then edit the logic in GUI_PunishCoachOverlay.py to trigger the sound

def play_sound_by_punish(self):

    if self.current_window.result in (PunishWindow.Result.JAB_ON_NOT_LAUNCHABLE, PunishWindow.Result.LAUNCH_ON_LAUNCHABLE)
    SoundPlayer.SoundPlayer.play_correct()

Thanks for your continued support of this project! It significantly improves the quality of my practice mode grind!

EDIT: Could also break out the Punish Alarm functions so users can use the frame data display at the same time, and/or support multiple modes/overlays at once, but those are obviously a bit more work.

replay file format suggestion

This format needs to be parsed and emulated at 60 fps, so after looking at the current replay code, i'd like the reads and writes and parses to be as simple as possible.

What we'll need from the game's memory while recording:
both player's input buffers (may or may not be possible for remote player)
maybe local player's side selection just in case

Implementation:

1,2,4,8 = U,R,D,L (XInput does it up clockwise, R is backwards for 2P side (if more convenient))
0x10, 0x20, 0x40, 0x80 = 1,2,3,4

Logical AND the bytes together to create a frame.

Special codes: either 0x05 0x00 to signal that left side won (p1 side) or 0x0A 0x00 for right side won (round-to-round for sanity checks), U/D and L/R are 0x05 and 0x0A, can't happen so are "magic" in that sense.

so you'd have [P1] [P2] [P1] [P2] ..... [P1] [P2] [05 or 0A] [00]

I'd be glad to throw something together/use some CE magic to do some input buffer finding.

Throwbreak not working?

TekkenEncyclopedia.py
finally run the bot normally from GUI_TekkenBotPrime.py. Your character should now automatically press the corresponding keyboard button to break throws

I changed it like this and launched GUI_TekkenBotPrime.py but nothing's working

Switched sides

If I have to use the Punish alarm mode, or the Command inputs mode in Tekken Bot Prime, I have to select the right side before a match, or even in practice mode. If I select the left side, it won't alert me for punishes or won't show my command inputs. Is there a way to switch to P1 in Tekken Bot Prime so that it registers my command inputs and alerts me for punishing the opponent's unsafe moves and not vice versa?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.