msw-sprite-ruid
Helps developers assign images and animations to game objects in MapleStory Worlds.
Installation
Paste this into Claude Code, Cursor, or any agent that can run commands.
SKILL.mdShow the author's original SKILL.md
---
name: msw-sprite-ruid
description: "SpriteRendererComponent.SpriteRUID (world) and SpriteGUIRendererComponent.ImageRUID (UI) — native RUID type support (sprite / animationclip direct playback), thumbnail:// prefix for rendering avataritem / skeleton / animationclip as static thumbnail image, avatar item icon in inventory / shop / UI slot. Use when: assigning any RUID to a sprite renderer component, displaying an avatar item or resource as a thumbnail or icon, using animationclip directly in a renderer, rendering inventory item icons, displaying a thumbnail image in a world entity. Keywords: SpriteRUID, ImageRUID, thumbnail://, animationclip, RUID apply, RUID assign, thumbnail, item icon, sprite RUID, RUID to renderer"
---
# MSW Sprite RUID
Rules for assigning a RUID to `SpriteRendererComponent.SpriteRUID` (world) or
`SpriteGUIRendererComponent.ImageRUID` (UI).
---
## Native type support
Both components accept a `sprite` or `animationclip` RUID directly — no extra
animator component required.
| Component | Property | Value form (runtime `.mlua`) | Native RUID types |
|---|---|---|---|
| `SpriteRendererComponent` (world) | `SpriteRUID` | plain string | `sprite`, `animationclip` |
| `SpriteGUIRendererComponent` (UI) | `ImageRUID` | `DataRef("...")` | `sprite`, `animationclip` |
`ImageRUID` is a `DataRef`: in runtime `.mlua`, assign `DataRef(ruid)`.
Use `{ DataId: ruid }` only in `.ui` / `.model` JSON or builder patch data.
`SpriteRUID` remains a plain string.
```lua
-- World: sprite or animationclip RUID both work
self.Entity.SpriteRendererComponent.SpriteRUID = ruid
-- UI: sprite or animationclip RUID both work
self.Entity.SpriteGUIRendererComponent.ImageRUID = DataRef(ruid)
```
A `skeleton` / `avataritem` RUID assigned without the `thumbnail://` prefix
**fails silently** (no error, nothing renders).
---
## animationclip: single animation vs multi-state
- **Single looping animation** (background deco, idle effect, prop): set `SpriteRUID`
or `ImageRUID` directly to the `animationclip` RUID.
- **Multi-state** (stand / move / attack / hit / die): use `StateAnimationComponent`
\+ `ActionSheet`. See [`msw-general/references/monster.md`](../msw-general/references/monster.md).
---
## `thumbnail://` prefix — static thumbnail from any resource
Prepend `thumbnail://` to `SpriteRUID` or `ImageRUID` to render a **static
thumbnail image** from any resource — useful for icons, preview images, and item
thumbnails.
thumbnail://<32-char hex RUID>
Accepted types: `sprite` · `animationclip` · `skeleton` · `avataritem`
```lua
-- World thumbnail (any resource type)
self.Entity.SpriteRendererComponent.SpriteRUID = "thumbnail://" .. anyRuid
-- UI thumbnail (any resource type)
self.Entity.SpriteGUIRendererComponent.ImageRUID = DataRef("thumbnail://" .. anyRuid)
```
### Primary use case: avataritem icons
`avataritem` RUIDs cannot render without `thumbnail://`. With the prefix they
become item icons for inventory slots, shop listings, and equip previews.
```lua
slotEntity.SpriteGUIRendererComponent.ImageRUID = DataRef("thumbnail://" .. avatarItemRuid)
```
Search avatar item RUIDs with the `msw-search` skill (`searchAvatarItems`).
---
## Common pitfalls
- `skeleton` / `avataritem` directly into `SpriteRUID` / `ImageRUID` without prefix → silently invisible.
- `thumbnail://` = **static** image only. For live animation, assign the `animationclip` RUID directly (no prefix).
- Runtime `.mlua` uses `ImageRUID = DataRef("...")`; the `{ "DataId": "..." }` object form is `.ui` / `.model` JSON only (the prefix goes **inside** `DataId`, not a separate field). Do not use the table form in runtime code — the LSP rejects it as a `DataRef` type mismatch.
- `CostumeManagerComponent.Custom*Equip`, `StateAnimationComponent.ActionSheet`, and `SkeletonRendererComponent.SkeletonRUID` do **not** accept `thumbnail://`.
- Do **not** prepend `thumbnail://` to a RUID that was already retrieved *as* a thumbnail or icon image from `msw-search`. The prefix converts a source resource into its thumbnail — applying it to an already-thumbnail sprite is logically redundant. If the search query targeted an icon / thumbnail image and returned a `sprite` RUID, assign that RUID directly without any prefix.
- To **search** for RUIDs use the `msw-search` skill — `searchAvatarItems` for avatar items; `searchResources` for everything else.
Mirrored from the author's public source. Install counts from the open skills registry.