{"id":1455,"date":"2025-07-17T01:29:28","date_gmt":"2025-07-17T00:29:28","guid":{"rendered":"https:\/\/grimms3dworlds.ddns.net\/?page_id=1455"},"modified":"2025-07-17T02:59:29","modified_gmt":"2025-07-17T01:59:29","slug":"medal-of-honor-spearhead-server-setup-guide","status":"publish","type":"page","link":"https:\/\/grimms3dworlds.ddns.net\/index.php\/medal-of-honor-spearhead-server-setup-guide\/","title":{"rendered":"Medal of Honor: Spearhead Server Setup Guide"},"content":{"rendered":"\n<div style=\"font-family: 'Segoe UI', Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px; background: #ffffff; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1);\">\n\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">This guide walks you through setting up a Medal of Honor: Allied Assault Spearhead server on an Ubuntu Server. Follow the steps carefully to ensure a smooth setup. The guide supports version 2.15 only.<\/p>\n\n    <h2 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 2px solid #e0e6ed; padding-bottom: 8px;\">Requirements<\/h2>\n    <ul style=\"color: #4a4a4a; padding-left: 20px;\">\n        <li style=\"margin-bottom: 8px;\">Ubuntu Server<\/li>\n        <li style=\"margin-bottom: 8px;\">Local IP of the server (e.g., 192.168.0.123)<\/li>\n        <li style=\"margin-bottom: 8px;\">Access to your router to forward ports (default: 12203)<\/li>\n    <\/ul>\n\n    <h2 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 2px solid #e0e6ed; padding-bottom: 8px;\">Optional: Create a User for the Server<\/h2>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">We will use the username <code>gameservers<\/code> for this guide. You can change it to any name, but ensure consistency throughout.<\/p>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Create the user:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo adduser --home \/home\/gameservers gameservers<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Grant sudo access (optional):<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo usermod -aG sudo gameservers<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Switch to the user:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>su - gameservers<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n\n    <h2 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 2px solid #e0e6ed; padding-bottom: 8px;\">Setting Up the Files<\/h2>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Create a new directory:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>mkdir mohaash<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Navigate to the directory:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>cd mohaash<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Download the minimalist server files from GitHub:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>git clone https:\/\/github.com\/Grimm1\/main<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>git clone https:\/\/github.com\/Grimm1\/mainta<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">These are cut-down versions of the original game files, with all images and sound files replaced with placeholders.<\/p>\n\n    <h2 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 2px solid #e0e6ed; padding-bottom: 8px;\">Vanilla Server Setup<\/h2>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">With the <code>mohaash<\/code> folder as your working directory, install required tools:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo apt-get install tmux<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Download the server files:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>wget grimms3dworlds.ddns.net\/ul\/shbins.tar.gz<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Extract the files:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>tar -xvf shbins.tar.gz<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Remove the tar file:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>rm shbins.tar.gz<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">This should result in the following file structure:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\">\nspearhead_lnxded\nmainta\/\n    fgameded.so\n    pak1.pk3\n    pak2.pk3\n    pak3.pk3\n    pak4.pk3\n    pak5.pk3\n<\/pre>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Make the main executable file executable:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo chmod +x spearhead_lnxded<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">The MOHAA Spearhead binaries are 32-bit, and modern Linux distributions may lack 32-bit support. Enable it with:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo dpkg --add-architecture i386<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Update the package list:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo apt update<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Install the required 32-bit dependencies:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo apt-get install libc6-i386 libstdc++5:i386<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"background: #e7f3fe; border: 1px solid #b6d4fe; padding: 15px; color: #0c5460; border-radius: 5px; margin-bottom: 20px;\">\n        <strong>Note:<\/strong> The <code>i386<\/code> architecture must be enabled for 32-bit support. If <code>libstdc++5:i386<\/code> is unavailable, ensure your package sources are up-to-date or check for alternative 32-bit libraries.\n    <\/p>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Test the server installation:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>.\/spearhead_lnxded<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Once verified, press <code>Ctrl+C<\/code> to stop the server.<\/p>\n\n    <h2 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 2px solid #e0e6ed; padding-bottom: 8px;\">Server Configuration<\/h2>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Create a configuration file named <code>server.cfg<\/code> in the <code>mainta<\/code> folder. Use a text editor (e.g., <code>nano<\/code> or <code>vim<\/code>) to create and edit the file:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>nano \/home\/gameservers\/mohaash\/mainta\/server.cfg<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Paste the following configuration into <code>server.cfg<\/code>. Adjust settings like <code>sv_hostname<\/code>, <code>g_gametype<\/code>, and map rotation as needed. For security, set <code>rconpassword<\/code> in the server start command instead of this file.<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; max-height: 400px; overflow-y: auto; overflow-x: auto;\"><code>\n\/\/ Medal of Honor: Allied Assault Spearhead Server Configuration\n\/\/ Place in the 'mainta' folder of your MOHAA server directory\n\n\/\/ === General Server Settings ===\nsv_hostname \"Nameless Battle\"          \/\/ Server name displayed in server browser\nset sv_maxclients 24                   \/\/ Maximum number of players\nset sv_privateclients 0                \/\/ Number of password-protected slots\nset sv_privatepassword \"\"              \/\/ Password for private slots (leave empty if unused)\nset sv_keywords \"\"                     \/\/ Keywords for server browser filtering\nset sv_minping 0                       \/\/ Minimum ping allowed (0 = no limit)\nset sv_maxping 0                       \/\/ Maximum ping allowed (0 = no limit)\nset sv_maxrate 0                       \/\/ Maximum data rate per client (0 = no limit)\n\/\/ set rconpassword \"mystrongpassword\"  \/\/ Set via command line for security, e.g., +set rconpassword mystrongpassword\n\n\/\/ === Game Rules ===\nset g_gametype 1                       \/\/ Game type: 1=FFA, 2=Team, 3=Round-Based, 4=Objective, 5=Tug of War\nset g_healthdrop 1                     \/\/ Enable health packs drop on kill\nset g_realismmode 1                    \/\/ Enable realistic mode\nset g_teamdamage 0                     \/\/ Disable friendly fire\nset g_healrate 10                      \/\/ Health pickup healing rate\nset sv_dmspeedmult 1.100000            \/\/ Player run speed multiplier (1.0 = default)\nset sv_invulnerabletime 3              \/\/ Seconds of invulnerability after spawn\nset g_teamkillwarn 3                   \/\/ Team kills before warning\nset g_teamkillkick 5                   \/\/ Team kills before kick\nset g_teamswitchdelay 15               \/\/ Seconds before switching teams again\n\n\/\/ === Time and Scoring ===\nset timelimit 15                       \/\/ Match time limit (minutes)\nset fraglimit 0                        \/\/ Score limit (0 = no limit)\nset maprotationtime 0                  \/\/ Max time per map (0 = no limit)\nset roundlimit 0                       \/\/ Round time limit (0 = no limit)\nset sv_team_spawn_interval 0           \/\/ Delay between team spawns (seconds)\n\n\/\/ === Player Management ===\nset g_inactivespectate 60              \/\/ Seconds before inactive player becomes spectator\nset g_inactivekick 900                 \/\/ Seconds before inactive player is kicked\nset g_allowvote 1                      \/\/ Enable player voting\nset g_forceteamspectate 1              \/\/ Force spectators to team mode\nset g_forceready 0                     \/\/ Force match to start when ready\nset g_forcespawn 0                     \/\/ Force immediate respawn\nset g_allowjointime 30                 \/\/ Time players can join (seconds)\n\n\/\/ === Server Features ===\nset sv_gamespy 1                       \/\/ Enable GameSpy for server listing\nset sv_pure 0                          \/\/ Disable file verification (0 = off)\nset sv_floodprotect 1                  \/\/ Limit chat spam\nset dmflags 0                          \/\/ Additional gameplay flags\nset sv_gravity 800.000000              \/\/ Gravity value\n\n\/\/ === Map Settings ===\nset map \"DM\/mohdm6\"                    \/\/ Starting map\nset sv_maplist \"dm\/mp_bahnhof_dm dm\/mp_brest_dm dm\/mp_holland_dm dm\/mp_malta_dm dm\/mp_bazaar_dm dm\/mp_gewitter_dm dm\/mp_stadt_dm dm\/mp_verschneit_dm dm\/mp_unterseite_dm obj\/mp_ardennes_tow obj\/mp_berlin_tow obj\/mp_flughafen_tow obj\/mp_druckkammern_tow \"                      \/\/ Map rotation list (e.g., \"DM\/mohdm1 DM\/mohdm2\")\n<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Save the file and exit the editor (e.g., <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code> in <code>nano<\/code>).<\/p>\n    <p style=\"background: #e7f3fe; border: 1px solid #b6d4fe; padding: 15px; color: #0c5460; border-radius: 5px; margin-bottom: 20px;\">\n        <strong>Note:<\/strong> Customize <code>sv_hostname<\/code>, map settings, and other parameters to suit your server. Avoid setting <code>rconpassword<\/code> in this file for security; include it in the server start command (e.g., <code>+set rconpassword mystrongpassword<\/code>).\n    <\/p>\n\n    <h2 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 2px solid #e0e6ed; padding-bottom: 8px;\">Running the Server<\/h2>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Start the server with the following command:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>.\/spearhead_lnxded +set dedicated 1 +set sv_maxclients 24 +set net_ip 192.168.0.123 +set net_port 12203 +set rconpassword mystrongpassword +exec server.cfg<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\"><strong>Command Parameters:<\/strong><\/p>\n    <ul style=\"color: #4a4a4a; padding-left: 20px;\">\n        <li style=\"margin-bottom: 8px;\"><code>sv_maxclients<\/code>: Sets the maximum number of players.<\/li>\n        <li style=\"margin-bottom: 8px;\"><code>net_ip<\/code>: The local IP of the server (e.g., <code>192.168.0.123<\/code>).<\/li>\n        <li style=\"margin-bottom: 8px;\"><code>net_port<\/code>: The port for the server (default: 12203; use different ports for multiple servers).<\/li>\n        <li style=\"margin-bottom: 8px;\"><code>rconpassword<\/code>: Sets the RCON password for remote administration.<\/li>\n        <li style=\"margin-bottom: 8px;\"><code>+exec server.cfg<\/code>: Specifies the configuration file to use.<\/li>\n    <\/ul>\n    <p style=\"background: #fff3cd; border: 1px solid #ffeeba; padding: 15px; color: #856404; border-radius: 5px; margin-bottom: 20px;\">\n        <strong>Port Forwarding:<\/strong> Forward the server port (e.g., 12203) and the query port (12300 for the first server, 12301 for the second, etc.) on your router to the server\u2019s local IP (e.g., 192.168.0.123). The query port is used for server browsers like GameSpy. Example for multiple servers:<br>\n        <table style=\"width: 100%; border-collapse: collapse; margin-top: 10px;\">\n            <tr style=\"background: #f8f9fa;\">\n                <th style=\"border: 1px solid #dee2e6; padding: 10px; color: #1a3c5e;\">Server Port<\/th>\n                <th style=\"border: 1px solid #dee2e6; padding: 10px; color: #1a3c5e;\">Query Port<\/th>\n            <\/tr>\n            <tr>\n                <td style=\"border: 1px solid #dee2e6; padding: 10px;color: #1a3c5e\">12204<\/td>\n                <td style=\"border: 1px solid #dee2e6; padding: 10px;color: #1a3c5e\">12300<\/td>\n            <\/tr>\n            <tr>\n                <td style=\"border: 1px solid #dee2e6; padding: 10px;color: #1a3c5e\">12206<\/td>\n                <td style=\"border: 1px solid #dee2e6; padding: 10px;color: #1a3c5e\">12301<\/td>\n            <\/tr>\n            <tr>\n                <td style=\"border: 1px solid #dee2e6; padding: 10px;color: #1a3c5e\">12222<\/td>\n                <td style=\"border: 1px solid #dee2e6; padding: 10px;color: #1a3c5e\">12302<\/td>\n            <\/tr>\n        <\/table>\n    <\/p>\n    <p style=\"background: #fff3cd; border: 1px solid #ffeeba; padding: 15px; color: #856404; border-radius: 5px; margin-bottom: 20px;\">\n        <strong>Security Tip:<\/strong> Use a firewall (e.g., <code>ufw<\/code>) to allow only necessary ports (12203, 12300) and set a strong <code>rconpassword<\/code> to protect your server.\n    <\/p>\n\n    <h2 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 2px solid #e0e6ed; padding-bottom: 8px;\">Running as a Service<\/h2>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">To run the server as a service in a <code>tmux<\/code> session, create the following <code>systemd<\/code> service files.<\/p>\n    <h3 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 1px solid #e0e6ed; padding-bottom: 8px;\">Master TMUX Service<\/h3>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Create <code>\/etc\/systemd\/system\/master.service<\/code> with:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>[Unit]\nDescription=tmux master service\nWants=network-online.target\n[Service]\nType=forking\nUser=gameservers\nExecStart=\/usr\/bin\/tmux new-session -s master -d\nExecStop=\/usr\/bin\/tmux kill-session -t master\n[Install]\nWantedBy=multi-user.target\n<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <h3 style=\"color: #1a3c5e; margin-bottom: 15px; border-bottom: 1px solid #e0e6ed; padding-bottom: 8px;\">MOHAA Spearhead Server Service<\/h3>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Create <code>\/etc\/systemd\/system\/mohshserver.service ( Remember to change necessary values like net_ip and net_port)<\/code> with:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>[Unit]\nDescription=TMUX MOHAA Spearhead Server\nPartOf=master.service\nAfter=master.service\n[Service]\nType=forking\nUser=gameservers\nExecStart=\/usr\/bin\/tmux new-session -s mohshserver -d 'cd \/home\/gameservers\/mohaash && .\/spearhead_lnxded +set dedicated 1 +set sv_maxclients 24 +set net_ip 192.168.0.123 +set net_port 12203 +exec server.cfg'\nExecStop=\/usr\/bin\/tmux kill-session -t mohshserver\nRestart=always\nRestartSec=5\nWorkingDirectory=\/home\/gameservers\/mohaash\nRemainAfterExit=yes\n[Install]\nWantedBy=multi-user.target\n<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">IF  you want to run multiple servers change the instances of mohshserver in the above to mohshsserver2 for example!<br><br>Reload the systemd daemon:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo systemctl daemon-reload<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Enable the master service:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; height: 1.4; overflow-x: auto;\"><code>sudo systemctl enable master.service<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Enable the mohshserver service:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo systemctl enable mohshserver.service<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Start the master service:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo systemctl start master.service<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Start the mohshserver service:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo systemctl start mohshserver.service<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Check the service status:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>sudo systemctl status mohshserver.service<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"color: #4a4a4a; line-height: 1.6;\">Access the tmux session:<\/p>\n    <div style=\"position: relative; margin-bottom: 20px;\">\n        <pre style=\"background: #1e1e1e; color: #ffffff; padding: 15px; border-radius: 5px; font-size: 14px; line-height: 1.4; overflow-x: auto;\"><code>tmux attach-session -t mohshserver<\/code><\/pre>\n        <button style=\"position: absolute; top: 10px; right: 10px; background: #007bff; color: #ffffff; border: none; padding: 8px 12px; border-radius: 4px; cursor: pointer; font-size: 12px;\" onclick=\"copyCode(this)\">Copy<\/button>\n    <\/div>\n    <p style=\"background: #e7f3fe; border: 1px solid #b6d4fe; padding: 15px; color: #0c5460; border-radius: 5px; margin-bottom: 20px;\">\n        <strong>Note:<\/strong> The server will now run as a background service and automatically restart if it crashes. Use <code>tmux<\/code> to monitor or manage the session.\n    <\/p>\n\n<\/div>\n\n<script>\nfunction copyCode(button) {\n    const pre = button.previousElementSibling;\n    const code = pre.querySelector('code');\n    const text = code.innerText;\n    navigator.clipboard.writeText(text).then(() => {\n        button.textContent = 'Copied!';\n        button.style.background = '#28a745';\n        setTimeout(() => {\n            button.textContent = 'Copy';\n            button.style.background = '#007bff';\n        }, 2000);\n    }).catch(err => {\n        console.error('Failed to copy: ', err);\n    });\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>This guide walks you through setting up a Medal of Honor: Allied Assault Spearhead server on an Ubuntu Server. Follow the steps carefully to ensure a smooth setup. The guide supports version 2.15 only. Requirements Ubuntu Server Local IP of the server (e.g., 192.168.0.123) Access to your router to forward ports (default: 12203) Optional: Create [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1455","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=1455"}],"version-history":[{"count":7,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1455\/revisions"}],"predecessor-version":[{"id":1465,"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/pages\/1455\/revisions\/1465"}],"wp:attachment":[{"href":"https:\/\/grimms3dworlds.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=1455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}