AltisControl Docs ↗
Documentation › Technical reference
Go to panel

Troubleshooting

Quick diagnosis for installation, licensing, access, RCON, allowlist, backups, and updates.

/admin or /docs returns 404

Check the web root, Apache .htaccess support, and mod_rewrite. The base_path in config.php must match the public panel path. /docs/ is static HTML and can also be opened directly from disk without an administrator session.

Installer does not proceed

Check SQL credentials; verify that players, vehicles, and gangs exist; and confirm permissions to create ac_ tables and write config.php. The owner password needs at least 14 characters. An explicitly rejected license cannot be used; temporary license-service unavailability is handled differently.

Cannot sign in or missing 2FA

Use the configured email, password, and TOTP secret provided when the account was created. Synchronize the clocks of the server and authenticator device. The initial TOTP secret is shown only once and cannot be derived from a six-digit code. A limited account sees fewer sections.

RCON does not connect or show slots

Check host, RCON port, password, UDP firewall rules, and BattlEye on the server. Steam Query uses a different port and protocol; configure its host and port if the real maximum slots are missing. Simulated mode deliberately labels its 100 slots as simulated.

Server allowlist does not kick

Verify that it is enabled, has at least one authorized GUID, uses live BattlEye RCON, and php bin/battle-eye.php --loop is running. The panel reports listener heartbeat and last error. A kick occurs after the GUID is verified, not necessarily before slot selection.

A temporary ban expired but remains in RCON

Check UTC time, the ban end date, and worker status. The worker runs writeBans when bans expire; if RCON fails, reconciliation remains pending and is retried. The interface stops counting the ban as active at its end date. If the GUID is still banned, check for another BattlEye or external ban.

Automatic backups are not created

Check the toggle and next run in Backup, then inspect backup-scheduler.php and write access to storage/backups/. A saved schedule alone does not run tasks. For routines, events, or triggers, install mysqldump and check SQL privileges.

An update failed

Read the displayed error and PHP log. Previous backups remain available in Update for download. Do not remove config.php or storage/. Check free space, file permissions, HTTPS connectivity, package hash, and migration SQL before retrying.

Diagnostic resources

Inspect src/Api.php for the affected route, src/Backup.php or src/Updater.php for backups and releases, and RCON.md in the development source for listener details. Record the time, URL, HTTP status, and request ID of an error. Do not publish passwords, license keys, or config.php.