Skip to content

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 MeshFrames folder 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.
ToDo this
Open the InventoryPress ≡, then Inventory. The entry reads bright while the Inventory is open.
Close the InventoryPress Inventory again, or press X in the header.
Open or close with a keyBind the action Toggle Inventory in Shortcuts. The action has no key at the start.
Close the Details panelPress 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.

PlaceControlWhat it does
HeaderTitle InventoryMoves the panel when dragged.
HeaderSliderSets the size of the Inventory and the Details panel together, from 0.30x to 1.50x. Starts at 1.00x. The setting is remembered.
HeaderXCloses the Inventory.
SidebarInventoryHeads the built-in library. Click it to fold or unfold its list: Textures, MeshFlipbooks, Assets.
SidebarLocal InventoryHeads your own library. Click it to fold or unfold its list: Textures, MeshFlipbooks, Assets, MeshFrames.
SidebarA categoryClick it to show that category in the grid. The category in use reads gold.
Sidebar, bottomExport / ImportOpens the Export / Import dialog. It shows in every category.
TopSearch… boxSearches the category in use. A count, such as 128 items, shows at its right end.
Top rightFilters ▼Opens the list of filters.
Under the search boxStatic, Flipbook, ★ Favs, RecentThe tabs. Inventory ▸ Textures shows all four. Inventory ▸ MeshFlipbooks shows ★ Favs and Recent.
Under the search boxImport Selected, ▼, Upload, DissectShown in the Local Inventory. The table below gives the buttons of each category.
Above the grid, rightN selected, Export, Dissect, Delete, ClearShown while several entries are selected. See Selecting several entries.
CentreThe gridShows one thumbnail for each entry.
CentreLoading…, Failed to load, Retry, No itemsShown in place of the thumbnails. See The built-in library.
Beside the InventoryDetails panelShows one entry. It opens on the right, or on the left where the right has no room. It moves with the Inventory.
Beside the InventoryStatus rowsLines 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.

CategoryImport Selected▼UploadDissect
Inventory, any category
Local Inventory ▸ TexturesYesYes
Local Inventory ▸ MeshFlipbooksYesYesYes
Local Inventory ▸ AssetsYesYes
Local Inventory ▸ MeshFramesYes

Inventory is the built-in library. Local Inventory is your own.

CategoryFound inAn entry is
TexturesBoth librariesOne image with a name. An image may carry a Grid value, which marks it as a spritesheet of N x N frames.
MeshFlipbooksBoth librariesA name and a list of separate images, one image for each frame, in order.
AssetsBoth librariesOne or more saved Roblox instances with everything inside them. A whole effect can be one entry.
MeshFramesLocal InventoryA 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 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 readsMeaningAction
Loading…The built-in textures are still downloading.Wait.
Failed to load, a line of red text and RetryThe download failed.Press Retry. The grid reads Retrying… and all three built-in categories are downloaded again.
No itemsThe 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.

Your Local Inventory is saved with the plugin on your computer and follows you from place to place.

CategoryWays to add an entry
Local Inventory ▸ TexturesUpload, Import Selected, Import of text.
Local Inventory ▸ MeshFlipbooksUpload, Import Selected, Dissect, Import of text.
Local Inventory ▸ AssetsImport Selected, Import of text.
Local Inventory ▸ MeshFramesImport Selected, Import of text.
EntryThumbnailText under itBadge
Texture without a GridThe image.The name.None
Texture with a GridThe sheet, played frame by frame.The name.None
MeshFlipbookIts frames, played in turn.The name and the frame count, such as Flame (16f).F
AssetA small 3D view of the saved instances.The class and the name, such as MeshPart: Shard. A bundle reads Group: Shard (3 items).A
MeshFramesA 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.

ToDo this
Read the full nameRest the cursor on the thumbnail. A spritesheet adds its grid, such as (4x4). A 3D thumbnail starts to turn.
Open the Details panelClick the thumbnail. A gold outline marks it.
Close the Details panelClick the same thumbnail again.
Insert without opening the Details panelRest the cursor on the thumbnail and press the round + at its bottom right. The + turns into a green ✓ until the cursor leaves.

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.

