Asset Manager Plugin

tl;dr plugin link

< commercial voice >

Are you tired of forgetting where you left that one asset in your workspace? Are you having trouble finding some space to put your assets? Is your workflow tedious, slow and boring? Well, I’ve got the answer for you!

With the Asset Manager Plugin not TM you will be able to increase the speed of your workflow with up to 300%![1] With the easy-to-use Asset Manager interface you will be able to locally ‘import’ your models into a window and then use the Paste Mode to quickly place down your assets! Just look at this beauty:

Not sold yet? Take a quick glance at this preview!

But what do all these buttons do you may be asking? I’ve got your back with this super quick guide!

Import Mode
Select models, MeshPart objects or UnionOperation objects in the workspace and press Import Selection to add all those assets to your collection! Is your asset uploaded to the web instead? No problem! Enter its asset ID instead and click Import. When importing an asset you can set a tag to easily filter out the assets you don’t need to see! Whoops, imported the wrong asset? No worry! Click the red cross of its preview to delete it!

Paste Mode
When this mode is selected, click anywhere in the workspace to paste a model! Select an orientation type to determine your model’s orientation along the object Y-axis! Click on your previews to (de)select which models to place down! You can also enter a vertical offset and/or decide if your models should stick to the slope of your selected surface!

Other goodies

  1. Click the colored squares to set a background color for your collection!
  2. Keep track of how many models you have imported with the asset counter!

Grab the plugin now for the low price of absolutely ZERO robux!

< / commercial voice >

If you find any bugs please let me know.


  • Assets need to have a unique name in order to be imported.
  • Assets need to have a PrimaryPart to be imported. If your selection has none set, its children will recursively be evaluated instead. This might be useful if your asset pack is all grouped together.
  • This plugin creates a Plugin_AssetsContainer Folder in the ServerStorage upon importing your first asset. This is so that the plugin can reimport assets when you reopen the place file. You shouldn’t really touch it, but if you want you can set the folder’s Archivable property to false when you want to upload your place file.
  • Updating packages should be somewhat supported by this plugin; If a Model is added to an asset’s folder in the Plugin_AssetsContainer folder and the asset has a matching name, that one will replace the old model.
  • This plugin does not have a brush functionality and probably won’t get one in future updates. If you want this functionality I would recommend using this plugin instead.
  • The plugin only has dark mode available.

[1] This experiment was done on a group of volunteers with a sample size of 1 (just me).


Something which I will desperately need for my project, thank you!

good marketing skills


You just made me jump up off my chair from so much excitement, I’m going to use this a lot. So I thank you.

1 Like

i was interested until i heard “assets need to have a primarypart” because theres a lot of asset placement plugins out there but i hate them because adding in primary parts is a really tedious process. i hope the recursive evaluation is accurate cause im not giving my assets primary parts :triumph:

1 Like

In that case can you parent it to Geometry instead? It’s cluttering when my game data is competing with plugins for accessibility in ServerStorage.


I think there is some merit in being aware of the dependancies you leave behind when using plugins and other tools. Having it hidden can be sort of annoying.

I think the best way to do this is with a plugin permission system or at least having every plugin specify a working directory path which is probably a big ask for a lot of plugins. But at the same time touching the datamodel of someone else’s game is a pretty big thing too so it may be warranted.


I think there is some merit in being aware of the dependancies you leave behind when using plugins and other tools. Having it hidden can be sort of annoying.

This was my reasoning, and I also based part of my decision on the fact that the Tag Editor plugin uses the same service.

I think @GollyGreg makes a good point about being able to select where to store the plugin’s data. Although I do not see the need for this, I could alter the code a little bit so it becomes easy to fork and change the service to a service of your choice instead.

This is so cool, It would also be good to see where you are placing the model before paste them, and also that you can rotate by pressing the R and T keys. Nice plugin!

1 Like

Really nice contribution. I can see me using this in the near future.

1 Like

This sounds like a great tool which I will try!

Suggestion Being able to select one, two, or all three axes to randomly rotate the model on each time it is placed, useful for when placing foliage in a forest for example and you don’t want all trees rotated the same way, and want rotations to be random. Even better would be controls to limit how rotated an object can be randomly rotated.


Consider adding package support in the future when that feature is ready to mass update assets? :thinking:

1 Like

Alright, alright, alright, I’m sold. This looks like Packages but different and really attractive. Perhaps the two could form a dynamic duo of a sort for production for some developers.

Awesome work. Alas though, Packages need their fair share of updates during and after it’s beta. Looking forward to potentially experimenting with this.

I already took this a bit into consideration; You can import a package model and if you then change one of the package models in the workspace, you can go to the folder that contains the imported package model and update it to the latest version. The model in the widget’s viewport will automatically update and newly placed models will use the latest version.

Edit: And it should also work when all of them are updated at once, though I’ll have to double check that once the time has come.

1 Like

Trying to import a tree model and it just makes it into separate parts.

Make sure your model has a PrimaryPart set. If not, the plugin will recursively loop through the children instead to repeat the process. This was made so you can import a model with assets all at once.

1 Like

Can you add the ability to import all assets such as Textures Audio ETC?

is it possible to share assets across places ??

Nope, the assets are saved in server storage, if you wanted to you could try to make the assets save with the saving feature of plugins.

No clue if you could save the models, I’ve never touched the code of a plugin before, more specifically the saving part.

1 Like