Skip to content

barkinwants2die/growtopiaproxy

Repository files navigation

This is a proxy for Growtopia, which makes it possible to debug incoming and outgoing packets and even modify them.

Features

  • Print incoming and outgoing packets (text, variant list, etc).
  • Support for Growtopia 3.92 and up.
  • Built-in http server with metadata from Growtopia server data.
  • Works well with sub-server redirection.
  • Command.
  • Config file.
  • Pathfinding for auto collect, etc.
  • Loading items' database (items.dat) will request one from Growtopia.
  • Local Player & Remote player.
  • Auto puzzle captcha solver.

Supported platform

  • Windows. Tested with Windows 7, 8, 10 and 11.
  • GNU/Linux. Tested with Ubuntu and Arch Linux. (but who use GNU/Linux to play growtopia?)

Known issue

  • Client disconnected after updating items.dat.
  • Growtopia crash because larger items.dat? (usually private servers that don't use zlib compression)
  • Spoofing login info which causes the server to think that your Growtopia version is old.

Structure

- src
    - client (client to communicate with growtopia server)
    - enetwrapper
    - include
        - pcg (random generator like mt19937)
    - player
    - server (server to communicate with growtopia client)
    - utils
- vendor
    - enet
    - proton

Requirements

Building the source

  1. First you need to clone the source code of this project. git clone https://github.com/ZTzTopia/GTProxy.git
  2. Install Python 3.5+ (Windows only: select 'Add Python to PATH' in installer)
  3. CMake will install needed package with Conan, the C/C++ Package Manager. pip install conan
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
$ cmake --build .

Running the program

  • If you on Windows, you need move needed dynamic binary from /path/to/binary/conan/bin to /path/to/program/.
  • Run the program.
  • Edit the config.json file.
  • Run the program again.
  • Enjoy.

Credits

  • Thanks to my two friends who helped a lot with this project.
  • Conan, the C/C++ Package Manager: The open source, decentralized and multi-platform package manager to create and share all your native binaries
  • LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, with goals of modernizing the codebase, improving security, and applying best practice development processes
  • magic_enum: Static reflection for enums (to string, from string, iteration)
  • nlohmann_json JSON for Modern C++
  • pcg-cpp: Random number generator
  • randutils.hpp: Random utilities
  • spdlog: Fast logging library