A standalone Command Line Interface debugging tool for The Witcher 3 written in Rust

Overview

Logo

A standalone Command Line Interface debugging tool for The Witcher 3 written in Rust.

This tool is intended for Witcher 3 modders who make mainly script based mods. The main features of it include recompiling game scripts at run time, monitoring scripts log and remotely running exec functions in game, which can greatly help during mod development.

Parts of this code are based off of Wolvenkit modding tool by Traderain, rfuzzo and others https://github.com/WolvenKit/WolvenKit


Usage

In order to use this tool make sure the game is running and that it was launched with following arguments: -net -debugscripts.

Print help information.

rw3d_cli.exe help
rw3d_cli.exe help <SUBCOMMAND>

Recompile game scripts.

rw3d_cli.exe reload

Remotely call an exec function from the game. Remember to use quotation marks for the command argument.

rw3d_cli.exe exec "spawn('Nekker', 3)"

Remotely call an exec function from the game without waiting for tool messages or any game response.

rw3d_cli.exe --no-wait --no-listen exec "gotoProlog()"

Monitor game's scripts log and highlight lines that include specific keywords. You can set multiple key words to be highlighted with the same color.

rw3d_cli.exe scriptslog --yellow="[My mod]" --yellow="[Also my mod]"

Monitor game's scripts log and filter out non-highlighted lines.

rw3d_cli.exe scriptslog --red="[My mod]" -f

Print the list of mods installed.

rw3d_cli.exe modlist

Print the root path of game's scripts.

rw3d_cli.exe rootpath

Print the opcode for a script function.

rw3d_cli.exe opcode -f IsCiri -c CR4Player

Print the list of config variables.

rw3d_cli.exe varlist
You might also like...
Low-level Rust library for implementing terminal command line interface, like in embedded systems.

Terminal CLI Need to build an interactive command prompt, with commands, properties and with full autocomplete? This is for you. Example, output only

A command line interface meant to bridge the gap between Rust and shell scripting

clawbang A command line interface meant to bridge the gap between Rust and shell scripting. Intended for use with HEREDOCs and shebangs: $ clawbang

Crunch is a command-line interface (CLI) to claim staking rewards  every X hours for Substrate-based chains
Crunch is a command-line interface (CLI) to claim staking rewards every X hours for Substrate-based chains

crunch · crunch is a command-line interface (CLI) to claim staking rewards every X hours for Substrate-based chains. Why use crunch To automate payout

Command line interface for Solana Metaplex programs.

Metaplex Command Line Interface This is a command line interface for creating and managing non-fungible tokens on the Solana blockchain through the Me

Railway CLI - This is the command line interface for Railway.

Railway CLI This is the command line interface for Railway. Use it to connect your code to Railways infrastructure without needing to worry about envi

Command line interface as a function.

Command line interface as a function. fncmd fncmd is an opinionated command line parser frontend that wraps around clap. The functionality is mostly i

Scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up
Scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up

scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up

Gix is a command-line interface (CLI) to access git repositories

gix is a command-line interface (CLI) to access git repositories. It's written to optimize the user-experience, and perform as good or better than the

The official command-line interface for the makedeb Package Repository

mpr-cli This is the repository for the MPR CLI, the official command-line interface for the makedeb Package Repository. Installation Users have a few

Comments
  • Add build check and release draft workflows

    Add build check and release draft workflows

    There are two workflows added:

    1. Check build on any push to make sure it's functional
    2. Draft a non-public release on tag

    ~~these are totally not copied from the ones I wrote for aeltoth~~

    opened by abheekda1 1
  • Add support for Linux scriptslog path

    Add support for Linux scriptslog path

    Adds support for the Linux scriptslog.txt under the Steam prefix (non-functional with GOG yet). Anything other than Linux or Windows throws and unimplemented exception.

    opened by abheekda1 0
