Skip to content
CAI
Software that uses CAICheck a score

LorisYounger/VPet

40.7

Weak · 23 September 2026

30.8k

lines of production code

C#

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

VPet-Simulator is a desktop virtual pet application that allows users to manage one or more customizable digital pets with simulated needs, moods, and activities. The system features a modular architecture supporting extensive modding through Steam Workshop integration, enabling users to expand content with new items, dialogue, and animations. It includes robust multiplayer capabilities for synchronized interactions and social features, alongside tools for asset optimization and comprehensive localization support.

How it got here

2022 — Initial setup and core architecture

10 changes.

This period established the VPet-Simulator project through initial repository configuration, documentation, and a comprehensive upgrade to .NET 10. It involved rebuilding the core rendering engine with APNG support and the Windows client with a new WPF interface, while introducing features like streaming dialogue, multi-save capabilities, and an animation optimization tool.

2023 — WPF interface and modding infrastructure

13 changes.

This period focused on establishing the core WPF application shell and a robust plugin-based interface layer for the desktop simulator. Significant work was done to expand moddable content, including new item systems, dialogue options, and seasonal events, while implementing security features like MOD verification and save integrity checks. The effort also included comprehensive localization updates and refined pet animations to support the new interactive features.

2024–2026 — modular settings and multiplayer expansion

9 changes.

The project restructured the configuration system into a modular, MVVM-based architecture with distinct models for graphics, mods, and diagnostics, while introducing a dedicated editor UI. Simultaneously, it implemented a new multiplayer subsystem with Steam Lobby integration, guest management, and plugin APIs, alongside expanded content assets and localization infrastructure.

Features

Add core mod metadata file

The core mod now includes an info.lps file that defines its metadata, including the author (LorisYounger), version (11000), and localized descriptions in English, Simplified Chinese, and Traditional Chinese.

_VPet-Simulator.Windows/mod/0000\core · high confidence

Added in-game tutorial documentation assets

New HTML-based tutorial files have been added to the game assets for display within the application. This includes a default version (Tutorial.html), an English localized version (Tutorial\_en.html), and a Traditional Chinese localized version (Tutorial\_zht.html), providing users with in-app guidance documentation.

VPet-Simulator.Windows/GameAssets · high confidence

Expanded food, drink, and gift catalog with new categories and seasonal items

The core food module now includes dedicated data files for drugs, gifts, and additional drinks, significantly broading the items available for purchase and consumption. The 'food.lps' file defines standard meals, snacks, and functional items, while 'drug.lps' introduces medicinal items like Vitamin C and Ibuprofen that affect health and stats. A new 'gift.lps' file adds purchasable gifts such as smartphones, cameras, and computer hardware that boost likability and feeling. Additionally, 'moredrink.lps' provides a wider variety of beverages, and 'timelimit.lps' contains seasonal items like Zongzi for the Dragon Boat Festival and commented-out entries for Christmas and Mid-Autumn Festival content.

_VPet-Simulator.Windows/mod/0000\core/food · high confidence

Expanded pet dialogue and work activity options

The virtual pet now has significantly more conversational responses when clicked, with new lines covering idle states, various work modes (studying, copywriting, live streaming, gaming), sleeping, and sickness. Additionally, new work activities have been introduced, including calligraphy practice, jump rope, BBQ, playing with water, and screen repair, each with their own unique dialogue sets. The pet also responds to specific questions about its stats (hunger, thirst, mood, etc.) and preferences for food and drinks, and new schedule packages for work and study are available.

_VPet-Simulator.Windows/mod/0000\core/text · high confidence

Gift animation support for multiple pet states

The gift interaction now displays distinct animations based on the pet's current condition. New configuration files define specific gift animations for the Happy, Ill, Normal, and Poor Condition states, ensuring the visual feedback matches the pet's status when receiving a gift.

_VPet-Simulator.Windows/mod/0000\core/pet/vup/Gift · high confidence

