Skip to content

Data Locations

Taiizor edited this page Jun 19, 2026 · 3 revisions

Data Locations

This page is the definitive map of every folder, file, mutex, scheduled task, and registry key that Sucrose touches on disk. Sucrose keeps user data, settings, cache, and logs separate from the installed binaries: configuration lives in the Roaming profile under %AppData%\Sucrose\, while the program files (and the bundled private .NET runtime) live in the Local profile under %LocalAppData%\Sucrose\. There is no monolithic config file and no app-specific registry usage for settings — the registry writes are limited to Windows' own DirectX GPU-preference key (at runtime) and the per-user Uninstall entry written by the Sucrose.Bundle installer under HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\Sucrose (DisplayName, UninstallString, QuietUninstallString, DisplayVersion, InstallLocation, Publisher, NoModify, NoRepair, etc.) (see Windows-owned state).

Contents

The two roots

Root Path Contents
Roaming (Environment.SpecialFolder.ApplicationData) %AppData%\Sucrose\ Settings (Setting\), logs (Log\), cache (Cache\), wallpaper library (Library\), Showcase assets (Showcase\)
Local (Environment.SpecialFolder.LocalApplicationData) %LocalAppData%\Sucrose\ Installed binaries, per-process subfolders, and the bundled private .NET runtime (Sucrose.Runtime)

The app name segment Sucrose comes from the constant Sucrose.Memory.Manage.Readonly.General.AppName. Folder-name segments such as Setting, Log, and Cache come from Sucrose.Memory.Manage.Readonly.Folder.

Roaming data tree (%AppData%\Sucrose)

%AppData%\Sucrose\
├── Setting\                         <Category>.json   (all settings)
├── Log\                             <Process>-yy.MM.dd.log
├── Library\                         default installed-wallpaper library (overridable via Library.Location)
├── Showcase\                        showcase / preview assets
└── Cache\
    ├── Bundle\                      update download cache (Sucrose.Update)
    ├── Store\                       in-app Store cache:
    │   ├── Store.json               store catalog snapshot
    │   ├── Pattern.json             store pattern data
    │   ├── <Category>\<wallpaper>   downloaded Store themes
    │   └── Temporary\               Store download temp; also the GIF download cache
    ├── Report\                      crash reports: <Id>.json  (Watchdog / Reportdog)
    ├── Properties\                  per-wallpaper saved property values
    ├── Gif\                         Vexana GIF engine cache
    ├── MpvPlayer\                   MpvPlayer engine profile/data + SucroseProperties.json
    ├── VlcPlayer\                   VlcPlayer engine working data + SucroseProperties.json
    ├── CefSharp\                    CefSharp engine cache + SucroseProperties.json
    └── WebView2\                    WebView2 user-data folder + SucroseProperties.json

Key roaming locations:

Folder Purpose
%AppData%\Sucrose\Setting\ Every settings JSON file (one per category). See Settings-Persistence.
%AppData%\Sucrose\Log\ Per-process date-stamped log files. See Logs-Diagnostics.
%AppData%\Sucrose\Library\ The default wallpaper library. The active location is whatever Library.Location points to; it can be relocated (see Managing-Library).
%AppData%\Sucrose\Showcase\ Showcase / preview assets bundled with the app.
%AppData%\Sucrose\Cache\ All transient data. See Cache-Management.

📷 Screenshot needed: Windows File Explorer at %AppData%\Sucrose with the Setting, Log, Cache, Library, and Showcase folders expanded one level.

Local install tree (%LocalAppData%\Sucrose)

The installer (the Sucrose.Bundle package) extracts per-user into %LocalAppData%\Sucroseno administrator rights are required. From Sucrose.Undo.Manage.Internal:

Item Path Notes
Install root %LocalAppData%\Sucrose Each executable lives at <Name>\<Name>.exe.
Private runtime %LocalAppData%\Sucrose\Sucrose.Runtime The bundled, trimmed .NET 10 runtime, so no system-wide .NET install is needed. See System-Requirements.
Data dir (removed on uninstall) %AppData%\Sucrose The Roaming tree above.
Uninstall registry root (read) Software\Microsoft\Windows\CurrentVersion\Uninstall The uninstall entry is read from the per-user (HKCU) Uninstall key. See Uninstalling-Sucrose.
Start Menu shortcut …\Programs\Sucrose Wallpaper Engine.lnk
Desktop shortcut Sucrose Wallpaper Engine.lnk
Self-delete batch %TEMP%\del_<guid>.bat Dropped by Sucrose.Undo during uninstall to delete the running uninstaller. See Undo-Internals.

Settings files

All settings JSON files live under %AppData%\Sucrose\Setting\. Each is a small JSON object of the shape { "Properties": { ... } }. One file maps to one topical category, registered in Sucrose.Manager.Manage.Internal:

File Backing accessor class Topic
General.json Manage.General Language, startup, telemetry/exception consent, app visibility/exit
Engine.json Manage.Engine Volume, screen layout, input, hardware acceleration, per-type engine selection
Portal.json Manage.Portal UI layout, opacity, pagination, Store duration, adult filter
Library.json Manage.Library Library location, selected wallpaper, delete behavior
System.json Manage.System Cached hardware enumeration (network/graphic interfaces)
Update.json Manage.Update Auto-update state, download limit
Cycling.json Manage.Cycling Slideshow active state, transition time, exclusion list
Backgroundog.json Manage.Backgroundog Performance rules, thresholds, communication type
Hook.json Manage.Hook Discord Rich Presence connection/refresh
Donate.json Manage.Donate Donate page state
Aurora.json Manage.Aurora Application engine process name
Warehouse.json Manage.Warehouse First-run / runtime state (Showcase list, tray hint)
Objectionable.json Manage.Objectionable PersonalAccessToken (sensitive — stored in plaintext)
Kernel.json (no wrapper; key Information) Kernel information

