Plugin: Local File Importer (Import Images from your Computer!)

Did you ever have an image reference that you wanted to use but couldn’t because it’s copyrighted or against the rules? Did you want to keep images such as map layout references hidden to prevent leaks? Or do you just want to reduce clutter on your inventory? Well, have I got the solution for you!

Introducing: Local File Importer!

Local File Importer allows you to import images directly from your computer, bypassing the need to upload the image to Roblox entirely! Here’s a demo of how it works:

How to use:

  1. Click the Import Images button at the bottom of the plugin to import files from your computer. This will cause a file dialog to open.
  2. In the file dialog, select one or multiple files and then click open. Only PNGs and JPEGs are supported.
  3. After importing, the files you selected will be loaded by the plugin. From there, you can:
    • Left-click on the file in the plugin. This will insert it as a decal (like the toolbox).
    • Alternatively, you can right-click on the file instead. This will show three options:
      1. Open In Own Window. This will open the file in its own widget.
      2. Copy Temporary Asset Id. This shows a modal from which you can copy the image’s ID.
        image
      3. Remove from Plugin. This will unload the image from the plugin, removing it. Decals/Meshes/etc. still using the image’s asset ID won’t be affected.

Some things you should know:

  • Some JPEG files are not supported by Roblox, and will not be imported as a texture. For example, importing the following image:
    https://commons.wikimedia.org/wiki/File:Hutton_in_the_Forest_4K.jpg
    Will show the following error:
    image
    One way of fixing this is to re-save the image in an image editor (e.g. Paint.Net). If that doesn’t work, saving the image as a PNG will work as well.
  • Roblox’s texture filtering sucks for this plugin. Even 4K images will show up as blurry on-screen. There’s no way around this.
  • In team create, other developers won’t see the image you’ve imported. If you need to collaborate, then you should share the image through some other means (e.g. the this forum) and then they can use it locally themselves.
  • The images will disappear when you re-open the place. This means that you’ll need to re-import the image if you want to use it again in a different session.

In the future, I plan on adding support for importing audio (.mp3s and .wavs).

45 Likes

Excellent, now I don’t need to dig through the file system in order to fix temporary images. It is a great help to have this plugin. What it can do:

  • Test textures
  • Test images on surfaces, usages such as paintings
  • Test UI pieces
  • Test clothing

All without uploading them.

3 Likes

This means we could upload images that are not kid friendly. This is going to become a problem if this becomes popular.

1 Like

Can’t use those images online :upside_down_face: Those images will only appear on studio, and on your computer only (as in, other developers in a team create session can’t see your images)

7 Likes

Thank you for telling me that. I actually got worried.

1 Like

Didn’t think of testing this on clothing, but yeah, that’s another good use case!

8 Likes

This will actually be super useful for working in places with poor internet connection cough RDC cough

Thanks a ton!

3 Likes

As I noticed now you can put your picture in offline mode? (well, when you use files and not go through the site if you understand me)
Just when the files are on and then you want to put a picture, they offer to enter the site.
and then publish it

1 Like

That’s actually a pretty smart way of going about things. I remembered that some assets, such as rbxasset, are actually pulled from your file system. By uploading files to your computer and referencing those, you can essentially use those images on your client without uploading pointlessly.

That’s a good one, chief.

2 Likes

It seems to me that this program will help the offline mode in the studio Roblox, and then just the functions do not work very well this time.
I just have problems with the internet
at low load, it can simply turn off or simply change its speed
you agree with me

1 Like

Very useful

I got a warning a few months ago because I uploaded a phoenix image that I was going to use as a reference while building and it had a barely visible watermark website link that I didn’t notice

1 Like

Since the plugin uses these rbxtemp:// IDs, does that mean re-uploading in the same order would cause those IDs to work for the new session, or would we need to do something extra to continue our work on the new session?

2 Likes

Since the plugin uses these rbxtemp:// IDs, does that mean re-uploading in the same order would cause those IDs to work for the new session

Yes.

2 Likes

just a slight typo for you to fix in the next update: image

1 Like

I released an update less than 5 minutes ago that fixed a bug that prevented users from pressing x to close the widget, lol. I’ll fix this asap.

4 Likes

i know. i literally just installed the plugin and got a notification to update it, and thought “how can it be out of date already?” lol

I’ve analysed the source code of that plugin, and it seems like you’re using a lot of Rōblox-provided stuff that aren’t documented on the public wiki (i.e. GetTemporaryId and the File class). How were you able to get a hold of them?

I was curious how the terrain heightmap importer plugin was able to import files, and I found that it used :GetBinaryContents() to read data to be used by Terrain:ImportHeightmap() and :GetTemporaryId() to display the heightmap as an image in the widget.

There’s also this reference:

2 Likes

I linked it in my post. By any chance, do you have editing access to the documentation? Something needs to be done to make it easier for other devs to figure it out. Both plugins (yours and the terrain-heightmap importer one) might just be setting off a trend.

Nope, I don’t have any special permisions. If you want documentation to be done on something, do a #platform-feedback:documentation-requests

1 Like