Releases(v0.5.1)
  • v0.5.1(Mar 8, 2022)

    What's Changed

    • NEW build check and release draft workflows by @ADawesomeguy in https://github.com/SpontanCombust/rusty_witcher_debugger/pull/2

    • NEW shorthand for verbose by @ADawesomeguy in https://github.com/SpontanCombust/rusty_witcher_debugger/pull/3

    • NEW support for Linux scriptslog path by @ADawesomeguy in https://github.com/SpontanCombust/rusty_witcher_debugger/pull/4

    • NEW option to specify a custom path to a log file

    • FIX redundant empty new lines when the scriptslog is read

    • FIX critical error when reading invalid UTF8 from scriptslog

    • FIX better error checking when the scriptslog file does not yet exist

    New Contributors

    • @ADawesomeguy made their first contribution in https://github.com/SpontanCombust/rusty_witcher_debugger/pull/2

    Full Changelog: https://github.com/SpontanCombust/rusty_witcher_debugger/compare/v0.5...v0.5.1

    Source code(tar.gz)
    Source code(zip)
    Rusty.Witcher.3.Debugger.CLI.zip(367.48 KB)
  • v0.5(Feb 22, 2022)

    • Commands that are expected to finish automatically (i.e. all except for scriptslog) now will automatically cause the program to exit when they're done; no manual input is needed anymore
    • modlist and varlist commands sort entries alphabetically
    • reload command gives a nice little summary at the end with colored text for warnings and errors
    • Tweaked delays between info messages
    Source code(tar.gz)
    Source code(zip)
    Rusty.Witcher.3.Debugger.CLI.v0.5.zip(354.86 KB)
  • v0.4(Feb 18, 2022)

Owner
Przemysław Cedro
Przemysław Cedro
Enhance Rust errors with file and line details using the `#[wherr]` macro for clearer debugging.

wherr Crate Discuss wherr on Hacker News Enhance Rust's ? operator by appending file and line number details to errors, simplifying the debugging proc

Joel Jakobsson 49 Sep 6, 2023
Small command-line tool to switch monitor inputs from command line

swmon Small command-line tool to switch monitor inputs from command line Installation git clone https://github.com/cr1901/swmon cargo install --path .

William D. Jones 5 Aug 20, 2022
This is a simple command-line interface tool that allows you to interact with ChatGPT from OpenAI or Azure.

HeyGPT This is a simple command-line interface tool that allows you to interact with ChatGPT from OpenAI or Azure. You can use it to: Chat with ChatGP

Philip 5 Mar 28, 2023
tmplt is a command-line interface tool that allows you to quickly and easily set up project templates for various programming languages and frameworks

tmplt A User Friendly CLI Tool For Creating New Projects With Templates About tmplt is a command-line tool that lets users quickly create new projects

Humble Penguin 35 Apr 8, 2023
tpp (Tera Pre-Processor) is a versatile CLI (Command Line Interface) tool crafted for preprocessing files using the Tera templating engine.

tpp (Tera Pre-Processor) is a versatile CLI (Command Line Interface) tool crafted for preprocessing files using the Tera templating engine. Drawing inspiration from pre-processors like cpp and gpp, tpp is the next evolution with its powerful expressive toolset.

null 3 Nov 23, 2023
A silly program written in Rust to output nonsensical sentences in the command line interface.

A silly program written in Rust to output nonsensical sentences in the command line interface.

Rachael Ava 1 Dec 13, 2021
A command line interface for trash written in Rust (WIP)

trashctl A command line interface for trash Features Add file to trash List files Permanently delete a file Restore file Empty the trash Documentation

0xMRTT 2 Nov 11, 2022
Warp is a blazingly fast, Rust-based terminal that makes you and your team more productive at running, debugging, and deploying code and infrastructure.

Warp is a blazingly fast, Rust-based terminal that makes you and your team more productive at running, debugging, and deploying code and infrastructure.

Warp 10.4k Jan 4, 2023
A command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects.

CCake CCake is a command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects. Goals To be easily und

Boston Vanseghi 4 Oct 24, 2022
Pink is a command-line tool inspired by the Unix man command.

Pink is a command-line tool inspired by the Unix man command. It displays custom-formatted text pages in the terminal using a subset of HTML-like tags.

null 3 Nov 2, 2023