TF EX is a mod that attempts to bring netplay to TowerFall (EX as in a Fighting game EX move, usually costing meter). It uses FortRise + Rollback netcode as infrastructure. Due to the nature of the project, the mod is also able to record + view previous matches. Also, this project is still a WIP!
- Online Netplay
1 new mode available, Netplay
Create a lobby for some online action!
Or join an available one
Or even spectate! (Experimental)
-
Modded variants
Ability to run online play with custom variants as long as they are EX compatible. Read EX API for mor details.
-
Replays
Replay is "normally" automatically exported at the end of a game. Use the
replays
menu to watch precedent games
It fairly easy to install this mod:
- Install FortRise with Debug ON , this can be changed by modifying the
PatchVersion.txt
file in the Towerfall root directory - Download the latest TF EX release
- Create a
Mods
directory at the root of your Towerfall install directory if not done already - Extract the
TF.EX
zip into theMods
folder. - You are now ready and the mod should be referenced and loaded by FortRise when the game starts
You have the option to change your username in the in-game options. You can also change the input delay, but leaving it at 2 is usually fine.
You should also be able to see a new versus mode called Netplay (all the way to the right). This allows you to create and join online lobbies.
If you've played some matches, a Replays
directory should have been created in the Towerfall root directory.
You can view the replays by:
- Launching Towerfall
- In the main menu, press ` to open it and enter the following command
replay {replay_name}
whith {replay_name} being something like "20-06-2023T22-17-46" (No file extension)
I advise to not use this mod with mods that do other things than cosmetics/skins. For example, WiderSetMod has been reported to break the mod. I will try to investigate why it's happening but for now, only use the TF EX mod by itself.
This project uses:
- FortRise as the main loader (C#)
- ggrs-ffi which is a library that allows the GGRS API to be called by non-rust projects (Rust)
- matchbox-client-ffi which is a library that allows the matchbox API to be called by non-Rust projects (Rust)
- A matchmaking server which is closed source for now, it manages matchmaking and also runs a signaling endpoint for easier connection (Rust)
To be able to add features or fix things, you will need to:
-
Clone the repo
git clone https://github.com/Fcornaire/TF.EX.git
-
Launch the .sln with your favorite IDE
-
Do some modifications and build. If you didn't change Towerfall original installation folder, the mod dll will be copied automatically each build to your game Towerfall directory. Be aware that with the exception of Core.dll, the others are copied to the root of Towerfall installation directory which lets us debug.
-
Launch Towerfall and on the main screen, open the Dev console wih the key ² (If not opening, ensure you enabled dev console in the game settings) and enter the following command
test LMS 0 1 42 2
A Last Man Standing game should be running in a GGRS SyncTestSession
As you can guess, this project is still WIP and missing a lot of features:
- Automatically bump the version (meta + tag)
- Refactor (There is a lot of things I want to refactor)
- Less restrictive controller
- Fix bugs
- Fix desynchronization (At least netplay code wise should be fine)
- Support for all versus maps
- Check Twilight Spire CrackedWall with teams on level 7
- Support all items
- Support 4 players (FFA and 2V2 teams )
- Integrate the replay viewer in the menu
What's the point of Github without contributions? Any contributions you make are greatly appreciated. But since there is a ton of things to do, I advise either contact me directly or create an issue explaining the missing feature or the bug fix before starting to code. This is only so I know what you are tying to do, provide help if needed and check if it's not already done or in the works 😉
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/cool-feature
) - Commit your Changes (
git commit -m 'feat: Add some cool Feature'
) - Push to the Branch (
git push origin feature/cool-feature
) - Open a Pull Request
Distributed under the GPL-2.0 License. See LICENSE
for more information.
The netplay logo can be found at Icones8
Twitter : DShad - @DShad66
Discord : dshad (was DShad#4670)