SCRMaps
/
Sign in

Save/Load System

SCA Launcher was shut down.

Your map doesn't have to be.

When SCA Launcher went away, every map that relied on it lost the ability to save — and a map built around long-term progress stops making sense once players cannot keep any of it. This puts save and load back somewhere they cannot be taken away again: inside the map file. It is ordinary trigger logic running in StarCraft, so there is nothing to install, nothing attached to the game, and no external program left to break or be shut down.

Post your projectFree · no coding
K7M2QX9BTR4DWZ

What the map prints the moment a player saves. They keep it, and type it back whenever they next play to pick up where they left off.

What it looks like to a player

Nothing to download, nothing to run on the side. Three moments, and they are all inside the game and your map's page.

  1. In game

    They save

    ▸ SAVE COMPLETE
    ▸ CODE: K7M2QX9BTR4DWZ

    Whenever a player saves, your trigger fires and the map prints a short code on screen.

  2. Later

    They load back in

    ▸ ENTER CODE
    ▸ WELCOME BACK, LV 412

    They type the same code into your load prompt and their progress comes back.

  3. On the web

    They claim a rank

    1. ZeroHour — LV 1999
    2. BlueMoon — LV 1420

    The same code, pasted on your map's page, puts them on your leaderboard.

SCA Launcher was the better system. But it's illegal.

Let us be straight about this. SCA Launcher was better than what we do. It kept save data in a server-side database, so a map could store effectively unlimited progress; players never wrote a code down or typed one back — they logged in and their run was there; the data never passed through the player’s hands, which is the strongest anti-forgery position available; and scarchive.kr gave creators a map list, traffic and player counts, and a creator page. Nothing built inside a .scx file beats a server. But it was an external program that modifies StarCraft, which is illegal in Korea, and it is gone — the service closed and scarchive.kr does not even resolve any more. That is not a gap a better launcher fills, because the launcher is the illegal part. So the question is not whether a server would be nicer. It is what the best system looks like when everything has to stay inside the map file, and that is what this is.

SCA Launchershut downSCRMapsavailable today
Can you actually use it
Available todayNoNo. The service is closed and scarchive.kr no longer resolves.YesYes
Legal standing in KoreaNoAn external program that modifies StarCraft — illegal, and why it is goneYesFine. Nothing outside StarCraft runs at all.
What the player installsPartlyThe launcher, running alongside StarCraftYesNothing. The map file is the whole system.
What it can do
How much a map can storeYesA server-side database — effectively unlimitedPartlyOnly what fits in a code a player will retype (up to 20 characters)
What saving feels likeYesLog in and it is there. Nothing to write down, nothing to type.PartlyCopy a code down, type it back next game
Forgery resistanceYesStrongest model there is — the data never passes through the player's handsYesEvery value mixed into every character, and re-checked when the code is submitted on the web
What comes with it
LeaderboardPartlyIt provided leaderboards too — they went with the serviceYesGenerated with the system, live on your map's page
Map exposurePartlyscarchive.kr listed maps by traffic and player count — gone with itYesListed in the directory; players browsing other boards find yours
Creator toolsPartlyIt had a creator page — gone with itYesBans, moderators, manual adjustments, submission history
Who hosts the leaderboardPartlyThey did — until they did notYesWe do, as a website. Nothing for you to run.
Getting it in your map
Work to add itPartlyStraightforward, but you wrote your map's SCA script yourselfYesFill a form, paste two blocks, wire two triggers
Time to a working savePartlyQuick once the script was written — then every player had to install the launcherYesAn afternoon
Cost to youPartlyFree, but it asked players to install somethingYesFree, and players only ever touch StarCraft

To be exact about what runs where

Nothing we make runs while you play. The save system is trigger logic compiled into your .scx, and it never contacts anything — the map cannot open a network connection and does not try to. Your game is StarCraft and nothing else. The only thing of ours a player ever touches is this website, afterwards, in a browser: they type the code the map printed into a page, and the page works out what it means so it can be ranked. That is a website reading text somebody pasted into it. It is not attached to the game, it does not run alongside the game, and it changes nothing about StarCraft.

“The old code systems worked fine”

They did, until someone looked closely. A hand-rolled code writes each value at a fixed spot, and players are patient: they save the same state over and over, line the codes up, and look for the character that moved when one value changed. Once they work out which position holds what, the code is cracked — from then on they can forge one outright, editing only the positions they care about and writing in whatever numbers they like. That is not a hypothetical. It is exactly how a player broke the last format we shipped, and why the current one was rebuilt.

“I’ll get an AI to write it”

You probably can, and it will compile. What you will not get is the part that took months of real players to find: a mechanism that stays entirely inside what the StarCraft engine can actually do, and mixes every stored value into every character so there is nothing left to compare. This one has shipped, been attacked by people who wanted to beat it, and been rewritten because of what they found. That is a different thing from code that runs.

