Read the first error, not the last
Startup and performance are not the same failure. A server that never reaches a ready state needs the method below; one running but struggling under load is covered separately in how to find what is lagging your server, and one that starts cleanly but nobody can find is its own problem, walked through in why your server is not showing in the list. This guide covers the console exiting, restarting in a loop, or never printing a ready line.
Whatever the game, the method is the same. Scroll to the first error in the log, not the last — a crash usually throws several lines as dependent steps fail in sequence, and only the first is the actual cause. Change exactly one thing, restart, and read the log again before touching a second setting. Keep a copy of every attempt; a support request that quotes the exact line gets answered fast, one that says "it crashes" does not.
Where that log lives depends on the game. Minecraft keeps latest.log in its logs folder and saves a crash to the crash-report directory instead, per PaperMC's troubleshooting guide. Rust writes console output to whatever path you pass with -logfile on the launch line. ARK keeps its logs inside the Saved folder alongside world and configuration data, and Valheim's launch script takes its own -logFile argument for the same purpose. If the server is restarting in a loop, read the file on disk rather than the console — a fast loop scrolls the console past the first error before you can read it.
Java version mismatches and the Minecraft EULA gate
Minecraft Java Edition ties each release to a specific Java version, and starting the wrong one is one of the most common startup failures on the game. PaperMC's own documentation lists Java 21 for Paper 1.20 through 1.21.11, moving to Java 25 on current builds. The Minecraft Wiki's server tutorial gives the same progression from the other direction: 1.12+ needs Java 8, 1.18+ needs Java 17, 1.20.5+ needs Java 21, and current versions need Java 25. The wiki notes older releases can run on somewhat newer Java too — 1.16 on Java 17, 1.18 on Java 20 — but the safe move is matching the version the table names rather than assuming the newest install works. java.lang.UnsupportedClassVersionError: ... has been compiled by a more recent version of the Java Runtime means newer bytecode is being loaded by an older Java runtime. Check the Java executable that actually starts the server, then update or select the supported Java runtime for that server build.
The second Minecraft-specific gate is the EULA. The wiki documents that a file called eula.txt is generated the first time you run the server, containing the line eula=false, and states plainly: "If you don't do this, the server will shut down immediately when you try to start it." Change the line to eula=true, save the file, and start the server again — Mojang requires that acceptance before any server will start. Minecraft-specific notes sit on the Minecraft availability page.
A world or save the build won't open
A world written by a newer game version is not guaranteed to open in an older one. Minecraft's downgrading tutorial documents the client-side warning: the world-select menu refuses to load, naming the version it was last played in against the version you are running, and warning the load "could cause corruption" it cannot guarantee will work. A dedicated server has no such dialog — it simply fails during world load, so after a version rollback check the level's last-played version against the jar you are running, rather than waiting for a prompt that will never appear. Every world carries a version tag tied to the build that last saved it, and an older build cannot read newer data.
If you rolled a server back, or restored a copy from a build that had already updated by the time you took it, this is the first thing to check. The fix is the same regardless of game: keep the newest working copy of the world aside, match the server build to the version the save was created on, and only then decide whether to move forward — a save opened once by the wrong build can end up in a state a later, correct-version load will not undo.
A plugin or mod built for a different version
On Minecraft specifically, a plugin declares the Paper API it uses inside its own plugin.yml, in an api-version field. Minor API versions are supported from 1.20.5 onward, so a declaration can include a minor version such as 1.20.6. A server whose version is lower than the declared api-version refuses to load the plugin. That field is a minimum API requirement, not proof that any plugin build will work on every newer server. A mod on a modded loader fails the same way in spirit — compiled against one game version's code while the server runs another.
Either way, use a plugin or mod build documented as compatible with your server, and add one back at a time after any version change instead of restoring the whole folder at once — the log will then show exactly which one is the outlier. Do not edit a plugin's descriptor to force compatibility.
A port something else already has
Failed to bind to port is Minecraft's own wording for this. The wiki names the most common cause as an IP typed into server-ip in server.properties that matches no interface on the machine — leaving the field blank binds to all of them. Alternatively, it says, the error can mean the port or IP is "already in use or that you do not have permission to use," usually a second process still holding it. Most other games reserve more than one port and fail the same way under a different name: Rust separates the UDP game port (server.port) from the TCP RCON port (rcon.port); ARK adds a peer port at game port + 1 and a UDP query port for Steam's browser; Valheim uses the port you set plus the next one up.
An expired or duplicated Steam token
A Steam Game Server Login Token that is invalid or expired stops the server outright. Facepunch's documentation for the token system states it directly: "Specifying an invalid / expired key will prevent the server from starting." A server with no token at all still starts — Facepunch describe that as a server-list ranking penalty, not a startup failure, so a missing token is not what to chase if the server refuses to boot; that symptom belongs with why your server is not showing in the list instead. A token also stops working once reused on a second server, and changing the Steam account's password invalidates every token issued under it at once. The full walkthrough on generating and diagnosing a token is in how to create a Steam Game Server Login Token.
A bad launch parameter or a quoting mistake
Launch lines mix flags, key-value pairs, and free text, and free text is where quoting mistakes hide. Facepunch's Rust example shows the pattern: +server.hostname "Name of Server as Shown on the Client Server List" — the quotes are required because the value has spaces; dropping them truncates it at the first space or breaks the parser. Valheim's launch script quotes the same way, with -name "My server" and -world "Dedicated". Palworld's arguments page uses a different shape: flags such as -port=8211 and -players=32 take their value after an equals sign, and mixing the two styles because a guide was written for a different game easily drops a value.
A mismatched quote, a stray space next to an equals sign, or a flag copied from a different game's guide is often enough to stop a server before its ready line — the log usually shows it as the very first line, not several lines in. Change one launch value at a time and read the log before touching the next, the same discipline as plugins, worlds and Java versions above.
Where ForgeWorld Gaming fits
ForgeWorld Gaming current order availability: Minecraft (Paper, Vanilla and Forge) Standard: Paper and Vanilla 8–56, Forge 8–48 player slots at CA$15.89–CA$65.99/month; Terraria Standard: 4–24 player slots at CA$8.99–CA$20.49/month; Valheim Standard: 3–10 player slots at CA$15.99–CA$23.49/month; Garry’s Mod Standard: 8–56 player slots at CA$15.99–CA$83.49/month; Factorio Standard: 8–24 player slots at CA$11.99–CA$23.49/month; Palworld Standard: 4–8 player slots at CA$23.99–CA$33.99/month; Enshrouded Standard: 4–16 player slots at CA$21.99–CA$41.99/month; Satisfactory Standard: 4–6 player slots at CA$21.99–CA$22.99/month; Conan Exiles Standard: 8 player slots at CA$41.99/month; 7 Days to Die Standard: 4–8 player slots at CA$16.49–CA$20.49/month; Rust Standard: 50 player slots at CA$31.49/month; Project Zomboid Standard: 8 player slots at CA$41.99/month; ARK Standard: 10 player slots at CA$31.49/month. Other game orders and other sizes are temporarily paused. Hosted in Iowa, United States. Prices are in Canadian dollars, with no setup fee and cancel any time. Your server is set up automatically after payment. Check the current Minecraft availability, Terraria availability, Valheim availability, Garry’s Mod availability, Factorio availability, Palworld availability, Enshrouded availability, Satisfactory availability, Conan Exiles availability, 7 Days to Die availability, Rust availability, Project Zomboid availability and ARK availability, or browse game availability before planning a purchase.