CannaTalePermissions
CannaTalePermissions is a full permissions + chat formatting solution for Hytale Servers, built to be fast, clean, and admin-friendly. It plugs directly into Hytale's PermissionsModule as a provider, so other mods can rely on one consistent permission system.
Highlights
- SQLite backend (WAL enabled) - no giant JSON files, no "config spam", and edits stay safe + consistent.
- True allow/deny permissions - nodes can be explicitly allowed or denied (deny wins where applicable).
- Wildcard support - checks fall back like:
a.b.c.→a.b.*→a.*→*. - Groups done right
- Weights (used to determine a player's primary group)
- Default group support
- Parent inheritance (groups can inherit permissions/meta from other groups)
- Direct group permissions + direct user permissions
- Chat formatting (enabled by default)
- Global format + optional per-primary-group format overrides
- Placeholders:
{GROUP},{PREFIX},{SUFFIX},{USERNAME},{MESSAGE} - Supports Hytale-style color tags (ex:
<GREEN>,<RED>,<#FFFFFF>, etc.)
- In-game Editor UI
- Open a full permissions editor page with
/ctperm editor - Manage groups/users, weights/default group, parents, members, permissions, prefix/suffix meta, and group chat format overrides in one place
- Open a full permissions editor page with
Storage / Files
Created in the plugin data folder:
ctperm-config.json- config db filename, default group, chat formatting settings)ctperm.db- SQLite database (users, groups, memberships, parents, permissions, meta)
Important behavior notes
- Offline editing is supported only after a player has joined at least once.
- If there's no UUID stored yet, commands fail immediately (no "pending users" are created).
Commands
Main command: /ctperm (alias: /ctp)
Users
user info <userOrUuid>user permset <userOrUuid> <node> [--value=True/False]user permunset <userOrUuid> <node>user groupadd <userOrUuid> <group>user groupremove <userOrUuid> <group>user prefixset <userOrUuid> <priority> <text>user prefixremove <userOrUuid> <priority>user suffixset <userOrUuid> <priority> <text>user suffixremove <userOrUuid> <priority>
Groups
group create <group> [--weight=]group delete <group>group rename <oldname> <newname>group listgroup info <group>group permset <group> <node> [--value=True/False]group permunset <group> <node>group parentadd <group> <parent>group parentremove <group> <parent>group weightset <group> <weight>group defaultset <group>group prefixset <group> <priority> <text>group prefixremove <group> <priority>group suffixset <group> <priority> <text>group suffixremove <group> <priority>
Other
editortest <userOrUuid> <node>reload
Permission nodes (admin access control)
cannatalepermissions.command.basecannatalepermissions.command.reloadcannatalepermissions.command.testcannatalepermissions.editorcannatalepermissions.user.infocannatalepermissions.user.permcannatalepermissions.user.groupcannatalepermissions.user.metacannatalepermissions.group.createcannatalepermissions.group.deletecannatalepermissions.group.renamecannatalepermissions.group.listcannatalepermissions.group.infocannatalepermissions.group.permcannatalepermissions.group.parentcannatalepermissions.group.weightcannatalepermissions.group.defaultcannatalepermissions.group.meta

