Skip to content

Instantly share code, notes, and snippets.

@piman51277
Created June 9, 2022 23:22
Show Gist options
  • Save piman51277/3cbe16519c9e89ec8335dc7230090de6 to your computer and use it in GitHub Desktop.
Save piman51277/3cbe16519c9e89ec8335dc7230090de6 to your computer and use it in GitHub Desktop.
Typescript Types of the Team Fortress 2 (Tf2) Item Schema
//Field descriptions from the Tf2 Wiki:
//https://wiki.teamfortress.com/wiki/WebAPI/GetSchema
//This was created based on the Tf2 Schema from Jun 2022
//While some fields have been generalized to adapt to future TF2 versions, others have not.
export type rawTf2Schema = {
result: {
status: number; //Should always be 1
items_name_url: string; //A string containing the URL to the full item schema as used by the game.
items: rawTf2SchemaItem[]; //A list of item objects.
next?: number; //Value of the next page. Passed in ?start query param
};
};
export type rawTf2SchemaItem = {
name: string; //A string that defines the item in the items_game.txt
defindex: number; //The item's unique index, used to refer to instances of the item in GetPlayerItems.
item_class: rawTf2SchemaItemClass; //The item's class in game (ie. what you would use as the argument to "equip" in the console to equip it).
item_type_name: rawTf2SchemaItemTypeName; //The tokenized string that describes the item's class (eg. "#TF_Wearable_Shield" for the Chargin' Targe and the Razorback). If the language argument is specified the string for that language will be returned instead of the token.
item_name: string; //The tokenized string for the item's name (eg. "#TF_Spy_Camera_Beard" for the Camera Beard). If the language argument is specified the string for that language will be returned instead of the token.
item_description?: string; //The tokenized string for the item's description if it has one. If a language is specified this will be the localized description string.
proper_name: boolean; //A boolean value indicating the item requires "The" to be prefixed to it's name. Ignored if language is not English.
item_slot?: rawTf2SchemaItemSlot; //A string indicating what loadout slot the item can be equipped to.
item_quality: rawTf2SchemaItemQuality; //The item's default quality value.
image_inventory: string; //The image to display, as an escaped-slash ("\/") path to the material, without the extension
image_url: string; //The URL of the small (128x128) backpack icon for the relevant item. Will be an empty string if none is available.
image_url_large: string; //The URL of the large (512x512) backpack image for the relevant item. Will be an empty string if none is available.
drop_type?: "none" | "drop"; //A string indicating how an item will detach (if it does) from the player upon death. This is only relevant to cosmetic items
item_set?: rawTf2SchemaItemSet; //Used to look up the set the item is part of in item_sets.
holiday_restriction?: "halloween_or_fullmoon" | "birthday" | "christmas"; //A string indicating the holiday on which the item can be used, if not present the item is available all year.
model_player: string; //The model to display for the item, using a path similar to the above but with an ".mdl" extension, or null if the object has no model.
min_ilevel: number; //The minimum level of the item in the schema
max_ilevel: number; //The maximum level of the item in the schema
craft_class?: rawTf2SchemaCraftClass; //The type of the item from the crafting system's point of view. If this field is not present the item cannot be crafted by the random crafting recipes. This will be weapon, hat, craft_bar, or craft_token.
craft_material_type?: rawTf2SchemaCraftClass; //Currently identical to craft_class.
capabilities?: rawTf2SchemaCapabilities; //An object describing various capabilities of the item, including how it can be interacted with.
tool?: rawTf2SchemaTool; //If the item is a tool this will contain certain meta-data such as it's type, purpose, or string for use in the client UI.
used_by_classes?: rawTf2SchemaClassNames[]; //The list of classes that can use this item. If this field is not present all classes can use the item.
per_class_loadout_slots?: rawTf2SchemaPerClassLoadoutSlots; //An object that describes class specific loadout slots for the item if applicable.
styles?: rawTf2SchemaStyle[]; //If the item has changeable styles, an object containing an array of style objects.
attributes?: rawTf2SchemaAttribute[]; //If the item has effects normally associated with it, an object containing an array of attribute objects.
};
type rawTf2SchemaAttribute = {
name: string;
defindex: number;
attribute_class: string;
description_string: string;
description_format: string;
effect_type: string;
hidden: boolean;
stored_as_integer: boolean;
};
type rawTf2SchemaCapabilities = {
can_craft_mask: boolean;
nameable: boolean;
can_gift_wrap: boolean;
paintable: boolean;
can_craft_count: boolean;
decodeable: boolean;
usable: boolean;
usable_gc: boolean;
usable_out_of_game: boolean;
};
type rawTf2SchemaItemClass =
| "tf_weapon_bat"
| "tf_weapon_bottle"
| "tf_weapon_fireaxe"
| "tf_weapon_club"
| "tf_weapon_knife"
| "tf_weapon_fists"
| "tf_weapon_shovel"
| "tf_weapon_wrench"
| "tf_weapon_bonesaw"
| "tf_weapon_shotgun"
| "tf_weapon_scattergun"
| "tf_weapon_sniperrifle"
| "tf_weapon_minigun"
| "tf_weapon_smg"
| "tf_weapon_syringegun_medic"
| "tf_weapon_rocketlauncher"
| "tf_weapon_grenadelauncher"
| "tf_weapon_pipebomblauncher"
| "tf_weapon_flamethrower"
| "tf_weapon_pistol"
| "tf_weapon_revolver"
| "tf_weapon_pda_engineer_build"
| "tf_weapon_pda_engineer_destroy"
| "tf_weapon_pda_spy"
| "tf_weapon_builder"
| "tf_weapon_medigun"
| "tf_weapon_invis"
| "tf_weapon_flaregun"
| "tf_weapon_lunchbox"
| "tf_weapon_bat_wood"
| "tf_weapon_lunchbox_drink"
| "tf_wearable"
| "tf_weapon_compound_bow"
| "tf_wearable_razorback"
| "tf_weapon_jar"
| "tf_weapon_rocketlauncher_directhit"
| "tf_weapon_buff_item"
| "tf_wearable_demoshield"
| "tf_weapon_sword"
| "tf_weapon_laser_pointer"
| "tf_weapon_sentry_revenge"
| "tf_weapon_robot_arm"
| "no_entity"
| "tf_weapon_handgun_scout_primary"
| "tf_weapon_bat_fish"
| "tf_weapon_jar_milk"
| "saxxy"
| "craft_item"
| "tf_weapon_crossbow"
| "tf_weapon_stickbomb"
| "tf_weapon_katana"
| "tf_weapon_sniperrifle_decap"
| "tf_weapon_particle_cannon"
| "tf_weapon_raygun"
| "tf_weapon_soda_popper"
| "tf_weapon_handgun_scout_secondary"
| "upgrade"
| "tf_powerup_bottle"
| "tf_weapon_shotgun_primary"
| "tf_weapon_mechanical_arm"
| "tf_weapon_drg_pomson"
| "tf_weapon_flaregun_revenge"
| "tf_weapon_bat_giftwrap"
| "tf_weapon_charged_smg"
| "tf_weapon_pep_brawler_blaster"
| "tf_weapon_sapper"
| "tf_weapon_cleaver"
| "tf_weapon_breakable_sign"
| "tf_weapon_cannon"
| "tf_weapon_shotgun_building_rescue"
| "tf_wearable_levelable_item"
| "tf_weapon_spellbook"
| "tf_weapon_sniperrifle_classic"
| "tf_weapon_parachute"
| "tf_weapon_rocketlauncher_airstrike"
| "tf_weapon_grapplinghook"
| "tf_weapon_passtime_gun"
| "tf_weapon_rocketlauncher_fireball"
| "tf_weapon_rocketpack"
| "tf_weapon_jar_gas"
| "tf_weapon_slap"
| "map_token"
| "bundle"
| "tool"
| "class_token"
| "slot_token"
| "supply_crate"
| "tf_wearable_campaign_item";
type rawTf2SchemaItemTypeName =
| "#TF_Weapon_Bat"
| "#TF_Weapon_Bottle"
| "#TF_Weapon_FireAxe"
| "#TF_Weapon_Club"
| "#TF_Weapon_Knife"
| "#TF_Weapon_Fists"
| "#TF_Weapon_Shovel"
| "#TF_Weapon_Wrench"
| "#TF_Weapon_Bonesaw"
| "#TF_Weapon_Shotgun"
| "#TF_Weapon_Scattergun"
| "#TF_Weapon_SniperRifle"
| "#TF_Weapon_Minigun"
| "#TF_Weapon_SMG"
| "#TF_Weapon_SyringeGun"
| "#TF_Weapon_RocketLauncher"
| "#TF_Weapon_GrenadeLauncher"
| "#TF_Weapon_PipebombLauncher"
| "#TF_Weapon_FlameThrower"
| "#TF_Weapon_Pistol"
| "#TF_Weapon_Revolver"
| "#TF_Weapon_PDA_Engineer"
| "#TF_Weapon_Disguise_Kit_Type"
| "#TF_Weapon_Medigun"
| "#TF_Weapon_Watch"
| "#TF_Weapon_Flaregun"
| "#TF_Weapon_Flamethrower"
| "#TF_Weapon_LunchBox"
| "#TF_Weapon_Gloves"
| "#TF_Wearable_Hair"
| "#TF_Wearable_CosmeticItem"
| "#TF_Wearable_Helmet"
| "#TF_Wearable_Hat"
| "#TF_Weapon_CompoundBow"
| "#TF_Wearable_Shield"
| "#TF_Weapon_Jar"
| "#TF_Wearable_FacialHair"
| "#TF_Wearable_Holiday_Hat"
| "#TF_Wearable_Medal"
| "CheatDetector"
| "#TF_Wearable_HonestyHalo"
| "#TF_Wearable_L4DHat"
| "#TF_Weapon_Pickaxe"
| "#TF_Weapon_Battle_Banner"
| "#TF_Weapon_Sword"
| "#TF_Wearable_Boots"
| "#TF_Weapon_Laser_Pointer"
| "#TF_Weapon_Robot_Arm"
| "#TF_Wearable_Headphones"
| "#TF_Wearable_Mask"
| "#TF_Wearable_Mascot"
| "#TF_Weapon_SledgeHammer"
| "#TF_Weapon_MakeshiftClub"
| "#TF_Wearable_Badge"
| "#TF_TauntEnabler"
| "#TF_Weapon_Axe"
| "#TF_Wearable_Glasses"
| "#TF_Wearable_Bandana"
| "#TF_Weapon_Peppergun"
| "#TF_Weapon_Fish"
| "#TF_Weapon_Jar_Milk"
| "#TF_Gift"
| "#TF_UsableItem"
| "#TF_Wearable_Headgear"
| "#TF_Weapon_FryingPan"
| "#Tf_Weapon_Pipebomblauncher"
| "#TF_CraftItem"
| "#TF_Party_Favor"
| "#TF_Weapon_Crossbow"
| "#TF_Weapon_StickBomb"
| "#TF_Weapon_GardenRake"
| "#TF_Wearable_Apparel"
| "#TF_Weapon_RiftFireAxe"
| "#TF_Weapon_RiftFireMace"
| "#TF_Weapon_SoldierSashimono"
| "#TF_Weapon_Gunbai"
| "#TF_Weapon_SoldierKatana"
| "#TF_Wearable_Hood"
| "#TF_Wearable_PocketBuddy"
| "#TF_Wearable_Eyes"
| "#TF_Wearable_Augmentation"
| "#TF_Weapon_Medigun_Prototype"
| "#TF_Weapon_SyringeGun_Prototype"
| "#TF_Weapon_Bust"
| "#TF_Weapon_Award"
| "#TF_SpaceChem_FishcakeFragmentType"
| "#TF_SpaceChem_PinFragmentType"
| "#TF_SpaceChem_Fishcake_Type"
| "#TF_Weapon_FocusedWaveProjector"
| "#TF_Weapon_IndivisibleParticleSmasher"
| "#TF_Wearable_Uniform"
| "#TF_Weapon_Riding_Crop"
| "#TF_Wearable_Medallion"
| "#TF_Weapon_Mailbox"
| "#TF_Wearable_Rose"
| "#TF_MapToken"
| "#TF_Weapon_Sign"
| "#TF_Weapon_GolfClub"
| "#TF_Wearable_Spurs"
| "#TF_Wearable_FlipFlops"
| "#TF_Wearable_Towels"
| "#TF_Wearable_TournamentMedal"
| "#TF_Wearable_Armband"
| "#TF_Wearable_Wingstick"
| "#TF_Wearable_Shoes"
| "#TF_Wearable_Scarf"
| "#TF_Wearable_Costume"
| "#TF_Weapon_Severed_Arm"
| "#TF_Package_Type"
| "#TF_Wearable_FuelTank"
| "#TF_Wearable_Blueprints"
| "#TF_Wearable_Bombs"
| "#TF_Wearable_Necklace"
| "#TF_Wearable_Flair"
| "#TF_Wearable_PocketSquare"
| "#TF_Wearable_Stethoscope"
| "#TF_Wearable_Headset"
| "#TF_Wearable_Conscience"
| "#TF_Wearable_Shirt"
| "#TF_Wearable_Backpack"
| "#TF_Wearable_Lunchbox"
| "#TF_Wearable_Coat"
| "#TF_Wearable_Bells"
| "#TF_Wearable_Pipe"
| "#TF_Wearable_Stocking"
| "#TF_Wearable_Ring"
| "#TF_Wearable_Boombox"
| "#TF_Wearable_MysticalLamp"
| "#TF_Wearable_Photograph"
| "#TF_Wearable_MapperMedal"
| "#TF_Ticket"
| "#TF_Wearable_Robot"
| "TF_Wearable_Boots"
| "#TF_Weapon_Spy_Sapper"
| "#TF_Wearable_Balloon"
| "#tf_weapon_fireaxe"
| "#TF_Wearable_Pyrovision_Goggles_Type"
| "#TF_Wearable_Bongos"
| "TF_Wearable_Pants"
| "TF_Wearable_Apparel"
| "#TF_Wearable_ScienceProject"
| "#TF_Wearable_Satchel"
| "#TF_Wearable_Treasure"
| "#TF_Wearable_Bones"
| "#TF_Weapon_Cleaver"
| "#TF_Wearable_Tattoos"
| "#TF_Wearable_Cigar"
| "#TF_Wearable_Wings"
| "#TF_Wearable_Lantern"
| "TF_Wearable_Mask"
| "TF_Wearable_Cape"
| "TF_Wearable_SpiritAnimal"
| "#TF_Weapon_Staff"
| "#TF_Wearable_Ghost"
| "#TF_Weapon_Skullbat"
| "#TF_Wearable_Duck"
| "#TF_Wearable_Spikes"
| "#TF_Weapon_Camera"
| "#TF_Wearable_Tuxedo"
| "#TF_Wearable_Pin"
| "#TF_Wearable_Kilt"
| "#TF_Wearable_Gloves"
| "#TF_Weapon_Medigun_Resist"
| "#TF_Weapon_Pork_Product"
| "#TF_Wearable_Axe"
| "#TF_Wearable_Bandages"
| "#TF_Wearable_Knife"
| "#TF_Spellbook_Type"
| "#TF_Weapon_GoldFryingPan"
| "#TF_Wearable_Snowglobe"
| "#TF_Wearable_Armor"
| "#TF_Wearable_Cape"
| "#TF_Weapon_Parachute"
| "#TF_Weapon_Hammer"
| "#TF_ItemType_Journal"
| ""
| "#TF_Weapon_GrapplingHook"
| "#Weapon_Passtime_Gun"
| "#TF_Pass"
| "#TF_Wearable_Turntable"
| "#TF_Weapon_FireballLauncher"
| "#TF_Weapon_RocketPack"
| "#TF_Weapon_Jar_Gas"
| "#TF_Weapon_Slap"
| "#TF_StoreBundle"
| "#TF_T"
| "#TF_LockedCrate"
| "#TF_GIFT"
| "#TF_ClaimCode"
| "#TF_Ash_Type"
| "#TF_Item_SecretDiary_Type"
| "#TF_Item_DamagedCapacitor_Type"
| "#TF_VoodooCursed_Type"
| "#TF_VoodooCursedSoul_Type"
| "#TF_StrangifierTool"
| "#TF_RobotPart_Type"
| "#TF_KillStreakifierToolA"
| "#TF_UnlockedCrate_Type"
| "#TF_FestivizerTool"
| "#TF_Tracker"
| "#TF_StrangePart"
| "#TF_StrangePartRestriction"
| "#TF_KillStreakifierToolB"
| "#TF_KillStreakifierToolC"
| "#TF_Wearable_CommunityMedal"
| "#TF_SpellTool"
| "#TF_SpellbookPage_Type"
| "#TF_ServerEnchantmentType"
| "#TF_CircuitBoard_Type"
| "#TF_Unusualifier"
| "#TF_PaintKitTool"
| "#TF_ItemDynamicRecipeTool"
| "#TF_Wearable_ElectronicDevice"
| "#TF_Wearable_Pants"
| "#TF_Wearable_ChampionshipBelt"
| "#TF_Wearable_Cooler"
| "#TF_Wearable_Skateboard"
| "#TF_Wearable_Refreshment"
| "#TF_Wearable_Poncho"
| "#TF_Wearable_Barbeque"
| "#TF_Wearable_SafetyApparatus"
| "#TF_Wearable_Supplies"
| "#TF_Wearable_Glove"
| "#TF_Wearable_GolfClubs"
| "#TF_Wearable_Bandolier"
| "#TF_Wearable_PuffyShirt"
| "#TF_Wearable_SpiritAnimal"
| "#TF_Wearable_Towel"
| "#TF_Wearable_Coffin"
| "#TF_Wearable_Hooves"
| "#TF_Wearable_SpookyCompanion"
| "#TF_Wearable_EyeStalks"
| "#TF_Wearable_UndeadPet"
| "#TF_Wearable_BirdHead"
| "#TF_Wearable_Tentacles"
| "#TF_Wearable_Sled"
| "#TF_Wearable_Vest"
| "#TF_Wearable_Quiver"
| "#TF_Wearable_Apron"
| "#TF_Wearable_Socks"
| "#TF_Wearable_ToolBelt"
| "#TF_Wearable_Chin"
| "TF_Wearable_Shoes"
| "#TF_Wearable_EyePatch"
| "#TF_Wearable_Bottles"
| "#TF_Wearable_Jacket"
| "#TF_Wearable_Sweater"
| "#TF_Wearable_Shorts"
| "#TF_Wearable_Holster"
| "#TF_Wearable_Horns"
| "#TF_Wearable_Life_Support"
| "#TF_Wearable_Jetpack"
| "#TF_Wearable_Pouch"
| "#TF_Weapon_Machete"
| "#TF_Wearable_Tools"
| "#TF_Wearable_Package"
| "#TF_Wearable_Snowboard"
| "#TF_Wearable_Provisions"
| "#TF_Wearable_CandyCanes"
| "#TF_Wearable_Guitar"
| "#TF_Wearable_MailBag"
| "#TF_Wearable_Idol"
| "#TF_Wearable_Fish"
| "#TF_Wearable_Bagpipes"
| "#TF_Wearable_Slippers"
| "#TF_Wearable_FlowerPot"
| "#TF_Wearable_Bell"
| "#TF_Wearable_ShoulderPads"
| "#TF_Wearable_Scar"
| "#TF_Wearable_IceCreamCone"
| "#TF_Wearable_Toaster"
| "#TF_Wearable_Bread"
| "#TF_Wearable_Muzzle"
| "#TF_Wearable_PorkProduct"
| "#TF_Wearable_Garland"
| "#TF_Wearable_Speaker"
| "#TF_Wearable_Jars"
| "#TF_Wearable_NeckBrace"
| "#TF_Wearable_Ears"
| "#TF_Wearable_HandsomeHand"
| "#TF_Wearable_TornPants"
| "#TF_Wearable_DogHead"
| "#TF_Wearable_Cauldron"
| "#TF_Wearable_Antlers"
| "#TF_Wearable_Headband"
| "#TF_Wearable_PantsSlippers"
| "#TF_Wearable_Tie"
| "#TF_Wearable_Waders"
| "#TF_Wearable_Snack"
| "#TF_Wearable_DentedPan"
| "#TF_Wearable_Infestation"
| "#TF_Wearable_Goggles"
| "#TF_Wearable_Treats"
| "#TF_Wearable_GoodSamaritan"
| "#TF_Wearable_CandyCane"
| "#TF_Wearable_Bandanna";
type rawTf2SchemaItemSlot =
| "melee"
| "primary"
| "secondary"
| "pda"
| "pda2"
| "building"
| "misc"
| "taunt"
| "action"
| "utility";
type rawTf2SchemaItemQuality =
| 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 255;
type rawTf2SchemaItemSet =
| "hidden_applearrow_set"
| "polycount_pyro"
| "polycount_scout"
| "polycount_spy"
| "polycount_soldier"
| "polycount_sniper"
| "medieval_medic"
| "experts_ordnance"
| "hibernating_bear"
| "hidden_detective_set"
| "desert_sniper"
| "desert_demo"
| "rapid_repair"
| "airborne_armaments"
| "black_market"
| "drg_victory"
| "general_suit"
| "bonk_fan"
| "gangland_spy"
| "demo_halloween_2011"
| "scout_halloween_2011"
| "pyro_halloween_2011"
| "medic_halloween_2011"
| "soldier_halloween_2011"
| "spy_halloween_2011"
| "heavy_halloween_2011"
| "sniper_halloween_2011"
| "engineer_halloween_2011"
| "drg_brainiac"
| "drg_moonman"
| "swashbucklers_swag"
| "winter2011_scout_elf"
| "soldier_dumpster_diver"
| "sniper_urban_professional"
| "scout_public_enemy"
| "heavy_fairy"
| "monster_mash_up"
| "hw2013_demo_squidpirate"
| "hw2013_pyro_pyrosaur"
| "hw2013_pyro_malice"
| "hw2013_scout_dog"
| "hw2013_soldier_shaolin"
| "hw2013_medic_space_surgeon"
| "hw2013_demo_vampire"
| "hw2013_spy_blood_banker_alt"
| "hw2013_soldier_rocket_ranger"
| "hw2013_pyro_lake_monster"
| "hw2013_medic_sun_king"
| "short2014_soldier_pack"
| "short2014_pyro_pack1"
| "short2014_scout_pack"
| "short2014_pyro_pack2"
| "short2014_engineer_pack1"
| "short2014_spy_pack"
| "short2014_engineer_pack2"
| "short2014_pyro_pack3"
| "short2014_sniper_pack"
| "short2014_scout_fancy"
| "short2014_demo_drinking"
| "ai_pack"
| "alien_isolation_merc_set"
| "sf14_medic_dog"
| "sf14_medic_vampire"
| "sf14_scout_chicken"
| "sf14_scout_hunter"
| "sf14_sniper_lizard"
| "sf14_sniper_kangaroo"
| "sf14_medic_templar"
| "sf14_demo_skeleton"
| "sf14_soldier_supernatural_hunter"
| "sf14_pyro_robot"
| "sf14_heavy_minotaur"
| "bak_sixties_sidekick";
type rawTf2SchemaCraftClass =
| "weapon"
| ""
| "hat"
| "craft_bar"
| "haunted_hat"
| "tool"
| "craft_token"
| "supply_crate";
type rawTf2SchemaTool = {
type?: rawTf2SchemaToolType;
usage_capabilites?: rawTf2SchemaToolUsageCapabilities;
use_string?: rawTf2SchemaToolUseString;
restriction: string;
};
type rawTf2SchemaToolType =
| "gift"
| "duel_minigame"
| "noise_maker"
| "powerup_bottle"
| "name"
| "decoder_ring"
| ""
| "paint_can"
| "customize_texture_item"
| "gift_wrap"
| "wrapped_gift"
| "desc"
| "backpack_expander"
| "wedding_ring"
| "account_upgrade_to_premium"
| "claimcode"
| "strangifier"
| "killstreakifier"
| "duck_token"
| "grant_operation_pass"
| "strange_count_transfer"
| "paintkit_weapon_festivizer"
| "keyless_case"
| "strange_part"
| "strange_part_restriction"
| "apply_custom_attrib"
| "class_transmogrifier"
| "tf_spellbook_page"
| "tf_event_enable"
| "unusualifier"
| "paintkit"
| "dynamic_recipe";
type rawTf2SchemaToolUsageTypes =
| "nameable"
| "decodeable"
| "paintable"
| "can_customize_texture"
| "can_gift_wrap"
| "paintable_team_colors"
| "can_strangify"
| "can_killstreakify"
| "duck_upgradable"
| "strange_parts"
| "can_card_upgrade"
| "can_spell_page"
| "can_unusualify"
| "can_consume";
type rawTf2SchemaToolUsageCapabilities = {
[T in rawTf2SchemaToolUsageTypes]?: boolean;
};
type rawTf2SchemaToolUseString =
| "#UnwrapGift"
| "#DeliverGift"
| "#RummageThroughAsh"
| "#RummageThroughCurses"
| "#ActivateItem"
| "#OpenKeylessCase"
| "#CastServerEnchantment"
| "#TF_ItemDynamicRecipe_Use";
type rawTf2SchemaClassNames =
| "Scout"
| "Demoman"
| "Pyro"
| "Sniper"
| "Spy"
| "Heavy"
| "Soldier"
| "Engineer"
| "Medic";
type rawTf2SchemaPerClassLoadoutSlots = {
[T in rawTf2SchemaClassNames]?: rawTf2SchemaItemSlot;
};
type rawTf2SchemaStyle = {
name: string;
additional_hidden_bodygroups?: {
hat?: 1;
headphones?: 1;
head?: 1;
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment