Skip to main content
Limerence runs in more than one game (Bloxstrike, Rivals, and others). The api you get is built for whatever game you’re currently in, so some parts of it change from game to game. There are two kinds of namespace.

Shared vs game-specific

Shared namespaces are there in every game:
NamespaceWhat it’s for
api.uiBuilding your menu.
api.utilityLittle helpers.
api.bindThe user’s keybinds.
api.clientYou (your local player). The common stuff is everywhere, and each game adds a few of its own extras.
api.playersEveryone else. There whenever the game has a player API. What each player handle gives you depends on the game.
api.legitbotAim assist / triggerbot, in games that have one.
Game-specific namespaces only show up in some games:
NamespaceGames
api.gameEvery game has one, but what’s inside is totally different per game. Bloxstrike gives you bomb/hostage/gamemode/dropped item info, Rivals gives you match/environment/placeables, Apocalypse Rising 2 gives you world pings (inventory is on api.client).
api.ragebotBloxstrike, Rivals, and Apocalypse Rising 2.
api.autolootApocalypse Rising 2.

Reading the docs

The call tables in the api.* pages are split by game so you can tell at a glance where something works:
  • Shared: works in every game (as long as that namespace exists in your game).
  • Bloxstrike: only when you’re in Bloxstrike.
  • Rivals: only when you’re in Rivals.
  • AR2: only when you’re in Apocalypse Rising 2.
The UI / control pages (Toggle, Slider, Colorpicker, and so on) aren’t tagged. Those work everywhere.

Writing scripts that work in any game

api.client and api.players share the same core everywhere, and then each game piles its own extras on top (for example, Rivals adds api.client.getEnvironmentId(), isInDuel(), and getDisplayElo()). If something is game-specific, it just isn’t there in other games. It won’t error, so check that a call exists before you use it:
if api.client.isInDuel and api.client.isInDuel() then
    -- Rivals-only path
end

if api.game.getBomb then
    -- Bloxstrike-only path
end
The type definitions are a superset across all games, so a field being in the type doesn’t guarantee it exists at runtime. Guard game-specific calls the same way.