MSW Scripting skill for Claude Code: write and debug .mlua scripts for MapleStory Worlds
A MapleStory Worlds skill that makes Claude write, lint, refresh and playtest .mlua scripts the way MSW expects.
- Installs
- 10.2K
- on skills.sh
- Stars
- 38
- on GitHub
- Files
- 2
- besides SKILL.md
- Updated
- Oct 2026
- last repo commit
msw-scripting makes Claude write MapleStory Worlds scripts in the mlua language. It must look for an existing script first, put new ones in a feature folder under RootDesk/MyDesk, check API names in the .d.mlua files before using them, and refresh Maker after every change. A lint hook runs after each .mlua edit.
It also defines a playtest loop: read build logs, play, read runtime logs, stop and fix. "No errors" is not a pass; Claude must show log lines proving the logic ran. It depends on msw-general for MCP tools and builders.
Good for
- MapleStory Worlds creators writing .mlua components, logic and events
- Developers who know Lua or Unity and keep hitting MSW-specific errors
- Teams who want a build-log, play, logs and fix loop with proof the logic ran
Install msw-scripting
Claude Code
- 1
Copy this prompt.
Install the msw-scripting skill in Claude Code. Run this command: npx skills add https://github.com/msw-git/msw-ai-coding-plugins-official --skill msw-scripting --skill msw-general --skill msw-search Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
The plugin route installs msw-maker-base-skill: 13 skills (counted from the git tree) and hooks (6 hook events backed by 12 Node scripts, per hooks.json and the git tree). Read the permissions section first. The skills CLI route copies only the skill folders named, without the hooks. SKILL.md for msw-general says every other MSW skill depends on it, so it is always in the list, plus msw-search which this skill sends you to. The skills also call two MCP servers, msw-maker-mcp and msw-mcp. SKILL.md points to the official setup page for wiring them and the API key: https://maplestoryworlds-creators.nexon.com/ko/docs?postId=1368 The default shown is the skills CLI route, which does not add the hooks.
Built from the package data we hold. Not yet tested by us. Source.
What's in the skill
When it loads
Authoring MSW scripts (.mlua) plus integrated playtest and debugging. Covers mlua syntax, annotations (@Component/@Logic/@ExecSpace/@Sync), lifecycle, exec spaces, property sync, event system, file workflow, build-log inspection, error classification, and the test/debug loop. Keywords: script, mlua, lua, Component, Logic, annotation, ExecSpace, Sync, event, play, test, debug, lifecycle.
Sections in SKILL.md
- 1. Core Principles (must follow)
- 1.1 Existing Script First
- 1.2 Folder Structure for New Scripts — Never Dump Files Flat
- 1.3 Never Guess APIs — Verify Before Writing
- 1.4 Lint (LSP diagnostics)
- 1.5 .codeblock & Refresh
- 1.6 MSW ≠ Unity — Do Not Reason From Intuition
- 1.7 Builder Protocol Preflight — MUST
- 1.8 Method Documentation Comments — Inside the Body
- 2. Paths and File Roles
- 3. Script Types and Declarations
- 3.1 Component scripts (@Component)
- 3.2 Logic scripts (@Logic)
- 3.3 Extend scripts
- 3.4 Other script types
- 4. mlua Language Extensions (vs. plain Lua)
Key facts
- Installs on skills.sh
- 10,228 as of Nov 2, 2026
- What is inside
- 3 files including SKILL.md: references/datastorage.md and references/verify-checklist.md (git tree)
- Last commit to the repo
- Oct 6, 2026
What it includes
Existing script first, feature folders, no guessed APIs
Claude searches RootDesk/MyDesk before creating a script, avoids flat catch-all folders, and reads Environment/NativeScripts .d.mlua files for every API. SKILL.md says MSW is not Unity.
Try: “Add a double-jump component to my player.”
Write ·
Core principles@Component, @Logic, extend scripts and mlua syntax
Covers declarations, lifecycle methods, and the differences from plain Lua.
Write ·
Script types and language@ExecSpace, @Sync, SyncTable and OnSyncProperty
Explains server and client code, reserved parameter names, senderUserId checks and the LEA-3014 signature mismatch on overrides.
Write ·
Execution space and syncStatic and dynamic subscriptions, CustomEvent
Covers @EventSender handlers, ConnectEvent and DisconnectEvent, and world versus UI input events.
Write ·
Events and RPCSearch, verify spec, pick path, write, lint, refresh, test
Seven steps. Deleting or renaming a script also needs a refresh and a clean-up of references in .model and .map files.
Runs code ·
Authoring workflowmlua-diagnose hook, then Maker MCP refresh
The plugin hook runs diagnostics after each .mlua change. Claude then calls refresh, which needs edit mode, so it stops play first.
Runs code ·
Lint and refreshedit, refresh, build logs, play, logs, stop, fix
Prefers one maker_execute_script probe over long input chains and classifies errors with a table.
Runs code ·
Playtest and debug loopPASS or FAIL with [VRF] log evidence
Uses references/verify-checklist.md once per turn: runtime, code review, log evidence. SKILL.md says "No errors" is not a pass.
Read ·
Final verification
From the official docs
Permissions
Medium risk
This skill writes and deletes scripts in your MapleStory Worlds workspace and runs your game through MCP, and the plugin route adds hooks. Use version control and read the hook findings before installing the plugin.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It writes and deletes script files
SKILL.md says deleting or renaming a script also needs a refresh and clean-up of references in .model and .map files. Review each change in version control. github.com
The plugin runs 9 hook scripts on 6 events
hooks.json registers 9 hook scripts on 6 events. SessionStart: mlua-session-start.cjs starts the mlua LSP daemon in the background when it finds a RootDesk folder, and inject-agents-md.cjs (next item). UserPromptSubmit: skill-router-reminder.cjs adds the same fixed routing reminder to every prompt. PreToolUse: skill-read-guard.cjs refuses Bash reads such as cat, head or grep on the plugin's skill .md files, and structured-file-guard.cjs refuses reads, edits and shell commands on .model and .ui files. PostToolUse on Edit, Write and MultiEdit: mlua-diagnose-post-tool-use.cjs runs the mlua checker on edited .mlua files and returns a block decision with the errors when it finds any, and a second hook calls the msw-maker-mcp tool maker_refresh_workspace. PostToolUse on Read and Skill, and the InstructionsLoaded event: skill-log.cjs logs skill reads to .mswai/logs/skill.log. PostToolUse on every tool: mcp-log.cjs (below). SessionEnd: mlua-session-end.cjs stops the LSP daemon. Use the skills CLI route in the install box if you do not want hooks. github.com
The plugin writes AGENTS.md and edits CLAUDE.md
inject-agents-md.cjs copies its AGENTS.md to your project root, replacing the file if the content differs, and adds an @AGENTS.md line at the top of CLAUDE.md. Back up an existing AGENTS.md first. github.com
The plugin runs a downloaded package with npx -y
The mlua checks start a background daemon at session start and run again after each .mlua edit. resolve-cmd.cjs looks first for a local copy (env override, the workspace .mswai/runtime folder, the ai-cli vendored copy, mlua-lsp on PATH). If none is found and npx exists, it runs npx -y @maplestoryworlds/mlua-lsp@1.1.4, which downloads that package from the npm registry. github.com
It runs your game and probes it
The playtest loop calls play, maker_execute_script, keyboard_input and mouse_input through MCP. Use a test world. github.com
The plugin logs every MCP call to .mswai/logs
mcp-log.cjs runs after every tool call and, for MCP tools from any server, appends one line to .mswai/logs/mcp.log in your project with the tool name, the full arguments and the full response (cut only if MCP_LOG_MAX_OUTPUT_BYTES is set). lsp.log and skill.log are written to the same folder. Our advice: add .mswai/ to .gitignore, because the log can hold anything your MCP servers return. github.com
The plugin blocks direct reads of .model and .ui files
structured-file-guard.cjs refuses Read, Edit, Write and shell commands on .model and .ui files and tells Claude to use the builders. Setting MSW_STRUCTURED_FILE_GUARD_DISABLE=1 turns it off. github.com
Security advisories
No published security advisories as of Nov 2, 2026.
Technical details
| Turning on read-only | SKILL.md names no read-only setting. |
|---|---|
| Scopes |
|
Questions
What does the msw-scripting skill do?
It makes Claude write MapleStory Worlds .mlua scripts correctly and test them. It covers script types, lifecycle, server and client code, properties, events and a playtest loop.
Does it need other skills?
Yes. It sends you to msw-general for MCP tools, refresh rules and builders, and to msw-search for API details not in the .d.mlua files. The skills CLI route in the install box includes both.
How do I install it?
Use the install box above. The plugin route also installs the lint hook that SKILL.md says runs after every .mlua change; the skills CLI route does not.
Is it official, made by Nexon?
The repo does not say so. It is published by a personal GitHub account named MSW-Git (account type User, no company or description on the profile). The repo name contains "official" and the README calls it the public release source for MSW maker skills, but nothing in the repo names Nexon as the publisher. marketplace.json lists the owner as MSW-Git with an outlook.kr email address. The skills do link to Nexon's MapleStory Worlds creators docs for MCP setup. Our advice: treat it as a third-party toolkit for Nexon's platform unless Nexon confirms otherwise.
Can Claude guess MSW API names?
SKILL.md says no. It tells Claude to read the .d.mlua signature first, use msw-search for semantics, then write, because guessed names fail silently at runtime.
Do I need the MapleStory Worlds MCP servers?
The skills call two MCP servers, msw-maker-mcp for the Maker editor and msw-mcp for search and assets. SKILL.md says to point you to the official setup page when an MCP call fails or an API key is needed: https://maplestoryworlds-creators.nexon.com/ko/docs?postId=1368.
Is msw-scripting safe to use?
It lets Claude create, edit, rename and delete scripts in your workspace and run your game through Maker MCP. The plugin route also adds hooks, so read the permissions section before you install it. Our advice: use version control and check each refresh.
Information
updated Nov 2, 2026
- Repository
- msw-git/msw-ai-coding-plugins-official
- Folder
plugins/msw-maker-base-skill/skills/msw-scripting
Sources
Docs, issue trackers and discussions this page is built from.
Show all 16Hide
- msw-ai-coding-plugins-official README · github.com
- marketplace.json · github.com
- msw-scripting SKILL.md · github.com
- skills.sh listing · skills.sh
- msw-scripting references/verify-checklist.md · github.com
- MSW-Git GitHub profile · github.com
- hooks.json · github.com
- inject-agents-md.cjs · github.com
- resolve-cmd.cjs · github.com
- mcp-log.cjs · github.com
- structured-file-guard.cjs · github.com
- skill-router-reminder.cjs · github.com
- mlua-diagnose-post-tool-use.cjs · github.com
- skill-log.cjs · github.com
- skill-read-guard.cjs · github.com
- mlua-session-start.cjs · github.com