msw-packages
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMSW Packages — Official Prebuilt Catalog
MSW Packages —— 官方预构建包目录
MSW-Git/MSWPackagesThis skill is a thin index. Per-package details (README, source, integration steps) are fetched on demand from GitHub rather than mirrored here, so the catalog stays current automatically.
MSW-Git/MSWPackages此技能仅作为轻量索引。各包的详细信息(README、源码、集成步骤)会按需从GitHub获取,而非在此镜像,因此目录会自动保持最新。
Decision Flow
决策流程
User asks for feature X
│
▼
Match X against Feature → Package table below
│
┌────┴─────┐
│ Match │ No match
▼ ▼
Scope-First check Proceed with normal MSW
(see section below): authoring (msw-scripting,
system vs UI-only? msw-search, etc.)
│
┌────┴───────────┐
│ system │ UI-only
▼ ▼
Fetch package Route to msw-ui-system
README (+ references/templates/, skip the rest of this skill)
│
▼
Summarize for user
"Found <package>. README says: <summary>.
Integrate this, or build from scratch?"
│
┌────┴─────┐
│ │
▼ ▼
Integrate Build from scratch
│
▼
Run Integration Workflow (below)Default posture: ask the user before integrating. Do not auto-install without confirmation — packages can collide with existing UUIDs, sprite RUIDs, or naming conventions in the user's project.
用户请求功能X
│
▼
将X与下方的「功能→包」对照表进行匹配
│
┌────┴─────┐
│ 匹配到 │ 未匹配到
▼ ▼
优先范围检查 继续常规MSW开发
(见下方章节): (msw-scripting、
完整系统vs仅UI? msw-search等)
│
┌────┴───────────┐
│ 完整系统 │ 仅UI
▼ ▼
获取包的README 路由到msw-ui-system
(+ references/templates/,跳过此技能的其余步骤)
│
▼
向用户总结:
「找到<package>包。README说明:<摘要>。
是集成此包,还是从零构建?」
│
┌────┴─────┐
│ │
▼ ▼
集成包 从零构建
│
▼
执行下方的集成流程默认原则:集成前需询问用户。请勿自动安装——包可能与用户项目中已有的UUID、精灵RUID或命名规则冲突。
Feature → Package Mapping
功能→包映射表
When a user request mentions one of these features (Korean or English), look up the matching package and fetch its README first.
| Feature domain | Package | GitHub path |
|---|---|---|
| Toast / notification / banner | | link |
| Ranking / leaderboard / scoreboard (basic) | | link |
| Ranking / leaderboard (advanced — multi-board, season) | | link |
| Inventory / item bag / equipment | | link |
| Shop / store / purchase | | link |
| World shop / premium shop | | link |
| Mail / mailbox | | link |
| Quest / achievement / mission | | link |
| Dialog / NPC conversation (typewriter style) | | link |
| Key binding / virtual button | | link |
| Game event broadcast / pub-sub | | link |
| Player data / save / profile | | link |
| Collection / gallery / dex | | link |
| Slash command / chat command | | link |
| Virtualized scroll list / large list | | link |
| Drop table / loot probability | | link |
| Global config / shared settings | | link |
| GM / system announcement | | link |
| Game resource (currency, energy, refillable) | | link |
| UI components and prefab models | | link |
If multiple packages plausibly match (e.g. "ranking" → basic vs advanced), fetch both READMEs and let the user choose based on the comparison.
当用户请求提及以下任一功能(韩文或英文)时,请先查找匹配的包并获取其README。
| 功能领域 | 包名称 | GitHub路径 |
|---|---|---|
| 提示框/通知/横幅 | | 链接 |
| 排行榜(基础版) | | 链接 |
| 排行榜(进阶版——多榜单、赛季) | | 链接 |
| 背包/物品栏/装备 | | 链接 |
| 商店/商城/购买 | | 链接 |
| 世界商店/ premium商店 | | 链接 |
| 邮件/邮箱 | | 链接 |
| 任务/成就/使命 | | 链接 |
| 对话/NPC交互(打字机风格) | | 链接 |
| 按键绑定/虚拟按钮 | | 链接 |
| 游戏事件广播/发布订阅 | | 链接 |
| 玩家数据/存档/档案 | | 链接 |
| 收集/图鉴/ dex | | 链接 |
| 斜杠命令/聊天命令 | | 链接 |
| 虚拟滚动列表/大数据列表 | | 链接 |
| 掉落表/ loot概率 | | 链接 |
| 全局配置/共享设置 | | 链接 |
| GM/系统公告 | | 链接 |
| 游戏资源(货币、能量、可补充资源) | | 链接 |
| UI组件与预制模型 | | 链接 |
如果多个包可能匹配(例如「排行榜」→基础版vs进阶版),请获取两个包的README并让用户根据对比结果选择。
Scope-First Routing (UI vs System)
优先范围路由(UI vs 完整系统)
When a request matches a catalog keyword but it is unclear whether the user wants the full system (data + logic + UI) or just the UI screen, ask ONE short question BEFORE fetching package files. Use the matching row from the table below.
| Request keyword | Question to ask |
|---|---|
| Ranking / leaderboard | "Do you need score saving and rank calculation too, or just the leaderboard screen?" |
| Inventory / bag | "Do you need add/remove item logic too, or just the slot screen?" |
| Shop / store | "Do you need currency deduction and purchase handling too, or just the shop screen?" |
| Mail / mailbox | "Do you need send/receive logic too, or just the mailbox screen?" |
| Quest / achievement | "Do you need progress tracking and rewards too, or just the quest list screen?" |
| Toast / notification | "Do you need the queueing/timing system too, or just the message popup?" |
| Dialog / NPC conversation | "Do you need branching dialogue and state too, or just the dialog window?" |
| Collection / dex | "Do you need collection state and progress tracking too, or just the dex screen?" |
| Player data / save | "Do you need persistence and load/save flow too, or just a profile screen?" |
| Anything else / unclear | "Do you need the working feature, or just the UI screen?" |
当请求匹配目录关键词,但无法明确用户需要完整系统(数据+逻辑+UI)还是仅UI界面时,请在获取包文件前先问一个简短问题。使用下表中的对应问题。
| 请求关键词 | 询问问题 |
|---|---|
| 排行榜 | "你需要分数保存和排名计算功能,还是仅需要排行榜界面?" |
| 背包/物品栏 | "你需要物品增删逻辑,还是仅需要物品槽界面?" |
| 商店/商城 | "你需要货币扣除和购买处理逻辑,还是仅需要商店界面?" |
| 邮件/邮箱 | "你需要收发逻辑,还是仅需要邮箱界面?" |
| 任务/成就 | "你需要进度追踪和奖励发放逻辑,还是仅需要任务列表界面?" |
| 提示框/通知 | "你需要队列/计时系统,还是仅需要消息弹窗?" |
| 对话/NPC交互 | "你需要分支对话和状态管理,还是仅需要对话窗口?" |
| 收集/图鉴 | "你需要收集状态和进度追踪,还是仅需要图鉴界面?" |
| 玩家数据/存档 | "你需要持久化和加载/存档流程,还是仅需要档案界面?" |
| 其他/不明确 | "你需要可用的完整功能,还是仅需要UI界面?" |
Routing rule
路由规则
Map the user's answer to a destination:
| User says... | Route to |
|---|---|
| "feature", "system", "logic", "save", "calculate", "handle", "process" | Stay here ( |
| "screen", "UI", "look", "visual", "just the layout", "show only" | |
| Low-level question (anchor, component property, enum) | |
根据用户的回答路由到对应目的地:
| 用户回答包含... | 路由至 |
|---|---|
| "功能"、"系统"、"逻辑"、"保存"、"计算"、"处理"、"流程" | 留在当前技能( |
| "界面"、"UI"、"外观"、"视觉"、"仅布局"、"仅展示" | |
| 底层问题(锚点、组件属性、枚举) | |
When to skip the question
何时跳过询问
Skip the Scope-First question and route directly when the user's request is already explicit:
- "from scratch" / "just the UI" / "only the screen" → skill (+
msw-ui-system)references/templates/ - "full system" / "with backend" / "with data" / "save score" → stay in
msw-packages - Pure low-level UI question (e.g. "how do I set anchor?") → skill
msw-ui-system
Only ask when the keyword matches a catalog package AND the scope is genuinely ambiguous.
当用户请求已经明确时,跳过优先范围询问直接路由:
- 包含「从零构建」/「仅UI」/「仅界面」→ 技能(+
msw-ui-system)references/templates/ - 包含「完整系统」/「带后端」/「带数据」/「保存分数」→ 留在
msw-packages - 纯底层UI问题(例如「如何设置锚点?」)→ 技能
msw-ui-system
仅当关键词匹配目录包且范围确实不明确时才询问。
Fetch Protocol
获取协议
When a candidate package is identified:
当确定候选包后:
1. README first (always)
1. 优先获取README(始终执行)
https://raw.githubusercontent.com/MSW-Git/MSWPackages/main/<package-name>/README.mdUse to pull this. Summarize the public API and use cases for the user before going further.
WebFetchhttps://raw.githubusercontent.com/MSW-Git/MSWPackages/main/<package-name>/README.md使用拉取此文件。在进一步操作前,向用户总结包的公开API和使用场景。
WebFetch2. File tree (when integration is likely)
2. 获取文件树(当可能进行集成时)
Use the GitHub tree API and grep for the package path:
https://api.github.com/repos/MSW-Git/MSWPackages/git/trees/main?recursive=1The response is large and may be truncated. Grep the response for to extract the file list. If truncated, fall back to per-directory tree calls:
<package-name>/https://api.github.com/repos/MSW-Git/MSWPackages/contents/<package-name>/MyDeskStandard package layout:
<package-name>/README.md- — installer manifest (treat as opaque)
<package-name>/<PackageName>.modpackage - — core scripts/UI to copy
<package-name>/MyDesk/<PackageName>/Core/ - — example usage (do not copy unless requested)
<package-name>/MyDesk/<PackageName>/Sample/ - — shared utilities (some packages)
<package-name>/MyDesk/Util/
使用GitHub树API并筛选包路径:
https://api.github.com/repos/MSW-Git/MSWPackages/git/trees/main?recursive=1响应内容较大可能被截断。在响应中筛选以提取文件列表。如果被截断,回退到按目录调用树API:
<package-name>/https://api.github.com/repos/MSW-Git/MSWPackages/contents/<package-name>/MyDesk标准包结构:
<package-name>/README.md- ——安装器清单(视为黑盒)
<package-name>/<PackageName>.modpackage - ——需复制的核心脚本/UI
<package-name>/MyDesk/<PackageName>/Core/ - ——示例用法(除非用户要求,否则不要复制)
<package-name>/MyDesk/<PackageName>/Sample/ - ——共享工具类(部分包包含)
<package-name>/MyDesk/Util/
3. Raw file fetch (per-file as needed)
3. 按需获取原始文件
https://raw.githubusercontent.com/MSW-Git/MSWPackages/main/<path>Substitute with for any browsing URL.
github.com/.../blob/main/...raw.githubusercontent.com/.../main/...https://raw.githubusercontent.com/MSW-Git/MSWPackages/main/<path>将任何浏览URL中的替换为即可获取原始文件。
github.com/.../blob/main/...raw.githubusercontent.com/.../main/...Integration Workflow
集成流程
After the user confirms integration:
-
Map files into project layout:
- →
MyDesk/<PackageName>/Core/*.mluaRootDesk/MyDesk/<PackageName>/ - →
MyDesk/<PackageName>/Core/*.uiui/ - →
MyDesk/<PackageName>/Core/*.modelRootDesk/MyDesk/Models/<Category>/ - →
MyDesk/Util/*(reuse if already present)RootDesk/MyDesk/Util/
-
Check UUID collisions: every entityand
idin incomingEntryKey/.uifiles must not already exist in the user's project..modelthe workspace for collisions before writing. Regenerate any colliding UUID with a fresh hex UUID.grep -
Check sprite RUID dependencies: scan the package files for hard-coded RUIDs. They reference MSW community resources — usually fine, but verify withif any look suspicious or you need a substitute.
msw-search -
Resolve cross-package dependencies: some packages depend on others (e.g. ranking may build on player-data). Read the package's README and source headers — install transitive packages first, then this one.
-
Apply with the standard MSW workflow:→
stop→refresh_workspace. Verify in build logs and runtime logs.play -
Wire into user's code: most packages expose aLogic singleton. Call its API from the user's existing scripts (e.g.
_<PackageName>)._MaplestoryToast:Show(...)
用户确认集成后:
-
映射文件至项目结构:
- →
MyDesk/<PackageName>/Core/*.mluaRootDesk/MyDesk/<PackageName>/ - →
MyDesk/<PackageName>/Core/*.uiui/ - →
MyDesk/<PackageName>/Core/*.modelRootDesk/MyDesk/Models/<Category>/ - →
MyDesk/Util/*(如果已存在则复用)RootDesk/MyDesk/Util/
-
检查UUID冲突:传入的/
.ui文件中的每个实体.model和id必须不存在于用户项目中。写入前先在工作区中搜索冲突。对冲突的UUID重新生成新的十六进制UUID。EntryKey -
检查精灵RUID依赖:扫描包文件中的硬编码RUID。它们引用MSW社区资源——通常可以正常使用,但如果看起来可疑或需要替换,请使用验证。
msw-search -
解决跨包依赖:部分包依赖其他包(例如排行榜可能基于玩家数据包构建)。阅读包的README和源码头部——先安装依赖包,再安装当前包。
-
按标准MSW流程应用:→
stop→refresh_workspace。在构建日志和运行时日志中验证。play -
接入用户代码:大多数包会暴露逻辑单例。从用户现有脚本中调用其API(例如
_<PackageName>)。_MaplestoryToast:Show(...)
Pitfalls
注意事项
- files are NOT auto-installer scripts in this workflow — they are Maker-editor metadata. Manual file copy is what actually integrates the package.
.modpackage - Hardcoded sprite RUIDs in samples: package samples often reference specific RUIDs for decoration sprites. These work but the user may want to substitute. Note this when summarizing.
- UI files use UIGroup root entities — when copying, route through (
msw-ui-systemto inspect, builder API to mutate; design rules — UIGroup root configuration, anchor mode pitfalls — live in the same skill). Do not hand-edit rawUIBuilder.read/loadJSON..ui - content is illustrative, not production — do not copy
Sample/files unless the user explicitly asks. Sample scripts often bind to keyboard shortcuts that conflict with the user's controls.Sample/ - No package replaces understanding of mlua — packages provide pre-built features but the user still needs knowledge to extend them.
msw-scripting - Don't bulk-install multiple packages speculatively — each integration adds files and surface area. Install one feature at a time, validate, then move on.
- 此流程中文件不是自动安装脚本——它们是Maker编辑器元数据。实际集成需手动复制文件。
.modpackage - 示例中的硬编码精灵RUID:包的示例通常引用特定RUID作为装饰精灵。这些可以正常使用,但用户可能希望替换。总结时需注意这一点。
- UI文件使用UIGroup根实体——复制时需通过(使用
msw-ui-system检查,使用构建器API修改;设计规则——UIGroup根配置、锚点模式注意事项——均在此技能中)。请勿手动编辑原始UIBuilder.read/loadJSON。.ui - 内容仅作演示,非生产可用——除非用户明确要求,否则不要复制
Sample/文件。示例脚本通常绑定到与用户控件冲突的键盘快捷键。Sample/ - 包无法替代对mlua的理解——包提供预构建功能,但用户仍需掌握知识以扩展功能。
msw-scripting - 请勿批量安装多个包——每个集成都会增加文件和功能范围。一次安装一个功能,验证后再进行下一步。
When the user has already chosen "build from scratch"
当用户选择「从零构建」时
Skip integration entirely. Proceed with normal MSW authoring (, , etc.). Do not silently keep nudging toward packages.
msw-scriptingmsw-search完全跳过集成。继续常规MSW开发(、等)。请勿反复暗示使用包。
msw-scriptingmsw-searchWhen MSW-Git/MSWPackages
is unreachable
MSW-Git/MSWPackages当MSW-Git/MSWPackages
无法访问时
MSW-Git/MSWPackages- WebFetch returns an error or 404 → confirm the URL hasn't changed.
- Sandboxed network may block direct to
curl— preferapi.github.comfor raw and HTML URLs.WebFetch - If everything fails, fall back to building from scratch and tell the user the package is currently inaccessible.
- WebFetch返回错误或404 → 确认URL未更改。
- 沙箱网络可能阻止直接访问
curl→ 优先使用api.github.com获取原始URL和HTML URL。WebFetch - 如果所有方法都失败,回退到从零构建并告知用户当前包无法访问。
Cross-references
交叉引用
- — workspace, file paths, MCP tools, coordinate systems.
msw-general - —
msw-scriptingsyntax for hooking package APIs into game logic..mlua - — sprite/animation/sound RUID lookup when substituting package-bundled resources.
msw-search
- ——工作区、文件路径、MCP工具、坐标系。
msw-general - ——将包API接入游戏逻辑的
msw-scripting语法。.mlua - ——替换包捆绑资源时的精灵/动画/音效RUID查找。
msw-search