
Rules Are Mandatory
A highly customizable 1.20-26.2 Paper plugin that forces players to accept server rules before playing, using Java clickable chat/Bedrock Geyser API.
Оцените первым
0
0
RulesAreMandatory (RSAM)
A Paper 1.20+ plugin that forces players to accept server rules before they can move, break blocks, chat, or interact. Features a clickable chat UI for Java Edition and a native form for Bedrock Edition via Geyser API.
(Gallery showcase will be added later)
Features
- Fully customizable: Edit any features to your liking, set custom messages and titles
- Paginated rules (configurable items per page)
- Java Edition: Clickable chat buttons via Adventure API (accept / decline / page navigation)
- Bedrock Edition: Native GUI form via Geyser API + Cumulus
- Freeze system — players are immobilized until they accept the rules
BlockMovement— teleports player back on movementBlockCamera— locks yaw/pitch, prevents looking aroundBlindness(optional) — applies blindness effect while frozen- Walk speed & fly speed forced to 0, flying enforced
- Compatible with AuthMe / login plugins — periodic enforcement task overrides any external changes
- Full interaction lockdown:
- Chat blocked
- Commands blocked (except for login/register and plugin commands, allow-list configurable)
- Block breaking/placing blocked
- Entity damage blocked
- Force Adventure game mode
- Rule versioning — bump
Versioninrules.ymlto force all players to re-accept - Title system — on-screen title on join / show rules / accept / decline (configurable per section)
- ForceOP — toggle whether operators must also accept rules
- Re-accept timer — force players to re-accept after N days
- Admin commands:
/rsam reload— hot-reload configs/rsam reset <player>— reset a player's acceptance/rsam approve <player>— force-accept rules for a player/rsam player [player]— check player acceptance status
- ↹ Tab completion for all subcommands
Commands
| Command | Description | Permission |
|---|---|---|
/rsam | List subcommands | rsam.user.rules |
/rsam rules | Show rules (paginated) | rsam.user.rules |
/rsam accept | Accept the rules | rsam.user.rules |
/rsam decline | Decline the rules | rsam.user.rules |
/rsam reload | Reload config files | rsam.admin.reload |
/rsam reset <player> | Reset player's acceptance | rsam.admin.reset |
/rsam approve <player> | Force-accept for a player | rsam.admin.approve |
/rsam player [player] | Check player info | rsam.admin.info |
All admin commands work from console / RCon.
Aliases: /rule shows rules directly.
(/rules gets intercepted by vanilla rules command)
Config, examples and permissions
Config files (in plugins/RulesAreMandatory/)
| File | Purpose |
|---|---|
settings.yml | Main config — menus, freeze, blocks, titles, misc |
messages.yml | All chat messages (prefix: [RSAM]) |
rules.yml | Rule list + version (bump Version to force re-accept) |
players.yml | Player data (auto-generated) |
Freeze customization (settings.yml → Freeze:)
Freeze:
Enabled: true
BlockMovement: true # teleport back when moving
BlockCamera: true # lock yaw/pitch (can't look around)
AllowLook: true # allow camera when BlockCamera is false
Blindness: false # apply blindness effect while frozen
Permissions
| Permission | Default | Description |
|---|---|---|
rsam.user.rules | true | Basic player commands |
rsam.user.bypass | false | Skip rule acceptance entirely |
rsam.admin.* | op | All admin permissions |
rsam.admin.reload | op | Reload config |
rsam.admin.reset | op | Reset a player |
rsam.admin.approve | op | Force-accept for a player |
rsam.admin.info | op | Check player info |
Config example:
# ─────────────────────────────────────────────────────────────
# RulesAreMandatory — Settings
# ─────────────────────────────────────────────────────────────
# ConfigVersion — increment to auto-reset config on next reload.
ConfigVersion: 3
# ── Debug ──────────────────────────────────────────────────
# Set true to see freeze state in server console
Debug: false
Menu:
BackBtn: '&3<< &2Back'
NextBtn: '&2Next &3>>'
AcceptBtn: '&2>> Accept <<'
DenyBtn: '&4>> Deny <<'
Spacer: ' '
Page:
ItemsPerPage: 4
Cooldown: 3
Divider:
Top: '&6------------------[ %page% / %maxpage% ]------------------'
Bottom: '&6---------------------------------------------'
AcceptTop: '&6---------------------------------------------'
AcceptBottom: '&6---------------------------------------------'
InfoTop: '&6---------------------------------------------'
InfoBottom: '&6---------------------------------------------'
Default: '&6---------------------------------------------'
Actions:
OnAccept:
- 'say Player &6%player% &faccepted the server rules!'
OnDecline:
- 'say Player &3%player% &fdeclined the rules!'
- |-
kick %player% Hello %player%,
please accept our rules before playing on the server!
AllowedBeforeAccept:
- rsam
- rule
- register
- login
Greeting:
Enabled: true
Delay: 0
Freeze:
Enabled: true
MessageCooldown: 3
AllowLook: true # false = camera locked, true = player can look around
BlockCamera: true # false = can look around, true = yaw/pitch fixed
BlockMovement: true # false = can move (still adventure mode), true = teleport back
Blindness: false # true = give Blindness while frozen
Misc:
ForceOP: true
ForceAdventure: true
AcceptGameMode: SURVIVAL
SkipWorlds: []
Block:
Chat: true
Commands: true
Interact: true
MsgCooldown: 3
Reaccept:
Enabled: false
Days: 90
# ─────────────────────────────────────────────────────────────
# Title / on-screen display
# Per-section Enabled toggle
# ─────────────────────────────────────────────────────────────
Title:
OnJoin:
Enabled: true
Title: '&6&lRulesAreMandatory'
Subtitle: '&eRead the rules below'
FadeIn: 10
Stay: 70
FadeOut: 20
OnShowRules:
Enabled: true
Title: '&6&lServer Rules'
Subtitle: '&ePlease read carefully'
FadeIn: 10
Stay: 70
FadeOut: 20
OnAccept:
Enabled: true
Title: '&a&l✔ Rules Accepted!'
Subtitle: '&eWelcome to the server!'
FadeIn: 10
Stay: 60
FadeOut: 20
OnDecline:
Enabled: true
Title: '&c&l✘ Rules Declined'
Subtitle: '&eYou will be kicked'
FadeIn: 10
Stay: 60
FadeOut: 20
Dependencies
- Paper 1.20+ — required
- Geyser-Spigot — optional (Bedrock forms)
Plugin inspired by AcceptTheRules
Часто задаваемые вопросы
Совместимость
Ссылки
Создатели
Детали
Лицензия:
Опубликован:2 недели назад
Обновлён:2 недели назад
