# 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