├── Reference
├── README.md
├── UndertaleModLib.dll
└── UndertaleModTool.dll
├── ico.ico
├── ModShardLauncherTest
├── GlobalUsings.cs
└── ModShardLauncherTest.csproj
├── Resources
├── zpix.ttf
├── Codes
│ ├── LoggerModule
│ │ ├── o_msl_timer_Create_0.gml
│ │ ├── o_msl_timer_Step_0.gml
│ │ ├── scr_msl_log_save.gml
│ │ ├── o_msl_log_Create_0.gml
│ │ └── scr_msl_log.gml
│ └── LootModule
│ │ ├── scr_msl_resolve_guaranteed_items.gml
│ │ ├── scr_msl_resolve_items.gml
│ │ ├── scr_msl_resolve_loot_table.gml
│ │ ├── scr_msl_resolve_random_items.gml
│ │ └── scr_msl_resolve_refence_table.gml
├── SSFont.ttf
├── Mystery Font.ttf
└── Sprites
│ ├── icon.gif
│ ├── menu.png
│ ├── min.png
│ ├── mod.png
│ ├── open.png
│ ├── save.png
│ ├── SSicon.png
│ ├── close.png
│ ├── server.png
│ ├── source.png
│ ├── arrow_up.png
│ ├── leftPanel.png
│ ├── menu_down.png
│ ├── menu_over.png
│ ├── min_down.png
│ ├── min_over.png
│ ├── mod_down.png
│ ├── mod_over.png
│ ├── open_down.png
│ ├── open_over.png
│ ├── save_down.png
│ ├── save_over.png
│ ├── settings.png
│ ├── splitter.png
│ ├── ModInfosBG.png
│ ├── arrow_down.png
│ ├── checkbox_0.png
│ ├── checkbox_1.png
│ ├── checkbox_2.png
│ ├── close_down.png
│ ├── close_over.png
│ ├── icon_default.png
│ ├── patch_icon.png
│ ├── refresh_icon.png
│ ├── server_down.png
│ ├── server_over.png
│ ├── source_down.png
│ ├── source_over.png
│ ├── arrow_up_down.png
│ ├── arrow_up_over.png
│ ├── enable_button.png
│ ├── mod_icon_fore.png
│ ├── settings_down.png
│ ├── settings_over.png
│ ├── arrow_down_down.png
│ ├── arrow_down_over.png
│ ├── settings_button.png
│ ├── enable_button_down.png
│ ├── enable_button_over.png
│ ├── scrollbar_vertical.png
│ ├── settings_button_down.png
│ ├── settings_button_over.png
│ └── scrollbar_vertical_over.png
├── docs
├── img
│ ├── mod_0.en.png
│ ├── mod_0.zh.png
│ ├── mod_1.en.png
│ ├── mod_1.zh.png
│ ├── mod_2.en.png
│ ├── mod_2.zh.png
│ ├── mod_3.en.png
│ ├── mod_3.zh.png
│ ├── Stoneshard.ico
│ ├── class_0.en.png
│ ├── class_0.zh.png
│ ├── class_1.en.png
│ ├── tool_UI.en.png
│ ├── tool_UI2.en.png
│ ├── tool_UI3.en.png
│ ├── tool_UI4.en.png
│ ├── tool_UI5.en.png
│ ├── tool_UI6.en.png
│ ├── weapon_0.en.png
│ ├── weapon_0.zh.png
│ ├── weapon_1.en.png
│ ├── weapon_2.en.png
│ ├── compile_0.en.png
│ ├── compile_1.en.png
│ ├── linux_bottle_1.png
│ ├── modding_codes.en.png
│ ├── msl_template.en.png
│ ├── create_project_0.en.png
│ ├── create_project_0.zh.png
│ ├── create_project_1.en.png
│ ├── create_project_1.zh.png
│ ├── create_project_2.en.png
│ ├── create_project_2.zh.png
│ └── msl_template_location.en.png
├── guides
│ ├── how-to-play-mod.zh.md
│ ├── start-modding-with-vsc.zh.md
│ ├── introduction.zh.md
│ ├── introduction.en.md
│ ├── api.zh.md
│ ├── how-to-play-mod.en.md
│ └── start-modding.zh.md
├── index.zh.md
└── index.en.md
├── ModReference
├── System.Linq.dll
├── netstandard.dll
├── System.Runtime.dll
├── System.Collections.dll
└── System.ObjectModel.dll
├── FodyWeavers.xml
├── Mods
├── ModHooks.cs
├── DisassemblyEditor.cs
└── Mod.cs
├── App.xaml.cs
├── .github
├── ISSUE_TEMPLATE
│ ├── feature-request.md
│ └── bug-report.md
└── workflows
│ ├── build-test.yml
│ ├── ci.yml
│ └── publish.yaml
├── AssemblyInfo.cs
├── Controls
├── MainPage.xaml.cs
├── LoadingDialog.xaml.cs
├── ModSourceInfos.xaml.cs
├── Settings.xaml.cs
├── LoadingDialog.xaml
├── ScriptEnginePage.xaml.cs
├── MyItemsControl.xaml
├── SourceBar.xaml.cs
├── MyItemsControl.xaml.cs
├── ModBar.xaml.cs
├── MyToggleButton.xaml.cs
├── ModSourceInfos.xaml
├── ScriptEnginePage.xaml
├── MainPage.xaml
├── GeneralPage.xaml.cs
├── ModInfos.xaml.cs
├── ModInfos.xaml
├── MyToggleButton.xaml
├── Settings.xaml
├── SourceBar.xaml
└── ModBar.xaml
├── ModUtils
├── TableUtils
│ ├── TableUtils.cs
│ ├── Backers.cs
│ ├── PotionsStats.cs
│ ├── RecipesCraft.cs
│ ├── SurfaceSpawn.cs
│ ├── ContractsStats.cs
│ ├── DungeonsSpawn.cs
│ ├── RecipesCook.cs
│ ├── Drops.cs
│ └── SkillsStats.cs
├── VariableUtils.cs
├── LogUtils.cs
├── HookUtils.cs
├── WeaponUtils.cs
├── TextureUtils.cs
├── LootUtils.cs
└── ObjectUtils.cs
├── future_workflow.md
├── FilePacker.cs
├── Loader
├── ChecksumChecker.cs
└── Exporter.cs
├── CodeResources.cs
├── Converters
└── CompareNumbersConverter.cs
├── Language
├── ru-ru.xaml
├── zh-cn.xaml
└── en-us.xaml
├── .gitattributes
├── Core
├── Errors
│ └── MSLDiagnostic.cs
└── UI
│ └── ErrorMessageDialog.cs
├── README.md
├── ModShardLauncher.sln
├── mkdocs.yml
└── ModShardLauncher.csproj
/Reference/README.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/ico.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/ico.ico
--------------------------------------------------------------------------------
/ModShardLauncherTest/GlobalUsings.cs:
--------------------------------------------------------------------------------
1 | global using Xunit;
2 | global using ModShardLauncher;
--------------------------------------------------------------------------------
/Resources/zpix.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/zpix.ttf
--------------------------------------------------------------------------------
/Resources/Codes/LoggerModule/o_msl_timer_Create_0.gml:
--------------------------------------------------------------------------------
1 | func = -4;
2 | end_time = 0;
3 | cumulative_time = 0;
--------------------------------------------------------------------------------
/Resources/SSFont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/SSFont.ttf
--------------------------------------------------------------------------------
/docs/img/mod_0.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_0.en.png
--------------------------------------------------------------------------------
/docs/img/mod_0.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_0.zh.png
--------------------------------------------------------------------------------
/docs/img/mod_1.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_1.en.png
--------------------------------------------------------------------------------
/docs/img/mod_1.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_1.zh.png
--------------------------------------------------------------------------------
/docs/img/mod_2.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_2.en.png
--------------------------------------------------------------------------------
/docs/img/mod_2.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_2.zh.png
--------------------------------------------------------------------------------
/docs/img/mod_3.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_3.en.png
--------------------------------------------------------------------------------
/docs/img/mod_3.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/mod_3.zh.png
--------------------------------------------------------------------------------
/docs/img/Stoneshard.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/Stoneshard.ico
--------------------------------------------------------------------------------
/docs/img/class_0.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/class_0.en.png
--------------------------------------------------------------------------------
/docs/img/class_0.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/class_0.zh.png
--------------------------------------------------------------------------------
/docs/img/class_1.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/class_1.en.png
--------------------------------------------------------------------------------
/docs/img/tool_UI.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/tool_UI.en.png
--------------------------------------------------------------------------------
/docs/img/tool_UI2.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/tool_UI2.en.png
--------------------------------------------------------------------------------
/docs/img/tool_UI3.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/tool_UI3.en.png
--------------------------------------------------------------------------------
/docs/img/tool_UI4.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/tool_UI4.en.png
--------------------------------------------------------------------------------
/docs/img/tool_UI5.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/tool_UI5.en.png
--------------------------------------------------------------------------------
/docs/img/tool_UI6.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/tool_UI6.en.png
--------------------------------------------------------------------------------
/docs/img/weapon_0.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/weapon_0.en.png
--------------------------------------------------------------------------------
/docs/img/weapon_0.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/weapon_0.zh.png
--------------------------------------------------------------------------------
/docs/img/weapon_1.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/weapon_1.en.png
--------------------------------------------------------------------------------
/docs/img/weapon_2.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/weapon_2.en.png
--------------------------------------------------------------------------------
/Resources/Mystery Font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Mystery Font.ttf
--------------------------------------------------------------------------------
/Resources/Sprites/icon.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/icon.gif
--------------------------------------------------------------------------------
/Resources/Sprites/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/menu.png
--------------------------------------------------------------------------------
/Resources/Sprites/min.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/min.png
--------------------------------------------------------------------------------
/Resources/Sprites/mod.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/mod.png
--------------------------------------------------------------------------------
/Resources/Sprites/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/open.png
--------------------------------------------------------------------------------
/Resources/Sprites/save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/save.png
--------------------------------------------------------------------------------
/docs/img/compile_0.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/compile_0.en.png
--------------------------------------------------------------------------------
/docs/img/compile_1.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/compile_1.en.png
--------------------------------------------------------------------------------
/ModReference/System.Linq.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/ModReference/System.Linq.dll
--------------------------------------------------------------------------------
/ModReference/netstandard.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/ModReference/netstandard.dll
--------------------------------------------------------------------------------
/Reference/UndertaleModLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Reference/UndertaleModLib.dll
--------------------------------------------------------------------------------
/Resources/Sprites/SSicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/SSicon.png
--------------------------------------------------------------------------------
/Resources/Sprites/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/close.png
--------------------------------------------------------------------------------
/Resources/Sprites/server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/server.png
--------------------------------------------------------------------------------
/Resources/Sprites/source.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/source.png
--------------------------------------------------------------------------------
/docs/img/linux_bottle_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/linux_bottle_1.png
--------------------------------------------------------------------------------
/docs/img/modding_codes.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/modding_codes.en.png
--------------------------------------------------------------------------------
/docs/img/msl_template.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/msl_template.en.png
--------------------------------------------------------------------------------
/ModReference/System.Runtime.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/ModReference/System.Runtime.dll
--------------------------------------------------------------------------------
/Reference/UndertaleModTool.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Reference/UndertaleModTool.dll
--------------------------------------------------------------------------------
/Resources/Sprites/arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/arrow_up.png
--------------------------------------------------------------------------------
/Resources/Sprites/leftPanel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/leftPanel.png
--------------------------------------------------------------------------------
/Resources/Sprites/menu_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/menu_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/menu_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/menu_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/min_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/min_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/min_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/min_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/mod_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/mod_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/mod_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/mod_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/open_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/open_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/open_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/open_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/save_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/save_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/save_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/save_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/settings.png
--------------------------------------------------------------------------------
/Resources/Sprites/splitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/splitter.png
--------------------------------------------------------------------------------
/docs/guides/how-to-play-mod.zh.md:
--------------------------------------------------------------------------------
1 | !!! warning "TODO"
2 |
3 |
{: style="width:50%"}
--------------------------------------------------------------------------------
/Resources/Sprites/ModInfosBG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/ModInfosBG.png
--------------------------------------------------------------------------------
/Resources/Sprites/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/arrow_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/checkbox_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/checkbox_0.png
--------------------------------------------------------------------------------
/Resources/Sprites/checkbox_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/checkbox_1.png
--------------------------------------------------------------------------------
/Resources/Sprites/checkbox_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/checkbox_2.png
--------------------------------------------------------------------------------
/Resources/Sprites/close_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/close_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/close_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/close_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/icon_default.png
--------------------------------------------------------------------------------
/Resources/Sprites/patch_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/patch_icon.png
--------------------------------------------------------------------------------
/Resources/Sprites/refresh_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/refresh_icon.png
--------------------------------------------------------------------------------
/Resources/Sprites/server_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/server_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/server_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/server_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/source_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/source_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/source_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/source_over.png
--------------------------------------------------------------------------------
/docs/img/create_project_0.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/create_project_0.en.png
--------------------------------------------------------------------------------
/docs/img/create_project_0.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/create_project_0.zh.png
--------------------------------------------------------------------------------
/docs/img/create_project_1.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/create_project_1.en.png
--------------------------------------------------------------------------------
/docs/img/create_project_1.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/create_project_1.zh.png
--------------------------------------------------------------------------------
/docs/img/create_project_2.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/create_project_2.en.png
--------------------------------------------------------------------------------
/docs/img/create_project_2.zh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/create_project_2.zh.png
--------------------------------------------------------------------------------
/ModReference/System.Collections.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/ModReference/System.Collections.dll
--------------------------------------------------------------------------------
/ModReference/System.ObjectModel.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/ModReference/System.ObjectModel.dll
--------------------------------------------------------------------------------
/Resources/Sprites/arrow_up_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/arrow_up_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/arrow_up_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/arrow_up_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/enable_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/enable_button.png
--------------------------------------------------------------------------------
/Resources/Sprites/mod_icon_fore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/mod_icon_fore.png
--------------------------------------------------------------------------------
/Resources/Sprites/settings_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/settings_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/settings_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/settings_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/arrow_down_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/arrow_down_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/arrow_down_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/arrow_down_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/settings_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/settings_button.png
--------------------------------------------------------------------------------
/docs/img/msl_template_location.en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/docs/img/msl_template_location.en.png
--------------------------------------------------------------------------------
/Resources/Sprites/enable_button_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/enable_button_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/enable_button_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/enable_button_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/scrollbar_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/scrollbar_vertical.png
--------------------------------------------------------------------------------
/Resources/Sprites/settings_button_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/settings_button_down.png
--------------------------------------------------------------------------------
/Resources/Sprites/settings_button_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/settings_button_over.png
--------------------------------------------------------------------------------
/Resources/Sprites/scrollbar_vertical_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ModShardTeam/ModShardLauncher/HEAD/Resources/Sprites/scrollbar_vertical_over.png
--------------------------------------------------------------------------------
/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/docs/index.zh.md:
--------------------------------------------------------------------------------
1 | # ModShardLauncher Modding Documentation
2 |
3 | 欢迎访问 **ModShardLauncher 文档** !
4 |
5 | !!! info "多种语言"
6 | 本文档提供多种语言版本。
7 | 您可以点击页面顶部的语言按钮更改语言。
8 | 某些页面可能不支持所有语言,请随时提供您的意见!
--------------------------------------------------------------------------------
/Resources/Codes/LoggerModule/o_msl_timer_Step_0.gml:
--------------------------------------------------------------------------------
1 | cumulative_time += delta_time / 1000000;
2 | if (cumulative_time > end_time)
3 | {
4 | if (func != noone)
5 | {
6 | script_execute(func)
7 | }
8 | instance_destroy();
9 | }
--------------------------------------------------------------------------------
/Mods/ModHooks.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ModShardLauncher.Mods
8 | {
9 | public class ModHooks
10 | {
11 | public virtual void OnGameStart(object[] obj) { }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace ModShardLauncher
10 | {
11 | ///
12 | /// Interaction logic for App.xaml
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/docs/index.en.md:
--------------------------------------------------------------------------------
1 | # ModShardLauncher Modding Documentation
2 |
3 | Welcome to the **ModShardLauncher Modding Documentation** !
4 |
5 | !!! info "Multiple languages"
6 | This documentation is available in **multiple languages**.
7 | You can change the language by clicking the **language button** at the **top** of the page.
8 | Some pages may not be available in all languages, so feel free to contribute!
--------------------------------------------------------------------------------
/docs/guides/start-modding-with-vsc.zh.md:
--------------------------------------------------------------------------------
1 | # 使用Visual Studio Code进行开发
2 |
3 | [TOC]
4 |
5 | ## 前言
6 |
7 | 为什么要把这个教程单独拿出来呢? 首先一个原因是考虑到想做mod的各位对于编程可能一无所知, 而下载Visual Studio的步骤与某些编程知识是相关的, 因此可能会造成一些误解或让各位在前期做无用功。
8 |
9 | Visual Studio Code 是作者很喜欢的一款文本编辑器, 因此关于这方面的内容我们都围绕VSCode来讲.
10 |
11 | ## 下载工具
12 |
13 | [在这里下载](https://code.visualstudio.com/)
14 |
15 | 网上也有很多关于下载VSCode的教程, 你可以参考这些教程来进行下载. 基本上一路按继续就可以了.
16 |
17 | ## 下载插件
18 |
19 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature Request
3 | about: Suggest an idea for this project
4 | title: "[ENHANCEMENT] Feature Request"
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | ## **Describe the problem which requires a new feature.**
11 | ...
12 |
13 | ## **Describe the solution you'd like**
14 | ...
15 |
16 | ## **Describe alternatives you've considered if any**
17 | ...
18 |
19 | ## **Additional context**
20 | ...
21 |
--------------------------------------------------------------------------------
/Resources/Codes/LoggerModule/scr_msl_log_save.gml:
--------------------------------------------------------------------------------
1 | function scr_msl_log_save()
2 | {
3 | if (global._msl_log.save_in_progress) return;
4 |
5 | global._msl_log.save_in_progress = true;
6 | var nfile_name = global._msl_log.name + "_" + string(global._msl_log.nfile) + ".txt";
7 | buffer_save_async(global._msl_log.buf, nfile_name, 0, global._msl_log.cur_size);
8 |
9 | global._msl_log.save_in_progress = false;
10 | instance_destroy(global._msl_log.timer);
11 | }
--------------------------------------------------------------------------------
/Resources/Codes/LoggerModule/o_msl_log_Create_0.gml:
--------------------------------------------------------------------------------
1 | size = 1000000
2 | buf = buffer_create(size, buffer_wrap, 1);
3 | cur_size = 0
4 | nfile = 0
5 | save_in_progress = false
6 |
7 | var curr_time = date_current_datetime();
8 | var format_time = string_format(date_get_year(curr_time), 2, 0) + string_format(date_get_month(curr_time), 2, 0) + string_format(date_get_day(curr_time), 2, 0) + "_" + string_format(date_get_hour(curr_time), 2, 0) + string_format(date_get_minute(curr_time), 2, 0);
9 | name = "Logs/msl_log_" + string_replace_all(format_time, " ", "0");
10 |
11 | timer = -4
--------------------------------------------------------------------------------
/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | [assembly: ThemeInfo(
4 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
5 | //(used if a resource is not found in the page,
6 | // or application resource dictionaries)
7 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
8 | //(used if a resource is not found in the page,
9 | // app, or any theme specific resource dictionaries)
10 | )]
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug-report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug Report
3 | about: Create a report to help us improve
4 | title: "[BUG] Bug report"
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | ## **Describe the Bug :**
11 | ...
12 |
13 | ## **Steps To Reproduce :**
14 | ...
15 |
16 | ## **Expected Behavior :**
17 | ...
18 |
19 | ## **Screenshots if applicable :**
20 | _You can directly paste screenshots here, no need for external hosting._
21 | ...
22 |
23 | ---
24 |
25 | ## **Additional Information :**
26 | - Stoneshard Version : **X.X.X.X**
27 | - MSL Version : **X.X.X.X**
28 |
29 | ## **Additional Context :**
30 | _Add any other context about the problem here._
31 | ...
32 |
--------------------------------------------------------------------------------
/.github/workflows/build-test.yml:
--------------------------------------------------------------------------------
1 | name: Build + Test
2 |
3 | on:
4 | workflow_dispatch:
5 | pull_request:
6 | branches: [ main ]
7 | push:
8 | branches: [ main ]
9 |
10 | jobs:
11 | build:
12 |
13 | runs-on: windows-latest
14 |
15 | steps:
16 | - uses: actions/checkout@v4
17 | with:
18 | fetch-depth: 0
19 |
20 | - name: Setup .NET
21 | uses: actions/setup-dotnet@v4
22 | with:
23 | dotnet-version: 6.0.x
24 |
25 | - name: Restore dependencies
26 | run: dotnet restore
27 |
28 | - name: Build
29 | run: dotnet build -c Release --no-restore
30 |
31 | - name: Test
32 | run: dotnet test -c Release --no-build --verbosity normal
33 |
--------------------------------------------------------------------------------
/docs/guides/introduction.zh.md:
--------------------------------------------------------------------------------
1 | # ModShardLauncher
2 |
3 | ## 什么是**ModShardLauncher**?
4 |
5 | **ModShardLauncher**是一个用于给StoneShard(紫色晶石)这款游戏加载mod的工具。
6 |
7 | 在我开发这款工具之前, mod作者们都是使用**UTMT**, 即UndertaleModTool这款工具来开发mod并保存的. 这样开发的难点在于, 作者们只能制作源码mod, 也就是说, 不同的mod不能一起加载, 除非你自己把他们的内容整合到一起. 而且UTMT使用较为繁琐, 并不适合用于开发StoneShard的mod. 一旦作者进行更新, 所有mod将不再适用, 源文件需要重新被编辑和保存.
8 |
9 | 为了解决这些痛苦的问题, 我打算开发一款工具, 也就是**ModShardLauncher**.
10 |
11 | ## **ModShardLauncher**是如何工作的?
12 |
13 | 实际上, **UTMT**是用C#这门语言开发的. 因此, 引用它的源码就可以很方便的读取和保存data.win中的数据. 并且在C#强大的反射功能支持下, mod作者们可以通过该工具内置的打包器将所有mod代码以及贴图打包成 `.sml` 文件, 然后工具内置的读取器可以读取这种格式的文件, 并将其中的数据打包进新的data.win文件. 以达成多mod共存, 便捷开发的目的.
14 |
15 | ## 太棒辣 我现在就想开发一个自己的mod!
16 |
17 | [那就从这里开始吧!](../guides/start-modding.md)
--------------------------------------------------------------------------------
/Controls/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace ModShardLauncher.Controls
17 | {
18 | ///
19 | /// MainPage.xaml 的交互逻辑
20 | ///
21 | public partial class MainPage : UserControl
22 | {
23 | public MainPage()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ModUtils/TableUtils/TableUtils.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Reflection;
4 | using System.Runtime.Serialization;
5 |
6 | namespace ModShardLauncher
7 | {
8 | public partial class Msl
9 | {
10 | private static string? GetEnumMemberValue(this T value)
11 | where T : Enum
12 | {
13 | return typeof(T)
14 | .GetTypeInfo()
15 | .DeclaredMembers
16 | .SingleOrDefault(x => x.Name == value.ToString())?
17 | .GetCustomAttribute(false)?
18 | .Value ?? value.ToString();
19 | }
20 |
21 | // Tables left to do :
22 | // - ai
23 | // - supply / demand if necessary ?
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: ci
2 | on:
3 | workflow_dispatch:
4 | push:
5 | branches:
6 | - master
7 | - main
8 | paths:
9 | - 'docs/**'
10 | permissions:
11 | contents: write
12 | jobs:
13 | deploy:
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v3
17 | with:
18 | fetch-depth: 0
19 | - uses: actions/setup-python@v4
20 | with:
21 | python-version: 3.x
22 | - uses: actions/cache@v2
23 | with:
24 | key: ${{ github.ref }}
25 | path: .cache
26 | - run: pip install mkdocs-material mkdocs-table-reader-plugin mkdocs-glightbox mkdocs-static-i18n[material] mkdocs-git-authors-plugin mkdocs-git-revision-date-plugin
27 | - run: mkdocs gh-deploy --force
28 |
--------------------------------------------------------------------------------
/Controls/LoadingDialog.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Data;
10 | using System.Windows.Documents;
11 | using System.Windows.Input;
12 | using System.Windows.Media;
13 | using System.Windows.Media.Imaging;
14 | using System.Windows.Shapes;
15 | using System.Windows.Shell;
16 |
17 | namespace ModShardLauncher
18 | {
19 | ///
20 | /// LoadingDialog.xaml 的交互逻辑
21 | ///
22 | public partial class LoadingDialog : Window
23 | {
24 | public LoadingDialog()
25 | {
26 | InitializeComponent();
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/ModUtils/TableUtils/Backers.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Serilog;
3 |
4 | namespace ModShardLauncher;
5 |
6 | public partial class Msl
7 | {
8 | public static void InjectTableBackers(string? name = null, string? nickname = null)
9 | {
10 | // Table filename
11 | const string tableName = "gml_GlobalScript_table_backers";
12 |
13 | // Load table if it exists
14 | List table = ThrowIfNull(ModLoader.GetTable(tableName));
15 |
16 | // Prepare line
17 | string newline = $"{name};{nickname};";
18 |
19 | // Add line to table
20 | table.Add(newline);
21 | ModLoader.SetTable(table, tableName);
22 | Log.Information("Injected {0}:{1} into {2} table.", name, nickname, tableName);
23 | }
24 | }
--------------------------------------------------------------------------------
/ModUtils/VariableUtils.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using Serilog;
4 | using UndertaleModLib.Models;
5 |
6 | namespace ModShardLauncher
7 | {
8 | public static partial class Msl
9 | {
10 | public static UndertaleVariable GetVariable(string name)
11 | {
12 | UndertaleVariable variable = ModLoader.Data.Variables.First(t => t.Name?.Content == name);
13 | Log.Information("Found variable: {0}", variable);
14 |
15 | return variable;
16 | }
17 | public static UndertaleString GetString(string name)
18 | {
19 | UndertaleString variable = ModLoader.Data.Strings.First(t => t.Content == name);
20 | Log.Information("Found string: {0}", variable);
21 |
22 | return variable;
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/Controls/ModSourceInfos.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Windows;
4 | using System.Windows.Controls;
5 | using Serilog;
6 |
7 | namespace ModShardLauncher.Controls
8 | {
9 | ///
10 | /// ModSourceInfos.xaml 的交互逻辑
11 | ///
12 | public partial class ModSourceInfos : UserControl
13 | {
14 | public static ModSourceInfos Instance;
15 | public List ModSources { get; set; } = new();
16 | public ModSourceInfos()
17 | {
18 | InitializeComponent();
19 | Instance = this;
20 | }
21 | private async void Open_Click(object sender, EventArgs e)
22 | {
23 | await DataLoader.DoOpenDialog();
24 | Main.Instance.Refresh();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/future_workflow.md:
--------------------------------------------------------------------------------
1 | # RELEASE RECIPE
2 |
3 | - `git pull` in main repo
4 | - Edit version in ModShardLauncher.csproj
5 | - `git tag vX.XX.X.X`
6 | - `git push origin vX.XX.X.X` last modification
7 | - `git log` to check for properly tagged commit
8 | - `git pull` for safety
9 | - dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:IncludeAllContentForSelfExtract=true /p:PublishReadyToRun=true --self-contained
10 | - locate `publish` folder in `bin/release/net6.0-windows\win-x64\`
11 | - Move required dlls (everything in `ModReference` + `Reference` folders) in the folder
12 | - Run `ModShardLauncher.exe` once
13 | - Verify there is no unexpected file / folder / mods
14 | - Archive to msl.zip
15 | - Test in sandbox environment (no need to install .NET, use a vanilla.win + a mod you **__KNOW__** works) and check proper injection with UTMTCE
16 | - Add archive to release
17 | - Publish release
--------------------------------------------------------------------------------
/FilePacker.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using Serilog;
4 | using System.Diagnostics;
5 | using ModShardPackerReference;
6 |
7 | namespace ModShardLauncher
8 | {
9 | public static class UtilsPacker
10 | {
11 | ///
12 | /// Pack a mod located in using the packing method from .
13 | ///
14 | ///
15 | ///
16 | public static void Pack(string path)
17 | {
18 | FilePacker.Pack(
19 | null,
20 | path,
21 | ModLoader.ModPath,
22 | path,
23 | Main.Instance.mslVersion,
24 | new Type[2] {typeof(ModShardLauncher.Mods.Mod), typeof(UndertaleModLib.Models.UndertaleCode)}
25 | );
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Controls/Settings.xaml.cs:
--------------------------------------------------------------------------------
1 | using ModShardLauncher.Controls;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Controls.Primitives;
10 |
11 | namespace ModShardLauncher.Controls
12 | {
13 | ///
14 | /// Settings.xaml 的交互逻辑
15 | ///
16 | public partial class Settings : UserControl
17 | {
18 | public Settings()
19 | {
20 | InitializeComponent();
21 | }
22 | public List