# GaCy Android [ภาษาไทย](README.md) | English | [简体中文](./README_ZH.md) GaCy Android is an Android companion and local server manager for the GaC-hkrpg-go project. The port is in progress: the app starts the Go SDK and game servers in a foreground service, or connects to an existing server. ## Current status - An ARM64 debug build was tested on a physical phone: the user confirmed game login, in-game map teleport, and restarting the server after an update. - The Go SDK, shared-data, game-server and KCP tests passed. These checks do not establish that every game feature works on Android. - Character settings from the older ppSR runtime are not yet connected to the Go runtime. `/give` and `/heal` are not implemented by the Go command API. ## Features - Start, stop and restart the local server; connect to a remote server and monitor its SDK health. - View and copy server logs, send GM commands and open the SRTool web app. - Use the game's own map to teleport. There is no separate teleport page in the app navigation. - Submit an Unstuck request. The app reports it as queued only when the server supplies a request ID; this does not confirm the game has processed it. - Configure the host and ports and display the actual app version in Settings. `/max` updates avatar level, promotion and rank while preserving other save fields. `/teleport [floor_id]` saves the scene for the next game connection. Both have automated tests but have not been verified in the game. `/clear lineup` is rejected because the active team cannot be empty. ## Build Requirements: Android SDK 35, JDK 17 or 21, Go, Python, and a local checkout of GaC-hkrpg-go. The app requires Android 8.0 (API 26) or newer. Normal debug builds target ARM64. ```powershell python tools/package_go_runtime.py .\gradlew.bat testDebugUnitTest assembleDebug ``` The packaging script uses the current Go source and resources, and seeds player data from committed defaults. The APK is written to `app/build/outputs/apk/debug/app-debug.apk` and copied to the project root as `GaCy-Android--debug.apk`. APK files are ignored by Git. For the x86_64 emulator, use `--emulator` when packaging and add `-PgacyEmulator` to the Gradle command. These test executables are not part of the normal ARM64 build. ## Runtime and network configuration The Go runtime stores its files under the app's private `files/gacy-go` directory, separate from old ppSR data. An update preserves player data and existing hotfix entries, while adding new bundled versions. A completely empty cached version does not override available bundled hotfix data. Set the Host in Settings to the address the game client uses to reach the phone. Use `127.0.0.1` when both run on the same device. Configure the SDK and game ports as needed; changes apply after restarting the server. Redirecting the game client's dispatch traffic remains a separate setup step. The Settings connection test checks the values currently entered; remote monitoring reports an error after three consecutive failed SDK health checks.