It does not appear at all
Is there ameta.json? A folder with only main.js is treated as a legacy expansion. A folder with neither is ignored.
Is the app looking where you think? Expansions live in Documents/LodeMC/LDStudio/Expansions/ (~/.local/share/... on Linux). A folder copied while the app is running is picked up within a second or two.
Manifest errors
sdkVersion range excludes this app. Widen it, or update the app.
Key errors
meta.json.
SECRETS_API_KEY. See Publishing.
Import errors
sdk.project for project files, or import the file into your expansion.
Runtime errors
Editor complaints
"Cannot find module 'sdk'" or "'./x.module.css'"
"Cannot find module 'sdk'" or "'./x.module.css'"
The
.ldstudio folder is missing or your tsconfig.json does not include it. Load the expansion once in the app to regenerate it. If you wrote your own tsconfig.json, it must name the files explicitly, because TypeScript’s include globs skip dot-folders:tsconfig.json
JSX errors about JSX.IntrinsicElements
JSX errors about JSX.IntrinsicElements
The React shim is missing. Same fix, or install
@types/react in the expansion folder.Changes not picked up
Changes not picked up
VS Code caches aggressively; run TypeScript: Restart TS Server.
Behaviour that surprises people
State disappears on reload. Module-level variables are re-run. UseuseProjectState / useGlobalState, or write to the project.
Two intervals running. Not possible with setInterval inside the expansion: timers are cleared on unload. If you see it, something escaped the SDK.
Styles leak into the app. Imported CSS is scoped; sdk.theme.addStyle is deliberately not. Use the import for your own UI.
An event fires twice. You registered the listener from a module that re-runs on reload and kept an old one alive outside the SDK. Let sdk.events.on own it.
Getting more detail
The Expansions page has a logs button per expansion with everything your expansion printed, plus its errors.sdk.log.debug lines are there too.