 You'll run into the need to read text or various files from your game's file system. Maybe it's a JSON file that configures things or a high score file from your player. Let's go ahead and make a really simple demo where I can show you how to do that. We've got a node 2D here. Just call it main. We'll save it as main. I'm in an empty Godot 4 project. We'll add a label. It's just a place to have some text and we'll add in the inspector just some placeholder text that shows what we're going to plan on targeting. We're going to load some text from a text file and display it in our Godot project. We'll run our game, make that our current, and you'll see placeholder text is here. All right, now let's set up our file. So we'll go to new. You can actually add a text file here in Godot and we'll call it greeting.txt and save it. You can open txt files in the Godot script editor. You can also open it in a different editor. But for us, we're just going to say, hello world, I'm from an external file. Go ahead and save that. Nothing's changed here. We haven't written any code yet. We'll attach a script to main and we'll just leave the defaults for now and click create. I'm going to go ahead and delete the process function and I'm going to clear out ready. I'm going to make this a bit bigger for ourselves. Clear out these comments. You might not see this void type signature. That's okay. I enable type signatures just so it's more clear, especially in screencasts, what the code is doing. Now we want to load our text from greeting.txt. So you can actually drag this into the script editor and you get this URL for our file which is kind of nice. We'll put that in a variable. We'll call it label text file. Let me make this bigger again so we can see it. So we've got our label text file. That's the path to it. Then what you can do is Godot has this file access API. You can call it .open. And then what you do is you pass in the resource. So label text file and then you pass in the permissions. So you can have read, you can have write, you can have write, you can have write, read. I don't know the difference between read, write and write, read. That's kind of funny. But if you wanted to write to a file, you would do .write. If you wanted to read from it, read. We're just reading. So we'll just set the proper flags there. That returns a file object, right? If we command click this and open it, we'll see that it returns a file access object. So we're going to go ahead and we'll just call that file. And let's actually take a second and let's rename this. So what I just did there is I double clicked this variable name and I pressed command D or control D. I'm on Linux or I'm on Mac. If you're on Windows or Linux, it'll be control. And you can then rename these both at once. Let's press the right arrow key. Let's actually rename this to res for resource because it's not a file. It's a resource. I think that makes it a little clearer. And then what you do, and we'll just say text is equal to file.get as text. Isn't that pretty nice? You can just get everything in the file as a text file. And we'll go ahead and we'll do print debug just to show what's in there. So click that, run the game because we want the ready to run again. And it says hello world, I'm from an external file. So in our code in a variable we have greeting dot txt in our code that we can do things with. So now we'll see remember we have label and you can just set the text property. You can just assign it our value text. Go ahead. I'm just going to run the game again because we want that ready loop to run again. And you can see we set the text in our game from an external file. Now this is pretty basic and I'm just showing you the foundation of what will be used for things like high scores, player config, save data. All this stuff right comes down to in the end. You're either your opening files, whether it's a text file, a JSON file, or maybe you're interacting with a database like a SQL like database. You're opening it, you're reading from it, and then in the future we'll write to it and adjust with that. But for now, I just thought I'd show you how to do this really quick too. You want to run it in ready, right? If we did it in the process loop, it would happen every frame. We only want to do it once our scene is ready. And in your various nodes, maybe you'd attach a script and add to their ready callback. But for this case, we'll just do it here. And then let's go ahead and we'll just change this. And we'll say, and I'm a new line, save that, run the game again, and it's there. So that's pretty cool, and that's file access. Pretty simple, but an easy NGD script which I like. It's really great. It's easy to do. And you get cross-platform loading of those values. I hope that helps. Thank you very much for watching.