Skip to main content

Crate modde_games

Crate modde_games 

Source
Expand description

Per-game support for modde: the game registry plus each game’s plugin, scanner, save tracker, and tool integrations, exposed through game_id-keyed resolver functions.

Re-exports§

pub use detection::DetectedGame;
pub use detection::LauncherSource;
pub use detection::find_detected_game;
pub use detection::scan_installed_games;
pub use generic::loader::load_user_games;
pub use generic::loader::reload_user_games;
pub use generic::manage::AddUserGameResult;
pub use generic::manage::DetectCandidateDir;
pub use generic::manage::add_user_game;
pub use generic::manage::detect_candidates;
pub use generic::manage::read_user_game_spec;
pub use generic::manage::remove_user_game;
pub use optiscaler::OptiScalerIniOverride;
pub use optiscaler::OptiScalerProfile;
pub use optiscaler::default_optiscaler_profile;
pub use optiscaler::resolve_optiscaler_profiles;
pub use registry::EngineFamily;
pub use registry::GameRegistration;
pub use registry::LauncherIds;
pub use registry::all_games;
pub use registry::resolve_game;
pub use registry::supported_game_ids;
pub use traits::DeployTarget;
pub use traits::DeployTargetKind;
pub use traits::DiscoveredFile;
pub use traits::DiscoveredMod;
pub use traits::GamePlugin;
pub use traits::ModClassifyConfig;
pub use traits::ModSafety;
pub use traits::ModScanner;
pub use traits::ModSource;
pub use traits::SaveTracker;
pub use traits::ScanContext;
pub use traits::classify_mod_by_content;
pub use traits::slug;
pub use traits::walk_files_relative;

Modules§

bannerlord
The Mount & Blade II: Bannerlord game plugin: Modules layout plus SubModule.xml parsing and dependency checking.
bethesda
Data-driven support for Bethesda Creation Engine games (Skyrim, Fallout, Starfield), grouping per-game submodules (archives, INI handling, FOMOD, plugin scanning, saves) and defining BethesdaGame, a single GamePlugin implementation parameterized by static per-title metadata.
bg3
The Baldur’s Gate 3 game plugin: Larian .pak mod layout, modsettings.lsx load-order management, and Proton-prefix path resolution.
cyberpunk
The Cyberpunk 2077 game plugin: REDengine mod layout, REDmod deploy, and the associated scanner, save tracker, and collision classifier.
detection
Unified game detection across Steam and Heroic launchers.
gamebryo
The Gamebryo-engine game plugin (Oblivion, Fallout 3/New Vegas): a data-driven GamePlugin shared across the supported Gamebryo titles, plus plugins.txt-style load-order file helpers.
generic
User-defined “generic” games: a configurable GamePlugin driven by a TOML spec::GameSpec, plus loading/managing those user specs from disk.
launcher
Launcher detection and configuration for Wine/Proton DLL overrides.
oblivion_remastered
The Oblivion Remastered game plugin: a UE5 wrapper around the Gamebryo engine, mixing ~mods .pak layout with Bethesda-style plugins.
optiscaler
Per-game OptiScaler compatibility profiles.
policies
Reusable, data-driven policies that let games describe their content classification, archive layout, DLL overrides, mod directory, and collision rules declaratively instead of hand-writing per-game scanning logic.
registry
Central registry of every supported game: the GameRegistration records that bind a game_id to its plugin, scanner, save tracker, and launcher IDs, plus the lookup helpers (resolve_game, all_games) used across the crate.
save_patterns
Declarative SaveTracker implementation that locates game save files by filename-prefix and extension rules, classifying matches into categories and summarizing what was captured.
scanner_patterns
Composable scanning rules that turn common mod-layout conventions (one-directory-per-mod, one-file-per-mod, grouped-by-stem) into DiscoveredMod entries, so game scanners can be assembled declaratively.
stardew
The Stardew Valley (SMAPI) game plugin and its mod-layout policies.
tools
Per-game tool/overlay management.
traits
Core game-plugin abstractions: content classification, save tracking, and the ModScanner / GamePlugin interfaces every supported game implements.
ue4
Data-driven support for Unreal Engine 4 games: a shared Ue4Game plugin (pak ~mods layout, proxy-DLL overrides) parameterised per title.
witcher3
The Witcher 3 game plugin: REDkit mod layout, script-conflict detection, and save/scanner wiring.

Constants§

SUPPORTED_GAME_IDS
All recognized game IDs, in registry order.

Functions§

game_probe
Build an modde_core::installer::InstallProbe that delegates to a game plugin’s GamePlugin::analyze_mod_archive and GamePlugin::recognizes_bare_layout hooks.
normalize_wabbajack_game
Map a Wabbajack manifest game field (e.g. "Cyberpunk2077", "SkyrimSpecialEdition") to the internal game_id (e.g. "cyberpunk2077", "skyrim-se").
read_native_plugin_order
Read the native plugin order for a game from plugins.txt, when the game uses one.
resolve_collision_classifier
Resolve a game_id to its CollisionClassifier implementation, if one exists.
resolve_game_plugin
Resolve a game_id string to the corresponding GamePlugin implementation.
resolve_game_plugin_by_nexus_domain
Like resolve_game_plugin but keyed on the Nexus Mods domain.
resolve_mod_scanner
Resolve a game_id to its ModScanner implementation, if one exists.
resolve_save_tracker
Resolve a game_id to its SaveTracker implementation, if one exists.
supported_games
(game_id, display_name) for every supported game, derived from the plugin registry.
supports_save_profiles
Return whether a game participates in modde’s per-profile save layer.
write_native_plugin_order
Persist plugin order back to the game’s native plugins.txt, when supported.