Skip to content

[FEAT] Multi-user support: separate save files, save states, and settings per user with concurrent session access #5

Description

@Wbbdlr

Is this a new feature request?

  • I have searched the existing issues

Wanted change

Add multi-user support to the docker-scummvm container so that multiple people can:

  1. Each have their own isolated save files and save states that don't interfere with each other
  2. Access the container simultaneously from different locations (e.g. different browsers/devices on a home network or over the internet)
  3. Optionally have their own game settings/preferences per-user profile

A basic implementation could work by mapping user profiles to subfolders under /config (e.g. /config/users/alice, /config/users/bob), each containing their own saves/, scummvm.ini, and any other per-user state. A login/profile selection screen in the KasmVNC web UI, or environment variable-driven profile selection (e.g. SCUMMVM_USER=alice), could be used to switch between profiles.

Reason for change

Right now the container is a single-user environment — all save files, save states, and config live in one shared /config directory. If two people use the same container (e.g. a family sharing a home server), they overwrite each other's progress and can't play the same game independently.

There's also no way for two people to use the container at the same time, since a second browser session just mirrors or interrupts the first.

For a self-hosted game server shared among family members or housemates, multi-user isolation and concurrent access would make the container dramatically more useful. Each person could maintain their own playthrough of a game without affecting anyone else.

Proposed code change

A possible approach without deep changes to ScummVM itself:

  • Store user profiles under /config/users// (saves, ini, etc.)
  • Add an env var SCUMMVM_PROFILE (default: default) to select which profile directory is symlinked/mounted into the active ScummVM config path at container start
  • For true concurrent access, run multiple isolated ScummVM+KasmVNC instances on different ports (e.g. user 1 on port 3000, user 2 on port 3001), each pointing to their own profile directory — orchestrated via a lightweight user management layer or additional env vars like SCUMMVM_USERS=alice:3000,bob:3001

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status
    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions