LAN Server: Difference between revisions

From DDraceNetwork
Marked this version for translation
m DCLIENT=OFF does not increase build time but decreases it.
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages />
 
<translate>
<translate>
<!--T:1-->
<!--T:1-->
Line 8: Line 9:


<!--T:3-->
<!--T:3-->
* Play privately with friends
*Play privately with friends
* Host maps not found on public servers
*Host maps not found on public servers
* Test maps with admin commands and tools
*Test maps with admin commands and tools
* And much more!
*And much more!


<!--T:4-->
<!--T:4-->
Line 17: Line 18:




== Creating and Joining a LAN Server == <!--T:5-->
==Creating and Joining a LAN Server== <!--T:5-->


<!--T:6-->
<!--T:6-->
Line 23: Line 24:


<!--T:7-->
<!--T:7-->
# Navigate to the main menu
#Navigate to the main menu
# Click on "Start Server"
#Click on "Start Server"
#* A black console window should pop up (this might take a moment). Copy the rcon password from this window.
#*A black console window should pop up (this might take a moment). Copy the rcon password from this window.
# Navigate to the server browser, and join the new server in the LAN tab
#Navigate to the server browser, and join the new server in the LAN tab
# After joining, press f2 to open the in-game server console and enter in your rcon password from earlier to get access to [[Special:MyLanguage/Settings and Commands|admin commands.]]
#After joining, press f2 to open the in-game server console and enter in your rcon password from earlier to get access to [[Special:MyLanguage/Settings and Commands|admin commands.]]
# You're done!
#You're done!


<!--T:8-->
<!--T:8-->
Line 34: Line 35:




== Setting Up Your LAN Server for Online Play == <!--T:9-->
==Setting Up Your LAN Server for Online Play== <!--T:9-->


<!--T:10-->
<!--T:10-->
Line 40: Line 41:


<!--T:11-->
<!--T:11-->
# Port forward the UDP port 8303 through your router.
#Port forward the UDP port 8303 through your router.
#* The easiest way to do this is to simply search "how to port forward" in your preferred search engine. This process usually requires you to log into your router interface, which, again, varies per household.
#*The easiest way to do this is to simply search "how to port forward" in your preferred search engine. This process usually requires you to log into your router interface, which, again, varies per household.
#* Make sure to choose the UDP setting, and not the TCP or the TCP/UDP setting.
#*Make sure to choose the UDP setting, and not the TCP or the TCP/UDP setting.
#* You can forward a port other than 8303 if you set up the desired port using <code>sv_port</code> in your server autoexecutable. However, the default port is 8303 for DDNet. So, if you're not sure what you're doing, just forward port 8303.
#*You can forward a port other than 8303 if you set up the desired port using <code>sv_port</code> in your server autoexecutable. However, the default port is 8303 for DDNet. So, if you're not sure what you're doing, just forward port 8303.
# If you'd like your server to show up on the Internet tab, use the server setting <code>sv_register 1</code>, either in the f2 console or in the server autoexecutable. Note that this '''will''' make your IP publicly viewable if you host the server from your home network. So, use at your own risk.
#If you'd like your server to show up on the Internet tab, use the server setting <code>sv_register 1</code>, either in the f2 console or in the server autoexecutable. Note that this '''will''' make your IP publicly viewable if you host the server from your home network. So, '''use at your own risk'''.
Some ISPs might not provide you with a full native IPv4 address, but instead use carrier-grade NAT, and will thus not support forwarding ports. In this case you can't make your LAN server available for online play.


==Setting Up on Linux Server== <!--T:12-->


== Setting Up on Linux Server == <!--T:12-->


 
===Linux=== <!--T:13-->
=== Linux === <!--T:13-->


