Build Issues
CMake cannot find Conan
CMake cannot find Conan
Problem: CMake configuration fails with an error about missing Conan.Solution:Ensure Conan 2.0+ is installed:Verify the installation:If using a virtual environment, make sure it’s activated before running CMake.
Git submodules not found
Git submodules not found
Problem: Build fails with errors about missing files in If you cloned without
lib/enet or lib/cpp-httplib.Solution:Initialize and update submodules:--recurse-submodules, this will fetch the missing dependencies.C++23 compiler errors
C++23 compiler errors
Problem: Build fails with errors about C++23 features not being available.Solution:Ensure you’re using a C++23-compatible compiler:
- Windows: Visual Studio 2022 or newer
- Linux: GCC 11+ or Clang 14+
- macOS: Xcode 14+ or Clang 14+
Conan dependency resolution fails
Conan dependency resolution fails
Problem: Conan fails to find compatible package versions.Solution:Clear the Conan cache and retry:If the issue persists, ensure your Conan profile is correctly configured:Remove the build directory and reconfigure:
LibreSSL build errors on Windows
LibreSSL build errors on Windows
Problem: LibreSSL fails to compile on Windows with MSVC.Solution:This is usually a transient issue with Conan package binaries. Try:
-
Update Conan:
-
Force a rebuild of LibreSSL:
-
If the issue persists, you may need to use a different SSL library. Edit
conanfile.pyto use OpenSSL instead:
Link errors with eventpp or sol2
Link errors with eventpp or sol2
Problem: Linker fails to find symbols from header-only libraries.Solution:These libraries are header-only and should not cause link errors. If you see link errors:
-
Clean and rebuild:
- Ensure you’re not mixing Debug and Release builds.
- Check that the library is properly included in your CMakeLists.txt.
Runtime Issues
GTProxy crashes on startup
GTProxy crashes on startup
Problem: The proxy crashes immediately when launched.Solution:
-
Check configuration: Ensure
config.jsonexists and is valid JSON. If missing, GTProxy should create a default one. -
Run with logging: Enable debug logging to see detailed error messages:
-
Check dependencies: On Linux, verify all shared libraries are available:
-
Port conflicts: Ensure the proxy port (default 16999) is not already in use:
Cannot connect to Growtopia servers
Cannot connect to Growtopia servers
Problem: GTProxy starts but cannot connect to Growtopia servers.Solution:
- Check internet connection: Ensure you have a stable internet connection.
- Firewall rules: Make sure your firewall allows GTProxy to make outbound connections.
-
IP flagged: Some IP addresses may be flagged by Growtopia servers. Try:
- Using a different network
- Using a VPN (ensure the VPN allows UDP traffic)
- Contacting your ISP if your residential IP is blocked
- Server status: Check if Growtopia servers are online and accessible.
Lua scripts not loading
Lua scripts not loading
Problem: Scripts in the
scripts/ directory are not being executed.Solution:- Check script location: Ensure scripts are in the correct directory relative to the executable.
-
Syntax errors: Verify Lua syntax is correct:
- Enable script logging: Check GTProxy logs for script loading errors.
-
File permissions: Ensure script files are readable:
HTTP server not accessible
HTTP server not accessible
Problem: Cannot access the built-in HTTP server at
http://localhost:port.Solution:-
Check configuration: Verify the HTTP server is enabled in
config.json. - Port binding: Ensure the HTTP server port is not blocked by a firewall.
- Listen address: Check if the server is listening on the correct interface (0.0.0.0 for all, 127.0.0.1 for localhost only).
-
Process verification: Confirm GTProxy is running:
Packet modification not working
Packet modification not working
Problem: Modified packets are not being applied or are causing disconnections.Solution:
- Packet structure: Verify the packet structure matches the current Growtopia version.
- Serialization: Ensure your packet serialization/deserialization is correct.
- Packet size: Check that modified packets don’t exceed size limits.
- Validation: Some packets have checksums or validation that must be updated after modification.
-
Debug mode: Enable packet logging to see raw packet data:
Platform-Specific Issues
Windows
Missing DLL errors
Missing DLL errors
Problem: Error about missing
.dll files when running GTProxy.Solution:- Visual C++ Redistributable: Install the Microsoft Visual C++ Redistributable:
- Conan DLLs: Ensure Conan dependencies are in the same directory as the executable or in PATH.
- Copy DLLs manually: You may need to copy DLLs from the Conan cache to the build directory.
Windows Defender blocks execution
Windows Defender blocks execution
Problem: Windows Defender flags GTProxy as malware.Solution:This is a false positive common with network tools. Add an exclusion:
- Open Windows Security
- Go to “Virus & threat protection”
- Click “Manage settings”
- Under “Exclusions”, add the GTProxy directory
Linux
Permission denied when binding to ports
Permission denied when binding to ports
Problem: GTProxy fails to bind to ports below 1024.Solution:On Linux, ports below 1024 require root privileges. Either:
-
Use a higher port: Edit
config.jsonto use a port above 1024 (recommended) -
Grant capabilities:
-
Run as root: (not recommended)
Shared library errors
Shared library errors
macOS
Unsigned binary warning
Unsigned binary warning
Problem: macOS blocks GTProxy because it’s from an unidentified developer.Solution:
- Control-click the executable and select “Open”
- Or, remove the quarantine flag:
Homebrew vs system libraries conflict
Homebrew vs system libraries conflict
Problem: Build uses wrong library versions from Homebrew.Solution:Ensure Conan is using the correct toolchain:If issues persist, specify the Xcode toolchain:
Testing Issues
Tests fail to compile
Tests fail to compile
Problem: Test executable fails to build.Solution:Ensure Google Test is properly installed via Conan:Rebuild the project:
Tests fail at runtime
Tests fail at runtime
Problem: Tests compile but fail when executed.Solution:
-
Run specific test: Isolate the failing test:
-
Verbose output: Enable verbose output:
-
Working directory: Some tests may depend on specific files being in the working directory. Run from the project root:
Performance Issues
High CPU usage
High CPU usage
Problem: GTProxy consumes excessive CPU resources.Solution:
-
Build type: Ensure you’re using a Release build, not Debug:
-
Logging level: Reduce logging verbosity in
config.json: - Script optimization: Review Lua scripts for inefficient loops or excessive logging.
High memory usage
High memory usage
Problem: GTProxy uses too much memory.Solution:
-
Memory leaks: Run with a memory debugger:
- Packet buffering: Reduce buffer sizes in network configuration.
- Script cleanup: Ensure Lua scripts properly release resources.
Getting Help
If you encounter an issue not covered here:- Check logs: Review GTProxy logs for detailed error messages
- GitHub Issues: Search existing issues at github.com/ZTzTopia/GTProxy/issues
- Create an issue: If your problem is new, create a detailed issue report including:
- Operating system and version
- Compiler version
- CMake and Conan versions
- Full error messages and logs
- Steps to reproduce
View on GitHub
Report issues or contribute to the project