Skip to content
NordBots.

Checkpoint

Ban the connection, not just the account.

Checkpoint bans by account or by connection so a new account will not get them back in, shows you where a player really is, and gates travel during a raid.

You ban somebody and they are back in ten minutes on a fresh account. That is the whole reason I built Checkpoint. It bans the account like anything else does, and it also bans one address, a whole range, an internet company or a country, and it turns that connection away before the player ever finishes loading. Add a geo key and you can see the country, the town and whether somebody is hiding behind a VPN, which turns a hunch into something you can read out loud to your staff. It also carries player travel, because the same plugin already knows when a raid is happening and can shut the warps for the length of it.

Supported Features

  • Turned away at the door: a banned connection is refused before the player loads a character, and they read the reason and the end date instead of a blank failed to connect.
  • Five kinds of ban: the account, one address, a whole range, an internet company by its AS number, or a country. Pick the smallest one that does the job.
  • You see who you are dealing with: one command prints their survivor name, account name, tribe, player id, every address I have seen them on, and which accounts share a connection with them.
  • Accounts that share a line: I group them into likely, maybe and weak, print the evidence behind each, and say out loud that one house and one alt look exactly the same. You decide, not me.
  • Where they really are: add a free geo key and I fill in the country, the town and the internet company, and tell you when somebody is on a VPN, a proxy or a data centre line.
  • Nobody warps into a raid: travel shuts for a tribe while their base is being hit, and for the tribe doing the hitting, so twelve defenders cannot arrive one after another.
  • Travel that needs a yes: one player asks, the other agrees, and only then does anybody move. There is a cooldown, a per pair cooldown so two friends cannot run a taxi service, and a warmup that cancels if either of them is hit.
  • Mutes that climb: a repeat offender gets longer each time from a ladder you write, and every mute expires on its own so you never forget one.
  • It will not let you ban yourself quietly: anything wider than a small range counts how many of your own past logins it would have refused, names any staff it would have caught, and asks for a code before it takes.
  • A way back in: one RCON command switches every ban check off for ten minutes, because RCON does not go through the gate. Lock yourself out and you are still fine.
  • Careful with addresses by default: logins are deleted after ninety days, a public Discord post shows the last part starred out, and one setting keeps addresses as a hash instead. Bans still work in that mode.
  • Erase one person on request: a single command wipes every address and lookup I hold for one player and writes a note that it happened, which is the paperwork somebody will ask you for one day.
  • One ban across a cluster: point every map at one MySQL database and a ban placed on one map bites on all of them within half a minute.
  • Tells you what it cannot do: some players reach an ASA server in a way that hands over no address at all. I say so per player rather than pretending, and fall back to the account ban, which always works.
  • It checks the game before it trusts it: at start up I read the offsets your server actually has and switch off anything the game has moved, then explain what that cost you. A game patch takes a feature away, not your server.
  • Your language, your words: name a language in config.json and every line I show a player or print in the console comes from a plain text file you can rewrite, translate, or pass to another owner.

Console & RCON Commands

Command What It Does Where
Checkpoint.Reload Read the config again without a restart. Both
Checkpoint.Who <player> [--json] Everything I know about one player: names, ids, addresses, where they look to be, linked accounts, bans and mutes. Both
Checkpoint.Ban <kind> <key> <length> <reason> Ban an account, an address, a range, an AS number or a country. Length takes 30m, 7d or forever. Both
Checkpoint.Unban <id> Lift a ban by its id, or by kind and key. Both
Checkpoint.Bans [--active] [--json] List the bans with how many joins each one has turned away. Both
Checkpoint.Alts <player> [--json] Accounts that share a connection with this one, with the evidence and how sure I am. Both
Checkpoint.Logins <player> [--json] The last logins I have for one player. Both
Checkpoint.Where [days] [--json] Which countries and time zones your players are actually joining from. Both
Checkpoint.Mute <player> [length] [kind] [reason] Mute somebody. Leave the length out and the ladder picks it. Both
Checkpoint.Unmute <player> Let them talk again. Both
Checkpoint.Kick <player> [reason] Put somebody out now. Both
Checkpoint.Geo <address or player> Look one address up on purpose. Both
Checkpoint.GeoBackfill [--confirm] Fill in the addresses I have never looked up, so the country report works on day one. Both
Checkpoint.Forget <player> [--confirm] Erase every address and lookup I hold for one player. Both
Checkpoint.Open [minutes] Switch every ban check off for a while. This is your way back in if you ban yourself. Both
Checkpoint.Travel <player> [--json] Their travel cooldown, how many trips today, and any hold on them. Both
Checkpoint.ClearCooldown <player> Let one player travel again right now. Both
Checkpoint.Doctor [--json] What is on, what is off, which door I catch a joining player at, and anything the game has moved. Paste this when you ask for help. Both
Checkpoint.Journal Where to read the record of every change I have made. Both
Checkpoint.TestDiscord Send one test post to each Discord channel. Both

Player Commands

Every command word lives in config.json, so rename any of them or empty one out to switch it off.