CategoryThe search reads
Inventory ▸ TexturesThe name, the asset id, the keywords and the grid. 4x4 finds every sheet of 4 x 4 frames.
Inventory ▸ MeshFlipbooksThe name.
Inventory ▸ AssetsThe name and the class.
Local Inventory ▸ TexturesThe name and the asset id.
Local Inventory ▸ MeshFlipbooksThe name and the frame count. 16f finds every flipbook of 16 frames.
Local Inventory ▸ AssetsThe name and the class.
Local Inventory ▸ MeshFramesThe name and the frame count.
TabShown inThe grid shows
StaticInventory ▸ TexturesTextures without a Grid.
FlipbookInventory ▸ TexturesTextures with a Grid: the spritesheets.
★ FavsInventory ▸ Textures, Inventory ▸ MeshFlipbooksThe favourites of that category.
RecentInventory ▸ TexturesThe 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.

Press Filters ▼ to open the list. The list stays open until Filters ▼ is pressed again or the category changes.

CategoryOptions
Inventory ▸ TexturesAll, then one option for each keyword, such as Fire, Smoke and Impact.
Inventory ▸ Assets, Local Inventory ▸ AssetsAll, then each class found in the category in alphabetical order, then Favourites.
Every other categoryAll, 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.

ToDo this
Mark an entry as a favouriteOpen its Details panel and press Favourite. The button reads Favourited! in gold.
Remove the markPress the button again.
See the favourites of Inventory ▸ TexturesClick ★ Favs.
See the favourites of Inventory ▸ MeshFlipbooksClick ★ Favs, or press Filters ▼ and click Favourites.
See the favourites of any other categoryPress 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.

CategoryOrder
Inventory ▸ TexturesFavourites first, then by name from A to Z.
Inventory ▸ MeshFlipbooksBy the number in the name.
Inventory ▸ AssetsBy name from A to Z. Capital letters are ignored.
Every category of the Local InventoryThe order in which the entries were added, oldest first.
ToDo this
Select or deselect one more entryHold Shift and click its thumbnail. A selected thumbnail has a gold outline and a tick at its top right.
Select a run of entriesHold Shift and drag across the thumbnails, starting on one that is not selected.
Deselect a run of entriesHold 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.

ControlWhat it does
N selectedCounts the selected entries. It adds (MAX) when the selection is full.
ExportOpens the Export / Import dialog with the text for these entries already in the box. See Export and Import.
DissectShown when at least one Texture entry is selected. Opens the Dissect dialog with the ids of those textures already listed.
DeleteRemoves the selected entries from the Local Inventory at once. See the WARNING under Renaming and deleting.
ClearDeselects 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.

One panel shows every kind of entry. Its title reads Details. Its header holds Favourite and X. Its buttons sit at the bottom.

ButtonWhat it does
Trust AssetShown for Asset entries only. See Insert an Asset entry.
DeleteRemoves an entry of the Local Inventory. Its text is red.
InsertInserts the entry. Its text is green.

The previews have no controls.

RowShowsCan be changed
PreviewThe image. A spritesheet is played frame by frame.No
NameThe name. A ✏ shows where the name can be changed.Local entries
Asset IDThe id of the image, as a number.No
CopySelects the whole id and reads Ctrl+C for a moment. Press Ctrl+C to copy the id.
KeywordsThe keywords of a built-in entry. A local entry has none.No
InfoStatic texture, or the grid of a spritesheet, such as 4x4 flipbook. A resolution and a frame rate follow where the entry has them.No
GridThe 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.

RowShows
PreviewThe frames, played in turn.
NameThe name. It can be changed on a local entry.
FramesThe number of frames.
Texture IDsThe first three ids, then …
InfoThe 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.

