Platform

Features

A stash is the core. Everything else is a tick box — in the Unreal toolbar or the dashboard, whichever you have open.
Turning one on

Open the Raid State toolbar button in Unreal and tick it under Features. The same list is on your environment's Features page in the dashboard; they read the same catalogue, so whichever you use the other reflects it.

Features that exist but have no implementation yet are listed and greyed rather than hidden. You can see what is coming; you cannot tick it.

Levels and XP

Award XP from your game and the platform keeps every player's level. There is no panel to place — this one is nodes and an API, so ticking the box is the whole job.

From Blueprint
on your dedicated server
Raid State - Award XP
  Player   <player id from Authenticate Player>
  XP       250
  Reason   "extracted from Customs"

  On Success -> Standing
       Level          6
       Levelled Up    true
       Previous Level 5

Levelled Up is true only on the award that crossed a boundary, which is the one moment worth playing a sound for. Raid State - Get Standing reads the same thing without changing anything.

For a progress bar, Level Fraction, Level Text and XP Text do the arithmetic so your widget does not have to. At the maximum level the fraction is 1 and the text is the lifetime total — a maxed player has finished, not started, and 0 / 0 XP reads as a bug.

From the API
the same call, without the plugin
curl -X POST https://api.raidstate.com/v1/game/progression/award \
  -H "Authorization: Bearer $PLAYER_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"xp":250,"reason":"extracted from Customs"}'
The curve

Each level costs a fixed amount more than the one before it. Integers, no floating point: levelling is a number players compare with each other, so it has to be exactly reproducible and explainable in a sentence.

SettingValueWhy
base1000XP from level 1 to level 2
increment500How much more each level after that costs
max_level50The cap. XP keeps accumulating past it.

So level 3 costs 1,500, level 4 costs 2,000, and reaching level 5 has taken 6,000 in total. Change them on the dashboard's Features page; the page writes the rule out in a sentence beneath the switch so you can check it reads the way you meant.

What each feature costs you

Some features are entirely server-side. Others have UI, and UI has to go somewhere in your menus — the checklist says which is which before you tick it.

SettingValueWhy
Levels and XPAvailableNodes and an API. Nothing to place.
News feedAvailableA node and formatting helpers. You draw the panel.
FriendsNot built yetWill need a panel in your menu.
News feed

Write posts on your environment's News page in the dashboard. A post with no date is a draft, and one dated ahead is scheduled — neither reaches a player until its time. Pinned posts lead the feed whatever their date.

in your menu widget
Raid State - Get News
  Limit  20

  On Success -> Posts
       Title         "Wipe on Friday"
       Body          "Stashes reset at 18:00 UTC…"
       Pinned        true
       Published At  <FDateTime>

Authenticated with the environment key rather than a player token, so a title screen can show news before anybody has signed in. It is the one read that works before authentication.

Posted When gives you “3 hours ago” up to a week and a date after that, and Post Summary gives you the first paragraph cut on a word boundary. Both exist so no studio has to write relative dates twice.

Turning one off

Untick it. The data stays exactly where it was — turning levelling off to try something and back on again does not delete anybody's progress. Removing the data is a separate, deliberate act.

While a feature is off its endpoints answer 409 rather than 404: the route exists, the environment has not turned it on. Your game can tell those apart and say something useful.

HTTP API · Demo content