LAN Server: Difference between revisions

From DDraceNetwork
Clear up small confusion (thanks to Mokou for pointint this out)
m DCLIENT=OFF does not increase build time but decreases it.
 
(14 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages />
<translate>
<!--T:1-->
LAN servers are servers run locally by a player on their home network, which the hosting player has full control over.
LAN servers are servers run locally by a player on their home network, which the hosting player has full control over.


<!--T:2-->
There are a lot of reasons to host and use a LAN server. They allow you to:
There are a lot of reasons to host and use a LAN server. They allow you to:


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


<!--T:4-->
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.
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 ==
 
==Creating and Joining a LAN Server== <!--T:5-->
 
<!--T:6-->
In the new client, creating a LAN server is very simple.  
In the new client, creating a LAN server is very simple.  


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


<!--T:8-->
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.
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.


# Port forward the UDP port 8303 through your router.
==Setting Up Your LAN Server for Online Play== <!--T:9-->
#* 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 <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.


== Setting Up on Linux Server ==
<!--T:10-->
This next step requires you to port forward, which depends on the brand and type of router you have.


=== Linux ===
<!--T:11-->
<blockquote>1.Update the Server
#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 <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'''.
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.


* <code>sudo apt update && apt upgrade</code>
==Setting Up on Linux Server== <!--T:12-->


2. Install git


* <code>sudo apt install git</code>
===Linux=== <!--T:13-->


3. Make a directory
<!--T:14-->
{| class="wikitable" style="width:100%;"
<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"
|For Building your DDNet Server from source please refer to the Github README
*[https://github.com/ddnet/ddnet Github]


* <code>mkdir DDNet-Server</code>
<!--T:56-->
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:


3. Clone the repository from Github
<!--T:57-->
<p><code>cmake .. -DCLIENT=OFF</code></p>


* <code>git clone --recursive --depth=1 <nowiki>https://github.com/ddnet/ddnet</nowiki></code>
<!--T:58-->
This will significantly decrease build time and wont build unneccessary files.
|}


4. Install all required dependencies
<!--T:35-->
{| class="wikitable" style="width:100%;"
<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"
|1. Download binaries from [https://ddnet.org/downloads/ DDNet download page]


* <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:36-->
2. Extract into folder


5. Go into ddnet folder
<!--T:37-->
3. Open Server


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


5. Compile DDNet
<!--T:39-->
4. Forward a port to the server (default is 8303)


* <code>mkdir build</code>
<!--T:40-->
* <code>cd build</code>
5. Connect via Client on the IP
* <code>cmake ..</code>
* <code>make -j$(nproc)</code>


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


* <code>./DDNet-Server</code>
<!--T:42-->
6. Play
|}


7. forward a port to the server (default is 8303)
<!--T:43-->
More Information about Port forwarding are available at http://portforward.com/


8. Connect via Client on the IP
==Server Settings and Maps== <!--T:44-->


* Press F1
<!--T:45-->
* connect "Server-IP"
Everything settings and map-wise can be found in your Teeworlds folder.


9.Play</blockquote>More Information are available at https://github.com/ddnet/ddnet
<!--T:46-->
*<b>On Windows:</b> Old: <code>%appdata%\Teeworlds</code> New: <code>%appdata%\DDNet</code>
*<b>On Linux:</b> Old: <code>~/.teeworlds</code> New: <code>~/.local/share/ddnet</code>
*<b>On macOS:</b> Old: <code>~/Library/Application Support/Teeworlds</code> New: <code>~/Library/Application Support/DDNet</code>


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, you can find it in AppData/Roaming/Teeworlds.
===Server Autoexecutables=== <!--T:47-->
* On Linux, you can find it in (insert location here).
* On Mac, you can find it in (insert location here).


=== Server Autoexecutables ===
<!--T:48-->
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.
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.


<!--T:49-->
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 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.


<!--T:50-->
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:
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>
<!--T:51-->
* sv_password <password to join>
*sv_rcon_password <rcon password>
* sv_name <server name>
*sv_password <password to join>
* sv_register 1 (shows the server on the Internet tab)
*sv_name <server name>
* sv_test_cmds 1 (allows the use of cheat commands)
*sv_register 1 (shows the server on the Internet tab)
*sv_test_cmds 1 (allows the use of cheat commands)
 
 
===Server Maps=== <!--T:52-->
 
<!--T:53-->
<p>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 ===
Server maps can be found in Teeworlds/maps. To load a map ingame, use the server command <code>sv_map <mapname></code>.


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


* [https://wiki.archlinux.org/title/DDRaceNetwork#Server DDNet Server configuration in Arch Wiki]
<!--T:55-->
* https://github.com/ddnet/ddnet-maps - DDNet maps repository
*[https://wiki.archlinux.org/title/DDRaceNetwork#Server DDNet Server configuration in Arch Wiki]
*https://github.com/ddnet/ddnet-maps - DDNet maps repository
</translate>
[[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