THE SHORT ANSWER
Starting November 11, 2026, Roblox Studio migrates from string-based asset ID properties (like TextureId, MeshId) to Content properties (like TextureContent, MeshContent). Luau scripts using legacy names continue to function. Rojo users must upgrade to v7.7.1 or higher before the switch. The Properties widget will show only __Content fields, dropping the old __Id entries.
- Migration takes effect November 11, 2026
- Legacy string IDs (TextureId, MeshId, SoundId, etc.) become Content properties (TextureContent, MeshContent, AudioContent)
- Existing Luau scripts require no changes; new scripts should use Content property names
- Rojo must be updated to v7.7.1+ before November 11
- Properties widget will display only __Content fields, hiding legacy __Id entries
What's changing
Roblox Studio will change how it serializes asset references on November 11, 2026. Instead of storing mesh, texture, video, and audio IDs as plain strings on properties like TextureId, MeshId, or SoundId, Studio will write them to new Content-suffixed properties — TextureContent, MeshContent, AudioContent, and so on. The shift affects every built-in class that references an asset by ID, from Decal and MeshPart to Sky, Sound, VideoFrame, and UI elements like ImageButton and ScrollingFrame.
Why it matters
The old string-based IDs tied every asset reference to a Roblox asset URL. Content properties decouple the reference from the string format, letting developers assign content programmatically without constructing asset URLs. That opens the door for procedural generation, runtime asset swaps, and future tooling that doesn't rely on string parsing. The announcement frames it as "foundation for assigning content to properties without relying on string-based asset IDs."
Luau scripts: no immediate action required
Scripts that read or write the legacy names — Decal.Texture, MeshPart.MeshId, Sound.SoundId — will keep working. Roblox is maintaining backward compatibility at the API level. For new code, the recommendation is to use the Content variants (Decal.TextureContent, MeshPart.MeshContent, Sound.AudioContent). Both property families expose the same data; the Content versions are the canonical path forward.
Rojo users must upgrade
Developers who sync projects with Rojo have a hard deadline. Rojo v7.7.1 or higher is required to handle the new serialization format. Versions below 7.7.1 will not correctly read or write the Content properties after November 11, which will break round-tripping between Studio and the file system. The upgrade is mandatory before the switch date.
Properties widget cleanup
In the Studio Properties panel, the legacy __Id fields (e.g., TextureId) will disappear, leaving only the __Content equivalents. This is a UI change only — the underlying data remains accessible through both property names in scripts.
Full migration list
The announcement includes a complete mapping. Notable entries:
ImageButton.HoverImage→ImageButton.HoverImageContentMaterialVariant.ColorMap→MaterialVariant.ColorMapContent(and MetalnessMap, NormalMap, RoughnessMap)SurfaceAppearancemaps for all four PBR mapsVideoFrame.Video→VideoFrame.VideoContentAudioPlayer.Asset→AudioPlayer.AudioContentSound.SoundId→Sound.AudioContentSkyskybox faces (SkyboxBk → SkyboxBackContent, SkyboxDn → SkyboxDownContent, etc.)CharacterMesh.MeshId(int64) →CharacterMesh.MeshContentPants.PantsTemplate,Shirt.ShirtTemplate,ShirtGraphic.Graphic→ Content variantsTrail.Texture,ParticleEmitter.Texture,Beam.Texture→ Content variantsPluginToolbarButton.Icon,Mouse.Icon,ClickDetector.CursorIcon→ Content variants
What's still unclear
Roblox hasn't specified whether the legacy properties will eventually be deprecated or removed from the API entirely, only that they "keep working" for now. There's also no word on how this affects asset delivery, caching, or the content ID format used in rbxassetid:// URLs. Developers relying on custom serialization or third-party tooling beyond Rojo should audit their pipelines before November 11.