Article Details

Tekkenscript 1.0.7 Release Announcement - Tekkenscript - Tekkenscript

We are excited to announce the official release of Tekkenscript 1.0.0.7! This update introduces significant changes and improvements, especially the new Lua framework and engine architecture, to better support the development and execution of TEKKEN8 scripts.

Tekkenscript 1.0.0.7 Release Announcement

Dear Users,

We are excited to announce the official release of Tekkenscript 1.0.0.7! This update introduces significant changes and improvements, especially the new Lua framework and engine architecture, to better support the development and execution of TEKKEN8 scripts.


New Framework Overview


New Tekkenscript (TKSCRIPT) is a Lua framework designed for building TEKKEN8 scripts. The new engine framework is core-based on C++, combined with ImGui and LuaJIT, using an embedded scripting system. The core is implemented with C++17 standards, and it offers a declarative, component-based programming model that helps developers efficiently build TEKKEN8 automation scripts. Whether for simple tasks or complex operations, Tekkenscript handles it with ease.


Major Framework Changes

  1. Core Framework Rewrite
  2. The previous external program has been completely rewritten. Now, it uses a process takeover method to interact with the game and handle script execution.
  3. Message Queue Mode
  4. The architecture has shifted from a single-threaded model to Message Queue Mode, significantly improving execution efficiency and stability.
  5. LuaJIT Engine
  6. The Lua engine has been rewritten to LuaJIT, greatly increasing execution speed and nearly matching C++ performance.
  7. EXE External Program Redesign
  8. The external EXE program has been redesigned. It no longer performs the main tasks but only loads the new engine, solving false antivirus detections.
  9. Optimized Lua Script Loading
  10. The previous method of loading all scripts and executing their code has been replaced with a more efficient approach that loads only the necessary code for execution.
  11. Lua Syntax Changes
  12. Several changes have been made to the Lua syntax, including:

Lua Syntax and Function Updates

  1. Script Structure Rewrite
  2. The script structure is now event-driven. The primary functions are as follows:
  • onDraw: Handles graphical drawing functions.
  • onMessage: Handles window messages such as user input and window resizing.
  • onMenu: Draws UI components for user interaction.
  • onTick: Called every frame to handle the character and enemy state.
  1. Global Wrapper Functions
  2. New global functions have been added to simplify script writing:
  • delayFrames(frames): Delays execution by the specified number of frames.
  • executeMacro(directionInput, executeButton, frames, buttonType): Simulates key presses with directional input, execution button, frame duration, and button type.
  • getCharacterState(historyFrames): Retrieves the character's state snapshot at a specific frame.
  • isNotCharacter(char_id): Validates if the current character matches the provided character ID.

Menu Drawing Functions

The menu drawing part encapsulates many commonly used UI components. Here are a few example functions:


  1. Menu.checkbox(name, V_bool)
  2. Creates a checkbox.
  • name: The label for the checkbox option.
  • V_bool: The default value (true or false) for the checkbox.
  1. Menu.sameLine()
  2. Draws the next item in the menu on the same line, useful for creating horizontally aligned elements.
  3. Menu.separator()
  4. Inserts a separator line to visually separate menu items.
  5. Menu.sliderInt(name, V_int, min, max)
  6. Creates an integer slider, useful for setting values like attack probability or cooldown time.
  • name: The label for the slider.
  • V_int: The current value of the slider.
  • min: The minimum value of the slider.
  • max: The maximum value of the slider.
  1. Menu.combo(name, V_int, comboData)
  2. Creates a dropdown menu with a list of selectable options.
  • name: The label for the dropdown menu.
  • V_int: The selected option (index of comboData).
  • comboData: The list of options (e.g., an array of strings).
  1. Menu.text(value)
  2. Inserts a block of text in the menu, typically used for descriptions or information.
  3. Menu.button(value)
  4. Creates a button that triggers an action when clicked.
  • value: The label for the button.
  1. Menu.keySelect(name, V_int)
  2. Creates a key selection box, allowing the user to choose a key.
  • name: The label for the key selection option.
  • V_int: The selected key code.
  1. Example Configuration
  2. An example menu to configure automatic defense features:
myScript:onMenu(function()
    menu.text('Auto Guard Configuration')
    menu.sameLine()
    menu.help("Enable automatic blocking of high, mid, and low attacks with a specified probability.")
    config.useAutoHighBlock = menu.checkbox("Enable Auto Block High Attack", config.useAutoHighBlock)
    menu.sameLine()
    config.useAutoMidBlock = menu.checkbox("Enable Auto Block Mid Attack", config.useAutoMidBlock)
    menu.sameLine()
    config.useAutoLowBlock = menu.checkbox("Enable Auto Block Low Attack", config.useAutoLowBlock)
    menu.separator()

    -- Probability Options Section
    menu.text('Probability Options')
    menu.sameLine()
    menu.help("Set the probability of blocking high, mid, or low attacks when enabled.")
    config.blockHighChance = menu.sliderInt("Block High Chance (%)", config.blockHighChance, 0, 100)
    config.blockMidChance = menu.sliderInt("Block Mid Chance (%)", config.blockMidChance, 0, 100)
    config.blockLowChance = menu.sliderInt("Block Low Chance (%)", config.blockLowChance, 0, 100)
    config.blockLowType = menu.combo('Low Block Type', config.blockLowType, { "Only Use Block", "Use Low Parry" })
end)
  1. Constant Enumerations (enums.xxx)
  2. Constants are now organized using enums.xxx format for easier management. For example, character states are now defined as an enumeration, CharacterState, containing various status fields related to character behavior.

Bug Fixes

  1. Double Frame Execution Issue: Fixed the issue with double frame execution, ensuring the script runs as expected.
  2. Remote Key Input Issue: Fixed remote key input handling to improve stability.
  3. Antivirus False Positives: Solved false positive detections from antivirus software, allowing smooth script execution.

Conclusion

We appreciate your continued support of Tekkenscript! We will keep optimizing and enhancing the script's functionality and performance. If you encounter any issues, please feel free to contact us. We hope this new version will help you gain an edge in TEKKEN8 with a smoother script experience.

Tekkenscript Development Team

December 2024