Thank you, it's great to actually understand how systemd works. I was unaware this was possible, as before i was just copy/pasting the info for .service files when I was setting up services. This would likely work perfectly for me, but I'm unsure how I'd be able to view the running terminal output of the service.
How I ended up doing it was with a shell script using a while loop. I put a 10 second pause in so I can easily stop the server without it instantly starting again incase I want to close the terminal window to stop the server from looping its restart. I manually turn on the autorestart script once after boot and it restarts. I would've used and until loop but the infrequent server crash im getting exits with code 0, so the until loop would assume the program was intentionally stopped. A while loop continues forever until you close the terminal window (close the autorestart bash script.)
I suppose it would be even easier with ssh to use yours and @xAcid9's suggestion of using a service. I could just systemctl start/stop in ssh if i need to put the server down for something. I really would need a way of seeing what the server normally outputs to the terminal window though. Is there a way to see that using a service? systemctl status wouldn't happen to show the terminal output for the program, would it? I would definitely use a service if I can easily ssh into and out of the terminal outputs for the server. I'd have no need to really VNC into the server, I could do everything from ssh
Thank you guys for the help