Native, server-side tick-rate override and benchmark monitor for ARK: Survival Ascended Dedicated Server.
Current plugin version: 1.0.2
Required framework: ASA Server API 2.01
Players do not install anything. The plugin runs only on the dedicated server.
- Configurable server tick-rate target.
- Real world-TPS measurement rather than a displayed target alone.
- Compact benchmark monitor available only to authenticated administrators.
- Performance-only overlay: license state and identifiers are never displayed in the monitor.
- Process CPU, memory, player count, uptime, tick time, and license status.
- Signed license leases with a limited offline grace period.
- Non-blocking update notification with a direct GitHub download link.
- No automatic binary download, replacement, or server restart.
The fixed release page is:
https://github.com/venomx96/ASA-TickRate-Plugin/releases/tag/Live
Release assets use these names:
| File | Purpose |
|---|---|
ASA-TickRate-Plugin-1.0.2.zip |
Standard plugin package. Copy its TickRate folder into ArkApi/Plugins. |
ASA-TickRate-Plugin-1.0.2-Server-Layout.zip |
Plugin-only package already arranged from the ASA server root. Install ASA Server API first. |
ASA-TickRate-Plugin-1.0.2-Pterodactyl-Proton.zip |
Recommended Pterodactyl/Proton package. Includes the MIT-licensed Version.dll proxy loader and the plugin in server layout. |
Important
ASA Server API is a separate dependency and is not included in the public packages. Its official resource page explicitly prohibits re-uploading it. Download and install ASA Server API directly from the official page before installing any package listed above.
- ARK: Survival Ascended Dedicated Server.
- Windows 10 / Windows Server 2019 or newer, or a Windows ASA server running through Proton/Wine on a compatible host.
- ASA Server API 2.01.
- Microsoft Visual C++ Redistributable 2015–2022 x64.
- A valid
ASA-TickRate-Pluginlicense key. - Outbound HTTPS access to the license service and
api.github.com.
Stop the ASA server cleanly. Back up at least:
ShooterGame/Saved/
ShooterGame/Binaries/Win64/ArkApi/
- Download ASA Server API from its official resource page.
- Open the downloaded archive.
- Extract its contents directly into:
<ASA_SERVER_ROOT>/ShooterGame/Binaries/Win64/
- Allow files and folders to merge when prompted.
- Verify that these files now exist:
ShooterGame/Binaries/Win64/AsaApiLoader.exe
ShooterGame/Binaries/Win64/config.json
ShooterGame/Binaries/Win64/ArkApi/AsaApi.dll
ShooterGame/Binaries/Win64/ArkApi/Plugins/
Do not place the Loader at the ASA server root. Its executable must be inside
ShooterGame/Binaries/Win64.
In ShooterGame/Binaries/Win64/config.json, keep this setting enabled:
{
"settings": {
"HooksDoNotThrow": true
}
}Preserve the other settings supplied by ASA Server API when editing this file.
Choose one package layout.
Extract ASA-TickRate-Plugin-1.0.2.zip, then copy its TickRate directory to:
<ASA_SERVER_ROOT>/ShooterGame/Binaries/Win64/ArkApi/Plugins/TickRate/
Install ASA Server API first, then extract
ASA-TickRate-Plugin-1.0.2-Server-Layout.zip directly into:
<ASA_SERVER_ROOT>/
Install ASA Server API first, then extract
ASA-TickRate-Plugin-1.0.2-Pterodactyl-Proton.zip directly into:
/home/container/
This package adds both of these components in the correct locations:
ShooterGame/Binaries/Win64/Version.dll
ShooterGame/Binaries/Win64/ArkApi/Plugins/TickRate/
Version.dll is the official MIT-licensed proxy loader from
ArkServerApi/AsaApiLoader v1.0.
It allows Proton servers to start the normal ArkAscendedServer.exe while still
loading ASA Server API.
The final plugin layout must be exactly:
ShooterGame/
└── Binaries/
└── Win64/
├── AsaApiLoader.exe
├── config.json
└── ArkApi/
├── AsaApi.dll
└── Plugins/
└── TickRate/
├── TickRate.dll
├── TickRate.ini
├── PluginInfo.json
├── TERMS.md
└── PRIVACY.md
The plugin directory and DLL must both remain named TickRate. ASA Server API
will not load the plugin if those names no longer match.
The Pterodactyl/Proton method additionally requires
ShooterGame/Binaries/Win64/Version.dll beside ArkAscendedServer.exe.
Edit:
ShooterGame/Binaries/Win64/ArkApi/Plugins/TickRate/TickRate.ini
Minimum configuration:
[TickRate]
Enabled=true
TargetTickRate=60
[Monitor]
Enabled=true
DefaultOpenForAdmins=false
UpdateIntervalMs=500
MeasurementWindowMs=2000
[License]
LicenseKey=PASTE-LICENSE-KEY-HEREThe license endpoint and license policy are not configurable in the INI file. The instance label is read automatically from the ASA session name.
Native Windows uses AsaApiLoader.exe. The recommended Pterodactyl/Proton
method uses Version.dll with Wine's native DLL override and starts the normal
ArkAscendedServer.exe.
Run from ShooterGame/Binaries/Win64:
AsaApiLoader.exe "TheIsland_WP?listen?SessionName=My Server?Port=7777?QueryPort=27015?RCONPort=27020?RCONEnabled=True?MaxPlayers=20" -WinLiveMaxPlayers=20 -log -servergamelog -NoBattlEye-oldconsole can be added for an interactive legacy console on a native Windows
desktop. It is not recommended in a headless Proton container.
This integration targets the community ARK: Survival Ascended egg maintained by the Pterodactyl Eggs project:
- Egg download and documentation
- Egg JSON source
- Container image:
ghcr.io/ptero-eggs/steamcmd:proton
In the Pterodactyl administrator interface, open the egg and replace its complete Startup Command with the following single line:
rmv() { echo "stopping server"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} KeepAlive && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo "Server Closed"; exit; }; trap rmv 15 2; ARKAPI_LOG_MARKER="$(mktemp)"; PROTON_USE_XALIA=0 WINEDLLOVERRIDES="version=n,b" proton run ./ShooterGame/Binaries/Win64/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ "$SERVER_PVE" == "0" ] || printf %s '?ServerPVE=True' )?ServerPassword="{{SERVER_PASSWORD}}"{{ARGS_PARAMS}}?ServerAdminPassword="{{ARK_ADMIN_PASSWORD}}" -WinLiveMaxPlayers={{MAX_PLAYERS}} -servergamelog $( [ -z "$MOD_IDS" ] || printf %s ' -mods=' $MOD_IDS )$( [ "$BATTLE_EYE" == "1" ] || printf %s ' -NoBattlEye' ) -Port={{SERVER_PORT}} {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F ./ShooterGame/Saved/Logs/ShooterGame.log --pid=$ARK_PID & ( while kill -0 "${ARK_PID}" 2>/dev/null; do ARKAPI_LOG="$(find ./ShooterGame/Binaries/Win64/logs -maxdepth 1 -type f -name 'ArkApi_*.log' -newer "${ARKAPI_LOG_MARKER}" -print 2>/dev/null | head -n 1)"; if [ -n "${ARKAPI_LOG}" ]; then echo "[Pterodactyl] Mirroring ASA Server API log: ${ARKAPI_LOG}"; tail -n +1 -F "${ARKAPI_LOG}" --pid="${ARK_PID}"; break; fi; sleep 1; done; rm -f -- "${ARKAPI_LOG_MARKER}" ) & until echo "waiting for rcon connection..."; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; doneCompared with the upstream egg, this command makes four deliberate changes:
- creates a launch marker before Proton starts;
- enables the
Version.dllproxy withWINEDLLOVERRIDES="version=n,b"; - mirrors the new
ArkApi_*.logfrom its first line into the panel console; - removes
-oldconsole, which is unnecessary and unreliable in a headless Proton container.
Do not place the Wine variables or log-following block inside ARGS_FLAGS. Do
not start AsaApiLoader.exe while Version.dll is enabled. To revert, stop the
server, remove Version.dll, remove the Wine override, and restore the upstream
egg Startup Command.
After startup, check the server log for entries similar to:
[TickRate][info] Configuration loaded: target=60
[TickRate][info] ASA-TickRate-Plugin 1.0.2 loaded
[TickRate][info] [Update] ASA-TickRate-Plugin 1.0.2 is up to date.
The first license validation can complete shortly after the plugin loads. The tick-rate override remains inactive until a valid signed lease is received.
From Pterodactyl console or RCON:
tickrate.status
tickrate.license
In game, authenticate as an administrator with enablecheats, then run:
tickrate.monitor on
| Command | Description |
|---|---|
tickrate.status |
Show the full tick-rate, performance, hook, and license status. |
tickrate.reload |
Reload TickRate.ini. |
tickrate.set 60 |
Set a temporary target without bypassing licensing. |
tickrate.monitor |
Toggle the private administrator monitor. |
tickrate.monitor on |
Open the private administrator monitor. |
tickrate.monitor off |
Close the private administrator monitor. |
tickrate.monitor status |
Show the current monitor state. |
tickrate.license |
Force a new online license validation. |
| Setting | Description |
|---|---|
Enabled |
Enables the administrator monitor feature. |
DefaultOpenForAdmins |
Opens the monitor automatically for authenticated administrators. |
UpdateIntervalMs |
Overlay refresh interval, clamped between 100 and 10000 ms. |
MeasurementWindowMs |
TPS measurement window, clamped between 500 and 10000 ms. |
DisplayScale |
Compact overlay scale. |
GoodThresholdPercent |
Percentage displayed as healthy performance. |
WarningThresholdPercent |
Percentage displayed as warning performance. |
ShowCpu |
Show ASA process CPU usage. |
ShowMemory |
Show ASA process memory usage. |
ShowPlayers |
Show connected players. |
- Stop the server.
- Back up
TickRate.ini,instance.id, andmachine.id. - Replace
TickRate.dlland the supplied documentation. - Keep the identity files to avoid consuming another activation.
- Restart with the same native Windows or Pterodactyl/Proton loading method.
At startup, the plugin checks the fixed GitHub release tagged Live asynchronously. It compares
the current version with assets named ASA-TickRate-Plugin-X.Y.Z.zip and writes
one informational message. It never downloads or installs an update itself.
- Native Windows: confirm the server starts with
AsaApiLoader.exe. - Pterodactyl/Proton: confirm
Version.dllis besideArkAscendedServer.exeandWINEDLLOVERRIDES="version=n,b"appears beforeproton run. - Confirm the path is
ArkApi/Plugins/TickRate/TickRate.dll. - Confirm the folder and DLL are both named
TickRate. - Confirm ASA Server API 2.01 is installed rather than an older build.
Install or repair the Microsoft Visual C++ Redistributable x64 package. Confirm that the DLL files supplied with ASA Server API remain beside the Loader.
On Proton/Pterodactyl, set PROTON_USE_XALIA=0 before proton run and remove
-oldconsole.
This is normal until ASA finishes loading and opens the configured RCON port. If
it never becomes available, inspect ShooterGame/Saved/Logs/ShooterGame.log and
the ASA Server API log directory under ShooterGame/Binaries/Win64/logs.
The warning is non-fatal. The server and license system continue to operate. Check
outbound HTTPS/DNS access to api.github.com.
Confirm LicenseKey is under [License] in TickRate.ini, then run
tickrate.license. Do not post the complete license key in screenshots or logs.
The plugin sends licensing and benchmark telemetry to the configured license
service. This includes the observed source IP, installation ID, pseudonymous
machine fingerprint, machine name, ASA session name, plugin version, TPS values,
and player count. Read TERMS.md and PRIVACY.md before deployment.
ASA Server API is maintained independently by the ArkServerApi project and is not affiliated with Studio Wildcard or this plugin. Download the framework only from its official resource page. Its public source repository is available at https://github.com/ArkServerApi/AsaApi.
The Pterodactyl/Proton package includes the official Version.dll proxy from
ArkServerApi/AsaApiLoader, which
is distributed under the MIT License. Its copyright and license notice are
included in THIRD-PARTY-NOTICES/ASA-VersionLoader-LICENSE.txt.