113 lines
3.7 KiB
Markdown
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 >}}
|