Skip to content

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

@Wbbdlr

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
    No fields configured for issues without a type.

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions