Начните вводить название — например, MoreHead, Sodium или PEAK

ShadowsOfDoubt UI Scaler — иконка
Обложка Shadows of DoubtМод для Shadows of Doubt

ShadowsOfDoubt UI Scaler

от Khundian

Унифицирует масштаб пользовательского интерфейса с помощью Canvas Scaler для Shadows of Doubt. Настройка горячих клавиш (F9 Toggle, F11/F10 ±5%) и безопасное приложение на холст. Хранит шрифты / шрифты четкими; необязательно в мировом пространстве. Требуется BepInEx 6 IL2CPP.

  • Обычный
  • 1,1 тыс. скачиваний
  • Версия 1.0.1
  • Обновлён 23 августа 2025
  • Не обновлялся больше года

О моде ShadowsOfDoubt UI Scaler

ShadowsOfDoubt UI Scaler — мод для Shadows of Doubt (Шэдоус оф Даут) от автора Khundian. Унифицирует масштаб пользовательского интерфейса с помощью Canvas Scaler для Shadows of Doubt. Настройка горячих клавиш (F9 Toggle, F11/F10 ±5%) и безопасное приложение на холст. Хранит шрифты / шрифты четкими; необязательно в мировом пространстве. Требуется BepInEx 6 IL2CPP.

Его скачали 1,1 тыс. раз: это 120-е место среди модов Shadows of Doubt в нашем каталоге, редкость — «обычный» (нижняя половина по скачиваниям). Мод давно не обновлялся — проверьте совместимость с текущей версией игры, актуальная версия — 1.0.1.

Для работы ему нужны: BepInExPack IL2CPP.

Полное описание ShadowsOfDoubt UI Scaler

Текст автора на языке оригинала

Shadows of Doubt UI Scaler

Plugin GUID: khundian.sod.uiscaler Name: Shadows of Doubt UI Scaler Version: 1.0.1 Description: UI scaler + configurable hotkeys.

Unifies UI scale via Canvas Scaler for Shadows of Doubt. Config hot-reload, configurable hotkeys (F9 toggle, F11/F10 ±5%), and safe per-canvas application. Keeps fonts/sprites crisp; world-space optional. Requires BepInEx 6 IL2CPP.

Features

  • Global UI scaling via Canvas Scaler (Scale With Screen Size) with configurable reference resolution (default 1920×1080), match factor (0–1), and a multiplier (0.10×–5.00×).
  • Configurable hotkeys (defaults: Toggle F9, Scale Up F11, Scale Down F10). Each press adjusts by 5% and saves after a short idle.
  • Hot reload of the config file. Edits on disk are debounced and re-applied safely while the game is running.
  • Scene-change detection by polling (SceneManager.GetActiveScene()), ensuring compatibility with IL2CPP/Roslyn edge-cases (no event subscription required).
  • Batched layout rebuilds: Canvas.ForceUpdateCanvases() is called once per rescan/revert pass to avoid spikes.
  • Efficient discovery of canvases using Object.FindObjectsOfType(true), with filters:
  • ActiveSceneOnly (affect canvases in the active scene)
  • IncludeWorldSpace (optional world-space canvases)
  • Name filters via include/exclude tokens
  • Zero-alloc pruning of destroyed canvases and best‑effort pre‑sizing of internal collections for large scenes.
  • Periodic rescan interval is configurable (Engine:RescanEveryMilliseconds, default 2000 ms). Heavier work runs on a timed tick; only input runs every frame.

Requirements

  • Shadows of Doubt (Unity 2021.3)
  • BepInEx 6 (IL2CPP)

Installation

Manual (zip)

  1. Install BepInEx 6 (IL2CPP) for the game.
  2. Copy the plugin DLL to:

\BepInEx\plugins\ShadowsOfDoubt.UIScaler\ShadowsOfDoubt.UIScaler.dll

  1. Launch the game once. The config file will be created at:

\BepInEx\config\khundian.sod.uiscaler.cfg

Thunderstore (optional)

Zip structure:

BepInEx/ plugins/ ShadowsOfDoubt.UIScaler/ ShadowsOfDoubt.UIScaler.dll manifest.json README.md LICENSE

Usage

Defaults

  • Enabled: true
  • Scale: UiScaleMultiplier = 1.00 (vanilla size)
  • Reference Resolution: 1920 × 1080
  • Match: 0.50 (balanced width/height)
  • Rescan: 2000 ms
  • Hotkeys:
  • Toggle: F9 (on/off)
  • ScaleUp: F11 (+5%)
  • ScaleDown: F10 (−5%)

In-game

  • Press F9 to enable/disable (when disabling, original Canvas settings are restored).
  • Press F11 / F10 to adjust the global UI scale by ±5%.
  • A small toast confirms the change (e.g., UI Scale: 1.15x).

Configuration

Location:

\BepInEx\config\khundian.sod.uiscaler.cfg

The file includes a readable header and per-setting comments. Saving the file hot-reloads and re-applies settings while the game is running—no restart needed.

Key Settings (overview)

[General]

  • Enabled — master switch

[CanvasScaler]

  • UiScaleMultiplier (0.10–5.00) — global UI size multiplier (1.00 = vanilla)
  • ReferenceWidth / ReferenceHeight — reference resolution (default 1920×1080)
  • MatchWidthOrHeight (0..1) — 0 = width, 1 = height, 0.5 = balanced

[Filter]

  • ActiveSceneOnly — consider canvases only from active scene
  • IncludeWorldSpaceCanvases — include World Space canvases (default false)
  • CanvasInclude / CanvasExclude — comma-separated name tokens; exclude wins over include

[Perf]

  • RescanEveryMilliseconds — periodic re-scan to catch newly spawned canvases