For the full key/default/range tables see Settings-All-Keys; for how the files are read and written see Settings-Persistence.

Log files

Logs live under %AppData%\Sucrose\Log\, one file per process per day, named <Process>-yy.MM.dd.log. The process names are: Undo, Portal, Update, Launcher, Property, Watchdog, Commandog, Reportdog, Backgroundog, AuroraLive, NebulaLive, VexanaLive, XavierLive, WebViewLive, CefSharpLive, MpvPlayerLive, VlcPlayerLive. The CefSharp engine additionally writes a native log named CefSharpNative-<date>-<guid>.log. See Logs-Diagnostics for the line format and how to bundle logs for a bug report.

Important file names

These canonical file names (from Sucrose.Memory.Manage.Readonly.Content) appear inside wallpaper packages and engine caches:

File Role
SucroseInfo.json Wallpaper package manifest (required). See Create-Package-Format.
SucroseProperties.json Customization control definitions / saved values. See Create-Customization-Controls.
SucroseCompatible.json JS bridge hook/template definitions. See Create-JS-Bridge.
SucroseStore.json Store metadata sidecar.
Store.json Store catalog snapshot (in Cache\Store\).
Pattern.json Store pattern data (in Cache\Store\).
MpvPlayer.config / uMpvPlayer.config Default and user-override mpv configuration. See Engine-MpvPlayer.
GifContent.html / ImageContent.html / VideoContent.html / YouTubeContent.html Engine HTML wrappers used by the browser engines.

Process executable names

From Sucrose.Memory.Manage.Readonly.App:

Sucrose.Launcher.exe, Sucrose.Portal.exe, Sucrose.Update.exe, Sucrose.Property.exe, Sucrose.Watchdog.exe, Sucrose.Commandog.exe, Sucrose.Reportdog.exe, Sucrose.Backgroundog.exe, Sucrose.Undo.exe, and the engines Sucrose.Live.Aurora.exe, Sucrose.Live.Nebula.exe, Sucrose.Live.Vexana.exe, Sucrose.Live.Xavier.exe, Sucrose.Live.WebView.exe, Sucrose.Live.CefSharp.exe, Sucrose.Live.MpvPlayer.exe, Sucrose.Live.VlcPlayer.exe.

See Architecture-Overview for what each process does.

Single-instance mutex names

Sucrose gates single-instance processes with named mutexes (from Sucrose.Memory.Manage.Readonly.Mutex):

{Sucrose-Wallpaper-Engine-Live}, {Sucrose-Wallpaper-Engine-Portal}, {Sucrose-Wallpaper-Engine-Update}, {Sucrose-Wallpaper-Engine-Property}, {Sucrose-Wallpaper-Engine-Launcher}, {Sucrose-Wallpaper-Engine-Reportdog}, {Sucrose-Wallpaper-Engine-Backgroundog}.

See Single-Instance-Mutexes for how these gate launches.

Windows-owned state (not in the JSON files)

Some state is stored in Windows rather than in Sucrose's own files:

State Where Notes
Autostart-on-login Windows Task Scheduler task Autorun for Sucrose (description "Sucrose Wallpaper Engine") Created/enabled/disabled/deleted by Sucrose.Commandog.Helper.Scheduler. Driven by the RunStartup setting. To remove a stuck autostart, delete this scheduled task. Not a registry Run entry. See Troubleshooting-Settings-Startup-GPU.
Per-app GPU preference HKEY_CURRENT_USER\Software\Microsoft\DirectX\UserGpuPreferences Windows' own per-app GPU setting (semicolon-delimited GpuPreference=<n>; per app path), written by Sucrose.Shared.Space.Extension.GraphicPreference and driven by the GraphicPreference value.
GIF download cache location %AppData%\Sucrose\Cache\Store\Temporary The Portal repoints Sucrose.XamlAnimatedGif's loader here (its library default is Path.GetTempPath()). Cache files are SHA1 hashes (uppercase hex) of the source URL's AbsoluteUri. The Portal repoints both the cache location and its expiry: the active expiry is StoreDuration hours (default 3, clamped 1-24), not 30 days — the 30-day value is only the loader's un-overridden library default. See Cache-Management.

Quick lookup table

I want… Go to
My settings %AppData%\Sucrose\Setting\
My logs %AppData%\Sucrose\Log\
My downloaded Store wallpapers %AppData%\Sucrose\Cache\Store\
Crash reports %AppData%\Sucrose\Cache\Report\
The installed program files %LocalAppData%\Sucrose\
The bundled .NET runtime %LocalAppData%\Sucrose\Sucrose.Runtime\
The autostart task Task Scheduler → Autorun for Sucrose

See also

Home

Getting Started

Wallpaper Types

Using Sucrose

Settings Reference

Creating Wallpapers

Engine Reference

Automation & Command Line

Architecture & Internals

Data, Files & Diagnostics

Building & Contributing

Help & Support

Clone this wiki locally