# LegendCTL — FAQ Short answers to the common questions, with links to the deeper docs. If your question isn't here, check [Discussions](https://github.com/EvilHumphrey/LegendCTL/discussions) or [SUPPORT.md](https://github.com/EvilHumphrey/LegendCTL/blob/main/.github/SUPPORT.md). ## Trust & privacy ### Is it safe? Will it brick my controller? LegendCTL only writes the controller's *settings* over standard USB-HID — the same kinds of values the official app changes. It is **not** a firmware flasher, so it can't overwrite firmware. Before risky operations it captures a **Restore Point** where one can be taken, wrapper events are recorded to a local append-only ledger, and there are two recovery paths back (see [Recovery in the README](https://github.com/EvilHumphrey/LegendCTL/blob/main/README.md#recovery--if-your-controller-feels-off)). That said, it writes to hardware and is provided "as is" — see [Disclaimer & risk](https://github.com/EvilHumphrey/LegendCTL/blob/main/README.md#disclaimer--risk). Nothing can promise zero risk when touching hardware, but the safety net is real: every write reports its outcome, and the verifying paths read the value back and compare it. ### Does it phone home? Any telemetry or tracking? No. The LegendCTL process makes **zero** network calls — no telemetry, no analytics, no auto-update, no "usage data." The About and Compatibility Report GitHub buttons hand a URL to your default browser; the app itself opens no socket. You don't have to take that on faith: open the in-app **Trust Self-Check** (Diagnostics), which scans the shipped code for networking and driver/virtual-device imports and shows the evidence it found (it inspects the app's own footprint, not system-wide services), then copies the result out — or [verify it yourself with Resource Monitor](verifying-no-network.md) in a couple of minutes. ### Is it open source? Can I read/build it myself? Yes — MIT licensed, the full source is on GitHub, and the README has a [Build from source](https://github.com/EvilHumphrey/LegendCTL/blob/main/README.md#build-from-source) section. The "deliberately absent" constraints (no drivers, no network, no macros, …) are enforced by the test suite, not just promised. ### Was this built with AI? Yes — LegendCTL was built with substantial AI assistance, under human direction and review throughout: all changes are human-reviewed, and hardware-facing changes are tested on a real controller where applicable, before shipping. We say so plainly in the [Acknowledgments](https://github.com/EvilHumphrey/LegendCTL/blob/main/README.md#acknowledgments) — honesty is the whole point of the project. The code is fully open and test-enforced precisely so you don't have to trust the process; you can read it. ### Can I trust an unsigned app from a new, pseudonymous repo? Fair question — you shouldn't trust any of them blindly. Here's what you *can* do instead of trusting: read the source (it's all here), build it yourself, run the in-app **Trust Self-Check** (and export the **evidence card**), run the [no-network check](verifying-no-network.md), and verify the published **SHA-256** of your download against `SHA256SUMS.txt` in each release. Code signing (via the free [SignPath Foundation](https://signpath.org) program for open-source projects) is planned once the project is eligible — see the [code-signing policy](code-signing-policy.md). ## Installing & running ### Why does Windows show "Windows protected your PC" (SmartScreen)? Because the build is currently **unsigned**. SmartScreen may show that prompt for unsigned or low-reputation downloads — it is not, by itself, a sign of malware. Verify the SHA-256 (above), then choose **More info → Run anyway**. Full detail under [First-run SmartScreen, and verifying your download](../README.md#first-run-smartscreen-and-verifying-your-download). ### My antivirus flagged it — is it a virus? Often a false positive for this packaging pattern — but verify rather than assume. LegendCTL is packaged with PyInstaller, whose self-extracting bundle pattern is a well-known source of heuristic AV false positives. Cross-check the file on [VirusTotal](https://www.virustotal.com/) against many engines and verify the SHA-256 against the release's `SHA256SUMS.txt`; if a detection doesn't resolve on cross-check, don't run the file. If you want zero packaged binaries, build from source. ### Do I need the official ZD app installed? No. LegendCTL runs **standalone** — it talks directly to the controller over USB-HID, so the official ZD app is not required. (Firmware updates use ZD's **separate** official firmware tool — not the config app, and not LegendCTL.) LegendCTL works independently and doesn't depend on either. ### Installer or portable ZIP — which should I use? The **portable ZIP** is the simplest: no admin, no UAC, runs from any folder, and you uninstall by deleting the folder. Use the installer if you want a Start-Menu entry and an entry in Windows' Apps list. Both ship the identical wrapper. ### The official ZD app can't find my controller — can LegendCTL help? Maybe, depending on your goal. If Windows sees the controller in its normal wired mode, LegendCTL may still read and apply **supported settings** (deadzones, sensitivity, polling, buttons, lighting, vibration, profiles) and show live stick output — even when the official app is having trouble connecting. It **can't** help with firmware flashing/recovery, official calibration, warranty/support, or app/account/pairing issues — those stay with ZD's official tools. Quick triage: try a known-good cable and a direct USB port, confirm Windows lists it under Game Controllers, close other controller tools, and read state in LegendCTL before applying changes. If LegendCTL also can't see it, please file a [compatibility report](https://github.com/EvilHumphrey/LegendCTL/issues/new/choose). ## Compatibility ### Will it work on my controller? If you have a **ZD Ultimate Legend**, the core settings very likely work. It was developed and bench-tested on a single unit (known-working firmware **v1.18**, incl. 8K polling, and **v1.24**, incl. 8-point sensitivity curves and the latest "0609" optimized-latency build). The controller ships in six variants with different stick modules/firmware; other variants and firmware are **best-effort** — the HID protocol may differ. The app is built to report unsupported paths and write-only fields explicitly rather than pretend a write succeeded. See the maintained [compatibility matrix](compatibility-matrix.md) for the current evidence ledger across variants/firmware; if something's off on your unit, please file a [compatibility report](https://github.com/EvilHumphrey/LegendCTL/issues/new/choose). ### Does the live stick tester work on non-ZD controllers? The **Live Verify** stick/circularity view reads from XInput, so it is largely controller-agnostic for *viewing*. The full settings (deadzone, sensitivity, polling, etc.) are ZD-Ultimate-Legend-specific because they ride that controller's HID protocol. ### Why can't I select 8K polling or 8-point stick curves? Those paths are **firmware-gated** by the controller. **8000 Hz polling** needs firmware tested at **v1.18+**, and **8-point sensitivity curves** need **v1.24+**. On older firmware, LegendCTL reports the path as unsupported rather than faking a successful write. To enable them, update firmware with ZD's official firmware tool, then reconnect and re-read state in LegendCTL — LegendCTL itself is not a firmware updater. ## What it does ### What settings can it actually change? Polling rate, the button-binding matrix, stick deadzones / sensitivity curves / axis inversion / step-size, trigger range & modes, lighting, vibration, and back-paddle bindings, plus wrapper profiles and Restore Points. The full list is in the README [Features](https://github.com/EvilHumphrey/LegendCTL/blob/main/README.md#features) section. ### Does it have macros, turbo, or rapid-fire? No — and that's deliberate. Macros / turbo / automation / input injection / a background service are *intentionally absent* (and enforced by tests). LegendCTL configures your controller; it doesn't play it for you. That boundary is useful, but it is **not a tournament/legal guarantee** — LegendCTL has no macros, turbo, or input-injection by design, but tournament rules, game anti-cheat, and competition-firmware requirements are outside its control. If you play somewhere regulated, check the event/game/controller rules. ### Does it update or change my controller's firmware? No. It reads and writes *settings* via HID. It is not a firmware updater and cannot flash firmware. ## About the project ### Is this affiliated with ZD Gaming? No. It's an independent, unofficial third-party project — not developed by, affiliated with, or endorsed by ZD Gaming. ZD asked the project to carry a short disclaimer, which it does verbatim. Trademarks belong to their owners. ### How do I report a bug or ask a question? See [SUPPORT.md](https://github.com/EvilHumphrey/LegendCTL/blob/main/.github/SUPPORT.md). Reproducible bugs → a **Bug report** Issue; questions and "is this expected?" → **Discussions**; hardware that wasn't on the bench → a **Compatibility report**. There's no private DM/email support channel — keeping it public means the next person finds the answer.