nosoop / SM-TFCustomAttributeStarterPack

A collection of plugins to be used with the TF2 Custom Attribute framework.
MIT License
19 stars 10 forks source link
team-fortress-2

TF2 Custom Attribute Starter Pack

A collection of (mostly) production-ready custom attributes written for the Custom Attribute framework.

I'll move the other ones eventually…

About

This repository contains attributes I've written. I don't run a Custom Weapon server, so most of the plugins are made through work-for-hire. If you'd like a custom attribute created, feel free to contact me on AlliedModders — I'm open to inquiries.

The wiki documents the available custom attributes.

Special thanks to Karma Charger for allowing the release of the stuff I've written for him; a lot of the plugins available here were created for his videos.

If you like this project, you may also want to check out its sibling project:

Microframeworks

Some attributes are libraries that can be hooked onto by other plugin developers to implement their own behaviors. These include:

The API for those frameworks are provided in scripting/include/ and examples are available in scripting/{buff_overrides,lunchbox_effects}.

Installation

These installation steps assume that you're a server operator and are familiar with how SourceMod works. I can't provide individualized support on configuration; if you're running into issues, please look at the Troubleshooting page first.

  1. Install the required runtime dependencies.
  2. Download the latest package.zip and unpack. Do not click the green "Code" button with the download-like icon. If you intend to modify / build from source, refer to the Building section below.
    • Github now builds the entire package on every commit by default, so the latest release should be up-to-date.
  3. Copy the resulting gamedata/, and plugins/ folders into your TF2 server's addons/sourcemod/ folder.
  4. Apply custom attributes to your weapons.

The plugins of any attributes that aren't in use can be safely removed from the server; the project is designed to let you choose what attributes are running (though it does make development easier at the same time).

Custom Weapon Configs

The included CW3 configuration files are provided as-is for attribute demonstration purposes and not intended to showcase completely balanced weapons.

Building

This project can be built in a consistent manner with Ninja, git, and Python 3.

  1. Clone the repository and its submodules: git clone --recurse-submodules ...
    • If you have pulled updates for the repository, make sure you've also updated the submodules: git submodule update --recursive --remote --checkout.
  2. Execute python3 configure.py --spcomp-dir ${PATH} within the repo, where ${PATH} is the path to the directory containing spcomp. Builds against 1.10.
  3. Run ninja. Output will be available under build/.

(If you'd like to use a similar build system for your project, the template project is available here.)

Dependencies

This project uses a bunch of external tooling. Not all plugins use every dependency. To run the plugins from this project, you will need the compiled releases of the following:

The following is only used when building from source; if you're just running the plugins, you do not need these:

Includes are bundled in the third_party/ subdirectory to ensure builds are consistent.

Contributing

As stated before, I don't run a Custom Weapon server. All plugins here are provided on an as-is basis and has the potential of breaking whenever TF2 gets an update.

I can't accept ideas nor implementations for new plugins here.

License

This project uses the MIT license. Do note that once compiled, SourceMod plugins are still bound to GPLv3, but you're welcome to use the code as reference in other projects under the more permissive license.

The following is a non-exhaustive list of what you're allowed / required to do (that said, this is not legal advice):

The software is provided "as is", and there is no real guarantee of support. While I will make an effort to maintain the plugins in response to game updates out of goodwill, it is at my discretion — I can't afford to do so in perpetuity.