{"id":19680798,"url":"https://github.com/sungaila/newdarkglobalserver","last_synced_at":"2025-04-29T04:31:39.291Z","repository":{"id":99285036,"uuid":"455684993","full_name":"sungaila/NewDarkGlobalServer","owner":"sungaila","description":"A global server providing a game server list for Thief 2 Multiplayer.","archived":false,"fork":false,"pushed_at":"2025-04-25T15:49:12.000Z","size":454,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-25T16:48:43.988Z","etag":null,"topics":["csharp","darkengine","dotnet","dotnet-core","dotnet6","game","game-server","ipv4","multiplayer","newdark","server","server-list","socket","tcp","thief2"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sungaila.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-02-04T20:19:46.000Z","updated_at":"2025-04-23T08:51:19.000Z","dependencies_parsed_at":"2023-11-23T15:30:08.824Z","dependency_job_id":"2bcaa4bf-fdb8-4399-9a04-6c553d72d398","html_url":"https://github.com/sungaila/NewDarkGlobalServer","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungaila%2FNewDarkGlobalServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungaila%2FNewDarkGlobalServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungaila%2FNewDarkGlobalServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungaila%2FNewDarkGlobalServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sungaila","download_url":"https://codeload.github.com/sungaila/NewDarkGlobalServer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251432857,"owners_count":21588668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","darkengine","dotnet","dotnet-core","dotnet6","game","game-server","ipv4","multiplayer","newdark","server","server-list","socket","tcp","thief2"],"created_at":"2024-11-11T18:06:08.591Z","updated_at":"2025-04-29T04:31:39.285Z","avatar_url":"https://github.com/sungaila.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![NewDarkGlobalServer Logo](https://raw.githubusercontent.com/sungaila/NewDarkGlobalServer/master/Icon.png) NewDarkGlobalServer\n\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/sungaila/NewDarkGlobalServer/dotnet.yml?branch=master\u0026style=flat-square)](https://github.com/sungaila/NewDarkGlobalServer/actions/workflows/dotnet.yml)\n[![GitHub license](https://img.shields.io/github/license/sungaila/NewDarkGlobalServer?style=flat-square)](https://github.com/sungaila/NewDarkGlobalServer/blob/master/LICENSE)\n[![Docker Pulls](https://img.shields.io/docker/pulls/sungaila/newdarkglobalserver?style=flat-square)](https://hub.docker.com/r/sungaila/newdarkglobalserver)\n[![Website](https://img.shields.io/website?up_message=online\u0026down_message=offline\u0026url=https%3A%2F%2Fwww.sungaila.de%2FNewDarkGlobalServer%2F\u0026style=flat-square\u0026label=website)](https://www.sungaila.de/NewDarkGlobalServer/)\n\nA global server providing a game server list for [Thief 2](https://en.wikipedia.org/wiki/Thief_II) Multiplayer.\n\nAlso a web client to check for running game servers without opening the game: https://www.sungaila.de/NewDarkGlobalServer/\n\n## How to setup Thief 2 Multiplayer\n1. Get yourself a copy of the game (e.g. on [GOG.com](https://www.gog.com/de/game/thief_2_the_metal_age) or [Steam](https://store.steampowered.com/app/211740/Thief_II_The_Metal_Age/)).\n\u003e [!WARNING]\n\u003e A few fan missions will not work after installing the multiplayer patch. So consider to create a copy of the Thief 2 game folder for singleplayer purposes.\n2. Download the latest version of [T2Fix: An Unofficial Comprehensive Patch for Thief 2](https://github.com/Xanfre/T2Fix/releases).\n3. Install T2Fix and make sure to select the component `Thief 2 Multiplayer`.\n4. Enjoy! Start the game with `Thief2MP.exe`. Windows might prompt you to install [DirectPlay](https://en.wikipedia.org/wiki/DirectPlay) on first launch.\n    - Select `Multiplayer` in the main menu.\n    - Host your own game with `Host a Game` (uses UDP port `5198`).\n    - Join a game lobby with `Join a Game`. You will need to enter the IP address of the host (must be IPv4 like `127.0.0.1`). You cannot join game sessions that have already started.\n\n### Optional: Activate the in-game server list\n\u003e [!CAUTION]\n\u003e By activating the global server, you will automatically be connected to the global server whenever you host a game. Others can see your IP address in the in-game server list (which is required to join your game).\n\u003e \n\u003e Be aware of the consequences of revealing your  IP address to the public!\n\u003e\n\u003e When in doubt, you should skip activating the global server and share your IP privately with other players.\n1. Open the file `dark_net.cfg` in your game folder with a text editor.\n2. Replace the last two lines with the following:\n```ini\nglobal_server_name thief2.sungaila.de\nglobal_server_port 5199\n```\n3. You can now select `View Server List` in the Multiplayer menu. It will show all servers that are connected to the global server.\n\n\u003e [!NOTE]\n\u003e If you are hosting a game and it says `Connected to global server`, but others do not see you in the server list, then there is a network connection issue between you and your clients.\n\u003e\n\u003e Others join your game via the UDP port `5198` and this could be blocked by a firewall, NAT problems or something else. Also note that only IPv4 is supported (IPv6 is not).\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/sungaila/NewDarkGlobalServer/refs/heads/master/etc/GlobalServerList.png\" width=\"600\" alt=\"Screenshot of the global server list\"\u003e\u003c/p\u003e\n\n\u003e [!TIP]\n\u003e You can use this website to see if others can join your game (check for the status `Denied` next to your game): https://www.sungaila.de/NewDarkGlobalServer/\n## How to setup your own NewDarkGlobalServer\n1. Download [the latest release](https://github.com/sungaila/NewDarkGlobalServer/releases).\n2. Launch `NewDarkGlobalServer.exe`.\n    - Default TCP port is `5199`\n    - You can change that port with the command line argument `--port=YOURNUMBER`\n3. Make sure all your clients have updated their `dark_net.cfg` file with your name and port.\n\n## Command-line options\nUse the `--help` argument to show all available options.\n```\nUsage: NewDarkGlobalServer [options]\nStarts a server providing a game server list for Thief 2 Multiplayer.\n\nOptions:\n  -p, --port=VALUE           Sets the port for this global server. Default is\n                               5199.\n  -s, --timeoutserver=VALUE  Sets timeout for game servers in seconds. Default\n                               is 180 seconds (00:03:00).\n  -c, --timeoutclient=VALUE  Sets timeout for game clients in seconds. Default\n                               is 3600 seconds (01:00:00).\n  -u, --timeoutunidentified=VALUE\n                             Sets timeout for connections to indentify as\n                               client or server in seconds. Default is 10\n                               seconds (00:00:10).\n  -b, --showheartbeatminimal Shows HeartbeatMinimal messages in the log. Each\n                               connected game server sends one every 10 seconds\n                               so the log may become cluttered.\n  -f, --hidefailedconn       Hides failed connections attempts (due to invalid\n                               or unknown messages) from the log.\n  -t, --printtimestamps      Adds timestamps to the log output.\n  -w, --websocket            Activates the optional WebSocket for non-game\n                               clients. Deactivated by default.\n  -n, --websockethostname=VALUE\n                             Sets the hostname for the WebSocket. Default is\n                               localhost.\n  -m, --websocketport=VALUE  Sets the port for the WebSocket. Default is 5200.\n  -e, --websocketssl         Activates SSL for the WebSocket. Deactivated by\n                               default.\n  -v, --verbose              Shows more verbose messages in the log.\n  -h, --help                 Prints this helpful option list and exits.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsungaila%2Fnewdarkglobalserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsungaila%2Fnewdarkglobalserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsungaila%2Fnewdarkglobalserver/lists"}