Ability to use files outside of roblox version folder


DO NOT USE LINKED DIRECTORIES IN THE ASSETS FOLDER!!!

WHEN ROBLOX STUDIO UPDATES, IT WILL REMOVE YOUR SOURCE FILES!!!


I learned this the very, very hard way just now.

As a developer of graphic elements applied to 3D models, it is important for me to ensure they fit together nicely, which requires a fair amount of testing, given the toolset I have available. My current workflow requires a lot of time spent copying files, which can be better-used developing assets.

Currently, roblox supports the ability to load locally-hosted files and have them update while studio is running. This is nice, but is inflexible and difficult to use for fast prototyping:

  • limited to the content folder inside the version- folder
  • said folder is deleted every time the game updates; risky to use as a working folder for assets

Pushing the boundaries:

  • rbxasset://../file.png does not link to the parent directory
  • D:/file.png, D://file.png does not work
  • studio cannot load assets from symbolic links
  • studio loads assets from junctions, but updating does not work
  • studio loads assets from hard links, but updating does not work

I’m looking for a way to be able to save files to a directory and use them in roblox studio and have them update in studio when I update the files without the danger of losing them due to an update.

14 Likes

cdup (rbxasset://../) was patched for security reasons (otherwise it is possible for game/plugin developers to snoop the user’s local file system). Accessing files outside of the Roblox directory is blocked for the same reason. We could make Studio/ReloadAssets work with symlinks, but this isn’t a great way to support this.

Can you elaborate more on your workflow as it relates to dynamically reloading assets? If we changed importing so that imported files auto-updated from the local file system until the place was published (at which point the asset would be finalized and uploaded), would that solve your use cases?

Sometimes I just want to import an image as a reference to build off of, this is especially useful for blueprints. In this situation, I don’t need to upload to asset, just use it while I’m building.

6 Likes

I use meshparts with decals applied on the sides to increase texel density compared to UV mapping. The textures often wrap around the shape of the object, so I have to ensure the transition between textures is close enough to not be jarring.

When I create the transitions I have to create one decal, then edit a second decal or both and check them after modifications.

For organizational purposes, I want to keep all the original or working files in a directory separate from rbxasset:// or its parent directory because those directories can be removed at any time for a studio update.

When I am working, I wind up with two different version of the source and compressed files:

  • .png in project folder
  • .pdn in project folder
  • .png in rbxasset://
  • .pdn in rbxasset://

It takes a long time to change between the project folder and rbxasset:// using the windows save dialog, so I often only work in rbxasset://, which I find distasteful because then the file in project folder, intended to be the master file, is not the master. Also because of the potential for roblox updates to erase progress.

Regarding your suggestion about auto-updating the file in studio before publishing, I think it is a good one, although consideration will have to be given to Team Create. The project that I use this workflow for is in a Team Create place. My specific concern with the suggestion as it is written is that Team Creates auto-save, so publishing ala standard places is not often, in my experience.

As far as what @woot3 mentioned, I do that already, no modifications required. If roblox studio updates and removes the file, then I simply add it into the same place with the same file name and it works again.

4 Likes

I think a better fix for this problem would be to have a directory setting, like the CoreGuiDirectories under Studio settings I believe, where you could designate a specific folder for rbxasset://…/ to work in. It’d only work for directories located under the Desktop parent directory, so people couldn’t set Drive Labels or something similar.

1 Like

DO NOT USE LINKED DIRECTORIES IN THE ASSETS FOLDER!!!

WHEN ROBLOX STUDIO UPDATES, IT WILL REMOVE YOUR SOURCE FILES!!!


I learned this the very, very hard way just now.

5 Likes

I hate to necro this topic but I feel I have something to add.

I really like the idea of a feature like this to allow for locally sourced assets to be used for testing purposes.
I don’t like the idea of these assets being published automatically when the game is published, though an option to manually do this could be useful. The reason this could be undesirable would be because I often import multiple versions of an asset and then choose to upload the one I like the most and move the rest into ServerStorage so I don’t have to reconfigure it if I have to go back and change something. (for instance, perhaps I’ve imported multiple meshes but don’t want to have to re-scale them, apply materials and colors, and attachments (if it’s a hat) every time I make a change)

The security problem of plugin creators snooping the user’s file structure is also a concern. My proposed solution would be a definable folder similar to the local plugins folder that the user can change the directory of in Roblox Studio’s settings that can be used like so
localasset://roblox.gif
Then only allow files from this directory or rblxasset:// to be used or searched. This would mean there’s a safe folder that assets may be placed in while working and changes to files in this folder can auto-update in Studio and there would be no risk of these files getting deleted when Studio updates.

It may also be nice to have a warning window when publishing and there are local assets in use. This window would have an option to publish anyway because as I mentioned before I would like to be able to have objects using local assets stored in the scene such as in the ServerStorage. Other options would include canceling and make changes before trying to publish again or a third option could be to do as you mentioned before and upload the used localassets as rblxassets before publishing the game.

This solution would be unintrusive and not force developers into any workflow and would be easy to switch to from what they may currently be doing with Roblox’s install DIR.

Currently in Studio if you go to File>Studio Settings...>Studio there is an option called Local Assets Folder that allows you to specify a folder on your system. I would like to think this is exactly what I’m asking for but to be honest I couldn’t find any explanation of what it is or how to use it anywhere online so I just have to assume it’s not what I’m thinking of.

Again, sorry for the necro.

1 Like