Yamtaggler Posted November 7, 2025 Report Posted November 7, 2025 (edited) So, perhaps unwisely, I have decided to try and get a dedicated vintage story running on my laptop. I have have also recently decided to dip my toes into the Linux Ubuntu operating system for the very first time, which has led me to a soulcrushing fun afternoon of learning. I've been following the guide on the wiki relatively successfully up until this point, where I try $ server/server.sh start after which I receive the message fatal! cannot create new /var/vintagestory/data! aborting! I think it has something to do with permissions for the folder it's in, but I'll be honest gang I don't know what I'm doing here. Any help would be deeply appreciated, thanks in advance! Edited November 7, 2025 by Yamtaggler
Yamtaggler Posted November 8, 2025 Author Report Posted November 8, 2025 (edited) I fixed it! For anyone looking in the future, I just had to use $ sudo server/server.sh start and that got it running! I did have to get the new user I added for the VS server to the sudolist or whatever it's called so it could use sudo, but that's something you can google pretty easy. Also, if (like me) you don't know which IP address to put in client side, it's the Internal IP you used to do port forwarding. EDIT: this worked for me but not for anyone trying to join. Not Ideal! Edited November 8, 2025 by Yamtaggler
Solution Diff Posted November 8, 2025 Solution Report Posted November 8, 2025 Sounds like your Linux experimentation is going pretty well so far, that's great to see! Now to be a killjoy, I really wouldn't recommend starting it with sudo. If a hacker discovers a vulnerability in the VS server, you could be hosing your entire system. Instead, since the server's telling you which directory it wants, I'd recommend doing something like sudo mkdir /var/vintagestory/ sudo chown vintagestoryuseryoucreated /var/vintagestory Which will create the directory and give it wholly over to the vintage story user you created so it can do whatever it needs to with it. On Linux, if you haven't already run into this info yet, files and folders can be owned by a user and assigned to a user group, and permissions are split into groups of three. There are read, write, and execute permissions, and those can be given to the owner of the file, given to the group associated with the file, and blanket permissions for everyone else. The chown command changes the owner of a file or folder, and if you needed to edit permissions, you can use chmod like this: sudo chmod u+rwx /path/to/file sudo chmod g-wx /path/to/file sudo chmod o-rwx /path/to/file Which gives the user (owner) of the file all permissions, removes write and execute permissions from the associated user group, and removes all permissions from all others. In general on Linux, you'll typically want to avoid running things with sudo, particularly software that will stay running for a long time. It often works, but it takes absolutely all the safeties off. Many services will outright shut themselves down and refuse to run if they notice they're running as the root user.
Yamtaggler Posted November 8, 2025 Author Report Posted November 8, 2025 Hmm, that's a snag alright. I have a couple of questions: 1) I have already run the sudo server start and now it works without sudo. Do I need to do something special to fix it or is it OK as long as I don't run it with sudo again? 2) I'm assuming I should take the new user off of the sudo list, so does that mean the above commands should be run from the base user 3) Do you have any recommendations for places to help a new linux user learn some of this stuff Regardless, thanks for letting me know! I'm still trying to figure out how to get other people onto my server, but it's nice to catch these kinds of things early.
Diff Posted November 8, 2025 Report Posted November 8, 2025 10 minutes ago, Yamtaggler said: Hmm, that's a snag alright. I have a couple of questions: 1) I have already run the sudo server start and now it works without sudo. Do I need to do something special to fix it or is it OK as long as I don't run it with sudo again? 2) I'm assuming I should take the new user off of the sudo list, so does that mean the above commands should be run from the base user 3) Do you have any recommendations for places to help a new linux user learn some of this stuff Regardless, thanks for letting me know! I'm still trying to figure out how to get other people onto my server, but it's nice to catch these kinds of things early. Oh good, if it now works without sudo, that oughta be the end of it. The server probably went in and fixed the permissions for you. Don't run it with sudo again, and it's probably wise to remove the new user from the sudo list. If the server doesn't need sudo and can be started from the new user you created, all is well. I don't have a good resource off the top of my head, honestly you seem to be doing pretty well on the same path I took way back when: Try stuff out, break everything, keep backups, don't be afraid to burn it all down and reinstall from scratch. And don't be afraid to ask questions and share what you're learning, just like you're doing here! 1
Diff Posted November 8, 2025 Report Posted November 8, 2025 Oh and on the joining, that's a stickier topic. When you connect to the internet, you connect through your router. When your computer goes and talks to other computers, they see the router's IP address. You can figure out what that is by typing "What is my IP address" into your search engine of choice. But that also goes for every other device connected to your router. If someone from the outside tries to talk to your router's IP, your router doesn't know what device it's trying to talk to. Could be any of them. So you need to go into your router's configuration portal or app and tell it to route incoming traffic on <whatever port your server is running on> and send it specifically to the computer you're running the server on. You mentioned port forwarding, so I think you might have done some or all of that already? In that case, the missing piece ought to be finding out that external IP address that your router is using and connect to that.
Yamtaggler Posted November 8, 2025 Author Report Posted November 8, 2025 (edited) I got into my router's settings from a browser and while the guide I've been following said to specifically set the ports to 42420-42420 the only IP address I interacted with was the internal IP address for the laptop I'm running the server on. I seem to have closed the guide I used to figure out how to set up the port forwarding rule, but I think I just put a * in the slot for external IP. The interesting part is that I'm able to join the server on my computer no problem using the Internal IP, but the IP I get from searching it up doesn't work for my friend on a different network. I was going down a rabbit hole trying to figure out how to set a Static IP but after having to reset my router I think I'm gonna call it a night lol. Edited November 8, 2025 by Yamtaggler
Diff Posted November 8, 2025 Report Posted November 8, 2025 When you come on back to it, if you can't get your network to mind its manners a last resort option could be something like Hamachi. Or Tailscale, I've been learning Tailscale lately and it's pretty nifty. They're intended to be used to let devices talk to each other as if they were on one big LAN together. Hamachi's the "traditional" choice here, but I believe Tailscale Funnels would also let you smuggle outside people into your Linux server without having to faff around with you-specific stuff like your specific router's configuration.
Yamtaggler Posted November 8, 2025 Author Report Posted November 8, 2025 Hamachi is still around? Holy moly, I remember using that like 10 years ago to try and play LAN games over the internet with friends. Emphasis on try, lol.
Lynomin Posted January 17 Report Posted January 17 For anyone running into the same problem as the op, the filepath in the script /var/vintagestory/data is different from the one in the online guide /home/vintagestory/data Changing it in server.sh to the latter will remove the need for sudo as the server user should already have access to the directory /home/vintagestory
Recommended Posts