56 lines
5.4 KiB
Markdown
56 lines
5.4 KiB
Markdown
# ClaimLink
|
|
|
|
Links vanilla Vintage Story land claims to an existing player group and adds a protected buffer zone around the linked area. Requires [CommandHook](https://mods.vintagestory.at/show/mod/56633) 2.1.0+.
|
|
|
|
Root command: `/claimlink` (aliases: `/clink`, `/claiml`, `/cl`). Requires the `chat` privilege.
|
|
|
|
Most actions that change state (`new`, `link`, `unlink`, `kick`, `delete`, `transferownership`) stage the change and ask you to confirm it with `/claimlink confirm` or back out with `/claimlink cancel`. Buffer permission commands (`allow`, `allowgroup`, `deny`, `denygroup`) and read-only commands (`info`, `list`) apply immediately.
|
|
|
|
A `groupname` argument can usually be left off if you're sending the command from that group's chat channel, it'll infer the group from context, same as vanilla's own `/group` commands.
|
|
|
|
## Player commands
|
|
|
|
| Command | Args | Description |
|
|
|---|---|---|
|
|
| `new` (`n`) | `[groupname]` | Promote a group you own into a claim link. Owner only. |
|
|
| `link` (`l`) | `<claim> [groupname]` | Link a claim you own into a claim link. Must be a member. Rejected if the claim's buffer would overlap another claim link's buffer or another player's raw claim. |
|
|
| `unlink` (`ul`) | `<claim>` | Remove one of your claims from its claim link. |
|
|
| `confirm` (`c`) | | Confirm your pending staged action. |
|
|
| `cancel` | | Cancel your pending staged action. |
|
|
| `kick` | `<groupname> [playername]` | Force-unlink all of a player's claims from the claim link. Owner or op only. |
|
|
| `allow` | `<playername> <use\|build\|all> [groupname]` | Grant a player buffer access without adding them to the group. Owner or op only. |
|
|
| `allowgroup` | `<targetgroup> <use\|build\|all> [groupname]` | Grant a whole other player group buffer access. Owner or op only. |
|
|
| `deny` | `<groupname> [playername]` | Revoke a player's buffer access. Owner or op only. |
|
|
| `denygroup` | `<groupname> [targetgroup]` | Revoke a group's buffer access. Owner or op only. |
|
|
| `delete` | `[groupname]` | Delete a claim link (the underlying vanilla group is untouched, it just stops being a claim link). Owner only. |
|
|
| `transferownership` (`transfer`, `to`) | `<groupname> [playername]` | Transfer ownership of the claim link to another member. Owner only. |
|
|
| `info` (`i`) | `[groupname]` | Show a claim link's members and linked claims. Full detail (claims, granted access) only shown to members or ops with `controlserver`; others just see the member list. |
|
|
| `list` (`ls`) | | List every claim link on the server and its member count. |
|
|
|
|
`claim` arguments are the claim's index in `/land claim list` (your own claim numbering, same as vanilla).
|
|
|
|
`allow`/`allowgroup`/`deny`/`denygroup` access levels: `use` (interact), `build` (place/break), `all` (both).
|
|
|
|
## Admin commands
|
|
|
|
`/claimlink admin` (alias `/claimlink a`), requires `controlserver`. Same shape as the player commands but works on any claim link regardless of ownership or membership, and skips the confirm/cancel staging (instant).
|
|
|
|
| Command | Args | Description |
|
|
|---|---|---|
|
|
| `admin delete` (`del`) | `[groupname]` | Delete any claim link. |
|
|
| `admin unlink` | `<playername> <claim>` | Unlink a specific claim from any claim link. |
|
|
| `admin kick` | `<groupname> [playername]` | Force-unlink all of a player's claims from any claim link. |
|
|
| `admin transferownership` (`transfer`, `to`) | `<playername> [groupname]` | Force-transfer ownership of any claim link. |
|
|
| `admin allow` | `<playername> <use\|build\|all> [groupname]` | Grant buffer access on any claim link. |
|
|
| `admin allowgroup` | `<targetgroup> <use\|build\|all> [groupname]` | Grant a group buffer access on any claim link. |
|
|
| `admin deny` | `<groupname> [playername]` | Revoke a player's buffer access on any claim link. |
|
|
| `admin denygroup` | `<groupname> [targetgroup]` | Revoke a group's buffer access on any claim link. |
|
|
|
|
## How the buffer works
|
|
|
|
A vanilla claim can be made of multiple cuboid areas (grown one face-adjacent cuboid at a time), and the buffer follows the same shape: each area gets its own grown box, outward by a configurable margin (`BufferSize`, default 16 blocks, in `ModConfig/claimlink.json`) on every axis. Areas close enough for their grown boxes to touch or overlap, whether from the same claim or different claims linked to the same claim link, read as one continuous protected area. Linking a claim, or growing an existing linked claim via `/land claim save`, checks the resulting buffer against every other claim link's buffer and every other player's raw claim, and rejects the change if it would overlap either. Your own claim link is exempt from that check, so its own areas are free to overlap or touch each other, which is exactly how they end up reading as one continuous protected area. Only overlap with a different claim link, or with someone else's claim, is blocked.
|
|
|
|
Buffer permissions only cover the empty space around the linked claims, not the claims themselves. In that space, only members of the claim link's group, or anyone explicitly granted access via `allow`/`allowgroup`, can place, break, or use blocks; grant level (`use`/`build`/`all`) controls which. On the ground of a claim that's actually part of the claim link, normal vanilla permissions (owner, claim's group, explicit permission, `AllowUseEveryone`) decide access instead, same as any other claim.
|
|
|
|
See the companion mod [ClaimLinkVisualizer](https://git.forlornoutpost.ca/anth64/ClaimLinkVisualizer) to actually see buffer zones rendered in-world.
|