Initializes VPet.Solution WPF application shell and settings infrastructure

This change introduces the core application shell for VPet.Solution, including the App entry point, resource dictionaries for styling (Panuon.WPF.UI), and converters. It establishes the dependency injection container to wire up ViewModels (Main, Graphics, System, Diagnostic, Interactive, Customized, Mod) with their corresponding Views. Additionally, it adds command-line argument handling for startup tasks like removing the Windows startup shortcut or launching Steam, and initializes the project's settings and resource management infrastructure.

VPet.Solution · high confidence

Introduce main window with language selection and troubleshooting support

The VPet.Solution application now includes a main window that allows users to select the interface language via a dropdown and provides a dedicated button to report issues when the desktop pet fails to start on the first launch. The window also features a button to open the settings editor, with the save viewer functionality currently commented out.

VPet.Solution/Views · high confidence

Introduces multiplayer guest table and friend interaction features

This change adds a new multiplayer subsystem located in the MutiPlayer directory, enabling users to manage a guest table for friends via Steam Lobbies. The update introduces a dedicated UI for listing visitors, sending chat messages, and controlling join/interaction permissions, alongside logic to synchronize game state (such as pet data and animations) and handle remote purchases through the BetterBuy interface.

VPet-Simulator.Windows/MutiPlayer · high confidence

Introduces streaming support for pet dialogue

The core dialogue system now supports streaming text generation. A new abstract \SayInfo\ base class and \SayInfoWithStream\ implementation allow the pet to display text incrementally as it is generated, rather than waiting for the entire message to be ready. This enables real-time, character-by-character or word-by-word display of speech, improving the responsiveness of the pet's interactions.

VPet-Simulator.Core/Handle · high confidence

Introduction of ModLoader for desktop pet mod management

The VPet.Solution application now includes a new ModLoader component within the Models layer, enabling the system to load and parse desktop pet mods. This component reads mod metadata (such as name, author, version, and tags) from an info.lps file, loads localized language strings, and identifies available content like pet models, themes, and fonts. It also handles image loading for mod icons and manages Steam Workshop integration identifiers, providing the foundational data structure for mod discovery and configuration.

VPet.Solution/Models · high confidence

New MOD verification and console logging infrastructure

The application now includes a WorkshopVerificationClient that validates Steam Workshop MODs against a remote service to detect tampering or risk, caching file hashes to avoid redundant checks. Additionally, a ConsoleRedirectWriter has been added to capture console output and append it to the ActivityLogs, providing users with a visible record of system events and errors.

VPet-Simulator.Windows/Function · high confidence

New Setting Editor with modular configuration views

The application now includes a dedicated Setting Editor window that organizes configuration into distinct, switchable tabs. Users can manage Graphics settings (language, font, window positioning, zoom, and rendering resolution), Interactive settings (data calculation, interaction intervals, pet movement, and music recognition), Customized settings (managing custom links and shortcuts), Diagnostic settings (auto-calculating overpowered data prices and managing diagnostic data feedback), and Mod settings (browsing, enabling, and clearing mods with safety warnings for code plugins). The editor features a unified interface for saving, resetting, and searching through these various configuration categories.

VPet.Solution/Views/SettingEditor · high confidence

Added several new WPF design components to the Windows client: a 'Better Buy' shop window with search, sorting, and auto-buy settings; a photo gallery with locked/unlocked item states and star-favoriting; a 'Talk Select' UI for option-based pet conversations; a 'DIY Viewer' for custom shortcuts/links; and supporting converters and grid controls. These changes introduce new interactive panels for purchasing, viewing media, and communicating with the pet.

VPet-Simulator.Windows/WinDesign · high confidence

New animation engine with APNG support and layered food animations

The Graph module introduces a new rendering architecture featuring APNGAnimation for animated PNG support, FoodAnimation for layered (front/back/middle) animations, and a refactored PNGAnimation with sprite-sheet caching. GraphCore now manages animation lifecycle, idle cache cleanup, and resolution scaling, while GraphInfo standardizes animation metadata and GraphHelper provides unified run interfaces.

