# Commands & Permissions

## Commands & permissions

Quick-reference page.

### Commands

All commands are prefixed `/tcpws`.

| Command                                  | Permission      | What it does                                                                 |
| ---------------------------------------- | --------------- | ---------------------------------------------------------------------------- |
| `/tcpws gui`                             | `tcpws.admin`   | Open the admin GUI (detailed walkthrough)                                    |
| `/tcpws list`                            | `tcpws.admin`   | List every preset with summary info                                          |
| `/tcpws info <preset>`                   | `tcpws.admin`   | Show full detail for one preset                                              |
| `/tcpws give <preset> [player] [amount]` | `tcpws.give`    | Issue a spawner item to a player                                             |
| `/tcpws preview <preset>`                | `tcpws.preview` | Place a temporary 30-second non-functional preview spawner at your crosshair |
| `/tcpws mine`                            | `tcpws.admin`   | Show current mining-config values (hardness seconds, owner-only, etc.)       |
| `/tcpws reload`                          | `tcpws.admin`   | Reload `wild-presets.yml`                                                    |
| `/tcpws version`                         | `tcpws.admin`   | Plugin version + license status                                              |

#### Notes

* **`<preset>`** — the preset id from `wild-presets.yml`. Tab-completes against configured presets.
* **`[player]`** — a player name. Optional for `/tcpws give` (defaults to the command sender).
* **`[amount]`** — 1..64. Default 1.
* **`/tcpws preview`** — uses your crosshair to place the preview block; raycast range is 8 blocks. The preview cleans itself up after 30 seconds; if you `/tcpws preview` again before the timer expires, the old preview is removed first.

### Permissions

Set in your permissions plugin (LuckPerms, PermissionsEx, etc.) or in `plugin.yml`.

| Permission                | Default  | What it grants                                                  |
| ------------------------- | -------- | --------------------------------------------------------------- |
| `tcpws.admin`             | OP       | All admin operations: GUI, list, info, mine, reload, version    |
| `tcpws.give`              | OP       | Issue spawner items via `/tcpws give`                           |
| `tcpws.mine`              | everyone | Mine wild spawners and receive them as portable items           |
| `tcpws.mine.bypass-owner` | OP       | Override `mining.owner-only` and per-preset griefing protection |
| `tcpws.preview`           | OP       | Use `/tcpws preview`                                            |

#### Why `tcpws.mine` defaults to true

Survival players need to be able to mine and re-deploy the spawners they've been given without an op having to grant per-player permission. This is **the central premise of the product** — players buy/earn a spawner, place it, fight at it, and later move it elsewhere as they explore. Locking that behind a permission turns the product into "an ornament that staff has to babysit."

If you want to gate mining behind a donor rank or membership tier:

```yaml
# luckperms group: default
permissions:
  - tcpws.mine: false   # negate
```

```yaml
# luckperms group: donor
permissions:
  - tcpws.mine: true    # restore
```

Or use `mining.owner-only: true` in `config.yml` to require that mining is allowed only when the original placer mines (everyone else gets a chat denial). Per-preset griefing protection in `wild-presets.yml` does the same on a per-preset basis.

#### Why `tcpws.give` defaults to op

`/tcpws give` is the **distribution channel**, not a player-facing crafting recipe. Only staff or shop plugins running as console should be able to issue spawner items.

Console always has every permission, so shop plugins running through the console don't need this granted to anyone — they just work.

#### `tcpws.mine.bypass-owner`

When `mining.owner-only: true` is on (or a specific preset has `griefing-protection: true`), only the original placer can mine the spawner. `tcpws.mine.bypass-owner` overrides that — useful for staff cleaning up abandoned spawners.

Default: OP. Don't grant to general players unless you really mean to defeat the protection feature.

### Tab completion

Every argument position has tab-completion:

* After `/tcpws` → list of subcommands.
* After `/tcpws give` → configured preset ids.
* After `/tcpws give common_spawner` → online player names.
* After `/tcpws preview` → configured preset ids.
* After `/tcpws info` → configured preset ids.

Tab-completion is permission-aware — non-admin players don't see admin-command matches.

### Aliases

The plugin does not register aliases by default. If you want the command to also respond to `/wildspawners` or `/wildspawner`, add a custom alias in `bukkit.yml` (Bukkit's standard alias remapping) and restart:

```yaml
aliases:
  wildspawners:
    - tcpws $1- $2- $3-
```

***

Next: **config.yml reference →** · **messages.yml →**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://darkstarworks.gitbook.io/plugins/mc/tcp-documentation/tcp-wildspawners/installation/commands-and-permissions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
