# IInputTelemetryManager > Controls raw input reporting for a player. `gg.lode.lecternapi.api.manager.IInputTelemetryManager` --- ## Signature ```java public interface IInputTelemetryManager ``` --- ## Notes Telemetry is off for everyone by default. While it's on for a player their client uploads a batch of key and mouse transitions roughly once a second, delivered server-side as `ClientInputTelemetryEvent`. Records carry key identity and timing only, never typed text. Enabling this for the whole server is a deliberate choice: every enabled player adds a packet per second, and the batches are only useful to something that actually consumes them. **Deprecated.** The client no longer records input timing, so every method here does nothing: `start` and `stop` return without effect, and `isEnabled` always answers false. Kept so existing callers still compile. --- ## Methods ### start ```java void start(Player player, boolean reportUnboundKeys) ``` Starts reporting for `player`. Survives the player's reconnect. | Parameter | Type | Description | |---|---|---| | `player` | `Player` | | | `reportUnboundKeys` | `boolean` | also report keys bound to nothing in vanilla controls, the signal for cheat-menu toggle keys, at the cost of a noisier stream | --- ### stop ```java void stop(Player player) ``` Stops reporting for `player`. | Parameter | Type | |---|---| | `player` | `Player` | --- ### isEnabled ```java boolean isEnabled(UUID playerId) ``` Whether reporting is currently on for this player. | Parameter | Type | |---|---| | `playerId` | `UUID` | --- ### getEnabledPlayers ```java Set<UUID> getEnabledPlayers() ``` The players reporting right now. --- ## Example Turn reporting on for one player and read what comes back: ```java IInputTelemetryManager telemetry = LecternAPI.getApi().getInputTelemetryManager(); telemetry.start(suspect, false); // true also reports keys with no binding if (telemetry.isEnabled(suspect.getUniqueId())) { getLogger().info("Watching " + suspect.getName()); } telemetry.stop(suspect); ``` Batches arrive as [[ClientInputTelemetryEvent]]. Check `getEnabledPlayers()` on a restart, since a player who was being watched before a reload no longer is. --- ## Related Pages - [[ClientInputTelemetryEvent]]. The batches themselves