SWIFTPOINT//HUB
Support

Profile Builder · Save & publish — getting profiles out

How to save your work — download a .spcf file, keep local drafts, or publish the profile to the hub so others can find it.

The Builder is fully client‑side: creating, editing, opening and downloading .spcf files needs no account. The only step that touches the server is publishing to the hub (and loading a hub profile back by ID). This guide covers all four ways a profile leaves your workspace.


1. The four exit doors

Door Button / gesture Requirement Result
Download Header Download none A .spcf file saved to your computer.
Publish (save) Header Save / publish profile (or Save changes) Discord login The profile is stored on the hub and gets a #ID + URL.
Load by ID Header # ID + Load, or open /editor?id=<ID> none for viewing / editing a copy Fetches a hub profile into the editor.
Drag & drop Drop a .spcf onto the page none Opens that file, ready to edit.

Publish flow, precisely:

  1. Click Save. The button label changes with state: Save / publish profile for a brand‑new profile, Save changes once it has a hub ID.
  2. The Publish this profile window opens with fields:
    • Title (required, max 80 chars)
    • Game (max 80 chars; a datalist suggests games already on the hub)
    • Description (textarea, max 400 chars)
  3. Publish → uploads the profile; on success you get "Published as profile #<ID>" and can point people at that ID. Cancel (or click the backdrop) closes without saving.

Download is the validation‑safe path: before writing the file, the Builder re‑parses the whole document with the real parser and refuses to download if anything would produce an invalid .spcf — you can never ship a broken file. The same full‑parse check runs on Save/Publish.


2. Loading profiles back

  • By ID: type e.g. 123 into the sharp field in the header and hit Load — or open the page directly as /editor?id=123.
  • By file: Open… or drop a .spcf file anywhere on the page. The builder derives a suggested title from the filename (.spcf/.spc).
  • Opening a foreign profile imports its groups, bindings and settings 1:1 — unknown value combos (e.g. old lift‑off heights) are preserved, not silently rewritten.

Unsaved‑work guard — if your current document has changes, the Builder asks before replacing it.


3. Accounts, limits & ownership

  • Publishing requires a login (Discord OAuth, the shared Swiftpoint Hub account). Downloading, opening and free‑editing do not.
  • Upload size cap: 2 MB per .spcf — far beyond anything a real profile reaches.
  • A regular user can have up to 3 published profiles at once by default (admins are exempt; the cap is server‑configurable). If you hit the limit the API answers with a clear "You can upload at most N profiles. Delete one first to make room."
  • You can only update (Save changes) profiles you own.
  • Text hygiene: titles/games/descriptions are stripped of control characters and markup server‑side before they ever hit the page, so markdown/HTML in descriptions is neutralized — good if you're copy‑pasting from games.

4. Sharing tips for creators

  • Publish once, then share the #ID — anyone can load it, tweak it, and republish their own remix (their copy, their ownership).
  • Keep the Title unique and the Game matching what's already on the hub so it appears in the game filter.
  • Use Description for the "how to use" — what the light/deep presses do, which tilt axis you zeroed, whether Game device is joystick (people loading a joystick profile into a mouse‑only session wonder why "nothing happens" until they flip the setting).
  • If you iterate, load your own #ID, tweak, Save changes — the URL and voters' links keep working; no new profile is created.

5. Diagnostics before you publish

Run the Diagnostics tab and fix everything it lists first. The tool checks for: empty groups, bindings without a trigger, bindings without any action, broken nesting links, nesting past 20 levels, and overlapping deep zones. A green "No issues found — the profile looks coherent." is your publish‑ready stamp.


6. Common failure modes

Symptom Fix
"Publish failed (401)" You're not logged in with the hub account — log in (Discord) and retry.
Button says "Open or create a profile first" No document is loaded. Click New or Open….
"You can upload at most N profiles…" Published‑profile cap reached — delete an old one (in your profile management) or ask an admin to raise it.
Download never happens The document fails re‑parse (toast shows the reason) — fix the flagged binding, then retry.
/editor?id=999 loses data The ID doesn't exist (or is private/deleted) — load the correct ID and verify the prime number in the URL.
Changes "vanish" after reload You never clicked Save changes / Publish — it quantifies: re‑open, check the ● modified dot, publish, then reload.