Module:Backpack item
This module is very complex. If you have questions about this module, feel free to ask on the IRC. Darkid has offered to maintain this module, you may contact them if you need further assistance. |
This template is used to display item stats similar to how they appear in-game.
Parameters
Parameter | Example | Description | Code Example | Result |
---|---|---|---|---|
Basics | ||||
item-name
|
Condor Cap
|
Proper item name in English (Condor Cap instead of Bonnet de condor, for example). Automatically grabs the item's icon. The item name is automatically translated on any language subpages. |
{{Backpack item | item-name = Condor Cap | item-kind = Hat }} |
|
custom-name
|
Spam Hammer
|
Adds a custom name with quotation marks. Still needs item-name to produce the correct image.
|
{{Backpack item | item-name = Homewrecker | custom-name = Spam Hammer | item-kind = Sledgehammer | item-level = 5 | att-1-positive = +100% damage vs buildings | att-2-positive = Damage removes Sappers | att-3-negative = -25% damage vs players }} |
|
no-custom-name-quotes
|
yes
|
Removes quotation marks from custom names if the custom-name field is used. Used in conjunction with custom-name .
|
{{Backpack item | item-name = Texas Slim's Dome Shine | custom-name = Cream Gravy | no-custom-name-quotes = yes | item-kind = Hat | item-description = Sometimes you just need a little less hat. }} |
|
custom-icon
|
BLU Bombcart.png
|
Adds a custom icon for users' own purposes. This parameter is independent from item-name parameter.
|
{{Backpack item | item-name = Mr. Quackers | custom-icon = BLU Bombcart.png | item-kind = Mask | grade = Assassin }} |
|
item-description
|
This hat is the greatest.
|
For items that have an in-game description. Will not display if a custom-description is set. Can use a custom value.
|
{{Backpack item | item-name = Yule Hog | item-kind = Hat | grade = Mercenary | item-description = This hat is the greatest. }} |
|
custom-description
|
This hat is also the greatest.
|
For items that have a custom in-game description (from a Description Tag). Displays like a normal description but has quotation marks surrounding it. Can use a custom value. |
{{Backpack item | item-name = Napper's Respite | item-kind = Hat | custom-description = This hat is also the greatest. }} |
|
prefix
|
none The Best
|
Set to "none" to hide any prefix added by quality , while keeping the quality's color. Can use a custom value.
|
{{Backpack item | item-name = Flare Gun | prefix = The Best | item-kind = Flare Gun | item-level = 10 | item-description = This weapon will reload when not active | att-1-positive = 100% critical hit vs burning players }} |
|
suffix
|
none (Slight Return)
|
Similar to prefix , mainly for use in non-en pages. Can use a custom value.
|
{{Backpack item | item-name = Flame Thrower | suffix = (Slight Return) | quality = normal | item-kind = Flame Thrower | item-level = 1 | att-1-positive = Extinguishing teammates restores 20 health | item-description = Afterburn reduces Medi Gun healing and resist shield effects.<br>Alt-Fire: Release a blast of air that pushes enemies and projectiles and extinguish teammates that are on fire. }} |
|
item-level
|
none
|
The item's level. Set to "none" to hide the level. Defaults to "Level 1 - 100". Can use a custom value. |
{{Backpack item | item-name = Antarctic Researcher | prefix = The | item-kind = Coat | item-level = 68 }} |
|
item-kind
|
Hat
|
Item kind. This string is not automatically translated. |
{{Backpack item | item-name = Lucky Cat Hat | grade = Elite | item-kind = Absolute Meower }} |
|
Quality | ||||
quality
|
genuine
|
Defaults to "unique " (the standard item yellow). See Item quality for a list of accepted values.
|
{{Backpack item | item-name = Horseless Headless Horsemann's Headtaker | quality = genuine | item-kind = Axe | item-description = Cursed by dark spirits similar to those that dwell within the Eyelander. | item-flags = Not Tradable or Marketable | att-1-neutral = This weapon has a large melee range and deploys and holsters slower | att-2-negative = No random critical hits | att-3-negative = -25 max health on wearer }} |
|
unusual-effect
|
Stormy Storm
|
Adds the specified Unusual effect to the item's description. Also adds an Unusual at the top right of the item icon, indicating the item has an Unusual effect. See Unusual for a list of accepted values. |
{{Backpack item | item-name = Rimmed Raincatcher | unusual-effect = Stormy Storm | quality = unusual | item-kind = Hat | item-description = Because there's no alliteration like alliteration with an 'ARR!' }} |
|
rankson
|
Buildings Sapped
|
Primary stat being tracked for a Strange item. |
{{Backpack item | item-name = Shovel | strange-icon = yes | rankson = Buildings Sapped | killcount = 0 | quality = strange | item-kind = Shovel }} |
|
killcount
|
7613
|
Number of points for the primary stat being tracked. Can use a custom value. |
{{Backpack item | item-name = Big Elfin Deal | strange-icon = yes | rankson = Points Scored | killcount = 7613 | quality = strange | item-kind = Hat | item-description = You ask me if I wanna be a dentist one more time, pal, I'm gonna kick your teeth in. }} |
|
rankson2
|
Kill assists
|
For Strange Parts or the secondary stat being tracked. rankson3 and rankson4 work similarly.
|
{{Backpack item | item-name = Medi Gun | strange-icon = yes | rankson = Ubers | rankson2 = Kill Assists | killcount = 0 | killcount2 = 0 | quality = strange | item-kind = Medi Gun }} |
|
killcount2
|
50
|
Number of points for Strange Parts or the secondary stat being tracked. killcount3 and killcount4 work similarly. Can use a custom value.
|
{{Backpack item | item-name = Sniper Rifle | strange-icon = yes | rankson = Kills | rankson2 = Damage Dealt | killcount = 0 | killcount2 = 50 | quality = strange | item-kind = Sniper Rifle }} |
|
filter
|
Coldfront
|
Adds the appropriate Strange Filter prefix/suffix to the weapon. See List of maps for a list of accepted values. |
{{Backpack item | item-name = Shotgun | filter = Coldfront | strange-icon = yes | rankson = kills | killcount = 0 | quality = strange | item-kind = Shotgun | item-level = 1 }} |
|
strange-icon
|
yes
|
Adds an icon at the top right of the item icon, indicating the item is Strange. |
{{Backpack item | item-name = Scattergun | strange-icon = yes | rankson = kills | killcount = 0 | quality = strange | item-kind = Scattergun }} |
|
limited
|
yes
|
If set to "yes", the the item kind will be colored yellow, and the word "Limited" will be added with a link to Limited Quantity. |
{{Backpack item | item-name = Batter's Helmet | limited = yes | item-kind = Hat | item-description = You'll be batting a thousand (skulls in) when you don this red piece of plastic! }} |
Batter's Helmet |
grade
|
Commando
|
Colors the item's name according to the specified grade, and treats it like a graded item. Valid options are Civilian , Freelance , Mercenary , Commando , Assassin , and Elite .
|
{{Backpack item | item-name = Sapper | grade = Commando | quality = Normal | item-kind = Sapper | item-description = Place on enemy buildings to disable and slowly drain away its health. Placing a sapper does not remove your disguise }} |
|
wear
|
Field-Tested
|
For use on Decorated weapons. Valid options are Battle Scarred , Well-Worn , Field-Tested , Minimal Wear , and Factory New .
|
{{Backpack item | item-name = Minigun | wear = Field-Tested | skin = War Room | grade = Commando | item-kind = Minigun }} |
|
skin
|
Warhawk
|
Decorated skin name. See Template:Dictionary/decorated#Skins for a list of accepted values. |
{{Backpack item | item-name = Rocket Launcher | wear = Factory New | skin = Warhawk | grade = Elite | item-kind = Rocket Launcher }} |
|
stat-icon
|
yes
|
Adds an icon at the top right of the backpack image, indicating the item is Graded and Strange. |
{{Backpack item | item-name = Revolver | wear = Factory New | skin = Blitzkrieg | grade = Mercenary | quality = Strange | stat-icon = yes | rankson = kills | killcount = 25 | item-kind = Revolver }} |
|
pyroland-icon
|
yes
|
Adds an icon at the top right of the backpack image, indicating the item is only visible in Pyroland. |
{{Backpack item | item-name = Pyrovision Goggles | item-kind = Pyrovision Goggles | item-level = 1-100 | pyroland-icon = yes | item-description = Enter a world of imagination that's far superior to the crap-ass worlds of imagination you get from books. Pyrovision lets you see the TF2niverse from our favorite arsonist's perspective. | item-flags = Achievement Item: Not Tradable or Marketable | att-1-positive = On Equip: Visit Pyroland }} |
Pyrovision Goggles |
halloween-icon
|
yes
|
Adds an icon at the top right of the backpack image, indicating the item is only visible during Halloween/Full Moon. |
{{Backpack item | item-name = Chicken Kiev | prefix = The | item-kind = Bird Head | halloween-icon = yes | att-1-negative = Holiday Restriction: Halloween / Full Moon }} |
|
loaner-icon
|
yes
|
Adds an icon at the top right of the backpack image, indicating the item is being loaned. |
{{Backpack item | item-name = Black Box | item-kind = Rocket Launcher | item-level = 5 | loaner-icon = yes | prefix = The | att-1-positive = On Hit: Gain up to +20 health per attack | att-2-negative = -25% clip size | item-flags = Loaner - Cannot be traded, marketed, crafted, or modified }} |
|
Attributes | ||||
paint-color
|
Mann Co. Orange
|
Adds a colored paint splat at the top right of the item icon, indicating the item is painted. See Paint Can for a list of accepted values. |
{{Backpack item | item-name = Mislaid Sweater | paint-color = Mann Co. Orange | prefix = The | item-kind = Sweater | grade = commando }} |
|
decal-icon
|
yes
|
Adds this icon at the top right of the item icon, indicating the item has a Decal applied. |
{{Backpack item | item-name = Photo Badge | decal-icon = yes | item-kind = Photo Badge | item-level = 20 | item-description = Discourage identity theft.<br><br>Custom decals can be applied to this item. }} |
|
|
|
Displays up to 8 positive, negative, or neutral values. Can use custom values. |
{{Backpack item | item-name = Dead Ringer | item-kind = Invis Watch | item-level = 5 | att-1-neutral = Cloak Type: Feign Death | att-2-positive = Live forever! | att-3-negative = Just kidding. }} |
|
gift-from
|
Robin
|
Display the source of a gifted item. Can use a custom value. |
{{Backpack item | item-name = Robin Walkers | item-kind = Slippers | grade = Elite | gift-from = Robin | date-received = Mar 29, 2018 (21:43:08) }} |
|
date-received
|
Sep 13, 2188 (06:30:00)
|
Display the date a gifted item was received. Will not appear if no gift-from is defined. Can use a custom value.
|
{{Backpack item | item-name = Level Three Chin | item-kind = Chin | prefix = The | item-level = 3 | gift-from = Gabe Newell | date-received = Sep 13, 2188 (06:30:00) }} |
|
item-expiration
|
Dec 31, 2010 (23:00:00)
|
For items that expire. Can use a custom value. |
{{Backpack item | item-name = Gift-Stuffed Stocking | item-uses = 1 | item-level = 13 | item-kind = Gift | item-flags = Not Tradable or Marketable | item-description = Contains an assortment of goodies for good little Mercenaries. | item-expiration = Dec 31, 2010 (23:00:00) }} |
|
item-uses
|
4
|
For items that have a limited number of uses. Can use a custom value. |
{{Backpack item | item-name = Noise Maker - Black Cat | item-uses = 4 | item-level = 5 | item-kind = Party Favor }} |
|
item-flags
|
Not Tradable, Marketable, or Usable in Crafting
|
For item flags. Displays them inside brackets. Can use a custom value. |
{{Backpack item | item-name = Wiki Cap | quality = community | item-kind = Hat | item-level = 20 | unusual-effect = Community Sparkle | item-description = Given to valuable Community Contributors<br>Given to valuable contributors to the official TF2 wiki<br>https://wiki.teamfortress.com/ | item-flags = Not Tradable, Marketable, or Usable in Crafting }} |
|
Styling | ||||
width
|
75%
|
Width parameter. Defaults to 100% in infoboxes, but for other usages, can be any value (%, px, pt, em).
|
{{Backpack item | item-name = Jumper's Jeepcap | width = 75% | item-kind = Hat }} |
|
style
|
background: #490040;
|
Style parameter. Can add any valid CSS style to the main div. |
{{Backpack item | item-name = Burstchester | style = background: #490040; | prefix = Taunt: | item-kind = Special Taunt | grade = Assassin | item-description = Community Created All Class Taunt }} |
See also
Image insertion templates (
)- Team Fortress 2
{{Backpack icon}}
– for inserting an image from the backpack.{{Backpack item}}
– for displaying loadout stats.{{Icon class}}
– for displaying class icons.{{Icon item}}
– for displaying images from the item icons done in Shugo style.{{Icon killicon}}
– for displaying kill icon images.{{Kill notice}}
– for displaying a kill notice.
- Wiki-related
{{Possession}}
– for displaying the icons used in{{Item checklist}}
.{{User halloween mask possession}}
– for displaying Halloween Mask icons used in hat and item checklists.{{Comment}}
– for displaying "Support", "Oppose" and "Comment" symbols.{{Pro}}
,{{Con}}
&{{Neut}}
; Compact form for common uses of{{Comment}}
{{Flagicon}}
– generates the flag icon of a country when given the country code.
local p = {} -- Defined here so that it can be referenced inside the next function local frame = nil function template(title, args) if type(args) == 'string' then args = {args} end return frame:expandTemplate{title=title, args=args} end -- Potentially add the icon in the corner (paint splotch, unusual, pyroland, etc) -- TODO: Add other icons function get_corner_icon(args) icon_begin = [[<div style="width:26px; height:26px; ]] if lang == '/ar' then icon_begin = icon_begin .. [[float:left; right:86px; ]] else icon_begin = icon_begin .. [[float:right; left:86px; ]] end icon_begin = icon_begin .. [[position:absolute; top:6px;">]] icon_end = [[</div>]] if args['paint-color'] then return icon_begin .. '[[File:Paint Splat ' .. args['paint-color'] .. '.png|25px|link=Paint Can' .. template('if lang') .. ']]' .. icon_end elseif args['unusual-effect'] then return icon_begin .. '[[File:Viewmode unusual.png|25px|link=Unusual' .. template('if lang') .. ']]' .. icon_end end return '' end -- The main item image (and link) function get_main_image(args) local image local image_link = args['item-name'] if args['custom-icon'] then image = args['custom-icon'] image_link = '{{{BASEPAGENAME}}' elseif args['grade'] and args['wear'] then image = 'Backpack ' .. args['item-name'] .. ' ' .. args['item-kind'] .. ' ' .. args['wear'] .. '.png' elseif args['item-name'] then image = 'Backpack ' .. args['item-name'] .. '.png' else image = 'Backpack Unknownweapon.png' end wikitext = '[[File:' .. image .. '|90x90px' if args['file-link'] ~= nil then wikitext = wikitext .. '|link=' .. image_link end return wikitext .. ']]' end -- The color and font for the full name of the item function get_full_item_name_style(args, lang) -- Colors are from styles in https://wiki.teamfortress.com/wiki/MediaWiki:Common.css local grade_colors = { civilian = 'B0C3D9', freelance = '5E98D9', mercenary = '4B69FF', commando = '8847FF', assassin = 'D32CE6', elite = 'EB4B4B' } local quality_colors = { normal = 'B2B2B2', unusual = '8650AC', vintage = '476291', unique = 'FFD700', community = '70B04A', valve = 'A50F79', ['self-made'] = '70B04A', customized = '476291', genuine = '4D7455', strange = 'CF6A32', completed = '8650AC', haunted = '38F3AB', collectors = 'C00000', decorated = 'FAFAFA' } local style if args['custom-color'] then style = style .. args['custom-color'] elseif grade_colors[args['grade']] then style = 'color:#' .. grade_colors[args['grade']] elseif quality_colors[args['quality']] then style = 'color:#' .. quality_colors[args['quality']] else style = 'color:#' .. quality_colors['unique'] end style = style .. '; font-size:18px; line-height:16px; text-shadow: 2px 1px 1px #24201B; font-family:' -- Specific fonts for some languages that aren't supported by the standard TF2 Build font. if lang == '/ar' then style = style .. 'مبنيات TF2, bold;' elseif lang == '/hu' then style = style .. 'Verdana, Geneva, sans-serif; font-weight: bold;' elseif lang == '/ja' then style = style .. 'TF2 Build, Shin Go, Heisei Kaku Gothic W5; font-weight: bold;' elseif lang == '/ko' then style = style .. 'Pathang, sans-serif, Totum, Kodig, serif; font-weight: bold;' elseif lang == '/zh-hans' then style = style .. 'SimSum-18030, SimHei, serif; font-weight: bold;' elseif lang == '/zh-hant' then style = style .. 'JhengHei, Verdana, JhengHei, JhengHei, sans-serif; font-weight: bold;' else -- English and default style = style .. 'TF2 Build, Verdana, Geneva, sans-serif;' end return style end -- The full name of the item, including any prefixes and suffixes function get_full_item_name(args, lang) if args['custom_name'] then if args['no-custom-name-quotes'].lower() == 'yes' then return args['custom_name'] else return [["]] .. args['custom_name'] .. [["]] end end -- A list of strings which mean "don't show" rather than "use me" local negatives = { ['none'] = true, ['no'] = true, [0] = true, ['false'] = true, ['hide'] = true, ['negative'] = true } -- Step 1: Precompute a bunch of language-aware strings local filter = '' if args['filter'] then filter = template('Item name', 'from ' .. args['filter']) .. ' ' end local festivized = '' local killstreak = '' -- Step 2: Compute the quality string, with some slight modifications per language -- TODO: There are many more language modifications. Let's take it slow, though. local quality = '' if args['quality'] == 'unique' or args['quality'] == 'normal' then -- Unique and Normal weapons do not get a prefix. elseif args['quality'] == 'strange' then quality = template('Strange rank name', {['item-name']=args['item-name'], rankson=args['rankson'], kills=args['killcount']}) .. ' ' elseif args['quality'] ~= nil then -- Not one of the above qualities, default to the quality name. quality = template('Item name', args['quality']) .. ' ' end -- Step 2: Allow individual languages to specify how to order the strings local prefix = { ["ar"] = '', ["en"] = quality .. festivized .. filter .. killstreak, ["ru"] = '', } local suffix = { ["ar"] = quality, ["en"] = '', ["ru"] = filter .. quality, } -- Step 3: Compute final prefix/suffix if negatives[args['prefix']] then prefix = '' elseif args['prefix'] ~= nil then prefix = args['prefix'] else prefix = template('Lang', prefix) end if negatives[args['suffix']] then suffix = '' elseif args['suffix'] ~= nil then suffix = args['suffix'] else suffix = template('Lang', suffix) end -- Step 4: Whitespace fixup -- Prefix should either be '' or 'asdf ' if #prefix > 0 and prefix[#prefix-1] ~= ' ' then prefix = prefix .. ' ' end -- Suffix should either be '' or ' ghjk' if #suffix > 0 and suffix[0] ~= ' ' then suffix = ' ' .. suffix end -- Step 5: Combine and return if args['item-name-local'] then item_name = args['item-name-local'] else item_name = template('Item name', args['item-name']) end return prefix .. item_name .. suffix end function p.backpack_item(f) -- Precompute the page's language. frame = f local args = f:getParent().args count = 0 for _ in pairs(args) do count = count + 1 end if count == 0 then -- There is no other way to count table length in lua. args = f.args end lang = frame:expandTemplate{title='If lang'} -- Setting some defaults for parameters if args['width'] == nil then args['width'] = '100%' end if args['style'] == nil then args['style'] = '' end if args['killcount'] == nil then args['killcount'] = 0 end -- Define the div for the darker, background box with rounded corners body = [[<div style="text-align: center; background: #24201B; width: ]] .. args['width'] .. [[; -moz-border-radius: 10px; border-radius: 10px; padding:7px 0px; ]] .. args['style'] .. [[">]] -- Add the div for the lighter, foreground box which holds the item image -- TODO: <center>? This is probably not needed. body = body .. [[<center><div style="align:center; width: 120px; height: 90px; -moz-border-radius: 10px; border-radius: 10px; background: #3C362F; margin-bottom: 5px; border: 0px #847668 solid; position:relative;">]] body = body .. get_corner_icon(args) body = body .. get_main_image(args) -- End of foreground box body = body .. [[</div></center>]] -- Add a floating div for the remaining text. body = body .. [[<div style="-moz-border-radius: 10px; border-radius: 10px; background: transparent; padding: 5px; margin: 0px 7px;">]] -- Add the main item name (and style) body = body .. [[<span style="]] .. get_full_item_name_style(args, lang) .. [[">]] .. get_full_item_name(args, lang) .. [[</span>]] -- TODO: A bunch of other stuff, but I want to test right now body = body .. [[</div></div>]] return body end return p