NX CreativeNX CreativeDocs
Scriptsnx_computer

Security

The per-computer identity model, sessions, admin tooling, and the abuse limits built into nx_computer.

nx_computer treats every laptop as a machine with an owner, not as a menu attached to a player. This page describes the model and the operator tools around it.

Per-computer identity

Every laptop item instance is its own computer. On first use a laptop receives a permanent identity stored in its item metadata, and that identity survives dropping, trading, and picking the laptop back up. Two laptops in the same pocket are two separate machines with separate logins. This is why the laptop item ships with stack = false.

Player data (photos, notes, files, messages, preferences) belongs to the character's account and follows it across every computer that account signs into. The computer itself holds the login and its own device record.

PINs and sessions

  • PINs are never stored or compared in plain text. They are hashed server-side with a per-computer salt.
  • Five wrong PIN attempts lock the computer for five minutes.
  • A successful unlock issues a session bound to that player and that computer. Every protected request the OS makes is validated server-side against the session; requests without a valid session are refused, regardless of what the client claims.
  • Money movement, trades, and casino rounds settle server-side. The screen displays results; it does not decide them.

Admin tooling

Admin access requires the dedicated nx_computer.admin ACE (see Installation). Admins get the Console app on their own laptop:

  • Look up devices and their owners.
  • Reset a PIN remotely.
  • Lock or wipe a device.
  • Override app policies per user.
  • Review the audit log.

Two server console commands exist alongside the app: nx_computer_factory_reset and nx_computer_reap_now. See Commands.

By default the broad command ACE is not accepted for admin access, since many servers grant it to non-admin principals. The opt-in is Config.AllowCommandAceAdmin.

Audit log

Security-relevant actions are recorded in an audit table readable from the Console app. Money movements at or above Config.AuditLargeMoveFiat (default 50000) are logged at notice severity. This is visibility only; it does not block transfers.

Abuse limits

Defaults that bound what a compromised or scripted client can do:

  • Banking: per-account outbound rate limit (Config.Banking.MaxTransfersPerMinute) and a trailing 24-hour outbound cap (Config.Banking.DailyTransferCap).
  • Trading: slippage protection and stale-quote rejection under Config.Exchange.
  • Casino: an absolute per-payout ceiling (Config.Casino.MaxPayout).
  • Uploads: every image relays through the server, which enforces a size cap, verifies the real file type from its bytes, and rate-limits per player. There is no URL re-hosting path.
  • Pickup: the server checks placement distance on pickup (Config.PickupMaxDistance).

Third-party apps are sandboxed

Apps and sites added through the SDK run in an isolated frame with a small, allowlisted bridge: notifications, private per-app storage, the player's public handle, window controls, and theming. They cannot touch money, inventory, identifiers, other apps' data, or admin actions, and the server owner can allowlist, denylist, or disable them entirely. Details in the SDK security model.

NX Docs