#6885·lutris

Unable to delete single value name-data pair in regedit

Author: mihawk90Created Sep 10, 2026Updated Sep 12, 2026

Bug description

Ran across this while updating/writing a portion of the installers.rst doc.

Right now it seems there is no (straighforward) way to delete a specific value name-data pair from the registry.

The delete_registry_key allows deleting an entire key (which in the regedit GUI is an entire "tree" in the left panel). But what I'm referring to is a single value on the right:

Image

Normally with a reg file you can delete a single value by doing this:

ini
[HKEY_LOCAL_MACHINE\Software\Wine\TESTKEY]
"VNAME"=-

But it appears this is impossible to replicate in Lutris. When I do this:

yaml
  - task:
      name: set_regedit
      path: HKEY_LOCAL_MACHINE\Software\Wine\TESTKEY
      key: 'VNAME'
      value: -

Lutris errors out:

yaml.scanner.ScannerError: sequence entries are not allowed here
  in "<unicode string>", line 25, column 14:
          value: -
                 ^

With value: \-, value: '\-', and value: "\\-" I end up with a literal - value.

And value: "\-" errors out in a different way:

yaml.scanner.ScannerError: while scanning a double-quoted scalar
  in "<unicode string>", line 25, column 14:
          value: "\-"
                 ^
found unknown escape character '-'
  in "<unicode string>", line 25, column 16:
          value: "\-"
                   ^

I understand why this happens (YAML parser vs. string escape), but I see no direct way of doing this. Since I assume the parser can't be overridden that easily an alternative might be some replacement value, or a whole new delete_registry_value task.

The only workaround would be writing a registry file manually and using set_regedit_file.

How to Reproduce

Steps to reproduce the behavior:

  1. Run lutris -d -i <sample.yaml> with the sample below
  2. Check the terminal output

Sample:

yaml
game_slug: reg-value-test
gogslug: ''
humblestoreid: ''
installer_slug: reg-value-test-installer
name: 'Reg Value'
runner: wine
script:
  game:
    exe: $GAMEDIR/drive_c/windows/explorer.exe
    prefix: $GAMEDIR
  installer:
  - task:
      name: set_regedit
      path: HKEY_LOCAL_MACHINE\Software\Wine\TESTKEY
      key: 'VNAME'
      value: 'VDATA'
  - task:
      name: set_regedit
      path: HKEY_LOCAL_MACHINE\Software\Wine\TESTKEY
      key: 'VNAME'
      value: -
slug: reg-value-test-installer
version: 'Reg Value'
steamid: null

Expected behavior

Lutris should create and then delete the value.

Log output

bash
# just demonstrating that regedit can do this
❯ WINEPREFIX=~/test/wine ~/.local/share/lutris/runtime/umu/umu-run regedit value-add.reg
…

❯ grep TESTKEY ~/test/wine/system.reg -A2
[Software\\Wine\\TESTKEY] 1789072413
#time=1dd4163a624a926
"VNAME"="VDATA"

❯ WINEPREFIX=~/test/wine ~/.local/share/lutris/runtime/umu/umu-run regedit value-rm.reg
…

❯ grep TESTKEY ~/test/wine/system.reg -A2                                              
[Software\\Wine\\TESTKEY] 1789072486
#time=1dd4163d1b66f02


Lutris log with sample above:

❯ ./bin/lutris -d -i /home/tarulia/Development/lutris/installers/reg-value-test.yml
INFO     2026-09-10 22:36:27,056 [application.do_command_line:487]:Starting Lutris 0.5.23
INFO     2026-09-10 22:36:27,227 [gpu.get_gpus:37]:"card1" is AMD Radeon RX 7700 XT (1002:747e 1da2:c475 amdgpu) Driver 26.1.8
Cannot use /home/tarulia/.cache/radv_builtin_shaders for shader cache (not a directory)---disabling.
DEBUG    2026-09-10 22:36:27,506 [path_cache._update_missing_games:175]:Checking for missing games
DEBUG    2026-09-10 22:36:27,507 [__init__.read_script:51]:Loading script(s) from /home/tarulia/Development/lutris/installers/reg-value-test.yml
Traceback (most recent call last):
  File "/home/tarulia/Development/lutris/lutris/lutris/gui/application.py", line 764, in do_command_line
    installers = get_installers(
        game_slug=game_slug,
        installer_file=installer_file,
        revision=revision,
    )
  File "/home/tarulia/Development/lutris/lutris/lutris/installer/__init__.py", line 64, in get_installers
    return [normalize_installer(i, installer_file=installer_file) for i in read_script(installer_file)]
                                                                           ~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/home/tarulia/Development/lutris/lutris/lutris/installer/__init__.py", line 53, in read_script
    script = yaml.safe_load(local_file.read())
  File "/usr/lib64/python3.14/site-packages/yaml/__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
  File "/usr/lib64/python3.14/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
           ~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/site-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 82, in compose_node
    node = self.compose_sequence_node(anchor)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 111, in compose_sequence_node
    node.value.append(self.compose_node(node, index))
                      ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib64/python3.14/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
       ~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/lib64/python3.14/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
                         ~~~~~~~~~~^^
  File "/usr/lib64/python3.14/site-packages/yaml/parser.py", line 449, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
           ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.14/site-packages/yaml/scanner.py", line 116, in check_token
    self.fetch_more_tokens()
    ~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/site-packages/yaml/scanner.py", line 215, in fetch_more_tokens
    return self.fetch_block_entry()
           ~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib64/python3.14/site-packages/yaml/scanner.py", line 491, in fetch_block_entry
    raise ScannerError(None, None,
            "sequence entries are not allowed here",
            self.get_mark())
yaml.scanner.ScannerError: sequence entries are not allowed here
  in "<unicode string>", line 21, column 14:
          value: -
                 ^
DEBUG    2026-09-10 22:36:28,510 [http._request:125]:POST https://lutris.net/api/users/library?since=1789071494
INFO     2026-09-10 22:36:35,290 [application.do_shutdown:1115]:Shutting down Lutris

System Information

bash
Vulkan support: YES
Esync support: YES
Fsync support: YES
Wine installed: YES
Gamescope: YES
Mangohud: NO
Gamemode: YES
Steam: YES
In Flatpak: NO
[System]
OS: Fedora Linux 44
Arch: x86_64
Kernel: 7.1.13-200.fc44.x86_64
Desktop: KDE
Display Server: wayland
[Lutris]
Lutris Version: 0.5.23 (`master`)
Python Version: 3.14.7 (main, Aug 10 2026, 00:00:00) [GCC 16.1.1 20260515 (Red Hat 16.1.1-2)]
Default Wine version: ge-proton
[CPU]
Vendor: AuthenticAMD
Model: AMD Ryzen 9 5900X 12-Core Processor
Physical cores: 12
Logical cores: 24
[Memory]
RAM: 15.5 GB
Swap: 8.0 GB
[Graphics]
Vendor: AMD
OpenGL Renderer: AMD Radeon RX 7700 XT (radeonsi, navi32, ACO, DRM 3.64, 7.1.13-200.fc44.x86_64)
OpenGL Version: 4.6 (Compatibility Profile) Mesa 26.1.8
OpenGL Core: 4.6 (Core Profile) Mesa 26.1.8
OpenGL ES: OpenGL ES 3.2 Mesa 26.1.8
Vulkan Version: 1.4.341
Vulkan Drivers: AMD Radeon RX 7700 XT (RADV NAVI32) (1.4.354)

Media (optional)

No response