VPet-Simulator.Core/Graph · high confidence

New animation optimization tool for deduplicating identical frames

A new command-line utility has been added to the VPet-Simulator.Tool project to help users optimize animation assets. The tool scans directories for PNG images, identifies duplicates by comparing file hashes, and renames the remaining frames using a standardized naming convention (Name\_Index\_Duration) that includes the frame duration in milliseconds. This allows for cleaner animation files and reduced storage size by removing redundant identical frames.

VPet-Simulator.Tool · high confidence

New desktop interface layer with plugin support, work balancing, and save integrity checks

This change introduces the VPet-Simulator.Windows.Interface assembly, providing the core abstraction layer for the desktop application. It adds a plugin system (MainPlugin) allowing mods to extend functionality, and implements a new save system (GameSave\_v2) with HashCheck verification to detect save file tampering or corruption. The work mechanics are significantly rebalanced via new algorithms in ExtensionFunction that detect and fix 'overpowered' work stats, ensuring fairer progression. Additionally, the interface supports an activity log for tracking events, a schedule task system for automated work/study routines, and exposes various APIs for chat, items, and settings.

VPet-Simulator.Windows.Interface · high confidence

New moddable interface types for items, photos, and conditional dialogue

The modding interface now exposes new data models that allow creators to define in-game content via configuration files. This includes an Item system with a Food subclass (supporting types like meals, snacks, and drinks, along with stat effects and overload pricing checks), a Photo gallery system with unlock conditions (based on level, money, holidays, etc.), and a conditional text system (ClickText, SelectText, LowText) that lets dialogue trigger based on pet state, time of day, or player choices.

VPet-Simulator.Windows.Interface/Mod · high confidence

New multiplayer API interfaces for plugin developers

This change introduces a new set of interfaces (IMPFriend, IMPWindows, MPMessage) in the VPet-Simulator.Windows.Interface/MutiPlayer directory, providing the foundational API for multiplayer functionality. These interfaces allow plugins to interact with the multiplayer system, including managing friend lists, sending messages, handling animations, and processing interactions like feeding or petting. This enables plugin authors to create multiplayer-specific features and synchronize game states between players.

VPet-Simulator.Windows.Interface/MutiPlayer · high confidence