RowShows
PreviewA 3D view of the saved instances, turning slowly.
NameThe name. It can be changed on a local entry.
ClassThe class name, or Group for a bundle.
LocationFor 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.
InfoThe class, such as MeshPart asset. A bundle adds its count, such as (3 items).
RowShows
PreviewA 3D view of frame 1 only, turning slowly. The sequence is not played.
NameThe name. It can be changed.
FramesThe number of frames.
SizeThe size of the entry, such as 12.5 KB compressed.
InfoThe kind and the frame count, such as Mesh Frames, 12 frames.

There are two ways to insert an entry. Both give the same result.

WayDo this
From the Details panelPress Insert. The button reads Inserted! for a moment.
From the gridRest 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.

Selected in the ExplorerThe Inventory treats it as
An emitterThat emitter.
Something that belongs to an emitter: its RenderTemplate, anything inside its MeshFlipbooks, BeamFlipbooks or ImageFlipbooks, or a frame inside its MeshFramesThe emitter it belongs to.
The MeshFrames folder of an emitterA set of mesh frames, not the emitter. See Texturing mesh frames.
A stock ParticleEmitter, Trail or BeamThat instance.
A Folder or a Model that is not an emitterEvery 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 RenderTemplateThat Decal or Texture alone.
A Part or MeshPart that is not an emitterNothing. Transform it first.
SelectedWhat Insert writesWhere it appears in the Explorer
Part or MeshPart emitterThe 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 emitterThe Texture of the Beam and of its template.The Beam and its RenderTemplate
Trail emitterThe Texture of its template.RenderTemplate
ImageLabel emitterThe 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 ParticleEmitterIts 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 BeamIts Texture.The Trail or the Beam
A Decal or a Texture selected directlyIts Texture.That Decal or Texture
Model emitter, Attachment emitter, a light, a sound, a screen effectNothing.
NothingNothing.

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.

The frames are made as Decals named 1, 2 and so on up to N. Each Decal holds one image.

SelectedWhat Insert doesWhere it appears in the Explorer
Part or MeshPart emitter with one or more decal layers marked ActiveEach 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 SurfaceAppearanceA 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 layerThe frames go directly into the folder. Frames directly in the folder are replaced. Layer sub-folders are kept.MeshFlipbooks ▸ 1 to N
Beam emitterThe folder is emptied and refilled.BeamFlipbooks ▸ 1 to N
Trail emitterThe folder is emptied and refilled.TrailFlipbooks ▸ 1 to N
ImageLabel emitterThe 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 meshesImage 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.

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.

CaseResult
As many images as framesImage 1 on frame 1, image 2 on frame 2, in the order of the frame numbers.
Fewer images than framesThe images repeat.
More images than framesThe 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.

SelectedWhat Insert doesWhere it appears in the Explorer
One or more Part or MeshPart emittersEach 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 emitterA 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 of an Asset entry does not look at the selection.

The entry was savedInsert puts it
Without PathsIn the workspace.
With PathsUnder 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?

ButtonWhat it does
Create & InsertMakes the missing levels as Folders, then inserts. This is two steps in Studio’s undo history.
CancelInserts 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.

Import Selected saves what is selected in the Explorer into the category in use. Nothing is uploaded.

CategorySelectWhat is saved
Local Inventory ▸ TexturesAnything that holds textures.One Texture entry for each different image found, named after the instance that held it.
Local Inventory ▸ MeshFlipbooksOne or more Folders of Decals.One flipbook for each Folder, named after the Folder.
Local Inventory ▸ AssetsOne or more instances.One entry for each selected instance, with everything inside it. The entry takes the instance’s name and class.
Local Inventory ▸ MeshFramesThe 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 onThe button readsResult
NoneImport SelectedOne entry for each selected instance. Insert puts the entry in the workspace.
Bundle (import as one)Import BundleThe 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 + PathsEach entry remembers where its parent is. Insert puts the entry back there.
BothImport Bundle + PathsOne 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.