How the current format answers that

The current format was rebuilt to answer exactly that attack. How it does so is set out below, one layer at a time.

What the encryption actually does

A save code is not a password you can look up — it is the save file, and every character of it has to survive being read, retyped and stared at by people who would very much like to edit one. Six layers stack on top of each other, and each closes a different way in.

  1. 01

    A key only your map has

    Every project gets its own random salt, folded together with the project and the creator behind it, and that value is what the arithmetic is built on. It exists in two places: your compiled map and our decoder. A code minted by another map — or by someone who took a different map apart — does not decode here, and never will.

  2. 02

    Keyed to the player, not just the map

    Each character is shifted by a keystream derived from the player’s own name and your key. The exact same stats saved by two different players produce two codes with nothing in common, so no one can build a table of “this code means level 500” and hand it around.

  3. 03

    Every value in every character

    Before a character is written, it is mixed with a hash of the entire payload. That means no character belongs to a single field. Change one field and the characters that held another field change too. Change nothing but one point of money and the whole code is different.

  4. 04

    Written out of order

    The finished characters are shuffled through a fixed permutation before printing, so position in the code has no relationship to position in the data. There is no “the third character is the level” because no character belongs to any one value.

  5. 05

    A checksum that covers all of it

    A modular hash of every value plus the player name is carried in the code and re-derived on the way in. Editing a single character breaks it. In testing, every single-character edit to a valid code was rejected.

  6. 06

    Checked again on the website

    Even a structurally perfect code is range-checked field by field when someone submits it on the web. A value your map could not have produced does not reach your leaderboard, whatever the code says.

The attack this was built to kill

The realistic attack on a save code is not cryptography — it is patience. A player saves the same state over and over, lines the codes up, and looks for the character that moved when one value changed. Once they can name that character they can write any code they want. Layers 03 and 04 are the answer: in the current format, two codes that differ by a single field differ in fourteen of fifteen characters on average, and never in fewer than thirteen. There is no column to line up, because there are no columns. We measured this over 200,000 random codes and every one of 2,880 boundary cases before shipping it.

What we will not claim

No short code is unbreakable in the mathematical sense, and anyone who tells you otherwise is selling something. What we can say is specific: comparing codes leaks nothing, hand-editing one fails, a code from another map is worthless here, and the website checks every value again regardless. Cracking one project also tells an attacker nothing about yours — the keys are independent by design. That is the part that actually protects a leaderboard.

The lobby exploit, closed

There is a hole in the StarCraft lobby: a player can switch a slot in their own force to a Computer, which walks straight past a map’s minimum-player requirement. From there they play a map that was never meant to be played that way, and anything they carry out lands on your leaderboard. The idle guard closes it, and it costs you a checkbox.

  • A computer slot cannot hide

    The guard watches for real keyboard input, not movement. A Computer never presses a key, so it trips the timer every single game, without needing to detect anything clever.

  • The save dies with it

    When a slot trips, saving is switched off for that slot for the rest of the game and never switched back on. A code is the only thing anyone could carry out of a game, so anything played this way is worth nothing.

  • It reaches Cheat Engine users too

    The same test catches a slot being driven by something other than a person at the keyboard. It is not a full anti-cheat and we will not pretend it is, but it raises the floor and it costs nothing to have on.

  • Real players get a warning

    At 90% the player gets a full-screen notice and any key clears it. Stepping away to answer the door does not cost anyone their progress.

Generated with the rest of your script, so there is nothing to write. It is off by default, since it removes units and kills saving when it fires — and the timeout and counter unit are yours to set.

Updating your map without losing anyone

Shipping a new build of a StarCraft map is normally a mess: half the lobby is still on the old one, and you have no way to make anyone update. The generator gives you the one lever that actually works. Each build carries a version number, and the code format is tied to it.

  • New maps read old codes

    A fresh build still loads codes minted by the builds before it, so nobody is locked out of their own progress the day you update.

  • Old maps cannot read new codes

    A code saved on the newest build fails on every older one. Once a player saves on the new map there is no going back to the old one — which is what actually moves a playerbase over.

  • Nothing you issued stops working

    Bumping the version does not invalidate a single existing code. Only changing what you store does that.

  • The board takes them all

    The leaderboard still accepts codes from every build you have ever shipped, and records which one minted each entry.

Putting it in your map