<!--T:14-->
<!--T:14-->
{|- class="wikitable" style="width:100%;"
{| class="wikitable" style="width:100%;"
| <div style=" display: flex; justify-content: space-between;"><div>Method 1 (Compiling server)</div> <div class="mw-customtoggle-methodOne" style="color:#0B0080;"><small>[Show/Hide]</small></div></div>
<td><div style=" display: flex; justify-content: space-between;"><div>Method 1 (Compiling server)</div> <div class="mw-customtoggle-methodOne" style="color:#0B0080;"><small>[Show/Hide]</small></div></div></td>
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodOne"
|- class="mw-collapsible mw-collapsed"
| 1.Update the Server
|For Building your DDNet Server from source please refer to the Github README
 
*[https://github.com/ddnet/ddnet Github]
<!--T:15-->
* <code>sudo apt update && apt upgrade</code>
 
<!--T:16-->
2. Install git
 
<!--T:17-->
* <code>sudo apt install git</code>
 
<!--T:18-->
3. Make a directory
 
<!--T:19-->
* <code>mkdir DDNet-Server</code>
 
<!--T:20-->
3. Clone the repository from Github
 
<!--T:21-->
* <code>git clone --recursive --depth=1 <nowiki>https://github.com/ddnet/ddnet</nowiki></code>
 
<!--T:22-->
4. Install all required dependencies
 
<!--T:23-->
* <code>sudo apt install build-essential cmake git libcurl4-openssl-dev libssl-dev libfreetype6-dev libglew-dev libnotify-dev libogg-dev libopus-dev libopusfile-dev libpnglite-dev libsdl2-dev libsqlite3-dev libwavpack-dev python google-mock</code>
 
<!--T:24-->
5. Go into ddnet folder
 
<!--T:25-->
* <code>cd ddnet</code>
 
<!--T:26-->
5. Compile DDNet
 
<!--T:27-->
* <code>mkdir build</code>
* <code>cd build</code>
* <code>cmake -DCLIENT=OFF ..</code>
* <code>make -j$(nproc)</code>
 
<!--T:28-->
6. Open Server


<!--T:29-->
<!--T:56-->
* <code>./DDNet-Server</code>
If you follow the steps you will not only build the Server but also the Client. to disable that specify the following in your cmake command:


<!--T:30-->
<!--T:57-->
7. forward a port to the server (default is 8303)
<p><code>cmake .. -DCLIENT=OFF</code></p>


<!--T:31-->
<!--T:58-->
8. Connect via Client on the IP
This will significantly decrease build time and wont build unneccessary files.
 
<!--T:32-->
* Press F1
* connect "Server-IP"
 
<!--T:33-->
9.Play
 
<!--T:34-->
More Information are available at https://github.com/ddnet/ddnet
|}
|}


<!--T:35-->
<!--T:35-->
{|- class="wikitable" style="width:100%;"
{| class="wikitable" style="width:100%;"
| <div style=" display: flex; justify-content: space-between;"><div>Method 2 (Using precompiled binaries)</div> <div class="mw-customtoggle-methodTwo" style="color:#0B0080;"><small>[Show/Hide]</small></div></div>
<td><div style=" display: flex; justify-content: space-between;"><div>Method 2 (Using precompiled binaries)</div> <div class="mw-customtoggle-methodTwo" style="color:#0B0080;"><small>[Show/Hide]</small></div></div></td>
|- class="mw-collapsible mw-collapsed" id="mw-customcollapsible-methodTwo"
|- class="mw-collapsible mw-collapsed"
| 1. Download binaries from [https://ddnet.org/downloads/ DDNet download page]
|1. Download binaries from [https://ddnet.org/downloads/ DDNet download page]


<!--T:36-->
<!--T:36-->
Line 136: Line 83:


<!--T:38-->
<!--T:38-->
* <code>./DDNet-Server</code>
<li><code>./DDNet-Server</code></li>


<!--T:39-->
<!--T:39-->
Line 145: Line 92:


<!--T:41-->
<!--T:41-->
* Press F1
*Press F1
* connect "Server-IP"
*connect "Server-IP"


<!--T:42-->
<!--T:42-->
Line 155: Line 102:
More Information about Port forwarding are available at http://portforward.com/
More Information about Port forwarding are available at http://portforward.com/


 
==Server Settings and Maps== <!--T:44-->
== Server Settings and Maps == <!--T:44-->


<!--T:45-->
<!--T:45-->
Line 162: Line 108:


<!--T:46-->
<!--T:46-->
* On Windows, you can find it in AppData/Roaming/Teeworlds.
*<b>On Windows:</b> Old: <code>%appdata%\Teeworlds</code> New: <code>%appdata%\DDNet</code>
* On Linux, you can find it in (insert location here).
*<b>On Linux:</b> Old: <code>~/.teeworlds</code> New: <code>~/.local/share/ddnet</code>
* On Mac, you can find it in (insert location here).
*<b>On macOS:</b> Old: <code>~/Library/Application Support/Teeworlds</code> New: <code>~/Library/Application Support/DDNet</code>




=== Server Autoexecutables === <!--T:47-->
===Server Autoexecutables=== <!--T:47-->


<!--T:48-->
<!--T:48-->
Line 179: Line 125:


<!--T:51-->
<!--T:51-->
* sv_rcon_password <rcon password>
*sv_rcon_password <rcon password>
* sv_password <password to join>
*sv_password <password to join>
* sv_name <server name>
*sv_name <server name>
* sv_register 1 (shows the server on the Internet tab)
*sv_register 1 (shows the server on the Internet tab)
* sv_test_cmds 1 (allows the use of cheat commands)
*sv_test_cmds 1 (allows the use of cheat commands)




=== Server Maps === <!--T:52-->
===Server Maps=== <!--T:52-->


<!--T:53-->
<!--T:53-->
Server maps can be found in Teeworlds/maps. To load a map ingame, use the server command <code>sv_map <mapname></code>.
<p>Server maps can be found in Teeworlds/maps. To load a map ingame, use the server command <code>sv_map <mapname></code>.</p>




== See also == <!--T:54-->
==See also== <!--T:54-->


<!--T:55-->
<!--T:55-->
* [https://wiki.archlinux.org/title/DDRaceNetwork#Server DDNet Server configuration in Arch Wiki]
*[https://wiki.archlinux.org/title/DDRaceNetwork#Server DDNet Server configuration in Arch Wiki]
* https://github.com/ddnet/ddnet-maps - DDNet maps repository
*https://github.com/ddnet/ddnet-maps - DDNet maps repository
</translate>
</translate>
[[Category:Tutorial{{#translation:}}]]
[[Category:Tutorial{{#translation:}}]]

Latest revision as of 12:11, 27 October 2024

LAN servers are servers run locally by a player on their home network, which the hosting player has full control over.

There are a lot of reasons to host and use a LAN server. They allow you to:

  • Play privately with friends
  • Host maps not found on public servers
  • Test maps with admin commands and tools
  • And much more!

However, there are downsides to hosting a LAN server. They do require specific steps to allow friends to join, and often have unstable connections compared to official servers. Also note that LAN servers will only save ranks locally - if you finish a map on a LAN server, your rank won't translate to any official servers.


Creating and Joining a LAN Server

In the new client, creating a LAN server is very simple.

  1. Navigate to the main menu
  2. Click on "Start Server"
    • A black console window should pop up (this might take a moment). Copy the rcon password from this window.
  3. Navigate to the server browser, and join the new server in the LAN tab
  4. After joining, press f2 to open the in-game server console and enter in your rcon password from earlier to get access to admin commands.
  5. You're done!

However, this only allows players on your local network to join. In other words - nobody else except you can join this LAN server online. To allow players to join online, you'll have to go through more steps.


Setting Up Your LAN Server for Online Play

This next step requires you to port forward, which depends on the brand and type of router you have.

  1. Port forward the UDP port 8303 through your router.
    • The easiest way to do this is to simply search "how to port forward" in your preferred search engine. This process usually requires you to log into your router interface, which, again, varies per household.
    • Make sure to choose the UDP setting, and not the TCP or the TCP/UDP setting.
    • You can forward a port other than 8303 if you set up the desired port using sv_port in your server autoexecutable. However, the default port is 8303 for DDNet. So, if you're not sure what you're doing, just forward port 8303.
  2. If you'd like your server to show up on the Internet tab, use the server setting sv_register 1, either in the f2 console or in the server autoexecutable. Note that this will make your IP publicly viewable if you host the server from your home network. So, use at your own risk.

Some ISPs might not provide you with a full native IPv4 address, but instead use carrier-grade NAT, and will thus not support forwarding ports. In this case you can't make your LAN server available for online play.

Setting Up on Linux Server

Linux

Method 1 (Compiling server)
[Show/Hide]
For Building your DDNet Server from source please refer to the Github README

If you follow the steps you will not only build the Server but also the Client. to disable that specify the following in your cmake command:

cmake .. -DCLIENT=OFF

This will significantly decrease build time and wont build unneccessary files.

Method 2 (Using precompiled binaries)
[Show/Hide]
1. Download binaries from DDNet download page

2. Extract into folder

3. Open Server

  • ./DDNet-Server
  • 4. Forward a port to the server (default is 8303) 5. Connect via Client on the IP
    • Press F1
    • connect "Server-IP"
    6. Play

    More Information about Port forwarding are available at http://portforward.com/

    Server Settings and Maps

    Everything settings and map-wise can be found in your Teeworlds folder.

    • On Windows: Old: %appdata%\Teeworlds New: %appdata%\DDNet
    • On Linux: Old: ~/.teeworlds New: ~/.local/share/ddnet
    • On macOS: Old: ~/Library/Application Support/Teeworlds New: ~/Library/Application Support/DDNet


    Server Autoexecutables

    Server autoexecutables are files containing server settings that are automatically run every time you start your server. For example, this can be helpful if you want to keep a single rcon password to log in with every time.

    To create an autoexecutable, navigate to your Teeworlds folder (not your DDNet folder!), and create a file by the name of "autoexec_server.cfg". Make sure it is a .cfg extension file and not a .txt file or anything similar.

    To add commands, simply edit the autoexec_server.cfg file and add each command on a new line. Here are examples of commonly used commands:

    • sv_rcon_password <rcon password>
    • sv_password <password to join>
    • sv_name <server name>
    • sv_register 1 (shows the server on the Internet tab)
    • sv_test_cmds 1 (allows the use of cheat commands)


    Server Maps

    Server maps can be found in Teeworlds/maps. To load a map ingame, use the server command sv_map <mapname>.


    See also