Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: punteroo/TF2-Item-Plugins
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.1.0
Choose a base ref
...
head repository: punteroo/TF2-Item-Plugins
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: production
Choose a head ref
  • 18 commits
  • 47 files changed
  • 2 contributors

Commits on Nov 3, 2021

  1. #12 fix

    punteroo committed Nov 3, 2021
    Copy the full SHA
    d87a72d View commit details
  2. #13 fix

    punteroo committed Nov 3, 2021
    Copy the full SHA
    0fc3692 View commit details
  3. Merge pull request #14 from punteroo/development

    Fixed ConVar Declaration for Cookies
    punteroo authored Nov 3, 2021
    Copy the full SHA
    52f51a2 View commit details

Commits on Nov 4, 2021

  1. :)

    punteroo authored Nov 4, 2021
    Copy the full SHA
    e9cdd4a View commit details
  2. i hate initializing things

    punteroo committed Nov 4, 2021
    Copy the full SHA
    6ab9bc2 View commit details
  3. notes on v3.1.2

    punteroo committed Nov 4, 2021
    Copy the full SHA
    cf99963 View commit details
  4. binary changes

    punteroo committed Nov 4, 2021
    Copy the full SHA
    67dc40c View commit details
  5. Merge pull request #15 from punteroo/development

    v3.1.2 release
    punteroo authored Nov 4, 2021
    Copy the full SHA
    62b2102 View commit details

Commits on Nov 13, 2021

  1. added check on TF2Items_OnGiveNamedItem for spy clients

    preventing disguise weapons to fake real weapon giving behaivor
    punteroo committed Nov 13, 2021
    Copy the full SHA
    0323d1d View commit details
  2. version accomodation #16

     * 3.1.3 - 13/11/21
     * tf2item_weapons
     *  - Fixed #16
     *    - Players with set overrides on any class could mask item indexes to be given weapons they must not equip by disguising.
     *    - Disguise Weapons would fire TF2Items_OnGiveNamedItem
    punteroo committed Nov 13, 2021
    Copy the full SHA
    520eadd View commit details
  3. latest binary

    punteroo committed Nov 13, 2021
    Copy the full SHA
    06b2470 View commit details
  4. Merge pull request #17 from punteroo/development

    Add check for disguise weapons firing OnGiveNamedItem
    punteroo authored Nov 13, 2021
    Copy the full SHA
    672a86f View commit details

Commits on Nov 17, 2021

  1. Copy the full SHA
    2d14b06 View commit details

Commits on Apr 20, 2022

  1. Create CONTRIBUTING.md

    punteroo authored Apr 20, 2022
    Copy the full SHA
    a8c150c View commit details

Commits on Feb 29, 2024

  1. eh

    punteroo authored Feb 29, 2024
    Copy the full SHA
    5e6d150 View commit details

