Is it against the ToS to cache textures and meshes using editable APIs?

Hello, I’m in a situation where I need to query the avatar information of multiple user ids, and load many of them at once. The user ids in question are specific and known, however a subset of them is loaded per random load. I was thinking of implementing a texture and mesh caching system, where I convert the loaded assets the characters wear to editable images and meshes, then compress their data and store them as strings. Then perform the reverse process when I need to reload that avatar.

The avatar data is lazily updated on the background every few minutes, through the use of a batch system(basically the batch whos data is older gets updated through API calls on the background). What the users see are cached results that are supposed to load instantly and not be throttled by API calls for loading player characters.

So the question is, assuming the avatar data is updated every few minutes(for example every 10 minutes per batch), could this be against the ToS? If so what specific part of the ToS it breaks?

1 Like

I don’t know any reason why this should be against ToS, although editableimages restrict your game to 13+. Also, if your system creates an image which is against ToS, then you’ll be on the hook. I don’t know what you’re trying to accomplish with this, but it may also be easier to use viewportframes or their thumbnail

function GetAvatarImageId(userId: number)
	local cachedImage = imageCache[userId]
	if ( cachedImage ) then
		return cachedImage
	end

	local thumbType = Enum.ThumbnailType.HeadShot
	local thumbSize = Enum.ThumbnailSize.Size180x180
	local content,_ = game:GetService("Players"):GetUserThumbnailAsync(userId, thumbType, thumbSize)

	imageCache[userId] = content
	return content
end

For security purposes, using EditableImage fails by default for published experiences. To enable usage, you must be 13+ age verified and ID verified. After you are verified, open Studio’s Game Settings, select Security, and enable the Allow Mesh / Image APIs toggle.
EditableImage | Documentation - Roblox Creator Hub

Why would you do this? Roblox already caches all assets, both for the session, and also for future sessions (assuming a new version of the asset is not uploaded). If I’m understanding you correctly, you’re only going to slow down loading time by adding the overhead of your own system.