user_jvm_args.txt

# Xmx and Xms set the maximum and minimum RAM usage, respectively.
# They can take any number, followed by an M or a G.
# M means Megabyte, G means Gigabyte.
# For example, to set the maximum to 3GB: -Xmx3G
# To set the minimum to 2.5GB: -Xms2500M

# A good default for a modded server is 4GB.
# Uncomment the next line to set it.
-Djava.net.preferIPv4Stack=true
-XX:ActiveProcessorCount=2
-XX:ParallelGCThreads=2
-Xmx4G -Xms2G
view-distance: 6 Reduces the number of rendered chunks per player.
simulation-distance: 6 Limits the number of chunks that are actively simulated.
max-players: 4 Sets the maximum number of players allowed on the server.
allow-flight: true Enables flight for players using mods in Survival mode.
sync-chunk-writes: false Allows asynchronous chunk saving, reducing server load.
UFW firewall commands
sudo ufw allow 25565:25595/udp
sudo ufw allow 25565:25595/tcp

java-neoforge-mod

10.10.10.9:25565
neoforge-21.1.224-installer.jar

Commands to create Session 1 and load the first Java Minecraft Server

screen -dmS session1 
screen -r session1
cd /home/michael/java-neoforge-mod
sudo ./run.sh

java_neo_easy_surv

10.10.10.9:25570
neoforge-21.1.224-installer.jar

Commands to create Session 2 and load the second Java Minecraft Server

screen -dmS session2
screen -r session2
cd /home/michael/java_neo_easy_surv
sudo ./run.sh

java_peaceful_survival

10.10.10.9:25575
minecraft_server_1.21.11.jar

Commands to create Session 3 and load the third Java Minecraft Server

screen -dmS session3
screen -r session3
cd /home/michael/java_peaceful_survival
sudo ./run.sh

skyblock

10.10.10.9:25580
minecraft_server_1.21.11.jar

Commands to create Session 4 and load the fourth Java Minecraft Server

screen -dmS session4
screen -r session4
cd /home/michael/skyblock
sudo ./run.sh

java_oneblock

10.10.10.9:25585
minecraft_server_1.21.11.jar

Commands to create Session 5 and load the fifth Java Minecraft Server

screen -dmS session5
screen -r session5
cd /home/michael/java_oneblock
sudo ./run.sh
michael@java2024109:~$ screen -ls
There are screens on:
1642.session5 (04/12/2026 12:54:42 PM) (Detached)
1552.session4 (04/12/2026 12:53:42 PM) (Detached)
1453.session2 (04/12/2026 12:52:21 PM) (Detached)
1347.session1 (04/12/2026 12:51:11 PM) (Detached)
1265.session3 (04/12/2026 12:49:49 PM) (Detached)
5 Sockets in /run/screen/S-michael.
michael@java2024109:~$
10 vCPUs
12 GB RAM

New-VHD -Path 'E:\Hyper-V\Java2404_10.10.10.9\Java2404_10.10.10.9_boot.vhdx' -SizeBytes 2GB -Dynamic -BlockSizeBytes 1MB 
New-VHD -Path 'E:\Hyper-V\Java2404_10.10.10.9\Java2404_10.10.10.9_root.vhdx' -SizeBytes 20GB -Dynamic -BlockSizeBytes 1MB 
New-VHD -Path 'E:\Hyper-V\Java2404_10.10.10.9\Java2404_10.10.10.9_swap.vhdx' -SizeBytes 12GB -Dynamic -BlockSizeBytes 1MB 
 df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 90M 4.2M 86M 5% /run
efivarfs 128M 32K 128M 1% /sys/firmware/efi/efivars
/dev/sdb2 19G 5.4G 13G 31% /
tmpfs 447M 0 447M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda1 2.0G 105M 1.8G 6% /boot
/dev/sdb1 952M 6.2M 945M 1% /boot/efi
tmpfs 90M 12K 90M 1% /run/user/1000
michael@java2024109:~$

A quick backup script for my Hyper-V VMs.

# Import the Hyper-V module
Import-Module Hyper-V

# Define parameters
$BackupDriveLetter = "E" # Change to your backup drive
$VMHost = "localhost" # Change if backing up from a different host
$VMNames = @("Bedrock2404_10.10.10.3",
"Bedrock2404_10.10.10.4",
"Bedrock2404_10.10.10.5",
"Java2404_10.10.10.6",
"Java2404_10.10.10.7",
"Java2404_10.10.10.9",
"PaperMC_10.10.10.8" ) # List of VMs to back up

Remove-Item -Path E:\VMBackups -Recurse -Force


# Function to back up VMs
function Backup-VMs {
param (
[string]$BackupDriveLetter,
[string]$VMHost,
[string[]]$VMNames
)

foreach ($VMName in $VMNames) {
# Export the VM
Export-VM -Name $VMName -Path "E:\VMBackups\$VMName"
}
}

# Call the backup function
Backup-VMs -BackupDriveLetter E -VMHost $VMHost -VMNames $VMNames