Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASA-TickRate-Plugin

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.

Features

  • 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.

Downloads

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.

Requirements

Installation

1. Stop and back up the server

Stop the ASA server cleanly. Back up at least:

ShooterGame/Saved/
ShooterGame/Binaries/Win64/ArkApi/

2. Install ASA Server API 2.01

  1. Download ASA Server API from its official resource page.
  2. Open the downloaded archive.
  3. Extract its contents directly into:
<ASA_SERVER_ROOT>/ShooterGame/Binaries/Win64/
  1. Allow files and folders to merge when prompted.
  2. 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.

3. Install ASA-TickRate-Plugin

Choose one package layout.

Standard plugin package

Extract ASA-TickRate-Plugin-1.0.2.zip, then copy its TickRate directory to:

<ASA_SERVER_ROOT>/ShooterGame/Binaries/Win64/ArkApi/Plugins/TickRate/

Server-layout package

Install ASA Server API first, then extract ASA-TickRate-Plugin-1.0.2-Server-Layout.zip directly into:

<ASA_SERVER_ROOT>/

Pterodactyl / Proton package

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.

4. Configure the plugin

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-HERE

The license endpoint and license policy are not configurable in the INI file. The instance label is read automatically from the ASA session name.

Starting the server with ASA Server API

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.

Native Windows example

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.

Pterodactyl / Proton

This integration targets the community ARK: Survival Ascended egg maintained by the Pterodactyl Eggs project:

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; done

Compared with the upstream egg, this command makes four deliberate changes:

  • creates a launch marker before Proton starts;
  • enables the Version.dll proxy with WINEDLLOVERRIDES="version=n,b";
  • mirrors the new ArkApi_*.log from 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.

Verifying the installation

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

Commands

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.

Monitor settings

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.

Updating

  1. Stop the server.
  2. Back up TickRate.ini, instance.id, and machine.id.
  3. Replace TickRate.dll and the supplied documentation.
  4. Keep the identity files to avoid consuming another activation.
  5. 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.

Troubleshooting

The plugin does not appear in the logs

  • Native Windows: confirm the server starts with AsaApiLoader.exe.
  • Pterodactyl/Proton: confirm Version.dll is beside ArkAscendedServer.exe and WINEDLLOVERRIDES="version=n,b" appears before proton 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.

AsaApiLoader.exe fails immediately on Windows

Install or repair the Microsoft Visual C++ Redistributable x64 package. Confirm that the DLL files supplied with ASA Server API remain beside the Loader.

System.PlatformNotSupportedException: Video driver not supported

On Proton/Pterodactyl, set PROTON_USE_XALIA=0 before proton run and remove -oldconsole.

RCON reports connection refused during startup

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 update check reports that GitHub is unavailable

The warning is non-fatal. The server and license system continue to operate. Check outbound HTTPS/DNS access to api.github.com.

The license is missing or invalid

Confirm LicenseKey is under [License] in TickRate.ini, then run tickrate.license. Do not post the complete license key in screenshots or logs.

Licensing and privacy

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.

Third-party notice

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.

Releases

Contributors