> For the complete documentation index, see [llms.txt](https://buildsystem.eintosti.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://buildsystem.eintosti.de/v4/developer-portal/developer.md).

# Overview

Developer documentation for the **BuildSystem API** (version `4.0.0`). Use it to create worlds programmatically, listen to lifecycle events, manage backups, and integrate with PlaceholderAPI and LuckPerms.

## Getting the API instance

Add `buildsystem-api` as a `compileOnly` / `provided` dependency, then resolve the service:

```java
BuildSystem buildSystem = BuildSystemProvider.get();
```

`BuildSystemProvider` reads the same registration BuildSystem publishes to Bukkit's `ServicesManager` during its `onEnable`, so resolving the service directly returns the identical object:

```java
RegisteredServiceProvider<BuildSystem> registration =
        Bukkit.getServicesManager().getRegistration(BuildSystem.class);
```

Either call throws or returns `null` before BuildSystem has enabled, so do your lookup in your own `onEnable` after declaring BuildSystem in your `plugin.yml` `depend` or `softdepend` list -- not in a constructor or `onLoad`. See [Getting Started](/v4/developer-portal/getting-started.md) for the Maven and Gradle coordinates.

{% hint style="warning" %}
Depend on the interfaces in `buildsystem-api`, never on the `*Impl` classes in the plugin jar. Only the API module is a stable surface; the implementation is free to change between releases.
{% endhint %}

## Navigation

* [**Getting Started**](/v4/developer-portal/getting-started.md): Add API dependencies (Maven/Gradle), resolve the API instance, and manage lifecycles.
* [**World Management**](/v4/developer-portal/world-management.md): Generate and import worlds using fluent builder patterns, and interact with flat property accessors on `WorldData`.
* [**Backup Service**](/v4/developer-portal/backup-service.md): Manage world backups and restore operations programmatically.
* [**Event Pipeline**](/v4/developer-portal/event-pipeline.md): Listen and react to custom world, folder, and backup events.
* [**Placeholders & Integrations**](/v4/reference/integrations.md): PlaceholderAPI placeholders, LuckPerms contexts, and WorldEdit checks. Filed under Reference because it is server configuration rather than API.
