> For the complete documentation index, see [llms.txt](https://docs-nightbeam.gitbook.io/infinity-rifts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-nightbeam.gitbook.io/infinity-rifts/docs/quick-start.md).

# Quick start

1. Install Java 21, PlaceholderAPI, and InfinityRifts as described in [installation](https://github.com/MeherBenSalem/InfinityRifts/tree/main/docs/installation.md).
2. Start the server once and check that `plugins/InfinityRifts/gateways/` contains the three default gateway files.
3. Grant an administrator the implementation permissions:

```
/lp user Admin permission set infinityrifts.use true
/lp user Admin permission set infinityrifts.admin true
/lp user Admin permission set infinityrifts.admin.give true
/lp user Admin permission set infinityrifts.admin.reload true
```

4. In game, list the loaded IDs:

```
/rift list
```

5. Give a gateway key and right-click it from the main hand:

```
/rift give Admin fire_gate
```

The key is tagged with `infinityrifts:gateway_id`. Activation validates the gateway's `spawn-conditions`, consumes one key only after validation succeeds, and starts the session at the player's location.

6. To test a party before activation:

```
/rift invite Friend
# Friend runs:
/rift join Admin
```

7. After editing `config.yml` or a file in `gateways/`, use `/rift reload`. This reloads the main and gateway models, but does not rebuild already-running gateway instances or restart random-spawn schedules. Use a full restart when changing lifecycle-sensitive settings.

For a low-impact test, set `random-spawn.enabled: false` in each gateway and use keys/admin starts only. The packaged defaults enable random spawning in all three gateway files.
