Getting the transcript
Reading the captions from YouTube. A video nobody has opened here before takes 10 to 30 seconds; this page fills in on its own.
Getting the transcript
Reading the captions from YouTube. A video nobody has opened here before takes 10 to 30 seconds; this page fills in on its own.

Roblox Learn · @RobloxLearn
Where viewers went back to watch this video again, from YouTube's public Most replayed graph, lined up with what was said at that moment.
Most replayed moment #1
8:217.4x the video's typical replay level
assets are large and can take up a ton of RAM. See here the difference between a handful of assets in sound service, resonant, and client RAM, and storing them in server storage. If you're using the new audio API and have a lot of audio assets, consider setting autoload to false on your audio player instances
Said at 8:13
Most replayed moment #2
9:393.8x the video's typical replay level
sound effects into a single file. But due to how Roblox compresses and loads audio assets and handles repeat playbacks, this approach is often much worse than using individual files. We don't recommend it. The performance dashboard at create.roblock.com provides key insights into your client
Said at 9:31
Most replayed moment #3
1:443.7x the video's typical replay level
numbers are much higher than ondevice. With that out of the way, let's talk common problems and best practices. I mentioned it in a previous video, but enabling streaming is a great first step to minimizing memory usage. Rather than manually loading and unloading instances to conserve memory, streaming handles it
Said at 1:36
The graph counts replays. It does not show where viewers stopped watching.
Words
1,879
Runtime
10:49
Speaking pace
174wpm
Reading time
8min
174 words per minute, between the 160 25th percentile and the 181 median of 349 measured videos. That distribution comes from the 349-video hook study.
Opening (first 30 seconds)
This video is about reducing memory usage in Roblox experiences, specifically client memory usage. Even as available server memory has increased over time, the amount of RAM in your typical consumer device has not. Or not by much anyway. A huge percentage of the devices on Roblox are older phones. And even today, you can easily walk into a store and walk out with a brand new laptop, tablet, or smartphone that only has four, three, or even 2 GB of memory. If you want your experience
87 words, the words spoken in the first 30 seconds at 174 words per minute.
Free, no signup. See how the first 30 seconds hold attention, with rewrites.
Sentence shape
| Measure | This transcript |
|---|---|
| Sentences | 117 |
| Average words per sentence | 16.1 |
| Longest sentence | 42 words |
| Questions asked | 0 |
| Sentences containing a number | 9 |
Most used terms
Filler phrases
1 in total: like 1.
A literal whole-word count of the same phrase list the Prepublish browser extension uses, so a phrase inside another word is not counted and a phrase used in its ordinary sense still is. It is a count and not a judgement.
Free, no account. See where attention is likely to drop, with a rewrite for each weak line. The free check shows the scores and the one issue costing the most. Or run it on the words above first.
Free · No login · See a sample audit first if you prefer.
What this transcript is
Every word below is the caption track YouTube publishes for this video, pulled from the video itself and reproduced unchanged. It is not Prepublish's writing, not a summary, and not a re-transcription: it is the video's own published captions. English captions, generated automatically by YouTube, in the video’s original language. Source: the video on YouTube. A channel that would rather this page did not exist can ask for its removal through the contact page, and it is removed.
This video is about reducing memory usage in Roblox experiences, specifically client memory usage. Even as available server memory has increased over time, the amount of RAM in your typical consumer device has not. Or not by much anyway. A huge percentage of the devices on Roblox are older phones. And even today, you can easily walk into a store and walk out with a brand new laptop, tablet, or smartphone that only has four, three, or even 2 GB of memory.
If you want your experience to reach the broadest possible audience, keeping client memory usage low is a great way to do it. Let's dive in. Hi everyone, it's Andrew from Roblox. Before we get started, a few disclaimers. Stuff takes space. I know, I know, revelatory insight from yours truly. But the easiest way to minimize client memory usage is to build smaller experiences that have less stuff. The Roblox engine has a ton of automatic optimizations to help the situation and more in the works.
We'll talk about a few in this video. But choosing what to include in your experience will always be a balancing act between technical constraints and your artistic vision. Speaking of artistic vision, I'm not advocating for compromising on yours. If you want to build a large openw world game with highfidelity assets, memory usage be damned. Please go make it and let me know when it's done so that I can go play it. Just be aware that you're settling for a smaller addressable audience.
For accurate memory numbers, use the Roblox client on a real device. The device emulator in Studio is great for checking your user interface and controls, but when you test in Studio, it runs both the server and the client locally on your development machine. The numbers are much higher than ondevice. With that out of the way, let's talk common problems and best practices. I mentioned it in a previous video, but enabling streaming is a great first step to minimizing memory usage.
Rather than manually loading and unloading instances to conserve memory, streaming handles it automatically based on a radius around the character. With a few clicks and no extra code, you can dramatically reduce client memory usage. This place is fairly large with lots of terrain and a decent number of models. Here it is with streaming disabled. Here's streaming enabled with a large radius. And here's streaming enabled with that radius hald.
Granted, trees are obscuring much of the view in this scene, but you have to really peek through the gaps to spot any visual difference, and the memory savings are just about 1 gigabyte. If streaming causes issues for your experience, visual or otherwise, take a look at the documentation before you uncheck the box. There are lots of properties you can tune to minimize the impact on players while still saving on memory.
You might need to add a replication focus if players move frequently between zones or mark some models atomic or persistent, but it's unlikely you need to disable the feature entirely. Textures are a huge part of your experience's visual identity, but there's no way around it. They use a lot of memory. And because textures are images with an X and a Yaxis, they don't just double in size, they quadruple in size as you move from 256x 256 to 512 x 512 to 1024 x 1024 and beyond.
Here you can see the world's ugliest ottoman. My apologies if your home contains something similar with low, high, and needlessly high resolution textures applied to them. The largest of the three textures takes up 16 times the memory of the smallest one. And it's not until you scale them up that you can start to tell the difference. You can check your own texture sizes in the developer console under place memory, graphics, texture.
The Roblox engine automatically downscales texture resolution in certain situations, but unless a surface takes up a large portion of the screen, it's unlikely its texture needs to be above 512 x 512. Or maybe you don't even need a texture. Using built-in materials saves even more memory, although you might want to reserve them for less consequential objects so that your experience still looks unique. Using the right texture for the right object becomes even more important if you use physically based rendering, PBR.
For a quick discussion of how PBR works, I've recruited Curb Monkey, a principal environmental artist here at Roblox. Hi builders, Curb Monkey here. Roblox supports two types of physically based rendering materials via surface appearance for meshes with custom UV data and material variance for parts using world projection. Both surface appearance and material variants use a set of four texture maps: color, normal, roughness, and metalness.
Together, these maps let you accurately simulate an object's color, roughness, and reflection. When creating a new PBR texture set, I find it helpful to evaluate your work in an indoor environment. Doing this will make sure the system is using a dynamic cube map for more detailed and accurate reflections. When you move your asset outdoors, you may notice a slight drop in quality as the cube map for outdoor models skips any place geometry within the scene and only shows the skybox texture.
You may think while creating your maps that downsampling some of your PBR textures within the set, for example, keeping your color maps and normal map at 1024 while reducing your roughness and metal maps to 512 would save you some memory. Don't do this. While some game engines support mixed resolutions, Roblox automatically packs textures and upscales smaller maps to match the largest texture in the set. This will also result in worse visuals without any memory savings.
To avoid this, always use the same texture resolution for all your maps with inside your PBR texture sets. Another way to optimize textures is through the use of trim sheets. We have a fantastic article about trim sheets from friend of the channel Schlimp that I'll link in the description and many online tutorials exist. Essentially, trim sheets break a texture into narrower rows or columns so that you can use and reuse them on a variety of meshes which can further conserve memory.
Complex meshes can be another huge source of memory usage. Meshes are closely tied to visual fidelity, of course, but there's a sweet spot for everything. Here's my favorite rock with a needless number of additional vertices next to the original version. They look identical, but one uses much more memory. Looking ahead a bit, better automated handling of textures and meshes is a major area of emphasis for us in the engine.
If you're watching this video in 2026 or beyond, it's likely our guidance here has changed. So, check out the documentation for the latest. Another aspect of minimizing memory usage is the collision fidelity property. Here to discuss is Azie from our developer relations team. >> Hi everyone. Collision fidelity specifies how the Roblox engine handles certain physics calculations. Each improvement in collision fidelity comes with a minor bump in memory usage, so you want to use the right setting for the right object.
You can probably set most small anchored parts to box or hall and never notice the difference. Default is a good choice for complex messes that need to behave believably. You might use precise convex decomposition for the very occasional object that needs to behave hyperrealistically for gameplay reasons, such as an unusual shape bouncing down an uneven surface. At box fidelity, see how the horseshoes never wrap around the pegs.
When we increase the collision fidelity, they behave more realistically and use more memory. For parts in the distance that don't need the interactivity, you can, of course, disable collisions altogether. Now, back to you, Andrew. Thanks so much, Aussie. Longtime viewers might remember Wellblander's coverage of humanoids in our performance optimization video. Humanoids are heavy. If an NPC doesn't need to move around, it probably doesn't need to be a humanoid.
You can add an animation controller and an animator to a character model to give it some personality without consuming nearly as much memory. But humanoids are more than just NPCs. They're also other players. If you plan to create a large world with lots of players, try to space those players out to keep memory usage in check on low-end devices. Cramming 200 players into a tight space can challenge any device. If you want to design a highly social experience, test early and test often.
Sound is one of those things people forget about since it's generally not computationally intensive, but audio assets are large and can take up a ton of RAM. See here the difference between a handful of assets in sound service, resonant, and client RAM, and storing them in server storage. If you're using the new audio API and have a lot of audio assets, consider setting autoload to false on your audio player instances so that assets only load into client memory as needed.
If you're using sound instances instead of the new API, you can use a script to move instances in and out of the workspace or sound service based on what a player could possibly need in a particular area. Rather than uploading several variations of an audio asset for variety, consider whether modifying properties or applying effects to an existing asset can provide sufficient contrast. For a pickaxe, you could upload a single satisfying funk and then endlessly vary its sound.
Even simple changes like lowering the volume or changing playback speed can do the trick. You can achieve even more unique results with randomized pitch shift values, echoes, or my personal favorite, a flanger. And no, I don't know what a flanger does either. I just love the word. All of these sounds use the same audio asset. Have a listen. A common misconception is that you can save on memory by combining many short sound effects into a single file.
But due to how Roblox compresses and loads audio assets and handles repeat playbacks, this approach is often much worse than using individual files. We don't recommend it. The performance dashboard at create.roblock.com provides key insights into your client memory usage. You can get a sense of the sorts of devices your players are using, memory usage in flat gigabytes or as a percentage of the device total, and most critically client crash rate.
As you update your experience over time, it's easy to focus more on content than performance. Keeping an eye on this dashboard can help you avoid the pitfall of performance in your experience degrading over time. Each one of these optimizations might seem minor, megabytes here, kilobytes there, but in larger experiences, they add up in a big, big way. Low-end devices often only have 1.3 GB of memory available for Roblox.
So, even a few hundred megabytes can make a world of difference in terms of client stability and addressable audience. For much, much more information on minimizing client memory usage, check out the documentation at create.roll.com. Thanks for watching. You can probably set most small anchored boxes. [Laughter]
The words are the caption track's own and nothing is reworded or re-transcribed. Paragraph breaks are placed between sentences so the text reads as prose.
Free tools for your own script: paste a draft and see where it stands before you record it.
Paste your draft and see where viewers are likely to drop off, with a rewrite for each weak line.
Paste the first 30 seconds of your own draft for a hook score and rewrites.
Check your draft against YouTube's advertiser-friendly guidelines before you record it.
Read this channel's public videos and transcripts, and download a writing brief for it.