Command What It Does
/tpr <player> Ask to travel to somebody.
/tph <player> Ask somebody to come to you.
/tpa [player] Say yes. Name one or use a number when several are waiting.
/tpd [player] Say no. Add all to clear the lot.
/tpc Drop the ask you sent.
/tpl See who is waiting on you, numbered.
/tpinfo Your cooldown, your trips today, and why the last one was refused.
/banned A player checks their own state. Am I banned, am I muted, when does it end.
`/ck <who ban

Permissions

Node What It Unlocks
Checkpoint.Travel Lets a player use travel at all.
Checkpoint.Vip Gives that group a shorter travel cooldown.
Checkpoint.Who Look a player up from chat.
Checkpoint.Ban Place and lift bans from chat.
Checkpoint.Mute Mute and unmute from chat.
Checkpoint.Kick Put a player out from chat.
Checkpoint.Alts See which accounts share a connection.
Checkpoint.SeeIp Read a whole address anywhere. Give this one out carefully.
Checkpoint.Immune Nothing can ever ban anybody holding this. Put your staff group here.

Travel fails open, so with no Permissions plugin installed every player can still travel on the normal cooldown. The staff nodes fail closed, so with no Permissions the chat commands say no to everybody and you work from the console or RCON, which is where the full set lives anyway.

Config

To see every configuration option, visit our docs. To edit your config files the easy way, open our configuration editor.

Requirements

  • AsaApi v2.01 or newer
  • A Windows server running ArkAscendedServer through the AsaApi loader
  • SQLite (built in, nothing to set up) or MySQL when you want one ban across a whole cluster
  • A geo API key (optional, works without it, only needed for country and AS number bans and the VPN flags)
  • Permissions (optional, works without it, only needed to gate the staff chat commands and hand out a shorter travel cooldown)
  • ArkShop or WShop (optional, only needed when you charge points for a trip)
  • A Discord webhook (optional, works without it)

Installation

  1. Unzip the download and drop the Checkpoint folder into ArkApi/Plugins/. Keep the folder named Checkpoint, because AsaApi wants the folder to carry the same name as the DLL inside it.
  2. Open Checkpoint/config.json and put your own EOS id in SafeList.Eos. Do this before you ban anything, so you cannot lock yourself out.
  3. Save the file and restart the server through AsaApiLoader.exe.
  4. Run Checkpoint.Doctor from RCON. It tells you the records opened, which door it catches a joining player at, and whether anything is switched off.
  5. Leave everything under Screen alone for a week, then read Checkpoint.Where and decide what your traffic actually looks like before you start blocking.

Support & Help

Stuck on something, or want a second opinion before you ban a whole range? Come and find me in the Discord and I will help: https://discord.gg/8GGaEzWk9p

Frequently Asked Questions

What does Checkpoint do?

Checkpoint is a ban and mute plugin that also carries player travel. It bans the account the way anything else does, and it can also ban one address, a whole range, an internet company or a country, so a fresh account on the same connection does not get somebody back in. It reads geo data when you give it a key, and it shuts travel while a raid is happening.

How do I install Checkpoint?

Put the Checkpoint folder from the zip into your ArkApi/Plugins/ folder, open config.json and add your own EOS id to SafeList.Eos, then restart the server. Run Checkpoint.Doctor afterwards and Checkpoint will tell you what came up and what did not.

Can it really stop somebody making a new account?

A new account on the same connection, yes, and that is the point. Checkpoint keeps the address a player joined from and can ban that instead of, or as well as, the account. Understand what it costs though. Two brothers on one router are one address, so the refusal says this address is banned rather than you are banned, and anything wider than a small range asks you to confirm and first tells you how many of your own past logins it would have turned away.

Does it work without a geo API key?

Yes. Bans on an account, an address or a range all work with nothing signed up for, and so do mutes, kicks and the whole travel side. A key only adds the country, the town, the internet company and the VPN flags, which is what turns on country bans and the report on where your players actually live. Checkpoint can also read a free service that needs no key at all, so you can try it before you sign up for anything.

Where do I see a player address?

Run Checkpoint.Who with their name from the console or RCON and Checkpoint prints their names, their ids, the address they came in on, where that looks to be, and any accounts that share the connection. Checkpoint.Logins shows their recent joins. A whole address only ever goes to somebody holding the Checkpoint.SeeIp node, and a public Discord post shows the last part starred out.

What if I ban myself by mistake?

Run Checkpoint.Open from RCON. RCON does not go through the gate, so it always answers, and it switches every ban check off for ten minutes while you sort it out. Better still, put your EOS id in SafeList.Eos on day one and nothing can ever refuse you. Checkpoint nags you in the log until you do.

Can players use travel to escape a fight or pile into a raid?

No, and stopping that is why the travel half exists. Travel locks for a while after either player takes or deals damage, and it shuts for a whole tribe while their base is being hit or while they are doing the hitting. Checkpoint also keeps a cooldown for each player and a second one for each pair, so two friends cannot shuttle each other across the map.

Does it keep player addresses forever?

No, and you control it. Checkpoint deletes login records after ninety days by default, and that is a real delete on a timer, not a flag. One setting stores addresses as a scrambled value instead of the digits, and everything still works in that mode because a scrambled value compares against a scrambled value. Checkpoint.Forget wipes one player on request and writes a note that it happened.

I already run a teleport plugin. Will they fight?

No. Checkpoint looks for the other plugin when the server starts, and if it finds one it leaves travel alone and just does bans and mutes, then says so in the log. Same for a mute plugin. You never end up with two plugins arguing over the same chat command, and you can turn either half off in config.json yourself.

Was any AI content used in the making of this?

The source code itself was fully created by myself. I do use ChatGPT occasionally to generate product images, and I do use ChatGPT to generate the website descriptions. I do this because I don't speak native English perfectly. I am natively from Sweden, so I use GPT to help translate and write product descriptions. I also will sometimes use GPT to write better English logs. Majority of my Free plugins are open source, so you can review the code yourself and freely fork and edit it to your liking.

All versions

  • v0.0.4Sep 8, 2026
    • Checkpoint-v0.0.4.zip
  • v0.0.3Sep 8, 2026
    • Checkpoint-v0.0.3.zip
  • v0.0.1Sep 8, 2026
    • Checkpoint-v0.0.1.zip