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

101 lines
2.6 KiB
Markdown

---
title: Hytale Plugin Documentation
layout: hextra-home
---
{{< hextra/hero-badge >}}
<span>Hytale Server API</span>
{{< /hextra/hero-badge >}}
<div class="hx-mt-6 hx-mb-6">
{{< hextra/hero-headline >}}
Build Plugins for Hytale
{{< /hextra/hero-headline >}}
</div>
<div class="hx-mb-12">
{{< hextra/hero-subtitle >}}
Comprehensive documentation for creating Hytale server plugins.&nbsp;<br class="sm:hx-block hx-hidden" />From your first plugin to advanced features.
{{< /hextra/hero-subtitle >}}
</div>
<div class="hx-mt-6 hx-mb-12">&nbsp;</div>
<div class="hx-mt-12">
{{< hextra/hero-button text="Join Discord" link="https://discord.gg/4UPCz84Nst" icon="discord" >}}
</div>
<div class="hx-mt-6 hx-mb-12">&nbsp;</div>
## Explore the Documentation
<div class="hx-mt-6 hx-mb-12">&nbsp;</div>
{{< hextra/feature-grid >}}
{{< hextra/feature-card
title="Getting Started"
subtitle="Set up your environment and create your first plugin"
link="getting-started"
icon="play"
>}}
{{< hextra/feature-card
title="Core Concepts"
subtitle="Registries, assets, codecs, commands, events, and tasks"
link="core-concepts"
icon="cube"
>}}
{{< hextra/feature-card
title="Gameplay Systems"
subtitle="Farming, shops, reputation, memories, and objectives"
link="gameplay-systems"
icon="puzzle"
>}}
{{< hextra/feature-card
title="World"
subtitle="Universes, chunks, blocks, entities, worldgen, and portals"
link="world"
icon="globe"
>}}
{{< hextra/feature-card
title="UI Systems"
subtitle="HUD, custom pages, windows, inventory, and permissions"
link="ui-systems"
icon="desktop-computer"
>}}
{{< hextra/feature-card
title="Advanced"
subtitle="Networking, effects, particles, and dynamic lights"
link="advanced"
icon="lightning-bolt"
>}}
{{< hextra/feature-card
title="Reference"
subtitle="API reference, manifest schema, and registries"
link="reference"
icon="book-open"
>}}
{{< /hextra/feature-grid >}}
<div class="hx-mt-6">&nbsp;</div>
## Quick Example
Here's a simple plugin that logs a message when a player joins:
```java
public class MyPlugin extends JavaPlugin {
@Override
public void start() {
getEventRegistry().register(PlayerConnectEvent.class, event -> {
PlayerRef playerRef = event.getPlayerRef();
getLogger().at(Level.INFO).log("Player connecting: " + playerRef.getUsername());
});
}
@Override
public void shutdown() {
getLogger().at(Level.INFO).log("Plugin is shutting down!");
}
}
```