# ISkyboxManager > Manages OptiFine-style custom skyboxes on the player's client. `gg.lode.lecternapi.api.manager.ISkyboxManager` --- ## Signature ```java public interface ISkyboxManager ``` --- ## Notes Skyboxes are identified by their `Skybox.id()`. Sending a skybox with a fresh id adds it to the active set; sending one with an existing id updates the config in place. `String)` clears a single skybox; `clearSkyboxes(Player)` clears all. --- ## Methods ### showSkybox ```java void showSkybox(Player player, Skybox skybox) ``` Show or update a skybox on the player's client. | Parameter | Type | |---|---| | `player` | `Player` | | `skybox` | `Skybox` | --- ### removeSkybox ```java void removeSkybox(Player player, String id) ``` Remove a skybox by id. | Parameter | Type | |---|---| | `player` | `Player` | | `id` | `String` | --- ### clearSkyboxes ```java void clearSkyboxes(Player player) ``` Remove every active skybox on the player's client. | Parameter | Type | |---|---| | `player` | `Player` | --- ## Example Give one player a different sky: ```java ISkyboxManager skies = LecternAPI.getApi().getSkyboxManager(); skies.showSkybox(player, Skybox.always("void", "lectern:textures/skybox/black.png")); ``` `Skybox.night(...)` does the same but only after dusk, and the full record constructor takes the blend mode and the clock times yourself. Take it away by id: ```java skies.removeSkybox(player, "void"); skies.clearSkyboxes(player); ``` --- ## Related Pages - [[Skybox]]. The record, its blend modes and its clock times