Files
Documentation/content/world/entities/spawning/_index.en.md
2026-01-20 20:33:59 +01:00

113 lines
3.7 KiB
Markdown

---
title: Spawning
type: docs
weight: 6
---
The spawning system provides comprehensive NPC spawn management through markers, beacons, world spawning, and suppression mechanics.
**Package:** `com.hypixel.hytale.server.spawning`
## Architecture
```
SpawningPlugin
├── Managers
│ ├── WorldSpawnManager - World-level NPC spawning
│ ├── BeaconSpawnManager - Beacon-based spawning
│ └── SpawnManager<W, S> - Base spawn manager
├── Assets
│ ├── SpawnMarker - Marker spawn definitions
│ ├── SpawnSuppression - Suppression zones
│ ├── WorldNPCSpawn - World spawn configs
│ └── BeaconNPCSpawn - Beacon spawn configs
├── Components
│ ├── SpawnMarkerEntity - Marker entity data
│ ├── SpawnSuppressionComponent - Entity suppression
│ ├── LocalSpawnController - Player-local spawning
│ ├── WorldSpawnData - World spawn state
│ └── ChunkSpawnData - Chunk spawn state
├── Controllers
│ ├── SpawnController - Base controller
│ ├── BeaconSpawnController - Beacon controller
│ └── LocalSpawnController - Local controller
├── Systems
│ ├── WorldSpawningSystem - World spawn logic
│ ├── SpawnMarkerSystems - Marker processing
│ ├── SpawnBeaconSystems - Beacon processing
│ └── SpawnSuppressionSystems - Suppression logic
├── Interactions
│ └── TriggerSpawnMarkersInteraction
└── Commands
└── SpawnCommand (enable, disable, beacons, markers, populate, stats, suppression)
```
## Spawn Types
### Spawn Markers
Static spawn points that spawn NPCs with configurable respawn timing:
```java
SpawnMarker marker = SpawnMarker.getAssetMap().getAsset("village_guard");
IWeightedMap<SpawnConfiguration> npcs = marker.getWeightedConfigurations();
```
**Asset Location:** `NPC/Spawn/Markers/`
### Spawn Beacons
Dynamic spawn points associated with entities that trigger spawning in a radius:
```java
BeaconSpawnManager manager = SpawningPlugin.get().getBeaconSpawnManager();
List<BeaconSpawnWrapper> beacons = manager.getBeaconSpawns(environmentId);
```
**Asset Location:** `NPC/Spawn/Beacons/`
### World Spawning
Ambient NPC spawning based on environment and biome:
```java
WorldSpawnManager manager = SpawningPlugin.get().getWorldSpawnManager();
```
**Asset Location:** `NPC/Spawn/World/`
### Spawn Suppression
Zones that prevent NPC spawning within a radius:
```java
SpawnSuppression suppression = SpawnSuppression.getAssetMap().getAsset("safe_zone");
double radius = suppression.getRadius();
int[] suppressedGroups = suppression.getSuppressedGroupIds();
```
**Asset Location:** `NPC/Spawn/Suppression/`
## Commands
| Command | Description |
|---------|-------------|
| `/spawning enable [world]` | Enable NPC spawning in world |
| `/spawning disable [world]` | Disable NPC spawning in world |
| `/spawning beacons` | Beacon spawn management |
| `/spawning markers` | Spawn marker management |
| `/spawning populate` | Force spawn population |
| `/spawning stats` | View spawning statistics |
| `/spawning suppression` | Suppression zone management |
**Alias:** `/sp`
## Section Contents
{{< cards >}}
{{< card link="world-spawning" title="World Spawning" subtitle="Environment-based NPC spawning" icon="globe" >}}
{{< card link="spawn-suppression" title="Spawn Suppression" subtitle="Prevent spawns in areas" icon="shield-exclamation" >}}
{{< card link="local-spawning" title="Local Spawning" subtitle="Player-proximity spawning" icon="user" >}}
{{< card link="spawner-assets" title="Spawner Assets" subtitle="Markers and beacons configuration" icon="document-text" >}}
{{< /cards >}}