Lightweight Paper/Folia plugin that adds `/sit` and `/lay` commands, letting players take sitting and laying poses in-game.
**Soft dependencies:** ProtocolLib, ViaVersion/ViaBackwards, Geyser.
## Features
- `/sit` to sit, `/lay` to lay — run again or press Shift to cancel.
- **Switch poses freely** — going from sit to lay (and back) just works.
- **Quick sit** — Shift + right-click a slab or stair, no command needed.
- **Realistic lay** — fake entity mirrors your exact skin and equipment.
- **Pose sync** — players joining mid-session see everyone's active poses.
- Supports [**MiniMessage**](
https://docs.advntr.dev/minimessage/format.html).
- **Flexible permissions** — enable or disable checks per command, stack multiple nodes.
- **Smart guards** — blocks poses while riding or carrying passengers.
- **Fine-tuned positioning** — Y-offset, auto-centering, slab/stair-aware logic.
- **Auto-cancel** — on damage, teleport, world change, or quit. All configurable.
- **Live reload** — `/sitandlay reload`, no restart needed.
## Feedback
**Please report any bugs, errors, or feature suggestions on Discord:** [
https://discord.gg/4XUPywnEyE](https://discord.gg/4XUPywnEyE)
## Commands
| Command | Description | Default Permission |
|---|---|---|
| `/sit` | Toggle sitting pose | Check disabled (`sitandlay.sit`) |
| `/lay` | Toggle laying pose | Check disabled (`sitandlay.lay`) |
| `/sitandlay reload` | Reload plugin configs | `sitandlay.reload` |
Permission behavior is fully configurable per command in `commands.yml`.
## Configs by default
### `commands.yml`
```
#Permission settings for /sit command
sit:
#Disable permission checks completely for this command
disable-permission-check: true
#Allowed permissions. Player needs at least one when checks are enabled
permissions:
- "sitandlay.sit"
#Permission settings for /lay command
lay:
#Disable permission checks completely for this command
disable-permission-check: true
#Allowed permissions. Player needs at least one when checks are enabled
permissions:
- "sitandlay.lay"
#Permission settings for /sitandlay reload command
reload:
#Disable permission checks completely for this command
disable-permission-check: false
#Allowed permissions. Player needs at least one when checks are enabled
permissions:
- "sitandlay.reload"
```
### `messages.yml`
```
#Messages for /sitandlay reload and generic command responses
root:
#Shown when command is executed from console
only-player: "<red>This command is only for players.</red>"
#Shown when permission check fails
no-permission: "<red>You do not have permission.</red>"
#Shown for unknown /sitandlay subcommand
invalid-subcommand: "<red>Use: /sitandlay reload</red>"
#Shown after successful /sitandlay reload
reloaded: "<green>Configuration reloaded.</green>"
#Messages used only by /sit flow
sit:
#Shown when /sit is applied
enabled: "<green>You are now sitting.</green>"
#Shown when /sit toggles off
disabled: "<yellow>Sit disabled.</yellow>"
blocked-vehicle: "<red>You cannot sit while riding.</red>"
blocked-passengers: "<red>You cannot sit with passengers.</red>"
not-on-ground: "<red>You must stand on a solid block.</red>"
apply-failed: "<red>Unable to apply sit in current position.</red>"
cancelled: "<yellow>Your sit has been cancelled.</yellow>"
#Messages used only by /lay flow
lay:
#Shown when /lay is applied
enabled: "<green>You are now laying.</green>"
#Shown when /lay toggles off
disabled: "<yellow>Lay disabled.</yellow>"
blocked-vehicle: "<red>You cannot lay while riding.</red>"
blocked-passengers: "<red>You cannot lay with passengers.</red>"
not-on-ground: "<red>You must stand on a solid block.</red>"
apply-failed: "<red>Unable to apply lay in current position.</red>"
cancelled: "<yellow>Your lay has been cancelled.</yellow>"
```
### `settings.yml`
```
#Settings for /sit pose behavior
sit:
#Center player on block when applying sit
auto-center: false
#Allow SHIFT + right click on slabs/stairs to toggle sit
shift-right-click-on-slabs-and-stairs: true
#Maximum distance to clicked slab/stairs for SHIFT + right click sit
shift-right-click-max-distance: 4.0
#Y offset for the fake sit seat entity
y-offset: 0.0
#Require solid block below player before applying pose
require-solid-block-below: true
#Settings for /lay pose behavior
lay:
#Y offset for the lay seat/body positioning
y-offset: 0.0
#Require solid block below player before applying pose
require-solid-block-below: true
#Global pose cancel behavior
behaviour:
#Cancel active pose when player takes damage
cancel-on-damage: true
#Cancel active pose when player teleports
cancel-on-teleport: true
#Cancel active pose when player changes world
cancel-on-world-change: true
#Cancel active pose when player quits or gets kicked
cancel-on-quit: true
```