[Hotkeys] (names from Unity KeyCode)

  • Toggle (default F9)
  • ScaleUp (default F11)
  • ScaleDown (default F10)

How It Works (Technical)

  • Finds canvases (including inactive) and attaches/updates a CanvasScaler set to Scale With Screen Size.
  • Applies UiScaleMultiplier by adjusting the reference resolution inversely (preserves pixel density).
  • Stores original scaler settings and reverts them when disabling the plugin.
  • Watches the config file; on any save, it reloads and re-applies if still enabled.

Troubleshooting

  • World-space UI breaks

World-space canvases are excluded by default. Enabling them can affect 3D interaction/depth; use with caution.

Changelog

1.0.1 — 2025-08-23

  • Changed
  • Scene change handling: replaced event subscription attempts with polling in UiDriver.Tick() using SceneManager.GetActiveScene() (compare name/buildIndex) and trigger a single rescan on change.
  • Batched layout rebuilds: Canvas.ForceUpdateCanvases() is now called once per rescan/revert pass (not per-canvas).
  • Discovery path: use Object.FindObjectsOfType(true) and filter by active scene, world-space inclusion, and name tokens.
  • Work cadence: only hotkey reads in Update(); heavier work (rescans, reload debounce, heartbeat) runs on a timed Tick().
  • Logging prefix cleanup: removed manual [{PluginName}] from messages; rely on BepInEx’s [Level: Source] prefix.
  • Added
  • Debounced config reloads: file watcher sets a flag; main thread reloads once after ~200 ms quiet time.
  • Debounced config saves: hotkey changes are persisted once after ~500 ms idle.
  • Name-filter token cache: include/exclude strings are pre-split on (re)load; NameAllowed() uses cached arrays.
  • Stale-entry cleanup: each rescan prunes destroyed canvases from _originalById.
  • Fixed / Compatibility
  • Event interop issues: removed direct subscriptions to SceneManager.activeSceneChanged to avoid IL2CPP/Roslyn edge cases; polling replaces it.

Описание длинное — здесь его начало. Читать целиком на странице автора

Нужно для работы

В r2modman ставится автоматически

Как установить ShadowsOfDoubt UI Scaler

Файл скачивается с официального сервера Thunderstore, без перезаливов и сторонних установщиков

Подробная инструкция для Shadows of Doubt
  1. Скачайте менеджер модов r2modman (или Gale) и выберите в нём игру Shadows of Doubt.
  2. Создайте профиль — так моды не смешаются с чистой версией игры.
  3. Найдите «ShadowsOfDoubt UI Scaler» во вкладке Online и нажмите Download — BepInEx и все зависимости подтянутся сами.
  4. Нажмите «Start modded» — игра запустится с модами.
  5. Чтобы сыграть без модов, запустите игру как обычно из Steam — r2modman не трогает чистую версию игры.
Вы автор мода? Поставьте ссылку на русское описание

Вставьте значок в описание на Thunderstore, в README или в Discord — русскоязычные игроки сразу попадут на страницу с переводом и инструкцией.

Описание на русском — Модка
Markdown[![Описание на русском — Модка](https://modka.app/badge.png)](https://modka.app/shadows-of-doubt/khundian-shadowsofdoubt-ui-scaler/)
HTML<a href="https://modka.app/shadows-of-doubt/khundian-shadowsofdoubt-ui-scaler/"><img src="https://modka.app/badge.png" alt="Описание на русском — Модка" height="44"></a>
Steam (BBCode)[url=https://modka.app/shadows-of-doubt/khundian-shadowsofdoubt-ui-scaler/]Описание на русском — Модка[/url]

Частые вопросы о ShadowsOfDoubt UI Scaler

Как установить ShadowsOfDoubt UI Scaler?

Скачайте менеджер модов r2modman (или Gale) и выберите в нём игру Shadows of Doubt. Создайте профиль — так моды не смешаются с чистой версией игры. Найдите «ShadowsOfDoubt UI Scaler» во вкладке Online и нажмите Download — BepInEx и все зависимости подтянутся сами. Нажмите «Start modded» — игра запустится с модами. Чтобы сыграть без модов, запустите игру как обычно из Steam — r2modman не трогает чистую версию игры.

Безопасен ли ShadowsOfDoubt UI Scaler?

Файл скачивается с официального сервера Thunderstore, куда его загрузил Khundian. Мы не перезаливаем и не изменяем моды.

Что нужно для работы ShadowsOfDoubt UI Scaler?

Установите вместе с ним: BepInExPack IL2CPP. В менеджере модов зависимости подтягиваются автоматически.

Когда ShadowsOfDoubt UI Scaler обновлялся последний раз?

23 августа 2025, актуальная версия — 1.0.1. Это больше года назад: перед установкой проверьте, работает ли мод на текущей версии игры.

SODQoL — иконка

SODQoL

Несколько изменений качества жизни в тени сомнения.

Легендарный57,1 тыс.Патчи

PlayerDialogAdditions — иконка

PlayerDialogAdditions

Добавляет диалоговые опции для игрока, чтобы сказать NPC, а также изменяет некоторые ответы.

Легендарный47,9 тыс.ИИ

Babbler — иконка

Babbler

Дает NPC слышимые голоса, когда они говорят в Shadows of Doubt.

Эпический40,8 тыс.Звук

Guns — иконка

Guns

Внедрение пистолетов-стрелков в игру.

Эпический40,8 тыс.

RealEstateCruncherApp — иконка

RealEstateCruncherApp

Добавляет новое приложение в хрусталь мэрии, в котором перечислены все доступные объекты недвижимости для продажи и позволяет купить их.

Эпический38,5 тыс.

DensityMod — иконка

DensityMod

Этот мод позволяет изменять более продвинутые настройки поколения города.

Эпический37,8 тыс.City Generation