The Inventory
The Inventory is the plugin’s library of textures, flipbooks, mesh frames and saved effects. Insert puts an entry on the selected emitters, or places it in the workspace. Exercise 5 uses the Inventory for the first time. This page lists everything it can do.
What it makes possible:
- Several moving pictures stacked on one mesh. Insert one flipbook after another with no layer marked Active, and each Insert adds a layer.
- A new texture on every stock ParticleEmitter in a Folder. Select the Folder and insert a texture.
- A whole mesh sequence textured in one press. Select the
MeshFramesfolder and insert a flipbook with the same number of frames. - A finished effect carried to another place. Save it with Paths on, and Insert puts it back under the same parent.
- A spritesheet turned into separate frames, for decal layers, Beams, Trail emitters and mesh frames.
- A hand-picked set of entries sent to a teammate as text.
Opening and closing
Section titled “Opening and closing”| To | Do this |
|---|---|
| Open the Inventory | Press ≡, then Inventory. The entry reads bright while the Inventory is open. |
| Close the Inventory | Press Inventory again, or press X in the header. |
| Open or close with a key | Bind the action Toggle Inventory in Shortcuts. The action has no key at the start. |
| Close the Details panel | Press Esc, press X on the Details panel, or click the same thumbnail again. |
The plugin remembers whether the Inventory was open. At the first start the Inventory is closed.
Closing the Inventory also closes the Details panel and the Export / Import dialog.
Drag the header to move the Inventory. The panel can be made wider and taller. The grid then rearranges its columns to fit. Panels describes moving and resizing.
The layout
Section titled “The layout”| Place | Control | What it does |
|---|---|---|
| Header | Title Inventory | Moves the panel when dragged. |
| Header | Slider | Sets the size of the Inventory and the Details panel together, from 0.30x to 1.50x. Starts at 1.00x. The setting is remembered. |
| Header | X | Closes the Inventory. |
| Sidebar | Inventory | Heads the built-in library. Click it to fold or unfold its list: Textures, MeshFlipbooks, Assets. |
| Sidebar | Local Inventory | Heads your own library. Click it to fold or unfold its list: Textures, MeshFlipbooks, Assets, MeshFrames. |
| Sidebar | A category | Click it to show that category in the grid. The category in use reads gold. |
| Sidebar, bottom | Export / Import | Opens the Export / Import dialog. It shows in every category. |
| Top | Search… box | Searches the category in use. A count, such as 128 items, shows at its right end. |
| Top right | Filters ▼ | Opens the list of filters. |
| Under the search box | Static, Flipbook, ★ Favs, Recent | The tabs. Inventory ▸ Textures shows all four. Inventory ▸ MeshFlipbooks shows ★ Favs and Recent. |
| Under the search box | Import Selected, ▼, Upload, Dissect | Shown in the Local Inventory. The table below gives the buttons of each category. |
| Above the grid, right | N selected, Export, Dissect, Delete, Clear | Shown while several entries are selected. See Selecting several entries. |
| Centre | The grid | Shows one thumbnail for each entry. |
| Centre | Loading…, Failed to load, Retry, No items | Shown in place of the thumbnails. See The built-in library. |
| Beside the Inventory | Details panel | Shows one entry. It opens on the right, or on the left where the right has no room. It moves with the Inventory. |
| Beside the Inventory | Status rows | Lines of text that report an Upload or a Dissect. They show to the right of the Inventory, or below it while the Details panel is open. They show only while the Inventory is open. |
The buttons under the search box depend on the category.
| Category | Import Selected | ▼ | Upload | Dissect |
|---|---|---|---|---|
| Inventory, any category | ||||
| Local Inventory ▸ Textures | Yes | Yes | ||
| Local Inventory ▸ MeshFlipbooks | Yes | Yes | Yes | |
| Local Inventory ▸ Assets | Yes | Yes | ||
| Local Inventory ▸ MeshFrames | Yes |
The two libraries
Section titled “The two libraries”Inventory is the built-in library. Local Inventory is your own.
| Category | Found in | An entry is |
|---|---|---|
| Textures | Both libraries | One image with a name. An image may carry a Grid value, which marks it as a spritesheet of N x N frames. |
| MeshFlipbooks | Both libraries | A name and a list of separate images, one image for each frame, in order. |
| Assets | Both libraries | One or more saved Roblox instances with everything inside them. A whole effect can be one entry. |
| MeshFrames | Local Inventory | A saved set of meshes in order, named 1 to N, for the Mesh Frames rows. |
A spritesheet has no category of its own. It is a Texture entry with a Grid value.
The built-in library
Section titled “The built-in library”The built-in library is downloaded when the plugin starts. The download needs an internet connection. Studio must also allow the plugin to make web requests. If Studio asks, allow it.
Built-in entries cannot be renamed, changed or deleted.
| The grid reads | Meaning | Action |
|---|---|---|
| Loading… | The built-in textures are still downloading. | Wait. |
| Failed to load, a line of red text and Retry | The download failed. | Press Retry. The grid reads Retrying… and all three built-in categories are downloaded again. |
| No items | The category is empty, or nothing matches the search and the filters. | Clear the search box and the filters. |
Loading… and Failed to load show in Inventory ▸ Textures only. If the download of Inventory ▸ MeshFlipbooks or Inventory ▸ Assets fails alone, that category reads No items. Switch the plugin off and on, with a connection, to download it again.
If Studio refuses the web request, Output reads [Part-Icles Inventory] HttpService permission needed. Go to Plugins > Manage Plugins and grant permission.
Every Output line on this page prints only while Settings ▸ Console Output is on. See Settings.
The Local Inventory
Section titled “The Local Inventory”Your Local Inventory is saved with the plugin on your computer and follows you from place to place.
| Category | Ways to add an entry |
|---|---|
| Local Inventory ▸ Textures | Upload, Import Selected, Import of text. |
| Local Inventory ▸ MeshFlipbooks | Upload, Import Selected, Dissect, Import of text. |
| Local Inventory ▸ Assets | Import Selected, Import of text. |
| Local Inventory ▸ MeshFrames | Import Selected, Import of text. |
Finding an entry
Section titled “Finding an entry”Thumbnails
Section titled “Thumbnails”| Entry | Thumbnail | Text under it | Badge |
|---|---|---|---|
| Texture without a Grid | The image. | The name. | None |
| Texture with a Grid | The sheet, played frame by frame. | The name. | None |
| MeshFlipbook | Its frames, played in turn. | The name and the frame count, such as Flame (16f). | F |
| Asset | A small 3D view of the saved instances. | The class and the name, such as MeshPart: Shard. A bundle reads Group: Shard (3 items). | A |
| MeshFrames | A small 3D view of frame 1 only. | The name and the frame count, such as Splash (12f). | M |
The badge sits at the bottom left of the thumbnail. A gold ★ at the top left marks a favourite.
| To | Do this |
|---|---|
| Read the full name | Rest the cursor on the thumbnail. A spritesheet adds its grid, such as (4x4). A 3D thumbnail starts to turn. |
| Open the Details panel | Click the thumbnail. A gold outline marks it. |
| Close the Details panel | Click the same thumbnail again. |
| Insert without opening the Details panel | Rest the cursor on the thumbnail and press the round + at its bottom right. The + turns into a green ✓ until the cursor leaves. |
Search
Section titled “Search”Type in the Search… box. The grid updates as you type.
The search ignores capital letters. Every word typed must appear in the entry’s text. The search looks in the category in use only.
| Category | The search reads |
|---|---|
| Inventory ▸ Textures | The name, the asset id, the keywords and the grid. 4x4 finds every sheet of 4 x 4 frames. |
| Inventory ▸ MeshFlipbooks | The name. |
| Inventory ▸ Assets | The name and the class. |
| Local Inventory ▸ Textures | The name and the asset id. |
| Local Inventory ▸ MeshFlipbooks | The name and the frame count. 16f finds every flipbook of 16 frames. |
| Local Inventory ▸ Assets | The name and the class. |
| Local Inventory ▸ MeshFrames | The name and the frame count. |
| Tab | Shown in | The grid shows |
|---|---|---|
| Static | Inventory ▸ Textures | Textures without a Grid. |
| Flipbook | Inventory ▸ Textures | Textures with a Grid: the spritesheets. |
| ★ Favs | Inventory ▸ Textures, Inventory ▸ MeshFlipbooks | The favourites of that category. |
| Recent | Inventory ▸ Textures | The built-in entries inserted most recently, newest first. |
No tab is lit when the plugin starts. The grid then shows the whole category.
Recent holds up to 20 entries and is remembered between sessions. It can hold textures, flipbooks and assets together. Entries of the Local Inventory never appear in it. Recent ignores the search box and the filters.
Filters
Section titled “Filters”Press Filters ▼ to open the list. The list stays open until Filters ▼ is pressed again or the category changes.
| Category | Options |
|---|---|
| Inventory ▸ Textures | All, then one option for each keyword, such as Fire, Smoke and Impact. |
| Inventory ▸ Assets, Local Inventory ▸ Assets | All, then each class found in the category in alphabetical order, then Favourites. |
| Every other category | All, Favourites. |
Several options can be on at once. An option that is on shows a ✓. An entry passes when it matches any keyword or class that is on. Favourites then narrows the result to favourites. All clears every filter. Changing category also clears the filters.
Favourites
Section titled “Favourites”| To | Do this |
|---|---|
| Mark an entry as a favourite | Open its Details panel and press Favourite. The button reads Favourited! in gold. |
| Remove the mark | Press the button again. |
| See the favourites of Inventory ▸ Textures | Click ★ Favs. |
| See the favourites of Inventory ▸ MeshFlipbooks | Click ★ Favs, or press Filters ▼ and click Favourites. |
| See the favourites of any other category | Press Filters ▼ and click Favourites. |
Every kind of entry can be a favourite, built-in or local. Favourites are remembered between sessions.
The Inventory has no sort control. Each category has one fixed order.
| Category | Order |
|---|---|
| Inventory ▸ Textures | Favourites first, then by name from A to Z. |
| Inventory ▸ MeshFlipbooks | By the number in the name. |
| Inventory ▸ Assets | By name from A to Z. Capital letters are ignored. |
| Every category of the Local Inventory | The order in which the entries were added, oldest first. |
Selecting several entries
Section titled “Selecting several entries”| To | Do this |
|---|---|
| Select or deselect one more entry | Hold Shift and click its thumbnail. A selected thumbnail has a gold outline and a tick at its top right. |
| Select a run of entries | Hold Shift and drag across the thumbnails, starting on one that is not selected. |
| Deselect a run of entries | Hold Shift and drag across the thumbnails, starting on one that is selected. |
Multi-select works in every category, built-in included. Changing category clears the selection. Searching and filtering do not clear it.
A strip appears at the top right of the grid while entries are selected.
| Control | What it does |
|---|---|
| N selected | Counts the selected entries. It adds (MAX) when the selection is full. |
| Export | Opens the Export / Import dialog with the text for these entries already in the box. See Export and Import. |
| Dissect | Shown when at least one Texture entry is selected. Opens the Dissect dialog with the ids of those textures already listed. |
| Delete | Removes the selected entries from the Local Inventory at once. See the WARNING under Renaming and deleting. |
| Clear | Deselects everything. It does not bring back a deleted entry. |
The selection is full when the text of its export would be too long. The count then reads (MAX). Further clicks are ignored until an entry is deselected. Assets and MeshFrames entries are large, and a few of them fill the selection. Textures and flipbooks are small.
The Details panel
Section titled “The Details panel”One panel shows every kind of entry. Its title reads Details. Its header holds Favourite and X. Its buttons sit at the bottom.
| Button | What it does |
|---|---|
| Trust Asset | Shown for Asset entries only. See Insert an Asset entry. |
| Delete | Removes an entry of the Local Inventory. Its text is red. |
| Insert | Inserts the entry. Its text is green. |
The previews have no controls.
A Texture entry
Section titled “A Texture entry”| Row | Shows | Can be changed |
|---|---|---|
| Preview | The image. A spritesheet is played frame by frame. | No |
| Name | The name. A ✏ shows where the name can be changed. | Local entries |
| Asset ID | The id of the image, as a number. | No |
| Copy | Selects the whole id and reads Ctrl+C for a moment. Press Ctrl+C to copy the id. | |
| Keywords | The keywords of a built-in entry. A local entry has none. | No |
| Info | Static texture, or the grid of a spritesheet, such as 4x4 flipbook. A resolution and a frame rate follow where the entry has them. | No |
| Grid | The N of a sheet of N x N frames. | Local entries |
Enter 8 or 8x8 in Grid to mark a local texture as a sheet of 8 x 8 frames. The value must be a whole number, 2 or more. Only square grids are accepted: 4x8 is refused. An empty box clears the Grid, and the entry is a single image again. Anything else puts the old value back, with no message.
A Grid makes the thumbnail and the preview play. It also changes what Insert does on an ImageLabel emitter and on a stock ParticleEmitter.
A MeshFlipbook entry
Section titled “A MeshFlipbook entry”| Row | Shows |
|---|---|
| Preview | The frames, played in turn. |
| Name | The name. It can be changed on a local entry. |
| Frames | The number of frames. |
| Texture IDs | The first three ids, then … |
| Info | The kind and the frame count, such as MeshFlipbook, 16 frames. |
The frames of an entry cannot be reordered or removed in the Inventory. Dissect shows how to trim a flipbook in the Explorer.
An Asset entry
Section titled “An Asset entry”| Row | Shows |
|---|---|
| Preview | A 3D view of the saved instances, turning slowly. |
| Name | The name. It can be changed on a local entry. |
| Class | The class name, or Group for a bundle. |
| Location | For an entry saved with Paths: Path: and the saved location. For a bundle saved with Paths: the number of locations, such as 3 path(s). Otherwise the size of the entry, such as 4.2 KB compressed. |
| Info | The class, such as MeshPart asset. A bundle adds its count, such as (3 items). |
A MeshFrames entry
Section titled “A MeshFrames entry”| Row | Shows |
|---|---|
| Preview | A 3D view of frame 1 only, turning slowly. The sequence is not played. |
| Name | The name. It can be changed. |
| Frames | The number of frames. |
| Size | The size of the entry, such as 12.5 KB compressed. |
| Info | The kind and the frame count, such as Mesh Frames, 12 frames. |
Insert
Section titled “Insert”There are two ways to insert an entry. Both give the same result.
| Way | Do this |
|---|---|
| From the Details panel | Press Insert. The button reads Inserted! for a moment. |
| From the grid | Rest the cursor on the thumbnail and press +. |
Every Insert is one step in Studio’s undo history. Ctrl+Z takes it back.
Keep the emitter selected while working in the Inventory. Clicking inside the plugin’s panels does not change the Studio selection.
What counts as selected
Section titled “What counts as selected”| Selected in the Explorer | The Inventory treats it as |
|---|---|
| An emitter | That emitter. |
Something that belongs to an emitter: its RenderTemplate, anything inside its MeshFlipbooks, BeamFlipbooks or ImageFlipbooks, or a frame inside its MeshFrames | The emitter it belongs to. |
The MeshFrames folder of an emitter | A set of mesh frames, not the emitter. See Texturing mesh frames. |
| A stock ParticleEmitter, Trail or Beam | That instance. |
| A Folder or a Model that is not an emitter | Every emitter, stock ParticleEmitter, stock Trail and stock Beam inside it, all at once. If it holds meshes, it is also a set of mesh frames. |
A Decal or a Texture, such as one layer inside a RenderTemplate | That Decal or Texture alone. |
| A Part or MeshPart that is not an emitter | Nothing. Transform it first. |
Insert a Texture entry
Section titled “Insert a Texture entry”| Selected | What Insert writes | Where it appears in the Explorer |
|---|---|---|
| Part or MeshPart emitter | The ColorMap of the template’s SurfaceAppearance, if the template has one. Otherwise the first Decal on the template. Otherwise the first Texture on the template. A template with none of these gets nothing. | RenderTemplate ▸ SurfaceAppearance, or the first Decal inside RenderTemplate |
| Beam emitter | The Texture of the Beam and of its template. | The Beam and its RenderTemplate |
| Trail emitter | The Texture of its template. | RenderTemplate |
| ImageLabel emitter | The image of the label and of its template. A spritesheet also sets Flipbook ▸ Source to Spritesheet and Grid to N columns and N rows. | The ImageLabel and its RenderTemplate |
| Stock ParticleEmitter | Its Texture. A Grid of 2, 4 or 8 sets FlipbookLayout to Grid2x2, Grid4x4 or Grid8x8. Any other Grid sets it to None. A Grid also sets FlipbookMode to OneShot. An entry without a Grid sets FlipbookLayout to None, which removes a layout the emitter had. | The ParticleEmitter |
| Stock Trail, stock Beam | Its Texture. | The Trail or the Beam |
| A Decal or a Texture selected directly | Its Texture. | That Decal or Texture |
| Model emitter, Attachment emitter, a light, a sound, a screen effect | Nothing. | |
| Nothing | Nothing. |
A single texture does not look at the Active pill of a decal layer. To put a texture on one layer, expand the RenderTemplate, select that Decal, and press Insert.
The Properties panel shows the new texture at once. A built-in entry is added to Recent.
Insert a MeshFlipbook entry
Section titled “Insert a MeshFlipbook entry”The frames are made as Decals named 1, 2 and so on up to N. Each Decal holds one image.
| Selected | What Insert does | Where it appears in the Explorer |
|---|---|---|
| Part or MeshPart emitter with one or more decal layers marked Active | Each Active layer gets the frames in a sub-folder of its own and is set to play that sub-folder. Frames the layer had before are replaced. | MeshFlipbooks ▸ the layer’s name ▸ 1 to N |
| Part or MeshPart emitter with no Active layer and no SurfaceAppearance | A new decal layer is added to the template, on the front face, named after the entry. Its layer Transparency is 0. The frames go into a sub-folder of the same name. | RenderTemplate ▸ the entry’s name, and MeshFlipbooks ▸ the entry’s name ▸ 1 to N |
| Part or MeshPart emitter with a SurfaceAppearance on the template and no Active layer | The frames go directly into the folder. Frames directly in the folder are replaced. Layer sub-folders are kept. | MeshFlipbooks ▸ 1 to N |
| Beam emitter | The folder is emptied and refilled. | BeamFlipbooks ▸ 1 to N |
| Trail emitter | The folder is emptied and refilled. | TrailFlipbooks ▸ 1 to N |
| ImageLabel emitter | The folder is emptied and refilled. Flipbook ▸ Source is set to Decals. | ImageFlipbooks ▸ 1 to N |
The MeshFrames folder of an emitter, or a Folder or Model of meshes | Image 1 goes onto frame 1, image 2 onto frame 2, and so on. No flipbook folder is made. | On the frames |
| Nothing that takes a flipbook. Examples: a Part that is not an emitter, a stock ParticleEmitter or Trail alone, a Model or Attachment emitter, a light. | A Folder named after the entry is made, holding the Decals. The Folder becomes the selection. It is storage only: the Decals in it are not drawn. | Workspace ▸ the entry’s name |
The Active pill sits in the header of each layer under Properties ▸ Decals. Decals and flipbooks describes layers and how the frames are played.
A new layer takes the entry’s name. If that name is taken, a number is added, such as Flame2, then Flame3. Three flipbooks inserted in a row give three moving layers, one over another.
Insert does not change the Mode or the Framerate of a flipbook. With several emitters selected, each emitter gets its own frames. A built-in entry is added to Recent, except when the frames go to a Folder in the workspace.
Texturing mesh frames
Section titled “Texturing mesh frames”Select the MeshFrames folder of an emitter, not the emitter itself. A Folder or a Model that holds meshes works the same way. Then insert a MeshFlipbook entry.
| Case | Result |
|---|---|
| As many images as frames | Image 1 on frame 1, image 2 on frame 2, in the order of the frame numbers. |
| Fewer images than frames | The images repeat. |
| More images than frames | The extra images are not used. A message reads N flipbook image(s) unused: the sequence has fewer mesh frames. |
On a MeshPart frame the image is written to its TextureID. On a Part with a SpecialMesh, the image goes to the first Decal or Texture of the Part. If the Part has neither, the image goes to the texture of the SpecialMesh.
When the folder is an emitter’s own MeshFrames, the emitter’s RenderTemplate also receives image 1. A new particle then starts on the right picture.
In a Folder, the meshes read are its direct children and the meshes inside its child Models. In a Model, every mesh inside it is read.
Insert a MeshFrames entry
Section titled “Insert a MeshFrames entry”| Selected | What Insert does | Where it appears in the Explorer |
|---|---|---|
| One or more Part or MeshPart emitters | Each emitter gets a MeshFrames folder, made if it is missing. Frames already in the folder are removed. The saved frames are placed in it, invisible, anchored and without collisions, at the emitter. | The emitter ▸ MeshFrames ▸ 1 to N |
| No Part or MeshPart emitter | A Folder named after the entry is made, holding the frames as they were saved. The Folder becomes the selection. | Workspace ▸ the entry’s name |
Properties ▸ Mesh Frames ▸ Frames shows the new count. Mesh Frames describes how the frames are played.
An entry may hold MeshParts, Parts with a SpecialMesh, or both. Insert places every frame.
Insert an Asset entry
Section titled “Insert an Asset entry”Insert of an Asset entry does not look at the selection.
| The entry was saved | Insert puts it |
|---|---|
| Without Paths | In the workspace. |
| With Paths | Under the parent it was saved from. Each item of a bundle goes to its own parent. |
The new instances are selected after the Insert.
A location is found by name, from the top of the place. A name that contains a . cannot be found.
If a saved location is missing, nothing is inserted. A red banner appears at the top of the screen. It begins Insert failed, lists each missing location, and asks Create missing folders and insert?
| Button | What it does |
|---|---|
| Create & Insert | Makes the missing levels as Folders, then inserts. This is two steps in Studio’s undo history. |
| Cancel | Inserts nothing. Closing the Details panel or the Inventory does the same. |
Events on an asset inserted from the Inventory arrive switched off, and must be trusted before they run. This holds for every asset in the Inventory, your own included.
Trust Asset acts on every event of every emitter in the Studio selection. Emitters inside selected Models and Folders are included. Insert selects what it inserted. The order is therefore: press Insert, read the event scripts, then press Trust Asset.
The button then reads Trusted N, or Nothing to trust. Trust Asset does not switch the events on. Switch on each event that is wanted. A press of Trust Asset is one step in Studio’s undo history.
Events describes events in full. The Why Dictionary has an entry on events that arrive switched off.
Saving into the Local Inventory
Section titled “Saving into the Local Inventory”Import Selected
Section titled “Import Selected”Import Selected saves what is selected in the Explorer into the category in use. Nothing is uploaded.
| Category | Select | What is saved |
|---|---|---|
| Local Inventory ▸ Textures | Anything that holds textures. | One Texture entry for each different image found, named after the instance that held it. |
| Local Inventory ▸ MeshFlipbooks | One or more Folders of Decals. | One flipbook for each Folder, named after the Folder. |
| Local Inventory ▸ Assets | One or more instances. | One entry for each selected instance, with everything inside it. The entry takes the instance’s name and class. |
| Local Inventory ▸ MeshFrames | The frame meshes, the Models that hold them, or a Folder of either. | One entry that holds every frame found. |
Textures. The plugin reads each selected instance and everything inside it. It reads the Texture of a Decal, a Texture, a Beam, a Trail and a ParticleEmitter. It does not read the image of an ImageLabel, the texture of a MeshPart or the maps of a SurfaceAppearance. The entry points at the image that already exists.
To add an image known only by its id, put the id on a Decal. Select the Decal and press Import Selected.
MeshFlipbooks. The frames are the direct children of the Folder that have a Texture. Frames with number names come first, in rising order. Frames with other names follow, in alphabetical order. Anything selected that is not a Folder is skipped. A Folder with no textured children is skipped.
A sub-folder of MeshFlipbooks, a BeamFlipbooks folder and a Folder edited by hand can all be saved this way. A MeshFlipbooks folder that holds frames directly is saved under the name MeshFlipbooks.
Assets. A Model or a Folder of emitters is saved as it stands in the place at that moment. That includes the properties, the templates, the flipbook folders and the events. An instance that Roblox cannot save is skipped.
Press ▼ beside the button for two options. The button’s label follows the options.
| Options on | The button reads | Result |
|---|---|---|
| None | Import Selected | One entry for each selected instance. Insert puts the entry in the workspace. |
| Bundle (import as one) | Import Bundle | The whole selection becomes one entry of class Group. Its name is the first instance’s name and the count of the rest, such as Rocket +2. Insert brings all of it back together. |
| Paths (save locations) | Import + Paths | Each entry remembers where its parent is. Insert puts the entry back there. |
| Both | Import Bundle + Paths | One entry that puts each of its items back where it was. |
Both options return to off when the category changes.
MeshFrames. The frames may be MeshParts or Parts with a SpecialMesh. Use MeshParts: see the CAUTION under Insert a MeshFrames entry. The order comes from the last number in each mesh’s name, such as frame_001, frame_002. A mesh with no number takes the number in the name of the Model that holds it. Numbered frames come first. Frames without a number keep the order of the Explorer. Inside the entry the frames are renamed 1 to N.
Studio’s 3D Importer puts each imported file in a Model named after the file. Leave the meshes inside those Models, so that the numbers are kept.
The entry takes the name of the first selected Folder. Without a Folder, it takes the first frame’s name without the number at its end. If nothing is left, the entry is named MeshFrames.
An entry the library already has is not saved twice.
| Kind | Skipped when | A name already in use |
|---|---|---|
| Texture | The image is already in the Local Inventory. | Names may repeat. |
| MeshFlipbook | The name and the frames both match an entry. | The new entry gets (2), then (3), after its name. |
| Asset | The saved content matches an entry. | The new entry gets (2), then (3), after its name. |
| MeshFrames | The saved content matches an entry. | The new entry gets (2), then (3), after its name. |
Upload
Section titled “Upload”Upload sends image files from your computer to Roblox and adds them to the category in use.
The button shows in Local Inventory ▸ Textures and Local Inventory ▸ MeshFlipbooks. Press Upload. Studio’s file picker opens. It takes png, jpg, jpeg, bmp and tga files. Several files can be picked at once.
| Category | What Upload makes |
|---|---|
| Local Inventory ▸ Textures | One Texture entry for each file, named after the file. |
| Local Inventory ▸ MeshFlipbooks | One flipbook. Each file is one frame. A small box titled Flipbook Name: opens first, holding the first file’s name. Enter a name and press OK. |
In the Flipbook Name: box, Cancel, a click outside the box or an empty name stops the upload.
Each file is uploaded to Roblox as a new image on your own account, one file after another. The images pass through Roblox’s moderation. The names shown in the Inventory are the ones you chose.
The frames of a flipbook take the order in which Studio hands over the files. Check the order in the preview of the Details panel.
| Status row | Meaning |
|---|---|
| Textures: Starting… | The batch is waiting. A flipbook shows its own name in place of Textures. |
| Textures: Uploading 3/8… | File 3 of 8 is being uploaded. |
| A row that names a file and reads retry, with a countdown | Roblox refused the file. Failed uploads are retried automatically. The status row shows the countdown. |
| A red row that names a file and reads FAILED: | The plugin gave up on that file. The row shows the start of the error. The next file follows. |
| ✓ Uploaded 7 texture(s) (1 failed), in green | The Textures batch is done. Here one file failed. |
| ✓ Flame (15 frames) (1 failed), in green | The flipbook is done. Here one file failed, and it is missing from the frames. |
| Skipped 1 file(s) > 10MB: and a file name | A file is larger than 10 MB. Every file must be 10 MB or smaller. |
| Upload already in progress - wait for it to finish | Upload was pressed while an upload was running. |
A finished row disappears after a few seconds.
Renaming and deleting
Section titled “Renaming and deleting”| To | Do this |
|---|---|
| Rename a local entry | Click the name in the Details panel. Type the new name. Press Enter or click elsewhere. An empty name puts the old name back. |
| Delete a local entry | Press Delete in the Details panel. |
| Delete several local entries | Select them with Shift, then press Delete in the strip. |
Deleting an entry does not delete the image from Roblox. It does not remove anything already inserted in the place.
Dissect
Section titled “Dissect”Dissect slices a spritesheet into numbered frames at full resolution. You do not download or re-upload the sheet. Each frame is saved as its own image on your Roblox account.
The result is one entry in Local Inventory ▸ MeshFlipbooks. A flipbook of separate frames can be used on decal layers, Beams, Trail emitters and mesh frames.
| To open the dialog | Do this |
|---|---|
| Empty | Click Local Inventory ▸ MeshFlipbooks, then press Dissect under the search box. |
| With ids already listed | Select Texture entries with Shift, built-in or local, then press Dissect in the strip. |
The dialog is titled Dissect Spritesheets.
| Control | Starts at | What it does |
|---|---|---|
| Cols: | 4 | The number of columns in the sheet. A whole number from 1 to 64. Clicking the box clears it. An empty box, or text that is not a number, counts as 4. |
| Rows: | 4 | The number of rows in the sheet. The same rules as Cols:. |
| Asset IDs (one per line, or comma-separated): | Empty | The sheets to dissect. Enter one id on each line, or separate the ids with commas. An id in the rbxassetid:// form is accepted. A repeated id is used once. |
| From Selection | Replaces the content of the box with the Texture id of each selected Decal, Texture, Beam, Trail or ParticleEmitter. It does not look inside Folders or Models. It does nothing when no selected instance has a texture. | |
| Upload & Dissect | Opens Studio’s file picker for png, jpg, jpeg, bmp and tga files. Each file picked is dissected with the Cols: and Rows: above. The sheet itself is not uploaded. | |
| Dissect | Dissects every id in the box. | |
| X, or a click outside the dialog | Closes the dialog. Nothing is dissected. |
The dialog has no box for a frame count or a name, and no preview of the grid. One Cols: and one Rows: apply to every sheet of a run.
What follows a press of Dissect or Upload & Dissect:
- The dialog closes. Sheets wait their turn. A sheet gets a status row when its turn comes.
- The frames are numbered from left to right, then from top to bottom.
- Each frame is saved as a new image on your Roblox account. A sheet of 4 x 4 makes 16 images. The images pass through Roblox’s moderation.
- One entry appears in Local Inventory ▸ MeshFlipbooks. From an id, the entry is named after the id, such as
Spritesheet_123456789. From a file, the entry is named after the file. - Nothing is added to the place. Insert the entry as any other flipbook.
Dissecting the same sheet again makes a second entry, with (2) after its name.
Every cell of the grid becomes a frame, the empty cells too. A 14-frame animation on a sheet of 4 x 4 gives 16 frames, and the last two are blank.
To trim a flipbook, insert it with nothing selected. A Folder of Decals appears in the workspace. Delete the Decals that are not wanted. Select the Folder and press Import Selected in Local Inventory ▸ MeshFlipbooks. The frames left in the Folder are saved as a new flipbook.
Messages
Section titled “Messages”| Where | Text | Meaning |
|---|---|---|
| Status row | Flame: Starting… | The sheet’s turn has come. Every row begins with the sheet’s name. |
| Status row | Flame: Dissecting 5/16… | Frame 5 of 16 is being saved. |
| Status row | A row that names a frame and reads retry, with a countdown | Roblox refused the frame. Failed uploads are retried automatically. The status row shows the countdown. |
| Status row, red | Flame: Frame 5 FAILED: and the start of the error | That frame is left out of the flipbook. |
| Status row, green | ✓ Flame (15 frames) (1 failed) | The sheet is done. Here one frame failed. |
| Output | Part-Icles: No valid asset IDs entered | Dissect was pressed with no id in the box. The dialog stays open. |
| Output | Part-Icles: Failed to load, the sheet’s name and the error | The image could not be obtained. No entry is made. |
| Output | Part-Icles: Frame 5 failed: and the error | Detail of a failed frame. |
| Output | Part-Icles: Dissect error on, the sheet’s name and the error | Detail of a failed sheet. |
Which images work
Section titled “Which images work”| Source | Result |
|---|---|
| An image you own, or one you have been given access to | Full resolution. |
| A public image you do not own | Full resolution. The plugin’s own infrastructure handles it, and the plugin must be online. |
| A public image you do not own, while that route cannot be reached | Frames at low resolution, which look blurry. Output prints a warning. |
| An id that is not an image, or an image that is private, moderated or missing | Nothing. Output reads Part-Icles: Failed to load. |
| A file on your computer | The resolution of the file as Studio loads it. |
Export and Import
Section titled “Export and Import”Export / Import, at the bottom of the sidebar, opens a dialog titled Export / Import Local Inventory. The dialog can be dragged. X, or a click outside the dialog, closes it.
| Control | What it does |
|---|---|
| Text box | Holds the text code. It is not emptied when the dialog opens again. |
| Export | Fills the box with a text code for the whole Local Inventory: textures, flipbooks, assets and mesh frames. |
| Import | Reads the box and adds its entries to the Local Inventory. |
| Status line | Shows the result, under the buttons. |
| To | Do this |
|---|---|
| Copy the code | Click in the box. Press Ctrl+A, then Ctrl+C. |
| Give entries to another person | Send the code. The other person pastes it into the box and presses Import. |
| Export some entries only | Select them with Shift and press Export in the strip. The dialog opens with their code in the box. Its Export and Import buttons are hidden. |
| Read back a copy saved in the place | Empty the box and press Import. |
Export gives you a text code. Large libraries are compressed automatically. If the library is still too big for one code, export it in parts by Shift-selecting entries.
With the box empty, Import picks up an inventory saved in the place, for example by the autosave.
Import only adds. It never removes an entry and never overwrites one. An entry the library already has is skipped, by the rules under Import Selected. Grid values, saved locations and bundles travel with the entries. Favourites do not travel.
| The status line reads | Meaning |
|---|---|
| Exported | The code is in the box. |
| Exported (compressed) | The library is large. The code was compressed, and it imports in the same way. |
| Export too large. Use Shift+Click to export subsets. | The library does not fit in one code. Nothing is written to the box. Export it in parts. |
| Exported 5 selected - Select All + Copy | The code for the 5 selected entries is in the box. A large selection adds (compressed). |
| Export too large even compressed. Deselect some items. - Select All + Copy | The selection does not fit in one code. Deselect some entries. |
| Imported 12 items | 12 entries were added. Importing your own export reads Imported 0 items. |
| Import failed: malformed compressed data | The compressed code could not be read. |
The autosave banner
Section titled “The autosave banner”Every half hour, if your Local Inventory changed, a banner offers to save a copy into the place’s ServerStorage. Press Now, press Skip, or let the countdown run.
The banner runs across the top of the screen. It reads Part-Icles: autosaving the local inventory to ServerStorage in Ns, where N counts down the seconds.
| Action | Result |
|---|---|
| Press Now | The copy is saved at once. |
| Press nothing | The copy is saved when the countdown reaches 0. |
| Press Skip | Nothing is saved. The banner returns at the next half hour if the library still differs. |
| Switch the plugin off during the countdown | The banner goes. Nothing is saved. |
The copy holds the same text code that Export makes. Each autosave replaces the one before, so the place holds one copy and no history.
The save is one step in Studio’s undo history. Ctrl+Z straight after the save takes it back.
The copy is part of the place. Save or publish the place to keep it. To read the copy back, open the Export / Import dialog, empty the box and press Import.
If an autosave fails, Output reads [Part-Icles] inventory autosave failed: and the error.
Backup and recovery
Section titled “Backup and recovery”A backup of your Local Inventory is kept with the place you are working in. It is written each time the Local Inventory changes. No banner shows, and no step is added to Studio’s undo history.
If the plugin starts with an empty Local Inventory, as after a new install, it restores the library from the backup in the open place. A library that has entries is never replaced or merged by the backup.
To recover a library after a new install, open the last place you worked in. To move a library to another computer, or to merge two libraries, use Export and Import.
If the backup cannot be written, Output reads [Part-Icles] Failed to save inventory backup: and the error.
Limits
Section titled “Limits”- A Part or MeshPart that is not an emitter is never a target for Insert. Transform it first.
- The Inventory has no sort control and no search across categories.
- Recent holds up to 20 entries, all from the built-in library.
- A multi-selection cannot be marked as favourite in one press.
- The previews in the Details panel have no controls. The preview of a MeshFrames entry shows frame 1 only.
- The frames of a flipbook entry cannot be edited in the Inventory. Insert the flipbook, edit the Folder, and save it again with Import Selected.
- The Grid of a local texture is square: a whole number, 2 or more.
- Upload takes png, jpg, jpeg, bmp and tga files of 10 MB or less. One upload runs at a time.
- Dissect uses one Cols: and one Rows: for every sheet of a run, from 1 to 64 each. Every cell becomes a frame.
- Images made by Upload and by Dissect belong to your own Roblox account.
- The Local Inventory has a size budget. Saved effects and mesh-frame sets are what fill it. If the Output warns that the inventory is near its limit, export and remove some.
- Deleting an entry cannot be undone.