Skip to content

First Launch, Profile, and @anomaly Identity

Launch a modded loadout once and let it reach the main menu. Anomaly creates or validates the client-owned profile at <MelonLoader UserData>/Anomaly/user.json, normally UserData/Anomaly/user.json beneath that game. A missing local profile creates a new identity; later launches reuse it. Existing roaming AppData client data is left untouched and is not imported or used as a fallback.

The profile contains the selected nickname, a private identity protected with Windows DPAPI current-user protection, a non-secret identity_public value, and any key-rotation lineage.

  • The Launcher does not parse or rewrite protected identity material.
  • A malformed profile, failed DPAPI decrypt, or invalid rotation lineage leaves the original file bytes unchanged and disables authentication.
  • Profile replacement is atomic and retains a recoverable backup.
  • Copying user.json to another Windows account, machine, or unrelated Wine prefix normally makes the protected identity unusable. Do not treat it as a portable credential backup.

A server derives an enrollment ID from your authenticated identity using that server’s own secret. The result:

  • Is stable for the same accepted identity on that server.
  • Can differ on every other Anomaly server.
  • Is unavailable until an authenticated server sends it.
  • Is cleared when you disconnect.

While connected, enter anomaly.whoami in the client console. Anomaly prints that server’s full ID and copies it to the clipboard. The public API exposes the same value as Client.EnrollmentId while the session is active.

The Launcher may display a fingerprint of identity_public for profile health. That fingerprint is deliberately not an @anomaly ID and should not be placed in server bans or permissions.

Your Anomaly nickname is sent to servers and is separate from enrollment identity. On first run, Anomaly asks for 1 to 32 visible characters in a selectable text field with clipboard support. Invalid input or a save failure keeps the entered text visible with an explanation. The menu updates only after a durable save succeeds. If identity initialization failed, the nickname prompt and profile writes stay disabled.

The main menu shows Ready as while offline and Connected as only during an active connection. Trust and content prompts show readable, scrollable details; Tab and Shift-Tab move focus, Page Up/Down scroll details, and Escape cancels. Approval prompts initially focus Cancel or Skip. Trust shows the formatted server fingerprint; content approval also shows item/file counts and download size. A terminal connection failure stays visible after disconnect until dismissed or replaced by a new attempt, with a diagnostic code and anomaly.status guidance.

Continue to Launching the Modded Client.