KindSkipped whenA name already in use
TextureThe image is already in the Local Inventory.Names may repeat.
MeshFlipbookThe name and the frames both match an entry.The new entry gets (2), then (3), after its name.
AssetThe saved content matches an entry.The new entry gets (2), then (3), after its name.
MeshFramesThe saved content matches an entry.The new entry gets (2), then (3), after its name.

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.

CategoryWhat Upload makes
Local Inventory ▸ TexturesOne Texture entry for each file, named after the file.
Local Inventory ▸ MeshFlipbooksOne 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 rowMeaning
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 countdownRoblox 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 greenThe Textures batch is done. Here one file failed.
✓ Flame (15 frames) (1 failed), in greenThe flipbook is done. Here one file failed, and it is missing from the frames.
Skipped 1 file(s) > 10MB: and a file nameA file is larger than 10 MB. Every file must be 10 MB or smaller.
Upload already in progress - wait for it to finishUpload was pressed while an upload was running.

A finished row disappears after a few seconds.

ToDo this
Rename a local entryClick 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 entryPress Delete in the Details panel.
Delete several local entriesSelect 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 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 dialogDo this
EmptyClick Local Inventory ▸ MeshFlipbooks, then press Dissect under the search box.
With ids already listedSelect Texture entries with Shift, built-in or local, then press Dissect in the strip.

The dialog is titled Dissect Spritesheets.

ControlStarts atWhat it does
Cols:4The 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:4The number of rows in the sheet. The same rules as Cols:.
Asset IDs (one per line, or comma-separated):EmptyThe 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 SelectionReplaces 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 & DissectOpens 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.
DissectDissects every id in the box.
X, or a click outside the dialogCloses 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:

  1. The dialog closes. Sheets wait their turn. A sheet gets a status row when its turn comes.
  2. The frames are numbered from left to right, then from top to bottom.
  3. 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.
  4. 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.
  5. 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.

WhereTextMeaning
Status rowFlame: Starting…The sheet’s turn has come. Every row begins with the sheet’s name.
Status rowFlame: Dissecting 5/16…Frame 5 of 16 is being saved.
Status rowA row that names a frame and reads retry, with a countdownRoblox refused the frame. Failed uploads are retried automatically. The status row shows the countdown.
Status row, redFlame: Frame 5 FAILED: and the start of the errorThat frame is left out of the flipbook.
Status row, green✓ Flame (15 frames) (1 failed)The sheet is done. Here one frame failed.
OutputPart-Icles: No valid asset IDs enteredDissect was pressed with no id in the box. The dialog stays open.
OutputPart-Icles: Failed to load, the sheet’s name and the errorThe image could not be obtained. No entry is made.
OutputPart-Icles: Frame 5 failed: and the errorDetail of a failed frame.
OutputPart-Icles: Dissect error on, the sheet’s name and the errorDetail of a failed sheet.
SourceResult
An image you own, or one you have been given access toFull resolution.
A public image you do not ownFull 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 reachedFrames 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 missingNothing. Output reads Part-Icles: Failed to load.
A file on your computerThe resolution of the file as Studio loads it.

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.

ControlWhat it does
Text boxHolds the text code. It is not emptied when the dialog opens again.
ExportFills the box with a text code for the whole Local Inventory: textures, flipbooks, assets and mesh frames.
ImportReads the box and adds its entries to the Local Inventory.
Status lineShows the result, under the buttons.
ToDo this
Copy the codeClick in the box. Press Ctrl+A, then Ctrl+C.
Give entries to another personSend the code. The other person pastes it into the box and presses Import.
Export some entries onlySelect 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 placeEmpty 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 readsMeaning
ExportedThe 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 + CopyThe 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 + CopyThe selection does not fit in one code. Deselect some entries.
Imported 12 items12 entries were added. Importing your own export reads Imported 0 items.
Import failed: malformed compressed dataThe compressed code could not be read.

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.

ActionResult
Press NowThe copy is saved at once.
Press nothingThe copy is saved when the countdown reaches 0.
Press SkipNothing is saved. The banner returns at the next half hour if the library still differs.
Switch the plugin off during the countdownThe 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.

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.

  • 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.