# The stateManager.once() method This documents the `stateManager.once()` method. There are multiple parameters for this method, and a deeper dive into each of them can be found in the [Events -> Introduction page](/documentation#Events/6-events-intro) and all of the pages within the Events category.
info
In Short: The difference between on() and once() is that on() stays connected until removed or the client disconnects, while once will detach after the first event.
## How is this different from stateManager.on()? Generally, the format is just: ```ts taClient.stateManager.once('eventType', () => { // callback function }) ``` or ```ts async function handleEvent(params) { // code here } taClient.stateManager.once('eventType', handleEvent); ``` Essentiallly both are the same thing. The point is that when an event happens, depending on your subscription type, different types of data will be passed through to a method(callback). The reason why `once()` is different is because it automatically detaches after the first event. That means the callback method is only triggered once, and then the listener is removed. The listener also detaches upon a disconnect from the `CoreServer`. ## Its events The events in `once()` are the exact same as in `on()`. There is no direct implementation in ShyyTAUI, as there really is not a scenario when you want a listener to only trigger once. You might wonder why that is. Why is it not enough to listen to a `matchDeleted` event once? The answer is simple. Since just like `on()`, `once()` also gets triggered by other tournaments' data changes and not just the current match getting deleted.