Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Portal-2-Multiplayer-Mod/Portal-2-Multiplayer-Mod

Repository files navigation

P2MMBannerREADME Discord Shield Badge
Release Shield Badge
Download Count Shield Badge
Commit Shield Badge
GitHub last commit (branch)

PORTAL 2:

MULTIPLAYER MOD

This mod is completely server-side. Only the host needs to run Portal 2 with the mod installed. People who join the host should run stock Portal 2.

Languages

English | Español | Polish | 简体中文 | 繁體中文 | Italiano | Français | Português (Brasil)

Mod features

  - A maximum player cap of 33
  - Name Tags
  - Custom Player colors
  - Chat commands (!help)
  - In-game Admin system
  - Full cooperative campaign support
  - Full singleplayer campaign support (needs minor polishing)
  - Full Super 8 map support
  - In-house map support for select workshop maps
  - Encryption of client commands invoked through the active GameRules class
  - Support for Linux, Windows 10 and above
  - Togglable game options and config system exposed through VScript and a custom plugin
  - Support for SAR (SourceAutoRecord) for speedrunning

Installation & Use

Wiki guides on how setup P2:MM:

Download the latest version:

Discord Server for technical help (MAKE SURE YOU READ THE FAQ!!!), bug report or to just chat:

Building the Launcher

Dependencies

  • Python 3.10
  • pygame
  • requests
  • steamid-converter

We also have them in a file for easy install: pip install -r requirements.txt

Compilation

We use nuitka to compile the Portal 2: Multiplayer Mod Launcher. Along side it we use GitHub Actions for our release executables. pyinstaller and AppImage were originally originally used by have been deprecated in favor of nuitka.

Windows

For Windows we use nuitka to create our .exe files. While slower to compile than pyinstaller which was used in older builds, it provides a smaller executable size. nutka is able to be installed using pip.

Below is the full terminal command we use in release executables, it's slightly different than what GitHub Actions uses, and below that is a stripped down version without version information and such:

python -m nuitka --onefile --windows-console-mode=disable --noinclude-data-files="pygame/freesansbold.ttf" --include-data-dir="src/GUI"="GUI" --include-data-dir="src/Languages"="Languages"  --windows-icon-from-ico="src/GUI/images/p2mm-icon.ico" --product-name="Portal 2: Multiplayer Mod Launcher" --file-description="The launcher for P2:MM." --product-version="INSERT VERSION HERE" --file-version="INSERT VERSION HERE" --copyright='© 2024 Portal 2: Multiplayer Mod Team' "src/MainWindow.py"
python -m nuitka --onefile --windows-console-mode=disable --noinclude-data-files="pygame/freesansbold.ttf" --include-data-dir="src/GUI"="GUI" --include-data-dir="src/Languages"="Languages"  --windows-icon-from-ico="src/GUI/images/p2mm-icon.ico" "src/MainWindow.py"

Linux

Just like Windows, nuitka is used to compile the Linux executables. Originally pyinstaller was used, then Appimage, but settled with nuitka for the small executable size.

Below is the terminal command to compile for Linux using nuitka:

python -m nuitka --onefile --noinclude-data-files="pygame/freesansbold.ttf" --include-data-dir="src/GUI"="GUI" --include-data-dir="src/Languages"="Languages" --linux-icon="src/GUI/images/p2mm-icon.ico" "src/MainWindow.py"

Notes

  • If you want to fork the project and do your own releases you need to change the variables at the top of src/Scripts/Updater.py to your own information and update the values in AppImageBuilder.yml as well as information in respective compiling commands like with nuitka.

Contributions

Portal 2: Multiplayer Mod version 3.0.0 will be our definitive version, so we won't make any significant updates after it is fully released for a while. Before this happens, we will work on commits to the dev branch before leading to the full version. We will accept any substantial changes or features for P2:MM during this period. However, we will not be doing much work at all after the release or making any new releases in general. The only reasons we would make a new release would be when someone contributes a new translation, an improvement of a current translation, some other minor bug fix we didn't catch, or a map support file for a workshop map. You can still fork it to build off our work even after this final release! Please make sure you credit this repository!

Credits

Developers:

  • kyleraykbs
  • Bumpy
  • Nanoman2525
  • vista (NULLderef)
  • Wolƒe Strider Shoσter
  • cabiste
  • Orsell

Contributors:

  • wanderer (free bird)
  • \n
  • Luukex
  • MeblIkea
  • PieCreeper