Skip to content

Fcornaire/TF.EX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

TF EX mod

Contributors Download Forks Stargazers Issues MIT License

About The Project

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!

Features

  • Online Netplay

animated

1 new mode available, Netplay

animated

Create a lobby for some online action!

animated

Or join an available one

animated

Or even spectate! (Experimental)

animated

  • Modded variants

    Ability to run online play with custom variants as long as they are EX compatible. Read EX API for mor details.

    animated

  • Replays

    Replay is "normally" automatically exported at the end of a game. Use the replays menu to watch precedent games

    animated

    animated

Usage

It fairly easy to install this mod:

  1. Install FortRise with Debug ON , this can be changed by modifying the PatchVersion.txt file in the Towerfall root directory
  2. Download the latest TF EX release
  3. Create a Mods directory at the root of your Towerfall install directory if not done already
  4. Extract the TF.EX zip into the Mods folder.
  5. 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:

  1. Launching Towerfall
  2. 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)

Troubleshooting

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.

Develop

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)

Installation

To be able to add features or fix things, you will need to:

  1. Clone the repo

    git clone https://github.com/Fcornaire/TF.EX.git
  2. Launch the .sln with your favorite IDE

  3. 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.

  4. 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

Roadmap

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

Contributing

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 😉

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/cool-feature)
  3. Commit your Changes (git commit -m 'feat: Add some cool Feature')
  4. Push to the Branch (git push origin feature/cool-feature)
  5. Open a Pull Request

License

Distributed under the GPL-2.0 License. See LICENSE for more information.

The netplay logo can be found at Icones8

Contact

Twitter : DShad - @DShad66

Discord : dshad (was DShad#4670)