Configurable in-game agreements for Minecraft servers and networks.
ConsentGate shows rules, policies, and other documents to players before they are admitted, and only lets them in after they accept. Documents live in local files with their own titles, text, translations, and versions. No website or extra hosting is needed.
- Velocity: players accept before any backend connection.
- Paper: players accept before entering the world.
- Java dialogs, plus native Bedrock forms through Geyser.
- SQLite by default, or MySQL/MariaDB to share consent across servers.
| Language selection | Required agreements |
|---|---|
![]() |
![]() |
| Missing agreement warning | Reading a document |
![]() |
![]() |
- Download the JAR for your platform from releases and put it in
plugins/(with PacketEvents on Velocity). - Start once. The gate starts disabled and creates its config and starter documents.
- Edit
documents/terms.yml.exampleanddocuments/privacy.yml.example, then rename them to end in.yml. - Set
enabled: trueinconfig.yml. - Run
consentgate validate, thenconsentgate reloadin the console.
The starter documents are templates. Review and adapt them before use.
Read the docs on the web at kaizenmc.id/software/consentgate, or here on GitHub:
- Overview
- Installation
- Configuration
- Writing documents
- Player experience
- Commands and permissions
- Storage and MySQL/MariaDB
- Backups and recovery
- Compatibility
- Troubleshooting
- Changelog
Working on ConsentGate itself? See contributing.
GNU General Public License v3.0 only (GPL-3.0-only). See LICENSE. Dependencies keep their own licenses; see THIRD_PARTY_NOTICES.md.





