# Victus Cloud Documentation — Full Export Canonical documentation: https://victuscloud.com/documentation This file is generated from the same structured article registry rendered by the website. Victus Cloud is a connected ecosystem with distinct surfaces: Launchpad/main website for discovery and free claims, Victus Hub for customer navigation, Victus Billing for paid commerce, Victus Panel for server operations, the official Discord bot for linked notifications and support, and the Waiting Proxy for managed Minecraft wake-on-join. ## Getting Started New to Victus Cloud? Start here for the big picture and your first deploy. ### What is Victus Cloud? Canonical URL: https://victuscloud.com/documentation/getting-started-what-is-victus-cloud A plain-English tour of everything Victus Cloud hosts — game servers, VPS, Discord bots and web apps — and how the panel, billing and Drive fit together. Victus Cloud is a hosting platform for the things gamers and developers actually run: Minecraft (and other game) servers, full virtual machines, Discord bots, and web apps. Everything is managed from a modern control panel, paid for with a single credit balance, and backed by a Discord-first support team. This article gives you the lay of the land before you spin anything up. The four things we host Game servers — Minecraft on Paper, Purpur, Spigot, Fabric, Forge, Vanilla, Velocity and more, plus other games. Each is provisioned as a panel server (an "egg") with console, files, backups and scheduling built in. VPS — full KVM/libvirt virtual machines with Ubuntu templates, root SSH access, snapshots, rescue mode and one-click app installs. It is a real machine, not a container. Discord bots — managed hosting for Node.js, Python and Java bots, including a Lavalink audio node for music bots. App hosting — Code-Server (VS Code in the browser), Nginx / PHP / WordPress, databases and similar web workloads. Where each thing lives Site URL What it is for Victus Panel [control.victuscloud.com](https://control.victuscloud.com) Operate servers, VPS, bots and apps: power, console, files, backups, networking and more. Billing & store [billing.victuscloud.com](https://billing.victuscloud.com) Buy plans, add credits, manage your account and affiliate/reseller settings (Paymenter). Drive drive.victuscloud.com Personal cloud file storage (Nextcloud) for backups, assets and sharing. Main site victuscloud.com Marketing, docs and sign-up. Status status.victuscloud.com Live uptime and incident history for every service. How you pay: credits Victus uses a single currency called credits (roughly 1 credit ≈ 1 USD). You top up credits from billing and spend them on any service. Accepted payment methods are UPI (India), PayPal, Crypto (LTC) and EasyPaisa (Pakistan). Every new account also starts with 3 free credits so you can try things before paying. We have free hosting Get started at no cost — check out our [free hosting](/free). Building something on top of Victus? If you resell hosting or want to automate provisioning, there is a Reseller API at `https://control.victuscloud.com/api/reseller/v1`. You mint a Bearer key (prefixed `rslr_`) from the Reseller API page in the panel, keep a prepaid credit balance, and create servers in the `vps`, `game`, `bot` and `app` categories programmatically. See the Reseller API section of these docs for the full reference. Next step Ready to try it? Read "Create an account and claim 3 free credits", then "Buy your first server". ### Create an account and claim 3 free credits Canonical URL: https://victuscloud.com/documentation/getting-started-create-account-free-credits Sign up for Victus Cloud, verify your account, and get the 3 free credits every new account receives so you can start hosting right away. Your Victus account is created once and works everywhere — the control panel, the billing/store site and Drive all recognise it. Every new account receives 3 free credits (credits are the platform currency, roughly 1 credit ≈ 1 USD), which is enough to try a free server or put toward your first paid plan. Create your account Go to [billing.victuscloud.com](https://billing.victuscloud.com) — this is where accounts and billing live. Open the Register / Sign up page and enter your email, a username and a strong password. Submit the form and confirm your email address if you are prompted to verify it. Log in. You now have a single Victus identity that also signs you into the control panel and Drive. Your 3 free credits The 3 free credits are added to every new account automatically. Check your balance on the billing dashboard — you do not need a coupon or promo code. What you can do with 3 credits Claim a free Minecraft server plan to test the game panel end to end. Put the credits toward a small paid plan (credits ≈ USD, so 3 credits covers an entry-level service). Explore the panel, Drive and billing before spending any real money. One account per person Victus enforces anti-abuse rules: creating extra accounts to collect more free credits ("alting") can get all linked accounts suspended. Keep everything on one account. Keep free servers alive Free servers currently have a weekly renewal deadline shown in Victus Panel. If you miss it, the server is suspended and later deleted at the displayed retention deadline. Keep backups, and use Victus Billing only when you choose to upgrade to a paid plan. ### Buy your first server Canonical URL: https://victuscloud.com/documentation/getting-started-buy-first-server A walkthrough of the Victus billing panel: add credits, choose a plan, configure it, and watch it appear in the control panel ready to use. Servers are ordered from the billing site (billing.victuscloud.com), which runs on Paymenter. You pay with credits, and once the order is provisioned the service shows up in the control panel automatically. This guide covers adding credits and placing your first order. Step 1 — Add credits Log in to [billing.victuscloud.com](https://billing.victuscloud.com). Open your account balance / add funds page. Enter the amount and choose a payment method: UPI (India), PayPal, Crypto (LTC) or EasyPaisa (Pakistan). Complete the payment. Your credit balance updates when the payment is confirmed. Credits ≈ USD 1 credit is roughly 1 USD. Your 3 free credits count toward any order, so you may only need to top up the difference. Step 2 — Choose and configure a plan Browse the store and pick a category: game server, VPS, Discord bot or app hosting. Select a plan sized to your needs (RAM/CPU/disk for game & VPS; runtime for bots/apps). Set any configurable options the plan offers — for example the location, the game type/egg (Paper, Purpur, Fabric, Forge, etc.) for a Minecraft server, or the OS template for a VPS. Add the plan to your cart and review the total in credits. Step 3 — Checkout Go to checkout and confirm the order; the cost is deducted from your credit balance. Wait for provisioning — this is usually automatic and takes a moment. Open [control.victuscloud.com](https://control.victuscloud.com); your new service now appears in your server list. It provisions to the panel automatically You do not set up the server by hand. Once the order completes, Victus creates the panel server for you and links it to your account — just open the control panel and start it. Not enough credits? If checkout says your balance is too low, go back to the add-funds page, top up, then return to your cart. Orders will not provision on an unpaid/underfunded balance. Next: head to "Log in to the game/VPS panel" to power on your new server and open its console. ### Log in to the game/VPS panel Canonical URL: https://victuscloud.com/documentation/getting-started-panel-login-sso How to reach the Victus control panel, sign in with your Victus account (SSO), and find, start and manage the services you have ordered. Everything you run — game servers, VPS, bots and apps — is operated from the control panel at [control.victuscloud.com](https://control.victuscloud.com). It uses the same Victus account you created on the billing site, so there is no separate password to remember (single sign-on). Sign in Open [control.victuscloud.com](https://control.victuscloud.com). Sign in with your Victus credentials — the same email and password you use on billing.victuscloud.com. If you are already logged in on the billing site, SSO will carry your session into the panel; you may not need to type your password again. You land on the dashboard, which lists every server, VPS, bot and app on your account. One account, two sites Billing (billing.victuscloud.com) is where you buy and pay; the control panel (control.victuscloud.com) is where you operate what you bought. SSO links them so a single login works across both. Power controls Open a service from the dashboard to reach its management screen. Every server has power signals: Start, Stop, Restart and Kill. Use Kill only when a server is frozen and will not stop cleanly — it force-terminates the process and can risk unsaved world/data. What the tabs do (game server) Tab Use it to Console View live output and type server commands. Files Browse, edit and upload files (configs, plugins, worlds). Databases Create and view MySQL databases for the server. Schedules Automate tasks like restarts and backups on a cron-style timer. Users Add subusers and control what they can access. Backups Create and restore backups of the server. Network Manage allocations (IP/port) for the server. Startup Change startup variables, version, and the startup command. Settings Rename, reinstall and view server details. VPS access is different A VPS is a full machine — you also get root SSH access, snapshots and a rescue mode from its panel view, on top of the browser console. See the VPS section of these docs for the details. Can't log in? Make sure you are using your billing credentials on control.victuscloud.com. If SSO seems stuck, log out of both sites and sign in fresh on the panel. Still stuck? [Open the support chat](https://victuscloud.com/support) or ask in Discord (see "Getting help"). ### Where things live: panel vs billing vs Drive Canonical URL: https://victuscloud.com/documentation/getting-started-where-things-live Victus is split across a few sites. This map explains which site to use for which task so you never go looking in the wrong place. New users sometimes look for their server on the billing site, or try to pay on the control panel. Victus deliberately separates "buying" from "operating" from "storing files". Here is the full map so you always know where to go. I want to… Go here URL Start/stop a server, open the console, edit files, make backups Control panel [control.victuscloud.com](https://control.victuscloud.com) Buy a plan, add credits, change payment, manage my account or affiliate/reseller Billing / store [billing.victuscloud.com](https://billing.victuscloud.com) Store, back up or share files in personal cloud storage Drive drive.victuscloud.com Read docs, blog and general info, or sign up Main site victuscloud.com Check if a service is down / see incidents Status status.victuscloud.com Control panel — the operations centre The control panel (control.victuscloud.com) is where the actual servers live. Power controls, console, Files, Databases, Schedules, Users, Backups, Network, Startup and Settings are all here. If you are trying to do something to a running service, it is on the panel. Billing — the store and wallet Billing (billing.victuscloud.com) is where money and account details live: purchasing plans, topping up credits (UPI, PayPal, Crypto/LTC, EasyPaisa), invoices, renewals, and affiliate/reseller settings. Your account is created here, and it is the login that SSO carries into the panel and Drive. Drive — your files Drive (drive.victuscloud.com) is a Nextcloud-based personal cloud. Use it to keep off-server backups, share large files, and store assets you want available outside a specific server. It is separate from a server’s own Files tab in the panel. Same login everywhere All of these use your one Victus account. Thanks to SSO you generally sign in once and move between the panel, billing and Drive without re-entering your password. Quick rule of thumb Buying or paying → billing. Running or managing → control panel. Files you want to keep anywhere → Drive. Something looks broken → status. ### Getting help Canonical URL: https://victuscloud.com/documentation/getting-started-getting-help The fastest ways to get support on Victus Cloud — the on-site support widget, Discord, and tickets — plus the status page for outages. When you get stuck, Victus support is quick to reach. There are three main channels — the on-site support widget, Discord, and tickets — plus a status page for confirming outages. This article explains when to use each. On-site support widget Every Victus site (the main site, billing and the control panel) has a support widget — usually a chat button in a corner of the page. It is the fastest way to send a message without leaving the page you are on. Use it for quick questions and to reach staff directly. Discord + tickets Victus support is Discord-first. Join the Victus Discord to chat with the community and staff, and open a support ticket for anything that needs a private, tracked conversation — billing problems, provisioning issues, refunds, or account access. Tickets keep your history in one place so any staff member can pick up where the last left off. Widget vs ticket Use the widget or general Discord for quick questions. Open a ticket for anything account-specific or that needs a paper trail (payments, suspensions, data). Do not post passwords or API keys in public channels. Check status first for outages If a service seems down, check https://status.victuscloud.com before opening a ticket. It shows live uptime and any ongoing incidents, so you can tell a platform-wide issue (already being worked on) from a problem with just your server. Help us help you faster Say which service it is — game server, VPS, bot or app — and its name or ID from the panel. Describe what you did, what you expected, and what actually happened. Paste relevant console or error output (redact secrets, keys and passwords). Mention any recent change: a new plugin, a version bump, an edit to the Startup tab, or a payment. Free servers and renewals If a free server vanished, check whether it missed its weekly renewal — un-renewed free servers pause and are then deleted after the grace period. Support can advise, but deleted data past the grace period cannot always be recovered, so keep backups on Drive. ## Victus Ecosystem Launchpad, Hub, Billing, Victus Panel, Discord and the Waiting Proxy explained. ### Victus Cloud platform architecture Canonical URL: https://victuscloud.com/documentation/ecosystem-platform-architecture How Launchpad, Victus Hub, Billing, Victus Panel, the Discord bot and Waiting Proxy divide responsibility. Victus Cloud is one connected ecosystem, not one monolithic dashboard. Each surface owns a different job, while shared identity and trusted integrations make the hand-offs feel continuous. Component Responsibility Launchpad / main website Public website, documentation, sign-in entry points, onboarding and the free-server claim workflow. Victus Hub The signed-in customer home for platform-level navigation, account context, rewards and service discovery. Victus Billing Paid orders, invoices, credits, payment methods and recurring paid-service lifecycle. Victus Panel The main and only server operations panel: power, console, files, backups, databases, networking, schedules, users and free-hosting renewal. Official Discord bot Discord-side account linking, notifications, support and community automation. It does not replace Victus Panel. Waiting Proxy The managed Minecraft connection layer that wakes sleeping backends and transfers players when ready. Victus Panel terminology Victus Panel is a Victus-maintained fork of Pterodactyl. That describes technical lineage and API compatibility only; customers use Victus Panel, not a separate upstream panel service. Typical free-hosting request path A user signs in on Launchpad and submits a free-server claim. Launchpad and its backend integrations create or link the required account records. Victus Panel provisions and owns the server record, resources and free-service lifecycle. The Waiting Proxy maps the managed hostname to that server and requests wake actions through authenticated panel endpoints. The official Discord bot can deliver best-effort renewal and service notifications when the Discord identity is linked. ### Victus Hub guide Canonical URL: https://victuscloud.com/documentation/ecosystem-victus-hub-guide What Victus Hub is for, where server operations and billing belong, and how to navigate the ecosystem safely. Victus Hub is the customer-facing home across the Victus ecosystem. Use it to understand your account and discover or reach services. It coordinates navigation; it is not a duplicate server console or billing engine. Task Go to Claim free hosting or read guides Launchpad at victuscloud.com Start a server, read Console or edit files Victus Panel at control.victuscloud.com Buy a paid plan, pay an invoice or manage payment Victus Billing at billing.victuscloud.com Check platform incidents Status at status.victuscloud.com Community help and linked notifications Official Victus Cloud Discord Do not create one account per site Use the same Victus identity and the provided SSO/linking flows. Duplicate accounts can break ownership links and, for free hosting, can be treated as alting. ### What Victus Panel manages Canonical URL: https://victuscloud.com/documentation/ecosystem-victus-panel-guide A clear boundary for the main Victus server panel and the tasks that remain in Billing or Launchpad. Victus Panel at [control.victuscloud.com](https://control.victuscloud.com) is the main server panel. It is where all operational work happens after provisioning: power control, live output, files, backups, databases, schedules, subusers, allocations and startup configuration. Use Console for Start, Stop, Restart, Kill and live application output. Use Files or SFTP to edit and transfer server data. Use Backups, Databases, Schedules, Users, Network and Startup for their respective server resources. Use the panel free-hosting area for the current deadline and renewal action on a free service. Use Billing—not Victus Panel—to purchase paid services, pay invoices and manage payment methods. One server panel There is no separate upstream customer panel. “Victus Panel” is the product name throughout current documentation and support. ## Game Servers Deploy and run Minecraft and other game servers with console, files and backups. ### Create your first Minecraft server Canonical URL: https://victuscloud.com/documentation/game-servers-create-first-minecraft-server Order a Minecraft server on Victus, choose your software (egg) and version, then start it in the panel and connect your client. A Minecraft server on Victus is created by ordering a paid game plan in Victus Billing or claiming eligible free hosting from the main website, then managing it in Victus Panel. Each server has Console, Files, Databases, Schedules, Users, Backups, Network, Startup and Settings. The server software (Paper, Purpur, Spigot, Fabric, Forge, Vanilla, Velocity) is set by its template, and the exact version is chosen from Startup. Step 1 — Order and provision For paid hosting, order a Minecraft plan from [Victus Billing](https://billing.victuscloud.com). For free hosting, claim from [victuscloud.com/free](https://victuscloud.com/free); do not look for a recurring free order in Billing. Pick the software/egg for the plan if offered (Paper is the recommended all-round default). Wait for provisioning to finish — your service is then linked to a server on the game panel. Step 2 — Set the version and start it Log in to [control.victuscloud.com](https://control.victuscloud.com) and select your new server. Open the Startup tab and check the version variable (for example the Minecraft/build version). Leave it as latest, or set the exact version you want. Open the Console tab and press Start. On first boot the server downloads the JAR and generates files. If the log says you must accept the EULA, follow "You must accept the EULA", then Start again. Wait until the console prints "Done" — the server is now online. Step 3 — Connect Open the Network tab and copy the server address (IP and port / allocation). In Minecraft, add a server using that exact IP:port and join. Default port Java Minecraft uses port 25565. If your allocation uses a different port you must include it in the address (for example play.example.com:25580). Always take the address from the Network tab rather than guessing. You are live Once the console shows "Done", use Start / Stop / Restart on the Console tab to control the server any time. Next, make yourself op and set up backups. ### Server will not start / "unexpected error" Canonical URL: https://victuscloud.com/documentation/game-servers-will-not-start-unexpected-error A checklist for when a Victus server refuses to start or the panel shows an unexpected error — read the console, check the EULA, ports, memory and the JAR. When a server will not start, the answer is almost always in the Console tab. The panel replays the last output, and the reason it stopped (EULA, port, memory, a bad config, or the wrong JAR) is usually in the final lines. Work through this checklist top to bottom before opening a ticket. Read the console first Open the Console tab and scroll to the very last lines before it stopped. Look for a specific error keyword: "eula", "already allocated", "OutOfMemoryError", "Failed to bind", or a stack trace naming a plugin/mod. Match the keyword to the fixes below. Common causes and fixes What the console shows Fix You need to agree to the EULA Set eula=true — see "You must accept the EULA". Port is already allocated / Failed to bind A stale process or wrong port — see the "Port is already allocated" article. java.lang.OutOfMemoryError Not enough RAM or a leak — see "Out of memory / server keeps crashing". Error occurred during initialization of VM The version needs a newer Java than the egg provides — lower your MC version or check the Startup Java setting. Exception in a plugin/mod (stack trace) A broken or wrong-version add-on — remove the last thing you added. If it is "unexpected error" in the panel (not a Minecraft error) This usually means the daemon could not run the container — do a full Stop, then Kill (Console power menu), then Start. Confirm the service is not suspended. Check Victus Billing for paid invoices; for a free server, check the renewal status and deadline directly in Victus Panel. Check the Startup tab — a blank or invalid JAR/version variable stops the container from launching. Blame the last change If it worked yesterday and not today, whatever you changed last (a plugin, a config edit, a version bump) is the prime suspect. Undo that single change and try again. Still stuck? Copy the last ~20 lines of the console and open a Discord support ticket (or use the on-site support widget). The log text lets staff diagnose it far faster than "it won't start". ### You must accept the EULA Canonical URL: https://victuscloud.com/documentation/game-servers-accept-the-eula Minecraft refuses to run until you accept Mojang's EULA. Set eula=true in eula.txt via the Files tab, then restart. On its first start a Minecraft server writes a file called `eula.txt` and then stops, printing a message that you must agree to the Mojang End User Licence Agreement (available at https://aka.ms/MinecraftEULA). This is normal and happens once per server. You just need to change one line and start again. Accept it from the Files tab (easiest) Open the Files tab and find `eula.txt` in the server root. Open it for editing — you will see `eula=false`. Change it to `eula=true` and save. Go back to the Console tab and press Start. # eula.txt # By changing the setting below to TRUE you are indicating your agreement to the Minecraft EULA. eula=true No eula.txt yet? The file only appears after the server has tried to start at least once. If you do not see it, press Start, let it stop, then refresh the Files tab. One and done You only accept the EULA once per server. It stays accepted through restarts and updates. You would only need to redo it after a full reinstall that wipes files. ### "Port is already allocated" fix Canonical URL: https://victuscloud.com/documentation/game-servers-port-already-allocated Fix "Failed to bind" / "port is already allocated" on a Victus Minecraft server — align server.properties with your panel allocation and clear stale processes. A "port is already allocated" or "Failed to bind to port" error means something is already using the port the server tried to open — usually because `server.properties` has a port that does not match your assigned panel allocation, or a previous process did not shut down cleanly. Fix 1 — Match server.properties to your allocation Open the Network tab and note your primary allocation IP and port. Open the Files tab, edit `server.properties`, and set `server-port` to that exact port. Leave `server-ip=` blank (empty) so it binds to the allocation automatically. Save, then Restart from the Console tab. # server.properties server-ip= server-port=25565 # must equal your panel allocation port Fix 2 — Clear a stale process On the Console tab open the power menu and press Kill to force-stop any lingering process. Wait a few seconds, then press Start. Only use ports you were given You can only bind to allocations assigned to your server on the Network tab. Setting a random port will fail because it is not allocated to you. If you need an extra port (for a plugin, a query port, or a proxy), add an allocation on the Network tab if your plan allows it. Proxies and extra ports If you run a Velocity/BungeeCord proxy plus backend servers, each backend needs its own allocation and each `server-port` must point at its own allocation — never share one port between two running servers. ### Out of memory / server keeps crashing Canonical URL: https://victuscloud.com/documentation/game-servers-out-of-memory-crashing Diagnose OutOfMemoryError and repeated crashes on a Victus Minecraft server — right-size RAM, cut memory-hungry settings, and find the plugin/mod at fault. Repeated crashes on Minecraft are most often memory-related. A `java.lang.OutOfMemoryError: Java heap space` in the console means the server needed more RAM than your plan allows — either because the plan is too small for your content, or because a plugin/mod, a huge view-distance, or a runaway world is eating memory. Confirm it is memory Console shows `OutOfMemoryError`, "Server thread dump", or the server dies without a clean stack trace. The panel resource graph pins RAM at 100% right before the crash. Crashes cluster around chunk loading, big builds, world border expansion, or many players joining at once. Reduce memory pressure Lower `view-distance` in `server.properties` to 6–8, and set `simulation-distance` similar or lower. On Paper/Purpur, reduce entity and mob limits in the config, and enable the built-in anti-lag options. Remove plugins/mods you do not actually use — each one costs RAM. Pre-generate or trim your world instead of letting players explore endlessly (huge maps use huge memory). Restart on a schedule so memory is reclaimed regularly (see "Schedule automatic restarts"). Do not just crank -Xmx On Victus your maximum heap is bounded by the RAM in your plan; the panel sets the Java memory flags for you. Manually forcing a larger -Xmx than your plan has will make the container get killed, not run better. If you genuinely need more RAM, upgrade the plan. Find the culprit add-on If the crash log names a plugin/mod, remove that file from the `plugins`/`mods` folder and restart. If it is unclear, temporarily move half your plugins out, test, and narrow down by halving (binary search). Keep add-ons updated — a memory leak is often fixed in a newer build for your MC version. When RAM is genuinely the limit Modpacks (Forge/Fabric) and large communities need a lot more RAM than Vanilla/Paper. If you have trimmed settings and still hit the ceiling, move to a larger plan — see "Upgrade from free to paid". ### Low TPS and lag (how to fix) Canonical URL: https://victuscloud.com/documentation/game-servers-low-tps-and-lag Fix lag and low TPS on a Victus Minecraft server — measure TPS, tune view/simulation distance, control entities, and switch to Paper/Purpur. Minecraft aims for 20 TPS (ticks per second). When TPS drops the whole world runs in slow motion — mobs stutter, redstone lags, blocks break slowly. Lag is usually caused by too much being simulated per tick (view distance, entities, hoppers, redstone) rather than the network. Fix the server-side load first. Measure it In the console (or in-game as op) run `tps` — Paper/Purpur reports the 1m/5m/15m average. For a deep dive on Paper/Purpur run `spark profiler` (if the Spark plugin/mod is present) to see exactly what is eating tick time. Watch the CPU graph in the panel while players are on — sustained 100% CPU with low TPS means you are overloading the plan. Highest-impact fixes Lower `view-distance` to 6–8 and `simulation-distance` to 4–6 in `server.properties` — this is the single biggest lever. Switch to Paper or Purpur if you are on Vanilla/Spigot — they add major performance options (see "Switch software/JAR"). In the Paper/Purpur config, cap entities, merge dropped items, and reduce mob-spawn ranges. Kill entity farms and lag machines; use `/kill @e[type=item]` sparingly to clear dropped-item pileups. Limit redstone/hopper-heavy contraptions, which are notorious TPS killers. Server lag vs. your ping If TPS is a steady 20 but you still rubber-band, the problem is your connection/ping, not the server. Test from another network and check the panel ping/allocation before changing server settings. Some plans just need more CPU Minecraft tick performance is mostly single-thread CPU bound. If you have tuned everything and TPS still drops under normal player counts, you have outgrown the plan — upgrade for more CPU priority. ### Install plugins Canonical URL: https://victuscloud.com/documentation/game-servers-install-plugins Add Bukkit/Spigot/Paper plugins to a Victus server — upload the .jar to the plugins folder via the Files tab or SFTP and restart. Plugins add features to Bukkit-based software (Spigot, Paper, Purpur). They only work on those server types — Vanilla, Fabric and Forge do not load plugins (those use mods instead). A plugin is a single `.jar` file you drop into the `plugins` folder. You need Paper/Purpur/Spigot Plugins will not load on Vanilla, Fabric or Forge. If your server is one of those and you want plugins, switch the software first — see "Switch software/JAR (Paper/Purpur/Spigot/Vanilla)". Install a plugin Download the plugin .jar built for your exact Minecraft version (e.g. from SpigotMC, Hangar or Modrinth). In the panel open the Files tab and go into the `plugins` folder. Click Upload and add the .jar (or drag it in). For many/large files use SFTP instead — see "Upload files via SFTP". Restart the server from the Console tab so it loads. Watch the console for a line confirming the plugin enabled, then edit its generated config in `plugins//`. Match the version — and its dependencies A plugin built for 1.20 may crash or silently fail on 1.21. Always grab the build for your MC version, and install any required dependency plugins (for example many need Vault or an economy/permissions plugin). Manage without restarting the world You can Restart to load new plugins. Avoid live plugin-reload managers for adding/removing plugins — they can leave the server in a broken state. A clean Restart from the Console tab is the safe way. ### Install mods (Forge/Fabric) Canonical URL: https://victuscloud.com/documentation/game-servers-install-mods-forge-fabric Run Forge or Fabric mods on a Victus server — put mods in the mods folder, match the loader/version, and install the same mods on your client. Mods change the game itself and require a modded server type — Forge or Fabric — set by your server's egg. Unlike plugins, most mods must be installed on BOTH the server and every player's client, and the versions must match exactly. Mixing Forge mods with a Fabric server (or vice versa) will not work. Forge and Fabric are not interchangeable Fabric mods only run on a Fabric server; Forge mods only on Forge. Check each mod's page for the loader AND the Minecraft version before downloading. Set the loader, then add mods Make sure your server runs the Forge or Fabric egg. If not, switch software (this may require a reinstall — back up first). Open the Startup tab and confirm the Minecraft version and loader/build match the mods you want. Open the Files tab and go into the `mods` folder (create it if it does not exist). Upload each mod .jar into `mods` (use SFTP for a whole modpack — it is far faster than the web uploader). Restart from the Console tab and watch the log for load errors. Install the same mods on your client Install the matching Fabric/Forge loader in your Minecraft launcher for the same MC version. Put the same client-side mods in your client mods folder. Join the server — a mismatch usually shows as a "missing mods" or handshake/connection error. Running a modpack? For a known pack (CurseForge/Modrinth), use its server pack if provided, then upload the whole mods folder via SFTP. Modpacks need much more RAM than Vanilla — if it crashes on boot, check "Out of memory / server keeps crashing". ### Change the Minecraft version Canonical URL: https://victuscloud.com/documentation/game-servers-change-minecraft-version Change the Minecraft version of a Victus server from the Startup tab, back up first, and update your plugins/mods to match. The Minecraft version is controlled by a variable on the Startup tab. On most eggs you set the target version there and the correct JAR downloads on the next start. Upgrading is generally safe; downgrading (going to an older version) is risky because newer world data cannot always be read by an older version. Back up before you change the version A version change can rewrite world data and may trigger a reinstall that wipes files. ALWAYS create a Backup (Backups tab) or download your world first. Downgrades in particular can corrupt a world saved by a newer version. Change it Create a backup from the Backups tab (and/or download the world from Files). Open the Startup tab and set the version variable to the version you want (or "latest"). Save the change. Go to the Console tab and Restart. The new JAR downloads and the server boots. If nothing changed, the server may cache the old JAR — do a reinstall from the Settings tab (this can wipe files, so keep that backup). After changing Update every plugin/mod to a build for the new MC version — old ones are the top cause of post-update crashes. Check the console on first boot for version/incompatibility warnings. Tell your players to use the matching client version (and matching mods for modded servers). Snapshots and gaps Not every version/snapshot is available on every egg, and jumping across major versions can change world format. Move one major version at a time if you have a valuable world, testing after each step. ### Switch software/JAR (Paper/Purpur/Spigot/Vanilla) Canonical URL: https://victuscloud.com/documentation/game-servers-switch-software-jar Change your Victus server between Paper, Purpur, Spigot, Vanilla, Fabric, Forge or Velocity — via the Startup variables or an egg change, backing up first. The server software (the JAR) determines what your server can do: Vanilla is stock Minecraft; Spigot/Paper/Purpur are Bukkit-based and support plugins (Paper and Purpur add big performance gains); Fabric/Forge run mods; Velocity is a proxy that links multiple servers. On Victus the software comes from the server's egg, and some variants can be selected from the Startup tab. Software Plugins Mods Best for Vanilla No No Pure, unmodified Minecraft Spigot Yes No Plugins, basic optimisation Paper Yes No Best all-round: plugins + strong performance Purpur Yes No Paper plus extra tweaks/customisation Fabric No Yes Lightweight mods / modpacks Forge No Yes Large mods / classic modpacks Velocity Proxy plugins No Linking multiple servers behind one address Back up before switching Switching between Bukkit-based and modded software, or changing the egg, can require a reinstall that wipes server files. Create a Backup and/or download your world before you start. Switch it Back up (Backups tab) and note your current MC version. If your egg exposes a software/type variable, open the Startup tab, set it (e.g. Paper → Purpur, both Bukkit-based so the world stays), save and Restart. To move between families (e.g. Vanilla/Paper ↔ Forge/Fabric) you likely need a different egg — do a Reinstall from the Settings tab, or ask support to change the egg on your service. After it boots, re-add your plugins (Bukkit types) or mods (Fabric/Forge) as appropriate. Worlds usually carry across Bukkit types Vanilla, Spigot, Paper and Purpur share a world format, so moving between them normally keeps your world. Moving to/from modded (Forge/Fabric) can change the format and behaviour — test on a copy if the world matters. ### Upload files via SFTP Canonical URL: https://victuscloud.com/documentation/game-servers-upload-files-via-sftp Connect to your Victus server with an SFTP client to upload worlds, plugins and modpacks fast — using the host, port and username from the panel. The panel Files tab is fine for a handful of small files, but for a world, a full modpack, or hundreds of files, SFTP is much faster and more reliable. The connection details (host, port and username) are shown on the panel; your password is your Victus panel account password. Find your SFTP details Open your server in [control.victuscloud.com](https://control.victuscloud.com) and go to the Settings tab (SFTP details are shown there). Note the SFTP host and port, and the username (it is usually in the form user.serverid). Your password is the same one you use to log in to the panel — there is no separate SFTP password. Connect and upload Install an SFTP client such as FileZilla, WinSCP or Cyberduck. Create a new connection using protocol SFTP, then paste the host, port, username and your panel password. Connect — you will land in your server's file root (where server.properties lives). Drag files into place: worlds go in the server root, plugins into `plugins`, mods into `mods`. Stop the server before overwriting a live world, then Start again when the upload finishes. Use SFTP, not plain FTP Choose SFTP (SSH File Transfer) and the exact port shown in the panel — not standard FTP on port 21. Also confirm you selected SFTP as the protocol; using the wrong port/protocol is the most common connection failure. Stop the server for big changes Uploading or replacing world files while the server is running can corrupt them because the server is writing to the same files. Stop the server first, upload, then Start. ### Set up a whitelist Canonical URL: https://victuscloud.com/documentation/game-servers-set-up-whitelist Restrict your Victus Minecraft server to approved players — enable the whitelist from the console and add players by name. A whitelist (allowlist) locks your server so only players you approve can join. It is the simplest way to keep a private or friends-only server safe from random joins and griefers. You control it with console commands or by editing `server.properties`. Enable and manage from the console Open the Console tab (server must be running). Turn it on: type `whitelist on`. Add a player: `whitelist add `. Remove a player: `whitelist remove `. List approved players: `whitelist list`. Apply changes with `whitelist reload`. whitelist on whitelist add Notch whitelist add Steve whitelist list Or set it in server.properties Open the Files tab and edit `server.properties`. Set `white-list=true` (and optionally `enforce-whitelist=true` to kick non-listed players already online). Save and Restart. Names vs. UUIDs On online-mode servers the whitelist stores each player by their Mojang UUID, so a friend who changes their username stays whitelisted. Add players while the server is running so it can look up their account correctly. Whitelist is not a ban list The whitelist controls who may join; it does not remove ops or ban rule-breakers. Use `ban ` for bans and manage admins separately — see "Make yourself op/admin". ### Change the MOTD and server icon Canonical URL: https://victuscloud.com/documentation/game-servers-change-motd-and-server-icon Customise your Victus server listing — edit the MOTD in server.properties (with colour codes) and add a 64x64 server-icon.png. The MOTD (Message of the Day) is the text shown under your server in the client's multiplayer list, and the server icon is the little image beside it. Both are quick wins that make your server look professional. The MOTD lives in `server.properties`; the icon is a file named `server-icon.png`. Change the MOTD Open the Files tab and edit `server.properties`. Set the `motd=` line to your text. Use `\u00A7` colour/format codes (e.g. `\u00A7a` green, `\u00A7l` bold), or `\n` for a second line. Save and Restart for it to show in the server list. # server.properties motd=\u00A7aWelcome to my server!\n\u00A77Powered by Victus Cloud Add a server icon Make a PNG that is exactly 64x64 pixels named `server-icon.png`. Upload it to the server root (same folder as server.properties) via the Files tab or SFTP. Restart the server, then remove and re-add the server in your client so it refreshes the icon. Icon must be exactly 64x64 PNG If the icon does not show, it is almost always the wrong size (must be 64x64), wrong format (must be PNG), or wrong filename (must be exactly server-icon.png) in the server root. Paper/Purpur can do more For animated hover text, centred lines or hex colours in the MOTD, use a MOTD plugin on Paper/Purpur. The server.properties MOTD supports the classic \u00A7 codes only. ### Make yourself op/admin Canonical URL: https://victuscloud.com/documentation/game-servers-make-yourself-op-admin Grant yourself full admin rights on a Victus Minecraft server with the op command from the console — plus notes on Vanilla op levels and plugin permissions. Being "op" (operator) gives you admin powers in-game: gamemode changes, teleporting, giving items, and running admin commands. The safest way to op yourself is from the panel console, because the console runs as the server itself and does not need to be op first. Op yourself from the console Start the server and join it once so it knows your account. Open the Console tab and type `op ` (no slash needed in the console). You now have operator status — you can use admin commands in-game immediately. To remove op from someone: `deop `. op Notch deop Griefer Op is total control — give it sparingly An op can do almost anything, including changing gamerules and, on Vanilla, editing files via commands. Only op people you fully trust. Combine op with a whitelist so strangers cannot even join. Vanilla op levels vs. plugin permissions On Vanilla you can set the default op power via `op-permission-level` (1–4) in `server.properties`; level 4 is full access. On Paper/Purpur/Spigot, op grants all permissions by default, but a permissions plugin (LuckPerms, etc.) gives you fine-grained control over who can run what. For public servers, prefer a permissions plugin with limited roles over op-ing many people. Panel access is separate from op Being op is an in-game role only. Letting someone manage the panel (console, files, restarts) is a different thing — add them as a subuser instead. See "Add sub-users (co-owners)". ### Schedule automatic restarts Canonical URL: https://victuscloud.com/documentation/game-servers-schedule-automatic-restarts Use the Schedules tab on Victus to automatically restart your Minecraft server on a cron schedule, keeping TPS healthy and memory clean. A daily automatic restart keeps a Minecraft server healthy: it reclaims leaked memory, clears entity buildup and refreshes plugins, which prevents the slow TPS decline that happens on long-running servers. Victus has a built-in Schedules tab that runs tasks on a cron schedule — no external tools needed. Create a restart schedule Open the Schedules tab and create a new schedule. Set the cron timing — for example run once daily at a quiet hour (e.g. 05:00). Add a task of type "Power" with the action Restart. Optionally add an earlier task that sends a console command to warn players (see below). Save and make sure the schedule is enabled/active. Warn players before the restart Add a "Send command" task a few minutes before the Restart task. Use `say Server restarting in 5 minutes` (or `broadcast` on some setups) so players can reach safety. Sequence the tasks with time offsets so the warning fires before the power action. say Server will restart in 5 minutes # ...5 minutes later, the Power > Restart task runs Cron is in the server's time Schedule times use the panel/daemon clock, which may not be your local time. Pick a low-traffic hour and confirm the "next run" time the panel shows after saving. Pair it with backups You can also schedule a Backup task (Backup action) on the same Schedules tab so you get a nightly backup right before or after the restart. See "Create and restore backups". ### Create and restore backups Canonical URL: https://victuscloud.com/documentation/game-servers-create-and-restore-backups Protect your world on Victus — create manual or scheduled backups from the Backups tab and restore them when something breaks. Backups are your safety net against griefing, a bad plugin, a corrupted world or a mistaken version change. Victus servers have a dedicated Backups tab that snapshots your server files. Make one before any risky change (version switch, egg change, reinstall) and keep a regular schedule. Create a backup Open the Backups tab. Click Create Backup and give it a clear name (e.g. "before 1.21 update"). Wait for it to finish — the size depends on your world/files. When done you can download it or lock it so it is not auto-deleted. There is a backup limit Each plan allows a limited number of backups. When you hit the limit, new ones fail until you delete an old one — or "lock" the important ones so rotation cannot remove them. For extra safety also download key backups off-site. Restore a backup Stop the server from the Console tab first. On the Backups tab, open the backup you want and choose Restore. Confirm — restoring OVERWRITES current server files with the backup's contents. Start the server and verify the world is as expected. Restore overwrites current data Restoring replaces your current files with the backup. If the current state has anything you want to keep, make a fresh backup (or download the files) before restoring — otherwise it is gone. Automate it Add a Backup task on the Schedules tab to run nightly so you always have a recent snapshot. See "Schedule automatic restarts" for how the Schedules tab works. ### Add sub-users (co-owners) Canonical URL: https://victuscloud.com/documentation/game-servers-add-sub-users-co-owners Share panel access to your Victus server without giving away your login — add subusers on the Users tab and grant only the permissions they need. Subusers let a co-owner, admin or helper manage your server in the panel without ever knowing your account password. Each subuser logs in with their own Victus account and gets exactly the permissions you grant — you can let someone use the console and restart the server while blocking dangerous actions like deleting the server or changing the startup. The person needs their own Victus account first A subuser is invited by email and must have (or create) their own account at [control.victuscloud.com](https://control.victuscloud.com). Never share your own login — that is what subusers exist to avoid. Add a subuser Open your server and go to the Users tab. Click to invite/add a user and enter their email address. Tick the permissions to grant, grouped by area: Console (view/commands, power), Files (read/write/SFTP), Backups, Schedules, Databases, Network, Startup, Users and Settings. Save — they receive access and can now sign in and manage the server within those limits. Choose the right permissions Role Suggested permissions Trusted co-owner Almost everything except deleting the server / managing other users Admin / helper Console (commands + power), Files, Backups, Schedules Console-only mod Console view + send commands (and power if they need to restart) Subuser access ≠ in-game op Panel permissions and in-game op are separate. If a helper also needs admin powers in-game, op them too — see "Make yourself op/admin". Remove a subuser any time from the Users tab. ### Reset the world Canonical URL: https://victuscloud.com/documentation/game-servers-reset-the-world Generate a fresh world on a Victus Minecraft server — back up, delete or rename the world folders, optionally set a new seed, and restart. Resetting the world gives you a fresh map — useful for a new season, a fixed seed, or clearing a griefed world. Minecraft regenerates the world automatically on the next start if the world folders are gone, so the process is: back up, remove the old world, optionally set a new seed, and start. This deletes your current world — back up first Resetting is destructive and cannot be undone once the folders are gone. Create a Backup (Backups tab) or download the world folders first, especially if you might want them back. Reset it Stop the server from the Console tab (never delete world files while it runs). Make a backup on the Backups tab. In the Files tab, delete (or rename to keep as a spare) the world folders: `world`, and if present `world_nether` and `world_the_end`. To use a specific seed, edit `server.properties` and set `level-seed=` (leave blank for random). Start the server — it generates a brand-new world. # server.properties level-name=world level-seed= # blank = random; put a number/text here for a fixed seed Notes Delete all three dimension folders (overworld, nether, end) or you can get mismatched/old chunks in the leftover dimensions. A custom `level-name` changes which folder is used — a quick way to swap between worlds is to change that value. On Paper/Purpur the nether/end may be in separate folders; remove them all for a truly clean reset. Keep player data or not Deleting the world also clears world-specific player positions/inventories tied to it. If you want to reset the map but keep some data, restore selectively from your backup, or manage it with a plugin instead. ### Using the console Canonical URL: https://victuscloud.com/documentation/game-servers-using-the-console Use the Victus panel Console tab to read logs, run Minecraft commands, and control power (start/stop/restart/kill) on your server. The Console tab is the control centre of your server. It streams the live server log, lets you type commands as the server operator, and holds the power controls. Because the console runs as the server itself, you can op players, run admin commands and diagnose crashes here even when nobody is online. Reading the log The console shows startup progress ("Done" means it finished loading), warnings, and errors/stack traces. When something breaks, the cause is usually in the last lines before it stopped — copy those when asking for help. Lines are timestamped in the server/daemon time zone, which may differ from your local time. Running commands Type a command in the input box at the bottom and press Enter. Do NOT include a leading slash — the console runs commands as the server, so type `op Steve`, not `/op Steve`. Common ones: `op `, `whitelist add `, `say `, `stop`, `tps` (Paper/Purpur). say Hello everyone! op Steve whitelist on tps Power controls Action What it does Start Boots the server (downloads JAR / generates world on first run). Stop Sends a clean shutdown so the world saves properly. Restart Stops cleanly then starts again — use after config/plugin changes. Kill Force-terminates immediately. Use only when it is frozen. Kill is a last resort Kill does not save the world — it can cause data loss or corruption. Always try Stop or Restart first; only use Kill when the server is truly hung and will not stop. Console history resets on reload Refreshing the panel shows the recent log buffer, not the full history. For older events, open the log files in the Files tab (the `logs` folder). Server must be running to send commands. ## VPS Full KVM virtual machines: provisioning, SSH, snapshots, networking and rescue. ### First login over SSH (find your IP + root password) Canonical URL: https://victuscloud.com/documentation/vps-first-login-over-ssh Locate your Victus VPS IP address and root password in the control panel, then connect over SSH from Windows, macOS or Linux for the first time. A Victus VPS is a full KVM virtual machine, so you manage it the same way you would any Linux server: over SSH as the root user. Everything you need to connect — the public IP and the initial root password — is shown in the control panel at control.victuscloud.com. This guide gets you from a freshly provisioned VPS to a working shell. Find your IP and root password Log in to the control panel at [control.victuscloud.com](https://control.victuscloud.com). Open your VPS from the server list and go to the Network (allocations) area to read the primary public IPv4 address. Open the VPS Settings / details view to find the generated root password shown when the machine was first built. Copy both values. The default SSH user is root and the default port is 22. Where the password comes from The root password is generated at provision time (or set to the value you chose during checkout). If you injected an SSH key at provision, you may not have a password prompt at all — connect with your key instead. Connect from your computer On macOS or Linux, use the built-in terminal. On Windows 10/11, the same `ssh` command works from PowerShell, Command Prompt or Git Bash. Replace the IP with your own. # Password login ssh root@YOUR_VPS_IP # If you injected an SSH key at provision ssh -i ~/.ssh/id_ed25519 root@YOUR_VPS_IP # Non-standard port (only if you changed it) ssh -p 22 root@YOUR_VPS_IP First-time host key prompt The first connection asks "Are you sure you want to continue connecting?" — type yes. This just records the server fingerprint. Also change the generated root password after your first login (see the "Reset the root password" article). Connection refused or timing out? Give a brand-new VPS 1-2 minutes to finish booting after it shows as running. If it still fails, see the "Cannot connect / SSH connection refused" article. ### Reset the root password Canonical URL: https://victuscloud.com/documentation/vps-reset-root-password Change your Victus VPS root password from inside the machine, or reset it from the panel or rescue mode if you are locked out. You should change the auto-generated root password after your first login, and you may need to reset it if you forget it. There are three routes depending on whether you can still get in. You can still log in (recommended) If you have an active SSH session, changing the password is a one-liner. Run `passwd` and enter the new password twice. passwd # Enter new password: # Retype new password: # passwd: password updated successfully Use a strong password Root is exposed to the whole internet on port 22. Use a long random passphrase, or better, disable password login entirely and use an SSH key. You are locked out — reset from the panel Log in to [control.victuscloud.com](https://control.victuscloud.com) and open the VPS. Go to the VPS Settings view and use the "reset / set root password" action. Enter a new password (or generate one) and apply it. The VPS agent applies the change on the running machine; reconnect over SSH with the new password within a minute or two. Last resort — rescue mode If the panel reset is unavailable, boot the VPS into rescue mode, mount the root filesystem and set the password with `chroot`. See the "Boot into rescue mode" article for the full procedure; the key step is: # After mounting your disk at /mnt in rescue mode mount /dev/vda1 /mnt # your root partition may differ chroot /mnt passwd root exit Changing the disk device On KVM the primary disk is usually /dev/vda and the root partition /dev/vda1. Run `lsblk` first to confirm the correct device before mounting. ### Reinstall / rebuild the OS Canonical URL: https://victuscloud.com/documentation/vps-reinstall-rebuild-os Wipe your Victus VPS and reinstall a fresh Ubuntu template from the control panel, including how to back up first and what survives. Rebuilding reimages your VPS from a clean OS template. It is the fastest way to recover from a broken configuration, a compromised machine, or an experiment that got out of hand. Victus VPS ships Ubuntu templates and lets you rebuild from the panel. This erases everything A rebuild wipes the entire disk — files, databases, installed packages, users. There is no undo. Take a snapshot or copy your data off the machine first. Before you rebuild Create a snapshot from the VPS Snapshots view (see the "Create and restore snapshots" article) so you can roll back if needed. Copy any important data off the box — for example with scp or rsync to your machine or to Victus Drive (https://drive.victuscloud.com). Note down anything you configured manually (firewall rules, cron jobs, environment variables) since these will be gone. # Pull a folder off the VPS before wiping it scp -r root@YOUR_VPS_IP:/var/www ./vps-backup-www # Or sync a directory rsync -avz root@YOUR_VPS_IP:/etc/nginx ./vps-backup-nginx Rebuild from the panel Open the VPS at [control.victuscloud.com](https://control.victuscloud.com). Go to the VPS Settings view and choose the reinstall / rebuild action. Pick the OS template (e.g. an Ubuntu LTS release) and, if offered, set a new root password or SSH key for the fresh install. Confirm. The machine powers off, the disk is reimaged, and it boots into the clean OS. SSH host key will change After a rebuild your first SSH connection will warn about a changed host key. Remove the old fingerprint with `ssh-keygen -R YOUR_VPS_IP` and reconnect. Your IP stays the same A rebuild keeps the same IPv4/IPv6 allocation and resource plan — only the operating system and disk contents are replaced. ### Open firewall ports (ufw) Canonical URL: https://victuscloud.com/documentation/vps-open-firewall-ports-ufw Use ufw on your Victus Ubuntu VPS to open the ports your apps need — web, game and custom services — without locking yourself out of SSH. On a Victus KVM VPS you get a full public IP with no upstream port blocking, so opening a port is done inside the machine with a firewall. Ubuntu ships ufw (Uncomplicated Firewall), a friendly front-end to iptables. This article shows the safe order of operations so you never lock yourself out. Allow SSH before you enable ufw If you enable ufw with a default-deny policy and have NOT allowed port 22, your current SSH session survives but new connections are blocked — and you are locked out on the next disconnect. Always run "ufw allow OpenSSH" first. Set up ufw safely # Install if missing apt update && apt install -y ufw # 1. ALWAYS allow SSH first ufw allow OpenSSH # or: ufw allow 22/tcp # 2. Sensible defaults ufw default deny incoming ufw default allow outgoing # 3. Turn it on ufw enable Open the ports your service needs # Web server ufw allow 80/tcp ufw allow 443/tcp # A Minecraft-style TCP service ufw allow 25565/tcp # A UDP game/voice port ufw allow 27015/udp # A single IP only (e.g. your home connection) ufw allow from 203.0.113.10 to any port 5432 proto tcp Check and remove rules # List active rules with numbers ufw status numbered # Delete a rule by its number ufw delete 3 # Delete by matching the original rule ufw delete allow 80/tcp Port Protocol Typical use 22 TCP SSH (keep open!) 80 / 443 TCP HTTP / HTTPS websites 25565 TCP Minecraft server 3306 / 5432 TCP MySQL / PostgreSQL (restrict by IP!) Do not expose databases to the world Never run a bare "ufw allow 3306/tcp". Restrict database and admin ports to specific source IPs, or keep them bound to localhost and reach them over an SSH tunnel. ### Cannot connect / SSH connection refused Canonical URL: https://victuscloud.com/documentation/vps-cannot-connect-ssh-refused Diagnose and fix the common reasons an SSH connection to your Victus VPS is refused, times out, or rejects your password/key. SSH failures usually fall into a few clear buckets, and the exact error message tells you which one. Work through this from the top — most problems are fixed without touching the VPS itself. Read the error message Symptom Most likely cause Connection timed out VPS is off/booting, wrong IP, or a firewall is dropping traffic Connection refused sshd is not running or is listening on a different port Permission denied (publickey) Wrong key, or password auth is disabled Permission denied (password) Wrong root password Host key verification failed The VPS was rebuilt — clear the old fingerprint Quick checks first Confirm the VPS shows as "running" in the control panel; if not, start it and wait 1-2 minutes. Double-check the IP address in the Network view — copy/paste it rather than typing. Verify your own internet connection and try again; check https://status.victuscloud.com for platform incidents. Test basic reachability from your machine (see the ping/port test below). # Is the host reachable at all? ping YOUR_VPS_IP # Is the SSH port open? (Linux/macOS) nc -vz YOUR_VPS_IP 22 # Verbose SSH to see exactly where it fails ssh -vvv root@YOUR_VPS_IP The #1 self-inflicted cause: ufw If you enabled ufw without first running "ufw allow OpenSSH", you locked yourself out. This does NOT return "refused" — it usually times out. Fix it from rescue mode or the panel console, then allow OpenSSH. Host key changed after a rebuild # Remove the stale fingerprint, then reconnect ssh-keygen -R YOUR_VPS_IP ssh root@YOUR_VPS_IP When SSH is truly dead, use the panel console Victus VPS includes a browser console (serial + noVNC) in the panel. Use it to log in directly, inspect sshd with "systemctl status ssh", check "ufw status", or fix the config even when the network path is blocked. # From the panel console, once logged in: systemctl status ssh # is the daemon running? systemctl restart ssh # restart it ss -tlnp | grep :22 # confirm it is listening on 22 ufw status # is a rule blocking you? ### Resize the disk after an upgrade Canonical URL: https://victuscloud.com/documentation/vps-resize-disk-after-upgrade After upgrading your Victus VPS plan the virtual disk grows, but Linux needs the partition and filesystem expanded to actually use the new space. When you upgrade a Victus VPS plan, the underlying virtual disk is enlarged automatically. But the operating system still sees the old partition size until you grow the partition and expand the filesystem on top of it. This is a two-step process and is safe to run on a mounted, live root filesystem for ext4. Confirm the plan upgrade first The extra disk space only appears after the VPS has been rebooted following the plan change. Check the plan in the panel and reboot once before resizing inside the OS. See what the OS currently thinks # Block devices and partition sizes lsblk # Mounted filesystem usage df -h / You will typically see the disk (e.g. `vda`) reporting the new larger size, while the partition (e.g. `vda1`) and `/` still show the old size. That gap is what you are reclaiming. Grow the partition, then the filesystem # Install the tool if needed apt update && apt install -y cloud-guest-utils # 1. Grow partition 1 on /dev/vda (note the SPACE before the 1) growpart /dev/vda 1 # 2a. Expand an ext4 filesystem resize2fs /dev/vda1 # 2b. OR expand an XFS filesystem (uses mountpoint) xfs_growfs / # Verify df -h / Mind the space in growpart The device and partition number are separate arguments: "growpart /dev/vda 1", not "growpart /dev/vda1". Getting this wrong is the most common mistake. Not sure if it is ext4 or XFS? Run `findmnt -no FSTYPE /` — use resize2fs for ext4/ext3, and xfs_growfs for xfs. LVM setups need an extra `lvextend -r` step; check `lsblk` for an lvm layer first. No reboot needed growpart and resize2fs work online on a running system. Once df -h shows the full size, the new space is immediately usable. ### Create and restore snapshots Canonical URL: https://victuscloud.com/documentation/vps-create-restore-snapshots Take point-in-time snapshots of your Victus VPS before risky changes and roll back to them from the panel if something breaks. A snapshot is a full point-in-time image of your VPS disk. It is your safety net before OS upgrades, config changes or installing something you are unsure about — if it goes wrong, you restore the snapshot and you are back where you started in minutes. Snapshots are managed entirely from the control panel. Create a snapshot Open your VPS at [control.victuscloud.com](https://control.victuscloud.com) and go to the Snapshots view. Click to create a new snapshot and give it a clear name (e.g. "before-nginx-upgrade-2026-07"). Wait for the snapshot status to complete before making your risky change. Snapshots count against your allowance Each plan includes a certain number of snapshot slots. If you hit the limit, delete an old snapshot or top up your snapshot allowance from the panel before creating a new one. Quiesce your data for consistency A snapshot is crash-consistent, like pulling the power. For databases, either stop the service or flush/lock it briefly before snapshotting so the image is application-consistent. # Example: cleanly stop a database before snapshotting systemctl stop mysql # ...take the snapshot in the panel... systemctl start mysql Restore a snapshot Go to the Snapshots view for the VPS. Find the snapshot you want and choose Restore. Confirm — the VPS powers off, the disk is rolled back to that image, and it boots again. Restoring overwrites current data A restore replaces the entire current disk with the snapshot. Any changes made after the snapshot was taken are lost. Snapshots are for rollback and recovery, not a substitute for off-machine backups — copy critical data to Victus Drive or elsewhere too. ### Boot into rescue mode Canonical URL: https://victuscloud.com/documentation/vps-boot-into-rescue-mode Boot your Victus VPS into a rescue environment to repair a broken boot, fix fstab, reset the root password, or recover files when the OS will not start. Rescue mode boots your VPS from a small recovery OS instead of your installed system, leaving your real disk unmounted and untouched. From there you can mount the disk, chroot into it, and repair problems that stop the machine booting normally — a broken /etc/fstab, a bad kernel, a lost root password, or a full disk. Enter rescue mode Open the VPS at [control.victuscloud.com](https://control.victuscloud.com). From the VPS controls, switch the boot mode to Rescue and reboot the machine. Note the temporary rescue credentials shown in the panel, then connect via SSH or the browser console. You are now in the rescue OS — your real disk is present but not mounted. Mount your disk and chroot # Find your root partition lsblk # Mount it (adjust device as needed) mount /dev/vda1 /mnt # Bind the virtual filesystems so the chroot works fully for d in dev proc sys run; do mount --rbind /$d /mnt/$d; done # Enter your installed system chroot /mnt /bin/bash Inside the chroot you are effectively "in" your broken system and can fix it — reset the root password, edit config files, reinstall a package, or repair the bootloader. Reset root password: run `passwd root`. Fix a bad mount entry: edit `/etc/fstab` and comment out the offending line. Free space on a full root disk: delete large files in /var/log or old packages. Repair a corrupt ext4 filesystem: exit the chroot, unmount, then run `fsck -y /dev/vda1`. Run fsck on an UNmounted disk Never run fsck on a mounted filesystem — it can corrupt data. Unmount /mnt first (exit the chroot, "umount -R /mnt"), then fsck the raw device. Switch boot mode back to disk When you are done, exit the chroot, unmount, and set the boot mode back to Normal/Disk in the panel before rebooting — otherwise the VPS boots straight back into rescue mode. ### Mount a custom ISO Canonical URL: https://victuscloud.com/documentation/vps-mount-custom-iso Attach and boot your Victus VPS from a custom ISO to install an operating system that is not offered as a stock template. Most users are well served by the stock Ubuntu templates, but sometimes you need an OS or distro Victus does not ship as a one-click template. Because a Victus VPS is real KVM hardware, you can attach a bootable ISO and run the OS installer yourself through the panel VNC console. Installing over the disk is destructive Booting an OS installer from ISO and installing to the disk erases the current OS and data. Snapshot or back up first if there is anything you want to keep. Attach and boot the ISO Open the VPS at [control.victuscloud.com](https://control.victuscloud.com) and find the ISO / media controls. Select the ISO to mount (from the available library, or provide a direct download URL if custom uploads are supported). Set the boot order to boot from CD/ISO first, then reboot the VPS. Open the noVNC browser console — you will see the ISO's boot menu / installer. Complete the installer, choosing the virtual disk (e.g. /dev/vda) as the install target. You must use the graphical console During ISO install the machine has no SSH yet, so drive the whole installer through the panel noVNC console. Keep that tab open until the install completes. After installation When the installer finishes, unmount / detach the ISO in the panel. Set the boot order back to boot from the disk first. Reboot — the VPS now starts your freshly installed OS. Set up networking and SSH inside the new OS if the installer did not, so you can connect remotely again. Configure networking manually Custom OS installs will not have Victus's cloud-init template applied, so IP, gateway and DNS may need to be set by hand. Copy the network details from the panel Network view. ### IPv6 networking basics Canonical URL: https://victuscloud.com/documentation/vps-ipv6-networking-basics Understand and configure the IPv6 address on your Victus VPS — find your address, test connectivity, and bind services to IPv6. Victus VPS instances are dual-stack: alongside your public IPv4 address you get IPv6 connectivity. IPv6 gives you a huge address space and reaches IPv6-only networks directly. This article covers finding your address, confirming it works, and pointing services and DNS at it. Find your IPv6 address Check the Network view of your VPS at [control.victuscloud.com](https://control.victuscloud.com) for the assigned IPv6 address and gateway. Confirm it inside the machine with the command below. # Show IPv6 addresses on all interfaces ip -6 addr show # Show the IPv6 default route / gateway ip -6 route show default Global vs link-local An address starting with fe80: is link-local and only works on the local link — ignore it. Your routable public address is the "global" scope one shown in the panel. Test IPv6 connectivity # Ping an IPv6 host ping6 -c4 ipv6.google.com # Fetch over IPv6 explicitly curl -6 https://ifconfig.co Publish and use IPv6 DNS: add an AAAA record pointing your domain at the IPv6 address (keep the A record for IPv4 so both work). Web/app services: bind to :: (all IPv6) or a specific address. Many servers bound to 0.0.0.0 only listen on IPv4 — bind to :: as well or use dual-stack. Firewall: ufw applies rules to IPv6 too when IPV6=yes is set in /etc/default/ufw (the default on Ubuntu), so "ufw allow 443/tcp" covers both stacks. # Confirm a service is listening on IPv6 (look for ::: or [::]) ss -tlnp | grep ':443' # Example nginx listen directives for dual-stack # listen 443 ssl; # listen [::]:443 ssl; Persist manual config If you set IPv6 by hand rather than via the template, put it in your netplan config (/etc/netplan/*.yaml) and run "netplan apply", or it will be lost on reboot. ### Install a one-click app Canonical URL: https://victuscloud.com/documentation/vps-install-one-click-app Deploy common software on your Victus VPS in minutes using the one-click app installer in the control panel. Victus VPS offers one-click app installs so you can go from a bare Ubuntu machine to a running application without doing every step by hand. It is the quickest way to stand up common stacks — web servers, control panels, developer tools and more. Best on a fresh VPS One-click installers assume a clean OS. Run them on a newly built or freshly reinstalled VPS to avoid conflicts with software you already configured. Install from the panel Open your VPS at [control.victuscloud.com](https://control.victuscloud.com) and go to the Apps / one-click view. Browse the catalogue and pick the app you want to install. Provide any requested settings (domain, admin email, etc.) and start the install. Wait for it to finish — the panel reports progress and the final access details. Prefer a whole managed app instead? If you want Victus to fully manage the app (Code-Server, WordPress, databases and similar) rather than run it on your own VPS, look at App Hosting — it provisions the app as a managed service. Use VPS one-click when you want root control of the underlying machine. After the install Open the firewall for the app's ports with ufw (e.g. 80/443 for a web app) — see the "Open firewall ports" article. Point a DNS record at your VPS IP if the app is served on a domain. Change any default admin passwords the installer set. Take a snapshot once it is configured the way you want. # Typical post-install: open web ports ufw allow 80/tcp ufw allow 443/tcp # Check the app service is running systemctl status ### Check CPU/RAM/disk usage Canonical URL: https://victuscloud.com/documentation/vps-check-cpu-ram-disk-usage Monitor CPU, memory and disk usage on your Victus VPS from the panel graphs and with standard Linux commands to spot bottlenecks. Keeping an eye on resource usage tells you when to optimise, upgrade your plan, or hunt down a runaway process. Victus gives you live CPU/RAM/disk graphs in the panel, and inside the machine you have the full set of Linux tools. From the control panel The VPS overview at [control.victuscloud.com](https://control.victuscloud.com) shows live CPU, memory and disk usage against your plan limits. This is the fastest at-a-glance check and works even when you cannot SSH in. From the command line # Live process view sorted by CPU/RAM (press q to quit) htop # install with: apt install -y htop top # always available # Memory usage, human-readable free -h # Disk space per filesystem df -h # What is eating disk in the current dir (top offenders) du -h --max-depth=1 / 2>/dev/null | sort -h | tail -20 Dig into a specific resource # CPU load average (1/5/15 min) and uptime uptime # Per-process memory, top 10 consumers ps aux --sort=-%mem | head -11 # Inodes (a disk can be "full" with free space if inodes run out) df -i # Disk I/O in real time iostat -x 2 # from the sysstat package RAM "used" is not the whole story Linux uses spare memory for disk cache, so "used" in free -h can look high. Look at the "available" column — that is what apps can actually claim before swapping. Consistently maxed out? If CPU sits near 100% or memory is exhausted and swapping heavily, either optimise the workload, add a swap file (see that article), or upgrade your VPS plan from billing.victuscloud.com. Watch disk usage too — a full root disk breaks services silently. ### Add a swap file Canonical URL: https://victuscloud.com/documentation/vps-add-swap-file Add a swap file to your Victus VPS to survive memory spikes and avoid the OOM killer when RAM is tight. Swap is disk space the kernel uses as overflow when RAM fills up. On a smaller VPS plan a swap file is a cheap safety valve: it keeps the out-of-memory (OOM) killer from abruptly terminating your app during a brief memory spike. This is a file-based swap, so no repartitioning is required. Swap is a cushion, not a substitute for RAM Disk is far slower than RAM, so a machine that swaps heavily and constantly will feel sluggish. Use swap to absorb spikes; if you swap all the time, upgrade the plan for more RAM. Create a swap file # Create a 2G swap file (adjust size as needed) fallocate -l 2G /swapfile # If fallocate is unavailable: # dd if=/dev/zero of=/swapfile bs=1M count=2048 # Lock down permissions (required) chmod 600 /swapfile # Format and enable it mkswap /swapfile swapon /swapfile # Confirm it is active swapon --show free -h Make it survive reboots # Add to fstab so it re-enables on boot echo '/swapfile none swap sw 0 0' >> /etc/fstab Do not add a duplicate fstab line Only append the swap line once. If you run the setup twice, check /etc/fstab and remove any duplicate /swapfile entry, or boot will error. Tune how eagerly it swaps # Lower swappiness = prefer RAM, only swap when really needed (good for servers) sysctl vm.swappiness=10 # Persist it echo 'vm.swappiness=10' >> /etc/sysctl.d/99-swappiness.conf Sizing rule of thumb For servers, 1x to 2x your RAM is a reasonable swap size (e.g. 2-4G on a 2G VPS). Make sure you have the free disk space first with df -h — and remember swap consumes disk that counts toward your plan. ## Discord Bots Host Node.js, Python and Java bots with persistent uptime and Lavalink audio. ### Deploy a Node.js Discord bot Canonical URL: https://victuscloud.com/documentation/discord-bots-deploy-nodejs-bot Get a discord.js / Node.js bot running on Victus: upload or clone your code, point the Startup tab at your entry file, set the token, and start it. A Victus Discord bot is just a panel server running a Node.js egg. You get a Console, a Files tab, a Startup tab and power controls — the same layout as a game server, but the process it runs is your bot instead of a game. You will need a bot application + token from the Discord Developer Portal (discord.com/developers/applications), your code (in Git or ready to upload), and a bot plan ordered from [billing.victuscloud.com](https://billing.victuscloud.com) (it provisions into [control.victuscloud.com](https://control.victuscloud.com) automatically). This guide takes a discord.js bot from zero to online. Step 1 — Get your code onto the server Git (recommended): open the Startup tab and set the Git repository address (and branch) variable to your repo. On the next start/reinstall the egg clones it, and you can turn on auto-update to pull the latest on every restart. Upload: open the Files tab, drag in your project (or upload a .zip and use the "Unarchive" action). Make sure package.json and your entry file (for example index.js) sit in the server root, not inside an extra nested folder. Do not upload node_modules Never zip and upload the node_modules folder — it is huge and platform-specific. Upload only your source plus package.json / package-lock.json; Victus installs the dependencies on the server. See "Install dependencies (npm / pip / requirements)". Step 2 — Point the Startup tab at your entry file The Node.js egg runs a command like `node `. In the Startup tab, set the main-file / bot-JS-file variable to your entry point (commonly `index.js`, `bot.js`, or `src/index.js`). The dependency install runs automatically on start, so the effective startup usually resolves to `npm install && node index.js`. Keep a valid package.json in the server root, and never hardcode your token — provide it via a Startup variable or `.env` (see "Set your bot token (environment variables)"). { "name": "my-bot", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "dependencies": { "discord.js": "^14.14.1" } } Step 3 — Start it and watch the Console Press Start. The Console shows dependency installation, then your bot booting. A healthy discord.js bot logs something like "Ready! Logged in as MyBot#1234". If it exits immediately, read the last lines of the Console — see "View logs and debug a crashing bot". Enable privileged intents if needed If your bot reads message content or member lists, enable the matching Gateway Intents (Message Content Intent, Server Members Intent) on the Bot page of the Discord Developer Portal — otherwise discord.js throws a "disallowed intents" error on login. ### Deploy a Python Discord bot Canonical URL: https://victuscloud.com/documentation/discord-bots-deploy-python-bot Run a discord.py / Pycord / Nextcord bot on Victus: upload or clone your code, set the entry file and requirements, add your token, and go live. Python bots run on a Python egg on the Victus panel. It works just like the Node.js flow — Console, Files, Startup, power controls — but it launches `python ` and installs a requirements.txt instead of package.json. This works for discord.py, Pycord, Nextcord, disnake and hikari. You will need a bot token from the Discord Developer Portal, your code (Git or ready to upload) with a requirements.txt, and a bot plan ordered from billing.victuscloud.com. Step 1 — Load your code Git: set the repository address (and branch) in the Startup tab so the egg clones it on start; enable auto-update to pull on every restart. Upload: use the Files tab to drag your project in, or upload a .zip and Unarchive it. Keep main.py / bot.py and requirements.txt in the server root. Step 2 — Add a requirements.txt discord.py==2.3.2 python-dotenv==1.0.1 aiohttp==3.9.5 Do not upload a venv Never upload a local virtual environment (venv/ or __pycache__). It is tied to your machine and will break on the server. Upload only source + requirements.txt and let Victus install cleanly with pip on start. Step 3 — Set the entry file and read the token In the Startup tab, set the app/py-file variable to your entry point (commonly `main.py` or `bot.py`). The egg then effectively runs `pip install -r requirements.txt && python main.py`. Read the token from the environment rather than hardcoding it. import os import discord from discord.ext import commands intents = discord.Intents.default() intents.message_content = True # requires the Message Content Intent in the portal bot = commands.Bot(command_prefix="!", intents=intents) @bot.event async def on_ready(): print(f"Logged in as {bot.user}") bot.run(os.environ["DISCORD_TOKEN"]) Match the Python version discord.py 2.x needs Python 3.8+ and modern libraries often want 3.11+. If the egg lets you pick a Python/Docker image in the Startup tab, choose a version that satisfies your dependencies, then reinstall. If it crashes on login with an intents error, enable the privileged intents in the Developer Portal. ### Set your bot token (environment variables) Canonical URL: https://victuscloud.com/documentation/discord-bots-set-bot-token-env-vars The safe way to give your bot its Discord token on Victus — Startup variables and .env files read via process.env / os.environ — plus what to do if a token leaks. Your bot token is a password for your bot account. Anyone who has it can control the bot completely, so it must never be written in your source code or committed to Git. On Victus you supply it as an environment variable and your code reads it at runtime. There are two ways to do that. Option A — Startup variable (simplest) Open your bot in the panel and go to the Startup tab. Paste your token into the token / environment-variable field the egg provides. Values set there are injected into the container as real environment variables. Save, then Restart so the new value is picked up. Read it in code with process.env.DISCORD_TOKEN (Node) or os.environ["DISCORD_TOKEN"] (Python). Option B — a .env file via the Files tab # .env (create this in the Files tab, in the server root) DISCORD_TOKEN=MTA1... your token here ... CLIENT_ID=123456789012345678 GUILD_ID=987654321098765432 // Node.js — install "dotenv" (add it to package.json) require('dotenv').config(); const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [GatewayIntentBits.Guilds] }); client.login(process.env.DISCORD_TOKEN); # Python — add python-dotenv to requirements.txt import os from dotenv import load_dotenv load_dotenv() TOKEN = os.environ["DISCORD_TOKEN"] Never hardcode or commit your token Do not write bot.run("MTA1...") or client.login("MTA1..."). If a token ever lands in a public repo, GitHub scanning and Discord will often auto-invalidate it — and attackers scrape leaked tokens within minutes. Keep .env in your .gitignore. If your token leaks, reset it immediately Go to the Discord Developer Portal → your application → Bot → Reset Token. Then update the value on the Startup tab or in .env and restart. The old token stops working the instant you reset it. Changing a variable needs a restart Environment variables are read when the process starts. After editing a Startup variable or your .env, press Restart — a running bot will not pick up the new value on its own. ### Keep the bot online (auto-restart) Canonical URL: https://victuscloud.com/documentation/discord-bots-keep-online-auto-restart How Victus keeps your bot running: the panel manages the process and can auto-restart on crash, and Schedules can restart it on a timer. Plus why you should NOT run pm2 inside the container. On Victus your bot runs as a supervised process, not a script you leave open in a terminal. The panel daemon watches the process, and you have a few tools to keep it up 24/7. The key mental model: the panel manages the one main process — you should not try to manage it yourself from inside the container. Crash detection (automatic) When your bot process exits unexpectedly, the panel detects the crash and can automatically restart it. This handles the common case: an unhandled exception or a transient network blip takes the bot down, and it comes straight back without you touching anything. You will see the restart happen live in the Console. Crash loops are throttled If a bot crashes immediately and repeatedly (for example a bad token), the daemon stops auto-restarting to avoid a boot loop. That is a signal to fix the underlying error rather than expecting restarts to paper over it — check the Console and see "View logs and debug a crashing bot". Scheduled restarts Open the Schedules tab and create a new schedule. Set a cron expression — for example day-of-week/hour/minute for a 4am daily restart. Add a task of type Power with the action Restart. Save and enable the schedule. A nightly restart is a cheap way to clear slow memory leaks and reconnect cleanly. Do not run pm2, forever, nodemon or systemd inside the container Process managers fight the panel. The daemon tracks the process it started; if pm2 forks your bot into the background, the panel sees the foreground process exit and marks the server as stopped — while pm2 keeps a zombie running you cannot see or stop from the Console. Just run node/python directly and let the panel supervise. Write code that survives Handle promise rejections and reconnects rather than letting one error kill the process. discord.js and discord.py both auto-reconnect to the gateway on their own. Do not call process.exit() on a recoverable error — throwing or logging keeps the library in control of reconnection. If you deliberately want the process to end and be restarted, exit with a non-zero code so the panel treats it as a crash and restarts it. Free bots still need renewal Auto-restart keeps a running bot alive, but a free plan must still be renewed weekly or it pauses and is eventually deleted regardless of uptime. Paid plans do not have the weekly-renewal requirement. ### Install dependencies (npm / pip / requirements) Canonical URL: https://victuscloud.com/documentation/discord-bots-install-dependencies How Victus installs your bot dependencies automatically on start, how to add extra packages via the Startup tab, and how to fix a broken install from the console. You do not manually manage dependencies the way you would on a laptop. On Victus, the bot egg installs them for you every time the server starts — npm for Node.js, pip for Python — based on the manifest in your server root. Put the manifest in the same folder as your entry file; when you add a package, just Restart and it installs on the way up. How the automatic install works Runtime Manifest file Install command run on start Node.js package.json (+ package-lock.json) npm install Python requirements.txt pip install -r requirements.txt Upload source, not installed packages Never upload node_modules/ or a Python venv/. They are large and machine-specific and cause "module not found" style breakage. Commit/upload only your code plus package.json or requirements.txt and let the panel install fresh. Adding a few extra packages without editing the manifest Many bot eggs include an "Additional Node packages" / "Additional Python packages" field on the Startup tab. List space-separated package names there and they are installed alongside your manifest on start — handy for a quick add without touching your repo. Note it is not a replacement for the manifest, which remains the source of truth across reinstalls. Installing manually from the Console # Node.js npm install discord.js @discordjs/voice # Python (the egg's interpreter) pip install -U discord.py python-dotenv "Cannot find module" / "ModuleNotFoundError" This almost always means the package is not in your manifest, or your code lives in a nested folder while package.json/requirements.txt sits elsewhere. Add the dependency to the manifest, make sure the manifest is in the server root next to your entry file, and Restart. Pin versions and match the runtime Pin versions (discord.js ^14, discord.py ==2.3.2) for reproducible deploys. Native modules such as @discordjs/voice or sodium need a Node/Python image new enough to build against — if an install fails to compile, pick a newer image in the Startup tab and reinstall. ### Set up Lavalink for music bots Canonical URL: https://victuscloud.com/documentation/discord-bots-lavalink-music Run Lavalink as its own server on Victus and connect your music bot to it: configure application.yml, use the Network tab address/port, and wire up a v4 client like lavalink-client, Shoukaku or Wavelink. Lavalink is a standalone Java audio server that does the heavy lifting for music bots — it fetches, decodes and streams audio to Discord voice so your bot process stays light. On Victus you run Lavalink as its own server (a Java egg) and point your bot at it over the network, using the host and port shown on the Lavalink server's Network tab. Victus supports Java bot/Lavalink hosting specifically for this. Step 1 — Create the Lavalink server Order a Java-capable bot plan (Lavalink needs RAM of its own — 1GB+ is a sensible minimum) and open it in the panel. Put the Lavalink v4 jar in the server root via the Files tab (or use a Lavalink egg that downloads it for you). In the Startup tab, make sure it launches with `java -jar Lavalink.jar` on a Java 17+ image (Lavalink v4 requires Java 17 or newer). Step 2 — Configure application.yml server: address: 0.0.0.0 port: 2333 # use the port from your server's Network tab lavalink: server: password: "change-this-to-a-strong-password" sources: youtube: false # v4 needs the youtube-source plugin instead plugins: - dependency: "dev.lavalink.youtube:youtube-plugin:1.18.2" repository: "https://maven.lavalink.dev/releases" YouTube needs the youtube-source plugin in v4 Lavalink v4 removed built-in YouTube. Add the youtube-source plugin (shown above) or YouTube tracks will not load. Keep the plugin version current, since YouTube changes break old versions periodically. Bind to 0.0.0.0 and use the exact port from the Network tab. Step 3 — Connect your bot // Node.js example (Shoukaku / lavalink-client style config) const nodes = [{ name: 'main', url: 'YOUR_LAVALINK_HOST:2333', // from the Network tab auth: 'change-this-to-a-strong-password', // must match application.yml secure: false, }]; # Python example (Wavelink 3.x) import wavelink node = wavelink.Node( uri="http://YOUR_LAVALINK_HOST:2333", # from the Network tab password="change-this-to-a-strong-password", # must match application.yml ) Version match and common connection failures Use a v4-compatible client: lavalink-client, Shoukaku 4+ or Lavaclient for Node; Wavelink 3+ or Lavalink.py 5+ for Python — an old v3 client silently fails against a v4 node. A 401/authentication error means the password does not match; "connection refused" means Lavalink is not started yet or you used the wrong port. Start Lavalink and wait for "Lavalink is ready to accept connections" before starting the bot. ### View logs and debug a crashing bot Canonical URL: https://victuscloud.com/documentation/discord-bots-view-logs-debug-crash Use the Console to read your bot output, understand a crash, and fix the usual culprits on Victus — bad token, missing intents, missing modules, wrong entry file and crash loops. Your bot's logs are its live Console in the panel — everything it prints to stdout/stderr shows up there in real time, and stays visible until the next restart. When a bot will not stay up, the answer is almost always in the last few lines before the process exited. This guide shows how to read them and fix the usual causes. Read the Console the right way Open the bot and look at the Console tab — it streams live output while the server runs. When a bot crashes you will see a line like "process exited with code 1" — scroll up from there to the real error (a stack trace, a rejected promise, an import error). Restart to reproduce cleanly: the Console clears the visible buffer on start, so you get the crash from the top without old noise. Copy the error text (redacting any token) when asking for help — the exact message matters. The usual crash causes Symptom in the Console Likely cause Fix TokenInvalid / "An invalid token was provided" Wrong, empty or reset token Re-check the Startup variable or .env; reset the token in the Developer Portal and restart. "Used disallowed intents" Privileged intents not enabled Turn on Message Content / Server Members intents on the Developer Portal Bot page. "Cannot find module" / "ModuleNotFoundError" Dependency not installed / not in manifest Add it to package.json or requirements.txt and restart (see "Install dependencies"). "Cannot find module '/home/container/index.js'" Wrong entry file, or code in a nested folder Fix the main-file variable in Startup, or move files to the server root. EADDRINUSE / port already in use Two things bound to the same port Use the exact port from the Network tab; run only one process. Immediate crash loop = stop and read If the server flaps between starting and stopping, the panel will throttle auto-restarts. Do not keep hammering Start — read the first error after a clean restart and fix that. A restart cannot fix a bad token or a missing module. Get more detail from your bot // Node.js — surface the errors that usually kill a bot silently process.on('unhandledRejection', (err) => console.error('UNHANDLED REJECTION:', err)); process.on('uncaughtException', (err) => console.error('UNCAUGHT EXCEPTION:', err)); client.on('error', console.error); client.on('warn', console.warn); # Python — enable discord.py's logging to the console import logging logging.basicConfig(level=logging.INFO) Rule out the platform, then reinstall or open a ticket If nothing in your code changed and the bot suddenly will not start, check https://status.victuscloud.com for node incidents. If the node is healthy but the bot still fails, reinstall from the Settings tab (this re-clones/reinstalls but keeps your files) or open a ticket with the Console error pasted in. ### Official Victus Cloud Discord bot Canonical URL: https://victuscloud.com/documentation/discord-bots-official-victus-cloud-bot Link Discord to Victus, understand service notifications, and know what the official bot can and cannot do. The official Victus Cloud bot connects Discord-side support and notifications to your Victus identity. It is different from customer bot hosting: you do not upload or operate the official bot in your own server. Linking and notifications Join the official Victus Cloud Discord from the link on victuscloud.com. Use the current account-linking flow presented by the website, billing integration or bot, and confirm that you are linking the intended Victus account. Keep direct messages available if you want best-effort private service notices. Use Victus Panel and Victus Billing as the source of truth even when a Discord reminder is delayed or blocked. The bot can deliver supported renewal, suspension and service notifications to a linked Discord identity. It helps route users to community and ticket support workflows. It does not replace Victus Panel for power, console or files. It does not replace Victus Billing for orders, invoices or payment methods. Never send secrets to a bot or staff member Victus support does not need your password, Discord token, panel API key, two-factor code or Minecraft forwarding secret. Verify the official server and bot identity before following a DM link. ## App Hosting Code-Server, web apps, databases and other always-on web workloads. ### Deploy Code-Server (browser VS Code) Canonical URL: https://victuscloud.com/documentation/app-hosting-deploy-code-server Spin up Code-Server on Victus App Hosting to get a full Visual Studio Code editor and integrated terminal in your browser, then reach it over your allocated port or a custom domain. Code-Server is VS Code running on the server and streamed to your browser — you get the familiar editor, extensions and an integrated terminal without installing anything locally. On Victus it is provisioned as an App Hosting server in the control panel at control.victuscloud.com, so you manage it with the same Console / Files / Startup / Network tabs as any other panel server. Create the Code-Server instance Log in to [control.victuscloud.com](https://control.victuscloud.com) (or order an App Hosting plan first from [billing.victuscloud.com](https://billing.victuscloud.com)). Create a new App Hosting server and choose the Code-Server egg/template. Wait for the install to finish — the Console tab shows the setup progress and prints "running" when it is ready. Open the Network tab and note the allocated IP and port; this is where Code-Server is served. Get your access password Code-Server protects the editor with a single password. On first boot it is either generated for you or read from the `PASSWORD` startup variable. Check the Startup tab for the password variable, or look at the Console log where the password is printed on launch. Set your own password Open the Startup tab and edit the PASSWORD variable to a strong value of your own, then Restart from the Console. Changes to startup variables only take effect after a restart. Open the editor Browse to http://YOUR_IP:YOUR_PORT using the values from the Network tab. Enter the password when prompted. Open the integrated terminal (Terminal > New Terminal) to run git, npm, python, etc. inside your server. Install extensions from the Extensions view exactly as you would in desktop VS Code. Always put it behind HTTPS You are typing a password and editing source over the connection, so do not leave Code-Server on plain http for long. Point a subdomain at it and enable SSL — see "Point a custom domain/subdomain" and "Enable SSL/HTTPS". Page will not load? Confirm the server shows "running" in Console, that you are using the exact port from the Network tab, and that no other process grabbed that port. If it crash-loops on boot, check the Console log for a bad PASSWORD or config value. ### Host a static or PHP site with Nginx Canonical URL: https://victuscloud.com/documentation/app-hosting-static-php-nginx Serve an HTML/CSS/JS static site or a PHP application from a Victus App Hosting server: upload your files, point Nginx at them and reach the site on your allocated port. Victus App Hosting can serve plain static sites (HTML/CSS/JS) and PHP applications through Nginx. You upload your files in the panel Files tab, drop them into the web root the egg serves, and the site is reachable on the IP and port shown in the Network tab. This guide covers both a static bundle and a PHP app. Create the web server In the control panel create a new App Hosting server and pick the Nginx (static) or Nginx + PHP template that matches your project. Wait for the Console to show the server is running. Open the Network tab and note the assigned IP and port. Upload your site files Use the Files tab to manage your web root (commonly a `public` / `html` / `www` directory that Nginx is configured to serve). You can drag-and-drop files, use the built-in editor, or upload a `.zip` and extract it in place. Open the Files tab and enter the web root directory used by the egg. Upload your files, or upload a .zip archive and use the Unarchive action to extract it. Make sure your entry file is named index.html (static) or index.php (PHP) so Nginx serves it by default. Restart the server from the Console if you changed configuration files. Where does Nginx look? The egg defines the web root and listen port. If your files 404, confirm you placed them in the exact directory the Startup tab / Nginx config points at, not one level above it. PHP applications For PHP, upload your project the same way. PHP-FPM runs alongside Nginx in the PHP template, so any `.php` file in the web root executes. If your app needs a database, create one from the Databases tab and read the credentials into your config — see "Create a database" and "Connect to your database". setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); From Node.js import mysql from 'mysql2/promise'; const db = await mysql.createConnection({ host: process.env.DB_HOST, port: Number(process.env.DB_PORT) || 3306, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, }); From Python import os, pymysql conn = pymysql.connect( host=os.environ['DB_HOST'], port=int(os.environ.get('DB_PORT', 3306)), user=os.environ['DB_USER'], password=os.environ['DB_PASSWORD'], database=os.environ['DB_NAME'], ) From an external client Open MySQL Workbench, DBeaver or TablePlus. Create a new MySQL connection using the host, port, user and password from the Databases tab. If the panel restricted the database to a specific host, edit its allowed-connections value to % (or your IP) before connecting remotely. Test the connection, then browse the database. Connection refused or access denied? Double-check host/port are the panel values (not localhost), that the password matches exactly (reset it if unsure), and that remote connections are allowed for that database. Access-denied almost always means a wrong user/password or the user is not permitted from your IP. ### Set environment variables Canonical URL: https://victuscloud.com/documentation/app-hosting-set-environment-variables Configure app settings and secrets on a Victus App Hosting server using Startup variables in the panel, plus how to read them from your code and when a restart is needed. Environment variables are the clean way to configure an app without editing code — database credentials, API keys, ports and feature flags. On Victus, each server exposes its configurable variables in the Startup tab of the control panel. The egg defines which variables exist; you fill in the values. Edit variables in the panel Open your server in the control panel and go to the Startup tab. Each field maps to an environment variable (for example PASSWORD, PORT, or a token). Enter your values and save. Restart the server from the Console for the new values to take effect. Changes need a restart Startup variables are injected when the process launches. Editing a value while the server is running does nothing until you Restart (or Stop then Start) from the Console. App-defined variables via a file If your framework expects variables the egg does not list (for example a custom Laravel or Node app), keep them in a `.env` file that you create in the Files tab. Load it at startup with a library like dotenv (Node/Python) — frameworks such as Laravel read `.env` automatically. # .env in your project root (Files tab) DB_HOST=your-db-host DB_PORT=3306 DB_NAME=your_db DB_USER=your_user DB_PASSWORD=super-secret APP_ENV=production Read them in code // Node.js import 'dotenv/config'; const port = process.env.PORT || 3000; const dbUrl = process.env.DB_HOST; Never expose secrets Keep .env files out of the public web root and out of any git repo you push. A token committed to a public repo is a leaked token — rotate it immediately if that happens. ### Point a custom domain/subdomain Canonical URL: https://victuscloud.com/documentation/app-hosting-point-a-custom-domain Attach your own domain or subdomain to a Victus App Hosting server by creating the right DNS records that point at the server IP and port shown in the panel. Your app is reachable on the raw IP and port from the Network tab, but visitors want a real name like app.yourdomain.com. You do this in your domain registrar / DNS provider (Cloudflare, Namecheap, GoDaddy, etc.) by creating a record that resolves to your Victus server IP. Find your server IP and port Open your server in the control panel and go to the Network tab. Note the primary public IPv4 address and the allocated port. Create the DNS record Goal Record type Name Value Root domain (yourdomain.com) A @ Your server IPv4 Subdomain (app.yourdomain.com) A app Your server IPv4 Alias to another hostname CNAME app target.hostname DNS points at the IP, not the port DNS can only resolve a name to an IP address — it cannot include a port. If your app runs on a non-standard port you either browse to app.yourdomain.com:PORT, or put a reverse proxy in front that listens on 80/443 and forwards to your app port. Serve on 80/443 without a port Cloudflare (proxied, orange cloud): terminates on 443 for you and can map to a custom origin port via configuration — the visitor never sees the port. A reverse proxy (Nginx) listening on 80/443 that proxy_passes to http://127.0.0.1:YOUR_PORT. If you also run a Victus VPS, you can host the reverse proxy there and forward to the app. Propagation takes time New or changed DNS records can take from a few minutes up to a couple of hours to propagate. If the name does not resolve yet, wait and re-check with a DNS lookup tool before assuming something is misconfigured. Next: turn on HTTPS Once the domain resolves to your server, secure it with a certificate — see "Enable SSL/HTTPS". ### Enable SSL/HTTPS Canonical URL: https://victuscloud.com/documentation/app-hosting-enable-ssl-https Serve your Victus-hosted app over HTTPS: the quick Cloudflare route, or a free Let's Encrypt certificate issued with Certbot for an Nginx site. HTTPS encrypts traffic between your visitors and your app and is expected by browsers, logins and payment flows. There are two common ways to get it on a Victus-hosted app: let Cloudflare terminate SSL in front of your server (fastest), or issue a free Let's Encrypt certificate on the server itself with Certbot. Both require your domain to already point at the server — see "Point a custom domain/subdomain". Option A — Cloudflare (no server config) Add your domain to Cloudflare and update your nameservers to Cloudflare's. Create the A/CNAME record for your app and keep the proxy ON (orange cloud). In SSL/TLS settings choose Full (or Full (strict) if you also have a valid cert on the origin). Enable Always Use HTTPS so visitors are redirected from http to https automatically. Why Cloudflare is easiest here Cloudflare issues and renews the public certificate for you and can front a non-standard app port, so visitors get https on 443 with zero certificate work on your server. Option B — Let's Encrypt with Certbot (Nginx) If you have shell/terminal access to the server (for example an Nginx App Hosting server or a Victus VPS running your reverse proxy) and your domain resolves to it on ports 80/443, Certbot can obtain and auto-renew a free certificate. # Debian/Ubuntu-based server sudo apt update && sudo apt install -y certbot python3-certbot-nginx # Issue + install a cert and auto-edit the Nginx config sudo certbot --nginx -d app.yourdomain.com # Test the automatic renewal sudo certbot renew --dry-run Ports 80 and 443 must reach the server Let's Encrypt validates over HTTP on port 80 and serves HTTPS on 443. If your app only listens on a custom port, you need Nginx bound to 80/443 in front of it for Certbot to work. Force HTTPS and verify Redirect all http traffic to https (Certbot can add this automatically; Cloudflare has "Always Use HTTPS"). Load https://app.yourdomain.com and check for the padlock and a valid certificate. If you use both Cloudflare proxy and an origin cert, set Cloudflare SSL mode to Full (strict) to encrypt the whole path. Certificate errors after setup? A mismatch name means the cert was issued for a different hostname; a "not secure" warning behind Cloudflare usually means the SSL mode is set to Off/Flexible while the origin expects HTTPS. Confirm DNS resolves to the correct IP and that the SSL mode matches your origin setup. ## Billing & Credits Credits, invoices, payment methods, renewals and account billing. ### What are credits? Canonical URL: https://victuscloud.com/documentation/billing-credits-what-are-credits Credits are the prepaid currency that powers everything on Victus Cloud — game servers, VPS, bots and app hosting. Learn how credits work, what they are worth and how they are spent. Credits are the single platform currency on Victus Cloud. Instead of entering card details every time you buy or renew something, you top up a credit balance once on the billing portal at [billing.victuscloud.com](https://billing.victuscloud.com) and spend from it. Every service — Minecraft and other game servers, KVM VPS, Discord bot hosting and app hosting — is priced in credits. Roughly 1 credit ≈ 1 USD Credit pricing is designed so that 1 credit is approximately 1 US dollar. Your exact top-up cost depends on the payment method and its currency conversion (for example UPI in INR or EasyPaisa in PKR). How credits are spent When you order a new service, its monthly (or chosen billing-cycle) price is deducted from your credit balance. When a service renews, the renewal price is taken from your balance automatically if you have enough credits. Upgrades and add-ons (more RAM, disk, extra ports) are billed as an adjustment to the recurring price. Your remaining balance is always shown in your account on billing.victuscloud.com. Free credits for new accounts Every new Victus account starts with 3 free credits that can reduce the cost of an eligible paid order. Free Minecraft hosting is claimed separately from the main website and uses the free-hosting/COINS renewal controls in Victus Panel. One account per person The 3 free credits and free servers are protected by anti-abuse rules. Creating multiple accounts (alting) to farm free credits or free servers can get all linked accounts suspended. Credits never expire Credits you top up stay on your balance until you spend them on a service or renewal. Keeping a small buffer on your balance is the easiest way to avoid a service lapsing when a renewal comes due. ### Add credits / top up your balance Canonical URL: https://victuscloud.com/documentation/billing-credits-add-credits-top-up Step-by-step guide to adding credits to your Victus Cloud balance on the billing portal so you can order and renew services. Topping up adds credits to your account balance so you can order new services or cover upcoming renewals. Top-ups happen on the billing portal, separately from the control panel where you manage servers. Top up your balance Log in to the billing portal at [billing.victuscloud.com](https://billing.victuscloud.com). Open your account area and find the balance / Add Funds (top-up) option. Enter the amount of credits you want to add. Remember roughly 1 credit ≈ 1 USD. Choose a payment method — UPI, PayPal, Crypto (LTC) or EasyPaisa. Complete the payment. Your credit balance updates once the payment is confirmed. You can also pay per order When checking out a new service you can pay for it directly with the same payment methods instead of pre-loading credits. Topping up first is handy if you want renewals to be covered automatically from your balance. Crypto and manual methods can take a few minutes PayPal and UPI usually credit instantly. Crypto (LTC) top-ups only apply after the transaction reaches the required number of network confirmations, which can take several minutes. Paid but balance not updated? If a payment completed but your balance did not change after a reasonable wait, open a support ticket on Discord (or the on-site support widget) with your payment reference / transaction ID so staff can reconcile it. ### Payment methods (UPI / PayPal / Crypto / EasyPaisa) Canonical URL: https://victuscloud.com/documentation/billing-credits-payment-methods The payment methods Victus Cloud accepts for topping up credits and paying for services — UPI, PayPal, Crypto (LTC) and EasyPaisa — with notes on regions and confirmation times. Victus Cloud supports several payment methods so you can top up credits or pay for a service in whichever way is easiest for your region. All of them are available at checkout and on the top-up screen at billing.victuscloud.com. Method Best for Confirmation UPI India (INR) Usually instant PayPal Global (cards / PayPal balance) Usually instant Crypto (LTC) Global / privacy After network confirmations EasyPaisa Pakistan (PKR) Usually quick Choosing a method UPI — pay with any UPI app if you are in India; the amount is converted from credits to INR at checkout. PayPal — pay from your PayPal balance or a linked card, works worldwide. Crypto (LTC) — send Litecoin to the address shown; the order or top-up completes once the payment is confirmed on-chain. EasyPaisa — the convenient option for customers in Pakistan paying in PKR. Currency conversion Prices are set in credits (≈ USD). Local methods such as UPI and EasyPaisa convert the credit amount into your local currency at payment time, so the exact figure you pay reflects the current exchange rate plus any processor fees. Send the exact crypto amount For LTC, send the exact amount shown to the exact address within the time window. Underpaying, sending a different coin, or paying after the window can delay or fail the top-up — open a ticket with the transaction hash if that happens. ### Renew a service Canonical URL: https://victuscloud.com/documentation/billing-credits-renew-a-service How paid-service renewal works in Victus Billing, and where free-server renewal is handled in Victus Panel. Every paid service on Victus Cloud runs on a recurring billing cycle. Before the due date the system generates a renewal invoice; paying it (or having enough credits on your balance) keeps the service running for another cycle. Renewals are handled on the billing portal, not the control panel. Renew a paid service Log in to [billing.victuscloud.com](https://billing.victuscloud.com). Open your Services list and select the service that is due. Open the renewal invoice for that service (or the Invoices area). Pay the invoice from your credit balance, or with UPI / PayPal / Crypto / EasyPaisa. Confirm the service now shows the new next-due date. Keep a balance to auto-cover renewals If you keep enough credits on your balance, renewal invoices can be paid automatically when they are generated, so nothing lapses while you are away. See the Enable auto-renew article. Free servers renew weekly Free hosting follows a separate lifecycle from paid invoices. Open the server in Victus Panel, check its exact deadline and COINS/free-hosting balance, then use the panel Renew action. Do not place another store order. Miss the free renewal and it pauses, then deletes If a free server is not renewed in time it is paused, and after a grace period it is deleted along with its files. Renew on time, or take a backup, if you want to keep the data. ### Enable auto-renew Canonical URL: https://victuscloud.com/documentation/billing-credits-enable-auto-renew Turn on automatic renewal so Victus Cloud pays your service invoices from your credit balance and your servers never lapse. Auto-renew lets the billing system pay a service's renewal invoice automatically from your credit balance when it is generated. It is the simplest way to make sure a game server, VPS or bot never gets suspended just because you forgot a due date. Turn on auto-renew Log in to [billing.victuscloud.com](https://billing.victuscloud.com). Open your Services list and select the service you want to protect. Enable the auto-renew / automatic renewal toggle for that service. Make sure you keep enough credits on your balance to cover the recurring price. How it works When the renewal invoice is created, the system deducts the amount from your credit balance automatically. You do not need to be online, and you will not have to enter payment details each cycle. Auto-renew needs credits available Auto-renew pays from your credit balance. If your balance is too low when the invoice is generated, the renewal fails and the service can be suspended. Top up ahead of the due date, or keep a buffer of a few credits. Tip: top up a few cycles at once If you know you want to keep a service long-term, top up enough credits for several months. With auto-renew on, renewals are then handled hands-off. ### Upgrade or downgrade a plan Canonical URL: https://victuscloud.com/documentation/billing-credits-upgrade-or-downgrade-plan Change the resources on a Victus Cloud service — more RAM, CPU or disk — or move to a smaller plan, and understand how the price change is billed. You can scale a Victus service up or down as your needs change — for example give a Minecraft server more RAM, add disk to a VPS, or drop to a smaller plan to save credits. Plan changes are made on the billing portal, which then updates the resources on your service in the control panel. Change your plan Log in to [billing.victuscloud.com](https://billing.victuscloud.com). Open your Services list and select the service to change. Open the upgrade / downgrade (change plan or configurable options) section for that service. Pick the new resource tier or adjust the configurable options (RAM, CPU, disk, ports). Confirm — the new recurring price and any prorated adjustment are shown before you commit. Restart to apply new resources After an upgrade takes effect, restart the affected service in the control panel (control.victuscloud.com) so the new RAM / CPU limits are applied. For a VPS the change may require a reboot of the machine. Downgrades need enough free space Before downgrading disk on a VPS or a server, make sure your current usage fits inside the smaller allocation. Shrinking below what is already in use can fail or risk data loss — clean up or back up first. Billing is prorated When you upgrade mid-cycle, you are charged the difference for the remaining time; the higher price then applies from the next renewal. Downgrades take effect at the next cycle so you are not charged twice. ### Failed payment / service suspended Canonical URL: https://victuscloud.com/documentation/billing-credits-failed-payment-service-suspended Why a Victus Cloud service gets suspended after a failed or missed payment, and how to pay the overdue invoice to bring it back online before data is deleted. If a renewal invoice is not paid by its due date — because your balance was too low, auto-renew could not cover it, or a payment failed — the service is suspended. A suspended service is offline and you cannot use the control panel functions for it, but your data is still there for now. Bring a suspended service back online Log in to [billing.victuscloud.com](https://billing.victuscloud.com). Top up your credit balance if it is too low (or fix the payment method that failed). Open the overdue invoice for the suspended service and pay it. The service is automatically unsuspended shortly after payment clears — start it again from the control panel if needed. Suspended services are deleted after a grace period Suspension is not permanent storage. If the overdue invoice stays unpaid past the grace period, the service is terminated and its files are removed. Pay promptly, or take a backup, to avoid losing data. Free servers behave the same way A free server that misses its panel renewal deadline is suspended and later deleted at the deadline displayed by Victus Panel. Renewing before that deadline avoids suspension. Still suspended after paying? Unsuspension is usually automatic. If a service stays suspended for more than a few minutes after the invoice shows as paid, open a Discord ticket (or use the on-site support widget) with the invoice number. ### Request a refund Canonical URL: https://victuscloud.com/documentation/billing-credits-request-a-refund How to request a refund on Victus Cloud, what information to include, and what is typically eligible. Refunds on Victus Cloud are handled by the support team through a ticket, not through an automatic button. If something went wrong with an order or you were charged for a service you did not receive, open a ticket and staff will review it. How to request a refund Open a private ticket using the [support chat](https://victuscloud.com/support). State clearly what you are requesting a refund for and why. Include the invoice number / payment reference and the service name. Mention the payment method you used (UPI, PayPal, Crypto or EasyPaisa) so staff can process it correctly. Refunds usually go back as credits Where a refund is approved it is most commonly returned to your Victus credit balance, which you can immediately re-spend. Refunds back to the original payment method depend on the method and the situation. Crypto payments cannot be reversed on-chain Litecoin (LTC) transactions are irreversible on the network. Any approved refund of a crypto top-up is issued as Victus credits rather than sent back on-chain. Do not open a chargeback first Filing a card / PayPal chargeback instead of contacting support can get your account suspended. Always raise a ticket first — staff resolve most billing issues far faster than a dispute. ### Find your invoices Canonical URL: https://victuscloud.com/documentation/billing-credits-find-your-invoices Locate, view and download your Victus Cloud invoices and payment history on the billing portal. Every order, renewal and top-up on Victus Cloud generates an invoice. You can view your full billing history, see what is paid or due, and download invoices for your records from the billing portal. View your invoices Log in to [billing.victuscloud.com](https://billing.victuscloud.com). Open your account area and go to the Invoices (billing history) section. Each invoice shows its status — Paid, Unpaid/Due or Cancelled — with the amount and date. Click an invoice to see the line items, or download it for your records. Unpaid / Due — an invoice waiting for payment, such as an upcoming renewal. Paid — settled from your credit balance or a payment method. Overdue — past its due date; the linked service may be suspended until it is paid. Invoice number is your reference When contacting support about a payment, renewal or refund, quote the invoice number. It lets staff find the exact transaction quickly. Panel vs billing portal Invoices and payment history live on [billing.victuscloud.com](https://billing.victuscloud.com). The control panel at [control.victuscloud.com](https://control.victuscloud.com) is where you run and manage the actual servers — it does not hold your billing records. ## Free Hosting Free Minecraft plans, weekly renewals, limits and the anti-abuse policy. ### Claim a free server Canonical URL: https://victuscloud.com/documentation/free-hosting-claim-a-free-server Claim free Minecraft hosting from the Victus Cloud website and understand what the automated setup creates for you. Free hosting starts on the main Victus Cloud website, not as a normal store purchase. Launchpad prepares your Victus identity, creates or links the required billing account, and asks Victus Panel to provision the server. You should not create separate accounts on each service. Claim and provision Open [victuscloud.com/free](https://victuscloud.com/free), sign in, and complete the free-server claim. Choose the available server options and submit the claim once. Repeated submissions do not grant extra servers. Keep the page open while Launchpad prepares your linked account and sends the provisioning request to Victus Panel. When provisioning completes, open [Victus Panel](https://control.victuscloud.com) and select the new server. Use the managed connection hostname shown for the server. The first connection can wait briefly while an offline server starts. A stopped server can be a successful deployment Free servers may be provisioned in a stopped state. That protects shared capacity and does not mean setup failed. Join through the assigned managed hostname to trigger wake-on-join, or use Start in Victus Panel as a fallback. One free server per person Creating extra accounts to bypass the free-server limit is alting and can suspend every related account. Contact support if a legitimate claim becomes stuck instead of submitting from another account. ### How the free plan works Canonical URL: https://victuscloud.com/documentation/free-hosting-how-the-free-plan-works The current free-hosting lifecycle: automated provisioning, idle sleep, wake-on-join, weekly renewal and retention rules. Victus free hosting has no fixed lifetime while you remain eligible and complete the required renewals. It is not an always-on plan: idle servers sleep, and the managed Waiting Proxy wakes supported Minecraft servers when a player connects. Behaviour What it means Provisioning Launchpad automatically creates or links the required account records and provisions the server in Victus Panel. Initial power state A newly provisioned server can be stopped. Use its managed hostname or Start in Victus Panel. Idle sleep An empty free server can stop automatically. Files and worlds remain stored. Wake-on-join Connecting through the assigned managed hostname places you in a waiting flow while the backend starts, then transfers you automatically. Weekly renewal Renew in Victus Panel before the displayed deadline. Renewal uses the panel free-hosting/COINS system; it is not a new billing-store order. Retention Missing the deadline suspends the server. The current configured post-suspension deletion window is 10 days; rely on the exact deadline shown in Victus Panel. Fair use One free server per person. Mining, attacks, resource abuse, alting and other prohibited activity can cause policy suspension. What “no expiration” means There is no predetermined end date for an eligible free server. It can continue indefinitely while you renew on time and follow the free-hosting policy. “No fixed lifetime” does not mean renewals, idle sleep or anti-abuse enforcement are removed. ### Waiting Proxy and wake-on-join Canonical URL: https://victuscloud.com/documentation/free-hosting-waiting-proxy How a Minecraft connection wakes a sleeping Victus server and transfers the player when it is ready. The Waiting Proxy is the connection layer in front of supported managed Minecraft servers. It lets Victus stop an empty backend without turning the player-facing hostname into a dead address. It is an infrastructure service, not a second customer control panel. What happens when you join Your Minecraft client connects to the managed hostname assigned by Victus Panel. The proxy identifies the backend for that hostname and asks Victus Panel for its state. If the backend is stopped, the authenticated internal integration requests one wake action. Cooldowns prevent repeated power requests. You remain in the waiting experience while the proxy polls for readiness. When the backend is online, the proxy transfers your connection automatically. Use the managed hostname Wake-on-join depends on traffic reaching the Waiting Proxy. Connecting directly to a backend IP and port bypasses that flow and cannot wake a stopped server. Copy the hostname displayed for the server rather than guessing an address. If the transfer does not complete Wait up to two minutes; first boot, installs and crash recovery can take longer than a normal restart. Open Victus Panel and inspect Console. Press Start there if the automatic wake did not begin. If the server repeatedly starts and crashes, repair the console error; the proxy cannot transfer to an unhealthy backend. Open a support ticket with the server ID and managed hostname if the panel says online but the proxy never transfers you. ### Renewal, suspension and deletion Canonical URL: https://victuscloud.com/documentation/free-hosting-renewal-and-deletion Renew a free server in Victus Panel and understand warning, suspension and deletion deadlines. Renewal proves that a free server is still wanted. Victus Panel owns this lifecycle and displays the server renewal deadline and renewal action. The billing store is not where you place another free order each week. Sign in to [Victus Panel](https://control.victuscloud.com) and open the free server. Check the displayed renewal deadline and available COINS/free-hosting balance. Use the Renew action before the deadline and confirm that the deadline advances. Keep an external backup of anything important even when renewal succeeds. Stage Result Before deadline The server remains eligible; Victus sends an upcoming-renewal warning when configured. Deadline missed Victus Panel suspends the free server for non-renewal. Idle sleep alone is not suspension. After suspension Renew before the deletion deadline to retain the service. The current default window is 10 days after suspension. Deletion deadline passed The server and its stored data are permanently removed. A new claim does not restore deleted files. The panel deadline is authoritative Email and Discord reminders are best-effort. Do not calculate a deadline from an old article or depend on receiving a message; use the exact date shown in Victus Panel. ### Idle sleep and wake troubleshooting Canonical URL: https://victuscloud.com/documentation/free-hosting-idle-sleep-troubleshooting Tell normal free-server sleep apart from suspension or a crash and bring the server back correctly. A stopped free server is not automatically suspended. Normal idle sleep leaves the service active and preserves its files. Suspension blocks operation because a renewal or policy requirement was not met; a crash starts and then exits because the server software failed. Symptom Likely cause Action Stopped, active, managed hostname waits Normal idle sleep Keep the client connected while it wakes, or press Start in Victus Panel. Suspended badge or renewal warning Missed renewal Renew from Victus Panel before deletion. Starts and immediately stops Application crash Read the last Console lines and fix the reported error. Direct IP stays offline Waiting Proxy bypassed Use the managed hostname shown by Victus. Sleep does not reset renewal Starting, stopping, sleeping or waking a server does not move its renewal deadline. Power state and free-service eligibility are separate. ### Upgrade from free to paid Canonical URL: https://victuscloud.com/documentation/free-hosting-upgrade-to-paid Choose paid hosting when you need continuous uptime, larger resources or additional servers. Paid hosting is the right fit when idle sleep, the one-server limit or free-tier resources no longer meet your needs. Paid services are ordered and renewed through Victus Billing, then operated in the same Victus Panel. Sign in to [Victus Billing](https://billing.victuscloud.com), choose a paid plan and complete checkout. Wait for the paid service to appear in Victus Panel. Create a backup or archive of the free server and download anything irreplaceable. Upload or restore the data to the paid server, verify it, and update your player-facing address. Ask before deleting the source If you need staff-assisted migration, open a ticket while both services and their data still exist. Do not let the free server pass its deletion deadline first. ## Panel Basics Get comfortable with the control panel: console, files, schedules and more. ### Logging in and SSO from the website Canonical URL: https://victuscloud.com/documentation/panel-basics-logging-in-sso How single sign-on links your Victus billing account to the control panel, how to jump straight from the store to a running server, and what to do when a session gets stuck. The control panel at [control.victuscloud.com](https://control.victuscloud.com) is where you operate everything you own — game servers, VPS, Discord bots and apps. It shares one identity with the billing/store site at [billing.victuscloud.com](https://billing.victuscloud.com) through single sign-on (SSO), so you never create or manage a second password. Your Victus account is created on billing, and the panel simply trusts that login. How SSO works on Victus Billing (built on Paymenter) is the source of truth for your account. When you buy a plan there and it provisions, a matching panel user is linked to your Victus identity. Signing in on billing establishes a session that the control panel accepts, so opening the panel afterwards usually drops you straight onto your dashboard without a second password prompt. Go to [billing.victuscloud.com](https://billing.victuscloud.com) and sign in with your Victus email and password (this is the account you registered). From the billing dashboard, open the service you want to manage, or use the link/button that takes you to the control panel. You arrive at [control.victuscloud.com](https://control.victuscloud.com) already authenticated — the panel dashboard lists every server, VPS, bot and app on your account. Alternatively, open [control.victuscloud.com](https://control.victuscloud.com) directly and sign in there with the same billing credentials. One account, three sites The same Victus login works on billing (buy/pay), the control panel (operate) and Drive (`https://drive.victuscloud.com`, file storage). You register once on billing and SSO carries you across all three. When SSO gets stuck Occasionally a session goes stale — for example after a long idle period, a password change, or switching networks. The symptom is usually a redirect loop, a blank panel, or being asked to log in again immediately after you just did. Log out of BOTH billing and the control panel. Clear the sites from your session (close the tabs, or use a private/incognito window to rule out a stale cookie). Sign in fresh on [billing.victuscloud.com](https://billing.victuscloud.com) first, then open the control panel. If it still fails, try a different browser to confirm it is a cookie/session issue rather than an account issue. Still locked out? If you cannot get in at all, do not create a second account to work around it — alting can suspend all linked accounts. Instead [open the support chat](https://victuscloud.com/support) or ask in Discord (see "Getting help"), and mention that SSO between billing and the panel is failing so staff can check the link on their side. ### Navigating the panel and server tabs Canonical URL: https://victuscloud.com/documentation/panel-basics-navigating-panel-and-tabs A tour of the Victus control panel dashboard, the power controls, and what every tab on a game server does — Console, Files, Databases, Schedules, Users, Backups, Network, Startup and Settings. Victus Panel is the main server-operations dashboard. It lists your services and gives each server its own power controls and management tabs. Once you know the layout, the same mental model applies to a Minecraft server, a hosted Discord bot or an app. The dashboard After signing in you land on the dashboard, which shows every server, VPS, bot and app on your account as a card or row. Each one displays its name and current state. Click a service to open its management view. If you belong to someone else’s server as a subuser, it appears here too. Power controls At the top of a server’s view are four power signals. Start boots the server. Stop asks it to shut down gracefully (for Minecraft this runs the proper stop sequence so the world saves). Restart stops then starts. Kill force-terminates the process immediately. Use Kill only as a last resort Kill does not let the server save first. On a Minecraft server that can corrupt or roll back the world. Only use it when Stop/Restart hang and the server is truly frozen. The server tabs Tab What it does Console Live server output plus a command box — type commands (e.g. `op `, `stop`) and watch logs in real time. Files A file manager to browse, edit, upload, download, compress and extract files — configs, plugins/mods, worlds. Databases Create MySQL databases and view their host, name, username and connection details. Schedules Automate tasks (restarts, backups, console commands) on a cron-style timer. Users Invite subusers and choose exactly which permissions and tabs they can access. Backups Create, download, restore and delete backups of the server. Network Manage allocations — the IP and port(s) players/clients connect to; add extra ports if your plan allows. Startup Change startup variables, switch version/build, and view the startup command. Settings Rename the server, view its SFTP details and server ID, and reinstall. Not every service shows every tab Tabs depend on the service type and your permissions. A VPS uses a different management view with SSH, snapshots and rescue mode instead of these game-server tabs — see the VPS docs. Subusers only see the tabs their permissions allow. Finding your way around fast The server name and state are always visible at the top so you know what you are working on. Console is your home base — most day-to-day work starts by reading the console output. Use Files for anything you would edit on disk; use Console for anything you would type at the game. The Settings tab holds your SFTP host/port and the server ID you should quote when contacting support. ### Enable two-factor authentication (2FA) Canonical URL: https://victuscloud.com/documentation/panel-basics-enable-2fa Protect your Victus control-panel account with an authenticator-app TOTP code, save your recovery codes, and understand how 2FA relates to your billing login. Two-factor authentication (2FA) adds a second step to signing in: after your password you enter a 6-digit code from an authenticator app on your phone. Because your account controls real servers, files and a credit balance, enabling 2FA is one of the most valuable five-minute jobs you can do. What you need An authenticator app that generates TOTP codes — Google Authenticator, Authy, Microsoft Authenticator, 1Password, Aegis or similar. Your phone (or the app on your computer) available at each login. A safe place to store recovery codes — a password manager or an offline note. Turn on 2FA in the panel Sign in to [control.victuscloud.com](https://control.victuscloud.com) and open your account settings (your profile / account menu, usually top-right). Find the two-factor authentication / security section and start the setup. Scan the QR code with your authenticator app (or type the shown secret key into the app manually). The app now shows a rotating 6-digit code. Enter the current code back in the panel to confirm the app is synced. Save the recovery codes the panel gives you somewhere safe — you will need them if you lose your phone. Save your recovery codes now Recovery codes are the only way back in if you lose access to your authenticator. Store them in a password manager or print them. Without them, regaining access requires a support ticket and identity checks — and there is no guarantee. Logging in with 2FA on From now on, after entering your password you will be prompted for the current 6-digit code from your app. The code rotates every 30 seconds; if one is rejected, wait for the next one and make sure your phone’s clock is set to automatic (TOTP is time-based, so a wrong clock breaks the codes). Panel vs billing accounts Your Victus identity spans the control panel and billing (SSO). Enable 2FA on the account you actually log in with. If both the panel and billing offer a 2FA option, turning it on wherever it is available strengthens the whole account — never disable it just to make login quicker. Lost your device? Use a saved recovery code to log in, then remove and re-add 2FA with your new device. If you have neither the app nor recovery codes, open a support ticket from an email the account recognises. ### Create client API credentials Canonical URL: https://victuscloud.com/documentation/panel-basics-create-client-api-credentials Generate a personal client API key in the Victus control panel to automate your own servers, restrict it with an allowed-IP list, and keep it secret. The control panel exposes a client API so you can script actions against the servers on your own account — read state, send power signals, run console commands, manage files and more — without clicking through the UI. This is the per-user client key, and it is separate from the Reseller API used to provision brand-new services. Client API vs Reseller API The client API key created here controls servers you already own. The Reseller API (`https://control.victuscloud.com/api/reseller/v1`, keys prefixed `rslr_`) is a different system for programmatically creating and billing new services from a prepaid balance — see the Reseller API docs for that. Create a key Sign in to [control.victuscloud.com](https://control.victuscloud.com) and open your account settings (profile / account menu). Find the API Credentials / API Keys section. Create a new key: give it a clear description (e.g. "restart-bot script") so you remember what it is for. Optionally set an allowed-IP list so the key only works from the machine/server that will use it. Copy the generated key immediately and store it in a secret manager — it is shown only once. You only see the full key once The panel displays the secret a single time at creation. If you lose it, you cannot recover it — delete the key and create a new one. Never commit keys to Git, paste them in Discord/tickets, or hard-code them in client-side apps. Using the key Send the key as a Bearer token in the `Authorization` header. The client API lives under the panel domain. For example, to list the servers you can access: curl "https://control.victuscloud.com/api/client" \ -H "Authorization: Bearer YOUR_CLIENT_API_KEY" \ -H "Accept: application/json" \ -H "Content-Type: application/json" # Send a power signal to a specific server (start | stop | restart | kill) curl -X POST "https://control.victuscloud.com/api/client/servers/SERVER_ID/power" \ -H "Authorization: Bearer YOUR_CLIENT_API_KEY" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{"signal":"restart"}' Find your server ID A server’s ID is shown on its Settings tab in the panel and in the server URL. Use it in the `/api/client/servers//...` endpoints. Housekeeping Create one key per script/integration so you can revoke a single one without breaking the others. Delete keys you no longer use — a leaked key can control your servers. Lock keys to a fixed IP whenever the calling machine has a stable address. Rotate a key immediately if you suspect it leaked, then update your scripts with the new value. ### Change server startup variables Canonical URL: https://victuscloud.com/documentation/panel-basics-change-server-startup-variables Use the Startup tab to change a game server’s version, JAR/build, memory and other startup variables safely, and understand when a change triggers a reinstall. The Startup tab controls how your server launches: the version or build it runs, the main JAR/file, and any egg-specific variables (like which Minecraft server software to download). Changing these is how you upgrade Minecraft versions, switch server type, or tune the boot command — all without touching the command line. Where to find it Open the server from your dashboard at [control.victuscloud.com](https://control.victuscloud.com). Click the Startup tab. You will see the read-only startup command at the top and a set of editable variables below it. Common variables (Minecraft example) Variable What it controls Example Server JAR file The file the server launches server.jar Minecraft / build version Which game version and build to download on install 1.21.1 / latest Server type (on some eggs) Paper, Purpur, Spigot, Fabric, Forge, Vanilla, Velocity, etc. paper Max memory Heap given to the JVM (bounded by your plan) 4096 Change a value safely Stop the server first — do not edit startup variables while it is running. Take a Backup from the Backups tab (especially before a version change). Edit the variable(s) on the Startup tab; changes save as you edit. Start the server and watch the Console — the correct JAR/version downloads on boot if you changed it. Confirm in the console banner that the expected version/software loaded. Version jumps can break worlds and plugins Minecraft worlds usually upgrade forward but rarely downgrade cleanly. Plugins/mods are version-specific — after a major version bump, update them too or the server may crash on start. Always back up first, and test big jumps carefully. Some changes trigger a reinstall Switching server type or JAR often makes the server re-download its files on next boot (an install cycle). The server enters the "installing" state briefly — that is expected. Do not interrupt it; wait for it to finish before starting play. Memory is capped by your plan You can lower memory in a variable, but you cannot exceed what your plan provides. Setting a max-memory value higher than your allocation will not give you more RAM and may cause the server to fail to start. ### Server states explained (installing / offline / starting / suspended) Canonical URL: https://victuscloud.com/documentation/panel-basics-server-states-explained Understand every status your Victus server can show — Installing, Offline, Starting, Running, Stopping and Suspended — what each means, and what to do about it. The coloured status label at the top of a server tells you exactly what it is doing right now. Knowing the states saves a lot of confusion — for example, "Installing" is normal after a fresh order or a version change, while "Suspended" means the panel has locked the server and you cannot power it on until the cause is resolved. The states State Meaning What to do Installing The server is downloading and setting up its files (fresh provision, reinstall, or after changing server type/version on the Startup tab). Wait. Do not start or interrupt it. It moves to Offline when done. Offline Set up but not running. Press Start when you want it online. Starting Booting — the process is launching and initialising (world load, plugins, etc.). Watch the Console; it becomes Running once fully up. Running Online and accepting connections. Nothing — this is the healthy state. Stopping Shutting down gracefully (saving data). Wait for it to reach Offline before starting again. Suspended The panel has locked the server; it cannot be powered on. Resolve the cause (usually billing) — see below. "Installing" is normal — let it finish A brand-new server, a reinstall, or a server-type/version change on the Startup tab all trigger an install cycle. It downloads the server software fresh. Interrupting it can leave files incomplete, so wait until it drops to Offline. Why a server gets suspended Suspension is a lock, not a deletion — your files are still there, but you cannot start the server until it is unsuspended. The most common reasons on Victus are: Billing — the service is unpaid, an invoice is overdue, or your credit balance ran out at renewal. Top up credits and pay the invoice on [billing.victuscloud.com](https://billing.victuscloud.com); the service is typically unsuspended once payment clears. Free-server renewal - use the Renew action and exact deadline in Victus Panel. A missed deadline suspends the server, followed by deletion after the displayed retention window. Anti-abuse / policy — running multiple accounts to farm free resources ("alting") or a terms violation can suspend the account and its servers. This is resolved through a support ticket, not by making a new account. Suspended and you do not know why? For a paid service, check Billing for an unpaid invoice or empty balance. For a free service, check its renewal state in Victus Panel. If neither applies, open a support ticket with the server name/ID—do not create another account to get around it, as that can suspend everything. Stuck starting or crash-looping? If a server flips between Starting and Offline, read the Console for the error — a bad plugin/mod, a mismatched version after a Startup change, or too little memory are the usual causes. Check `https://status.victuscloud.com` to rule out a platform-wide incident first. ## File Hosting Upload, preview, share and pull files into your Victus files dashboard. ### Upload files Canonical URL: https://victuscloud.com/documentation/file-hosting-upload-files Upload files to Victus Drive (Nextcloud) from your browser — single files, whole folders, and large uploads — and where they land in your storage. Victus file hosting runs on Victus Drive, a Nextcloud instance at https://drive.victuscloud.com. Every file you upload is private to your account, stored in your personal folder, and counts against your storage quota. This guide covers the fastest ways to get files in. Upload from the web interface Sign in at https://drive.victuscloud.com with your Victus account. Open the folder you want the file to land in (create one first with the "+ New" / plus button if needed). Click the "+ New" button and choose "Upload files", or simply drag files from your computer straight onto the file list. Watch the progress bar at the top of the file list. When it finishes, the file appears in the current folder. Drag a whole folder Modern browsers let you drag an entire folder (with its subfolders) onto the file list and Drive recreates the structure for you. This is the quickest way to move a project directory into your account. Large files and resumable uploads Drive uploads large files in chunks, so a dropped connection does not force you to start from zero — the transfer resumes. Keep the browser tab open until the progress bar completes. If a very large upload stalls or fails, it is almost always a quota or disk issue rather than the file itself; see the "Why my upload failed" article. Watch your 10 GB quota Standard accounts have a 10 GB quota. An upload that would push you over the limit is rejected before it completes, so free up space or check your usage first for big transfers. Sync from desktop and mobile (optional) Because Drive is Nextcloud, you can also use the official Nextcloud desktop and mobile clients for automatic background sync. Point the client at the server URL `https://drive.victuscloud.com` and sign in with your Victus credentials; anything placed in the synced folder uploads automatically. ### Pull a file from a URL Canonical URL: https://victuscloud.com/documentation/file-hosting-pull-a-file-from-a-url Import a file into Victus Drive directly from a remote URL so it downloads server-side instead of routing through your own connection. When the file you want already lives at a public URL — a release archive, a dataset, a mod pack — you do not have to download it to your PC and re-upload it. Victus Drive can fetch the file server-side, which is faster and avoids using your own upload bandwidth or a slow home connection. Import a URL in Drive Sign in at https://drive.victuscloud.com and open the destination folder. Open the "+ New" menu on the file list. Choose the option to add a file from a link / remote URL and paste the full https:// address. Confirm. The server downloads the file into the current folder in the background; it appears when the fetch finishes. The URL must be directly downloadable Paste a link that returns the actual file, not a preview or "share" landing page. If a service hides the file behind a login or a click-through page, the fetched file will be an HTML page instead of your data. Pulling files onto a server or VPS instead If the destination is a game server or VPS rather than Drive, pull the file there directly. Game/app servers on the control panel have a Files tab with a "Pull remote file" (import from URL) action, and a VPS gives you a shell where you can use standard tools. # On a Victus VPS (SSH as root) or app-hosting shell: wget https://example.com/path/to/file.zip # or, to save under a specific name: curl -L -o release.tar.gz https://example.com/downloads/release.tar.gz Remote pulls still count against quota A file fetched from a URL into Drive uses the same 10 GB storage quota as a manual upload. On a game server or VPS it consumes that instance’s disk allocation instead. Check available space before pulling large archives. ### Share files Canonical URL: https://victuscloud.com/documentation/file-hosting-share-files Create share links in Victus Drive, protect them with a password and expiry date, allow uploads, or generate one-time secret links. Victus Drive lets you share any file or folder without giving people your login. You create a share link, optionally lock it down with a password and expiry, and send it. Because Drive is Nextcloud, you get fine-grained control over what recipients can do. Create a share link In https://drive.victuscloud.com, hover over the file or folder and click the share (chain-link) icon to open the sharing sidebar. Click "Share link" to generate a public link. A URL is created and copied for you. Open the link’s settings (the "..." / options menu next to the link) to adjust permissions before you send it. Paste the link to your recipient over any channel you like. Password protection and expiry For anything sensitive, add a password so only people with the passphrase can open the link, and set an expiration date so the link stops working automatically. In the link settings, toggle "Set password" and enter one, then toggle "Set expiration date" and pick the date. Send the password over a separate channel from the link itself. Read-only vs. upload (file drop) For a folder share you can choose "Allow upload and editing" or a "File drop (upload only)" mode, which lets people send files into your folder without seeing what is already there — handy for collecting submissions. One-time / self-destructing links To hand someone a link that works exactly once, combine two settings: set the expiration date to today (or the earliest allowed) and, where the "Hide download" / limited-use options are available, restrict it. The most reliable single-use pattern on Drive is to set a password plus a same-day expiry, then delete the share right after the recipient confirms they have the file. Revoke when you are done A public link is live until you remove it. When a transfer is complete, reopen the sharing sidebar and delete the link (the trash/unshare icon) so it can never be reused or leaked. ### Storage quota (10 GB) Canonical URL: https://victuscloud.com/documentation/file-hosting-storage-quota Understand the 10 GB Victus Drive storage quota — how usage is counted, how to check it, what happens when you hit the limit, and how to free space. Standard Victus Drive accounts come with a 10 GB storage quota. Everything in your account counts toward it: uploaded files, files pulled from a URL, files others drop into your shared folders, and previous versions kept by version history. Check your current usage Sign in at https://drive.victuscloud.com. Open your personal settings (the account avatar, top-right). The usage bar shows how much of your 10 GB is used and how much remains. Behaviour What happens Upload that fits Completes normally and the usage bar rises. Upload that would exceed 10 GB Rejected before completing (you may see a 507 Insufficient Storage error). Deleting files Space is freed only once the file also leaves the Deleted files (trash) area. Old file versions Version history can quietly consume part of your quota. 507 means you are out of room A 507 Insufficient Storage error on upload means the transfer would push you past 10 GB. Free up space (see below) and retry — see the "Why my upload failed" article for the full breakdown. Free up space Empty the Deleted files (trash) area — deleted files still count until the trash is emptied. Clear old versions from version history on large, frequently-edited files. Remove large files you no longer need, or move them to a game-server/VPS instance if that is where they belong. Compress folders of many small files into a single archive before storing them. Need more than 10 GB? The 10 GB quota is the standard allocation. If your workflow needs more, open a Discord ticket or use the on-site support widget to ask about a larger allocation. ### Why my upload failed (507 / 500 errors) Canonical URL: https://victuscloud.com/documentation/file-hosting-why-my-upload-failed Diagnose and fix failed uploads to Victus Drive — what 507 Insufficient Storage and 500 Internal Server Error mean and the steps to recover. If an upload to https://drive.victuscloud.com stops partway or refuses to start, the HTTP status code in the error tells you what went wrong. The two you are most likely to see are 507 and 500 — they have different causes and different fixes. 507 Insufficient Storage — you are over quota A 507 means the upload would exceed your available storage. Most often that is your 10 GB account quota, but it can also mean the underlying Drive server itself is low on disk. The fix on your side is to reclaim space. Open Settings and check your usage bar — confirm whether you are near 10 GB. Empty the Deleted files (trash) area; deleted files still occupy quota until purged. Delete or archive large files and clear old file versions. Retry the upload once the usage bar shows enough free space for the file. Still 507 with plenty of quota free? If your personal quota clearly has room but 507 persists, the Drive host may be temporarily low on disk. Check https://status.victuscloud.com and, if there is no notice, open a Discord ticket so staff can free server-side space. 500 Internal Server Error — the server hiccuped A 500 is a server-side error rather than a quota problem. It usually means the request could not be completed — a timeout on a very large file, a momentary overload, or the Drive host under pressure. It is not caused by anything wrong with your file. Wait a minute and retry — transient 500s often clear on their own. For very large files, upload over a stable wired connection and keep the tab open so chunked upload can resume. Try one large file at a time instead of many parallel uploads. Split an enormous archive into smaller parts if a single huge file keeps timing out. Quick triage 507 = out of space (free up room). 500 = server error (wait and retry). A stalled progress bar with no code is usually a dropped connection — refresh and let the resumable upload continue. When to open a ticket If 507 persists despite free quota, or 500 errors continue after retries and a stable connection, capture the file size and the exact error, check https://status.victuscloud.com, then open a Discord ticket or use the on-site support widget. ## Drive Victus Drive (Nextcloud) personal cloud storage for backups and assets. ### What is Victus Drive? Canonical URL: https://victuscloud.com/documentation/drive-what-is-victus-drive Victus Drive is a private cloud storage service at drive.victuscloud.com, powered by Nextcloud — store, sync, share and access your files from any device. Victus Drive is Victus Cloud’s private file storage service, hosted at https://drive.victuscloud.com. It runs on Nextcloud, a mature open-source cloud platform, so under the hood you get the full Nextcloud web app: your own personal folder, file versioning, a trash bin, share links, and desktop/mobile sync clients — all tied to your Victus account. Think of it as your personal cloud drive that sits alongside the rest of the Victus platform. It is separate from your game servers, VPS and app-hosting instances (those keep their own disks), but it is the ideal place to keep backups, config files, mod packs, screenshots, and anything else you want available from anywhere without eating into a server’s allocation. What you can do with it Upload files and whole folders from your browser and organise them into a folder tree. Sync automatically with the official Nextcloud desktop and mobile apps, or over WebDAV. Create share links — optionally password-protected, with an expiry date, or upload-only "file drop" folders. Recover deleted files from the Deleted files (trash) area and roll back to older versions from version history. Access everything from any device with a browser, keeping files private to your account. Drive vs. server disk Files in Victus Drive count against your 10 GB Drive quota, not against a game server or VPS disk. If a file belongs on a specific server (a world backup, a plugin), keep it there; if it is something you want portable and backed up off the instance, Drive is the right home. Standard storage: 10 GB Every Victus Drive account comes with a 10 GB storage quota. See "Drive storage limits and quotas" for how usage is counted and how to free up space. Because Drive is standard Nextcloud, almost any Nextcloud guide, app or client works with it — you just point it at the server address `https://drive.victuscloud.com` and sign in with your Victus credentials. ### Log in to Drive Canonical URL: https://victuscloud.com/documentation/drive-log-in-to-drive How to sign in to Victus Drive at drive.victuscloud.com, what credentials to use, and how to connect the desktop, mobile and WebDAV clients securely. Victus Drive lives at https://drive.victuscloud.com. You sign in with your Victus account credentials, then work in the Nextcloud web interface from any browser. Sign in from your browser Open https://drive.victuscloud.com in your browser. Enter your Victus username (or email) and password on the login screen. Click Log in. You land on the "All files" view showing your personal folder. To sign out later, open the account avatar menu at the top-right and choose Log out. Forgotten password or can’t log in? Use the password reset option on the login page if available. If you still cannot get in, open a Discord ticket or use the on-site support widget — do not create a second account, as anti-alting rules apply across the platform. Connect the desktop and mobile apps Because Drive is Nextcloud, the official Nextcloud desktop client (Windows/macOS/Linux) and mobile apps (Android/iOS) work out of the box. When the app asks for a server address, enter `https://drive.victuscloud.com` and complete the sign-in in the browser window it opens. Install the official Nextcloud desktop or mobile client from nextcloud.com. Choose "Log in" and enter the server URL https://drive.victuscloud.com. Finish the login flow in the browser tab/window the app opens, then "Grant access". Pick which folders to sync (desktop) or enable auto-upload for photos (mobile). Use an app password for clients For desktop, mobile and WebDAV, generate a dedicated app password instead of typing your main password: in Drive open Settings → Security → "Create new app password". You can revoke a single app’s access later without changing your account password. WebDAV access To mount Drive as a network drive or use it from scripts and third-party tools, connect over WebDAV. The endpoint follows the standard Nextcloud pattern (replace `USERNAME` with your Victus username) and you authenticate with an app password. https://drive.victuscloud.com/remote.php/dav/files/USERNAME/ ### Upload, organise and sync files Canonical URL: https://victuscloud.com/documentation/drive-upload-organise-and-sync-files Get files into Victus Drive by browser upload or drag-and-drop, organise them into folders, and keep a folder in sync automatically with the Nextcloud clients. This guide covers the day-to-day file work in Victus Drive: getting files in, keeping them tidy in folders, and syncing a folder so your local machine and the cloud stay identical. Everything happens in the Nextcloud web app at https://drive.victuscloud.com or through the sync clients. Upload files Sign in at https://drive.victuscloud.com and open the folder you want files to land in. Click the "+ New" button and choose "Upload files", or drag files straight from your computer onto the file list. You can also drag an entire folder onto the list — modern browsers recreate its subfolder structure for you. Watch the progress bar at the top of the file list; the item appears once the transfer finishes. Large uploads resume automatically Drive uploads big files in chunks, so a brief connection drop does not restart the whole transfer. Keep the browser tab open until the progress bar completes. If a large upload is rejected outright, it is almost always a quota issue — check your usage first. Organise into folders Create a folder with the "+ New" button → "New folder", then drag files into it to build a tidy tree. Rename or move an item from its "..." (actions) menu, or drag it onto another folder. Add items to Favourites (the star) so they surface quickly in the Favourites view. Use the search box at the top to find files across all of your folders by name. Sync a folder automatically The Nextcloud desktop client keeps a local folder and your Drive in continuous two-way sync: drop a file in the synced folder on your PC and it uploads on its own; delete it and it is removed in the cloud (and vice-versa). This is the most reliable way to work with many files. Install and log the Nextcloud desktop client into https://drive.victuscloud.com (see "Log in to Drive"). Choose a local sync folder, or select specific remote folders to sync down. Work in that folder normally — changes propagate automatically in both directions. Use "Virtual files" / selective sync to keep space-heavy folders in the cloud only until you need them. Deletes sync both ways When two-way sync is on, deleting a file locally deletes it in Drive too. Recoverable copies land in the Deleted files (trash) area for a limited time, but do not treat sync as a substitute for keeping an independent backup of anything critical. Prefer a network drive? If you would rather not keep a full local copy, mount Drive over WebDAV at https://drive.victuscloud.com/remote.php/dav/files/USERNAME/ using an app password, and browse it like any other network location. ### Drive storage limits and quotas Canonical URL: https://victuscloud.com/documentation/drive-storage-limits-and-quotas Understand the 10 GB Victus Drive quota — how usage is counted, how to check it, what happens when you run out, and how to reclaim space. Every standard Victus Drive account has a 10 GB storage quota. Because Drive is Nextcloud, "usage" is not just your visible files — it also includes items you may forget about, such as trashed files and older file versions. Knowing what counts is the key to staying under the limit. What counts toward your quota Files and folders you have uploaded or created. Files pulled from a remote URL directly into Drive. Files other people drop into your upload-enabled ("file drop") shared folders. Items still sitting in the Deleted files (trash) area — they occupy quota until the trash is emptied. Previous versions retained by version history on frequently-edited files. Check your current usage Sign in at https://drive.victuscloud.com. Open your personal settings from the account avatar at the top-right. The storage/usage bar shows how much of your 10 GB is used and how much remains. Situation What happens Upload that fits within 10 GB Completes normally; the usage bar rises. Upload that would exceed 10 GB Rejected before completing — you may see a 507 Insufficient Storage error. Deleting a file Quota is freed only once the file also leaves the Deleted files (trash) area. Editing a file repeatedly Old versions in version history can quietly consume part of your quota. 507 = out of room A 507 Insufficient Storage error on upload means the transfer would push you past your quota. Free up space (below) and retry. If quota is clearly free but 507 persists, the Drive host may be low on disk — check https://status.victuscloud.com and open a ticket. Free up space Empty the Deleted files (trash) area — trashed files count until purged. Clear old versions from version history on large, frequently-edited files. Delete large files you no longer need, or move them onto the game server / VPS they belong to. Compress a folder of many small files into a single archive before storing it. Need more than 10 GB? The 10 GB quota is the standard allocation. If your workflow genuinely needs more, open a Discord ticket or use the on-site support widget to ask about a larger allocation. ## Account & Security Login, password resets, verification and keeping your account safe. ### Create and verify your account Canonical URL: https://victuscloud.com/documentation/account-security-create-and-verify-your-account Register a Victus account on the billing/store portal, verify your email, and understand which login works where across control, billing, and Drive. Your Victus account is created on the billing/store portal at [billing.victuscloud.com](https://billing.victuscloud.com) (Paymenter). This is where your credit balance, orders, invoices, and affiliate details live. The same identity is used to sign in to the control panel at [control.victuscloud.com](https://control.victuscloud.com) to manage your game servers, VPS, bots, and apps. Creating an account is free and every new account starts with 3 free credits. Register Open [billing.victuscloud.com](https://billing.victuscloud.com) and choose Register / Sign up. Enter your name, a real email address you control, and a strong password (see the "Secure your account" guide for password advice). Submit the form to create the account. Check your inbox for a verification email from Victus and click the confirmation link. Log in and confirm your 3 free credits appear on your balance. Two portals, one identity Billing ([billing.victuscloud.com](https://billing.victuscloud.com)) is your account/store. The control panel ([control.victuscloud.com](https://control.victuscloud.com)) is where you actually manage services. Drive (https://drive.victuscloud.com) is a separate Nextcloud login. Use the email you registered with everywhere. Verify your email Email verification confirms you own the address and unlocks ordering and support. If the verification email has not arrived within a few minutes: Check your spam / junk / promotions folders. Make sure you typed the address correctly — a typo means the link went to the wrong inbox. Look for a "Resend verification email" option on the login or account page. Allow-list the Victus sender domain so future password-reset and invoice emails are not filtered. One person, one account Victus free hosting has anti-abuse rules: creating multiple accounts to farm free credits or free servers (alting) is not allowed and can lead to suspension. Keep a single account and top it up with credits instead. Next step Once verified, you can claim a free server or order a paid service, then jump into the control panel Console. Set up two-factor authentication right away — see "Secure your account". ### Reset your password Canonical URL: https://victuscloud.com/documentation/account-security-reset-your-password Recover access to your Victus account when you forget your password, and reset the separate control-panel and Drive passwords. If you cannot log in, you can reset your password by email. Because Victus has more than one login surface, first identify where you are trying to sign in: the billing/store portal, the control panel, or Drive. Each has its own "forgot password" flow, though they are usually kept in sync from your billing account. Reset your billing / store password Go to [billing.victuscloud.com](https://billing.victuscloud.com) and open the login page. Click "Forgot password?" (or the reset-password link). Enter the email address you registered with and submit. Open the reset email and click the link — it is time-limited, so use it promptly. Set a new strong password and confirm it, then log in with the new credentials. Reset your control-panel password Go to [control.victuscloud.com](https://control.victuscloud.com) and open the login page. Use the "Forgot password" link and enter the same email address. Follow the emailed link to set a new panel password. Reset email not arriving? Wait a couple of minutes, then check spam and promotions folders. Make sure you are using the exact email you signed up with — the system will not reveal whether an address exists, so a silent "no email" often means a typo or an unregistered address. This changes login only — not your server passwords Resetting your account password does NOT change a VPS root password, an SSH key, a game-server RCON password, or database credentials. Those are managed inside the service (for a VPS, use rescue mode or the panel to reset root; for databases, use the panel Databases tab). If you have two-factor authentication (2FA) enabled and lost your device, a password reset alone will not get you in — you will also need your 2FA recovery codes. If you have neither, open a support ticket on Discord to verify ownership. Never post codes, tokens, or passwords in a public channel. ### Secure your account (2FA, strong passwords, tokens) Canonical URL: https://victuscloud.com/documentation/account-security-secure-your-account-2fa Harden your Victus account: enable two-factor authentication, use a strong unique password, and never share API keys, reseller keys, or panel tokens. Your Victus account can control real infrastructure — game servers, full KVM virtual machines with root access, bots, and prepaid credit. That makes it a target. A few minutes of hardening prevents almost all account takeovers. The three pillars are: enable two-factor authentication, use a strong unique password, and never share your tokens or keys. Enable two-factor authentication (2FA) Log in and open your account / security settings (on the control panel this is under your Account area). Choose to enable two-step / two-factor authentication. Scan the QR code with an authenticator app such as Google Authenticator, Authy, or Aegis. Enter the 6-digit code the app generates to confirm and activate 2FA. Save the one-time recovery codes somewhere safe and offline — a password manager or printed copy. Store your recovery codes now If you lose your authenticator device and do not have recovery codes, regaining access requires a manual ownership check via a support ticket, which is slow. Save the codes the moment 2FA is enabled. Use a strong, unique password At least 12–16 characters — length beats complexity. Unique to Victus; never reuse a password from another site. Use a password manager to generate and store it (Bitwarden, 1Password, KeePassXC). A passphrase of 4+ random words is both strong and memorable. Never share tokens, keys, or codes Victus and its staff will NEVER ask for your password, your 2FA codes, or your API/reseller keys. Anyone who does is attempting to phish you. Treat the following as secrets equivalent to a password: Reseller API keys (they start with rslr_) — anyone holding one can spend your prepaid credit and provision services. Panel API keys / client tokens used for automation. VPS root passwords and SSH private keys. Database passwords shown in the panel Databases tab. One-time 2FA codes and recovery codes. # Reseller key example — treat like a password. # Pass it via an environment variable, never hard-code or paste it in chat/screenshots. export VICTUS_RESELLER_KEY="rslr_xxxxxxxxxxxxxxxxxxxx" curl -H "Authorization: Bearer $VICTUS_RESELLER_KEY" \ https://control.victuscloud.com/api/reseller/v1/... If a key leaks, rotate it immediately If you accidentally commit a reseller/API key to Git, paste it in a screenshot, or share it, revoke it from the panel Reseller API page and mint a new one right away. Then check your credit balance and recent activity for anything you did not do. Spotting phishing Always log in via the real domains: billing.victuscloud.com and control.victuscloud.com. Check the URL before entering credentials, and be suspicious of DMs offering free credits, "verification" links, or urgent account warnings. ### Account suspended or banned — what to do Canonical URL: https://victuscloud.com/documentation/account-security-suspended-or-banned Understand why a Victus account or service gets suspended (unpaid credit, expired free server, or anti-abuse), and the exact steps to appeal and restore access. A suspension can apply to a single service (one server is paused) or to your whole account (you cannot log in or order). Before appealing, work out which one you are facing and why — the fastest fix depends on the cause. Common reasons Reason What it looks like Fix Out of credits / unpaid A paid service is suspended when its renewal is not covered by your balance. Top up credits, then renew or unsuspend the service. Free server not renewed Free servers require panel renewal; they suspend, then delete after the displayed retention window. Renew in Victus Panel before the deletion deadline shown there. Anti-abuse (alting) Whole account locked for multiple accounts / free-credit farming. Open a support ticket to appeal; consolidate to one account. Terms / abuse report Account or service locked for prohibited content or activity. Open a ticket for details and to appeal. If it is a billing/credit suspension Log in to [billing.victuscloud.com](https://billing.victuscloud.com) and check your credit balance and unpaid invoices. Add credits using UPI (India), PayPal, Crypto (LTC), or EasyPaisa (Pakistan). Pay the outstanding invoice / renew the service — suspended services usually restore automatically once covered. Return to [control.victuscloud.com](https://control.victuscloud.com) and confirm the service is running again. Free servers: renew in Victus Panel Free servers currently use a weekly renewal deadline shown in Victus Panel. Missing it suspends the server before deletion. Renew from the panel while retention remains; after deletion the files are gone. If your whole account is locked (anti-abuse or a ban) Do not create a second account to get around it — that is itself against the anti-abuse rules and will make an appeal harder. Join the Victus Discord and open a support ticket, or use the on-site support widget. State your account email, which service is affected, and calmly explain the situation. Provide any proof of ownership requested (never post passwords, 2FA codes, or API keys — staff will not ask for these). Wait for a staff review; keep the ticket to one thread rather than opening duplicates. Back up before a grace period ends If a service is suspended but not yet deleted, download your data now. For game servers use the Backups tab or download files from the Files tab; for a VPS take a snapshot. Once a service is fully deleted, the data cannot be recovered. Check the status page If you suspect the problem is platform-wide rather than your account, check https://status.victuscloud.com before opening a ticket. ### Change your email Canonical URL: https://victuscloud.com/documentation/account-security-change-your-email Update the email address on your Victus account safely, keep billing and control-panel logins in sync, and re-verify the new address. Your email is your primary login and the address that receives invoices, password-reset links, and important account notices. Change it whenever you lose access to the old inbox or want to move to a better one — but do it carefully so you are never locked out. Update your email Log in to [billing.victuscloud.com](https://billing.victuscloud.com) and open your account / profile settings. Find the email field, enter the new address, and confirm your current password if asked. Save the change. Open the verification email sent to the NEW address and click the confirmation link. Log out and log back in with the new email to confirm it works. Keep the control panel in sync Billing and the control panel ([control.victuscloud.com](https://control.victuscloud.com)) share your identity. After changing your email on billing, sign in to the panel to confirm the new address carried over; if the panel keeps a separate profile, update it there too. Do it before you lose the old inbox If verification or security checks are sent to your OLD address, change your email while you can still read that inbox. If you have already lost access to the old email, open a support ticket to verify ownership instead. After the change Update the saved login in your password manager, and make sure the new address can receive Victus mail (check spam and allow-list the sender) so future password resets and invoices reach you. ### Delete your account Canonical URL: https://victuscloud.com/documentation/account-security-delete-your-account Permanently close your Victus account — what to back up first, how to cancel services and clear invoices, and how to request deletion. You can permanently close your Victus account and have your data removed. Deletion is irreversible: all services, files, backups, snapshots, and any remaining credit are lost. Work through the checklist below before you request it. This cannot be undone Deleting your account destroys every game server, VPS, bot, and app you own, plus their files and backups. Remaining credit is non-recoverable. Make sure you truly want this before proceeding. Step 1 — Back up everything you want to keep Game servers: create a backup in the Backups tab and download it, or pull files from the Files tab. VPS: take a final snapshot and/or copy data off the machine over SSH/SFTP. Drive: download any files you still need from https://drive.victuscloud.com. Billing: download any invoices you need for your records. Step 2 — Cancel services and settle billing In [billing.victuscloud.com](https://billing.victuscloud.com), cancel each active service so nothing tries to renew. Clear or void any outstanding invoices. If you have a reseller API key, revoke it from the panel Reseller API page so it can no longer be used. Step 3 — Request account deletion Look for a "Close account" / "Delete account" option in your billing account settings. If there is no self-service option, open a support ticket on Discord (or the on-site support widget) and request account deletion. Send the request from — or clearly reference — the account email so staff can verify ownership. Confirm the request if asked; deletion then removes your account and associated data. Never share secrets to prove ownership Staff will verify you through your account email and account details. They will never need your password, 2FA codes, or API keys — do not send them in a ticket. Prefer a pause over deletion? If you just want to stop paying, cancelling your services and leaving the account idle keeps your login and history without ongoing charges. Delete only when you are certain you want the data gone. ## Reseller & API Reselling, developer access and automating Victus with the API. ### Reseller API overview (sell VPS, game, bot and app hosting under your brand) Canonical URL: https://victuscloud.com/documentation/reseller-api-overview What the Victus Reseller API is, what you can sell with it, and how the prepaid credit model works so you can build your own storefront on top of Victus infrastructure. The Victus Reseller API lets you provision and manage hosting on Victus infrastructure programmatically, so you can run your own store, dashboard or Discord bot and sell services under your own brand. Your customers never need a Victus account — you own the relationship, set your own prices, and Victus bills you at wholesale via prepaid credits. What you can sell VPS — full KVM/libvirt virtual machines (Ubuntu templates, SSH root access, snapshots, rescue mode). Category code `vps`. Game servers — Minecraft (Paper/Purpur/Spigot/Fabric/Forge/Vanilla/Velocity) and other games, provisioned as panel servers. Category code `game`. Discord bots — Node.js/Python/Java bot hosting plus Lavalink. Category code `bot`. App hosting — Code-Server, Nginx/PHP/WordPress, databases and more. Category code `app`. One base URL, four categories Every service type is provisioned through the same endpoints. You pass a category (`vps`, `game`, `bot`, `app`) and a plan `code` from the catalog — there are no separate APIs to learn per product. How the prepaid credit model works Reselling is prepaid. You top up a credit balance on your Victus account (credits are the platform currency, roughly 1 credit ≈ 1 USD), and every service you provision draws down that balance on its billing cycle. Credits are shared with the rest of your Victus account, so the same balance you see in the billing portal is the balance the API spends. Provisioning a service reserves/charges credits for the current cycle — a `402` error means your balance is too low. Recurring renewals are debited automatically each cycle; keep enough headroom so active customer services never lapse. Terminating a service stops future charges. Check `GET /account/transactions` for the full ledger. You bill your own customers however you like (higher price, different currency) — that is entirely on your side. Keep a credit buffer If your balance runs out, active customer services can be suspended on their next renewal. Automate a low-balance alert against `GET /account` and top up before you hit zero. The rest of this category walks through getting a key, authentication, the response format, reading the catalog, provisioning and managing services, and receiving webhooks. ### Get an API key and understand the prepaid credit model Canonical URL: https://victuscloud.com/documentation/reseller-api-get-an-api-key Mint a reseller API key (rslr_...) from the Reseller API page in the Victus panel, store it safely, and top up the prepaid credit balance the API spends. Reseller API access is enabled per account. Once it is active, you generate keys yourself from the Reseller API page in the control panel — no ticket required for each key. Mint a key Log in to the control panel at [control.victuscloud.com](https://control.victuscloud.com). Open the Reseller API page from your account area. Click to create a new key, give it a descriptive label (e.g. "production-store" or "staging"), and optionally restrict its scopes. Copy the key immediately — it starts with `rslr_` and is shown in full only once. Store it as a secret (environment variable / secrets manager), never in client-side code or a public repo. Treat the key like a password A leaked `rslr_` key can provision services and spend your credit balance. If a key is exposed, revoke it on the Reseller API page and mint a new one. Use a separate key per environment so you can rotate one without downtime. Top up prepaid credits The API spends the same credit balance as your main Victus account. Add credits in the billing portal before you start provisioning. Go to the billing portal at [billing.victuscloud.com](https://billing.victuscloud.com). Add credits using any supported method: UPI (India), PayPal, Crypto (LTC), or EasyPaisa (Pakistan). Verify the new balance with `GET /account` or in the billing dashboard. Every account starts with 3 free credits New accounts get 3 free credits, which is enough to test a cheap provision end-to-end before you commit real budget. ### Authentication and base URL Canonical URL: https://victuscloud.com/documentation/reseller-api-authentication-and-base-url The Reseller API base URL, how to send your rslr_ bearer token, required headers, and a quick authenticated request to confirm your key works. All Reseller API requests go to a single versioned base URL and are authenticated with your `rslr_` key sent as a Bearer token in the Authorization header. Base URL https://control.victuscloud.com/api/reseller/v1 Every path in this documentation is relative to that base. For example, `GET /account` means `GET https://control.victuscloud.com/api/reseller/v1/account`. Required headers Header Value Notes Authorization Bearer rslr_your_key_here Required on every request. Accept application/json Responses are always JSON. Content-Type application/json Required on POST/PUT requests with a body. Confirm your key works curl https://control.victuscloud.com/api/reseller/v1/account \ -H "Authorization: Bearer rslr_your_key_here" \ -H "Accept: application/json" A successful call returns your account details and current credit balance inside a `data` object. Store the key in an environment variable rather than hard-coding it: export VICTUS_KEY="rslr_your_key_here" curl https://control.victuscloud.com/api/reseller/v1/account \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Accept: application/json" Getting 401 Unauthorized? Check that the header is exactly `Authorization: Bearer rslr_...` (with the word Bearer and a space), that the key was copied in full, and that it has not been revoked on the Reseller API page. Always use HTTPS Only call the API over HTTPS. Never send your key over plain HTTP or embed it in a URL query string where it can be logged. ### Response format, errors, rate limits and scopes Canonical URL: https://victuscloud.com/documentation/reseller-api-responses-errors-rate-limits-scopes The standard success {data} and error {errors:[{code,status,detail}]} envelopes, common HTTP status codes, the 240 req/min rate limit, and how key scopes restrict access. The Reseller API uses one predictable envelope for every response, so you can parse success and failure the same way across all endpoints. Success responses Successful responses return a top-level `data` field. It is an object for a single resource and an array for collections. { "data": { "id": "svc_8fj2k", "category": "vps", "status": "running" } } Error responses Errors return a top-level `errors` array. Each entry has a machine-readable `code`, the HTTP `status`, and a human-readable `detail`. { "errors": [ { "code": "insufficient_credits", "status": "402", "detail": "Your credit balance is too low to provision this plan." } ] } Common status codes Status Meaning What to do 200 / 201 Success Read the `data` field. 202 Accepted Action is queued (e.g. provision, reinstall). Poll the service or wait for a webhook. 400 Bad request Fix the request body / parameters. 401 Unauthorized Missing or invalid Bearer key. 403 Forbidden Your key lacks the required scope. 404 Not found Unknown service id or catalog code. 402 Payment required Top up credits, then retry. 422 Validation error A field failed validation — see `detail`. 429 Rate limited Back off and retry after the reset window. 5xx Server error Retry with backoff; check status.victuscloud.com. Rate limits The default limit is 240 requests per minute per key. When you exceed it you get a `429` response. Inspect the rate-limit headers to pace your requests instead of retrying blindly. X-RateLimit-Limit: 240 X-RateLimit-Remaining: 0 Retry-After: 12 Handle 429 gracefully Respect the `Retry-After` header (seconds) and use exponential backoff. Batch or cache catalog reads instead of calling `GET /catalog` on every page load. Scopes Each key can be restricted to a set of scopes when you mint it, so a key only does what it needs. A call that requires a scope the key lacks returns `403`. read — read account, catalog, regions and services (`GET` endpoints). provision — create new services (`POST /services`). manage — power, console, reinstall, resize, suspend/unsuspend, backups, reset-password. terminate — delete services (`DELETE /services/{id}`). webhooks — read and update webhook configuration. Least privilege Give a read-only key to a public status dashboard and reserve provision/terminate scopes for your trusted backend. This limits the blast radius if any single key leaks. ### List the catalog, plans and regions Canonical URL: https://victuscloud.com/documentation/reseller-api-catalog-and-plans Read the available product categories, plans and pricing with GET /catalog, drill into a specific plan code, and list deployment regions with GET /regions. Before you can provision anything, you need a valid plan `code` and (where relevant) a `region`. The catalog is your source of truth for what you can sell and what it costs in credits. List everything curl https://control.victuscloud.com/api/reseller/v1/catalog \ -H "Authorization: Bearer $VICTUS_KEY" This returns all four categories (`vps`, `game`, `bot`, `app`), each with its list of plans. Filter by category # Only VPS plans curl https://control.victuscloud.com/api/reseller/v1/catalog/vps \ -H "Authorization: Bearer $VICTUS_KEY" # A single plan by its code curl https://control.victuscloud.com/api/reseller/v1/catalog/vps/vps-2c-4g \ -H "Authorization: Bearer $VICTUS_KEY" A plan entry describes the resources and the recurring cost in credits. Example shape: { "data": { "code": "vps-2c-4g", "category": "vps", "name": "VPS Standard 2/4", "specs": { "vcpu": 2, "ram_mb": 4096, "disk_gb": 60 }, "price": { "credits": 6.0, "cycle": "monthly" }, "regions": ["de-1", "sg-1"] } } List regions curl https://control.victuscloud.com/api/reseller/v1/regions \ -H "Authorization: Bearer $VICTUS_KEY" Use a region `code` from this list (for example the EU and Singapore locations) when you provision. Not every plan is available in every region — the plan entry lists its supported regions. Cache the catalog The catalog changes rarely. Cache it for a few minutes rather than fetching it on every page render, so you stay well under the 240 req/min limit. Never guess a code Always provision with a `code` you read back from the catalog. Hard-coded or out-of-date codes cause `404` / `422` errors when plans are renamed or retired. ### Provision a service (VPS, game, bot and app examples) Canonical URL: https://victuscloud.com/documentation/reseller-api-provision-a-service Create services with POST /services for every category — full curl examples for a VPS, a Minecraft game server, a Discord bot and an app, plus how to poll until it is ready. You provision any service type with a single endpoint: `POST /services`. Pass the `category`, a plan `code` from the catalog, a `region` where required, and category-specific options. Provisioning charges credits for the current cycle. Provisioning is asynchronous A successful create usually returns `202 Accepted` with the new service `id` and a `provisioning` / `installing` status. Poll `GET /services/{id}` or listen for the `service.ready` webhook before handing credentials to your customer. VPS curl -X POST https://control.victuscloud.com/api/reseller/v1/services \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "category": "vps", "code": "vps-2c-4g", "region": "de-1", "label": "customer-1234-vps", "options": { "os_template": "ubuntu-22.04", "hostname": "cust1234", "ssh_key": "ssh-ed25519 AAAA...", "root_password": "optional-if-no-ssh-key" } }' Game server (Minecraft) curl -X POST https://control.victuscloud.com/api/reseller/v1/services \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "category": "game", "code": "mc-4g", "region": "sg-1", "label": "customer-1234-smp", "options": { "egg": "paper", "minecraft_version": "latest", "eula": true } }' Discord bot curl -X POST https://control.victuscloud.com/api/reseller/v1/services \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "category": "bot", "code": "bot-1g", "label": "customer-1234-bot", "options": { "runtime": "nodejs", "git_repo": "https://github.com/you/bot.git", "start_command": "npm start" } }' App hosting curl -X POST https://control.victuscloud.com/api/reseller/v1/services \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "category": "app", "code": "app-1g", "label": "customer-1234-app", "options": { "type": "code-server", "password": "customer-chosen-password" } }' Poll until ready SID="svc_8fj2k" curl https://control.victuscloud.com/api/reseller/v1/services/$SID \ -H "Authorization: Bearer $VICTUS_KEY" \ | jq '.data.status' # provisioning -> installing -> running 402 insufficient_credits If provisioning fails with a `402`, your prepaid balance is too low for this plan. Top up in the billing portal and retry — no service is created and nothing is charged. Use a unique label Set a `label` you can map back to your own customer/order id. It makes services easy to find in `GET /services` and in the panel, and helps reconcile the `GET /account/transactions` ledger. ### Manage a service (power, console, usage, lifecycle, backups) Canonical URL: https://victuscloud.com/documentation/reseller-api-manage-a-service Control a provisioned service: power signals, console access, usage stats, suspend/unsuspend, reinstall, resize, reset-password, backups and termination. Once a service exists, you drive its whole lifecycle through `/services/{id}/...` endpoints. The same actions map to the panel tabs (Console, Backups, Settings, etc.) your customers would otherwise use manually. Power signals Send start / stop / restart / kill via `POST /services/{id}/power`. curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/power \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "signal": "restart" }' # start | stop | restart | kill Console and commands # Get a short-lived console/websocket token for a live terminal curl https://control.victuscloud.com/api/reseller/v1/services/$SID/console \ -H "Authorization: Bearer $VICTUS_KEY" # Send a single command to the running service curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/command \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "command": "say Restarting in 30s" }' Live usage stats curl https://control.victuscloud.com/api/reseller/v1/services/$SID/usage \ -H "Authorization: Bearer $VICTUS_KEY" # returns CPU %, memory, disk and network for the service Suspend, unsuspend and terminate Suspend a service when a customer stops paying you; unsuspend when they return. Terminate deletes it and stops all future charges. # Suspend (stops + blocks access, keeps data) curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/suspend \ -H "Authorization: Bearer $VICTUS_KEY" # Unsuspend curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/unsuspend \ -H "Authorization: Bearer $VICTUS_KEY" # Terminate (irreversible) curl -X DELETE https://control.victuscloud.com/api/reseller/v1/services/$SID \ -H "Authorization: Bearer $VICTUS_KEY" Termination destroys data DELETE is irreversible — the service, its files and any VPS disk are removed. Take a backup or snapshot first if you might need the data, and confirm on your side before calling it. Reinstall, resize and reset password # Reinstall / rebuild from a template or egg (wipes the service) curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/reinstall \ -H "Authorization: Bearer $VICTUS_KEY" # Resize to a different plan (upgrade / downgrade); credit cost adjusts curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/resize \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "code": "vps-4c-8g" }' # Reset the root / service password (returns or emails the new one) curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/reset-password \ -H "Authorization: Bearer $VICTUS_KEY" Reinstall wipes the service Reinstall rebuilds from scratch and erases current data. Warn the customer and back up first. Resize may require a short reboot; a VPS downsize can be blocked if current disk usage exceeds the smaller plan. Backups # List backups curl https://control.victuscloud.com/api/reseller/v1/services/$SID/backups \ -H "Authorization: Bearer $VICTUS_KEY" # Create a backup / snapshot now curl -X POST https://control.victuscloud.com/api/reseller/v1/services/$SID/backups \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "pre-reinstall" }' Actions are queued Lifecycle actions (reinstall, resize, backup) return `202` and run in the background. Watch the service status or the matching webhook event instead of assuming instant completion. ### List services, get a single service, and check your balance Canonical URL: https://victuscloud.com/documentation/reseller-api-list-services-and-balance Use GET /services to list everything you have provisioned, GET /services/{id} for one service, GET /account for your credit balance, and GET /account/transactions for the ledger. These read endpoints are how you build a dashboard, reconcile billing, and monitor your prepaid balance. List all your services curl https://control.victuscloud.com/api/reseller/v1/services \ -H "Authorization: Bearer $VICTUS_KEY" # Filter with query params, e.g. by category or status curl "https://control.victuscloud.com/api/reseller/v1/services?category=vps&status=running" \ -H "Authorization: Bearer $VICTUS_KEY" The response is a `data` array of service summaries (id, category, label, status, plan code, region). Large lists are paginated — follow the pagination fields in the response. Get a single service curl https://control.victuscloud.com/api/reseller/v1/services/svc_8fj2k \ -H "Authorization: Bearer $VICTUS_KEY" A single service includes its full detail: current status, connection info (IP/port or domain), specs, plan `code`, region, and next renewal date. Check your balance curl https://control.victuscloud.com/api/reseller/v1/account \ -H "Authorization: Bearer $VICTUS_KEY" { "data": { "id": "acct_x91", "credits": 128.5, "currency": "credits", "active_services": 14 } } Read the transaction ledger curl https://control.victuscloud.com/api/reseller/v1/account/transactions \ -H "Authorization: Bearer $VICTUS_KEY" Transactions cover top-ups (credit) and service charges/renewals (debit), each with an amount, timestamp and the related service id — perfect for reconciling against what you charged your own customers. Automate a low-balance alert Poll `GET /account` on a schedule (well within 240 req/min) and alert yourself when `credits` drops below a threshold, so customer services never lapse for lack of funds. ### Webhooks (events and X-Victus-Signature HMAC verification) Canonical URL: https://victuscloud.com/documentation/reseller-api-webhooks Register a webhook endpoint with PUT /webhooks, receive service and billing events, and verify every delivery with the X-Victus-Signature HMAC header. Because provisioning and lifecycle actions are asynchronous, webhooks are the reliable way to react to state changes without polling. Victus POSTs a JSON event to your URL whenever something happens to your services or balance. Register your endpoint # See current webhook config curl https://control.victuscloud.com/api/reseller/v1/webhooks \ -H "Authorization: Bearer $VICTUS_KEY" # Set (or update) the delivery URL and subscribed events curl -X PUT https://control.victuscloud.com/api/reseller/v1/webhooks \ -H "Authorization: Bearer $VICTUS_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://yourstore.com/hooks/victus", "events": ["service.ready", "service.suspended", "account.low_balance"] }' Save the signing secret When you set a webhook, the response includes a signing secret (shown once). Store it securely — you need it to verify every incoming delivery via the `X-Victus-Signature` header. Events Event Fires when service.provisioning A create request was accepted and build started. service.ready A service finished installing and is usable. service.failed Provisioning or a lifecycle action failed. service.suspended A service was suspended (by you or non-payment). service.unsuspended A suspended service was restored. service.terminated A service was deleted. service.power A power state change (start/stop/restart/kill). backup.completed A backup/snapshot finished. account.low_balance Your prepaid credit balance dropped below the threshold. Verify the signature Every delivery includes an `X-Victus-Signature` header: the HMAC-SHA256 of the raw request body keyed with your signing secret, hex-encoded. Compute the same HMAC and compare using a constant-time check. Reject any request that does not match — never trust the payload otherwise. const crypto = require('crypto'); function verifyVictus(rawBody, signatureHeader, secret) { const expected = crypto .createHmac('sha256', secret) .update(rawBody) // the RAW request body, before JSON.parse .digest('hex'); const a = Buffer.from(expected); const b = Buffer.from(signatureHeader || ''); return a.length === b.length && crypto.timingSafeEqual(a, b); } // Express example (use the raw body, not the parsed one) app.post('/hooks/victus', express.raw({ type: '*/*' }), (req, res) => { const sig = req.header('X-Victus-Signature'); if (!verifyVictus(req.body, sig, process.env.VICTUS_WEBHOOK_SECRET)) { return res.status(400).send('bad signature'); } const event = JSON.parse(req.body.toString('utf8')); // handle event.type ... res.sendStatus(200); }); Verify against the raw body Compute the HMAC over the exact bytes received, before any JSON parsing or re-serialization. Re-encoding the body changes whitespace/key order and breaks the signature check. Respond fast, process later Return a 2xx quickly (ideally after signature verification) and do heavy work in a background job. Victus retries deliveries that do not receive a 2xx, so make your handler idempotent using the event id. ## Troubleshooting Fixes for common errors before you open a support ticket. ### You get a generic "unexpected error" doing an action Canonical URL: https://victuscloud.com/documentation/troubleshooting-unexpected-error A vague "An unexpected error occurred" toast in the control panel usually means a background daemon action failed or your session expired. Here is how to narrow it down and recover. The message "An unexpected error occurred" (sometimes shown as a red toast in the corner) appears in the control panel at [control.victuscloud.com](https://control.victuscloud.com) when the panel asked the node daemon to do something and the answer came back as an error it could not translate into a friendly message. It is a symptom, not a specific fault, so the goal is to find out which action failed and why. First, rule out the quick causes Refresh the page (Ctrl+R). If you had a tab open for a long time your login session may have expired, and re-loading forces a fresh session token. If refreshing bounces you to the login page, sign in again — an expired session is the single most common cause of this toast. Retry the exact same action once. Transient errors (a node briefly busy, a lock held by another action) often clear on the second attempt. Check status.victuscloud.com. If the node your service lives on is under maintenance or reporting an incident, panel actions against it will fail until it is back. Capture the details before they vanish Open your browser DevTools (F12) → Network tab, then reproduce the error. The failed request (usually red, status 500 or 409) and its response body tell support exactly what broke. A screenshot of that is far more useful than "it says unexpected error". If it happens on a specific action Starting/stopping a server — the node may be offline or the server is in a "starting"/"stopping" state; wait for it to settle, then use Kill and try again. Editing files or uploading — the disk may be full, or the file is locked while the server runs. Stop the server and retry. Creating a backup or database — you may have hit the backup/database limit on your plan, which surfaces as a generic error. Changing Startup variables — an invalid value (e.g. a non-numeric port) can be rejected by the daemon as an unexpected error. Do not spam-click Repeatedly clicking a failing button can queue multiple conflicting power/daemon actions and leave the server in a stuck state. Click once, wait for the result, then retry. If the error persists across a fresh login and a page refresh, open a support ticket on Discord or via the on-site support widget. Include the service name, the exact action you were doing, the time it happened, and — if you captured it — the failed request from the Network tab. ### Server shows offline and will not start Canonical URL: https://victuscloud.com/documentation/troubleshooting-server-offline-wont-start When a game server stays offline or crashes on boot, the answer is almost always in the Console. Learn to read the crash output and fix the common causes on Victus. A server that "will not start" is not stuck — it is starting, hitting an error, and stopping again. The control panel Console tab records exactly why. Ninety percent of start failures are diagnosed by scrolling the Console output up to the first red ERROR or the last lines before the process exited. Step 1 — read the console Open the server in the panel and go to the Console tab. Press Start and watch the output as it boots. Find the first line that mentions Error, Exception, Caused by, or "Stopping server". That line (and the few above it) is the real cause — everything after it is fallout. Note the exact message so you can match it to a fix below or paste it into a support ticket. Common causes and fixes Console message Cause Fix "You need to agree to the EULA…" Minecraft EULA not accepted Open Files, edit eula.txt, set eula=true, save, restart. "Failed to bind to port" / "address already in use" Wrong or taken port in Startup Check the Network tab for your real allocation and set the correct port. "UnsupportedClassVersionError" / "requires Java" Wrong Java version for the jar Open Startup and pick the Java version the jar requires (e.g. Java 17/21). "Could not reserve enough space" / OutOfMemory Not enough RAM for the heap Lower the memory flag or upgrade the plan; do not set heap above your plan RAM. Crash referencing a plugin/mod file A broken or incompatible plugin/mod Remove that jar from the plugins/mods folder and restart. Free servers must be renewed Free Minecraft servers are suspended after a missed renewal and deleted after the retention deadline. If a free server stays offline and Console cannot start it, check its renewal state directly in Victus Panel. Normal idle sleep is different: join through the managed hostname or press Start as a fallback. Step 2 — if the console shows nothing at all Use the power control to Kill the server, wait a few seconds, then Start — this clears a stuck process. Confirm the service is not suspended (an overdue renewal or empty credit balance suspends paid services). Check status.victuscloud.com for a node incident affecting your location. Check the disk is not full — a full disk stops the server writing its files and it fails silently. The panel shows disk usage; delete old backups/logs or upgrade if it is maxed. Recently changed something? If the server was fine yesterday, the culprit is almost always your most recent change — a new plugin/mod, an edited config, or a version bump in Startup. Revert that change or restore a Backup from before it, then start again. ### Cannot connect to my game server Canonical URL: https://victuscloud.com/documentation/troubleshooting-cannot-connect-to-server The server is running in the panel but players cannot join. Fix connection failures by checking the address, the correct port, the version and the whitelist. If the Console shows "Done" and the server is online but you still cannot connect, the problem is between your client and the server address, not the server itself. Work through these in order — the first two fix the large majority of cases. Use the correct address and port Open the server in the panel and go to the Network tab (allocations). Copy the primary allocation exactly — it is an IP (or domain) plus a port, e.g. 203.0.113.10:25565. In your game client, enter the full address. For Minecraft Java, if the port is the default 25565 you can omit it; for any other port you MUST type it as address:port. For Minecraft Bedrock, enter the IP in the Address field and the port in the separate Port field. Do not use the panel URL as the server address control.victuscloud.com is the management panel, not your game server address. Players connect to the allocation IP:port shown on the Network tab, never to the panel domain. Match the version An "Outdated client/server" or "Incompatible" message means your game version does not match the server version. Check the version the server is running (Startup tab / console banner) and set your client to the same version. Modpacks and Forge/Fabric servers also require the matching mod set installed on your client. Other blockers "Connection refused" — the server is not actually listening yet (still starting) or you used the wrong port. Wait for "Done", re-check the Network tab port. "Connection timed out" — usually a wrong IP, or a local network/firewall on your side; try a different network or device to rule out your ISP. "You are not white-listed on this server" — whitelist is on. In Console run `whitelist add `, or edit whitelist.json, or run `whitelist off`. "You are banned" — you were banned; run `pardon ` in Console to unban. Server full — increase max-players in server.properties (Files) and restart. Quick reachability test From a terminal you can test the port is open: `ping ` checks the host is reachable, and a service like an online "Minecraft server status" checker against your IP:port confirms whether it is publicly joinable versus a problem local to your machine. ### High latency / lag on my server Canonical URL: https://victuscloud.com/documentation/troubleshooting-high-latency-lag Lag has two very different causes: network latency (high ping) and server-side performance (low TPS). Learn to tell them apart and fix each on Victus. There are two completely different problems people both call "lag". Network lag is high ping — your connection to the server is slow, everyone rubber-bands. Server lag is low TPS (ticks per second) — the server itself cannot keep up, and the game slows for everyone regardless of their ping. Diagnosing which one you have decides the fix. Is it TPS (server-side) or ping (network)? In-game ping/latency bars are green for you but the world still stutters for everyone → low TPS (server-side). Your ping is high or spiking and you rubber-band while others are fine → network latency (your connection or distance to the node). For Minecraft, type `/tps` (Paper/Purpur/Spigot). 20 is perfect; consistently below ~18 means the server is overloaded. Fixing low TPS (server performance) Run `/timings report` (Paper/Purpur) or install the Spark plugin and run `/spark profiler` to see exactly what is eating tick time. Reduce view-distance and simulation-distance in server.properties (e.g. from 10 to 6) — this is the single biggest TPS win on limited RAM. Remove or replace heavy plugins/mods flagged by the timings/spark report. Limit entities: cull mob farms, use anti-lag settings, and cap redstone/hoppers. If you are genuinely CPU/RAM-bound after tuning, upgrade the plan for more resources. Victus servers ship with tuned JVM flags Game servers on Victus already run optimised (Aikar-style) startup flags for good garbage-collection behaviour, so you rarely need to hand-edit JVM flags. Focus on view-distance, entity/plugin load and picking a RAM tier that matches your player count. Fixing high ping (network latency) Pick the region closest to your players — a server in the EU node will always ping high for players in Asia and vice-versa. Test your own connection: `ping ` from your machine. High/spiky ping to many hosts means the issue is your local network or ISP, not Victus. Use a wired connection instead of Wi-Fi where possible; background downloads and VPNs add latency. Check status.victuscloud.com for any network incident on the node. A near-full disk also causes lag When a server's disk is nearly full, chunk saving and logging stall the main thread and TPS drops. Clear old backups and logs, or upgrade disk, if usage in the panel is near 100%. ### Forgot your password Canonical URL: https://victuscloud.com/documentation/troubleshooting-forgot-password How to reset a forgotten password on Victus, and why you may need to reset it separately for the billing portal and the control panel. If you cannot log in, use the self-service password reset before contacting support — it is instant and works for the vast majority of cases. Victus has two web logins, so first make sure you are resetting the right one. Two portals, two logins billing.victuscloud.com is your account/store (top up credits, order services). control.victuscloud.com is the panel where you manage servers. If one login works but the other does not, reset the one that is failing. Reset your password Go to the login page of the portal you cannot access (billing.victuscloud.com or control.victuscloud.com). Click the "Forgot password" link below the login form. Enter the email address you registered with and submit. Open the reset email and click the link — it is time-limited, so use it promptly. Choose a new, strong password and log in with it. Reset email not arriving? Check your spam/junk folder and search for "victuscloud". Make sure you typed the exact email you signed up with — a reset link is only sent if that email matches an account. See the "Did not receive the verification email" article for allow-listing steps. Still locked out If you no longer have access to your registered email, self-service reset cannot reach you — open a support ticket so staff can verify your identity. If you originally signed up/linked via Discord, use that same method to sign in rather than an email/password. After regaining access, enable two-factor authentication and update your recovery email to avoid a repeat. ### Did not receive the verification email Canonical URL: https://victuscloud.com/documentation/troubleshooting-no-verification-email Verification and reset emails from Victus can land in spam or be delayed. Follow these steps to find the email, resend it, and stop it happening again. After signing up, Victus sends a verification email to confirm you own the address. If it has not appeared within a few minutes, it is almost always one of a handful of causes below rather than a lost email — work through them in order. Find the email Wait 2–5 minutes — delivery is not always instant. Search your whole mailbox (not just the inbox) for "victuscloud" or "verify". Check the Spam/Junk and Promotions/Updates folders — automated mail often lands there. Confirm you registered the exact address you are checking, with no typo (e.g. gmial vs gmail). Resend and unblock Use the "Resend verification email" option on the login/verification screen to trigger a fresh send. Add the Victus sender to your contacts / allow-list so the retry is not filtered. If you use a strict or disposable/temporary email provider, it may silently drop the message — try again with a mainstream provider (Gmail, Outlook, etc.). On corporate or school email, an IT filter may block external mail; use a personal address instead. Do not create a second account Signing up again to "fix" a missing email creates a duplicate account, which trips the anti-alting protection and can suspend both accounts. Resend to the original account or contact support instead. Registered the wrong address? If you signed up with a typo'd email you can never receive from, open a support ticket (via Discord or the on-site widget) with the correct address and staff can help correct it. ### Payment made but credits not added Canonical URL: https://victuscloud.com/documentation/troubleshooting-payment-not-credited A payment cleared but your credit balance did not go up. Here is why that happens across UPI, PayPal, Crypto and EasyPaisa, and exactly what to do. When money leaves your account but your credit balance on billing.victuscloud.com has not increased, the payment is almost always still being confirmed rather than lost. Different payment methods confirm at different speeds, and until the confirmation reaches Victus the credits are not released. Expected confirmation times Method Region Typical confirmation UPI India Usually within minutes, occasionally longer at peak. PayPal Global Usually instant once PayPal marks it complete. Crypto (LTC) Global After the required blockchain confirmations — minutes to ~1 hour depending on the network. EasyPaisa Pakistan Usually minutes; manual/offline transfers can take longer. What to do first Wait for the window above to pass, then hard-refresh your billing account page and re-check the balance and the Invoices/Payments list. Check whether the matching invoice is now marked Paid — if it is, the credits were applied and any linked service should be active. Log out and back in to force a fresh balance read. Keep the proof of payment: the transaction ID / reference, exact amount, method, and the date/time. Crypto: pay the exact amount and network For LTC payments, send the exact amount to the exact address shown on the invoice, from a normal wallet. Underpaying, overpaying, or sending the wrong coin/network can leave a payment unmatched and needing manual review. When to open a ticket If the confirmation time has clearly passed and credits are still missing, open a support ticket with your account email, the payment method, the exact amount, and the transaction ID / reference. With that, staff can locate the payment and credit your account manually. Never share full card/wallet secrets Support only needs the transaction reference and amount. Never share your full card number, wallet seed phrase, or account password with anyone claiming to be staff — real Victus staff will not ask for them. ### How to contact support / open a ticket Canonical URL: https://victuscloud.com/documentation/troubleshooting-contact-support-open-ticket The fastest ways to reach Victus support — the on-site support widget and Discord tickets — plus what to include so your issue is solved on the first reply. Victus support runs through two channels: the on-site support widget available on the website and portals, and Discord tickets. Both reach the same team. Pick whichever is convenient — the key to a fast resolution is giving enough detail up front. Ways to reach us On-site support widget — click the chat/help widget on victuscloud.com or inside the portals to start a conversation and attach screenshots. Discord tickets — join the Victus Discord and open a ticket in the support/ticket channel; this keeps a threaded history of your issue. Status page — before opening a ticket for an outage, check status.victuscloud.com; if there is a posted incident, it is already being worked on. Include this in your first message What service it is — the exact server/VPS/bot/app name as shown in the panel. What you were trying to do and what happened instead (the exact error text, not a paraphrase). When it started and whether a recent change (new plugin, config edit, version bump, payment) preceded it. Evidence — a screenshot of the error, relevant Console output, or a failed request from browser DevTools. For billing issues — your account email, payment method, amount, and transaction ID / reference. One issue, one ticket Keep a single ticket per issue and reply in that same thread rather than opening several — it keeps the full history together and gets you a faster, more accurate answer. Beware impersonators Only trust support through the official widget and the official Victus Discord. Staff will never DM you first asking for your password, card number, or crypto wallet seed phrase. Anyone who does is a scammer. Help yourself faster Many issues are already covered in these docs — search the Troubleshooting section for your error message first. A quick search often resolves things instantly without waiting for a reply.