{"status":"ok","data":[{"id":4977292,"url":"https://devforum.roblox.com/t/4977292","title":"Increasing the Minimum Draw Distance to 500 Studs and Other Auto-Quality Level Improvements","summary":{"new":["Key Takeaways","On all platforms, the draw distance at the lowest quality level is automatically moving from 200 to 500 studs and will also ramp up much faster for initial quality levels. This shows more of your world on lower-end devices and makes water and beams scale better.","Test it in Studio through Studio Settings > Rendering > Editor Quality Level.","Hi Creators,","Our long-term vision for auto quality-level scaling is to have the engine scale quality smoothly across all device capabilities to balance performance while maintaining artistic intent. We want to give creators more freedom to build to their aesthetic vision instead of to the lowest common denominator, while ensuring that players still get the best experience possible for their device’s capabilities.","There’s a long roadmap ahead towards achieving that vision. As a first step, here are the changes we announced at RDC and are introducing today:","Minimum draw distance is increased to 500 studs from 200 studs even at the lowest quality level","Draw distance will ramp up more aggressively at lower quality levels","Terrain water will retain transparency even at lower quality levels","Beams will scale more gracefully at lower quality levels","To make room for these improvements on lower-end devices, we’ve rebalanced how features scale at lower quality levels. Through extensive performance testing and statistical analysis, we have confidence that these changes will maintain the current performance and stability characteristics on low-end devices, while significantly improving the quality of the experience on such devices.","Before and After comparison of increasing the minimum draw distance from 200 to 500 studs. Notice how the houses at the end of the street are only visible at 500 studs","What’s Changing","Draw Distance","The draw distance is increasing from 200 to 500 studs at the lowest quality level and ramps up much faster at the first few quality levels. These are the draw distances at first 4 quality levels:","Manual Player Graphics Quality (1-10)","Auto Internal Engine Quality Level (1-21)","Previous Draw Distance (studs)","New Draw Distance (studs)","Keep in mind that we may continue to tune these values across the platform as we improve automatic scaling, so we recommend not designing around exact numbers.","Terrain Water and Beams","We’ve also tweaked the following gameplay-affecting visual features to be more consistent at low quality levels:","Terrain water can now be transparent across all quality levels. (Previously water was opaque at low quality levels.)","Beams no longer aggressively scale the number of segments by quality level.","Before and After comparison of terrain water at QL1","Before / After comparison of beams with varying number of segments at QL1","Best Practices","These changes will roll out automatically for every game, so there’s nothing you need to turn on. This is what we recommend to make sure your game gets the most out of these improvements:","Test your game’s visuals at all quality levels in Studio. You can change the quality level in Studio Settings > Rendering > Editor Quality Level.","Check your streaming target radius setting! If you can’t see more of your scene when increasing to high quality levels, the objects may not have streamed in.","Avoid modulating visual effects by reading UserGameSettings.SavedQualityLevel. This makes it more difficult for us to have scalability apply automatically, and we are planning on deprecating this API in the future.","What’s Next","We hope that the majority of experiences will benefit from these changes. In the future, we plan to give you more ways to communicate with the engine on how your game should scale, especially when the Engine cannot automatically infer your intent. You’ll be able to tell the engine what features and objects matter most in your world so scalability keeps your vision in mind. We want creators to be able to work transparently with the engine’s scalability, instead of “against” it, while retaining the simplicity of a system that doesn’t need hand-tuning per each device and engine technology.","For example, if you’re making a claustrophobic horror game, high-fidelity lighting and shadows would likely be much more important to your game than extra draw distance. The work here today helps us to improve the defaults as a first step before improving on the fine-tuned controls down the line. Please give us feedback below on specific scenarios that are especially difficult with today’s auto-scaling mechanisms.","Similar to beams, we’re also working on improvements to particle emitters so that the Rate property will no longer aggressively scale emission rate by quality level.","Finally, we’re also improving how the engine picks the right quality for each device, and what options your players can directly set, so players can get the best visuals their hardware can handle. Stay tuned!","The Rendering team"],"improved":[],"fixed":[]},"image_urls":["https://devforum.roblox.com/secure-uploads/uploads/original/5X/1/c/7/6/1c767f22c88d63687bb94cd69ad182c80b9d91ea.gif","https://devforum.roblox.com/uploads/short-url/hoLhXVdPZJumE2K0ml44dtiGkL4.png?dl=1","https://devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/optimized/5X/7/9/f/1/79f18c7c5788f0f6e44a8bb238e89eb923e70926_2_690x229.png","https://devforum.roblox.com/uploads/short-url/bmP4qpaABlWlIBrUV1am5m2ZgUo.png?dl=1"],"created_at":"2026-11-05T19:15:10.006Z","author":"sevmaker"},{"id":4977115,"url":"https://devforum.roblox.com/t/4977115","title":"[Full Release] Create and Sell Avatar Backgrounds on Marketplace","summary":{"new":["Key Takeaways","Starting today, all eligible Marketplace creators can create and sell Avatar Backgrounds. Now you can design the scene behind every avatar, not just the avatar itself.","Upload yours in Creator Hub. Uploads are limited to 1 Background/day at launch.","Hi Creators!","Starting today, all creators can upload and sell their own Avatar Backgrounds on Marketplace. Backgrounds give your avatar an environment to stand out in and enhance your profile.","Thank you to the creators in our pilot program, who published the first wave of backgrounds and helped us shape the tools. You can find their work on Marketplace now.","How to Create and Publish an Avatar Background","Before You Start","Enough Robux to cover the upload fee (200 Robux per background)","Roblox Plus to upload and publish","Your source image, exported to spec (see below)","Any 2D art tool. There is no Studio authoring step for Backgrounds.","Part 1: File Requirements","These are validated on upload:","Resolution: 2560 x 1440","No alpha channel. Export as flattened RGB with no transparency. We apply an edge fade automatically, so do not include your own.","Format: JPG, PNG, TGA or BMP","Color: sRGB","Note: many art tools export PNGs with an alpha channel by default, even when nothing is transparent. Check your export settings, or flatten and export as JPG.","As with any avatar item, Backgrounds must follow our Community Standards and Marketplace Policy.","Part 2: How Backgrounds Work and Best Practices","How a Background Works In 3D","Your image gets projected onto a cyclorama: a curved plane behind the avatar, bent so there’s no visible seam between the wall and the floor, similar to a backdrop in a photo studio. The avatar renders in 3D standing in front of it.","How Backgrounds Work on the Web","The profile page on the web works differently. There’s no 3D scene and no camera. Your background renders as a flat 2D image behind the avatar’s rendered thumbnail, so the cyclorama curve, floor bend, and camera movement described above don’t apply there.","Practically, this means the profile shows your image closer to how it looks in your source file. The safe area guidance below still matters because the avatar thumbnail sits in the center frame and covers the same region.","We expect web profile rendering to move toward the full 3D treatment over time, so build for the cyclorama. A background composed for the 3D scene will hold up on the web, but not the other way around.","Template Zones","The 2D template for backgrounds has four zones:","Transparent Area. We apply an alpha edge in this region to blend the background into UI elements.","Safe Area. Where your important content should live. Visible at every camera position and untouched by the curve.","Distortion Area. Heavily foreshortened. We recommend ground texture and gradients only rather than detailed subjects.","Avatar Location (lower center). The avatar stands here.","Best Practices","Push height (e.g. trees, buildings) into the far background.","Give the avatar a clear floor to stand on. Keep the center readable and keep foreground elements low in the composition.","Don’t let tall objects cross the floor-to-wall boundary.","Part 3: Upload and Publish","Go to the Creator Dashboard and select Create > Avatar Item > Background.","Upload your 2560 x 1440 file.","Validation check. The upload runs automated checks on resolution, alpha channel, and format. Fix any failure before continuing.","Fill in Title and Description.","Click Create and accept the 200 Robux upload fee.","Once your background passes review, publish it from your Creations page.","Fees and Publishing","Avatar Backgrounds fall under standard Marketplace publishing economics with some restrictions. At launch:","Upload Fee: 200 Robux","Price Floor: 200 Robux","Upload Limit: 1 Background/day at launch. This lets everyone take part while keeping early volume manageable, and we’ll revisit the limit as we learn more. There’s no limit on publishing.","Eligibility: Making UGC Backgrounds is a Plus benefit: Creators must have both ID Verification AND Roblox Plus to both upload and publish UGC Backgrounds. Group uploads are supported.","A background sets the stage for your avatar. We can’t wait to see the worlds you build!","As always, we’d love your feedback. Ask any questions in the comments below.","Why is there an upload limit?","We review every background before it goes live. A limit at launch keeps review times reasonable while everyone gets a chance to take part. We’ll revisit it as we learn more.","Can Avatar Backgrounds be Limited?","Yes, all publishing options are available for Backgrounds, including Limited."],"improved":[],"fixed":[]},"image_urls":["https://devforum.roblox.com/uploads/short-url/3zS7saO9mVJTwn8TtNZx1JsPFaE.png?dl=1","https://devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/5X/1/9/1/4/19149f5b35d86d1c9271f7fe0b92306fc567a880.png","https://devforum.roblox.com/secure-uploads/uploads/original/5X/3/9/d/7/39d72bd65ab55c9741be4c6455a160b968e90710.gif","https://devforum.roblox.com/uploads/short-url/r2lcFoTUDHQOTKIvwk6jv6RC3Or.jpeg?dl=1"],"created_at":"2026-11-05T17:33:31.113Z","author":"cookiecoveredcream"},{"id":4975849,"url":"https://devforum.roblox.com/t/4975849","title":"Studio MCP Server Updates: Open Cloud Access in Your MCP Client and Asset Import Workflows","summary":{"new":["Key Takeaways","MCP now has full access to Open Cloud; connected agents can help you manage your game beyond building Studio. This includes setting up developer products and game passes, changing game settings, reading analytics, and importing assets. A new permission system lets you choose what agents can access in each game.","We’re also adding 3 new Skills that teach agents to use Open Cloud, manage permissions, and import assets.","[Update] November 5, 2026","[Update] Known issue: In a place that hasn’t been saved to Roblox, execute_luau can’t make HTTP requests. Your client can only reach domains on your HTTP allow list, and you can’t add domains until the place is saved. We’re working on a fix.","Until then, save your place with File ⟩ Save to Roblox or File ⟩ Publish to Roblox , then add the domains you need under Connect to the internet ⟩ HTTP domain allow list . Thanks for trying out the feature all","Hi Creators,","Making a game on Roblox isn’t only building it. You also import every asset you need manually, set up monetization, change settings, publish updates, and monitor its analytics to check how it’s doing. Most of that is managed in Creator Hub, away from where you build.","Today, we’re expanding the Studio MCP server beyond creation. Your MCP client can now call all Open Cloud APIs from the same chat where it edits your place. You choose which ones it can use for each game. We’re also releasing three new Skills that help your agent call Open Cloud, manage permissions, and import models from Blender and other 3D tools.","Manage Your Game From Your MCP Client","Your MCP client can now call Open Cloud with the open_cloud_invoke tool. It can only use the permissions you’ve turned on.","Here’s what you can do from the same chat where it edits your place:","Set up a store: Create developer products and game passes, with prices and icons, from one prompt.","Change game settings: Update game and place settings, publish, or restart servers without opening Creator Hub.","Check how an update did: Read your game’s analytics after you publish.","Pull in data from your own service: Call an API you allowlist, and use the response in your place.","To manage permissions, open Assistant, click … ⟩ Settings, then select the MCP Permissions tab. Or click MCP in the bottom-right corner of Studio, then select the MCP Permissions tab.","Permissions are saved to your account, for each game. Collaborators set their own.","You choose:","Open Cloud scopes: Which Roblox APIs the agent can call.","Upload folders: Which folders on your computer it can upload from.","Save & load data: Whether data store and memory store calls work from execute_luau.","Connect to the internet: Whether scripts can make HTTP requests, and to which domains.","Here are the sections you’ll likely use most:","What it lets the agent do","Publish & manage assets","Upload models and images, and check their status","Look at your game","Read game and place settings, version history, and analytics","Edit your game","Change game and place settings, publish, and restart servers","Save & load data","Read and write data stores and memory stores from Luau","Connect to the internet","Make HTTP requests from Luau to domains you allow","Money & monetization","Create and edit developer products and game passes","See the full list in our documentation. Our Skills tell agents to ask you before using permissions that involve money, players, secrets, or publishing. They also tell agents not to work around a permission you’ve turned off.","Import Assets From Your Other Tools","Ask the agent to bring a model from Blender, Maya, or any tool that exports asset types such as GLB or FBX into the place you have open. It exports, uploads, and inserts the model, then compares the result against the source and fixes what the import changed:","Scale and rotation: Resized to real-world size and turned to match the source.","Textures and colours: Dropped textures restored, and grey parts recoloured.","Anchoring and placement: Anchored and set on the ground, clear of other objects.","Here’s a sped-up video of Claude Code importing a model from Blender, then fixing its scale and missing textures.","To use it, turn on Publish & manage assets and approve the folder your exports go into. Uploads are permanent and go through moderation like any other asset. Our import Skill tells the agent to confirm with you before uploading. You’re responsible for what’s uploaded to your account, including uploads an agent makes for you.","Skills for Open Cloud, Permissions, and Import","We’ve added three new Skills to teach agents how to use these improvements. As with all Skills, agents connected via MCP will have access to them automatically. We’re adding:","rbx-open-cloud-usage: How to call Open Cloud with open_cloud_invoke, find the right endpoint, and handle errors.","rbx-permissions: Works out which permissions a task needs, checks which are on, and asks you for only the missing ones.","rbx-import-asset: Imports a model from an external 3D tool, then checks and fixes it. It builds on the other two.","You’ll find them in the Skills tab. Open Assistant, click … ⟩ Assistant Settings, then select Skills. To change one to fit your workflow, select it and click Duplicate, then edit your copy. Your copy replaces the original, but won’t get our future updates. For more, see Skills.","Other Improvements","MCP status in Studio: When you have a place open, the bottom-right corner of Studio now shows whether the MCP server is ready. You can check at a glance, and click it to open settings.","Playtests run in the background: Starting a playtest from your MCP client no longer pulls Studio to the front, so you can keep working while the agent tests.","MCP stays on after restart: Fixed a bug where the MCP server setting could turn itself off when you restarted Studio.","More reliable connections: Fixed bugs where Studio could show “No clients connected” while a client was connected, or drop off after reconnecting. Each place also gets a new Studio ID when you switch places, so agents don’t target the wrong one.","What’s Next","We’ll keep adding Skills for common workflows in the coming months and continue to roll out MCP features to support your workflows. Let us know which workflow you’d like a Skill for next, and which permissions you’re missing.","Happy creating!","The Roblox Studio Team","Click here to view","Do I need an Open Cloud API key?","No. Studio handles access for you, limited to the permissions you’ve turned on for that game.","If I work with collaborators, do my permissions apply to them?","No. Permissions are saved per person, for each game. Each collaborator chooses their own.","Does this work with the Assistant built into Studio?","No. These permissions and Skills apply to external MCP clients only.","Can the agent delete assets it uploads?","No. Open Cloud can’t delete or archive models or images. If you want to remove one, use the Creator Dashboard. This is why our import Skill tells the agent to ask before uploading.","My agent says an endpoint refused a permission I’ve already turned on. What happened?","Some Open Cloud endpoints accept API keys but not the token Studio uses for MCP. You can’t fix this from your permissions. The agent will use a Studio tool instead, or point you to the Creator Dashboard.","Why can’t my agent write to a data store even with the permission on?","Data stores also need Game Settings → Security → Enable Studio Access to API Services. That’s a game setting, separate from your MCP permissions.","Can the agent turn on permissions itself?","No. Only you can change your permissions in Studio.","Whose account do imported assets go on?","The owner of the game. If a group owns it, uploads go on the group."],"improved":[],"fixed":[]},"image_urls":["https://devforum.roblox.com/uploads/short-url/yEcthRp41q250A6LhHYhi55A6Yl.png?dl=1","https://devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/optimized/5X/f/2/d/5/f2d5449a5636f4cbffd94978c7c88d7d82a8ed45_2_666x500.png","https://devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/5X/8/f/8/9/8f89de11be4a84ce3c0e2e87cda1447e96eb5d02.png"],"created_at":"2026-11-04T22:20:11.032Z","author":"1987rab"},{"id":4975616,"url":"https://devforum.roblox.com/t/4975616","title":"PlayerCharacterDestroyBehavior Will Be Default on November 11","summary":{"new":["Key Takeaways","On November 11th, we’ll make PlayerCharacterDestroyBehavior = Default behave the same as Enabled. This will make it so that when a player leaves or a character respawns, the server will automatically destroy the old Player or Character instance, which prevents a common class of server memory leaks.","If your game relies on the old behavior, you can temporarily set the property to Disabled while you update your code.","Hi Creators,","What’s Changing","We introduced PlayerCharacterDestroyBehavior as an opt-in property almost three years ago in this announcement. About 16% of games have opted in, and all Studio templates now ship with it enabled. With Phase 2 of the rollout, it will become the default.","Starting November 11, Destroy will be called on:","Player instances, 5 seconds after PlayerRemoving handlers run. This short delay keeps data saving code that yields before reading the Player’s children working. The engine only holds a weak reference during this window, so the Player can still be garbage collected normally.","Character models, right after CharacterRemoving handlers run.","What Could Break","Code that reads a Player’s children well after they leave, or a Character’s children after yielding in CharacterRemoving, will no longer find them. Re-parenting a destroyed Player or Character will also fail.","Migrating a Common Pattern","The most common case we’ve seen is saving player data on leave, where the handler yields before reading values from the Player. To migrate, read the values you need at the start of the handler, before any yield, and pass them along from there.","-- Before: yields first, then reads from the Player (breaks)","Players.PlayerRemoving:Connect(function(player)","task.wait(10)","local points = player.leaderstats.Points.Value -- player has been destroyed","saveData(player.UserId, points)","-- After: reads from the Player first, then yields (works)","Players.PlayerRemoving:Connect(function(player)","local userId = player.UserId","local points = player.leaderstats.Points.Value","task.wait(10)","saveData(userId, points)","The same approach applies to CharacterRemoving: copy anything you need from the Character before yielding.","What You Should Do","If your property is already Enabled, no action is needed. If it’s set to Default, set it to Enabled and playtest your experience before November 11, with a focus on data saving and leaderboard logic. If something breaks, you can set the property to Disabled, but treat this as a temporary measure.","At the end of February, we’ll move to Phase 3 where opting out will no longer be available and the property will be fully removed, applying this behavior across every experience. Please use this time to update your code and let us know below if you run into issues.","Please share any questions or issues in the replies. Thank you!","Happy Building,","Roblox Engine Team"],"improved":[],"fixed":[]},"image_urls":[],"created_at":"2026-11-04T19:52:09.067Z","author":"m0bsterlobster"},{"id":4975546,"url":"https://devforum.roblox.com/t/4975546","title":"Upcoming Changes to Asset Properties: Content Property Serialization Switch","summary":{"new":["Key Takeaways","Starting November 11, 2026, Studio saves asset references, like mesh and texture IDs, in a new Content format. The new *Content properties (like .TextureContent) fully support everything the legacy properties (like .Texture) did. Your existing places and Luau scripts keep working, and Rojo users need to update to v7.7.1 or higher.","In the Properties widget, the old __Id property will no longer appear, leaving only __Content.","Hi Creators!","Starting November 11, 2026, Studio will save asset references, like the mesh or texture a part uses, in a new Content format. We’re transitioning from legacy string-based asset ID properties (e.g., MeshId, Image) to standard Content properties (e.g., MeshContent, ImageContent). This sets the foundation for assigning content to properties without relying on string-based asset IDs, so you can design more flexible games and generate more of your game procedurally.","If you write Luau: No action is required. Scripts that use legacy names like Decal.Texture keep working. For new scripts, we recommend the new names, like Decal.TextureContent. The new *Content properties support everything their legacy counterparts did.","If you use Rojo, you need to update it to v7.7.1 or higher before November 11.","Click here to view a full list of all the properties that are being migrated:","BeforeAfter","TextureId ImageButton.HoverImageContent ImageButton.HoverImageContent","TextureId ImageButton.PressedImageContent ImageButton.PressedImageContent","TextureId MaterialVariant.ColorMapContent MaterialVariant.ColorMapContent","TextureId MaterialVariant.MetalnessMapContent MaterialVariant.MetalnessMapContent","TextureId MaterialVariant.NormalMapContent MaterialVariant.NormalMapContent","TextureId MaterialVariant.RoughnessMapContent MaterialVariant.RoughnessMapContent","TextureId TerrainDetail.ColorMapContent TerrainDetail.ColorMapContent","TextureId TerrainDetail.MetalnessMapContent TerrainDetail.MetalnessMapContent","TextureId TerrainDetail.NormalMapContent TerrainDetail.NormalMapContent","TextureId TerrainDetail.RoughnessMapContent TerrainDetail.RoughnessMapContent","TextureId SurfaceAppearance.ColorMapContent SurfaceAppearance.ColorMapContent","TextureId SurfaceAppearance.MetalnessMapContent SurfaceAppearance.MetalnessMapContent","TextureId SurfaceAppearance.NormalMapContent SurfaceAppearance.NormalMapContent","TextureId SurfaceAppearance.RoughnessMapContent SurfaceAppearance.RoughnessMapContent","VideoId VideoFrame.VideoContent VideoFrame.VideoContent","TextureId ScrollingFrame.BottomImageContent ScrollingFrame.BottomImageContent","TextureId ScrollingFrame.MidImageContent ScrollingFrame.MidImageContent","TextureId ScrollingFrame.TopImageContent ScrollingFrame.TopImageContent","SoundId AudioPlayer.AssetContent AudioPlayer.AudioContent","SoundId Sound.SoundIdContent Sound.AudioContent","VideoId VideoPlayer.AssetContent VideoPlayer.VideoContent","TextureId UIDragDetector.ActivatedCursorIconContent UIDragDetector.ActivatedCursorIconContent","TextureId UIDragDetector.CursorIconContent UIDragDetector.CursorIconContent","TextureId UserInputService.MouseIconContent UserInputService.MouseIconContent","TextureId ClickDetector.CursorIconContent ClickDetector.CursorIconContent","TextureId DragDetector.ActivatedCursorIconContent DragDetector.ActivatedCursorIconContent","TextureId Mouse.IconContent Mouse.IconContent","ContentId MaterialVariant.TexturePackContent MaterialVariant.TexturePackContent","ContentId SurfaceAppearance.TexturePackContent SurfaceAppearance.TexturePackContent","ContentId TerrainDetail.TexturePackContent TerrainDetail.TexturePackContent","ContentId ScreenshotHud.CameraButtonIconContent ScreenshotHud.CameraButtonIconContent","TextureId AdGui.FallbackImageContent AdGui.FallbackImageContent","TextureId ImageHandleAdornment.ImageContent ImageHandleAdornment.ImageContent","TextureId PluginToolbarButton.IconContent PluginToolbarButton.IconContent","TextureId Trail.TextureContent Trail.TextureContent","TextureId Pants.PantsTemplateContent Pants.PantsTemplateContent","TextureId Shirt.ShirtTemplateContent Shirt.ShirtTemplateContent","TextureId ShirtGraphic.GraphicContent ShirtGraphic.TextureContent","int64 CharacterMesh.MeshIdContent CharacterMesh.MeshContent","int64 CharacterMesh.BaseTextureIdContent CharacterMesh.BaseTextureContent","int64 CharacterMesh.OverlayTextureIdContent CharacterMesh.OverlayTextureContent","TextureId Sky.MoonTextureIdContent Sky.MoonTextureContent","TextureId Sky.SkyboxBkContent Sky.SkyboxBackContent","TextureId Sky.SkyboxDnContent Sky.SkyboxDownContent","TextureId Sky.SkyboxFtContent Sky.SkyboxFrontContent","TextureId Sky.SkyboxLfContent Sky.SkyboxLeftContent","TextureId Sky.SkyboxRtContent Sky.SkyboxRightContent","TextureId Sky.SkyboxUpContent Sky.SkyboxUpContent","TextureId Sky.SunTextureIdContent Sky.SunTextureContent","AnimationId Animation.AnimationIdContent Animation.AnimationContent","MeshId FileMesh.MeshIdContent FileMesh.MeshContent","TextureId FileMesh.TextureIdContent FileMesh.TextureContent","ContentId PackageLink.PackageIdContent PackageLink.PackageContent","TextureId BackpackItem.TextureIdContent BackpackItem.TextureContent","TextureId Beam.TextureContent Beam.TextureContent","TextureId ParticleEmitter.TextureContent ParticleEmitter.TextureContent","ContentId BaseWrap.HSRAssetIdContent BaseWrap.HSRContent","ContentId BaseWrap.TemporaryCageMeshIdContent BaseWrap.TemporaryCageMeshContent","ContentId WrapLayer.TemporaryReferenceIdContent WrapLayer.TemporaryReferenceMeshContent","Required Action for Tooling (Rojo & External Tools)","If you use external sync tools or file parsers, please pay attention to the following requirements.","Rojo Users: Please update your Rojo installation to v7.7.1 or higher. Earlier versions of Rojo do not parse some of the new  structure and may fail to sync asset properties properly.","Without the update, opening a migrated place or model file (e.g., .rbxm) in an older version of Rojo may result in Rojo errors similar to:","[ERROR rojo] Property type mismatch: Expected ShirtGraphic.Tags to be of type String, ContentId, Tags, Attributes, MaterialColors, or BinaryString, but it was of type SharedString on instance ...","[ERROR rojo] Malformed rbxm file: .../Test-Model.rbxm","Other Tools: Ensure any custom file parsers support the new <Content name=\"...\"><uri>...</uri></Content> format and handle <null /> values appropriately.","Note: If a place failed to open with an error like:","Content property conflict on __ : '..' and '..Content' have different values. A file must not contain both with different values.","it means the file was written by a tool that saved both the legacy *Id property and the new *Content property with different values. To fix this, consider updating every tool that reads or writes the file.","What’s Changing","1. File Serialization (.rbxlx & .rbxl)","When saving place files or model files (.rbxl, .rbxlx), Studio will write asset references using the new Content property format instead of legacy string fields.","XML (.rbxlx): Asset references will serialize under a <Content> element using a nested  tag rather than a flat string URL.","Binary (.rbxl): Asset references will serialize with typed source prefixes (Uri, Object, Opaque, None).","2. Studio Properties Inspector","In the Studio Properties widget, legacy *Id properties will be hidden and replaced by their corresponding *Content properties.","This visual change ensures consistency with how properties are serialized under the hood.","Naming Pattern Summary","In most cases, property names migrate according to a standard pattern:","Legacy Property Name","New Content Property Name","Example Class","MeshId → MeshContent","__ (bare name)","MouseIcon → MouseIconContent","Backward Compatibility & Scripting","We’re making sure this transition is smooth for all existing places and codebases:","Existing Place Files: Studio and our engine will seamlessly read older place files saved with legacy properties. When saved again, Studio will write the updated Content format.","Luau Scripting: Reading and writing legacy property names in scripts (e.g., Decal.Texture) remain fully supported and will not become read-only. However, we recommend using *Content properties (e.g. Decal.TextureContent) as the source of truth moving forward.","Give Us Your Feedback","If you encounter any unexpected behavior during testing or have questions regarding external tool integration, please leave a reply below!","The Engine and Studio teams"],"improved":[],"fixed":[]},"image_urls":[],"created_at":"2026-11-04T19:00:24.304Z","author":"Penpen0u0"}]}