Commits on Aug 12, 2024

  1. feat(*): 2024 rewrite (#28)

    * feat(*): update gamedata to latest
    
    * feat(include): updated include files
    Added newer versions for dependency includes
    
    * refactor(*): modified gitignore
    
    * feat(weapons): modular weapon scripts
    - Rewritten weapons manager base
    - Added new menus
    - Modified stock->strange conversion methodology
    - Better item giving logic
    - Less buggy user interaction
    - Rewritten weapon inventory slot modifications data structure; robust
      and better to manage programatically
    
    * feat(*): prototype weapons manager
    - Can enable australium on australium-capable items
    - Can enable festivizer on festive-capable items
    
    * feat(ks), refactor(menu): moved menu handlers, killstreak kits
    - Custom Killstreak kits are now configurable.
    - Moved `MenuHandler` callbacks to another file for better readability.
    
    * feat(unusual, spell): added halloween spell support, added unusual
    support
    - You can now select unusual effects for your weapon.
    - You can now set halloween spells on your weapon depending on class and
      weapon type.
    
    * feat(*): proto paint kits list
    
    * feat(inc): new dependencies include files
    
    * feat(war-paint): added almost full war paint support
    - Added War Paint support
    - War Paint indices are now looked up online via JSON to map into the
      plugin's available in-memory list.
    - Added new ConVars
    	- tf2items_weapons_paintkits_url: Controls the URL where the
    	  Paint Kits JSON data is fetched from.
    	- tf2items_weapons_search_timeout: Timeout in seconds to allow a
    	  client to search for paint kits.
    - You can search for paint kits by their name.
    - TODO: Add the wear setting to be configurable.
    - TODO: Ignore some building weapons.
    
    * feat(*): convars
    
    * feat(*): fully migrated weapons plugin
    
    * feat(weapons): sqlite support, save/load
    - The weapons plugin works with databases to save/load user preferences;
      clients can now save their modifications on the server and reload them
      upon joining / manually.
    - Saving weapon preferences now works with SQLite.
    - Added a new ConVar to control database actions' cooldown time.
    
    * feat(*): remove old builds, readme, latest weapons build
    
    * refactor(*): remove old leftovers, latest weapon manager build
    
    * refactor(cvar): changed convar description
    
    * feat(weapons): community sparkle unusual effect
    
    * feat(*): unusual effects list
    
    * refactor(*): minified json files
    
    * fix(weapons): use LogMessage
    
    * feat(*): increase stack size
    
    * fix(*): bad id type
    
    * fix(weapons): minor fixes, adapt to new base, remove text
    
    * feat(cosmetic): migrated cosmetics plugin
    - Now featuring database preference saving
    - Better cosmetic management
    - Better menus
    - Added better loading for Unusual effects
    
    * refactor(*): remove old build leftovers
    
    * feat(*): builds for rewrite
    punteroo authored Aug 12, 2024
    Copy the full SHA
    54191a9 View commit details

Commits on Aug 14, 2024

  1. Copy the full SHA
    6b18546 View commit details

Commits on Sep 3, 2024

  1. Fix for Client Index XX Error. (#34)

    * Fixed up the code a bit~~
    
    * TF2-Item-Plugins v 4.0.1
    
    Client index XX error fixed.
    vexx-sm authored Sep 3, 2024
    Copy the full SHA
    a83fe3e View commit details
Showing with 9,896 additions and 5,662 deletions.
  1. +4 −3 .gitignore
  2. +12 −0 CONTRIBUTING.md
  3. +44 −133 README.md
  4. +51 −8 gamedata/tf2.attributes.txt
  5. +35 −8 gamedata/tf2.econ_data.txt
  6. +4 −4 gamedata/tf2.items.txt
  7. BIN plugins/tf2item_cosmetics.smx
  8. BIN plugins/tf2item_weapons.smx
  9. BIN plugins/tf2itemplugin_cosmetics.smx
  10. BIN plugins/tf2itemplugin_weapons.smx
  11. BIN plugins/tf_econ_data.smx
  12. +413 −0 scripting/include/SteamWorks.inc
  13. +674 −0 scripting/include/morecolors.inc
  14. +1,328 −0 scripting/include/smjansson.inc
  15. +352 −0 scripting/include/tf2attributes.inc
  16. +1 −1 scripting/include/tf2items.inc
  17. +40 −2 scripting/include/tf_econ_data.inc
  18. +0 −881 scripting/tf2item_cosmetics.sp
  19. +0 −1,481 scripting/tf2item_weapons.sp
  20. +154 −0 scripting/tf2itemplugin/tf2itemplugin_base.sp
  21. +837 −0 scripting/tf2itemplugin/tf2itemplugin_cosmetics_base.sp
  22. +111 −0 scripting/tf2itemplugin/tf2itemplugin_cosmetics_data.sp
  23. +820 −0 scripting/tf2itemplugin/tf2itemplugin_cosmetics_menus.sp
  24. +715 −0 scripting/tf2itemplugin/tf2itemplugin_cosmetics_menus_handlers.sp
  25. +82 −0 scripting/tf2itemplugin/tf2itemplugin_cosmetics_requests.sp
  26. +310 −0 scripting/tf2itemplugin/tf2itemplugin_cosmetics_sqlite.sp
  27. +1,279 −0 scripting/tf2itemplugin/tf2itemplugin_weapon_base.sp
  28. +215 −0 scripting/tf2itemplugin/tf2itemplugin_weapon_data.sp
  29. +832 −0 scripting/tf2itemplugin/tf2itemplugin_weapon_menus.sp
  30. +730 −0 scripting/tf2itemplugin/tf2itemplugin_weapon_menus_handlers.sp
  31. +82 −0 scripting/tf2itemplugin/tf2itemplugin_weapon_requests.sp
  32. +328 −0 scripting/tf2itemplugin/tf2itemplugin_weapon_sqlite.sp
  33. +165 −0 scripting/tf2itemplugin_cosmetics.sp
  34. +276 −0 scripting/tf2itemplugin_weapons.sp
  35. +0 −539 scripting/tf2items/cosmetics.sp
  36. +0 −123 scripting/tf2items/tf2item_base.inc
  37. BIN scripting/tf2items/weapons.smx
  38. +0 −490 scripting/tf2items/weapons.sp
  39. +1 −0 tf2_protos.json
  40. +1 −0 tf2_unusuals.json
  41. +0 −156 translations/cosmetics.phrases.txt
  42. +0 −21 translations/paintkits.py
  43. +0 −210 translations/paintkits.txt
  44. +0 −72 translations/unusual_names_updater.py
  45. +0 −44 translations/unusualglow.phrases.txt
  46. +0 −687 translations/unusuals.phrases.txt
  47. +0 −799 translations/weapons.phrases.txt
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

scripting/spcomp.exe
scripting/compile.exe
.vscode
scripting/*.smx
scripting/*/**.smx
scripting/*.exe
12 changes: 12 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Contributing

If you're willing to change the codebase be it for any reason you are welcome to do so. The plugins' functionality isn't really well coded in due to SourcePawn's limitations (and probably my small brain, yes I'd say that is the issue here) and might present some opportunities for better performance / fixes.

You **may** instantiate a Pull Request for changes to functionality if at least one of the following conditions apply:
- You have found an exploit/bug on any of the plugins (and fixed it).
- You have made performance changes.
- You have written translations.
- Any language is welcome as long as its supported by SourceMod.
- You have made improvements or added new functionalities.

If none of these apply to your case you may still open a PR, everything's up for discussion this project isn't that big to begin with and I'd love to see some PRs appear!
177 changes: 44 additions & 133 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
# TF2 Item Management Plugins
<h1 align="center">Team Fortress 2 - Item Management Plugins</h1>

A 2024 refresh rewrite for plugins that manage player cosmetics & weapons, along with a provisory **VIP system** menu for servers to use.

## TOS & `m_bValidatedAttachedEntity`

Some months ago I started developing private plugins for communities that modify items for the game. It **IS AGAINST TOS**, and I know this can't be released on **AlliedModders** because of such, but because **VALVe** doesn't care for their game and it's been 7 years since a token ban has been issued I'll be releasing these public.

As [404](https://github.com/404UNFca) said once:
As **NiagaraDryGuy/404** said once:
```
It technically is against the TOS, and using something like it could have potentially gotten your server blacklisted about 8-9 years ago. Nowadays, not so much. Many community servers in existence are using this system.
@@ -12,152 +16,59 @@ TF2 servers have not suffered any GLST token bans in many years. Even CS:GO serv
Basically, by using this plugin, you are acknowledging that there is still the possibility that Valve could come around one day and blacklist your server. Don't blame me if such a thing happens either.
```
[source](https://github.com/NiagaraDryGuy/TF2ServersidePlayerAttachmentFixer/blob/90c2a2f41cd8b4fc872de59d05114913064066cd/README.md#frequently-asked-question-yes-singular)
[source](https://github.com/delux-internal/TF2ServersidePlayerAttachmentFixer/blob/034847e92814dc879b0829bd4072924857cb17dd/README.md)

I might make some other releases if people want things fixed or whatever. I just release them because keeping them private is worthless, they're already everywhere and even some other devs have made their own versions of this public as well.
Feel free to use these plugins wherever you want.

**This plugin makes use of the ``m_bValidatedAttachedEntity`` networked property, which bypasses the restriction made by VALVe where fake items are invisible to others. Everyone on the server will be able to see your items with these plugins.**

If you have any doubts or want something else, just write it down on the **Issues** tab or contact me directly through **Discord**. My tag is **puntero#6566**. Enjoy.

# TODO
- [x] Translations, for Spanish and English users.
- [X] Merge everything to maintain functionality, as one removes the others' effects.
- [ ] Implement preference saving on **tf2item_cosmetics** and **tf2item_weapons** so selected user effects are applied whenever the user re-joins the server. This would nullify the player from opening the menus again each map change to re-apply said preferences.
- [X] Fix Unusual Effects (custom or legit) not being kept after applying a custom paint effect, could probably be permanently fixed when the merge is applied (merge is done).
- [x] ~~Refresh handles upon re-loading to prevent plugin failing on late-load (reload, refresh or unload and load)~~ Replace all ``Handle``s for ``enum struct``s.
- [x] Fix a **probably problematic** memory leak when applying Unusual Effects.
## Pre-requisites

# Requirements

In order for these plugins to work you need the following dependencies installed on your server:
The plugins depend on the following extensions/plugins to be installed **and be working** on your server:
* [TF2Items (1.6.4-279)](https://forums.alliedmods.net/showthread.php?t=115100)
* [TF2Attributes (nosoop's Fork)](https://github.com/nosoop/tf2attributes)
* [TFEconData (latest)](https://github.com/nosoop/SM-TFEconData)
* [TF2Attributes](https://github.com/FlaminSarge/tf2attributes)
* [TFEconData](https://github.com/nosoop/SM-TFEconData)
* [SteamWorks](https://users.alliedmods.net/~kyles/builds/SteamWorks/)
* [SMJansson](https://forums.alliedmods.net/showthread.php?t=184604)

For compilation you require my custom includes provided in the repository, the includes from the dependencies mentioned above and the following includes as well:
**Only for devs**: For compilation you require my custom includes provided in the repository, the includes from the dependencies mentioned above and the following includes as well:
* [MoreColors](https://forums.alliedmods.net/showthread.php?t=185016)

# Installation

As of **v3.0.0** TF2IDB is no longer required. Installation is literally a Drag & Drop of what's inside the **.zip** file.

Read all the articles inside the [Requirements](https://github.com/punteroo/TF2-Item-Plugins#requirements) section and install them independently, then head over to the [Releases](https://github.com/punteroo/TF2-Item-Plugins/releases) section in this repository and download the latest one. **NOW** you can Drag & Drop the contents of the **.zip** into ``addons/sourcemod/``.

If any error was present during installation, contact me through **Discord** and I'll help you out whenever I'm able to.

# Updating

Only update whenever a new **TF2 Update** fires (I know, weird but happens). I've written **.py** scripts inside the ``sourcemod/translations`` folder to update the **Unusual Effects** and **War Paint** names. The plugin checks for an existing translation phrase for each **ID**, if none is found the particle/protodef ID is skipped.

You will require to run these **.py** scripts to update each of them.
## Installation

## Updating tf2item_cosmetics
**Read before asking or creating an issue**. You first need to install the requirements, for this read all the articles inside the [Requirements](https://github.com/punteroo/TF2-Item-Plugins#requirements) section (links) and install them independently following their tutorials, then head over to the [Releases](https://github.com/punteroo/TF2-Item-Plugins/releases) section in this repository and download the latest one.

1. Head over to your **SourceMod** installation and into the ``translations`` folder.
2. You should see a **Python Script** named [unusual_names_updater.py](https://github.com/punteroo/TF2-Item-Plugins/blob/production/translations/unusual_names_updater.py) (if not, click on the link and download it). Write down its absolute location (For ex.: ``C:/unusual_names_updater.py``)
3. **NOTE:** The scripts' location is not important, it doesn't have to be in the translations folder.
4. Fire up ``cmd`` as Administrator (or Terminal on an user with write and read rights to both files if on Linux) and ``cd`` into the script's location.
5. Write ``py <script location> -tf <tf_english.txt location> -out <output location>`` and hit **ENTER**.
6. **NOTE:** tf_english.txt is always located in your Team Fortress 2 installation at ``tf/resource/tf_english.txt``. For output, you can target anything and copy the file later to your SourceMod installation's ``translations`` folder. **Make sure the output filename is ``unusuals.phrases.txt``.**
7. If everything goes well, the updated translations file should be outputted without any issues.

## Updating tf2item_weapons

The script is primitive. I will write an easier to use script later (PRs are also welcome).

Also Unused War Paints are parsed, so watch out!

1. Head over to your **SourceMod** installation and into the ``translations`` folder.
2. You should see a **Python Script** named [paintkits.py](https://github.com/punteroo/TF2-Item-Plugins/blob/production/translations/paintkits.py) (if not, click on the link and download it). Write down its absolute location (For ex.: ``C:/paintkits.py``)
3. **NOTE:** The scripts' location is not important, it doesn't have to be in the translations folder.
4. Create a ``.txt`` file named``paintkits.txt`` on the same directory as the script.
5. Fill its contents with entries from the file ``tf_proto_obj_defs.txt`` that start with ``9_`` located in your ``tf/resource/`` folder inside your TF2 Installation.
6. **NOTE:** There's an example entry file on the repo if you need an example for format. Those entries should look like this, just copy the ones that start with ``9_``:
```
"9_0_field { field_number: 2 }" "Red Rock Roscoe"
"9_100_field { field_number: 2 }" "100: (Unused) Red Rock Roscoe"
"9_101_field { field_number: 2 }" "101: (Unused) Sand Cannon"
"9_102_field { field_number: 2 }" "Wrapped Reviver Mk.II"
"9_103_field { field_number: 2 }" "103: (Unused) Psychedelic Slugger"
...
To enable **preference saving** which is a feature that comes with the plugin pack, add this entry in your `addons/sourcemod/configs/databases.cfg` file for your server:
```
8. The script will print out the translations content. Copy the scripts' output and create a file inside your SourceMod installation's ``translations`` folder named ``weapons.phrases.txt``.

# Plugin Pack Usage

## ConVars (new with v3.0.1)
You can now customize the plugin pack's functionality utilizing **ConVars**.

ConVar | Description | Plugin it Affects | Default Value
------ | ----------- | ----------------- | -------------
tf2items_general_onlyspawn | Restricts players to only be able to utilize any manager inside a spawn region. | **tf2item_cosmetics** & **tf2item_weapons** | 0
tf2items_cosmetics_show_missing_particles | Logs whenever a valid ID for a War Paint or Unusual Effect is tried to be added onto a menu, but fails because of a missing translation phrase. Good to know for updating, but bad because of the spam amount. | **tf2item_cosmetics** & **tf2item_weapons** | 0
tf2items_cosmetics_unusuals | Toggles the ability for players to utilize Unusual Overrides on their cosmetics. | **tf2item_cosmetics** | 1
tf2items_cosmetics_paints | Toggles the ability for players to utilize Paint Overrides on their cosmetics. | **tf2item_cosmetics** | 1
tf2items_cosmetics_spells | Toggles the ability for players to utilize Halloween Spell Overrides on their cosmetics. | **tf2item_cosmetics** | 1
tf2items_cosmetics_append_ids | Appends the Unusual Effect ID to its name on the menu. Ex.: ``Burning Flames (#13)`` | **tf2item_cosmetics** | 0

## tf2item_cosmetics
* Players can customize their legit cosmetic items at will, applying Unusual effects, paint colors, spells and spell paints.
* Overrides set by this plugin will always keep in mind original attributes, for ex.: _if you have a legit **Unusual Pomade Prince** with **Halloween Spell: Voices From Below** and **Molten Mallard** effect, they will not disappear when setting a paint colour on it, only when overriden by the same attribute (such as changing the Unusual effect to **Burning Flames**)_

Command | Description | Example
----------- | ------------- | ----------
sm_cosmetics | Opens up the Cosmetics Manager. | [YouTube Video Demonstration](https://www.youtube.com/watch?v=XsFySomgYYk)
sm_hats | Same as the command above, just different | N/A
sm_myhats | Same as the command above, just different | N/A

## tf2item_weapons
* Players can customize their legit weapons at will, applying Unusual effects, setting Australiums and/or Festivizers, custom War Paints with custom Wears, spells and entire Killstreak combinations.
* All War Paints in the game are listed ([if there's a translation phrase registered for that specific one](https://github.com/punteroo/TF2-Item-Plugins#Updating-tf2item_cosmetics)), but that doesn't mean they can all be applied to a certain weapon.
* War Paints can either: keep the Wear of the original weapon (if it has it) or set a custom one.
* Overrides set by this plugin will always keep in mind original attributes, for ex.: _if you have a legit **Australium Scattergun** with **Specialized Killstreak** and **Team Shine** sheen, they will not dissapear when setting (for example) an Unusual effect on it, only when overriden by the same attrbute (such as changing the applied Sheen on it)_

Command | Description | Example
----------- | ------------- | ----------
sm_weapons | Opens up the Weapons Manager. | [YouTube Video Demonstration](https://www.youtube.com/watch?v=jCfrcZXz_FQ)
sm_weps | Same as the command above, just different | N/A
sm_myweps | Same as the command above, just different | N/A

## vip-unusual-glow
* Allows players to apply one of the new 'player glow' Unusual taunt effects on them permanently.
* This plugin has reports of lowering other players' FPS due to the Unusual effect being constantly applied to the player. There is nothing I can do about this issue other than tell you to get a better PC or blame the game for not having great optimization in this matter.

Command | Description | Example
----------- | ------------- | ----------
sm_unuglow | Opens up the Unusual Glowing configuration menu. | [YouTube Video Demonstration](https://www.youtube.com/watch?v=zKSHS9405z8)
sm_glowme | Same as the command above, just different | N/A

## vip-system
* A customizable menu that displays commands for your **VIP** members. This hasn't got to do with the repository, but I dip this in just if someone needs it.
* Everything is explained in the configuration file located in ``configs/vip-system.cfg`` with an example of how it must be written.

### Configuration File
* To modify the menu, edit the config located in ``addons/sourcemod/configs/vip-system.cfg``. An example structure for the config would be as such:
```cpp
"VIP-System"
"tf2itemplugins_db"
{
"Cosmetics Manager" // What the player reads in the menu as an option.
{
"command" "sm_hats" // The command that is executed for the player.
}
"Weapons Manager"
{
"command" "sm_weps"
}
"Unusual Glow"
{
"command" "sm_unuglow"
}
"driver" "sqlite"
"host" "localhost"
"database" "tf2itemplugins_db"
"user" "root"
"pass" ""
}
```

Command | Description | Example
----------- | ------------- | ----------
sm_vipmenu | Opens up the VIP menu. Everything is controlled and modified from the configuration file. | N/A
sm_vip | Alias for the main command. | N/A
sm_donor | Alias for the main command. | N/A
sm_donator | Alias for the main command. | N/A
If you have installed the requirements correctly, and made sure they run on your server as expected, you can now proceed to do the following:
1. Download the latest release from [**right here**](https://github.com/punteroo/TF2-Item-Plugins/releases/latest).
2. Unpack both `.smx` files from the `plugins` folder inside into your `tf/sourcemod/plugins` server folder.
3. Restart your server.

**Be warned**: Loading/reloading these plugins manually via server console could cause issues. **YOU HAVE BEEN WARNED**.

Do not use the provided `gamedata` in this repository's source code, as it could be outdated in regards to the original repository.

## ConVars
### `tf2itemplugin_weapons`
- `tf2items_weapons_spawnonly`: Controls if weapon changes can only be made within spawn areas. Defaults to `0.0` (allow anywhere).
- `tf2items_weapons_paintkits_url`: An URL with a raw JSON file that holds all paint kits in the game along their names. If you want to use your own, make sure your server replies with the raw content and follows the schema. By default this is set to my provided file. **I am not responsible if War Paint options don't load when you change this.**
- `tf2items_weapons_search_timeout`: Amount of time in seconds to allow players to look up War Paint names before re-enabling them to chat. Defaults to `20.0` seconds.
- `tf2items_weapons_database_cooldown`: Amount of time in seconds a player must wait after perfoming a database operation (saving/loading/deleting preferences). Defaults to `15.0` seconds.

### `tf2itemplugin_cosmetics`
- `tf2items_cosmetics_spawn_only`: Same as weapons, but for cosmetics. Defaults to `0.0` (allow anywhere).
- `tf2items_cosmetics_unusuals_url`: An URL with a raw JSON file that holds all Unusual effects in the game currently along their names. If you want to use your own, make sure your server replies with the raw content and follows the schema. By default this is set to my provided file. **I am not responsible if Unusual options don't load when you change this.**
- `tf2items_cosmetics_search_timeout`: Same as weapons, but for when searching Unusual effects. Defaults to `15.0` seconds.
- `tf2items_cosmetics_database_cooldown`: Same as weapons, but for cosmetic preferences.
Loading