Start by posting your map as a project — the generator lives inside your project, because the save code and the leaderboard are two ends of the same thing. From there it is copy, paste, and two triggers. You do not write any of the encoding yourself.

  1. 1

    Post your project in the dashboard

    Sign in, open the dashboard and add your map. This is where the generator is: every project gets its own save/load setup and its own key, so no other map's codes work on yours.

    Post your project
  2. 2

    Describe what to save

    Pick the death-counter units your map already uses — level, money, items, upgrades — and give each one a range. No new map structure needed; it reads what you have.

  3. 3

    Copy two blocks

    The generator writes them for you. The EPScript goes in EUD Editor 3's TE section, the key table in the Plugin section. Paste, don't edit.

  4. 4

    Wire up two triggers

    Set a spare unit's death value to 1 to save, another to load. That is the entire integration — then compile your map as usual.

  5. 5

    Your board is already live

    Publish the map. The moment a player pastes their first code on your project page, your leaderboard starts filling in.

Everything regenerates as you edit. Renaming a unit, changing a label, swapping the trigger units or the ranking column are all safe and leave existing codes valid — only changing the shape of the saved data (adding a field, or widening a range) invalidates them.

How a code reaches the leaderboard

You don't set up a scoreboard separately, and you don't host anything. The code your map prints is the code the board reads.

  1. 01

    The player saves in game

    Your trigger fires and the map prints their code on screen.

  2. 02

    They paste it on your map's page

    The same code, unchanged. Nothing to link beyond the username they already registered.

  3. 03

    The website decodes it

    The page checks the code against your project's own key, range-checks every value, and rejects anything your map could not have produced.

  4. 04

    They appear in your standings

    Ranked by the field you chose. You can remove an entry and block the submitter if a code turns out to be forged.

And it plugs into something

The generator is the smaller half. What makes a save code actually work over time is everything around it, and none of that is code you want to write twice.

  • Versioning that does not orphan anyone

    Maps change. When you ship a new format, the board keeps reading old codes and marks which version an entry came from, so records are not wiped the day you update your map.

  • Your project gets found

    The thing scarchive.kr did for maps, still standing: every project sits in the same directory, and players browsing someone else’s leaderboard land on yours. A save system you host alone reaches exactly the people who already knew about you.

  • Moderation you did not build

    Submissions, bans, moderators and manual adjustments are already there. If a code turns out to be forged, you remove the entry and block the submitter in two clicks.

  • Nothing to host

    No website, no database, no uptime to worry about. The board is a page on your project, live from the first code anyone pastes.

What a code contains

Codes use 32 characters, with 0, 1, I and O left out — StarCraft’s font renders those pairs close enough that a player copying a code off their own screen mixes them up, and every such slip looks like the system rejecting a valid code. Inside are only the values you chose, plus a checksum: nothing about the player’s PC or account. The length follows from how many values you store and how wide their ranges are.

Questions about save codes

What is the save/load system, and do my players need to install anything?

It is a save system generated for your specific map and pasted into it, so everything runs inside the .scx itself. Players install nothing. When they save, the game prints a short code; typing that code back in a later game restores their progress. It exists to replace launcher-based saving, where a player had to run a separate program alongside StarCraft.

How long are the codes, and what decides that?

It depends on how much you save. Each value costs space according to its range and how precisely you store it, so a level from 1 to 100 is cheap while money up to 300 million stored to the nearest 10,000 costs more. The editor shows the length as you type and caps it at 20 characters, because players type these by hand in game. If a setup is too long it tells you which step to widen to bring it down.

Can someone forge a code, or use one from another map?

A code from another map will never validate against yours - each project has its own key, so the systems are mutually invalid. Codes are also tied to the player's name, so one player's code does nothing on another account. Beyond that, submissions are rate limited per account and per network, failed attempts are capped separately, and values outside what your map can produce are rejected. What none of this can prevent is someone extracting the algorithm from your own map file and forging codes for that map specifically - the map has to contain the algorithm in order to run it. That is why the leaderboard is moderated.

If I change my save configuration, do existing codes stop working?

Only if you change the shape of the data: adding or removing a value, or changing a range or a step. Those move where each value sits inside the code, so previously issued codes would decode to nonsense and the leaderboard is cleared. Renaming a unit, editing a display label, changing the trigger units, the ranking column or the in-game language are all safe - the script is regenerated, but every existing code keeps working.

Do I have to use the save system to post a map here?

No. It is one feature among several, and most projects do not use it. Posting a map, keeping a portfolio, and taking comments all work exactly as before.

Running this costs us money. It is free to you.

Someone pays for a leaderboard to be online: database compute, storage, and the decoding work on every submission. Here that is Neon compute hours, paid for out of our own pocket and covered by the ads on the site. That is the arrangement, and it is not changing: SCRMaps is ad-supported and free to use, and will stay that way. If you built the same thing yourself the bill would be yours, on top of the weeks of work — which is why most maps never got a leaderboard at all.

Set one up

Create a project, describe the values you want saved, and copy the generated blocks into your map.