Skip to content

Configuration Reference

Ask Access is configured in two places: the admin settings page (stored in the database, no restart needed) and the config/askaccess.php file (overridable via environment variables).


Admin panel settings

Found at Admin → Extensions → Ask Access (Blueprint installs). Stored in the askaccess_admin_settings table and applied immediately.

SettingTypeDefaultWhat it does
Access modeeveryone · allowlist · blacklisteveryoneWho may use Ask Access at all. Root admins always bypass this.
Allowlistlist of emailsemptyWhen mode is allowlist, only these emails can use the feature.
Blacklistlist of emailsemptyWhen mode is blacklist, these emails are excluded.
Request decay (hours)integer, 1–876024How long a pending request stays valid before it is auto-expired by the scheduler.
Block rate limitinteger, 1–100010Max "block user" actions a single account may perform per minute.

When to change:

  • Set mode to allowlist on hosts where only paying customers should share servers.
  • Raise request decay if your users are slow to respond (e.g. 168 = one week).
  • Emails in lists are normalized (lower-cased, validated, de-duplicated) — paste them one per line or comma-separated.

Common mistake

Switching to allowlist with an empty list disables the feature for everyone except root admins. Add emails first, then switch the mode.


Environment / config file

config/askaccess.php — every value can be set via .env without touching the file.

Env variableConfig keyTypeDefaultWhat it does
ASKACCESS_MAX_PENDINGmax_pending_per_userint25Maximum pending outgoing requests one user may have open at once. Anti-spam cap.
ASKACCESS_CREATE_RATE_LIMITcreate_rate_limitint15Max requests a user may create within the rolling window below.
ASKACCESS_CREATE_RATE_WINDOWcreate_rate_window_minutesint60Window (minutes) for the creation rate limit.
ASKACCESS_MAX_SERVERS_PER_GRANTmax_servers_per_grantint250Safety cap on how many servers a single "all servers of this user" approval can touch.
ASKACCESS_REQUEST_TTL_DAYSrequest_ttl_daysint14Unused — kept for backward compatibility. Request expiry is controlled by the admin request decay (hours) setting instead.

After changing any of these, clear the config cache:

bash
cd /var/www/pterodactyl
php artisan config:clear

Permission presets

Defined under presets in config/askaccess.php. The full preset is not a static list — it expands at runtime to every permission registered in the panel. Every preset automatically includes websocket.connect so grantees can actually load the server console.

PresetUI labelIncludes
readRead-onlyConsole view, file read, backup/allocation/startup/database/schedule/activity read. Nothing that changes state.
standardStandardEverything in read, plus start/stop/restart, file create/update/archive, backup create/download, startup edit.
fullFull accessEvery registered panel permission, including accessmanager.manage.

When to change: edit the presets arrays if your panel has custom permissions from other addons you want included in (or excluded from) read/standard. Unknown permission strings are stripped at runtime, so a typo can't grant anything.

full implies delegation

Because full contains accessmanager.manage, anyone granted Full access can grant and revoke access for that server themselves. If you don't want that, remove accessmanager from the permission list or avoid offering the preset.


The accessmanager.manage permission

The installer adds a custom permission group to app/Models/Permission.php:

PermissionGranted byEffect
accessmanager.manageOwner via the Active tab / subuser editorThe subuser can manage access for that server from their own Server Access page: add/remove users, edit permissions, set expiry.
  • Scoped per server — a manager on server A has no power over server B.
  • Managers cannot remove the owner and cannot escalate their own permissions beyond what exists on the panel.
  • Uninstalling the addon removes this permission group cleanly.