The photo gallery in the core module has been expanded with new content files for 2025 and 2026, adding holiday-themed illustrations (e.g., Spring Festival, Dragon Boat Festival, Mid-Autumn Festival, Christmas, New Year's Day, Halloween) and anniversary images, alongside new expression thumbnails covering various emotions and actions, and new animated GIFs. These additions provide users with more visual variety and seasonal interactions within the desktop pet simulator.

_VPet-Simulator.Windows/mod/0000\core/photo · high confidence

Behavioural changes

15 commits (0 fixes) modifying VPet-Simulator.Windows/mod/0000\_core/file

A change to existing behaviour in VPet-Simulator.Windows/mod/0000\_core/file — 15 commits, 6 files.

_VPet-Simulator.Windows/mod/0000\core/file · medium confidence · unverified

Comprehensive Chinese (Simplified) localization update

The Chinese (Simplified) language pack for the core virtual pet simulator has been significantly expanded and updated. This change introduces new translation files covering a wide range of features, including settings for transparency and mouse penetration, multi-instance (multi-pet) management, and a new schedule system for automating work and study. It also adds extensive content for seasonal events (such as birthdays, Christmas, and Mid-Autumn Festival), a photo gallery with filtering and export options, and detailed statistics summaries. Additionally, the update includes new dialogue strings for the pet's interactions, shopping behaviors, and a new option-based chat system, while also fixing missing translations and correcting text errors in existing menus.

_VPet-Simulator.Windows/mod/0000\core/lang/zh-Hans · high confidence

Default pet profile updated with new activities and interaction zones

The default virtual pet configuration (vup.lps) has been updated to include new interaction touch zones for the head and body, as well as a comprehensive set of new activities. These include Work tasks (Copywriting, Grilled Sausage, Screen Cleaning, Live Streaming, Screen Repair), Study tasks (Study, Research, Calligraphy, Painting), and Play tasks (Gaming, Debugging, Jump Rope, Water Play). The profile also defines specific movement animations for climbing, falling, walking, and crawling, along with birthday display settings and side-bar positioning.

_VPet-Simulator.Windows/mod/0000\core/pet · high confidence

Major English localization overhaul and expansion

The English language pack for the core simulator has been significantly expanded and refined. New localization files (Base2306 through Base2608) introduce translations for a wide range of new features, including the option-based chat system, guest list (multiplayer) interactions, schedule management, photo gallery, and item inventory. The update also adds specific content for seasonal events (Christmas, New Year, birthdays), new drink and gift items, and detailed UI strings for settings and diagnostics. Additionally, several existing translation files (Drink\_v2, Gift2308, Limit) have been updated to cover new in-game content and improve clarity.

_VPet-Simulator.Windows/mod/0000\core/lang/en · high confidence

New MVVM-based setting editor and localization infrastructure

The application now uses a new ViewModel structure for its settings, introducing a main editor (SettingViewModel) that manages multiple sub-settings (Graphics, System, Diagnostic, Interactive, Customized, and Mod). This change adds the ability to search and filter settings, save/reset individual or all configurations, and manage custom links and mods with search filtering. It also introduces a new MainViewModel that handles application-level localization, allowing users to change the display language and view stored translation strings.

VPet.Solution/ViewModels · high confidence

Redesigned desktop pet interface with new status and work panels

The display layer has been rebuilt using new XAML components, introducing a dedicated WorkTimer panel that shows a live countdown, progress bar, and stop button for active tasks, and a ToolBar menu that consolidates status indicators (level, money, experience, strength, mood, hunger, thirst) alongside action menus for feeding, studying, playing, and working. A new MessageBar component handles chat and system notifications with a typewriter text effect, copy-to-clipboard, and auto-close, while the main window now includes a MediaElement for voice playback and a LabelDisplay for transient status popups.

VPet-Simulator.Core/Display · high confidence

Setting editor refactored into modular sub-setting models

The Setting Editor in VPet.Solution has been restructured to use a modular architecture. The previous monolithic approach is replaced by distinct model classes for each settings category: Graphics, System, Interactive, Customized, Diagnostic, and Mod. Each category now has its own model (e.g., GraphicsSettingModel, ModSettingModel) that implements ISubSettingModel and handles its own Load/Save logic, mapping directly to the underlying Setting object. This separation improves maintainability and allows for more granular management of settings like mod loading, graphics options, and interactive behaviors.

VPet.Solution/Models/SettingEditor · high confidence

Updated Traditional Chinese (zh-Hant) localization strings

The Traditional Chinese language files for the core mod have been updated with new and revised strings. This includes translations for new UI elements such as the schedule system, visitor list, photo gallery, and item inventory, as well as updates to existing settings, error messages, and activity logs.

_VPet-Simulator.Windows/mod/0000\core/lang/zh-Hant · high confidence

Updated drinking animations for different pet moods and health states

The drinking interaction now displays distinct animations based on the pet's current state. The configuration file defines specific visual layers and timing for 'Happy', 'Normal', 'PoorCondition', and 'Ill' modes, ensuring the pet's drinking behavior reflects its mood and health, such as showing a different animation sequence when the pet is sick.

_VPet-Simulator.Windows/mod/0000\core/pet/vup/Drink · high confidence

Updated eating animation configurations for all pet states

The eating animation logic has been updated across all pet conditions (Happy, Ill, Normal, and Poor Condition). New configuration files define specific front and back layer animations and food animation parameters for each state, ensuring the pet's eating behavior reflects its current health and mood.

_VPet-Simulator.Windows/mod/0000\core/pet/vup/Eat · high confidence

Windows client restructured with new UI framework and multi-save support

The VPet-Simulator.Windows project has been rebuilt from scratch, introducing a new WPF-based user interface using the Panuon.WPF.UI framework for styling and controls. This update implements a robust multi-save system, allowing users to run multiple desktop pets with independent settings and game data simultaneously. The client now features a dedicated PetHelper window for managing mouse transparency and topmost settings, integrates Steamworks for rich presence and workshop mod loading, and includes a new error handling system that provides localized, user-friendly messages for common issues like data overflow or file access errors.

VPet-Simulator.Windows · high confidence

Dependencies

Project structure reorganization and .NET 10 upgrade

The VPet-Simulator solution has been restructured into distinct projects (Core, Tool, Windows.Interface, Windows, and Solution) and upgraded to target .NET 10.0 for the main application and solution components, while the core library targets .NET 8.0. This change introduces several new NuGet dependencies, including CommunityToolkit.Mvvm (8.4.2), HKW libraries, and HanumanInstitute.MvvmDialogs, and configures the build to disable specific MVVM source generators to prevent conflicts.

(dependencies) · high confidence

Housekeeping

Initial repository setup with documentation and coding standards

The repository has been initialized with the core project structure, including the solution file and project definitions for VPet-Simulator.Core, VPet-Simulator.Windows, and VPet-Simulator.Tool. To support development, an .editorconfig file has been added to enforce C\# naming conventions (e.g., PascalCase for types, interfaces prefixed with 'I') and code style rules. Comprehensive documentation has also been added, including a detailed README in Simplified Chinese, Traditional Chinese, English, and Japanese, alongside CONTRIBUTING guides in multiple languages that outline the software architecture, modding support, and animation copyright terms.

(repo-wide) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 38 → 41 (+2.6)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 39 → 46 (+6.4)
  • Architecture 93 → 95 (+2.1)
  • Maturity 43 → 45 (+2.4)
  • Readiness 23 → 24 (+1.1)
  • Security 89 → 89 (+0.0)

Resolved (77)

  • Bounded contexts not declared
  • Build did not complete in the analyzer
  • CalculatorConverter.Convert (cognitive 16) (VPet.Solution/Converters/CalculatorConverter.cs)
  • Change coupling: Main.xaml.cs ↔ PetLoader.cs (VPet-Simulator.Core/Display/Main.xaml.cs)
  • CommentedOutCode (VPet-Simulator.Windows.Interface/Mod/Photo.cs)
  • CommentedOutCode (VPet.Solution/Models/SettingEditor/GraphicsSettingModel.cs)
  • CommentedOutCode (VPet.Solution/Models/SettingEditor/InteractiveSettingModel.cs)
  • CommentedOutCode (VPet.Solution/Utils/Expansions.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • CommentedOutCode (VPet.Solution/Utils/ObservablePoint.cs)
  • Dead code: NativeResources (VPet.Solution/Resources/NativeResources.cs)
  • Duplicated block (10 lines × 3) (VPet-Simulator.Windows/WinDesign/winWorkMenu.xaml.cs)
  • Duplicated block (11 lines × 2) (VPet-Simulator.Windows/MainWindow.xaml.cs)
  • Duplicated block (11 lines × 2) (VPet-Simulator.Windows/WinDesign/winCharacterPanel.xaml.cs)
  • …and 57 more

New (138)

  • AnalyzerSeverityNone (.editorconfig)
  • CommentedOutCode (VPet-Simulator.Windows/WinDesign/winConsole.xaml.cs)
  • CommentedOutCode (VPet-Simulator.Windows/WinDesign/winGameSetting.xaml.cs)
  • CommentedOutCode (VPet-Simulator.Windows/WinDesign/winGameSetting.xaml.cs)
  • CommentedOutCode (VPet.Solution/Models/SettingEditor/Setting.cs)
  • CommentedOutCode (VPet.Solution/Models/SettingEditor/Setting.cs)
  • CommentedOutCode (VPet.Solution/Models/SettingEditor/Setting.cs)
  • CommentedOutCode (VPet.Solution/Views/MainWindow.xaml.cs)
  • Config.Set (cyclomatic 16) (VPet-Simulator.Core/Graph/GraphCore.cs)
  • Dead code: CustomizedSettingViewModelObservableObjectHelper (VPet.Solution/ViewModels/SettingEditor/CustomizedSettingViewModel.cs)
  • Dead code: MainViewModelObservableObjectHelper (VPet.Solution/ViewModels/MainViewModel.cs)
  • Dead code: ModSettingViewModelObservableObjectHelper (VPet.Solution/ViewModels/SettingEditor/ModSettingViewModel.cs)
  • Dead code: SettingViewModelObservableObjectHelper (VPet.Solution/ViewModels/SettingEditor/SettingViewModel.cs)
  • DeadPreprocessorBranch (VPet-Simulator.Windows.Interface/Resources.cs)
  • DeadPreprocessorBranch (VPet-Simulator.Windows/Function/Win32.cs)
  • DeadPreprocessorBranch (VPet-Simulator.Windows/MainWindow.cs)
  • DeadPreprocessorBranch (VPet-Simulator.Windows/MainWindow.cs)
  • DeadPreprocessorBranch (VPet-Simulator.Windows/MainWindow.xaml.cs)
  • DeadPreprocessorBranch (VPet-Simulator.Windows/WinDesign/winGameSetting.xaml.cs)
  • Duplicated block (10 lines × 2) (VPet-Simulator.Core/Display/Main.xaml.cs)
  • …and 118 more

Changes since last survey

  • 40 commits — 40 feature/other, 0 fixes

By area

  • VPet-Simulator.Windows/mod — 17 commits
  • VPet-Simulator.Windows/WinDesign — 4 commits
  • (repo) — 3 commits
  • VPet-Simulator.Windows/Function — 3 commits
  • VPet.Solution/Models — 3 commits
  • VPet-Simulator.Core/Display — 2 commits
  • VPet.Solution/Views — 2 commits
  • (root) — 1 commit
  • VPet-Simulator.Core/VPet-Simulator.Core.csproj — 1 commit
  • VPet-Simulator.Windows.Interface/ScheduleTask.cs — 1 commit
  • VPet-Simulator.Windows/MainWindow.cs — 1 commit
  • VPet-Simulator.Windows/Res — 1 commit
  • VPet-Simulator.Windows/VPet-Simulator.Windows.csproj — 1 commit

Notable commits

  • change: Delete 0001_ModMaker
  • change: Merge branch 'main' of https://github.com/LorisYounger/VPet
  • change: Merge branch 'main' of https://github.com/LorisYounger/VPet
  • change: Merge branch 'main' of https://github.com/LorisYounger/VPet
  • change: Nullable Support (#555)
  • change: filehash只计算DLL文件
  • change: steam保存失败不报错
  • change: 专属标志升级
  • change: 优化 SetNowScreenActivate 方法中的UI线程问题
  • change: 优化VPet.Solution
  • change: 优化VPet.Solution
  • change: 优化VPet.Solution
  • change: 优化侧边隐藏模式检查逻辑
  • change: 修复Steam统计溢出问题
  • change: 修复更好买无法自动购买的错误
  • change: 修复点击说话的错误
  • change: 修复烤肠动画显示
  • change: 修复物品栏加载翻倍的错误
  • change: 修复等级突破相关的bug
  • change: 修复老系统版本可能的报错
  • …and 20 more

Architecture

  • Unchanged — 3 containers · 0 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

LorisYounger/VPet was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit c150e6f8c97f67662b249d2db27d72c3709e40bd — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.