Commit 4fc4703e authored by JoyJ's avatar JoyJ

add docs

parent f9b36aa1
{
"-s2-mix-blend-mode": {
"description": "Controls blending mode for the panel. See CSS mix-blend-mode docs on web, except normal for us is with alpha blending.",
"examples": [
"-s2-mix-blend-mode: normal;",
"-s2-mix-blend-mode: multiply;",
"-s2-mix-blend-mode: screen;"
]
},
"align": {
"description": "<Needs a description>",
"examples": []
},
"animation": {
"description": "<Needs a description>",
"examples": []
},
"animation-delay": {
"description": "<Needs a description>",
"examples": []
},
"animation-direction": {
"description": "<Needs a description>",
"examples": []
},
"animation-duration": {
"description": "<Needs a description>",
"examples": []
},
"animation-iteration-count": {
"description": "<Needs a description>",
"examples": []
},
"animation-name": {
"description": "<Needs a description>",
"examples": []
},
"animation-timing-function": {
"description": "<Needs a description>",
"examples": []
},
"background-blur": {
"description": "Sets the amount of blur to apply to the contents behind this panel during composition. Default is no blur, for now Gaussian is the only blur type and takes a horizontal standard deviation, vertical standard deviation, and number of passes. Good std deviation values are around 0-10, if 10 is still not intense enough consider more passes, but more than one pass is bad for perf. As shorthand you can specify with just one value, which will be used for the standard deviation in both directions and 1 pass will be set.",
"examples": [
"background-blur: gaussian( 2.5 );",
"background-blur: gaussian( 6, 6, 1 );"
]
},
"background-color": {
"description": "Sets the background fill color/gradient/combination for a panel.",
"examples": [
"background-color: #FFFFFFFF;",
"background-color: gradient( linear, 0% 0%, 0% 100%, from( #fbfbfbff ), to( #c0c0c0c0 ) );",
"background-color: gradient( linear, 0% 0%, 0% 100%, from( #fbfbfbff ), color-stop( 0.3, #ebebebff ), to( #c0c0c0c0 ) );",
"background-color: gradient( radial, 50% 50%, 0% 0%, 80% 80%, from( #00ff00ff ), to( #0000ffff ) );",
"background-color: #0d1c22ff, gradient( radial, 100% -0%, 100px -40px, 320% 270%, from( #3a464bff ), color-stop( 0.23, #0d1c22ff ), to( #0d1c22ff ) );"
]
},
"background-image": {
"description": "Comma separated list of images or movies to draw in the background. Can specify \"none\" to not draw a background layer. Combined with background-position, background-size and background-repeat values.",
"examples": [
"background-image: url(\"file://{images}/default.tga\"), url( \"file://{movies}/Background1080p.webm\" );"
]
},
"background-position": {
"description": "Controls the horizontal and vertical placement of the background image, with the format: <left|center|right> <horizontal length> <top|center|bottom> <vertical length>\n\nIf length is a percent, the specified location within the image is positioned over that same specified position in the background. If the length is pixels, the top left corner is placed relative to the provided alignment keywords (left, bottom, etc.). See examples for more details.\n\nIf 1 value is specified, the other value is assumed to be center. If 2 values are specified, the first value must be for horizontal placement and the second for vertical.",
"examples": [
"// aligns the top left corner of the image with the top left corner of the panel (default)\nbackground-position: 0% 0%;",
"// centers the image within the background (same as \"center center\")\nbackground-position: center;",
"// aligns the bottom right corner of the image with the bottom right corner of the panel (same as \"100% 100%\")\nbackground-position: right bottom;",
"// the top left corner of the image is placed 10px to the right of, 40px below the top left corner of the panel\nbackground-position: left 10px top 40px;"
]
},
"background-repeat": {
"description": "Controls if the background should be repeated in the horizontal and vertical directions.\n\nPossible values per direction:\n\"repeat\" - (default) Repeated in the specified direction until it fills the panel\n\"space\" - Repeated as many times as required to fill the panel w/o being clipped. Space is added between images to to align first and last image with panel edges.\n\"round\" - Repeated as many times as required to fill the panel w/o being clipped. The image is resized to align first and last image with panel edges.\n\"no-repeat\" - Not repeated\n\nPossible single values:\n\"repeat-x\" - equals \"repeat no-repeat\"\n\"repeat-y\" - equals \"no-repeat repeat\"",
"examples": [
"background-repeat: repeat; // equals \"repeat repeat\" (default)",
"background-repeat: repeat space; // repeats horizontally, spaces vertically",
"background-repeat: no-repeat round; // 1 column of images, scaled to fit evenly"
]
},
"background-size": {
"description": "Sets the horizontal and vertical dimensions used to draw the background image. Can be set in pixels, percent, \"contains\" to size down to panel dimensions or \"auto\" preserves the image aspect ratio. By default, set to \"auto\" which preveres the image's original size.\n\nMultiple background layers can be specified in a comma separated list, which are then combined with background-image, background-position, and background-repeat values.",
"examples": [
"background-size: auto; // same as \"auto auto\" (default)",
"background-size: 100% 100%; // image fills the panel",
"background-size: 50% 75%; // image fills 50% of the panel's width, and 75% of the panel's height",
"background-size: 300px 200px; // image is drawn 300px wide, 200px tall"
]
},
"blur": {
"description": "Sets the amount of blur to apply to the panel and all it's children during composition. Default is no blur, for now Gaussian is the only blur type and takes a horizontal standard deviation, vertical standard deviation, and number of passes. Good std deviation values are around 0-10, if 10 is still not intense enough consider more passes, but more than one pass is bad for perf. As shorthand you can specify with just one value, which will be used for the standard deviation in both directions and 1 pass will be set.",
"examples": [
"blur: gaussian( 2.5 );",
"blur: gaussian( 6, 6, 1 );"
]
},
"border": {
"description": "Shorthand for setting panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border: 2px solid #111111FF;"
]
},
"border-bottom": {
"description": "Shorthand for setting the bottom panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-bottom: 2px solid #111111FF;"
]
},
"border-bottom-color": {
"description": "Specifies border color for the bottom edge of the panel.",
"examples": [
"border-bottom-color: #111111FF;"
]
},
"border-bottom-left-radius": {
"description": "Specifies border-radius for bottom-left corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-bottom-left-radius: 2px 2px;",
"border-bottom-left-radius: 5%;"
]
},
"border-bottom-right-radius": {
"description": "Specifies border-radius for bottom-right corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-bottom-right-radius: 2px 2px;",
"border-bottom-right-radius: 5%;"
]
},
"border-bottom-style": {
"description": "Specifies border style for the bottom edge of the panel.",
"examples": [
"border-bottom-style: solid;"
]
},
"border-bottom-width": {
"description": "Specifies border width for the bottom edge of the panel.",
"examples": [
"border-bottom-width: 2px;"
]
},
"border-color": {
"description": "Specifies border color for panel. If a single color value is set it applies to all sides, if 2 are set the first is top/bottom and the second is left/right, if all four are set then they are top, right, bottom, left in order.",
"examples": [
"border-color: #111111FF;",
"border-color: #FF0000FF #00FF00FF #0000FFFF #00FFFFFF;"
]
},
"border-left": {
"description": "Shorthand for setting the left panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-left: 2px solid #111111FF;"
]
},
"border-left-color": {
"description": "Specifies border color for the left edge of the panel.",
"examples": [
"border-left-color: #111111FF;"
]
},
"border-left-style": {
"description": "Specifies border style for the left edge of the panel.",
"examples": [
"border-left-style: solid;"
]
},
"border-left-width": {
"description": "Specifies border width for the left edge of the panel.",
"examples": [
"border-left-width: 2px;"
]
},
"border-radius": {
"description": "Shorthand to set border radius for all corners at once. Border radius rounds off corners of the panel, adjusting the border to smoothly round and also clipping background image/color and contents to the specified elliptical or circular values. In this shorthand version you may specify a single value for all raddi, or horizontal / vertical separated by the '/' character. For both horizontal and vertical you may specify 1 to 4 values in pixels or %, they will be taken in order as top-left, top-right, bottom-right, bottom-left radii values.",
"examples": [
"// 2 px circular corners on all sides\nborder-radius: 2px;",
"// Perfect circular or elliptical panel (circular if box was square)\nborder-radius: 50% / 50%;",
"// 2 px horizontal radii 4px vertical elliptical corners on all sides\nborder-radius: 2px / 4px;",
"// All corners fully specified\nborder-radius: 2px 3px 4px 2px / 2px 3px 3px 2px;"
]
},
"border-right": {
"description": "Shorthand for setting the right panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-right: 2px solid #111111FF;"
]
},
"border-right-color": {
"description": "Specifies border color for the right edge of the panel.",
"examples": [
"border-right-color: #111111FF;"
]
},
"border-right-style": {
"description": "Specifies border style for the right edge of the panel.",
"examples": [
"border-right-style: solid;"
]
},
"border-right-width": {
"description": "Specifies border width for the right edge of the panel.",
"examples": [
"border-right-width: 2px;"
]
},
"border-style": {
"description": "Specifies border style for panel. If a single style value is set it applies to all sides, if 2 are set the first is top/bottom and the second is left/right, if all four are set then they are top, right, bottom, left in order.",
"examples": [
"border-style: solid;",
"border-style: solid none solid none;"
]
},
"border-top": {
"description": "Shorthand for setting the top panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-top: 2px solid #111111FF;"
]
},
"border-top-color": {
"description": "Specifies border color for the top edge of the panel.",
"examples": [
"border-top-color: #111111FF;"
]
},
"border-top-left-radius": {
"description": "Specifies border-radius for top-left corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-top-left-radius: 2px 2px;",
"border-top-left-radius: 5%;"
]
},
"border-top-right-radius": {
"description": "Specifies border-radius for top-right corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-top-right-radius: 2px 2px;",
"border-top-right-radius: 5%;"
]
},
"border-top-style": {
"description": "Specifies border style for the top edge of the panel.",
"examples": [
"border-top-style: solid;"
]
},
"border-top-width": {
"description": "Specifies border width for the top edge of the panel.",
"examples": [
"border-top-width: 2px;"
]
},
"border-width": {
"description": "Specifies border width for panel. If a single width value is set it applies to all sides, if 2 are set the first is top/bottom and the second is left/right, if all four are set then they are top, right, bottom, left in order.",
"examples": [
"border-width: 1px;'",
"border-width: 20px 1px 20px 1px;"
]
},
"box-shadow": {
"description": "Specifies outer shadows for boxes, or inset shadows/glows. The shadow shape will match the border box for the panel,so use border-radius to affect rounding. Syntax takes optional 'inset', optional 'fill' then color, and then horizontal offset pixels, vertical offset pixels, blur radius pixels, and spread distance in pixels. Inset means the shadow is an inner shadow/glow, fill is valid only on outer shadows and means draw the shadow behind the entire box, not clipping it to outside the border area only. A negative blur radius will give a hard-edged look to the shadow, effectively a rounded outline of the same size as the blur.",
"examples": [
"box-shadow: #ffffff80 4px 4px 8px 0px; // outer",
"box-shadow: fill #ffffff80 4px 4px 8px 0px; // outer, filled",
"box-shadow: inset #333333b0 0px 0px 8px 12px; // inner"
]
},
"brightness": {
"description": "Sets the brightness that applies to the panel and all it's children during composition. The value is a multiplier on the HSB brightness value.",
"examples": [
"brightness: 1.5;"
]
},
"clip": {
"description": "Specifies a clip region within the panel, where contents will be clipped at render time. This clipping has no impact on layout, and is fast and supported for transitions/animations. Radial clip mode takes a center point, start angle and angular width of the revealed sector.",
"examples": [
"clip: rect( 10%, 90%, 90%, 10% );clip: radial( 50% %50, 0deg, 90deg );"
]
},
"color": {
"description": "Sets the foreground fill color/gradient/combination for a panel. This color is the color used to render text within the panel.",
"examples": [
"color: #FFFFFFFF;",
"color: gradient( linear, 0% 0%, 0% 100%, from( #cbcbcbff ), to( #a0a0a0a0 ) );"
]
},
"context-menu-arrow-position": {
"description": "Specifies where to point the arrow of a context menu at on this panel. The first value controls how the arrow is positioned horizontally when the context menu is to the top or bottom of the panel, and the second value controls how the arrow is positioned vertically when the context menu is to the left or right of the panel. Default is '50% 50%'.",
"examples": [
"context-menu-arrow-position: 25% 50%;"
]
},
"context-menu-body-position": {
"description": "Specifies where to position the body of a context menu relative to this panel. The first value controls how the body is aligned horizontally when the context menu is to the top or bottom of the panel, and the second value controls how the body is aligned vertically when the context menu is to the left or right of the panel. 0% means left/top aligned, 50% means center/middle aligned, and 100% means right/bottom aligned. Default is '0% 0%'.",
"examples": [
"context-menu-body-position: 50% 100%;"
]
},
"context-menu-position": {
"description": "Specifies where to position a context menu relative to this panel. Valid options include 'left', 'top', 'right', and 'bottom'. List up to 4 positions to determine the order that positions are tried if the context menu doesn't fully fit on screen. Default is 'right left bottom top'. If less than 4 positions are specified, the context menu first tries the opposite of the specified position along the same axis before switching to the other axis.",
"examples": [
"context-menu-position: bottom;",
"context-menu-position: left bottom;"
]
},
"contrast": {
"description": "Sets the contrast that applies to the panel and all it's children during composition.",
"examples": [
"contrast: 1.5;"
]
},
"flow-children": {
"description": "<Needs a description>",
"examples": []
},
"font": {
"description": "<Needs a description>",
"examples": []
},
"font-family": {
"description": "Specifies the font face to use.",
"examples": [
"font-family: Arial;",
"font-family: \"Comic Sans MS\";"
]
},
"font-size": {
"description": "Specifies the target font face height in pixels.",
"examples": [
"font-size: 12;"
]
},
"font-stretch": {
"description": "Specifies the font stretch to use. Supported values are normal, condensed, and expanded.",
"examples": [
"font-stretch: normal;",
"font-stretch: condensed;",
"font-stretch: expanded;"
]
},
"font-style": {
"description": "Specifies the font style to use. Supported values are normal, and italic",
"examples": [
"font-style: normal;"
]
},
"font-weight": {
"description": "Specifies the font weight to use. Supported values are light, thin, normal, medium, bold, and black.",
"examples": [
"font-weight: normal;",
"font-weight: bold;",
"font-weight: thin;"
]
},
"height": {
"description": "Sets the height for this panel. Possible values:\n\"fit-children\" - Panel size is set to the required size of all children (default)\n<pixels> - Any fixed pixel value (ex: \"100px\")\n<percentage> - Percentage of parent height (ex: \"100%\")\n\"fill-parent-flow( <weight> )\" - Fills to remaining parent width. If multiple children are set to this value, weight is used to determine final height. For example, if three children are set to fill-parent-flow of 1.0 and the parent is 300px tall, each child will be 100px tall. (ex: \"fill-parent-flow( 1.0 )\" )\n\"width-percentage( <percentage> )\" - Percentage of the panel's width, which allows you to enforce a particular aspect ratio. The width cannot also be height-percentage.",
"examples": []
},
"horizontal-align": {
"description": "<Needs a description>",
"examples": []
},
"hue-rotation": {
"description": "Sets the hue rotation to apply to the panel and all it's children during composition. Default of 0.0 means no adjustment, domain is in degrees.",
"examples": [
"hue-rotation: 180deg;"
]
},
"img-shadow": {
"description": "Specifies image shadows. The shadow shape will match the image the panel can generate,and this is only meaningful for images. Syntax takes horizontal offset pixels, vertical offset pixels, blur radius pixels, strength, and then shadow color.",
"examples": [
"img-shadow: 2px 2px 8px 3.0 #333333b0;"
]
},
"letter-spacing": {
"description": "Sets letter-spacing for text in a string. Possible values:\nnormal - no manual spacing\n<pixels> - Any fixed pixel value (ex: \"1px\")",
"examples": []
},
"line-height": {
"description": "Specifies the line height (distance between top edge of line above and line below) to use for text. By default this is unset and a value that matches the font-size reasonably will be used automatically.",
"examples": [
"line-height: 20px;"
]
},
"margin": {
"description": "<Needs a description>",
"examples": []
},
"margin-bottom": {
"description": "<Needs a description>",
"examples": []
},
"margin-left": {
"description": "<Needs a description>",
"examples": []
},
"margin-right": {
"description": "<Needs a description>",
"examples": []
},
"margin-top": {
"description": "<Needs a description>",
"examples": []
},
"max-height": {
"description": "<Needs a description>",
"examples": []
},
"max-width": {
"description": "<Needs a description>",
"examples": []
},
"min-height": {
"description": "<Needs a description>",
"examples": []
},
"min-width": {
"description": "<Needs a description>",
"examples": []
},
"opacity": {
"description": "Sets the opacity or amount of transparency applied to the panel and all it's children during composition. Default of 1.0 means fully opaque, 0.0 means fully transparent.",
"examples": [
"opacity: 0.8;"
]
},
"opacity-mask": {
"description": "Applies an image as an opacity mask that stretches to the panel bounds and fades out it's content based on the alpha channel. The second float value is an optional opacity value for the mask itself, the image won't interpolate/cross-fade, but you can animate the opacity to fade the mask in/out. The -scroll-up, -scroll-down, and -scroll-up-down varients override the mask and apply only when the various vertical scroll scenarios affect the panel based on the overflow property.",
"examples": [
"opacity-mask: url( \"file://{images}/upper_row_mask.tga\" );",
"opacity-mask: url( \"file://{images}/upper_row_mask.tga\" ) 0.5;",
"opacity-mask-scroll-up: url( \"file://{images}/upper_row_mask_up.tga\" ) 0.5;",
"opacity-mask-scroll-down: url( \"file://{images}/upper_row_mask_down.tga\" ) 0.5;",
"opacity-mask-scroll-up-down: url( \"file://{images}/upper_row_mask_up_down.tga\" ) 0.5;"
]
},
"opacity-mask-scroll-down": {
"description": "",
"examples": []
},
"opacity-mask-scroll-up": {
"description": "",
"examples": []
},
"opacity-mask-scroll-up-down": {
"description": "",
"examples": []
},
"overflow": {
"description": "Specifies what to do with contents that overflow the available space for the panel. Possible values:\n\"squish\" - Children are squished to fit within the panel's bounds if needed (default)\n\"clip\" - Children maintain their desired size but their contents are clipped\n\"scroll\" - Children maintain their desired size and a scrollbar is added to this panel",
"examples": [
"overflow: squish squish; // squishes contents in horizontal and vertical directions",
"overflow: squish scroll; // scrolls contents in the Y direction"
]
},
"padding": {
"description": "<Needs a description>",
"examples": []
},
"padding-bottom": {
"description": "<Needs a description>",
"examples": []
},
"padding-left": {
"description": "<Needs a description>",
"examples": []
},
"padding-right": {
"description": "<Needs a description>",
"examples": []
},
"padding-top": {
"description": "<Needs a description>",
"examples": []
},
"perspective": {
"description": "Sets the perspective depth space available for children of the panel. Default of 1000 would mean that children at 1000px zpos are right at the viewers eye, -1000px are just out of view distance faded to nothing.",
"examples": [
"perspective: 1000;"
]
},
"perspective-origin": {
"description": "Sets the perspective origin which will be used when transforming children of this panel. This can be thought of as the camera x/y position relative to the panel.",
"examples": [
"perspective-origin: 50% 50%;"
]
},
"position": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"pre-transform-rotate2d": {
"description": "Sets 2 dimensional rotation degrees that apply to the quad for this panel prior to 3 dimensional transforms. This rotation applies without perspective and leaves the panel centered at the same spot as it started.",
"examples": [
"pre-transform-rotate2d: 45deg;"
]
},
"pre-transform-scale2d": {
"description": "Sets 2 dimensional X/Y scale factors that apply to the quad for this panel prior to 3 dimensional transforms. This scaling applies without perspective and leaves the panel centered at the same spot as it started. Default of 1.0 means no scaling, 0.5 would be half size.",
"examples": [
"pre-transform-scale2d: 0.8",
"pre-transform-scale2d: 0.4, 0.6"
]
},
"saturation": {
"description": "Sets the amount of saturation to apply to the panel and all it's children during composition. Default of 1.0 means no adjustment, 0.0 means fully desaturated to gray scale, greater than 1.0 means over-saturation.",
"examples": [
"saturation: 0.4;"
]
},
"sound": {
"description": "Specifies a sound name to play when this selector is applied.",
"examples": [
"sound: \"whoosh_in\";"
]
},
"sound-out": {
"description": "Specifies a sound name to play when this selector is removed.",
"examples": [
"sound-out: \"whoosh_out\";"
]
},
"text-align": {
"description": "Specifies the text alignment for text within this panel, defaults to left.",
"examples": [
"text-align: left;",
"text-align: right;",
"text-align: center;"
]
},
"text-decoration": {
"description": "Specifies the decoration for text within this panel, defaults to none. Possible values: none, underline, line-through.",
"examples": [
"text-decoration: underline;"
]
},
"text-decoration-style": {
"description": "Specifies the decoration style for text within this panel, defaults to none. Possible values: none, dashed, dotted, wavy.",
"examples": [
"text-decoration-style: dotted;"
]
},
"text-overflow": {
"description": "Controls truncation of text that doesn't fit in a panel. \"clip\" means to simply truncate (on char boundaries), \"ellipsis\" means to end with '...', and \"shrink\" means to a\nWe default to ellipsis, which is contrary to the normal CSS spec.",
"examples": [
"text-overflow: ellipsis;",
"text-overflow: clip;",
"text-overflow: shrink;"
]
},
"text-shadow": {
"description": "Specifies text shadows. The shadow shape will match the text the panel can generate,and this is only meaningful for labels. Syntax takes horizontal offset pixels, vertical offset pixels, blur radius pixels, strength, and then shadow color.",
"examples": [
"text-shadow: 2px 2px 8px 3.0 #333333b0;"
]
},
"text-transform": {
"description": "Specifies the transform for text within this panel, defaults to none. Possible values: none, uppercase, lowercase.",
"examples": [
"text-transform: uppercase;"
]
},
"texture-sampling": {
"description": "Controls texture sampling mode for the panel. Set to alpha-only to use the textures alpha data across all 3 color channels.",
"examples": [
"texture-sampling: normal;",
"texture-sampling: alpha-only;"
]
},
"tooltip-arrow-position": {
"description": "Specifies where to point the arrow of a tooltip at on this panel. The first value controls how the arrow is positioned horizontally when the tooltip is to the top or bottom of the panel, and the second value controls how the arrow is positioned vertically when the tooltip is to the left or right of the panel. Default is '50% 50%'.",
"examples": [
"tooltip-arrow-position: 25% 50%;"
]
},
"tooltip-body-position": {
"description": "Specifies where to position the body of a tooltip relative to this panel. The first value controls how the body is aligned horizontally when the tooltip is to the top or bottom of the panel, and the second value controls how the body is aligned vertically when the tooltip is to the left or right of the panel. 0% means left/top aligned, 50% means center/middle aligned, and 100% means right/bottom aligned. Default is '0% 0%'.",
"examples": [
"tooltip-body-position: 50% 100%;"
]
},
"tooltip-position": {
"description": "Specifies where to position a tooltip relative to this panel. Valid options include 'left', 'top', 'right', and 'bottom'. List up to 4 positions to determine the order that positions are tried if the tooltip doesn't fully fit on screen. Default is 'right left bottom top'. If less than 4 positions are specified, the tooltip first tries the opposite of the specified position along the same axis before switching to the other axis.",
"examples": [
"tooltip-position: bottom;",
"tooltip-position: left bottom;"
]
},
"transform": {
"description": "Sets the transforms to apply to the panel in 2d or 3d space. You can combine various transforms (comma separated) and they will be applied in order to create a 4x4 3d transform matrix. The possible operations are: translate3d( x, y, z ), translatex( x ), translatey( y ), translatez( z ), scale3d( x, y, z), rotate3d( x, y, z ), rotatex( x ), rotatey( y ), rotatez( z ).",
"examples": [
"transform: translate3d( -100px, -100px, 0px );",
"transform: rotateZ( -32deg ) rotateX( 30deg ) translate3d( 125px, 520px, 230px );"
]
},
"transform-origin": {
"description": "Sets the transform origin about which transforms will be applied. Default is 50% 50% on the panel so a rotation/scale is centered.",
"examples": [
"transform-origin: 50% 50%"
]
},
"transition": {
"description": "Specifies which properties should transition smoothly to new values if a class/pseudo class changes the styles. Also specifies duration, timing function, and delay. Valid timing functions are: ease, ease-in, ease-out, ease-in-out, linear.",
"examples": [
"transition: position 2.0s ease-in-out 0.0s, perspective-origin 1.2s ease-in-out 0.8s;"
]
},
"transition-delay": {
"description": "Specifies the delay in seconds to use for transition properties on this panel, if more than one comma delimited value is specified then the values are applied to each property specified in 'transition-property' in order. If only one value is specified then it applies to all the properties specified in transition-property.",
"examples": [
"transition-delay: 0.0s;",
"transition-delay: 0.0s, 1.2s;"
]
},
"transition-duration": {
"description": "Specifies the durating in seconds to use for transition properties on this panel, if more than one comma delimited value is specified then the values are applied to each property specified in 'transition-property' in order. If only one value is specified then it applies to all the properties specified in transition-property.",
"examples": [
"transition-duration: 2.0s;",
"transition-duration: 2.0s, 1.2s, 1.2s, 4.0s, 2.0s;"
]
},
"transition-property": {
"description": "Specifies which properties should transition smoothly to new values if a class/pseudo class changes the styles.",
"examples": [
"transition: position, transform, background-color;"
]
},
"transition-timing-function": {
"description": "Specifies the timing function to use for transition properties on this panel, if more than one comma delimited value is specified then the values are applied to each property specified in 'transition-property' in order. If only one value is specified then it applies to all the properties specified in transition-property. Valid timing functions are: ease, ease-in, ease-out, ease-in-out, linear.",
"examples": [
"transition-timing-function: ease-in-out;",
"transition-timing-function: ease-in-out, linear;",
"transition-timing-function: cubic-bezier( 0.785, 0.385, 0.555, 1.505 );"
]
},
"ui-scale": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"ui-scale-x": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"ui-scale-y": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"ui-scale-z": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"vertical-align": {
"description": "<Needs a description>",
"examples": []
},
"visibility": {
"description": "Controls if the panel is visible and is included in panel layout. Possible values:\n\"visible\" - panel is visible and included in layout (default)\n\"collapse\" - panel is invisible and not included in layout",
"examples": []
},
"wash-color": {
"description": "Specifies a 'wash' color, which means a color that will be blended over the panel and all it's children at composition time, tinting them. The alpha value of the color determines the intensity of the tinting.",
"examples": [
"wash-color: #39b0d325;"
]
},
"white-space": {
"description": "Controls white-space wrapping on rendered text. \"normal\" means wrap on whitespace, \"nowrap\" means do no wrapping at all.",
"examples": [
"white-space: normal;",
"white-space: nowrap;"
]
},
"width": {
"description": "Sets the width for this panel. Possible values:\n\"fit-children\" - Panel size is set to the required size of all children (default)\n<pixels> - Any fixed pixel value (ex: \"100px\")\n<percentage> - Percentage of parent width (ex: \"100%\")\n\"fill-parent-flow( <weight> )\" - Fills to remaining parent width. If multiple children are set to this value, weight is used to determine final width. For example, if three children are set to fill-parent-flow of 1.0 and the parent is 300px wide, each child will be 100px wide. (ex: \"fill-parent-flow( 1.0 )\" )\n\"height-percentage( <percentage> )\" - Percentage of the panel's height, which allows you to enforce a particular aspect ratio. The height cannot also be width-percentage.",
"examples": []
},
"x": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"y": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"z": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"z-index": {
"description": "Sets the z-index for a panel, panels will be sorted and painted in order within a parent panel. The sorting first sorts by the z-pos computed from position and transforms, then if panels have matching zpos zindex is used. z-index is different than z-pos in that it doesn't affect rendering perspective, just paint/hit-test ordering. The default z-index value is 0, and any floating point value is accepted.",
"examples": [
"z-index: 1;"
]
}
}
\ No newline at end of file
{
"AddStyle": {
"description": "Add a CSS class to a panel.",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "string"
}
]
},
"AddStyleAfterDelay": {
"description": "Add a CSS class to a panel after a specified delay. ",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "string"
},
{
"name": "pre-delay",
"type": "float"
}
]
},
"AddStyleToEachChild": {
"description": "Add a CSS class to all children of this panel.",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "string"
}
]
},
"AddTimedStyle": {
"description": "Add a class for a specified duration, with optional pre-delay; clears existing timers when called with same class. ",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "string"
},
{
"name": "duration",
"type": "float"
},
{
"name": "pre-delay",
"type": "float"
}
]
},
"AsyncEvent": {
"description": "Fire another event after a delay (in seconds).",
"panelEvent": false,
"args": [
{
"name": "delay",
"type": "float"
},
{
"name": "eventToFire",
"type": "event"
}
]
},
"DOTAHideAbilityTooltip": {
"description": "Hide the ability tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideBuffTooltip": {
"description": "Hide the buff tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideDroppedItemTooltip": {
"description": "Hide the dropped item tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideEconItemTooltip": {
"description": "Hide the econ item tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideProfileCardBattleCupTooltip": {
"description": "Hide the profile card / battle cup tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideProfileCardTooltip": {
"description": "Hide the profile card tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideRankTierTooltip": {
"description": "Hide the rank tier tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideRuneTooltip": {
"description": "Hide the rune tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideTextTooltip": {
"description": "Hide the text tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideTitleImageTextTooltip": {
"description": "Hide the title image text tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideTitleTextTooltip": {
"description": "Hide the title text tooltip.",
"panelEvent": true,
"args": []
},
"DOTAShowAbilityInventoryItemTooltip": {
"description": "Show tooltip for an item in the entityIndex NPC's inventory.",
"panelEvent": true,
"args": [
{
"name": "entityIndex",
"type": "int32"
},
{
"name": "inventorySlot",
"type": "int32"
}
]
},
"DOTAShowAbilityShopItemTooltip": {
"description": "Show tooltip for an item in the entityIndex NPC's shop.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "guideName",
"type": "string"
},
{
"name": "entityIndex",
"type": "int32"
}
]
},
"DOTAShowAbilityTooltip": {
"description": "Show an ability tooltip.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
}
]
},
"DOTAShowAbilityTooltipForEntityIndex": {
"description": "Show an ability tooltip. Level information comes from the entity specified by the entityIndex.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "entityIndex",
"type": "int32"
}
]
},
"DOTAShowAbilityTooltipForGuide": {
"description": "Show an ability tooltip annotated with a particular guide's info.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "guideName",
"type": "string"
}
]
},
"DOTAShowAbilityTooltipForHero": {
"description": "Show an ability tooltip for the specified hero.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "heroid",
"type": "int32"
},
{
"name": "bool",
"type": "boo"
}
]
},
"DOTAShowAbilityTooltipForLevel": {
"description": "Show an ability tooltip for a specific level.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "int32",
"type": "int3"
}
]
},
"DOTAShowBuffTooltip": {
"description": "Show a buff tooltip for the specified entityIndex + buff serial.",
"panelEvent": true,
"args": [
{
"name": "entityIndex",
"type": "int32"
},
{
"name": "buffSerial",
"type": "int32"
},
{
"name": "bOnEnemy",
"type": "bool"
}
]
},
"DOTAShowEconItemTooltip": {
"description": "Show the econ item tooltip for a given item, style, and hero. Use 0 for the default style, and -1 for the default hero.",
"panelEvent": true,
"args": [
{
"name": "itemDef",
"type": "class item_definition_index_t"
},
{
"name": "styleIndex",
"type": "class style_index_t"
},
{
"name": "heroID",
"type": "int32"
}
]
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"align": {
"description": "<Needs a description>",
"examples": []
},
"animation": {
"description": "<Needs a description>",
"examples": []
},
"animation-delay": {
"description": "<Needs a description>",
"examples": []
},
"animation-direction": {
"description": "<Needs a description>",
"examples": []
},
"animation-duration": {
"description": "<Needs a description>",
"examples": []
},
"animation-fill-mode": {
"description": "<Needs a description>",
"examples": []
},
"animation-iteration-count": {
"description": "<Needs a description>",
"examples": []
},
"animation-name": {
"description": "<Needs a description>",
"examples": []
},
"animation-timing-function": {
"description": "<Needs a description>",
"examples": []
},
"background-blur": {
"description": "Sets the amount of blur to apply to the contents behind this panel during composition. Default is no blur, for now Gaussian is the only blur type and takes a horizontal standard deviation, vertical standard deviation, and number of passes. Good std deviation values are around 0-10, if 10 is still not intense enough consider more passes, but more than one pass is bad for perf. As shorthand you can specify with just one value, which will be used for the standard deviation in both directions and 1 pass will be set.",
"examples": [
"background-blur: gaussian( 2.5 );",
"background-blur: gaussian( 6, 6, 1 );"
]
},
"background-color": {
"description": "Sets the background fill color/gradient/combination for a panel.",
"examples": [
"background-color: #FFFFFFFF;",
"background-color: gradient( linear, 0% 0%, 0% 100%, from( #fbfbfbff ), to( #c0c0c0c0 ) );",
"background-color: gradient( linear, 0% 0%, 0% 100%, from( #fbfbfbff ), color-stop( 0.3, #ebebebff ), to( #c0c0c0c0 ) );",
"background-color: gradient( radial, 50% 50%, 0% 0%, 80% 80%, from( #00ff00ff ), to( #0000ffff ) );",
"background-color: #0d1c22ff, gradient( radial, 100% -0%, 100px -40px, 320% 270%, from( #3a464bff ), color-stop( 0.23, #0d1c22ff ), to( #0d1c22ff ) );"
]
},
"background-color-opacity": {
"description": "Sets the background color opacity for a panel (does nothing on its own, but when merged with a full background-color it overrides the opacity).",
"examples": [
"background-color-opacity: 0.5;"
]
},
"background-image": {
"description": "Comma separated list of images or movies to draw in the background. Can specify \"none\" to not draw a background layer. Combined with background-position, background-size, background-texture-size and background-repeat values.",
"examples": [
"background-image: url(\"file://{images}/default.tga\"), url( \"file://{movies}/Background1080p.webm\" );"
]
},
"background-img-opacity": {
"description": "Sets the Opacity of background-image",
"examples": [
"background-img-opacity: 0.5;"
]
},
"background-position": {
"description": "Controls the horizontal and vertical placement of the background image, with the format: <left|center|right> <horizontal length> <top|center|bottom> <vertical length>\n\nIf length is a percent, the specified location within the image is positioned over that same specified position in the background. If the length is pixels, the top left corner is placed relative to the provided alignment keywords (left, bottom, etc.). See examples for more details.\n\nIf 1 value is specified, the other value is assumed to be center. If 2 values are specified, the first value must be for horizontal placement and the second for vertical.",
"examples": [
"// aligns the top left corner of the image with the top left corner of the panel (default)\nbackground-position: 0% 0%;",
"// centers the image within the background (same as \"center center\")\nbackground-position: center;",
"// aligns the bottom right corner of the image with the bottom right corner of the panel (same as \"100% 100%\")\nbackground-position: right bottom;",
"// the top left corner of the image is placed 10px to the right of, 40px below the top left corner of the panel\nbackground-position: left 10px top 40px;"
]
},
"background-repeat": {
"description": "Controls if the background should be repeated in the horizontal and vertical directions.\n\nPossible values per direction:\n\"repeat\" - (default) Repeated in the specified direction until it fills the panel\n\"space\" - Repeated as many times as required to fill the panel w/o being clipped. Space is added between images to to align first and last image with panel edges.\n\"round\" - Repeated as many times as required to fill the panel w/o being clipped. The image is resized to align first and last image with panel edges.\n\"no-repeat\" - Not repeated\n\nPossible single values:\n\"repeat-x\" - equals \"repeat no-repeat\"\n\"repeat-y\" - equals \"no-repeat repeat\"",
"examples": [
"background-repeat: repeat; // equals \"repeat repeat\" (default)",
"background-repeat: repeat space; // repeats horizontally, spaces vertically",
"background-repeat: no-repeat round; // 1 column of images, scaled to fit evenly"
]
},
"background-size": {
"description": "Sets the horizontal and vertical dimensions used to draw the background image. Can be set in pixels, percent, \"contains\" to size down to panel dimensions or \"auto\" preserves the image aspect ratio. By default, set to \"auto\" which preveres the image's original size.\n\nMultiple background layers can be specified in a comma separated list, which are then combined with background-image, background-position, background-texture-size and background-repeat values.",
"examples": [
"background-size: auto; // same as \"auto auto\" (default)",
"background-size: 100% 100%; // image fills the panel",
"background-size: 50% 75%; // image fills 50% of the panel's width, and 75% of the panel's height",
"background-size: 300px 200px; // image is drawn 300px wide, 200px tall"
]
},
"background-texture-size": {
"description": "Sets the size used for generating textures from vector graphics (.svg files), default is -1 which takes the size from the svg file.",
"examples": [
"background-texture-size: 100px 50px; // width 100px, height 50px"
]
},
"blur": {
"description": "Sets the amount of blur to apply to the panel and all it's children during composition. Default is no blur, for now Gaussian is the only blur type and takes a horizontal standard deviation, vertical standard deviation, and number of passes. Good std deviation values are around 0-10, if 10 is still not intense enough consider more passes, but more than one pass is bad for perf. As shorthand you can specify with just one value, which will be used for the standard deviation in both directions and 1 pass will be set.",
"examples": [
"blur: gaussian( 2.5 );",
"blur: gaussian( 6, 6, 1 );"
]
},
"border": {
"description": "Shorthand for setting panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border: 2px solid #111111FF;"
]
},
"border-bottom": {
"description": "Shorthand for setting the bottom panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-bottom: 2px solid #111111FF;"
]
},
"border-bottom-color": {
"description": "Specifies border color for the bottom edge of the panel.",
"examples": [
"border-bottom-color: #111111FF;"
]
},
"border-bottom-left-radius": {
"description": "Specifies border-radius for bottom-left corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-bottom-left-radius: 2px 2px;",
"border-bottom-left-radius: 5%;"
]
},
"border-bottom-right-radius": {
"description": "Specifies border-radius for bottom-right corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-bottom-right-radius: 2px 2px;",
"border-bottom-right-radius: 5%;"
]
},
"border-bottom-style": {
"description": "Specifies border style for the bottom edge of the panel.",
"examples": [
"border-bottom-style: solid;"
]
},
"border-bottom-width": {
"description": "Specifies border width for the bottom edge of the panel.",
"examples": [
"border-bottom-width: 2px;"
]
},
"border-brush": {
"description": "EXPERIMENTAL: Sets a more-complex brush for the entire border paint area (ignores normal border color).",
"examples": [
"border-brush: gradient( linear, 0% 0%, 0% 100%, from( #fbfbfbff ), to( #c0c0c0c0 ) );",
"border-brush: gradient( linear, 0% 0%, 0% 100%, from( #fbfbfbff ), color-stop( 0.3, #ebebebff ), to( #c0c0c0c0 ) );",
"border-brush: gradient( radial, 50% 50%, 0% 0%, 80% 80%, from( #00ff00ff ), to( #0000ffff ) );"
]
},
"border-color": {
"description": "Specifies border color for panel. If a single color value is set it applies to all sides, if 2 are set the first is top/bottom and the second is left/right, if all four are set then they are top, right, bottom, left in order.",
"examples": [
"border-color: #111111FF;",
"border-color: #FF0000FF #00FF00FF #0000FFFF #00FFFFFF;"
]
},
"border-left": {
"description": "Shorthand for setting the left panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-left: 2px solid #111111FF;"
]
},
"border-left-color": {
"description": "Specifies border color for the left edge of the panel.",
"examples": [
"border-left-color: #111111FF;"
]
},
"border-left-style": {
"description": "Specifies border style for the left edge of the panel.",
"examples": [
"border-left-style: solid;"
]
},
"border-left-width": {
"description": "Specifies border width for the left edge of the panel.",
"examples": [
"border-left-width: 2px;"
]
},
"border-radius": {
"description": "Shorthand to set border radius for all corners at once. Border radius rounds off corners of the panel, adjusting the border to smoothly round and also clipping background image/color and contents to the specified elliptical or circular values. In this shorthand version you may specify a single value for all raddi, or horizontal / vertical separated by the '/' character. For both horizontal and vertical you may specify 1 to 4 values in pixels or %, they will be taken in order as top-left, top-right, bottom-right, bottom-left radii values.",
"examples": [
"// 2 px circular corners on all sides\nborder-radius: 2px;",
"// Perfect circular or elliptical panel (circular if box was square)\nborder-radius: 50% / 50%;",
"// 2 px horizontal radii 4px vertical elliptical corners on all sides\nborder-radius: 2px / 4px;",
"// All corners fully specified\nborder-radius: 2px 3px 4px 2px / 2px 3px 3px 2px;"
]
},
"border-right": {
"description": "Shorthand for setting the right panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-right: 2px solid #111111FF;"
]
},
"border-right-color": {
"description": "Specifies border color for the right edge of the panel.",
"examples": [
"border-right-color: #111111FF;"
]
},
"border-right-style": {
"description": "Specifies border style for the right edge of the panel.",
"examples": [
"border-right-style: solid;"
]
},
"border-right-width": {
"description": "Specifies border width for the right edge of the panel.",
"examples": [
"border-right-width: 2px;"
]
},
"border-style": {
"description": "Specifies border style for panel. If a single style value is set it applies to all sides, if 2 are set the first is top/bottom and the second is left/right, if all four are set then they are top, right, bottom, left in order.",
"examples": [
"border-style: solid;",
"border-style: solid none solid none;"
]
},
"border-top": {
"description": "Shorthand for setting the top panel border. Specify width, style, and color. Supported styles are: solid, none.",
"examples": [
"border-top: 2px solid #111111FF;"
]
},
"border-top-color": {
"description": "Specifies border color for the top edge of the panel.",
"examples": [
"border-top-color: #111111FF;"
]
},
"border-top-left-radius": {
"description": "Specifies border-radius for top-left corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-top-left-radius: 2px 2px;",
"border-top-left-radius: 5%;"
]
},
"border-top-right-radius": {
"description": "Specifies border-radius for top-right corner which rounds off border and clips background/foreground content to rounded edge. Takes 1 or 2 values in px or %, first value is horizontal radii for elliptical corner, second is vertical radii, if only one is specified then horizontal/vertical will both be set and corner will be circular.",
"examples": [
"border-top-right-radius: 2px 2px;",
"border-top-right-radius: 5%;"
]
},
"border-top-style": {
"description": "Specifies border style for the top edge of the panel.",
"examples": [
"border-top-style: solid;"
]
},
"border-top-width": {
"description": "Specifies border width for the top edge of the panel.",
"examples": [
"border-top-width: 2px;"
]
},
"border-width": {
"description": "Specifies border width for panel. If a single width value is set it applies to all sides, if 2 are set the first is top/bottom and the second is left/right, if all four are set then they are top, right, bottom, left in order.",
"examples": [
"border-width: 1px;'",
"border-width: 20px 1px 20px 1px;"
]
},
"box-shadow": {
"description": "Specifies shadows for boxes, or inset shadows/glows. The shadow shape will match the border box for the panel,so use border-radius to affect rounding. Syntax takes optional shape 'inset', 'fill', or 'hollow', then color, horizontal offset pixels, vertical offset pixels, blur radius pixels, and spread distance in pixels. Inset means the shadow is an inner shadow/glow, fill is a a shadow behind the entire box, hollow means clipping it to outside the border area only (before offset). A negative blur radius will give a hard-edged look to the shadow, effectively a rounded outline of the same size as the blur.",
"examples": [
"box-shadow: #ffffff80 4px 4px 8px 0px; // outer, filled",
"box-shadow: hollow #ffffff80 4px 4px 8px 0px; // outer, hollow",
"box-shadow: inset #333333b0 0px 0px 8px 12px; // inner"
]
},
"brightness": {
"description": "Sets the brightness that applies to the panel and all it's children during composition. The value is a multiplier on the HSB brightness value.",
"examples": [
"brightness: 1.5;"
]
},
"clip": {
"description": "Specifies a clip region within the panel, where contents will be clipped at render time. This clipping has no impact on layout, and is fast and supported for transitions/animations. Radial clip mode takes a center point, start angle and angular width of the revealed sector.",
"examples": [
"clip: rect( 10%, 90%, 90%, 10% );",
"clip: radial( 50% %50, 0deg, 90deg );"
]
},
"color": {
"description": "Sets the foreground fill color/gradient/combination for a panel. This color is the color used to render text within the panel.",
"examples": [
"color: #FFFFFFFF;",
"color: gradient( linear, 0% 0%, 0% 100%, from( #cbcbcbff ), to( #a0a0a0a0 ) );"
]
},
"context-menu-arrow-position": {
"description": "Specifies where to point the arrow of a context menu at on this panel. The first value controls how the arrow is positioned horizontally when the context menu is to the top or bottom of the panel, and the second value controls how the arrow is positioned vertically when the context menu is to the left or right of the panel. Default is '50% 50%'.",
"examples": [
"context-menu-arrow-position: 25% 50%;"
]
},
"context-menu-body-position": {
"description": "Specifies where to position the body of a context menu relative to this panel. The first value controls how the body is aligned horizontally when the context menu is to the top or bottom of the panel, and the second value controls how the body is aligned vertically when the context menu is to the left or right of the panel. 0% means left/top aligned, 50% means center/middle aligned, and 100% means right/bottom aligned. Default is '50% 50%'.",
"examples": [
"context-menu-body-position: 50% 100%;"
]
},
"context-menu-position": {
"description": "Specifies where to position a context menu relative to this panel. Valid options include 'left', 'top', 'right', and 'bottom'. List up to 4 positions to determine the order that positions are tried if the context menu doesn't fully fit on screen. Default is 'right left bottom top'. If less than 4 positions are specified, the context menu first tries the opposite of the specified position along the same axis before switching to the other axis.",
"examples": [
"context-menu-position: bottom;",
"context-menu-position: left bottom;"
]
},
"contrast": {
"description": "Sets the contrast that applies to the panel and all it's children during composition.",
"examples": [
"contrast: 1.5;"
]
},
"flow-children": {
"description": "<Needs a description>",
"examples": []
},
"font": {
"description": "<Needs a description>",
"examples": []
},
"font-family": {
"description": "Specifies the font face to use.",
"examples": [
"font-family: Arial;",
"font-family: \"Comic Sans MS\";"
]
},
"font-size": {
"description": "Specifies the target font face height in pixels.",
"examples": [
"font-size: 12;"
]
},
"font-stretch": {
"description": "Specifies the font stretch to use. Supported values are normal, condensed, and expanded.",
"examples": [
"font-stretch: normal;",
"font-stretch: condensed;",
"font-stretch: expanded;"
]
},
"font-style": {
"description": "Specifies the font style to use. Supported values are normal, and italic",
"examples": [
"font-style: normal;"
]
},
"font-weight": {
"description": "Specifies the font weight to use. Supported values are light, thin, normal, medium, bold, and black.",
"examples": [
"font-weight: normal;",
"font-weight: bold;",
"font-weight: thin;"
]
},
"height": {
"description": "Sets the height for this panel. Possible values:\n\"fit-children\" - Panel size is set to the required size of all children (default)\n<pixels> - Any fixed pixel value (ex: \"100px\")\n<percentage> - Percentage of parent height (ex: \"100%\")\n\"fill-parent-flow( <weight> )\" - Fills to remaining parent width. If multiple children are set to this value, weight is used to determine final height. For example, if three children are set to fill-parent-flow of 1.0 and the parent is 300px tall, each child will be 100px tall. (ex: \"fill-parent-flow( 1.0 )\" )\n\"width-percentage( <percentage> )\" - Percentage of the panel's width, which allows you to enforce a particular aspect ratio. The width cannot also be height-percentage.",
"examples": []
},
"horizontal-align": {
"description": "<Needs a description>",
"examples": []
},
"hue-rotation": {
"description": "Sets the hue rotation to apply to the panel and all it's children during composition. Default of 0.0 means no adjustment, domain is in degrees.",
"examples": [
"hue-rotation: 180deg;"
]
},
"ignore-parent-flow": {
"description": "<Needs a description>",
"examples": []
},
"img-shadow": {
"description": "Specifies image shadows. The shadow shape will match the image the panel can generate,and this is only meaningful for images. Syntax takes horizontal offset pixels, vertical offset pixels, blur radius pixels, strength, and then shadow color.",
"examples": [
"img-shadow: 2px 2px 8px 3.0 #333333b0;"
]
},
"layout-position": {
"description": "Sets how the panel is positioned relative to its parent. \"static\" means position in the default way. \"fixed\" means position in the default way, but ignoring the parent's scroll offset.",
"examples": [
"layout-position: fixed;"
]
},
"letter-spacing": {
"description": "Sets letter-spacing for text in a string. Possible values:\nnormal - no manual spacing\n<pixels> - Any fixed pixel value (ex: \"1px\")",
"examples": []
},
"line-height": {
"description": "Specifies the line height (distance between top edge of line above and line below) to use for text. By default this is 'normal' and a value that matches the font-size reasonably will be used automatically. Unlike the web, we don't have a weird CSS inheritence problem with the 120% vs 1.2 styles.",
"examples": [
"line-height: normal;",
"line-height: 20px;",
"line-height: 1.2;",
"line-height: 120%;"
]
},
"margin": {
"description": "<Needs a description>",
"examples": []
},
"margin-bottom": {
"description": "<Needs a description>",
"examples": []
},
"margin-left": {
"description": "<Needs a description>",
"examples": []
},
"margin-right": {
"description": "<Needs a description>",
"examples": []
},
"margin-top": {
"description": "<Needs a description>",
"examples": []
},
"max-height": {
"description": "<Needs a description>",
"examples": []
},
"max-width": {
"description": "<Needs a description>",
"examples": []
},
"min-height": {
"description": "<Needs a description>",
"examples": []
},
"min-width": {
"description": "<Needs a description>",
"examples": []
},
"opacity": {
"description": "Sets the opacity or amount of transparency applied to the panel and all it's children during composition. Default of 1.0 means fully opaque, 0.0 means fully transparent.",
"examples": [
"opacity: 0.8;"
]
},
"opacity-brush": {
"description": "Sets an opacity brush to apply to the panel and all it's children during composition.",
"examples": [
"opacity-brush: gradient( linear, 0% 0%, 0% 100%, from( #ffffffff ), to( #ffffff00 ) );"
]
},
"opacity-mask": {
"description": "Applies an image as an opacity mask that stretches to the panel bounds and fades out it's content based on the alpha channel. The second float value is an optional opacity value for the mask itself, the image won't interpolate/cross-fade, but you can animate the opacity to fade the mask in/out. The -scroll-up, -scroll-down, and -scroll-up-down varients override the mask and apply only when the various vertical scroll scenarios affect the panel based on the overflow property.",
"examples": [
"opacity-mask: url( \"file://{images}/upper_row_mask.tga\" );",
"opacity-mask: url( \"file://{images}/upper_row_mask.tga\" ) 0.5;",
"opacity-mask-scroll-up: url( \"file://{images}/upper_row_mask_up.tga\" ) 0.5;",
"opacity-mask-scroll-down: url( \"file://{images}/upper_row_mask_down.tga\" ) 0.5;",
"opacity-mask-scroll-up-down: url( \"file://{images}/upper_row_mask_up_down.tga\" ) 0.5;"
]
},
"opacity-mask-scroll-down": {
"description": "",
"examples": []
},
"opacity-mask-scroll-up": {
"description": "",
"examples": []
},
"opacity-mask-scroll-up-down": {
"description": "",
"examples": []
},
"overflow": {
"description": "Specifies what to do with contents that overflow the available space for the panel. Possible values:\n\"squish\" - Children are squished to fit within the panel's bounds if needed (default)\n\"clip\" - Children maintain their desired size but their contents are clipped\n\"scroll\" - Children maintain their desired size and a scrollbar is added to this panel\n\n\"noclip\" - Children maintain their desired size and content is allowed to overflow this panel",
"examples": [
"overflow: squish squish; // squishes contents in horizontal and vertical directions",
"overflow: squish scroll; // scrolls contents in the Y direction"
]
},
"padding": {
"description": "<Needs a description>",
"examples": []
},
"padding-bottom": {
"description": "<Needs a description>",
"examples": []
},
"padding-left": {
"description": "<Needs a description>",
"examples": []
},
"padding-right": {
"description": "<Needs a description>",
"examples": []
},
"padding-top": {
"description": "<Needs a description>",
"examples": []
},
"perspective": {
"description": "Sets the perspective depth space available for children of the panel. Default of 1000 would mean that children at 1000px zpos are right at the viewers eye, -1000px are just out of view distance faded to nothing.",
"examples": [
"perspective: 1000;"
]
},
"perspective-origin": {
"description": "Sets the perspective origin which will be used when transforming children of this panel. This can be thought of as the camera x/y position relative to the panel.",
"examples": [
"perspective-origin: 50% 50%;"
]
},
"position": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"pre-transform-rotate2d": {
"description": "Sets 2 dimensional rotation degrees that apply to the quad for this panel prior to 3 dimensional transforms. This rotation applies without perspective and leaves the panel centered at the same spot as it started.",
"examples": [
"pre-transform-rotate2d: 45deg;"
]
},
"pre-transform-scale2d": {
"description": "Sets 2 dimensional X/Y scale factors that apply to the quad for this panel prior to 3 dimensional transforms. This scaling applies without perspective and leaves the panel centered at the same spot as it started. Default of 1.0 means no scaling, 0.5 would be half size.",
"examples": [
"pre-transform-scale2d: 0.8",
"pre-transform-scale2d: 0.4, 0.6"
]
},
"saturation": {
"description": "Sets the amount of saturation to apply to the panel and all it's children during composition. Default of 1.0 means no adjustment, 0.0 means fully desaturated to gray scale, greater than 1.0 means over-saturation.",
"examples": [
"saturation: 0.4;"
]
},
"sound": {
"description": "Specifies a sound name to play when this selector is applied.",
"examples": [
"sound: \"whoosh_in\";"
]
},
"sound-out": {
"description": "Specifies a sound name to play when this selector is removed.",
"examples": [
"sound-out: \"whoosh_out\";"
]
},
"text-align": {
"description": "Specifies the text alignment for text within this panel, defaults to left.",
"examples": [
"text-align: left;",
"text-align: right;",
"text-align: center;",
"text-align: justify;",
"text-align: justify-letter-spacing;"
]
},
"text-decoration": {
"description": "Specifies the decoration for text within this panel, defaults to none. Possible values: none, underline, line-through.",
"examples": [
"text-decoration: underline;"
]
},
"text-decoration-style": {
"description": "Specifies the decoration style for text within this panel, defaults to none. Possible values: none, dashed, dotted, wavy.",
"examples": [
"text-decoration-style: dotted;"
]
},
"text-overflow": {
"description": "Controls truncation of text that doesn't fit in a panel. \"clip\" means to simply truncate (on char boundaries), \"ellipsis\" means to end with '...', and \"shrink\" means lower the font size to fit. \"noclip\" allows the text to overflow based on the \"overflow\" style.\n\"shrink min( 10px )\" won't shrink beyond a minimum font size, clipping the overflow. \"shrink min( 10px ) ellipsis\" is similar but will ellipsis the overflow.\n\nWe default to ellipsis, which is contrary to the normal CSS spec.",
"examples": [
"text-overflow: ellipsis;",
"text-overflow: clip;",
"text-overflow: shrink;",
"text-overflow: shrink min( 10px );",
"text-overflow: shrink min( 10px ) ellipsis;",
"text-overflow: noclip;"
]
},
"text-shadow": {
"description": "Specifies text shadows. The shadow shape will match the text the panel can generate,and this is only meaningful for labels. Syntax takes horizontal offset pixels, vertical offset pixels, blur radius pixels, strength, and then shadow color.",
"examples": [
"text-shadow: 2px 2px 8px 3.0 #333333b0;"
]
},
"text-transform": {
"description": "Specifies the transform for text within this panel, defaults to none. Possible values: none, uppercase, lowercase.",
"examples": [
"text-transform: uppercase;"
]
},
"texture-sampling": {
"description": "Controls texture sampling mode for the panel. Set to alpha-only to use the textures alpha data across all 3 color channels, or point for point sampling.",
"examples": [
"texture-sampling: normal;",
"texture-sampling: alpha-only;",
"texture-sampling: point;"
]
},
"tooltip-arrow-position": {
"description": "Specifies where to point the arrow of a tooltip at on this panel. The first value controls how the arrow is positioned horizontally when the tooltip is to the top or bottom of the panel, and the second value controls how the arrow is positioned vertically when the tooltip is to the left or right of the panel. Default is '50% 50%'.",
"examples": [
"tooltip-arrow-position: 25% 50%;"
]
},
"tooltip-body-position": {
"description": "Specifies where to position the body of a tooltip relative to this panel. The first value controls how the body is aligned horizontally when the tooltip is to the top or bottom of the panel, and the second value controls how the body is aligned vertically when the tooltip is to the left or right of the panel. 0% means left/top aligned, 50% means center/middle aligned, and 100% means right/bottom aligned. Default is '50% 50%'.",
"examples": [
"tooltip-body-position: 50% 100%;"
]
},
"tooltip-position": {
"description": "Specifies where to position a tooltip relative to this panel. Valid options include 'left', 'top', 'right', and 'bottom'. List up to 4 positions to determine the order that positions are tried if the tooltip doesn't fully fit on screen. Default is 'right left bottom top'. If less than 4 positions are specified, the tooltip first tries the opposite of the specified position along the same axis before switching to the other axis.",
"examples": [
"tooltip-position: bottom;",
"tooltip-position: left bottom;"
]
},
"transform": {
"description": "Sets the transforms to apply to the panel in 2d or 3d space. You can combine various transforms (comma separated) and they will be applied in order to create a 4x4 3d transform matrix. The possible operations are: translate3d( x, y, z ), translatex( x ), translatey( y ), translatez( z ), scale3d( x, y, z), rotate3d( x, y, z ), rotatex( x ), rotatey( y ), rotatez( z ).",
"examples": [
"transform: translate3d( -100px, -100px, 0px );",
"transform: rotateZ( -32deg ) rotateX( 30deg ) translate3d( 125px, 520px, 230px );"
]
},
"transform-origin": {
"description": "Sets the transform origin about which transforms will be applied. Default is 50% 50% on the panel so a rotation/scale is centered.",
"examples": [
"transform-origin: 50% 50%"
]
},
"transition": {
"description": "Specifies which properties should transition smoothly to new values if a class/pseudo class changes the styles. Also specifies duration, timing function, and delay. Valid timing functions are: ease, ease-in, ease-out, ease-in-out, linear.",
"examples": [
"transition: position 2.0s ease-in-out 0.0s, perspective-origin 1.2s ease-in-out 0.8s;"
]
},
"transition-delay": {
"description": "Specifies the delay in seconds to use for transition properties on this panel, if more than one comma delimited value is specified then the values are applied to each property specified in 'transition-property' in order. If only one value is specified then it applies to all the properties specified in transition-property.",
"examples": [
"transition-delay: 0.0s;",
"transition-delay: 0.0s, 1.2s;"
]
},
"transition-duration": {
"description": "Specifies the durating in seconds to use for transition properties on this panel, if more than one comma delimited value is specified then the values are applied to each property specified in 'transition-property' in order. If only one value is specified then it applies to all the properties specified in transition-property.",
"examples": [
"transition-duration: 2.0s;",
"transition-duration: 2.0s, 1.2s, 1.2s, 4.0s, 2.0s;"
]
},
"transition-high-framerate": {
"description": "Specifies the desire for higher framerate during this transition, if we have control.",
"examples": [
"transition-high-framerate: true;",
"transition-high-framerate: false, true, false;"
]
},
"transition-property": {
"description": "Specifies which properties should transition smoothly to new values if a class/pseudo class changes the styles.",
"examples": [
"transition: position, transform, background-color;"
]
},
"transition-timing-function": {
"description": "Specifies the timing function to use for transition properties on this panel, if more than one comma delimited value is specified then the values are applied to each property specified in 'transition-property' in order. If only one value is specified then it applies to all the properties specified in transition-property. Valid timing functions are: ease, ease-in, ease-out, ease-in-out, linear.",
"examples": [
"transition-timing-function: ease-in-out;",
"transition-timing-function: ease-in-out, linear;",
"transition-timing-function: cubic-bezier( 0.785, 0.385, 0.555, 1.505 );"
]
},
"ui-scale": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"ui-scale-x": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"ui-scale-y": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"ui-scale-z": {
"description": "Specifies a scale to apply to this panel's layout and all descendants. This scale happens at the layout level ratherthan the bitmap level, so things like text will increase their font size rather than just bitmap scaling.",
"examples": [
"ui-scale: 150%; // 150% scaling for X, Y, and Z.",
"ui-scale: 50% 100% 150%; // 50% scaling for X, 100% for Y. 150% for Z."
]
},
"vertical-align": {
"description": "<Needs a description>",
"examples": []
},
"visibility": {
"description": "Controls if the panel is visible and is included in panel layout. Possible values:\n\"visible\" - panel is visible and included in layout (default)\n\"collapse\" - panel is invisible and not included in layout",
"examples": []
},
"wash-color": {
"description": "Specifies a 'wash' color, which means a color that will be blended over the panel and all it's children at composition time, tinting them. The alpha value of the color determines the intensity of the tinting.",
"examples": [
"wash-color: #39b0d325;"
]
},
"white-space": {
"description": "Controls white-space wrapping on rendered text. \"normal\" means wrap on whitespace, \"nowrap\" means do no wrapping at all.",
"examples": [
"white-space: normal;",
"white-space: nowrap;"
]
},
"width": {
"description": "Sets the width for this panel. Possible values:\n\"fit-children\" - Panel size is set to the required size of all children (default)\n<pixels> - Any fixed pixel value (ex: \"100px\")\n<percentage> - Percentage of parent width (ex: \"100%\")\n\"fill-parent-flow( <weight> )\" - Fills to remaining parent width. If multiple children are set to this value, weight is used to determine final width. For example, if three children are set to fill-parent-flow of 1.0 and the parent is 300px wide, each child will be 100px wide. (ex: \"fill-parent-flow( 1.0 )\" )\n\"height-percentage( <percentage> )\" - Percentage of the panel's height, which allows you to enforce a particular aspect ratio. The height cannot also be width-percentage.",
"examples": []
},
"world-blur": {
"description": "Sets the amount of blur to apply to the world / backbuffer before drawing.",
"examples": [
"world-blur: gaussian( 2.5 );",
"world-blur: gaussian( 6, 6, 1 );",
"world-blur: mipmapgaussian( 6, 6, 4 ); In this version each gaussian pass is preceded by a quarter area downsample."
]
},
"x": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"y": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"z": {
"description": "Sets the x, y, z position for a panel. Must not be in a flowing layout.",
"examples": [
"position: 3% 20px 0px;"
]
},
"z-index": {
"description": "Sets the z-index for a panel, panels will be sorted and painted in order within a parent panel. The sorting first sorts by the z-pos computed from position and transforms, then if panels have matching zpos zindex is used. z-index is different than z-pos in that it doesn't affect rendering perspective, just paint/hit-test ordering. The default z-index value is 0, and any floating point value is accepted.",
"examples": [
"z-index: 1;"
]
}
}
\ No newline at end of file
{
"AddStyle": {
"description": "Add a CSS class to a panel.",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "panoramasymbol"
}
]
},
"AddStyleAfterDelay": {
"description": "Add a CSS class to a panel after a specified delay. ",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "panoramasymbol"
},
{
"name": "pre-delay",
"type": "float"
}
]
},
"AddStyleToEachChild": {
"description": "Add a CSS class to all children of this panel.",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "panoramasymbol"
}
]
},
"AddTimedStyle": {
"description": "Add a class for a specified duration, with optional pre-delay; clears existing timers when called with same class. ",
"panelEvent": true,
"args": [
{
"name": "class",
"type": "panoramasymbol"
},
{
"name": "duration",
"type": "float"
},
{
"name": "pre-delay",
"type": "float"
}
]
},
"AsyncEvent": {
"description": "Fire another event after a delay (in seconds).",
"panelEvent": false,
"args": [
{
"name": "delay",
"type": "float"
},
{
"name": "eventToFire",
"type": "event"
}
]
},
"DOTADisplayDashboardTip": {
"description": "Tip to display, panel to attach to (default 'DefaultTipAttachment')",
"panelEvent": false,
"args": [
{
"name": "string",
"type": "string"
},
{
"name": "string",
"type": "string optional"
}
]
},
"DOTAHideAbilityTooltip": {
"description": "Hide the ability tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideBuffTooltip": {
"description": "Hide the buff tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideDroppedItemTooltip": {
"description": "Hide the dropped item tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideEconItemTooltip": {
"description": "Hide the econ item tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideProfileCardBattleCupTooltip": {
"description": "Hide the profile card / battle cup tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideProfileCardTooltip": {
"description": "Hide the profile card tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideRankTierTooltip": {
"description": "Hide the rank tier tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideRuneTooltip": {
"description": "Hide the rune tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideTextTooltip": {
"description": "Hide the text tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideTI10EventGameTooltip": {
"description": "Hide the ti10 event game tooltip",
"panelEvent": true,
"args": []
},
"DOTAHideTitleImageTextTooltip": {
"description": "Hide the title image text tooltip.",
"panelEvent": true,
"args": []
},
"DOTAHideTitleTextTooltip": {
"description": "Hide the title text tooltip.",
"panelEvent": true,
"args": []
},
"DOTALiveStreamUpcoming": {
"description": "Notify change in RTime32 we expect the stream to start",
"panelEvent": true,
"args": [
{
"name": "time",
"type": "uint32"
}
]
},
"DOTALiveStreamVideoLive": {
"description": "Notify change in stream state (we detected the stream going live)",
"panelEvent": true,
"args": [
{
"name": "isLive",
"type": "bool"
}
]
},
"DOTALiveStreamVideoPlaying": {
"description": "Notify change in video state (is it pointing at a live stream page or not)",
"panelEvent": true,
"args": [
{
"name": "isShowingVideo",
"type": "bool"
}
]
},
"DOTAShowAbilityInventoryItemTooltip": {
"description": "Show tooltip for an item in the entityIndex NPC's inventory.",
"panelEvent": true,
"args": [
{
"name": "entityIndex",
"type": "int32"
},
{
"name": "inventorySlot",
"type": "int32"
}
]
},
"DOTAShowAbilityShopItemTooltip": {
"description": "Show tooltip for an item in the entityIndex NPC's shop.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "guideName",
"type": "string"
},
{
"name": "entityIndex",
"type": "int32"
}
]
},
"DOTAShowAbilityTooltip": {
"description": "Show an ability tooltip.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
}
]
},
"DOTAShowAbilityTooltipForEntityIndex": {
"description": "Show an ability tooltip. Level information comes from the entity specified by the entityIndex.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "entityIndex",
"type": "int32"
}
]
},
"DOTAShowAbilityTooltipForGuide": {
"description": "Show an ability tooltip annotated with a particular guide's info.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "guideName",
"type": "string"
}
]
},
"DOTAShowAbilityTooltipForHero": {
"description": "Show an ability tooltip for the specified hero.",
"panelEvent": true,
"args": [
{
"name": "abilityName",
"type": "string"
},
{
"name": "heroid",
"type": "int32"
},
{
"name": "bool",
"type": "boo"
}
]
}
}
\ No newline at end of file
{
"CDOTABaseAbility_BotScript": {
"description": "",
"functions": {
"CanAbilityBeUpgraded": {
"args": [],
"description": "Can this Ability be upgraded?",
"return": "bool"
},
"CanBeDisassembled": {
"args": [],
"description": "Can this item be disassembled?",
"return": "bool"
},
"GetAOERadius": {
"args": [],
"description": "Gets the AoE radius of this Ability.",
"return": "int"
},
"GetAbilityDamage": {
"args": [],
"description": "Get the basic damage value of this Ability.",
"return": "int"
},
"GetAutoCastState": {
"args": [],
"description": "Get the autocast state of this Ability.",
"return": "bool"
},
"GetBehavior": {
"args": [],
"description": "Get the behavior type of this Ability.",
"return": "int"
},
"GetCastPoint": {
"args": [],
"description": "Gets the cast point of this Ability.",
"return": "float"
},
"GetCastRange": {
"args": [],
"description": "Gets the cast range of this Ability.",
"return": "int"
},
"GetCaster": {
"args": [],
"description": "Get the unit who owns this Ability.",
"return": "handle"
},
"GetChannelTime": {
"args": [],
"description": "How long does this Ability channel?",
"return": "float"
},
"GetChannelledManaCostPerSecond": {
"args": [],
"description": "Get the mana cost per second of this Ability while channeling it.",
"return": "int"
},
"GetCooldown": {
"args": [],
"description": "Get the cooldown of this Abilty.",
"return": "float"
},
"GetCooldownTimeRemaining": {
"args": [],
"description": "Get the cooldown time remaning for this Ability.",
"return": "float"
},
"GetCurrentCharges": {
"args": [],
"description": "Get the current charges of this item.",
"return": "int"
},
"GetDamageType": {
"args": [],
"description": "Get the damage type of this Ability.",
"return": "int"
},
"GetDuration": {
"args": [],
"description": "How long does this Ability persist once cast?",
"return": "float"
},
"GetEstimatedDamageToTarget": {
"arg_names": [
"hTarget",
"fDuration",
"nDamageTypes"
],
"args": [
"handle",
"float",
"int"
],
"description": "How much damage would this ability do to the specified target over the specified duration?",
"return": "int"
},
"GetHeroLevelRequiredToUpgrade": {
"args": [],
"description": "Get the Hero level required to upgrade this Ability.",
"return": "int"
},
"GetInitialCharges": {
"args": [],
"description": "Get the initial charges of this item.",
"return": "int"
},
"GetLevel": {
"args": [],
"description": "Get the current level of the Ability.",
"return": "int"
},
"GetManaCost": {
"args": [],
"description": "Get the mana cost of this Ability.",
"return": "int"
},
"GetMaxLevel": {
"args": [],
"description": "Get the max level of this Ability.",
"return": "int"
},
"GetName": {
"args": [],
"description": "Get the name of this Ability.",
"return": "cstring"
},
"GetPowerTreadsStat": {
"args": [],
"description": "Get the stat these power treads are set to.",
"return": "int"
},
"GetSecondaryCharges": {
"args": [],
"description": "Get the secondary charges of this item.",
"return": "int"
},
"GetSpecialValueFloat": {
"arg_names": [
"pszKey"
],
"args": [
"cstring"
],
"description": "Get an int internal data parameter of this Abilty.",
"return": "float"
},
"GetSpecialValueInt": {
"arg_names": [
"pszKey"
],
"args": [
"cstring"
],
"description": "Get an int internal data parameter of this Abilty.",
"return": "int"
},
"GetTargetFlags": {
"args": [],
"description": "Get the flags for this Ability.",
"return": "int"
},
"GetTargetTeam": {
"args": [],
"description": "Get the target team of this Ability.",
"return": "int"
},
"GetTargetType": {
"args": [],
"description": "Get the target type of this Ability.",
"return": "int"
},
"GetToggleState": {
"args": [],
"description": "Get the toggle state of this Ability.",
"return": "bool"
},
"IsActivated": {
"args": [],
"description": "Is this Ability currently activated?",
"return": "bool"
},
"IsChanneling": {
"args": [],
"description": "Is this Ability being channelled?",
"return": "bool"
},
"IsCombineLocked": {
"args": [],
"description": "Is this item combine locked?",
"return": "bool"
},
"IsCooldownReady": {
"args": [],
"description": "Is this Ability off cooldown?",
"return": "bool"
},
"IsFullyCastable": {
"args": [],
"description": "Does the caster have the mana to use this Ability, and is it off cooldown?",
"return": "bool"
},
"IsHidden": {
"args": [],
"description": "Is this Ability currently hidden?",
"return": "bool"
},
"IsInAbilityPhase": {
"args": [],
"description": "Is this Ability being cast?",
"return": "bool"
},
"IsItem": {
"args": [],
"description": "Is this an Item?",
"return": "bool"
},
"IsOwnersManaEnough": {
"args": [],
"description": "Does the caster have the mana to use this Ability?",
"return": "bool"
},
"IsPassive": {
"args": [],
"description": "Is this a passive Ability?",
"return": "bool"
},
"IsStealable": {
"args": [],
"description": "Can this Ability be stolen?",
"return": "bool"
},
"IsStolen": {
"args": [],
"description": "Is this the stolen version of an Ability?",
"return": "bool"
},
"IsTalent": {
"args": [],
"description": "Is this a talent ability?",
"return": "bool"
},
"IsToggle": {
"args": [],
"description": "Is this a toggled Ability?",
"return": "bool"
},
"IsTrained": {
"args": [],
"description": "Is this Ability Trained at all?",
"return": "bool"
},
"IsUltimate": {
"args": [],
"description": "Is this an ultimate ability?",
"return": "bool"
},
"ProcsMagicStick": {
"args": [],
"description": "Does this Ability proc Magic Stick?",
"return": "bool"
},
"ToggleAutoCast": {
"args": [],
"description": "Toggle the autocast state of this Ability.",
"return": "void"
}
}
},
"CDOTA_Bot_Script": {
"description": "A unit referenced from Dota bot script",
"functions": {
"ActionImmediate_Buyback": {
"args": [],
"description": "Tell a bot to buy back into the game.",
"return": "void"
},
"ActionImmediate_Chat": {
"arg_names": [
"pszMessage",
"bAllChat"
],
"args": [
"cstring",
"bool"
],
"description": "Tell a bot to say something.",
"return": "void"
},
"ActionImmediate_Courier": {
"arg_names": [
"hCourier",
"eAction"
],
"args": [
"handle",
"int"
],
"description": "Tell a bot to use the courier.",
"return": "bool"
},
"ActionImmediate_DisassembleItem": {
"arg_names": [
"hItem"
],
"args": [
"handle"
],
"description": "Tell a bot to disassemble an item.",
"return": "void"
},
"ActionImmediate_Glyph": {
"args": [],
"description": "Tell a bot to use glyph.",
"return": "void"
},
"ActionImmediate_LevelAbility": {
"arg_names": [
"pszAbilityName"
],
"args": [
"cstring"
],
"description": "Tell a bot to level up a specific ability.",
"return": "void"
},
"ActionImmediate_Ping": {
"arg_names": [
"x",
"y",
"bNormalPing"
],
"args": [
"float",
"float",
"bool"
],
"description": "Tell a bot to ping a location.",
"return": "void"
},
"ActionImmediate_PurchaseItem": {
"arg_names": [
"pszItemName"
],
"args": [
"cstring"
],
"description": "Tell a bot to purchase an item by name.",
"return": "<unknown>"
},
"ActionImmediate_SellItem": {
"arg_names": [
"hItem"
],
"args": [
"handle"
],
"description": "Tell a bot to sell an item.",
"return": "void"
},
"ActionImmediate_SetItemCombineLock": {
"arg_names": [
"hItem",
"bLocked"
],
"args": [
"handle",
"bool"
],
"description": "Set the combine state on an item.",
"return": "void"
},
"ActionImmediate_SwapItems": {
"arg_names": [
"nSlot1",
"nSlot2"
],
"args": [
"int",
"int"
],
"description": "Tell a bot to swap the contents of two item slots.",
"return": "void"
},
"ActionPush_AttackMove": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to attack-move a location.",
"return": "void"
},
"ActionPush_AttackUnit": {
"arg_names": [
"hTarget",
"bOnce"
],
"args": [
"handle",
"bool"
],
"description": "Tell a bot to attack a target unit. If bOnce is specified, it will auto-pop the action after one attack.",
"return": "void"
},
"ActionPush_Delay": {
"arg_names": [
"fDelay"
],
"args": [
"float"
],
"description": "Tell a bot to delay for the specified number of seconds.",
"return": "void"
},
"ActionPush_DropItem": {
"arg_names": [
"hItem",
"location"
],
"args": [
"handle",
"vector"
],
"description": "Tell a bot to drop an item.",
"return": "void"
},
"ActionPush_MoveDirectly": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to move to a location.",
"return": "void"
},
"ActionPush_MovePath": {
"arg_names": [
"hPathTable"
],
"args": [
"handle"
],
"description": "Tell a bot to move along a specified path.",
"return": "void"
},
"ActionPush_MoveToLocation": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to bot-pathfind to a location.",
"return": "void"
},
"ActionPush_MoveToUnit": {
"arg_names": [
"hTarget"
],
"args": [
"handle"
],
"description": "Tell a bot to move to a unit and start following them.",
"return": "void"
},
"ActionPush_PickUpItem": {
"arg_names": [
"hItem"
],
"args": [
"handle"
],
"description": "Tell a bot to pick up a dropped item.",
"return": "void"
},
"ActionPush_PickUpRune": {
"arg_names": [
"nRune"
],
"args": [
"int"
],
"description": "Tell a bot to pick up a rune.",
"return": "void"
},
"ActionPush_UseAbility": {
"arg_names": [
"hAbility"
],
"args": [
"handle"
],
"description": "Tell a bot to use a non-targeted ability.",
"return": "void"
},
"ActionPush_UseAbilityOnEntity": {
"arg_names": [
"hAbility",
"hTarget"
],
"args": [
"handle",
"handle"
],
"description": "Tell a bot to use a unit-targeted ability.",
"return": "void"
},
"ActionPush_UseAbilityOnLocation": {
"arg_names": [
"hAbility",
"location"
],
"args": [
"handle",
"vector"
],
"description": "Tell a bot to use a location-targeted ability.",
"return": "void"
},
"ActionPush_UseAbilityOnTree": {
"arg_names": [
"hAbility",
"iTree"
],
"args": [
"handle",
"int"
],
"description": "Tell a bot to use a tree-targeted ability.",
"return": "void"
},
"ActionPush_UseShrine": {
"arg_names": [
"hShrine"
],
"args": [
"handle"
],
"description": "Tell a bot to use the specified shrine.",
"return": "void"
},
"ActionQueue_AttackMove": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to attack-move a location.",
"return": "void"
},
"ActionQueue_AttackUnit": {
"arg_names": [
"hTarget",
"bOnce"
],
"args": [
"handle",
"bool"
],
"description": "Tell a bot to attack a target unit. If bOnce is specified, it will auto-pop the action after one attack.",
"return": "void"
},
"ActionQueue_Delay": {
"arg_names": [
"fDelay"
],
"args": [
"float"
],
"description": "Tell a bot to delay for the specified number of seconds.",
"return": "void"
},
"ActionQueue_DropItem": {
"arg_names": [
"hItem",
"location"
],
"args": [
"handle",
"vector"
],
"description": "Tell a bot to drop an item.",
"return": "void"
},
"ActionQueue_MoveDirectly": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to move to a location.",
"return": "void"
},
"ActionQueue_MovePath": {
"arg_names": [
"hPathTable"
],
"args": [
"handle"
],
"description": "Tell a bot to move along a specified path.",
"return": "void"
},
"ActionQueue_MoveToLocation": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to bot-pathfind to a location.",
"return": "void"
},
"ActionQueue_MoveToUnit": {
"arg_names": [
"hTarget"
],
"args": [
"handle"
],
"description": "Tell a bot to move to a unit and start following them.",
"return": "void"
},
"ActionQueue_PickUpItem": {
"arg_names": [
"hItem"
],
"args": [
"handle"
],
"description": "Tell a bot to pick up a dropped item.",
"return": "void"
},
"ActionQueue_PickUpRune": {
"arg_names": [
"nRune"
],
"args": [
"int"
],
"description": "Tell a bot to pick up a rune.",
"return": "void"
},
"ActionQueue_UseAbility": {
"arg_names": [
"hAbility"
],
"args": [
"handle"
],
"description": "Tell a bot to use a non-targeted ability.",
"return": "void"
},
"ActionQueue_UseAbilityOnEntity": {
"arg_names": [
"hAbility",
"hTarget"
],
"args": [
"handle",
"handle"
],
"description": "Tell a bot to use a unit-targeted ability.",
"return": "void"
},
"ActionQueue_UseAbilityOnLocation": {
"arg_names": [
"hAbility",
"location"
],
"args": [
"handle",
"vector"
],
"description": "Tell a bot to use a location-targeted ability.",
"return": "void"
},
"ActionQueue_UseAbilityOnTree": {
"arg_names": [
"hAbility",
"iTree"
],
"args": [
"handle",
"int"
],
"description": "Tell a bot to use a tree-targeted ability.",
"return": "void"
},
"ActionQueue_UseShrine": {
"arg_names": [
"hShrine"
],
"args": [
"handle"
],
"description": "Tell a bot to use the specified shrine.",
"return": "void"
},
"Action_AttackMove": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to attack-move a location.",
"return": "void"
},
"Action_AttackUnit": {
"arg_names": [
"hTarget",
"bOnce"
],
"args": [
"handle",
"bool"
],
"description": "Tell a bot to attack a target unit. If bOnce is specified, it will auto-pop the action after one attack.",
"return": "void"
},
"Action_ClearActions": {
"arg_names": [
"bStop"
],
"args": [
"bool"
],
"description": "Clear current action stack and return to idle. Optionally stop in place.",
"return": "void"
},
"Action_Delay": {
"arg_names": [
"fDelay"
],
"args": [
"float"
],
"description": "Tell a bot to delay for the specified number of seconds.",
"return": "void"
},
"Action_DropItem": {
"arg_names": [
"hItem",
"location"
],
"args": [
"handle",
"vector"
],
"description": "Tell a bot to drop an item.",
"return": "void"
},
"Action_MoveDirectly": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to move to a location.",
"return": "void"
},
"Action_MovePath": {
"arg_names": [
"hPathTable"
],
"args": [
"handle"
],
"description": "Tell a bot to move along a specified path.",
"return": "void"
},
"Action_MoveToLocation": {
"arg_names": [
"location"
],
"args": [
"vector"
],
"description": "Tell a bot to bot-pathfind to a location.",
"return": "void"
},
"Action_MoveToUnit": {
"arg_names": [
"hTarget"
],
"args": [
"handle"
],
"description": "Tell a bot to move to a unit and start following them.",
"return": "void"
},
"Action_PickUpItem": {
"arg_names": [
"hItem"
],
"args": [
"handle"
],
"description": "Tell a bot to pick up a dropped item.",
"return": "void"
},
"Action_PickUpRune": {
"arg_names": [
"nRune"
],
"args": [
"int"
],
"description": "Tell a bot to pick up a rune.",
"return": "void"
},
"Action_UseAbility": {
"arg_names": [
"hAbility"
],
"args": [
"handle"
],
"description": "Tell a bot to use a non-targeted ability.",
"return": "void"
},
"Action_UseAbilityOnEntity": {
"arg_names": [
"hAbility",
"hTarget"
],
"args": [
"handle",
"handle"
],
"description": "Tell a bot to use a unit-targeted ability.",
"return": "void"
},
"Action_UseAbilityOnLocation": {
"arg_names": [
"hAbility",
"location"
],
"args": [
"handle",
"vector"
],
"description": "Tell a bot to use a location-targeted ability.",
"return": "void"
},
"Action_UseAbilityOnTree": {
"arg_names": [
"hAbility",
"iTree"
],
"args": [
"handle",
"int"
],
"description": "Tell a bot to use a tree-targeted ability.",
"return": "void"
},
"Action_UseShrine": {
"arg_names": [
"hShrine"
],
"args": [
"handle"
],
"description": "Tell a bot to use the specified shrine.",
"return": "void"
},
"CanBeSeen": {
"args": [],
"description": "Can we currently see this bot? Always true for bots on our team. Many functions will not return valid data without this being true.",
"return": "bool"
},
"DistanceFromFountain": {
"args": [],
"description": "Gets the unit's straight-line distance from the team's fountain (0 is in the fountain).",
"return": "int"
},
"DistanceFromSecretShop": {
"args": [],
"description": "Gets the unit's straight-line distance from the closest secret shop (0 is in a secret shop).",
"return": "int"
},
"DistanceFromSideShop": {
"args": [],
"description": "Gets the unit's straight-line distance from the closest side shop (0 is in a side shop).",
"return": "int"
},
"FindAoELocation": {
"arg_names": [
"bEnemies",
"bHeroes",
"vBaseLocation",
"nMaxDistanceFromBase",
"nRadius",
"fTimeInFuture",
"nMaxHealth"
],
"args": [
"bool",
"bool",
"vector",
"int",
"int",
"float",
"int"
],
"description": "Finds optimal AoE location that overlaps heroes/creeps.",
"return": "variant"
},
"FindItemSlot": {
"arg_names": [
"pszItemName"
],
"args": [
"cstring"
],
"description": "Get the slot a named item is in",
"return": "int"
},
"GetAbilityByName": {
"arg_names": [
"pszAbilityName"
],
"args": [
"cstring"
],
"description": "Get a bot's ability by name",
"return": "handle"
},
"GetAbilityInSlot": {
"arg_names": [
"iAbility"
],
"args": [
"int"
],
"description": "Get a bot's ability by slot",
"return": "handle"
},
"GetAbilityPoints": {
"args": [],
"description": "Get the number of ability points the bot can spend.",
"return": "int"
},
"GetAbilityTarget": {
"args": [],
"description": "Get the unit being targeted by an ability.",
"return": "handle"
},
"GetAcquisitionRange": {
"args": [],
"description": "Get the range at which this unit will start to attack a target.",
"return": "int"
},
"GetActiveMode": {
"args": [],
"description": "Get the active mode ID",
"return": "int"
},
"GetActiveModeDesire": {
"args": [],
"description": "Get the desire value of the active mode",
"return": "float"
},
"GetActualIncomingDamage": {
"arg_names": [
"nDamage",
"eDamageType"
],
"args": [
"int",
"int"
],
"description": "Gets the incoming damage value after reductions.",
"return": "int"
},
"GetAnimActivity": {
"args": [],
"description": "Get the action the unit is currently performing.",
"return": "int"
},
"GetAnimCycle": {
"args": [],
"description": "Get the amount the unit is through its current animation.",
"return": "float"
},
"GetArmor": {
"args": [],
"description": "Gets the armor of the unit.",
"return": "float"
},
"GetAssignedLane": {
"args": [],
"description": "Get the lane that a unit is assigned to.",
"return": "int"
},
"GetAttackCombatProficiency": {
"arg_names": [
"hTarget"
],
"args": [
"handle"
],
"description": "Gets the damage multiplier for attacks on the specified unit.",
"return": "float"
},
"GetAttackDamage": {
"args": [],
"description": "Gets the total attack damage.",
"return": "float"
},
"GetAttackPoint": {
"args": [],
"description": "Gets the attack point of the unit.",
"return": "float"
},
"GetAttackProjectileSpeed": {
"args": [],
"description": "Get the speed of the attack projectile for ranged units.",
"return": "int"
},
"GetAttackRange": {
"args": [],
"description": "Gets the attack range of the unit.",
"return": "int"
},
"GetAttackSpeed": {
"args": [],
"description": "Gets the attack speed of the unit.",
"return": "float"
},
"GetAttackTarget": {
"args": [],
"description": "Get the unit being attacked.",
"return": "handle"
},
"GetAttributeValue": {
"arg_names": [
"nAttribute"
],
"args": [
"int"
],
"description": "Gets the evasion resist of the unit.",
"return": "int"
},
"GetBaseDamage": {
"args": [],
"description": "Gets the base attack damage of the unit.",
"return": "float"
},
"GetBaseDamageVariance": {
"args": [],
"description": "Gets the variance of the base attack damage.",
"return": "float"
},
"GetBaseHealthRegen": {
"args": [],
"description": "Get a bot's base health regen rate.",
"return": "float"
},
"GetBaseManaRegen": {
"args": [],
"description": "Get a bot's base mana regen rate.",
"return": "float"
},
"GetBaseMovementSpeed": {
"args": [],
"description": "Get a bot's base movement speed.",
"return": "int"
},
"GetBoundingRadius": {
"args": [],
"description": "Get the size of the unit's bounding radius.",
"return": "float"
},
"GetBountyGoldMax": {
"args": [],
"description": "Gets the maximum amount of gold rewarded by killing this unit.",
"return": "int"
},
"GetBountyGoldMin": {
"args": [],
"description": "Gets the minimum amount of gold rewarded by killing this unit.",
"return": "int"
},
"GetBountyXP": {
"args": [],
"description": "Gets the amount of XP rewarded by killing this unit.",
"return": "int"
},
"GetBuybackCooldown": {
"args": [],
"description": "Get the current cooldown on buying back.",
"return": "float"
},
"GetBuybackCost": {
"args": [],
"description": "Get the current cost of buying back.",
"return": "int"
},
"GetCourierValue": {
"args": [],
"description": "Get the value of items on the courier owned by this bot.",
"return": "int"
},
"GetCurrentActionType": {
"args": [],
"description": "Get the type of the current action.",
"return": "int"
},
"GetCurrentActiveAbility": {
"args": [],
"description": "Get the ability this bot is currently casting.",
"return": "handle"
},
"GetCurrentMovementSpeed": {
"args": [],
"description": "Get a bot's current movement speed.",
"return": "int"
},
"GetCurrentVisionRange": {
"args": [],
"description": "Get the unit's current vision range.",
"return": "int"
},
"GetDayTimeVisionRange": {
"args": [],
"description": "Get the unit's vision range during the day.",
"return": "int"
},
"GetDefendCombatProficiency": {
"arg_names": [
"hAttacker"
],
"args": [
"handle"
],
"description": "Gets the damage multiplier for attacks from the specified unit.",
"return": "float"
},
"GetDenies": {
"args": [],
"description": "Get the deny count of this bot.",
"return": "int"
},
"GetDifficulty": {
"args": [],
"description": "Get the bot's difficulty settings.",
"return": "int"
},
"GetEstimatedDamageToTarget": {
"arg_names": [
"bCurrentlyAvailable",
"hTarget",
"fDuration",
"nDamageTypes"
],
"args": [
"bool",
"handle",
"float",
"int"
],
"description": "Get an estimate of how much damage a bot can do in the specified timeframe. Takes into account item and ability usage based on current mana/cooldowns for allies, for enemies it assumes all items/abilities are available. Uses no positional/situation info. Basically asks 'How scary is X to Y?'.",
"return": "int"
},
"GetEvasion": {
"args": [],
"description": "Gets the evasion resist of the unit.",
"return": "float"
},
"GetExtrapolatedLocation": {
"arg_names": [
"fDelay"
],
"args": [
"float"
],
"description": "Extrapolates their location in the future, based on past movement.",
"return": "vector"
},
"GetFacing": {
"args": [],
"description": "Get a bot's facing (0-359).",
"return": "int"
},
"GetGold": {
"args": [],
"description": "Get the bot's current gold.",
"return": "int"
},
"GetGroundHeight": {
"args": [],
"description": "Get a bot's height value.",
"return": "int"
},
"GetHealth": {
"args": [],
"description": "Get a bot's current health.",
"return": "int"
},
"GetHealthRegen": {
"args": [],
"description": "Get a bot's health regen rate.",
"return": "float"
},
"GetHealthRegenPerStr": {
"args": [],
"description": "Get amount of health regen given per unit of strength.",
"return": "float"
},
"GetIncomingTrackingProjectiles": {
"args": [],
"description": "Gets the location and ability of projectiles incoming at this unit.",
"return": "variant"
},
"GetItemInSlot": {
"arg_names": [
"nSlot"
],
"args": [
"int"
],
"description": "Get a bot's item by slot",
"return": "handle"
},
"GetItemSlotType": {
"arg_names": [
"nSlot"
],
"args": [
"int"
],
"description": "Get the type of the specified item slot",
"return": "int"
},
"GetLastAttackTime": {
"args": [],
"description": "Gets the last attack time of the unit.",
"return": "float"
},
"GetLastHits": {
"args": [],
"description": "Get the last hit count of this bot.",
"return": "int"
},
"GetLevel": {
"args": [],
"description": "Get the bot's current level.",
"return": "int"
},
"GetLocation": {
"args": [],
"description": "Geta bot's 2D location.",
"return": "vector"
},
"GetMagicResist": {
"args": [],
"description": "Gets the magic resist of the unit.",
"return": "float"
},
"GetMana": {
"args": [],
"description": "Get a bot's current mana.",
"return": "int"
},
"GetManaRegen": {
"args": [],
"description": "Get a bot's mana regen rate.",
"return": "float"
},
"GetManaRegenPerInt": {
"args": [],
"description": "Get amount of mana regen given per unit of intellect.",
"return": "float"
},
"GetMaxHealth": {
"args": [],
"description": "Get a bot's maximum health.",
"return": "int"
},
"GetMaxMana": {
"args": [],
"description": "Get a bot's maximum mana.",
"return": "int"
},
"GetModifierAuxiliaryUnits": {
"arg_names": [
"nModifier"
],
"args": [
"int"
],
"description": "Get a table of a modifier's auxiliary units.",
"return": "variant"
},
"GetModifierByName": {
"arg_names": [
"pszModifierName"
],
"args": [
"cstring"
],
"description": "Get the modifier index of a specified modifier.",
"return": "int"
},
"GetModifierList": {
"args": [],
"description": "Gets a table of all the modifiers on this unit.",
"return": "variant"
},
"GetModifierName": {
"arg_names": [
"nModifier"
],
"args": [
"int"
],
"description": "Get a specific modifier name.",
"return": "cstring"
},
"GetModifierRemainingDuration": {
"arg_names": [
"nModifier"
],
"args": [
"int"
],
"description": "Get a modifier's remaining duration.",
"return": "float"
},
"GetModifierStackCount": {
"arg_names": [
"nModifier"
],
"args": [
"int"
],
"description": "Get a modifier's stack count.",
"return": "int"
},
"GetMostRecentPing": {
"args": [],
"description": "Get the most recent ping by this player.",
"return": "variant"
},
"GetMovementDirectionStability": {
"args": [],
"description": "Indicates how consistent the unit's movement has been over the last few seconds. 1 is a straight line, 0 is serpentine.",
"return": "float"
},
"GetNearbyBarracks": {
"arg_names": [
"nRadius",
"bEnemies"
],
"args": [
"int",
"bool"
],
"description": "Get all nearby barracks.",
"return": "variant"
},
"GetNearbyCreeps": {
"arg_names": [
"nRadius",
"bEnemies"
],
"args": [
"int",
"bool"
],
"description": "Get nearby creeps (lane or neutral) that we can see.",
"return": "variant"
},
"GetNearbyFillers": {
"arg_names": [
"nRadius",
"bEnemies"
],
"args": [
"int",
"bool"
],
"description": "Get all nearby filler buildings.",
"return": "variant"
},
"GetNearbyHeroes": {
"arg_names": [
"nRadius",
"bEnemies",
"eBotMode"
],
"args": [
"int",
"bool",
"int"
],
"description": "Get nearby heroes that we can see in a mode. Can specify a bot mode when querying allies. BOT_MODE_NONE does no mode filtering.",
"return": "variant"
},
"GetNearbyLaneCreeps": {
"arg_names": [
"nRadius",
"bEnemies"
],
"args": [
"int",
"bool"
],
"description": "Get nearby lane creeps that we can see.",
"return": "variant"
},
"GetNearbyNeutralCreeps": {
"arg_names": [
"nRadius"
],
"args": [
"int"
],
"description": "Get nearby neutral creeps that we can see.",
"return": "variant"
},
"GetNearbyShrines": {
"arg_names": [
"nRadius",
"bEnemies"
],
"args": [
"int",
"bool"
],
"description": "Get all nearby shrines.",
"return": "variant"
},
"GetNearbyTowers": {
"arg_names": [
"nRadius",
"bEnemies"
],
"args": [
"int",
"bool"
],
"description": "Get all nearby towers.",
"return": "variant"
},
"GetNearbyTrees": {
"arg_names": [
"nRadius"
],
"args": [
"int"
],
"description": "Get nearby trees.",
"return": "variant"
},
"GetNetWorth": {
"args": [],
"description": "Get the bot's current net worth.",
"return": "int"
},
"GetNextItemPurchaseValue": {
"args": [],
"description": "Gets the purchase value of the next item the unit wants to purchase.",
"return": "int"
},
"GetNightTimeVisionRange": {
"args": [],
"description": "Get the unit's vision range during the night.",
"return": "int"
},
"GetOffensivePower": {
"args": [],
"description": "Get the unit's current offensive power.",
"return": "float"
},
"GetPlayerID": {
"args": [],
"description": "Get the unit's controlling player id.",
"return": "int"
},
"GetPrimaryAttribute": {
"args": [],
"description": "Gets the evasion resist of the unit.",
"return": "int"
},
"GetQueuedActionType": {
"arg_names": [
"nQueuedAction"
],
"args": [
"int"
],
"description": "Get the specified action in the queue.",
"return": "int"
},
"GetRawOffensivePower": {
"args": [],
"description": "Get the unit's raw offensive power.",
"return": "float"
},
"GetRemainingLifespan": {
"args": [],
"description": "Get remaining lifespan of a unit.",
"return": "float"
},
"GetRespawnTime": {
"args": [],
"description": "Get the time in seconds until a bot respawns.",
"return": "float"
},
"GetSecondsPerAttack": {
"args": [],
"description": "Gets the number of seconds per attack that a unit can do.",
"return": "float"
},
"GetSlowDuration": {
"arg_names": [
"bCurrentlyAvailable"
],
"args": [
"bool"
],
"description": "Get the duration of available slows.",
"return": "float"
},
"GetSpellAmp": {
"args": [],
"description": "Gets the spell damage amplification of the unit.",
"return": "float"
},
"GetStashValue": {
"args": [],
"description": "Get the value of the items in the bot's stash.",
"return": "int"
},
"GetStunDuration": {
"arg_names": [
"bCurrentlyAvailable"
],
"args": [
"bool"
],
"description": "Get the duration of available stuns.",
"return": "float"
},
"GetTalent": {
"arg_names": [
"nLevel",
"nSide"
],
"args": [
"int",
"int"
],
"description": "Get one of the talents at the specified level",
"return": "handle"
},
"GetTarget": {
"args": [],
"description": "Get the current target of this bot.",
"return": "handle"
},
"GetTeam": {
"args": [],
"description": "Get the unit's team.",
"return": "int"
},
"GetUnitName": {
"args": [],
"description": "Get the unit's name.",
"return": "cstring"
},
"GetVelocity": {
"args": [],
"description": "Get the velocity the unit has moved over the last two seconds.",
"return": "vector"
},
"GetXPNeededToLevel": {
"args": [],
"description": "Get the amount of XP needed to level up.",
"return": "int"
},
"HasBlink": {
"arg_names": [
"bCurrentlyAvailable"
],
"args": [
"bool"
],
"description": "Does the bot have a blink available?",
"return": "bool"
},
"HasBuyback": {
"args": [],
"description": "Can the bot buy back?",
"return": "bool"
},
"HasInvisibility": {
"arg_names": [
"bCurrentlyAvailable"
],
"args": [
"bool"
],
"description": "Does the bot have invisibility available?",
"return": "bool"
},
"HasMinistunOnAttack": {
"args": [],
"description": "Does the bot have ministuns on attack?",
"return": "bool"
},
"HasModifier": {
"arg_names": [
"pszModifierName"
],
"args": [
"cstring"
],
"description": "Does the bot have the specified modifier?",
"return": "bool"
},
"HasScepter": {
"args": [],
"description": "Does the unit have Aghanim's Scepter?",
"return": "bool"
},
"HasSilence": {
"arg_names": [
"bCurrentlyAvailable"
],
"args": [
"bool"
],
"description": "Does the bot have a silence available?",
"return": "bool"
},
"IsAlive": {
"args": [],
"description": "Is a bot alive?",
"return": "bool"
},
"IsAncientCreep": {
"args": [],
"description": "Is this unit an ancient creep?",
"return": "bool"
},
"IsAttackImmune": {
"args": [],
"description": "Is the unit attack immune?",
"return": "bool"
},
"IsBlind": {
"args": [],
"description": "Is the unit blind?",
"return": "bool"
},
"IsBlockDisabled": {
"args": [],
"description": "Is the unit block disabled?",
"return": "bool"
},
"IsBot": {
"args": [],
"description": "Is this unit owned by a bot?",
"return": "bool"
},
"IsBuilding": {
"args": [],
"description": "Is this unit a building?",
"return": "bool"
},
"IsCastingAbility": {
"args": [],
"description": "Is this bot currently casting an ability?",
"return": "bool"
},
"IsChanneling": {
"args": [],
"description": "Is this bot currently channeling an ability?",
"return": "bool"
},
"IsCourier": {
"args": [],
"description": "Is this a courier?",
"return": "bool"
},
"IsCreep": {
"args": [],
"description": "Is this unit a creep?",
"return": "bool"
},
"IsDisarmed": {
"args": [],
"description": "Is the unit disarmed?",
"return": "bool"
},
"IsDominated": {
"args": [],
"description": "Is the unit dominated?",
"return": "bool"
},
"IsEvadeDisabled": {
"args": [],
"description": "Is the unit evade disabled?",
"return": "bool"
},
"IsFacingLocation": {
"arg_names": [
"vLocation",
"nDegrees"
],
"args": [
"vector",
"int"
],
"description": "Is the unit facing this location, within the specified degree tolerance?",
"return": "bool"
},
"IsFort": {
"args": [],
"description": "Is this unit a fort (the main ancient building)?",
"return": "bool"
},
"IsHero": {
"args": [],
"description": "Is this unit a hero?",
"return": "bool"
},
"IsHexed": {
"args": [],
"description": "Is the unit hexed?",
"return": "bool"
},
"IsIllusion": {
"args": [],
"description": "Is this unit an illusion?",
"return": "bool"
},
"IsInvisible": {
"args": [],
"description": "Is the unit invisible?",
"return": "bool"
},
"IsInvulnerable": {
"args": [],
"description": "Is the unit invulnerable?",
"return": "bool"
},
"IsMagicImmune": {
"args": [],
"description": "Is the unit magic immune?",
"return": "bool"
},
"IsMinion": {
"args": [],
"description": "Is this a bot's minion?",
"return": "bool"
},
"IsMuted": {
"args": [],
"description": "Is the unit muted?",
"return": "bool"
},
"IsNightmared": {
"args": [],
"description": "Is the unit nightmared?",
"return": "bool"
},
"IsRooted": {
"args": [],
"description": "Is the unit rooted?",
"return": "bool"
},
"IsSilenced": {
"args": [],
"description": "Is the unit silenced?",
"return": "bool"
},
"IsSpeciallyDeniable": {
"args": [],
"description": "Is the unit specially deniable?",
"return": "bool"
},
"IsStunned": {
"args": [],
"description": "Is the unit stunned?",
"return": "bool"
},
"IsTower": {
"args": [],
"description": "Is this unit a tower?",
"return": "bool"
},
"IsUnableToMiss": {
"args": [],
"description": "Is the unit unable to miss?",
"return": "bool"
},
"IsUsingAbility": {
"args": [],
"description": "Is this bot currently using an ability?",
"return": "bool"
},
"NumModifiers": {
"args": [],
"description": "Get the number of modifiers on this bot.",
"return": "int"
},
"NumQueuedActions": {
"args": [],
"description": "Get the number actions currently queued.",
"return": "int"
},
"SetNextItemPurchaseValue": {
"arg_names": [
"nGold"
],
"args": [
"int"
],
"description": "Sets the value of the next item the unit wants to purchase.",
"return": "void"
},
"SetTarget": {
"arg_names": [
""
],
"args": [
"handle"
],
"description": "Set the current target of this bot. Causes no actions, but is used for coordinating between modes and ability/item usage.",
"return": "void"
},
"TimeSinceDamagedByAnyHero": {
"args": [],
"description": "How long as it been since the unit was damaged by any enemy?",
"return": "float"
},
"TimeSinceDamagedByCreep": {
"args": [],
"description": "How long as it been since the unit was damaged by a creep?",
"return": "float"
},
"TimeSinceDamagedByHero": {
"arg_names": [
"hHero"
],
"args": [
"handle"
],
"description": "How long as it been since the unit was damaged by an specific enemy?",
"return": "float"
},
"TimeSinceDamagedByPlayer": {
"arg_names": [
"nPlayerID"
],
"args": [
"int"
],
"description": "How long as it been since the unit was damaged by an specific player?",
"return": "float"
},
"TimeSinceDamagedByTower": {
"args": [],
"description": "How long as it been since the unit was damaged by a tower?",
"return": "float"
},
"UsingItemBreaksInvisibility": {
"args": [],
"description": "Will using an item break invisibiilty?",
"return": "bool"
},
"WasRecentlyDamagedByAnyHero": {
"arg_names": [
"fTime"
],
"args": [
"float"
],
"description": "Was the unit recently damaged by any enemy?",
"return": "bool"
},
"WasRecentlyDamagedByCreep": {
"arg_names": [
"fTime"
],
"args": [
"float"
],
"description": "Was the unit recently damaged by a creep?",
"return": "bool"
},
"WasRecentlyDamagedByHero": {
"arg_names": [
"hHero",
"fTime"
],
"args": [
"handle",
"float"
],
"description": "Was the unit recently damaged by an specific enemy?",
"return": "bool"
},
"WasRecentlyDamagedByPlayer": {
"arg_names": [
"nPlayerID",
"fTime"
],
"args": [
"int",
"float"
],
"description": "Was the unit recently damaged by an specific player?",
"return": "bool"
},
"WasRecentlyDamagedByTower": {
"arg_names": [
"fTime"
],
"args": [
"float"
],
"description": "Was the unit recently damaged by a tower?",
"return": "bool"
}
}
},
"CDOTA_TeamCommander": {
"description": "A Dota Bot Team Commander",
"functions": {}
},
"Global": {
"functions": {
"AddAvoidanceZone": {
"args": [
"vector",
"float"
],
"description": "Adds a global avoidance zone for use with GeneratePath.",
"return": "int"
},
"AddConditionalAvoidanceZone": {
"args": [
"vector",
"handle"
],
"description": "Adds a global avoidance zone for use with GeneratePath, with a conditional function for whether it's active or not.",
"return": "int"
},
"CMBanHero": {
"args": [
"cstring"
],
"description": "Ban a hero in Captain's mode by name.",
"return": "void"
},
"CMPickHero": {
"args": [
"cstring"
],
"description": "Pick a hero in Captain's mode by name.",
"return": "void"
},
"Clamp": {
"args": [
"float",
"float",
"float"
],
"description": "Clamps the value between the two supplied values.",
"return": "float"
},
"CreateHTTPRequest": {
"args": [
"cstring"
],
"description": "Create a localhost HTTP request.",
"return": "handle"
},
"CreateRemoteHTTPRequest": {
"args": [
"cstring"
],
"description": "Create a remote HTTP request.",
"return": "handle"
},
"DebugDrawCircle": {
"args": [
"vector",
"float",
"int",
"int",
"int"
],
"description": "Draws a circle for one frame",
"return": "void"
},
"DebugDrawLine": {
"args": [
"vector",
"vector",
"int",
"int",
"int"
],
"description": "Draws a line for one frame",
"return": "void"
},
"DebugDrawText": {
"args": [
"float",
"float",
"cstring",
"int",
"int",
"int"
],
"description": "Draws text for one frame",
"return": "void"
},
"DebugPause": {
"args": [],
"description": "Pauses the game",
"return": "void"
},
"DotaTime": {
"args": [],
"description": "Gets the game time -- matches the in-game clock. Pauses with game pause.",
"return": "float"
},
"GameTime": {
"args": [],
"description": "Gets the time since the hero picking phase started. Pauses with game pause.",
"return": "float"
},
"GeneratePath": {
"args": [
"vector",
"vector",
"handle",
"handle"
],
"description": "Generates a path, avoiding the specified zones.",
"return": "int"
},
"GetAllTrees": {
"args": [],
"description": "Returns a table with all tree locations",
"return": "variant"
},
"GetAmountAlongLane": {
"args": [
"int",
"vector"
],
"description": "Calculates the amount along the lane (and distance from the lane) for the specified location.",
"return": "variant"
},
"GetAncient": {
"args": [
"int"
],
"description": "Gets the ancient on the specified team.",
"return": "handle"
},
"GetAvoidanceZones": {
"args": [],
"description": "Gets an array\t of all visible avoidance zones in a {ability, location, radius} table.",
"return": "variant"
},
"GetBarracks": {
"args": [
"int",
"int"
],
"description": "Gets the specified barracks on the specified team.",
"return": "handle"
},
"GetBot": {
"args": [],
"description": "Get the bot on which script is currently being run.",
"return": "handle"
},
"GetBotAbilityByHandle": {
"args": [
"uint"
],
"description": "Get the bot ability specified by the supplied handle.",
"return": "handle"
},
"GetBotByHandle": {
"args": [
"uint"
],
"description": "Get the bot specified by the supplied handle.",
"return": "handle"
},
"GetCMCaptain": {
"args": [],
"description": "Gets player ID of the Captain's Mode captain.",
"return": "int"
},
"GetCMPhaseTimeRemaining": {
"args": [],
"description": "Get the amount of time remaining in the current Captain's Mode phase.",
"return": "float"
},
"GetCourier": {
"args": [
"int"
],
"description": "Gets a specific courier.",
"return": "handle"
},
"GetCourierState": {
"args": [
"handle"
],
"description": "Gets a specific courier's current state.",
"return": "int"
},
"GetDefendLaneDesire": {
"args": [
"int"
],
"description": "Gets the team-wide desire to defend a lane.",
"return": "float"
},
"GetDroppedItemList": {
"args": [],
"description": "Returns the array of items that we can see that have been dropped on the ground.",
"return": "variant"
},
"GetFarmLaneDesire": {
"args": [
"int"
],
"description": "Gets the team-wide desire to farm a lane.",
"return": "float"
},
"GetGameMode": {
"args": [],
"description": "Gets the game mode type.",
"return": "int"
},
"GetGameState": {
"args": [],
"description": "Gets the current state of the game.",
"return": "int"
},
"GetGameStateTimeRemaining": {
"args": [],
"description": "Gets how much time is remaining in the current game state.",
"return": "float"
},
"GetGlyphCooldown": {
"args": [],
"description": "Returns the cooldown on glyph (0 if available).",
"return": "float"
},
"GetHeightLevel": {
"args": [
"vector"
],
"description": "Get the height level (1 through 5) of the specified location.",
"return": "int"
},
"GetHeroAssists": {
"args": [
"int"
],
"description": "Gets the assists of the hero controlled by the specified PlayerID.",
"return": "int"
},
"GetHeroDeaths": {
"args": [
"int"
],
"description": "Gets the deaths of the hero controlled by the specified PlayerID.",
"return": "int"
},
"GetHeroKills": {
"args": [
"int"
],
"description": "Gets the kills of the hero controlled by the specified PlayerID.",
"return": "int"
},
"GetHeroLastSeenInfo": {
"args": [
"int"
],
"description": "Gets the {location, time} of the last seen PlayerID unit.",
"return": "variant"
},
"GetHeroLevel": {
"args": [
"int"
],
"description": "Gets the level of the hero controlled by the specified PlayerID.",
"return": "int"
},
"GetHeroPickState": {
"args": [],
"description": "Gets the current phase of hero picking.",
"return": "int"
},
"GetIncomingTeleports": {
"args": [],
"description": "Gets a table of all the teleports that are visibly happening.",
"return": "variant"
},
"GetItemComponents": {
"args": [
"cstring"
],
"description": "Returns a table of items required to make the specified item.",
"return": "variant"
},
"GetItemCost": {
"args": [
"cstring"
],
"description": "Get the cost of an item by name.",
"return": "int"
},
"GetItemStockCount": {
"args": [
"cstring"
],
"description": "Get the current stock count for the named item.",
"return": "int"
},
"GetLaneFrontAmount": {
"args": [
"int",
"int",
"bool"
],
"description": "Gets the lane front amount (0.0 - 1.0) of the specified team's creeps along the specified lane. Optionally can ignore towers for front calculation.",
"return": "float"
},
"GetLaneFrontLocation": {
"args": [
"int",
"int",
"float"
],
"description": "Gets the location of the lane front for the specified team and lane. Always ignores towers. Has a third parameter for a distance delta from the front.",
"return": "vector"
},
"GetLinearProjectileByHandle": {
"args": [
"int"
],
"description": "Gets a specific linear projectile's info using its handle.",
"return": "variant"
},
"GetLinearProjectiles": {
"args": [],
"description": "Gets an array of all visible linear projectiles in a {ability, location, velocity, radius} table.",
"return": "variant"
},
"GetLocationAlongLane": {
"args": [
"int",
"float"
],
"description": "Calculates the location of the specified amount (0.0 - 1.0) along the specified lane.",
"return": "vector"
},
"GetNeutralSpawners": {
"args": [],
"description": "Get the location of all neutral spawners, and what side of the river they're on.",
"return": "variant"
},
"GetNumCouriers": {
"args": [],
"description": "Gets the number of couriers on the team.",
"return": "int"
},
"GetOpposingTeam": {
"args": [],
"description": "Gets the team that you're fighting against.",
"return": "int"
},
"GetPushLaneDesire": {
"args": [
"int"
],
"description": "Gets the team-wide desire to push a lane.",
"return": "float"
},
"GetRoamDesire": {
"args": [],
"description": "Gets the team-wide desire to roam to a target.",
"return": "float"
},
"GetRoamTarget": {
"args": [],
"description": "Gets the target of the team-wide roam desire.",
"return": "handle"
},
"GetRoshanDesire": {
"args": [],
"description": "Gets the team-wide desire to kill Roshan.",
"return": "float"
},
"GetRoshanKillTime": {
"args": [],
"description": "Returns the last time that Roshan was killed.",
"return": "float"
},
"GetRuneSpawnLocation": {
"args": [
"int"
],
"description": "Gets the spawn location of the specified rune.",
"return": "vector"
},
"GetRuneStatus": {
"args": [
"int"
],
"description": "Gets the status of the specified rune.",
"return": "<unknown>"
},
"GetRuneTimeSinceSeen": {
"args": [
"int"
],
"description": "Gets the time since we've seen the specified rune.",
"return": "float"
},
"GetRuneType": {
"args": [
"int"
],
"description": "Gets the type of the specified rune, if known.",
"return": "int"
},
"GetScriptDirectory": {
"args": [],
"description": "Get the directory from which bot scripts are being run.",
"return": "cstring"
},
"GetSelectedHeroName": {
"args": [
"int"
],
"description": "Gets the name of the hero selected by a player.",
"return": "cstring"
},
"GetShopLocation": {
"args": [
"int",
"int"
],
"description": "Get location for the specified shop.",
"return": "vector"
},
"GetShrine": {
"args": [
"int",
"int"
],
"description": "Gets the specified shrine on the specified team.",
"return": "handle"
},
"GetShrineCooldown": {
"args": [
"handle"
],
"description": "Gets the healing cooldown of the specified shrine.",
"return": "float"
},
"GetTeam": {
"args": [],
"description": "Get the team on which script is currently being run.",
"return": "int"
},
"GetTeamForPlayer": {
"args": [
"int"
],
"description": "Gets the team of the specified player.",
"return": "int"
},
"GetTeamMember": {
"args": [
"int"
],
"description": "Get a member of a team.",
"return": "handle"
},
"GetTeamPlayers": {
"args": [
"int"
],
"description": "Gets a list of Player IDs for the specified team.",
"return": "variant"
},
"GetTimeOfDay": {
"args": [],
"description": "Gets the curren time of day (0.0 is midnight, 0.5 is noon).",
"return": "float"
},
"GetTower": {
"args": [
"int",
"int"
],
"description": "Gets the specified tower on the specified team.",
"return": "handle"
},
"GetTowerAttackTarget": {
"args": [
"int",
"int"
],
"description": "Gets the attack target of the specified tower on the specified team.",
"return": "handle"
},
"GetTreeLocation": {
"args": [
"int"
],
"description": "Gets the location of the specified tree.",
"return": "vector"
},
"GetUnitList": {
"args": [
"int"
],
"description": "Gets a list of visible units.",
"return": "variant"
},
"GetUnitPotentialValue": {
"args": [
"handle",
"vector",
"float"
],
"description": "Gets the 0-255 potential-value location of a hero at the specified location and radius.",
"return": "int"
},
"GetUnitToLocationDistance": {
"args": [
"handle",
"vector"
],
"description": "Get the distance between a unit and a location.",
"return": "float"
},
"GetUnitToLocationDistanceSqr": {
"args": [
"handle",
"vector"
],
"description": "Get the squared distance between a unit and a location.",
"return": "float"
},
"GetUnitToUnitDistance": {
"args": [
"handle",
"handle"
],
"description": "Get the distance between two units.",
"return": "float"
},
"GetUnitToUnitDistanceSqr": {
"args": [
"handle",
"handle"
],
"description": "Get the squared distance between two units.",
"return": "float"
},
"GetWorldBounds": {
"args": [],
"description": "Gets the minimum and maximum bounds of the world.",
"return": "variant"
},
"InstallCastCallback": {
"args": [
"int",
"handle"
],
"description": "Install a callback for whenever the specified player's units cast an ability or use an item.",
"return": "void"
},
"InstallChatCallback": {
"args": [
"handle"
],
"description": "Install a callback for whenever a player chats.",
"return": "void"
},
"InstallCourierDeathCallback": {
"args": [
"handle"
],
"description": "Install a callback for whenever a courier is killed.",
"return": "void"
},
"InstallDamageCallback": {
"args": [
"int",
"handle"
],
"description": "Install a callback for whenever the specified player's units take damage.",
"return": "void"
},
"InstallRoshanDeathCallback": {
"args": [
"handle"
],
"description": "Install a callback for whenever Roshan is killed.",
"return": "void"
},
"IsCMBannedHero": {
"args": [
"cstring"
],
"description": "Has the named hero been banned in Captain's Mode?",
"return": "bool"
},
"IsCMPickedHero": {
"args": [
"int",
"cstring"
],
"description": "Has the named hero been picked in Captain's Mode?",
"return": "bool"
},
"IsCourierAvailable": {
"args": [],
"description": "Asks if a courier is available to use.",
"return": "bool"
},
"IsFlyingCourier": {
"args": [
"handle"
],
"description": "Gets whether a courier is a flying courier.",
"return": "bool"
},
"IsHeroAlive": {
"args": [
"int"
],
"description": "Asks if the specified PlayerID is alive.",
"return": "bool"
},
"IsInCMBanPhase": {
"args": [],
"description": "Is Captain's Mode in Ban phase?",
"return": "bool"
},
"IsInCMPickPhase": {
"args": [],
"description": "Is Captain's Mode in Pick phase?",
"return": "bool"
},
"IsItemPurchasedFromSecretShop": {
"args": [
"cstring"
],
"description": "Can the named item can be purchased from the secret shop?",
"return": "bool"
},
"IsItemPurchasedFromSideShop": {
"args": [
"cstring"
],
"description": "Can the named item can be purchased from the side shop?",
"return": "bool"
},
"IsLocationPassable": {
"args": [
"vector"
],
"description": "Can the specified location currently be pathed through?",
"return": "bool"
},
"IsLocationVisible": {
"args": [
"vector"
],
"description": "Can the specified location currently be seen?",
"return": "bool"
},
"IsPlayerBot": {
"args": [
"int"
],
"description": "Asks if a specific Player ID is a bot.",
"return": "bool"
},
"IsPlayerInHeroSelectionControl": {
"args": [
"int"
],
"description": "Is this player allowed to currently allowed to select a hero?",
"return": "bool"
},
"IsRadiusVisible": {
"args": [
"vector",
"float"
],
"description": "Can the specified circle currently be seen?",
"return": "bool"
},
"IsShrineHealing": {
"args": [
"handle"
],
"description": "Gets whether the Shrine is actively healing or not.",
"return": "bool"
},
"IsTeamPlayer": {
"args": [
"int"
],
"description": "Asks if a specific Player ID is a member of Radiant or Dire.",
"return": "bool"
},
"Max": {
"args": [
"float",
"float"
],
"description": "Returns the smaller of the two supplied values.",
"return": "float"
},
"Min": {
"args": [
"float",
"float"
],
"description": "Returns the smaller of the two supplied values.",
"return": "float"
},
"PointToLineDistance": {
"args": [
"vector",
"vector",
"vector"
],
"description": "Get the squared distance between a unit and a location.",
"return": "variant"
},
"RandomFloat": {
"args": [
"float",
"float"
],
"description": "Get a random float within a range",
"return": "float"
},
"RandomInt": {
"args": [
"int",
"int"
],
"description": "Get a random int within a range",
"return": "int"
},
"RandomVector": {
"args": [
"float"
],
"description": "Get a random 2D vector of the specified length.",
"return": "vector"
},
"RealTime": {
"args": [],
"description": "Gets the real-world time since the app has started. Does not pause with game pause.",
"return": "float"
},
"RemapVal": {
"args": [
"float",
"float",
"float",
"float",
"float"
],
"description": "Linearly remaps X from A,B to C,D",
"return": "float"
},
"RemapValClamped": {
"args": [
"float",
"float",
"float",
"float",
"float"
],
"description": "Linearly remaps X from A,B to C,D, clamping to C,D",
"return": "float"
},
"RemoveAvoidanceZone": {
"args": [
"int"
],
"description": "Adds a global avoidance zone for use with GeneratePath.",
"return": "void"
},
"RollPercentage": {
"args": [
"int"
],
"description": "Rolls a number from 1 to 100 and returns true if the roll is less than or equal to the number specified",
"return": "bool"
},
"SelectHero": {
"args": [
"int",
"cstring"
],
"description": "Selects a hero for a player.",
"return": "void"
},
"SetCMCaptain": {
"args": [
"int"
],
"description": "Sets a player to be Captain's Mode captain.",
"return": "void"
}
}
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"Global": {
"functions": {
"GetHeroLevel": {
"arg_names": [
"nPlayerID"
]
}
}
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"DOTA_GameState" : {
"DOTA_GAMERULES_STATE_INIT" : 0,
"DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD" : 1,
"DOTA_GAMERULES_STATE_HERO_SELECTION" : 3,
"DOTA_GAMERULES_STATE_STRATEGY_TIME" : 4,
"DOTA_GAMERULES_STATE_PRE_GAME" : 7,
"DOTA_GAMERULES_STATE_GAME_IN_PROGRESS" : 8,
"DOTA_GAMERULES_STATE_POST_GAME" : 9,
"DOTA_GAMERULES_STATE_DISCONNECT" : 10,
"DOTA_GAMERULES_STATE_TEAM_SHOWCASE" : 5,
"DOTA_GAMERULES_STATE_CUSTOM_GAME_SETUP" : 2,
"DOTA_GAMERULES_STATE_WAIT_FOR_MAP_TO_LOAD" : 6,
"DOTA_GAMERULES_STATE_LAST" : 0
},
"DOTA_GC_TEAM" : {
"DOTA_GC_TEAM_GOOD_GUYS" : 0,
"DOTA_GC_TEAM_BAD_GUYS" : 1,
"DOTA_GC_TEAM_BROADCASTER" : 2,
"DOTA_GC_TEAM_SPECTATOR" : 3,
"DOTA_GC_TEAM_PLAYER_POOL" : 4,
"DOTA_GC_TEAM_NOTEAM" : 5
},
"DOTAConnectionState_t" : {
"DOTA_CONNECTION_STATE_UNKNOWN" : 0,
"DOTA_CONNECTION_STATE_NOT_YET_CONNECTED" : 1,
"DOTA_CONNECTION_STATE_CONNECTED" : 2,
"DOTA_CONNECTION_STATE_DISCONNECTED" : 3,
"DOTA_CONNECTION_STATE_ABANDONED" : 4,
"DOTA_CONNECTION_STATE_LOADING" : 5,
"DOTA_CONNECTION_STATE_FAILED" : 6
},
"dotaunitorder_t" : {
"DOTA_UNIT_ORDER_NONE" : 0,
"DOTA_UNIT_ORDER_MOVE_TO_POSITION" : 1,
"DOTA_UNIT_ORDER_MOVE_TO_TARGET" : 2,
"DOTA_UNIT_ORDER_ATTACK_MOVE" : 3,
"DOTA_UNIT_ORDER_ATTACK_TARGET" : 4,
"DOTA_UNIT_ORDER_CAST_POSITION" : 5,
"DOTA_UNIT_ORDER_CAST_TARGET" : 6,
"DOTA_UNIT_ORDER_CAST_TARGET_TREE" : 7,
"DOTA_UNIT_ORDER_CAST_NO_TARGET" : 8,
"DOTA_UNIT_ORDER_CAST_TOGGLE" : 9,
"DOTA_UNIT_ORDER_HOLD_POSITION" : 10,
"DOTA_UNIT_ORDER_TRAIN_ABILITY" : 11,
"DOTA_UNIT_ORDER_DROP_ITEM" : 12,
"DOTA_UNIT_ORDER_GIVE_ITEM" : 13,
"DOTA_UNIT_ORDER_PICKUP_ITEM" : 14,
"DOTA_UNIT_ORDER_PICKUP_RUNE" : 15,
"DOTA_UNIT_ORDER_PURCHASE_ITEM" : 16,
"DOTA_UNIT_ORDER_SELL_ITEM" : 17,
"DOTA_UNIT_ORDER_DISASSEMBLE_ITEM" : 18,
"DOTA_UNIT_ORDER_MOVE_ITEM" : 19,
"DOTA_UNIT_ORDER_CAST_TOGGLE_AUTO" : 20,
"DOTA_UNIT_ORDER_STOP" : 21,
"DOTA_UNIT_ORDER_TAUNT" : 22,
"DOTA_UNIT_ORDER_BUYBACK" : 23,
"DOTA_UNIT_ORDER_GLYPH" : 24,
"DOTA_UNIT_ORDER_EJECT_ITEM_FROM_STASH" : 25,
"DOTA_UNIT_ORDER_CAST_RUNE" : 26,
"DOTA_UNIT_ORDER_PING_ABILITY" : 27,
"DOTA_UNIT_ORDER_MOVE_TO_DIRECTION" : 28,
"DOTA_UNIT_ORDER_PATROL" : 29,
"DOTA_UNIT_ORDER_VECTOR_TARGET_POSITION" : 30,
"DOTA_UNIT_ORDER_RADAR" : 31,
"DOTA_UNIT_ORDER_SET_ITEM_COMBINE_LOCK" : 32,
"DOTA_UNIT_ORDER_CONTINUE" : 33
},
"DOTA_OVERHEAD_ALERT" : {
"OVERHEAD_ALERT_GOLD" : 0,
"OVERHEAD_ALERT_DENY" : 1,
"OVERHEAD_ALERT_CRITICAL" : 2,
"OVERHEAD_ALERT_XP" : 3,
"OVERHEAD_ALERT_BONUS_SPELL_DAMAGE" : 4,
"OVERHEAD_ALERT_MISS" : 5,
"OVERHEAD_ALERT_DAMAGE" : 6,
"OVERHEAD_ALERT_EVADE" : 7,
"OVERHEAD_ALERT_BLOCK" : 8,
"OVERHEAD_ALERT_BONUS_POISON_DAMAGE" : 9,
"OVERHEAD_ALERT_HEAL" : 10,
"OVERHEAD_ALERT_MANA_ADD" : 11,
"OVERHEAD_ALERT_MANA_LOSS" : 12,
"OVERHEAD_ALERT_LAST_HIT_EARLY" : 13,
"OVERHEAD_ALERT_LAST_HIT_CLOSE" : 14,
"OVERHEAD_ALERT_LAST_HIT_MISS" : 15,
"OVERHEAD_ALERT_MAGICAL_BLOCK" : 16,
"OVERHEAD_ALERT_INCOMING_DAMAGE" : 17,
"OVERHEAD_ALERT_OUTGOING_DAMAGE" : 18
},
"DOTA_HeroPickState" : {
"DOTA_HEROPICK_STATE_NONE" : 0,
"DOTA_HEROPICK_STATE_AP_SELECT" : 1,
"DOTA_HEROPICK_STATE_SD_SELECT" : 2,
"DOTA_HEROPICK_STATE_INTRO_SELECT_UNUSED" : 3,
"DOTA_HEROPICK_STATE_RD_SELECT_UNUSED" : 4,
"DOTA_HEROPICK_STATE_CM_INTRO" : 5,
"DOTA_HEROPICK_STATE_CM_CAPTAINPICK" : 6,
"DOTA_HEROPICK_STATE_CM_BAN1" : 7,
"DOTA_HEROPICK_STATE_CM_BAN2" : 8,
"DOTA_HEROPICK_STATE_CM_BAN3" : 9,
"DOTA_HEROPICK_STATE_CM_BAN4" : 10,
"DOTA_HEROPICK_STATE_CM_BAN5" : 11,
"DOTA_HEROPICK_STATE_CM_BAN6" : 12,
"DOTA_HEROPICK_STATE_CM_BAN7" : 13,
"DOTA_HEROPICK_STATE_CM_BAN8" : 14,
"DOTA_HEROPICK_STATE_CM_BAN9" : 15,
"DOTA_HEROPICK_STATE_CM_BAN10" : 16,
"DOTA_HEROPICK_STATE_CM_SELECT1" : 17,
"DOTA_HEROPICK_STATE_CM_SELECT2" : 18,
"DOTA_HEROPICK_STATE_CM_SELECT3" : 19,
"DOTA_HEROPICK_STATE_CM_SELECT4" : 20,
"DOTA_HEROPICK_STATE_CM_SELECT5" : 21,
"DOTA_HEROPICK_STATE_CM_SELECT6" : 22,
"DOTA_HEROPICK_STATE_CM_SELECT7" : 23,
"DOTA_HEROPICK_STATE_CM_SELECT8" : 24,
"DOTA_HEROPICK_STATE_CM_SELECT9" : 25,
"DOTA_HEROPICK_STATE_CM_SELECT10" : 26,
"DOTA_HEROPICK_STATE_CM_PICK" : 27,
"DOTA_HEROPICK_STATE_AR_SELECT" : 28,
"DOTA_HEROPICK_STATE_MO_SELECT" : 29,
"DOTA_HEROPICK_STATE_FH_SELECT" : 30,
"DOTA_HEROPICK_STATE_CD_INTRO" : 31,
"DOTA_HEROPICK_STATE_CD_CAPTAINPICK" : 32,
"DOTA_HEROPICK_STATE_CD_BAN1" : 33,
"DOTA_HEROPICK_STATE_CD_BAN2" : 34,
"DOTA_HEROPICK_STATE_CD_BAN3" : 35,
"DOTA_HEROPICK_STATE_CD_BAN4" : 36,
"DOTA_HEROPICK_STATE_CD_BAN5" : 37,
"DOTA_HEROPICK_STATE_CD_BAN6" : 38,
"DOTA_HEROPICK_STATE_CD_SELECT1" : 39,
"DOTA_HEROPICK_STATE_CD_SELECT2" : 40,
"DOTA_HEROPICK_STATE_CD_SELECT3" : 41,
"DOTA_HEROPICK_STATE_CD_SELECT4" : 42,
"DOTA_HEROPICK_STATE_CD_SELECT5" : 43,
"DOTA_HEROPICK_STATE_CD_SELECT6" : 44,
"DOTA_HEROPICK_STATE_CD_SELECT7" : 45,
"DOTA_HEROPICK_STATE_CD_SELECT8" : 46,
"DOTA_HEROPICK_STATE_CD_SELECT9" : 47,
"DOTA_HEROPICK_STATE_CD_SELECT10" : 48,
"DOTA_HEROPICK_STATE_CD_PICK" : 49,
"DOTA_HEROPICK_STATE_BD_SELECT" : 50,
"DOTA_HERO_PICK_STATE_ABILITY_DRAFT_SELECT" : 51,
"DOTA_HERO_PICK_STATE_ARDM_SELECT" : 52,
"DOTA_HEROPICK_STATE_ALL_DRAFT_SELECT" : 53,
"DOTA_HERO_PICK_STATE_CUSTOMGAME_SELECT" : 54,
"DOTA_HEROPICK_STATE_SELECT_PENALTY" : 55,
"DOTA_HEROPICK_STATE_COUNT" : 56
},
"DOTATeam_t" : {
"DOTA_TEAM_FIRST" : 2,
"DOTA_TEAM_GOODGUYS" : 2,
"DOTA_TEAM_BADGUYS" : 3,
"DOTA_TEAM_NEUTRALS" : 4,
"DOTA_TEAM_NOTEAM" : 5,
"DOTA_TEAM_CUSTOM_1" : 6,
"DOTA_TEAM_CUSTOM_2" : 7,
"DOTA_TEAM_CUSTOM_3" : 8,
"DOTA_TEAM_CUSTOM_4" : 9,
"DOTA_TEAM_CUSTOM_5" : 10,
"DOTA_TEAM_CUSTOM_6" : 11,
"DOTA_TEAM_CUSTOM_7" : 12,
"DOTA_TEAM_CUSTOM_8" : 13,
"DOTA_TEAM_COUNT" : 14,
"DOTA_TEAM_CUSTOM_MIN" : 6,
"DOTA_TEAM_CUSTOM_MAX" : 13,
"DOTA_TEAM_CUSTOM_COUNT" : 8
},
"DOTA_RUNES" : {
"DOTA_RUNE_INVALID" : -1,
"DOTA_RUNE_DOUBLEDAMAGE" : 0,
"DOTA_RUNE_HASTE" : 1,
"DOTA_RUNE_ILLUSION" : 2,
"DOTA_RUNE_INVISIBILITY" : 3,
"DOTA_RUNE_REGENERATION" : 4,
"DOTA_RUNE_BOUNTY" : 5,
"DOTA_RUNE_ARCANE" : 6,
"DOTA_RUNE_COUNT" : 7
},
"DOTA_UNIT_TARGET_TEAM" : {
"DOTA_UNIT_TARGET_TEAM_NONE" : 0,
"DOTA_UNIT_TARGET_TEAM_FRIENDLY" : 1,
"DOTA_UNIT_TARGET_TEAM_ENEMY" : 2,
"DOTA_UNIT_TARGET_TEAM_CUSTOM" : 4,
"DOTA_UNIT_TARGET_TEAM_BOTH" : 3
},
"DOTA_UNIT_TARGET_TYPE" : {
"DOTA_UNIT_TARGET_NONE" : 0,
"DOTA_UNIT_TARGET_HERO" : 1,
"DOTA_UNIT_TARGET_CREEP" : 2,
"DOTA_UNIT_TARGET_BUILDING" : 4,
"DOTA_UNIT_TARGET_COURIER" : 16,
"DOTA_UNIT_TARGET_OTHER" : 32,
"DOTA_UNIT_TARGET_TREE" : 64,
"DOTA_UNIT_TARGET_CUSTOM" : 128,
"DOTA_UNIT_TARGET_BASIC" : 18,
"DOTA_UNIT_TARGET_ALL" : 55
},
"DOTA_UNIT_TARGET_FLAGS" : {
"DOTA_UNIT_TARGET_FLAG_NONE" : 0,
"DOTA_UNIT_TARGET_FLAG_RANGED_ONLY" : 2,
"DOTA_UNIT_TARGET_FLAG_MELEE_ONLY" : 4,
"DOTA_UNIT_TARGET_FLAG_DEAD" : 8,
"DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES" : 16,
"DOTA_UNIT_TARGET_FLAG_NOT_MAGIC_IMMUNE_ALLIES" : 32,
"DOTA_UNIT_TARGET_FLAG_INVULNERABLE" : 64,
"DOTA_UNIT_TARGET_FLAG_FOW_VISIBLE" : 128,
"DOTA_UNIT_TARGET_FLAG_NO_INVIS" : 256,
"DOTA_UNIT_TARGET_FLAG_NOT_ANCIENTS" : 512,
"DOTA_UNIT_TARGET_FLAG_PLAYER_CONTROLLED" : 1024,
"DOTA_UNIT_TARGET_FLAG_NOT_DOMINATED" : 2048,
"DOTA_UNIT_TARGET_FLAG_NOT_SUMMONED" : 4096,
"DOTA_UNIT_TARGET_FLAG_NOT_ILLUSIONS" : 8192,
"DOTA_UNIT_TARGET_FLAG_NOT_ATTACK_IMMUNE" : 16384,
"DOTA_UNIT_TARGET_FLAG_MANA_ONLY" : 32768,
"DOTA_UNIT_TARGET_FLAG_CHECK_DISABLE_HELP" : 65536,
"DOTA_UNIT_TARGET_FLAG_NOT_CREEP_HERO" : 131072,
"DOTA_UNIT_TARGET_FLAG_OUT_OF_WORLD" : 262144,
"DOTA_UNIT_TARGET_FLAG_NOT_NIGHTMARED" : 524288,
"DOTA_UNIT_TARGET_FLAG_PREFER_ENEMIES" : 1048576
},
"DOTALimits_t" : {
"DOTA_MAX_PLAYERS" : 64,
"DOTA_MAX_TEAM" : 24,
"DOTA_MAX_PLAYER_TEAMS" : 10,
"DOTA_MAX_TEAM_PLAYERS" : 24,
"DOTA_MAX_SPECTATOR_TEAM_SIZE" : 40,
"DOTA_MAX_SPECTATOR_LOBBY_SIZE" : 15,
"DOTA_DEFAULT_MAX_TEAM" : 5,
"DOTA_DEFAULT_MAX_TEAM_PLAYERS" : 10
},
"DOTAInventoryFlags_t" : {
"DOTA_INVENTORY_ALLOW_NONE" : 0,
"DOTA_INVENTORY_ALLOW_MAIN" : 1,
"DOTA_INVENTORY_ALLOW_STASH" : 2,
"DOTA_INVENTORY_ALLOW_DROP_ON_GROUND" : 4,
"DOTA_INVENTORY_ALLOW_DROP_AT_FOUNTAIN" : 8,
"DOTA_INVENTORY_LIMIT_DROP_ON_GROUND" : 16,
"DOTA_INVENTORY_ALL_ACCESS" : 3
},
"EDOTA_ModifyGold_Reason" : {
"DOTA_ModifyGold_Unspecified" : 0,
"DOTA_ModifyGold_Death" : 1,
"DOTA_ModifyGold_Buyback" : 2,
"DOTA_ModifyGold_PurchaseConsumable" : 3,
"DOTA_ModifyGold_PurchaseItem" : 4,
"DOTA_ModifyGold_AbandonedRedistribute" : 5,
"DOTA_ModifyGold_SellItem" : 6,
"DOTA_ModifyGold_AbilityCost" : 7,
"DOTA_ModifyGold_CheatCommand" : 8,
"DOTA_ModifyGold_SelectionPenalty" : 9,
"DOTA_ModifyGold_GameTick" : 10,
"DOTA_ModifyGold_Building" : 11,
"DOTA_ModifyGold_HeroKill" : 12,
"DOTA_ModifyGold_CreepKill" : 13,
"DOTA_ModifyGold_RoshanKill" : 14,
"DOTA_ModifyGold_CourierKill" : 15,
"DOTA_ModifyGold_SharedGold" : 16
},
"DOTAUnitAttackCapability_t" : {
"DOTA_UNIT_CAP_NO_ATTACK" : 0,
"DOTA_UNIT_CAP_MELEE_ATTACK" : 1,
"DOTA_UNIT_CAP_RANGED_ATTACK" : 2
},
"DOTAUnitMoveCapability_t" : {
"DOTA_UNIT_CAP_MOVE_NONE" : 0,
"DOTA_UNIT_CAP_MOVE_GROUND" : 1,
"DOTA_UNIT_CAP_MOVE_FLY" : 2
},
"EShareAbility" : {
"ITEM_FULLY_SHAREABLE" : 0,
"ITEM_PARTIALLY_SHAREABLE" : 1,
"ITEM_NOT_SHAREABLE" : 2
},
"DOTAMusicStatus_t" : {
"DOTA_MUSIC_STATUS_NONE" : 0,
"DOTA_MUSIC_STATUS_EXPLORATION" : 1,
"DOTA_MUSIC_STATUS_BATTLE" : 2,
"DOTA_MUSIC_STATUS_PRE_GAME_EXPLORATION" : 3,
"DOTA_MUSIC_STATUS_DEAD" : 4,
"DOTA_MUSIC_STATUS_LAST" : 5
},
"DOTA_ABILITY_BEHAVIOR" : {
"DOTA_ABILITY_BEHAVIOR_NONE" : 0,
"DOTA_ABILITY_BEHAVIOR_HIDDEN" : 1,
"DOTA_ABILITY_BEHAVIOR_PASSIVE" : 2,
"DOTA_ABILITY_BEHAVIOR_NO_TARGET" : 4,
"DOTA_ABILITY_BEHAVIOR_UNIT_TARGET" : 8,
"DOTA_ABILITY_BEHAVIOR_POINT" : 16,
"DOTA_ABILITY_BEHAVIOR_AOE" : 32,
"DOTA_ABILITY_BEHAVIOR_NOT_LEARNABLE" : 64,
"DOTA_ABILITY_BEHAVIOR_CHANNELLED" : 128,
"DOTA_ABILITY_BEHAVIOR_ITEM" : 256,
"DOTA_ABILITY_BEHAVIOR_TOGGLE" : 512,
"DOTA_ABILITY_BEHAVIOR_DIRECTIONAL" : 1024,
"DOTA_ABILITY_BEHAVIOR_IMMEDIATE" : 2048,
"DOTA_ABILITY_BEHAVIOR_AUTOCAST" : 4096,
"DOTA_ABILITY_BEHAVIOR_OPTIONAL_UNIT_TARGET" : 8192,
"DOTA_ABILITY_BEHAVIOR_OPTIONAL_POINT" : 16384,
"DOTA_ABILITY_BEHAVIOR_OPTIONAL_NO_TARGET" : 32768,
"DOTA_ABILITY_BEHAVIOR_AURA" : 65536,
"DOTA_ABILITY_BEHAVIOR_ATTACK" : 131072,
"DOTA_ABILITY_BEHAVIOR_DONT_RESUME_MOVEMENT" : 262144,
"DOTA_ABILITY_BEHAVIOR_ROOT_DISABLES" : 524288,
"DOTA_ABILITY_BEHAVIOR_UNRESTRICTED" : 1048576,
"DOTA_ABILITY_BEHAVIOR_IGNORE_PSEUDO_QUEUE" : 2097152,
"DOTA_ABILITY_BEHAVIOR_IGNORE_CHANNEL" : 4194304,
"DOTA_ABILITY_BEHAVIOR_DONT_CANCEL_MOVEMENT" : 8388608,
"DOTA_ABILITY_BEHAVIOR_DONT_ALERT_TARGET" : 16777216,
"DOTA_ABILITY_BEHAVIOR_DONT_RESUME_ATTACK" : 33554432,
"DOTA_ABILITY_BEHAVIOR_NORMAL_WHEN_STOLEN" : 67108864,
"DOTA_ABILITY_BEHAVIOR_IGNORE_BACKSWING" : 134217728,
"DOTA_ABILITY_BEHAVIOR_RUNE_TARGET" : 268435456,
"DOTA_ABILITY_BEHAVIOR_DONT_CANCEL_CHANNEL" : 536870912,
"DOTA_ABILITY_BEHAVIOR_VECTOR_TARGETING" : 1073741824,
"DOTA_ABILITY_BEHAVIOR_LAST_RESORT_POINT" : -2147483648,
"DOTA_ABILITY_LAST_BEHAVIOR" : -2147483648
},
"DAMAGE_TYPES" : {
"DAMAGE_TYPE_NONE" : 0,
"DAMAGE_TYPE_PHYSICAL" : 1,
"DAMAGE_TYPE_MAGICAL" : 2,
"DAMAGE_TYPE_PURE" : 4,
"DAMAGE_TYPE_HP_REMOVAL" : 8,
"DAMAGE_TYPE_ALL" : 7
},
"ABILITY_TYPES" : {
"ABILITY_TYPE_BASIC" : 0,
"ABILITY_TYPE_ULTIMATE" : 1,
"ABILITY_TYPE_ATTRIBUTES" : 2,
"ABILITY_TYPE_HIDDEN" : 3
},
"SPELL_IMMUNITY_TYPES" : {
"SPELL_IMMUNITY_NONE" : 0,
"SPELL_IMMUNITY_ALLIES_YES" : 1,
"SPELL_IMMUNITY_ALLIES_NO" : 2,
"SPELL_IMMUNITY_ENEMIES_YES" : 3,
"SPELL_IMMUNITY_ENEMIES_NO" : 4
},
"DOTADamageFlag_t" : {
"DOTA_DAMAGE_FLAG_NONE" : 0,
"DOTA_DAMAGE_FLAG_IGNORES_MAGIC_ARMOR" : 1,
"DOTA_DAMAGE_FLAG_IGNORES_PHYSICAL_ARMOR" : 2,
"DOTA_DAMAGE_FLAG_BYPASSES_INVULNERABILITY" : 4,
"DOTA_DAMAGE_FLAG_BYPASSES_BLOCK" : 8,
"DOTA_DAMAGE_FLAG_REFLECTION" : 16,
"DOTA_DAMAGE_FLAG_HPLOSS" : 32,
"DOTA_DAMAGE_FLAG_NO_DIRECTOR_EVENT" : 64,
"DOTA_DAMAGE_FLAG_NON_LETHAL" : 128,
"DOTA_DAMAGE_FLAG_USE_COMBAT_PROFICIENCY" : 256,
"DOTA_DAMAGE_FLAG_NO_DAMAGE_MULTIPLIERS" : 512,
"DOTA_DAMAGE_FLAG_NO_SPELL_AMPLIFICATION" : 1024,
"DOTA_DAMAGE_FLAG_DONT_DISPLAY_DAMAGE_IF_SOURCE_HIDDEN" : 2048
},
"EDOTA_ModifyXP_Reason" : {
"DOTA_ModifyXP_Unspecified" : 0,
"DOTA_ModifyXP_HeroKill" : 1,
"DOTA_ModifyXP_CreepKill" : 2,
"DOTA_ModifyXP_RoshanKill" : 3
},
"GameActivity_t" : {
"ACT_DOTA_IDLE" : 1500,
"ACT_DOTA_IDLE_RARE" : 1501,
"ACT_DOTA_RUN" : 1502,
"ACT_DOTA_ATTACK" : 1503,
"ACT_DOTA_ATTACK2" : 1504,
"ACT_DOTA_ATTACK_EVENT" : 1505,
"ACT_DOTA_DIE" : 1506,
"ACT_DOTA_FLINCH" : 1507,
"ACT_DOTA_FLAIL" : 1508,
"ACT_DOTA_DISABLED" : 1509,
"ACT_DOTA_CAST_ABILITY_1" : 1510,
"ACT_DOTA_CAST_ABILITY_2" : 1511,
"ACT_DOTA_CAST_ABILITY_3" : 1512,
"ACT_DOTA_CAST_ABILITY_4" : 1513,
"ACT_DOTA_CAST_ABILITY_5" : 1514,
"ACT_DOTA_CAST_ABILITY_6" : 1515,
"ACT_DOTA_OVERRIDE_ABILITY_1" : 1516,
"ACT_DOTA_OVERRIDE_ABILITY_2" : 1517,
"ACT_DOTA_OVERRIDE_ABILITY_3" : 1518,
"ACT_DOTA_OVERRIDE_ABILITY_4" : 1519,
"ACT_DOTA_CHANNEL_ABILITY_1" : 1520,
"ACT_DOTA_CHANNEL_ABILITY_2" : 1521,
"ACT_DOTA_CHANNEL_ABILITY_3" : 1522,
"ACT_DOTA_CHANNEL_ABILITY_4" : 1523,
"ACT_DOTA_CHANNEL_ABILITY_5" : 1524,
"ACT_DOTA_CHANNEL_ABILITY_6" : 1525,
"ACT_DOTA_CHANNEL_END_ABILITY_1" : 1526,
"ACT_DOTA_CHANNEL_END_ABILITY_2" : 1527,
"ACT_DOTA_CHANNEL_END_ABILITY_3" : 1528,
"ACT_DOTA_CHANNEL_END_ABILITY_4" : 1529,
"ACT_DOTA_CHANNEL_END_ABILITY_5" : 1530,
"ACT_DOTA_CHANNEL_END_ABILITY_6" : 1531,
"ACT_DOTA_CONSTANT_LAYER" : 1532,
"ACT_DOTA_CAPTURE" : 1533,
"ACT_DOTA_SPAWN" : 1534,
"ACT_DOTA_KILLTAUNT" : 1535,
"ACT_DOTA_TAUNT" : 1536,
"ACT_DOTA_THIRST" : 1537,
"ACT_DOTA_CAST_DRAGONBREATH" : 1538,
"ACT_DOTA_ECHO_SLAM" : 1539,
"ACT_DOTA_CAST_ABILITY_1_END" : 1540,
"ACT_DOTA_CAST_ABILITY_2_END" : 1541,
"ACT_DOTA_CAST_ABILITY_3_END" : 1542,
"ACT_DOTA_CAST_ABILITY_4_END" : 1543,
"ACT_MIRANA_LEAP_END" : 1544,
"ACT_WAVEFORM_START" : 1545,
"ACT_WAVEFORM_END" : 1546,
"ACT_DOTA_CAST_ABILITY_ROT" : 1547,
"ACT_DOTA_DIE_SPECIAL" : 1548,
"ACT_DOTA_RATTLETRAP_BATTERYASSAULT" : 1549,
"ACT_DOTA_RATTLETRAP_POWERCOGS" : 1550,
"ACT_DOTA_RATTLETRAP_HOOKSHOT_START" : 1551,
"ACT_DOTA_RATTLETRAP_HOOKSHOT_LOOP" : 1552,
"ACT_DOTA_RATTLETRAP_HOOKSHOT_END" : 1553,
"ACT_STORM_SPIRIT_OVERLOAD_RUN_OVERRIDE" : 1554,
"ACT_DOTA_TINKER_REARM1" : 1555,
"ACT_DOTA_TINKER_REARM2" : 1556,
"ACT_DOTA_TINKER_REARM3" : 1557,
"ACT_TINY_AVALANCHE" : 1558,
"ACT_TINY_TOSS" : 1559,
"ACT_TINY_GROWL" : 1560,
"ACT_DOTA_WEAVERBUG_ATTACH" : 1561,
"ACT_DOTA_CAST_WILD_AXES_END" : 1562,
"ACT_DOTA_CAST_LIFE_BREAK_START" : 1563,
"ACT_DOTA_CAST_LIFE_BREAK_END" : 1564,
"ACT_DOTA_NIGHTSTALKER_TRANSITION" : 1565,
"ACT_DOTA_LIFESTEALER_RAGE" : 1566,
"ACT_DOTA_LIFESTEALER_OPEN_WOUNDS" : 1567,
"ACT_DOTA_SAND_KING_BURROW_IN" : 1568,
"ACT_DOTA_SAND_KING_BURROW_OUT" : 1569,
"ACT_DOTA_EARTHSHAKER_TOTEM_ATTACK" : 1570,
"ACT_DOTA_WHEEL_LAYER" : 1571,
"ACT_DOTA_ALCHEMIST_CHEMICAL_RAGE_START" : 1572,
"ACT_DOTA_ALCHEMIST_CONCOCTION" : 1573,
"ACT_DOTA_JAKIRO_LIQUIDFIRE_START" : 1574,
"ACT_DOTA_JAKIRO_LIQUIDFIRE_LOOP" : 1575,
"ACT_DOTA_LIFESTEALER_INFEST" : 1576,
"ACT_DOTA_LIFESTEALER_INFEST_END" : 1577,
"ACT_DOTA_LASSO_LOOP" : 1578,
"ACT_DOTA_ALCHEMIST_CONCOCTION_THROW" : 1579,
"ACT_DOTA_ALCHEMIST_CHEMICAL_RAGE_END" : 1580,
"ACT_DOTA_CAST_COLD_SNAP" : 1581,
"ACT_DOTA_CAST_GHOST_WALK" : 1582,
"ACT_DOTA_CAST_TORNADO" : 1583,
"ACT_DOTA_CAST_EMP" : 1584,
"ACT_DOTA_CAST_ALACRITY" : 1585,
"ACT_DOTA_CAST_CHAOS_METEOR" : 1586,
"ACT_DOTA_CAST_SUN_STRIKE" : 1587,
"ACT_DOTA_CAST_FORGE_SPIRIT" : 1588,
"ACT_DOTA_CAST_ICE_WALL" : 1589,
"ACT_DOTA_CAST_DEAFENING_BLAST" : 1590,
"ACT_DOTA_VICTORY" : 1591,
"ACT_DOTA_DEFEAT" : 1592,
"ACT_DOTA_SPIRIT_BREAKER_CHARGE_POSE" : 1593,
"ACT_DOTA_SPIRIT_BREAKER_CHARGE_END" : 1594,
"ACT_DOTA_TELEPORT" : 1595,
"ACT_DOTA_TELEPORT_END" : 1596,
"ACT_DOTA_CAST_REFRACTION" : 1597,
"ACT_DOTA_CAST_ABILITY_7" : 1598,
"ACT_DOTA_CANCEL_SIREN_SONG" : 1599,
"ACT_DOTA_CHANNEL_ABILITY_7" : 1600,
"ACT_DOTA_LOADOUT" : 1601,
"ACT_DOTA_FORCESTAFF_END" : 1602,
"ACT_DOTA_POOF_END" : 1603,
"ACT_DOTA_SLARK_POUNCE" : 1604,
"ACT_DOTA_MAGNUS_SKEWER_START" : 1605,
"ACT_DOTA_MAGNUS_SKEWER_END" : 1606,
"ACT_DOTA_MEDUSA_STONE_GAZE" : 1607,
"ACT_DOTA_RELAX_START" : 1608,
"ACT_DOTA_RELAX_LOOP" : 1609,
"ACT_DOTA_RELAX_END" : 1610,
"ACT_DOTA_CENTAUR_STAMPEDE" : 1611,
"ACT_DOTA_BELLYACHE_START" : 1612,
"ACT_DOTA_BELLYACHE_LOOP" : 1613,
"ACT_DOTA_BELLYACHE_END" : 1614,
"ACT_DOTA_ROQUELAIRE_LAND" : 1615,
"ACT_DOTA_ROQUELAIRE_LAND_IDLE" : 1616,
"ACT_DOTA_GREEVIL_CAST" : 1617,
"ACT_DOTA_GREEVIL_OVERRIDE_ABILITY" : 1618,
"ACT_DOTA_GREEVIL_HOOK_START" : 1619,
"ACT_DOTA_GREEVIL_HOOK_END" : 1620,
"ACT_DOTA_GREEVIL_BLINK_BONE" : 1621,
"ACT_DOTA_IDLE_SLEEPING" : 1622,
"ACT_DOTA_INTRO" : 1623,
"ACT_DOTA_GESTURE_POINT" : 1624,
"ACT_DOTA_GESTURE_ACCENT" : 1625,
"ACT_DOTA_SLEEPING_END" : 1626,
"ACT_DOTA_AMBUSH" : 1627,
"ACT_DOTA_ITEM_LOOK" : 1628,
"ACT_DOTA_STARTLE" : 1629,
"ACT_DOTA_FRUSTRATION" : 1630,
"ACT_DOTA_TELEPORT_REACT" : 1631,
"ACT_DOTA_TELEPORT_END_REACT" : 1632,
"ACT_DOTA_SHRUG" : 1633,
"ACT_DOTA_RELAX_LOOP_END" : 1634,
"ACT_DOTA_PRESENT_ITEM" : 1635,
"ACT_DOTA_IDLE_IMPATIENT" : 1636,
"ACT_DOTA_SHARPEN_WEAPON" : 1637,
"ACT_DOTA_SHARPEN_WEAPON_OUT" : 1638,
"ACT_DOTA_IDLE_SLEEPING_END" : 1639,
"ACT_DOTA_BRIDGE_DESTROY" : 1640,
"ACT_DOTA_TAUNT_SNIPER" : 1641,
"ACT_DOTA_DEATH_BY_SNIPER" : 1642,
"ACT_DOTA_LOOK_AROUND" : 1643,
"ACT_DOTA_CAGED_CREEP_RAGE" : 1644,
"ACT_DOTA_CAGED_CREEP_RAGE_OUT" : 1645,
"ACT_DOTA_CAGED_CREEP_SMASH" : 1646,
"ACT_DOTA_CAGED_CREEP_SMASH_OUT" : 1647,
"ACT_DOTA_IDLE_IMPATIENT_SWORD_TAP" : 1648,
"ACT_DOTA_INTRO_LOOP" : 1649,
"ACT_DOTA_BRIDGE_THREAT" : 1650,
"ACT_DOTA_DAGON" : 1651,
"ACT_DOTA_CAST_ABILITY_2_ES_ROLL_START" : 1652,
"ACT_DOTA_CAST_ABILITY_2_ES_ROLL" : 1653,
"ACT_DOTA_CAST_ABILITY_2_ES_ROLL_END" : 1654,
"ACT_DOTA_NIAN_PIN_START" : 1655,
"ACT_DOTA_NIAN_PIN_LOOP" : 1656,
"ACT_DOTA_NIAN_PIN_END" : 1657,
"ACT_DOTA_LEAP_STUN" : 1658,
"ACT_DOTA_LEAP_SWIPE" : 1659,
"ACT_DOTA_NIAN_INTRO_LEAP" : 1660,
"ACT_DOTA_AREA_DENY" : 1661,
"ACT_DOTA_NIAN_PIN_TO_STUN" : 1662,
"ACT_DOTA_RAZE_1" : 1663,
"ACT_DOTA_RAZE_2" : 1664,
"ACT_DOTA_RAZE_3" : 1665,
"ACT_DOTA_UNDYING_DECAY" : 1666,
"ACT_DOTA_UNDYING_SOUL_RIP" : 1667,
"ACT_DOTA_UNDYING_TOMBSTONE" : 1668,
"ACT_DOTA_WHIRLING_AXES_RANGED" : 1669,
"ACT_DOTA_SHALLOW_GRAVE" : 1670,
"ACT_DOTA_COLD_FEET" : 1671,
"ACT_DOTA_ICE_VORTEX" : 1672,
"ACT_DOTA_CHILLING_TOUCH" : 1673,
"ACT_DOTA_ENFEEBLE" : 1674,
"ACT_DOTA_FATAL_BONDS" : 1675,
"ACT_DOTA_MIDNIGHT_PULSE" : 1676,
"ACT_DOTA_ANCESTRAL_SPIRIT" : 1677,
"ACT_DOTA_THUNDER_STRIKE" : 1678,
"ACT_DOTA_KINETIC_FIELD" : 1679,
"ACT_DOTA_STATIC_STORM" : 1680,
"ACT_DOTA_MINI_TAUNT" : 1681,
"ACT_DOTA_ARCTIC_BURN_END" : 1682,
"ACT_DOTA_LOADOUT_RARE" : 1683,
"ACT_DOTA_SWIM" : 1684,
"ACT_DOTA_FLEE" : 1685,
"ACT_DOTA_TROT" : 1686,
"ACT_DOTA_SHAKE" : 1687,
"ACT_DOTA_SWIM_IDLE" : 1688,
"ACT_DOTA_WAIT_IDLE" : 1689,
"ACT_DOTA_GREET" : 1690,
"ACT_DOTA_TELEPORT_COOP_START" : 1691,
"ACT_DOTA_TELEPORT_COOP_WAIT" : 1692,
"ACT_DOTA_TELEPORT_COOP_END" : 1693,
"ACT_DOTA_TELEPORT_COOP_EXIT" : 1694,
"ACT_DOTA_SHOPKEEPER_PET_INTERACT" : 1695,
"ACT_DOTA_ITEM_PICKUP" : 1696,
"ACT_DOTA_ITEM_DROP" : 1697,
"ACT_DOTA_CAPTURE_PET" : 1698,
"ACT_DOTA_PET_WARD_OBSERVER" : 1699,
"ACT_DOTA_PET_WARD_SENTRY" : 1700,
"ACT_DOTA_PET_LEVEL" : 1701,
"ACT_DOTA_CAST_BURROW_END" : 1702,
"ACT_DOTA_LIFESTEALER_ASSIMILATE" : 1703,
"ACT_DOTA_LIFESTEALER_EJECT" : 1704,
"ACT_DOTA_ATTACK_EVENT_BASH" : 1705,
"ACT_DOTA_CAPTURE_RARE" : 1706,
"ACT_DOTA_AW_MAGNETIC_FIELD" : 1707,
"ACT_DOTA_CAST_GHOST_SHIP" : 1708,
"ACT_DOTA_FXANIM" : 1709,
"ACT_DOTA_VICTORY_START" : 1710,
"ACT_DOTA_DEFEAT_START" : 1711,
"ACT_DOTA_DP_SPIRIT_SIPHON" : 1712,
"ACT_DOTA_TRICKS_END" : 1713,
"ACT_DOTA_ES_STONE_CALLER" : 1714,
"ACT_DOTA_MK_STRIKE" : 1715,
"ACT_DOTA_VERSUS" : 1716,
"ACT_DOTA_CAPTURE_CARD" : 1717,
"ACT_DOTA_MK_SPRING_SOAR" : 1718,
"ACT_DOTA_MK_SPRING_END" : 1719,
"ACT_DOTA_MK_TREE_SOAR" : 1720,
"ACT_DOTA_MK_TREE_END" : 1721,
"ACT_DOTA_MK_FUR_ARMY" : 1722,
"ACT_DOTA_MK_SPRING_CAST" : 1723
},
"DOTAMinimapEvent_t" : {
"DOTA_MINIMAP_EVENT_ANCIENT_UNDER_ATTACK" : 2,
"DOTA_MINIMAP_EVENT_BASE_UNDER_ATTACK" : 4,
"DOTA_MINIMAP_EVENT_BASE_GLYPHED" : 8,
"DOTA_MINIMAP_EVENT_TEAMMATE_UNDER_ATTACK" : 16,
"DOTA_MINIMAP_EVENT_TEAMMATE_TELEPORTING" : 32,
"DOTA_MINIMAP_EVENT_TEAMMATE_DIED" : 64,
"DOTA_MINIMAP_EVENT_TUTORIAL_TASK_ACTIVE" : 128,
"DOTA_MINIMAP_EVENT_TUTORIAL_TASK_FINISHED" : 256,
"DOTA_MINIMAP_EVENT_HINT_LOCATION" : 512,
"DOTA_MINIMAP_EVENT_ENEMY_TELEPORTING" : 1024,
"DOTA_MINIMAP_EVENT_CANCEL_TELEPORTING" : 2048,
"DOTA_MINIMAP_EVENT_RADAR" : 4096,
"DOTA_MINIMAP_EVENT_RADAR_TARGET" : 8192
},
"DOTASlotType_t" : {
"DOTA_LOADOUT_TYPE_INVALID" : -1,
"DOTA_LOADOUT_TYPE_WEAPON" : 0,
"DOTA_LOADOUT_TYPE_OFFHAND_WEAPON" : 1,
"DOTA_LOADOUT_TYPE_WEAPON2" : 2,
"DOTA_LOADOUT_TYPE_OFFHAND_WEAPON2" : 3,
"DOTA_LOADOUT_TYPE_HEAD" : 4,
"DOTA_LOADOUT_TYPE_SHOULDER" : 5,
"DOTA_LOADOUT_TYPE_ARMS" : 6,
"DOTA_LOADOUT_TYPE_ARMOR" : 7,
"DOTA_LOADOUT_TYPE_BELT" : 8,
"DOTA_LOADOUT_TYPE_NECK" : 9,
"DOTA_LOADOUT_TYPE_BACK" : 10,
"DOTA_LOADOUT_TYPE_LEGS" : 11,
"DOTA_LOADOUT_TYPE_GLOVES" : 12,
"DOTA_LOADOUT_TYPE_TAIL" : 13,
"DOTA_LOADOUT_TYPE_MISC" : 14,
"DOTA_LOADOUT_TYPE_BODY_HEAD" : 15,
"DOTA_LOADOUT_TYPE_MOUNT" : 16,
"DOTA_LOADOUT_TYPE_SUMMON" : 17,
"DOTA_LOADOUT_TYPE_SHAPESHIFT" : 18,
"DOTA_LOADOUT_TYPE_TAUNT" : 19,
"DOTA_LOADOUT_TYPE_AMBIENT_EFFECTS" : 20,
"DOTA_LOADOUT_TYPE_ABILITY_ATTACK" : 21,
"DOTA_LOADOUT_TYPE_ABILITY1" : 22,
"DOTA_LOADOUT_TYPE_ABILITY2" : 23,
"DOTA_LOADOUT_TYPE_ABILITY3" : 24,
"DOTA_LOADOUT_TYPE_ABILITY4" : 25,
"DOTA_LOADOUT_TYPE_ABILITY_ULTIMATE" : 26,
"DOTA_LOADOUT_TYPE_VOICE" : 27,
"DOTA_LOADOUT_TYPE_ACTION_ITEM" : 28,
"DOTA_LOADOUT_TYPE_COURIER" : 29,
"DOTA_LOADOUT_TYPE_ANNOUNCER" : 30,
"DOTA_LOADOUT_TYPE_MEGA_KILLS" : 31,
"DOTA_LOADOUT_TYPE_MUSIC" : 32,
"DOTA_LOADOUT_TYPE_WARD" : 33,
"DOTA_LOADOUT_TYPE_HUD_SKIN" : 34,
"DOTA_LOADOUT_TYPE_LOADING_SCREEN" : 35,
"DOTA_LOADOUT_TYPE_WEATHER" : 36,
"DOTA_LOADOUT_TYPE_HEROIC_STATUE" : 37,
"DOTA_LOADOUT_TYPE_MULTIKILL_BANNER" : 38,
"DOTA_LOADOUT_TYPE_CURSOR_PACK" : 39,
"DOTA_LOADOUT_TYPE_TELEPORT_EFFECT" : 40,
"DOTA_LOADOUT_TYPE_BLINK_EFFECT" : 41,
"DOTA_LOADOUT_TYPE_TEAM_SHOWCASE" : 42,
"DOTA_LOADOUT_TYPE_TERRAIN" : 43,
"DOTA_PLAYER_LOADOUT_START" : 28,
"DOTA_PLAYER_LOADOUT_END" : 43,
"DOTA_LOADOUT_TYPE_NONE" : 44,
"DOTA_LOADOUT_TYPE_COUNT" : 45
},
"modifierfunction" : {
"MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE" : 0,
"MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_PROC" : 1,
"MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_POST_CRIT" : 2,
"MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE" : 3,
"MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PHYSICAL" : 4,
"MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_MAGICAL" : 5,
"MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PURE" : 6,
"MODIFIER_PROPERTY_PROCATTACK_FEEDBACK" : 7,
"MODIFIER_PROPERTY_PRE_ATTACK" : 8,
"MODIFIER_PROPERTY_INVISIBILITY_LEVEL" : 9,
"MODIFIER_PROPERTY_PERSISTENT_INVISIBILITY" : 10,
"MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT" : 11,
"MODIFIER_PROPERTY_MOVESPEED_BASE_OVERRIDE" : 12,
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE" : 13,
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE" : 14,
"MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE_2" : 15,
"MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE" : 16,
"MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE_2" : 17,
"MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE" : 18,
"MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MIN" : 19,
"MODIFIER_PROPERTY_MOVESPEED_LIMIT" : 20,
"MODIFIER_PROPERTY_MOVESPEED_MAX" : 21,
"MODIFIER_PROPERTY_ATTACKSPEED_BASE_OVERRIDE" : 22,
"MODIFIER_PROPERTY_FIXED_ATTACK_RATE" : 23,
"MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT" : 24,
"MODIFIER_PROPERTY_COOLDOWN_REDUCTION_CONSTANT" : 25,
"MODIFIER_PROPERTY_BASE_ATTACK_TIME_CONSTANT" : 26,
"MODIFIER_PROPERTY_ATTACK_POINT_CONSTANT" : 27,
"MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE" : 28,
"MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE_ILLUSION" : 29,
"MODIFIER_PROPERTY_TOTALDAMAGEOUTGOING_PERCENTAGE" : 30,
"MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE" : 31,
"MODIFIER_PROPERTY_HEAL_AMPLIFY_PERCENTAGE" : 32,
"MODIFIER_PROPERTY_MAGICDAMAGEOUTGOING_PERCENTAGE" : 33,
"MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE" : 34,
"MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE_UNIQUE" : 35,
"MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE" : 36,
"MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_PERCENTAGE" : 37,
"MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_CONSTANT" : 38,
"MODIFIER_PROPERTY_INCOMING_SPELL_DAMAGE_CONSTANT" : 39,
"MODIFIER_PROPERTY_EVASION_CONSTANT" : 40,
"MODIFIER_PROPERTY_NEGATIVE_EVASION_CONSTANT" : 41,
"MODIFIER_PROPERTY_AVOID_DAMAGE" : 42,
"MODIFIER_PROPERTY_AVOID_SPELL" : 43,
"MODIFIER_PROPERTY_MISS_PERCENTAGE" : 44,
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS" : 45,
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE" : 46,
"MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE_ACTIVE" : 47,
"MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DIRECT_MODIFICATION" : 48,
"MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS" : 49,
"MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DECREPIFY_UNIQUE" : 50,
"MODIFIER_PROPERTY_BASE_MANA_REGEN" : 51,
"MODIFIER_PROPERTY_MANA_REGEN_CONSTANT" : 52,
"MODIFIER_PROPERTY_MANA_REGEN_CONSTANT_UNIQUE" : 53,
"MODIFIER_PROPERTY_MANA_REGEN_PERCENTAGE" : 54,
"MODIFIER_PROPERTY_MANA_REGEN_TOTAL_PERCENTAGE" : 55,
"MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT" : 56,
"MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE" : 57,
"MODIFIER_PROPERTY_HEALTH_BONUS" : 58,
"MODIFIER_PROPERTY_MANA_BONUS" : 59,
"MODIFIER_PROPERTY_EXTRA_STRENGTH_BONUS" : 60,
"MODIFIER_PROPERTY_EXTRA_HEALTH_BONUS" : 61,
"MODIFIER_PROPERTY_EXTRA_MANA_BONUS" : 62,
"MODIFIER_PROPERTY_EXTRA_HEALTH_PERCENTAGE" : 63,
"MODIFIER_PROPERTY_STATS_STRENGTH_BONUS" : 64,
"MODIFIER_PROPERTY_STATS_AGILITY_BONUS" : 65,
"MODIFIER_PROPERTY_STATS_INTELLECT_BONUS" : 66,
"MODIFIER_PROPERTY_CAST_RANGE_BONUS" : 67,
"MODIFIER_PROPERTY_CAST_RANGE_BONUS_STACKING" : 68,
"MODIFIER_PROPERTY_ATTACK_RANGE_BONUS" : 69,
"MODIFIER_PROPERTY_ATTACK_RANGE_BONUS_UNIQUE" : 70,
"MODIFIER_PROPERTY_MAX_ATTACK_RANGE" : 71,
"MODIFIER_PROPERTY_PROJECTILE_SPEED_BONUS" : 72,
"MODIFIER_PROPERTY_REINCARNATION" : 73,
"MODIFIER_PROPERTY_RESPAWNTIME" : 74,
"MODIFIER_PROPERTY_RESPAWNTIME_PERCENTAGE" : 75,
"MODIFIER_PROPERTY_RESPAWNTIME_STACKING" : 76,
"MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE" : 77,
"MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE_STACKING" : 78,
"MODIFIER_PROPERTY_CASTTIME_PERCENTAGE" : 79,
"MODIFIER_PROPERTY_MANACOST_PERCENTAGE" : 80,
"MODIFIER_PROPERTY_DEATHGOLDCOST" : 81,
"MODIFIER_PROPERTY_EXP_RATE_BOOST" : 82,
"MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE" : 83,
"MODIFIER_PROPERTY_PREATTACK_TARGET_CRITICALSTRIKE" : 84,
"MODIFIER_PROPERTY_MAGICAL_CONSTANT_BLOCK" : 85,
"MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK" : 86,
"MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK_SPECIAL" : 87,
"MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK_UNAVOIDABLE_PRE_ARMOR" : 88,
"MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK" : 89,
"MODIFIER_PROPERTY_OVERRIDE_ANIMATION" : 90,
"MODIFIER_PROPERTY_OVERRIDE_ANIMATION_WEIGHT" : 91,
"MODIFIER_PROPERTY_OVERRIDE_ANIMATION_RATE" : 92,
"MODIFIER_PROPERTY_ABSORB_SPELL" : 93,
"MODIFIER_PROPERTY_REFLECT_SPELL" : 94,
"MODIFIER_PROPERTY_DISABLE_AUTOATTACK" : 95,
"MODIFIER_PROPERTY_BONUS_DAY_VISION" : 96,
"MODIFIER_PROPERTY_BONUS_NIGHT_VISION" : 97,
"MODIFIER_PROPERTY_BONUS_NIGHT_VISION_UNIQUE" : 98,
"MODIFIER_PROPERTY_BONUS_VISION_PERCENTAGE" : 99,
"MODIFIER_PROPERTY_FIXED_DAY_VISION" : 100,
"MODIFIER_PROPERTY_FIXED_NIGHT_VISION" : 101,
"MODIFIER_PROPERTY_MIN_HEALTH" : 102,
"MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PHYSICAL" : 103,
"MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_MAGICAL" : 104,
"MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PURE" : 105,
"MODIFIER_PROPERTY_IS_ILLUSION" : 106,
"MODIFIER_PROPERTY_ILLUSION_LABEL" : 107,
"MODIFIER_PROPERTY_SUPER_ILLUSION" : 108,
"MODIFIER_PROPERTY_SUPER_ILLUSION_WITH_ULTIMATE" : 109,
"MODIFIER_PROPERTY_TURN_RATE_PERCENTAGE" : 110,
"MODIFIER_PROPERTY_DISABLE_HEALING" : 111,
"MODIFIER_PROPERTY_ALWAYS_ALLOW_ATTACK" : 112,
"MODIFIER_PROPERTY_OVERRIDE_ATTACK_MAGICAL" : 113,
"MODIFIER_PROPERTY_UNIT_STATS_NEEDS_REFRESH" : 114,
"MODIFIER_PROPERTY_BOUNTY_CREEP_MULTIPLIER" : 115,
"MODIFIER_PROPERTY_BOUNTY_OTHER_MULTIPLIER" : 116,
"MODIFIER_EVENT_ON_SPELL_TARGET_READY" : 117,
"MODIFIER_EVENT_ON_ATTACK_RECORD" : 118,
"MODIFIER_EVENT_ON_ATTACK_START" : 119,
"MODIFIER_EVENT_ON_ATTACK" : 120,
"MODIFIER_EVENT_ON_ATTACK_LANDED" : 121,
"MODIFIER_EVENT_ON_ATTACK_FAIL" : 122,
"MODIFIER_EVENT_ON_ATTACK_ALLIED" : 123,
"MODIFIER_EVENT_ON_PROJECTILE_DODGE" : 124,
"MODIFIER_EVENT_ON_ORDER" : 125,
"MODIFIER_EVENT_ON_UNIT_MOVED" : 126,
"MODIFIER_EVENT_ON_ABILITY_START" : 127,
"MODIFIER_EVENT_ON_ABILITY_EXECUTED" : 128,
"MODIFIER_EVENT_ON_ABILITY_FULLY_CAST" : 129,
"MODIFIER_EVENT_ON_BREAK_INVISIBILITY" : 130,
"MODIFIER_EVENT_ON_ABILITY_END_CHANNEL" : 131,
"MODIFIER_EVENT_ON_PROCESS_UPGRADE" : 132,
"MODIFIER_EVENT_ON_REFRESH" : 133,
"MODIFIER_EVENT_ON_TAKEDAMAGE" : 134,
"MODIFIER_EVENT_ON_STATE_CHANGED" : 135,
"MODIFIER_EVENT_ON_ORB_EFFECT" : 136,
"MODIFIER_EVENT_ON_ATTACKED" : 137,
"MODIFIER_EVENT_ON_DEATH" : 138,
"MODIFIER_EVENT_ON_RESPAWN" : 139,
"MODIFIER_EVENT_ON_SPENT_MANA" : 140,
"MODIFIER_EVENT_ON_TELEPORTING" : 141,
"MODIFIER_EVENT_ON_TELEPORTED" : 142,
"MODIFIER_EVENT_ON_SET_LOCATION" : 143,
"MODIFIER_EVENT_ON_HEALTH_GAINED" : 144,
"MODIFIER_EVENT_ON_MANA_GAINED" : 145,
"MODIFIER_EVENT_ON_TAKEDAMAGE_KILLCREDIT" : 146,
"MODIFIER_EVENT_ON_HERO_KILLED" : 147,
"MODIFIER_EVENT_ON_HEAL_RECEIVED" : 148,
"MODIFIER_EVENT_ON_BUILDING_KILLED" : 149,
"MODIFIER_EVENT_ON_MODEL_CHANGED" : 150,
"MODIFIER_PROPERTY_TOOLTIP" : 151,
"MODIFIER_PROPERTY_MODEL_CHANGE" : 152,
"MODIFIER_PROPERTY_MODEL_SCALE" : 153,
"MODIFIER_PROPERTY_IS_SCEPTER" : 154,
"MODIFIER_PROPERTY_TRANSLATE_ACTIVITY_MODIFIERS" : 155,
"MODIFIER_PROPERTY_TRANSLATE_ATTACK_SOUND" : 156,
"MODIFIER_PROPERTY_LIFETIME_FRACTION" : 157,
"MODIFIER_PROPERTY_PROVIDES_FOW_POSITION" : 158,
"MODIFIER_PROPERTY_SPELLS_REQUIRE_HP" : 159,
"MODIFIER_PROPERTY_FORCE_DRAW_MINIMAP" : 160,
"MODIFIER_PROPERTY_DISABLE_TURNING" : 161,
"MODIFIER_PROPERTY_IGNORE_CAST_ANGLE" : 162,
"MODIFIER_PROPERTY_CHANGE_ABILITY_VALUE" : 163,
"MODIFIER_PROPERTY_ABILITY_LAYOUT" : 164,
"MODIFIER_EVENT_ON_DOMINATED" : 165,
"MODIFIER_PROPERTY_TEMPEST_DOUBLE" : 166,
"MODIFIER_PROPERTY_PRESERVE_PARTICLES_ON_MODEL_CHANGE" : 167,
"MODIFIER_EVENT_ON_ATTACK_FINISHED" : 168,
"MODIFIER_PROPERTY_IGNORE_COOLDOWN" : 169,
"MODIFIER_PROPERTY_CAN_ATTACK_TREES" : 170,
"MODIFIER_PROPERTY_VISUAL_Z_DELTA" : 171,
"MODIFIER_PROPERTY_INCOMING_DAMAGE_ILLUSION" : 172,
"MODIFIER_FUNCTION_LAST" : 173,
"MODIFIER_FUNCTION_INVALID" : 255
},
"modifierstate" : {
"MODIFIER_STATE_ROOTED" : 0,
"MODIFIER_STATE_DISARMED" : 1,
"MODIFIER_STATE_ATTACK_IMMUNE" : 2,
"MODIFIER_STATE_SILENCED" : 3,
"MODIFIER_STATE_MUTED" : 4,
"MODIFIER_STATE_STUNNED" : 5,
"MODIFIER_STATE_HEXED" : 6,
"MODIFIER_STATE_INVISIBLE" : 7,
"MODIFIER_STATE_INVULNERABLE" : 8,
"MODIFIER_STATE_MAGIC_IMMUNE" : 9,
"MODIFIER_STATE_PROVIDES_VISION" : 10,
"MODIFIER_STATE_NIGHTMARED" : 11,
"MODIFIER_STATE_BLOCK_DISABLED" : 12,
"MODIFIER_STATE_EVADE_DISABLED" : 13,
"MODIFIER_STATE_UNSELECTABLE" : 14,
"MODIFIER_STATE_CANNOT_TARGET_ENEMIES" : 15,
"MODIFIER_STATE_CANNOT_MISS" : 16,
"MODIFIER_STATE_SPECIALLY_DENIABLE" : 17,
"MODIFIER_STATE_FROZEN" : 18,
"MODIFIER_STATE_COMMAND_RESTRICTED" : 19,
"MODIFIER_STATE_NOT_ON_MINIMAP" : 20,
"MODIFIER_STATE_NOT_ON_MINIMAP_FOR_ENEMIES" : 21,
"MODIFIER_STATE_LOW_ATTACK_PRIORITY" : 22,
"MODIFIER_STATE_NO_HEALTH_BAR" : 23,
"MODIFIER_STATE_FLYING" : 24,
"MODIFIER_STATE_NO_UNIT_COLLISION" : 25,
"MODIFIER_STATE_NO_TEAM_MOVE_TO" : 26,
"MODIFIER_STATE_NO_TEAM_SELECT" : 27,
"MODIFIER_STATE_PASSIVES_DISABLED" : 28,
"MODIFIER_STATE_DOMINATED" : 29,
"MODIFIER_STATE_BLIND" : 30,
"MODIFIER_STATE_OUT_OF_GAME" : 31,
"MODIFIER_STATE_FAKE_ALLY" : 32,
"MODIFIER_STATE_FLYING_FOR_PATHING_PURPOSES_ONLY" : 33,
"MODIFIER_STATE_TRUESIGHT_IMMUNE" : 34,
"MODIFIER_STATE_LAST" : 35
},
"DOTAModifierAttribute_t" : {
"MODIFIER_ATTRIBUTE_NONE" : 0,
"MODIFIER_ATTRIBUTE_PERMANENT" : 1,
"MODIFIER_ATTRIBUTE_MULTIPLE" : 2,
"MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE" : 4
},
"Attributes" : {
"DOTA_ATTRIBUTE_STRENGTH" : 0,
"DOTA_ATTRIBUTE_AGILITY" : 1,
"DOTA_ATTRIBUTE_INTELLECT" : 2,
"DOTA_ATTRIBUTE_MAX" : 3,
"DOTA_ATTRIBUTE_INVALID" : -1
},
"ParticleAttachment_t" : {
"PATTACH_INVALID" : -1,
"PATTACH_ABSORIGIN" : 0,
"PATTACH_ABSORIGIN_FOLLOW" : 1,
"PATTACH_CUSTOMORIGIN" : 2,
"PATTACH_CUSTOMORIGIN_FOLLOW" : 3,
"PATTACH_POINT" : 4,
"PATTACH_POINT_FOLLOW" : 5,
"PATTACH_EYES_FOLLOW" : 6,
"PATTACH_OVERHEAD_FOLLOW" : 7,
"PATTACH_WORLDORIGIN" : 8,
"PATTACH_ROOTBONE_FOLLOW" : 9,
"PATTACH_RENDERORIGIN_FOLLOW" : 10,
"PATTACH_MAIN_VIEW" : 11,
"PATTACH_WATERWAKE" : 12,
"PATTACH_CENTER_FOLLOW" : 13,
"MAX_PATTACH_TYPES" : 14
},
"DOTA_MOTION_CONTROLLER_PRIORITY" : {
"DOTA_MOTION_CONTROLLER_PRIORITY_LOWEST" : 0,
"DOTA_MOTION_CONTROLLER_PRIORITY_LOW" : 1,
"DOTA_MOTION_CONTROLLER_PRIORITY_MEDIUM" : 2,
"DOTA_MOTION_CONTROLLER_PRIORITY_HIGH" : 3,
"DOTA_MOTION_CONTROLLER_PRIORITY_HIGHEST" : 4
},
"DOTASpeechType_t" : {
"DOTA_SPEECH_USER_INVALID" : 0,
"DOTA_SPEECH_USER_SINGLE" : 1,
"DOTA_SPEECH_USER_TEAM" : 2,
"DOTA_SPEECH_USER_TEAM_NEARBY" : 3,
"DOTA_SPEECH_USER_NEARBY" : 4,
"DOTA_SPEECH_USER_ALL" : 5,
"DOTA_SPEECH_GOOD_TEAM" : 6,
"DOTA_SPEECH_BAD_TEAM" : 7,
"DOTA_SPEECH_SPECTATOR" : 8,
"DOTA_SPEECH_RECIPIENT_TYPE_MAX" : 9
},
"DOTAAbilitySpeakTrigger_t" : {
"DOTA_ABILITY_SPEAK_START_ACTION_PHASE" : 0,
"DOTA_ABILITY_SPEAK_CAST" : 1
},
"DotaCustomUIType_t" : {
"DOTA_CUSTOM_UI_TYPE_HUD" : 0,
"DOTA_CUSTOM_UI_TYPE_HERO_SELECTION" : 1,
"DOTA_CUSTOM_UI_TYPE_GAME_INFO" : 2,
"DOTA_CUSTOM_UI_TYPE_GAME_SETUP" : 3,
"DOTA_CUSTOM_UI_TYPE_FLYOUT_SCOREBOARD" : 4,
"DOTA_CUSTOM_UI_TYPE_HUD_TOP_BAR" : 5,
"DOTA_CUSTOM_UI_TYPE_END_SCREEN" : 6,
"DOTA_CUSTOM_UI_TYPE_COUNT" : 7,
"DOTA_CUSTOM_UI_TYPE_INVALID" : -1
},
"DotaDefaultUIElement_t" : {
"DOTA_DEFAULT_UI_TOP_TIMEOFDAY" : 0,
"DOTA_DEFAULT_UI_TOP_HEROES" : 1,
"DOTA_DEFAULT_UI_FLYOUT_SCOREBOARD" : 2,
"DOTA_DEFAULT_UI_ACTION_PANEL" : 3,
"DOTA_DEFAULT_UI_ACTION_MINIMAP" : 4,
"DOTA_DEFAULT_UI_INVENTORY_PANEL" : 5,
"DOTA_DEFAULT_UI_INVENTORY_SHOP" : 6,
"DOTA_DEFAULT_UI_INVENTORY_ITEMS" : 7,
"DOTA_DEFAULT_UI_INVENTORY_QUICKBUY" : 8,
"DOTA_DEFAULT_UI_INVENTORY_COURIER" : 9,
"DOTA_DEFAULT_UI_INVENTORY_PROTECT" : 10,
"DOTA_DEFAULT_UI_INVENTORY_GOLD" : 11,
"DOTA_DEFAULT_UI_SHOP_SUGGESTEDITEMS" : 12,
"DOTA_DEFAULT_UI_HERO_SELECTION_TEAMS" : 13,
"DOTA_DEFAULT_UI_HERO_SELECTION_GAME_NAME" : 14,
"DOTA_DEFAULT_UI_HERO_SELECTION_CLOCK" : 15,
"DOTA_DEFAULT_UI_TOP_MENU_BUTTONS" : 16,
"DOTA_DEFAULT_UI_TOP_BAR_BACKGROUND" : 17,
"DOTA_DEFAULT_UI_ENDGAME" : 18,
"DOTA_DEFAULT_UI_ENDGAME_CHAT" : 19,
"DOTA_DEFAULT_UI_ELEMENT_COUNT" : 20
},
"PlayerUltimateStateOrTime_t" : {
"PLAYER_ULTIMATE_STATE_READY" : 0,
"PLAYER_ULTIMATE_STATE_NO_MANA" : -1,
"PLAYER_ULTIMATE_STATE_NOT_LEVELED" : -2,
"PLAYER_ULTIMATE_STATE_HIDDEN" : -3
},
"PlayerOrderIssuer_t" : {
"DOTA_ORDER_ISSUER_SELECTED_UNITS" : 0,
"DOTA_ORDER_ISSUER_CURRENT_UNIT_ONLY" : 1,
"DOTA_ORDER_ISSUER_HERO_ONLY" : 2,
"DOTA_ORDER_ISSUER_PASSED_UNIT_ONLY" : 3
},
"OrderQueueBehavior_t" : {
"DOTA_ORDER_QUEUE_DEFAULT" : 0,
"DOTA_ORDER_QUEUE_NEVER" : 1,
"DOTA_ORDER_QUEUE_ALWAYS" : 2
},
"CLICK_BEHAVIORS" : {
"DOTA_CLICK_BEHAVIOR_NONE" : 0,
"DOTA_CLICK_BEHAVIOR_MOVE" : 1,
"DOTA_CLICK_BEHAVIOR_ATTACK" : 2,
"DOTA_CLICK_BEHAVIOR_CAST" : 3,
"DOTA_CLICK_BEHAVIOR_DROP_ITEM" : 4,
"DOTA_CLICK_BEHAVIOR_DROP_SHOP_ITEM" : 5,
"DOTA_CLICK_BEHAVIOR_DRAG" : 6,
"DOTA_CLICK_BEHAVIOR_LEARN_ABILITY" : 7,
"DOTA_CLICK_BEHAVIOR_PATROL" : 8,
"DOTA_CLICK_BEHAVIOR_VECTOR_CAST" : 9,
"DOTA_CLICK_BEHAVIOR_RIGHT_CLICK_TARGET" : 10,
"DOTA_CLICK_BEHAVIOR_RADAR" : 11,
"DOTA_CLICK_BEHAVIOR_LAST" : 12
},
"AbilityLearnResult_t" : {
"ABILITY_CAN_BE_UPGRADED" : 0,
"ABILITY_CANNOT_BE_UPGRADED_NOT_UPGRADABLE" : 1,
"ABILITY_CANNOT_BE_UPGRADED_AT_MAX" : 2,
"ABILITY_CANNOT_BE_UPGRADED_REQUIRES_LEVEL" : 3,
"ABILITY_NOT_LEARNABLE" : 4
}
}
\ No newline at end of file
{
"whitelist": {
"npc_dota_hero_ancient_apparition": "1",
"npc_dota_hero_antimage": "1",
"npc_dota_hero_axe": "1",
"npc_dota_hero_bane": "1",
"npc_dota_hero_beastmaster": "1",
"npc_dota_hero_bloodseeker": "1",
"npc_dota_hero_chen": "1",
"npc_dota_hero_crystal_maiden": "1",
"npc_dota_hero_dark_seer": "1",
"npc_dota_hero_dazzle": "1",
"npc_dota_hero_dragon_knight": "1",
"npc_dota_hero_doom_bringer": "1",
"npc_dota_hero_drow_ranger": "1",
"npc_dota_hero_earthshaker": "1",
"npc_dota_hero_enchantress": "1",
"npc_dota_hero_enigma": "1",
"npc_dota_hero_faceless_void": "1",
"npc_dota_hero_furion": "1",
"npc_dota_hero_juggernaut": "1",
"npc_dota_hero_kunkka": "1",
"npc_dota_hero_leshrac": "1",
"npc_dota_hero_lich": "1",
"npc_dota_hero_life_stealer": "1",
"npc_dota_hero_lina": "1",
"npc_dota_hero_lion": "1",
"npc_dota_hero_mirana": "1",
"npc_dota_hero_morphling": "1",
"npc_dota_hero_necrolyte": "1",
"npc_dota_hero_nevermore": "1",
"npc_dota_hero_night_stalker": "1",
"npc_dota_hero_omniknight": "1",
"npc_dota_hero_puck": "1",
"npc_dota_hero_pudge": "1",
"npc_dota_hero_pugna": "1",
"npc_dota_hero_rattletrap": "1",
"npc_dota_hero_razor": "1",
"npc_dota_hero_riki": "1",
"npc_dota_hero_sand_king": "1",
"npc_dota_hero_shadow_shaman": "1",
"npc_dota_hero_slardar": "1",
"npc_dota_hero_sniper": "1",
"npc_dota_hero_spectre": "1",
"npc_dota_hero_storm_spirit": "1",
"npc_dota_hero_sven": "1",
"npc_dota_hero_tidehunter": "1",
"npc_dota_hero_tinker": "1",
"npc_dota_hero_tiny": "1",
"npc_dota_hero_vengefulspirit": "1",
"npc_dota_hero_venomancer": "1",
"npc_dota_hero_viper": "1",
"npc_dota_hero_weaver": "1",
"npc_dota_hero_windrunner": "1",
"npc_dota_hero_witch_doctor": "1",
"npc_dota_hero_zuus": "1",
"npc_dota_hero_broodmother": "1",
"npc_dota_hero_skeleton_king": "1",
"npc_dota_hero_queenofpain": "1",
"npc_dota_hero_huskar": "1",
"npc_dota_hero_jakiro": "1",
"npc_dota_hero_batrider": "1",
"npc_dota_hero_warlock": "1",
"npc_dota_hero_alchemist": "1",
"npc_dota_hero_death_prophet": "1",
"npc_dota_hero_ursa": "1",
"npc_dota_hero_bounty_hunter": "1",
"npc_dota_hero_silencer": "1",
"npc_dota_hero_spirit_breaker": "1",
"npc_dota_hero_invoker": "1",
"npc_dota_hero_clinkz": "1",
"npc_dota_hero_obsidian_destroyer": "1",
"npc_dota_hero_shadow_demon": "1",
"npc_dota_hero_lycan": "1",
"npc_dota_hero_lone_druid": "1",
"npc_dota_hero_brewmaster": "1",
"npc_dota_hero_phantom_lancer": "1",
"npc_dota_hero_treant": "1",
"npc_dota_hero_ogre_magi": "1",
"npc_dota_hero_chaos_knight": "1",
"npc_dota_hero_phantom_assassin": "1",
"npc_dota_hero_gyrocopter": "1",
"npc_dota_hero_rubick": "1",
"npc_dota_hero_luna": "1",
"npc_dota_hero_wisp": "1",
"npc_dota_hero_disruptor": "1",
"npc_dota_hero_undying": "1",
"npc_dota_hero_templar_assassin": "1",
"npc_dota_hero_naga_siren": "1",
"npc_dota_hero_nyx_assassin": "1",
"npc_dota_hero_keeper_of_the_light": "1",
"npc_dota_hero_visage": "1",
"npc_dota_hero_meepo": "1",
"npc_dota_hero_magnataur": "1",
"npc_dota_hero_centaur": "1",
"npc_dota_hero_slark": "1",
"npc_dota_hero_shredder": "1",
"npc_dota_hero_medusa": "1",
"npc_dota_hero_troll_warlord": "1",
"npc_dota_hero_tusk": "1",
"npc_dota_hero_bristleback": "1",
"npc_dota_hero_skywrath_mage": "1",
"npc_dota_hero_elder_titan": "1",
"npc_dota_hero_abaddon": "1",
"npc_dota_hero_earth_spirit": "1",
"npc_dota_hero_ember_spirit": "1",
"npc_dota_hero_legion_commander": "1",
"npc_dota_hero_phoenix": "1",
"npc_dota_hero_terrorblade": "1",
"npc_dota_hero_techies": "1",
"npc_dota_hero_oracle": "1",
"npc_dota_hero_winter_wyvern": "1",
"npc_dota_hero_arc_warden": "1",
"npc_dota_hero_abyssal_underlord": "1",
"npc_dota_hero_monkey_king": "1",
"npc_dota_hero_dark_willow": "1",
"npc_dota_hero_pangolier": "1",
"npc_dota_hero_grimstroke": "1",
"npc_dota_hero_mars": "1",
"npc_dota_hero_snapfire": "1",
"npc_dota_hero_void_spirit": "1",
"npc_dota_hero_hoodwink": "1",
"npc_dota_hero_dawnbreaker": "1",
"npc_dota_hero_marci": "1",
"npc_dota_hero_primal_beast": "1",
"npc_dota_hero_muerta": "1"
}
}
\ No newline at end of file
"whitelist"
{
"npc_dota_hero_ancient_apparition" "1"
"npc_dota_hero_antimage" "1"
"npc_dota_hero_axe" "1"
"npc_dota_hero_bane" "1"
"npc_dota_hero_beastmaster" "1"
"npc_dota_hero_bloodseeker" "1"
"npc_dota_hero_chen" "1"
"npc_dota_hero_crystal_maiden" "1"
"npc_dota_hero_dark_seer" "1"
"npc_dota_hero_dazzle" "1"
"npc_dota_hero_dragon_knight" "1"
"npc_dota_hero_doom_bringer" "1"
"npc_dota_hero_drow_ranger" "1"
"npc_dota_hero_earthshaker" "1"
"npc_dota_hero_enchantress" "1"
"npc_dota_hero_enigma" "1"
"npc_dota_hero_faceless_void" "1"
"npc_dota_hero_furion" "1"
"npc_dota_hero_juggernaut" "1"
"npc_dota_hero_kunkka" "1"
"npc_dota_hero_leshrac" "1"
"npc_dota_hero_lich" "1"
"npc_dota_hero_life_stealer" "1"
"npc_dota_hero_lina" "1"
"npc_dota_hero_lion" "1"
"npc_dota_hero_mirana" "1"
"npc_dota_hero_morphling" "1"
"npc_dota_hero_necrolyte" "1"
"npc_dota_hero_nevermore" "1"
"npc_dota_hero_night_stalker" "1"
"npc_dota_hero_omniknight" "1"
"npc_dota_hero_puck" "1"
"npc_dota_hero_pudge" "1"
"npc_dota_hero_pugna" "1"
"npc_dota_hero_rattletrap" "1"
"npc_dota_hero_razor" "1"
"npc_dota_hero_riki" "1"
"npc_dota_hero_sand_king" "1"
"npc_dota_hero_shadow_shaman" "1"
"npc_dota_hero_slardar" "1"
"npc_dota_hero_sniper" "1"
"npc_dota_hero_spectre" "1"
"npc_dota_hero_storm_spirit" "1"
"npc_dota_hero_sven" "1"
"npc_dota_hero_tidehunter" "1"
"npc_dota_hero_tinker" "1"
"npc_dota_hero_tiny" "1"
"npc_dota_hero_vengefulspirit" "1"
"npc_dota_hero_venomancer" "1"
"npc_dota_hero_viper" "1"
"npc_dota_hero_weaver" "1"
"npc_dota_hero_windrunner" "1"
"npc_dota_hero_witch_doctor" "1"
"npc_dota_hero_zuus" "1"
"npc_dota_hero_broodmother" "1"
"npc_dota_hero_skeleton_king" "1"
"npc_dota_hero_queenofpain" "1"
"npc_dota_hero_huskar" "1"
"npc_dota_hero_jakiro" "1"
"npc_dota_hero_batrider" "1"
"npc_dota_hero_warlock" "1"
"npc_dota_hero_alchemist" "1"
"npc_dota_hero_death_prophet" "1"
"npc_dota_hero_ursa" "1"
"npc_dota_hero_bounty_hunter" "1"
"npc_dota_hero_silencer" "1"
"npc_dota_hero_spirit_breaker" "1"
"npc_dota_hero_invoker" "1"
"npc_dota_hero_clinkz" "1"
"npc_dota_hero_obsidian_destroyer" "1"
"npc_dota_hero_shadow_demon" "1"
"npc_dota_hero_lycan" "1"
"npc_dota_hero_lone_druid" "1"
"npc_dota_hero_brewmaster" "1"
"npc_dota_hero_phantom_lancer" "1"
"npc_dota_hero_treant" "1"
"npc_dota_hero_ogre_magi" "1"
"npc_dota_hero_chaos_knight" "1"
"npc_dota_hero_phantom_assassin" "1"
"npc_dota_hero_gyrocopter" "1"
"npc_dota_hero_rubick" "1"
"npc_dota_hero_luna" "1"
"npc_dota_hero_wisp" "1"
"npc_dota_hero_disruptor" "1"
"npc_dota_hero_undying" "1"
"npc_dota_hero_templar_assassin" "1"
"npc_dota_hero_naga_siren" "1"
"npc_dota_hero_nyx_assassin" "1"
"npc_dota_hero_keeper_of_the_light" "1"
"npc_dota_hero_visage" "1"
"npc_dota_hero_meepo" "1"
"npc_dota_hero_magnataur" "1"
"npc_dota_hero_centaur" "1"
"npc_dota_hero_slark" "1"
"npc_dota_hero_shredder" "1"
"npc_dota_hero_medusa" "1"
"npc_dota_hero_troll_warlord" "1"
"npc_dota_hero_tusk" "1"
"npc_dota_hero_bristleback" "1"
"npc_dota_hero_skywrath_mage" "1"
"npc_dota_hero_elder_titan" "1"
"npc_dota_hero_abaddon" "1"
"npc_dota_hero_earth_spirit" "1"
"npc_dota_hero_ember_spirit" "1"
"npc_dota_hero_legion_commander" "1"
"npc_dota_hero_phoenix" "1"
"npc_dota_hero_terrorblade" "1"
"npc_dota_hero_techies" "1"
"npc_dota_hero_oracle" "1"
"npc_dota_hero_winter_wyvern" "1"
"npc_dota_hero_arc_warden" "1"
"npc_dota_hero_abyssal_underlord" "1"
"npc_dota_hero_monkey_king" "1"
"npc_dota_hero_dark_willow" "1"
"npc_dota_hero_pangolier" "1"
"npc_dota_hero_grimstroke" "1"
"npc_dota_hero_mars" "1"
"npc_dota_hero_snapfire" "1"
"npc_dota_hero_void_spirit" "1"
"npc_dota_hero_hoodwink" "1"
"npc_dota_hero_dawnbreaker" "1"
"npc_dota_hero_marci" "1"
"npc_dota_hero_primal_beast" "1"
"npc_dota_hero_muerta" "1"
}
\ No newline at end of file
{
"whitelist": {
"npc_dota_hero_ancient_apparition": "1",
"npc_dota_hero_antimage": "1",
"npc_dota_hero_axe": "1",
"npc_dota_hero_bane": "1",
"npc_dota_hero_beastmaster": "1",
"npc_dota_hero_bloodseeker": "1",
"npc_dota_hero_chen": "1",
"npc_dota_hero_crystal_maiden": "1",
"npc_dota_hero_dark_seer": "1",
"npc_dota_hero_dazzle": "1",
"npc_dota_hero_dragon_knight": "1",
"npc_dota_hero_doom_bringer": "1",
"npc_dota_hero_drow_ranger": "1",
"npc_dota_hero_earthshaker": "1",
"npc_dota_hero_enchantress": "1",
"npc_dota_hero_enigma": "1",
"npc_dota_hero_faceless_void": "1",
"npc_dota_hero_furion": "1",
"npc_dota_hero_juggernaut": "1",
"npc_dota_hero_kunkka": "1",
"npc_dota_hero_leshrac": "1",
"npc_dota_hero_lich": "1",
"npc_dota_hero_life_stealer": "1",
"npc_dota_hero_lina": "1",
"npc_dota_hero_lion": "1",
"npc_dota_hero_mirana": "1",
"npc_dota_hero_morphling": "1",
"npc_dota_hero_necrolyte": "1",
"npc_dota_hero_nevermore": "1",
"npc_dota_hero_night_stalker": "1",
"npc_dota_hero_omniknight": "1",
"npc_dota_hero_puck": "1",
"npc_dota_hero_pudge": "1",
"npc_dota_hero_pugna": "1",
"npc_dota_hero_rattletrap": "1",
"npc_dota_hero_razor": "1",
"npc_dota_hero_riki": "1",
"npc_dota_hero_sand_king": "1",
"npc_dota_hero_shadow_shaman": "1",
"npc_dota_hero_slardar": "1",
"npc_dota_hero_sniper": "1",
"npc_dota_hero_spectre": "1",
"npc_dota_hero_storm_spirit": "1",
"npc_dota_hero_sven": "1",
"npc_dota_hero_tidehunter": "1",
"npc_dota_hero_tinker": "1",
"npc_dota_hero_tiny": "1",
"npc_dota_hero_vengefulspirit": "1",
"npc_dota_hero_venomancer": "1",
"npc_dota_hero_viper": "1",
"npc_dota_hero_weaver": "1",
"npc_dota_hero_windrunner": "1",
"npc_dota_hero_witch_doctor": "1",
"npc_dota_hero_zuus": "1",
"npc_dota_hero_broodmother": "1",
"npc_dota_hero_skeleton_king": "1",
"npc_dota_hero_queenofpain": "1",
"npc_dota_hero_huskar": "1",
"npc_dota_hero_jakiro": "1",
"npc_dota_hero_batrider": "1",
"npc_dota_hero_warlock": "1",
"npc_dota_hero_alchemist": "1",
"npc_dota_hero_death_prophet": "1",
"npc_dota_hero_ursa": "1",
"npc_dota_hero_bounty_hunter": "1",
"npc_dota_hero_silencer": "1",
"npc_dota_hero_spirit_breaker": "1",
"npc_dota_hero_invoker": "1",
"npc_dota_hero_clinkz": "1",
"npc_dota_hero_obsidian_destroyer": "1",
"npc_dota_hero_shadow_demon": "1",
"npc_dota_hero_lycan": "1",
"npc_dota_hero_lone_druid": "1",
"npc_dota_hero_brewmaster": "1",
"npc_dota_hero_phantom_lancer": "1",
"npc_dota_hero_treant": "1",
"npc_dota_hero_ogre_magi": "1",
"npc_dota_hero_chaos_knight": "1",
"npc_dota_hero_phantom_assassin": "1",
"npc_dota_hero_gyrocopter": "1",
"npc_dota_hero_rubick": "1",
"npc_dota_hero_luna": "1",
"npc_dota_hero_wisp": "1",
"npc_dota_hero_disruptor": "1",
"npc_dota_hero_undying": "1",
"npc_dota_hero_templar_assassin": "1",
"npc_dota_hero_naga_siren": "1",
"npc_dota_hero_nyx_assassin": "1",
"npc_dota_hero_keeper_of_the_light": "1",
"npc_dota_hero_visage": "1",
"npc_dota_hero_meepo": "1",
"npc_dota_hero_magnataur": "1",
"npc_dota_hero_centaur": "1",
"npc_dota_hero_slark": "1",
"npc_dota_hero_shredder": "1",
"npc_dota_hero_medusa": "1",
"npc_dota_hero_troll_warlord": "1",
"npc_dota_hero_tusk": "1",
"npc_dota_hero_bristleback": "1",
"npc_dota_hero_skywrath_mage": "1",
"npc_dota_hero_elder_titan": "1",
"npc_dota_hero_abaddon": "1",
"npc_dota_hero_earth_spirit": "1",
"npc_dota_hero_ember_spirit": "1",
"npc_dota_hero_legion_commander": "1",
"npc_dota_hero_phoenix": "1",
"npc_dota_hero_terrorblade": "1",
"npc_dota_hero_techies": "1",
"npc_dota_hero_oracle": "1",
"npc_dota_hero_winter_wyvern": "1",
"npc_dota_hero_arc_warden": "1",
"npc_dota_hero_abyssal_underlord": "1",
"npc_dota_hero_monkey_king": "1",
"npc_dota_hero_dark_willow": "1",
"npc_dota_hero_pangolier": "1",
"npc_dota_hero_grimstroke": "1",
"npc_dota_hero_mars": "1",
"npc_dota_hero_snapfire": "1",
"npc_dota_hero_void_spirit": "1",
"npc_dota_hero_hoodwink": "1",
"npc_dota_hero_dawnbreaker": "1",
"npc_dota_hero_marci": "1",
"npc_dota_hero_primal_beast": "1",
"npc_dota_hero_muerta": "1"
}
}
\ No newline at end of file
"CommonItems"
{
"item_tpscroll" "1"
"item_ward_observer" "1"
"item_ward_sentry" "1"
"item_smoke_of_deceit" "1"
"item_dust" "1"
"item_tome_of_knowledge" "1"
"item_clarity" "1"
"item_faerie_fire" "1"
"item_enchanted_mango" "1"
"item_tango" "1"
"item_flask" "1"
"item_infused_raindrop" "1"
"item_magic_wand" "1"
"item_bottle" "1"
"item_wind_lace" "1"
"item_gem" "1"
"item_blink" "1"
"item_travel_boots" "1"
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// Dota Heroes File
"DOTAAbilities"
{
}
This source diff could not be displayed because it is too large. You can view the blob instead.
"neutral_items"
{
"1"
{
"drop_rates"
{
"7:00"
{
"0" "14"
"1" "14"
"2" "14"
"3" "14"
"4" "14"
}
}
"items"
{
//"item_keen_optic" "1"
"item_trusty_shovel" "1"
"item_arcane_ring" "1"
//"item_possessed_mask" "1"
"item_mysterious_hat" "1"
"item_unstable_wand" "1"
"item_pogo_stick" "1"
"item_seeds_of_serenity" "1"
"item_lance_of_pursuit" "1"
"item_occult_bracelet" "1"
"item_duelist_gloves" "1"
//"item_ocean_heart" "1"
"item_broom_handle" "1"
//"item_chipped_vest" "1"
//"item_royal_jelly" "1"
"item_faded_broach" "1"
//"item_ironwood_tree" "1"
"item_spark_of_courage" "1"
}
}
"2"
{
"drop_rates"
{
"17:00"
{
"0" "10"
"1" "10"
"2" "10"
"3" "10"
"4" "10"
}
}
"items"
{
"item_ring_of_aquila" "1"
//"item_imp_claw" "1"
//"item_nether_shawl" "1"
"item_dragon_scale" "1"
"item_pupils_gift" "1"
"item_vambrace" "1"
//"item_misericorde" "1"
"item_grove_bow" "1"
"item_philosophers_stone" "1"
//"item_essence_ring" "1"
//"item_paintball" "1"
"item_bullwhip" "1"
//"item_quicksilver_amulet" "1"
//"item_dagger_of_ristul" "1"
"item_orb_of_destruction" "1"
"item_specialists_array" "1"
"item_eye_of_the_vizier" "1"
"item_vampire_fangs" "1"
//"item_blighted_spirit" "1"
"item_gossamer_cape" "1"
}
}
"3"
{
"drop_rates"
{
"27:00"
{
"0" "10"
"1" "10"
"2" "10"
"3" "10"
"4" "10"
}
}
"items"
{
"item_quickening_charm" "1"
"item_defiant_shell" "1"
//"item_black_powder_bag" "1"
//"item_spider_legs" "1"
//"item_icarus_wings" "1"
"item_paladin_sword" "1"
"item_vindicators_axe" "1"
"item_dandelion_amulet" "1"
//"item_orb_of_destruction" "1"
"item_titan_sliver" "1"
"item_enchanted_quiver" "1"
"item_elven_tunic" "1"
"item_cloak_of_flames" "1"
"item_ceremonial_robe" "1"
"item_psychic_headband" "1"
//"item_slime_vial" "1"
"item_ogre_seal_totem" "1"
//"item_quicksilver_amulet" "1"
//"item_essence_ring" "1"
}
}
"4"
{
"drop_rates"
{
"37:00"
{
"0" "10"
"1" "10"
"2" "10"
"3" "10"
"4" "10"
}
}
"items"
{
"item_timeless_relic" "1"
"item_spell_prism" "1"
"item_ascetic_cap" "1"
//"item_heavy_blade" "1"
//"item_flicker" "1"
"item_ninja_gear" "1"
//"item_illusionsts_cape" "1"
//"item_fortitude_ring" "1"
//"item_the_leveller" "1"
//"item_minotaur_horn" "1"
"item_spy_gadget" "1"
"item_trickster_cloak" "1"
"item_stormcrafter" "1"
"item_penta_edged_sword" "1"
"item_havoc_hammer" "1"
//"item_princes_knife" "1"
//"item_harpoon" "1"
//"item_barricade" "1"
//"item_horizons_equilibrium" "1"
"item_mind_breaker" "1"
"item_martyrs_plate" "1"
}
}
"5"
{
"drop_rates"
{
"60:00"
{
"0" "10"
"1" "10"
"2" "10"
"3" "10"
"4" "10"
}
}
"items"
{
"item_force_boots" "1"
"item_desolator_2" "1"
"item_seer_stone" "1"
"item_mirror_shield" "1"
"item_apex" "1"
//"item_ballista" "1"
"item_demonicon" "1"
"item_fallen_sky" "1"
"item_force_field" "1"
"item_pirate_hat" "1"
"item_ex_machina" "1"
"item_giants_ring" "1"
//"item_vengeances_shadow" "1"
"item_book_of_shadows" "1"
//"item_manacles_of_power" "1"
//"item_bottomless_chalice" "1"
//"item_wand_of_sanctitude" "1"
}
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// Dota Heroes File
"DOTAAbilities"
{
"Version" "1"
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// Dota Heroes File
"DOTAHeroes"
{
"Version" "1"
}
This source diff could not be displayed because it is too large. You can view the blob instead.
"DOTAHeroes"
{
"npc_dota_hero_antimage"
{
"popular_items"
{
"item_bfury" "1"
"item_manta" "1"
"item_power_treads" "1"
"item_abyssal_blade" "1"
"item_butterfly" "1"
"item_stout_shield" "1"
"item_sphere" "1"
"item_ultimate_scepter" "1"
"item_black_king_bar" "1"
"item_basher" "1"
"item_moon_shard" "1"
"item_monkey_king_bar" "1"
}
}
"npc_dota_hero_axe"
{
"popular_items"
{
"item_blink" "1"
"item_blade_mail" "1"
"item_tranquil_boots" "1"
"item_vanguard" "1"
"item_magic_wand" "1"
"item_black_king_bar" "1"
"item_travel_boots" "1"
"item_force_staff" "1"
"item_invis_sword" "1"
"item_crimson_guard" "1"
"item_stout_shield" "1"
"item_boots" "1"
}
}
"npc_dota_hero_bane"
{
"popular_items"
{
"item_magic_wand" "1"
"item_arcane_boots" "1"
"item_glimmer_cape" "1"
"item_aether_lens" "1"
"item_boots" "1"
"item_force_staff" "1"
"item_soul_ring" "1"
"item_mask_of_madness" "1"
"item_wind_lace" "1"
"item_power_treads" "1"
"item_phase_boots" "1"
"item_invis_sword" "1"
}
}
"npc_dota_hero_bloodseeker"
{
"popular_items"
{
"item_radiance" "1"
"item_black_king_bar" "1"
"item_power_treads" "1"
"item_hand_of_midas" "1"
"item_blade_mail" "1"
"item_phase_boots" "1"
"item_ring_of_aquila" "1"
"item_sange_and_yasha" "1"
"item_cyclone" "1"
"item_quelling_blade" "1"
"item_travel_boots" "1"
"item_stout_shield" "1"
}
}
"npc_dota_hero_crystal_maiden"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_magic_wand" "1"
"item_glimmer_cape" "1"
"item_force_staff" "1"
"item_blink" "1"
"item_wind_lace" "1"
"item_ghost" "1"
"item_hand_of_midas" "1"
"item_rod_of_atos" "1"
"item_bracer" "1"
"item_ancient_janggo" "1"
"item_kaya" "1"
}
}
"npc_dota_hero_drow_ranger"
{
"popular_items"
{
"item_power_treads" "1"
"item_hurricane_pike" "1"
"item_ring_of_aquila" "1"
"item_invis_sword" "1"
"item_mask_of_madness" "1"
"item_black_king_bar" "1"
"item_magic_wand" "1"
"item_butterfly" "1"
"item_dragon_lance" "1"
"item_manta" "1"
"item_silver_edge" "1"
"item_yasha" "1"
}
}
"npc_dota_hero_earthshaker"
{
"popular_items"
{
"item_blink" "1"
"item_arcane_boots" "1"
"item_force_staff" "1"
"item_invis_sword" "1"
"item_magic_wand" "1"
"item_cyclone" "1"
"item_soul_ring" "1"
"item_tranquil_boots" "1"
"item_wind_lace" "1"
"item_power_treads" "1"
"item_travel_boots" "1"
"item_boots" "1"
}
}
"npc_dota_hero_juggernaut"
{
"popular_items"
{
"item_phase_boots" "1"
"item_manta" "1"
"item_ring_of_aquila" "1"
"item_diffusal_blade" "1"
"item_bfury" "1"
"item_blink" "1"
"item_butterfly" "1"
"item_magic_wand" "1"
"item_sange_and_yasha" "1"
"item_basher" "1"
"item_travel_boots" "1"
"item_abyssal_blade" "1"
}
}
"npc_dota_hero_mirana"
{
"popular_items"
{
"item_ring_of_aquila" "1"
"item_phase_boots" "1"
"item_magic_wand" "1"
"item_diffusal_blade" "1"
"item_manta" "1"
"item_power_treads" "1"
"item_maelstrom" "1"
"item_dragon_lance" "1"
"item_sphere" "1"
"item_mjollnir" "1"
"item_hurricane_pike" "1"
"item_bottle" "1"
}
}
"npc_dota_hero_morphling"
{
"popular_items"
{
"item_magic_wand" "1"
"item_power_treads" "1"
"item_ring_of_aquila" "1"
"item_sphere" "1"
"item_ethereal_blade" "1"
"item_travel_boots" "1"
"item_manta" "1"
"item_blink" "1"
"item_skadi" "1"
"item_arcane_boots" "1"
"item_soul_ring" "1"
"item_dragon_lance" "1"
}
}
"npc_dota_hero_nevermore"
{
"popular_items"
{
"item_power_treads" "1"
"item_ring_of_aquila" "1"
"item_black_king_bar" "1"
"item_invis_sword" "1"
"item_hurricane_pike" "1"
"item_blink" "1"
"item_cyclone" "1"
"item_travel_boots" "1"
"item_bottle" "1"
"item_magic_wand" "1"
"item_ultimate_scepter" "1"
"item_butterfly" "1"
}
}
"npc_dota_hero_phantom_lancer"
{
"popular_items"
{
"item_diffusal_blade" "1"
"item_ring_of_aquila" "1"
"item_manta" "1"
"item_travel_boots" "1"
"item_power_treads" "1"
"item_heart" "1"
"item_magic_wand" "1"
"item_butterfly" "1"
"item_skadi" "1"
"item_soul_ring" "1"
"item_ultimate_scepter" "1"
"item_quelling_blade" "1"
}
}
"npc_dota_hero_puck"
{
"popular_items"
{
"item_blink" "1"
"item_cyclone" "1"
"item_veil_of_discord" "1"
"item_travel_boots" "1"
"item_power_treads" "1"
"item_magic_wand" "1"
"item_dagon_5" "1"
"item_sphere" "1"
"item_bottle" "1"
"item_ultimate_scepter" "1"
"item_boots" "1"
"item_null_talisman" "1"
}
}
"npc_dota_hero_pudge"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_magic_wand" "1"
"item_aether_lens" "1"
"item_blink" "1"
"item_urn_of_shadows" "1"
"item_blade_mail" "1"
"item_force_staff" "1"
"item_spirit_vessel" "1"
"item_rod_of_atos" "1"
"item_hood_of_defiance" "1"
"item_soul_ring" "1"
"item_pipe" "1"
}
}
"npc_dota_hero_razor"
{
"popular_items"
{
"item_phase_boots" "1"
"item_ring_of_aquila" "1"
"item_sange_and_yasha" "1"
"item_black_king_bar" "1"
"item_magic_wand" "1"
"item_hurricane_pike" "1"
"item_ultimate_scepter" "1"
"item_ancient_janggo" "1"
"item_travel_boots" "1"
"item_hood_of_defiance" "1"
"item_shivas_guard" "1"
"item_power_treads" "1"
}
}
"npc_dota_hero_sand_king"
{
"popular_items"
{
"item_blink" "1"
"item_force_staff" "1"
"item_magic_wand" "1"
"item_tranquil_boots" "1"
"item_cyclone" "1"
"item_arcane_boots" "1"
"item_ultimate_scepter" "1"
"item_soul_ring" "1"
"item_travel_boots" "1"
"item_lotus_orb" "1"
"item_stout_shield" "1"
"item_wind_lace" "1"
}
}
"npc_dota_hero_storm_spirit"
{
"popular_items"
{
"item_bloodstone" "1"
"item_power_treads" "1"
"item_bottle" "1"
"item_kaya" "1"
"item_orchid" "1"
"item_sphere" "1"
"item_magic_wand" "1"
"item_bloodthorn" "1"
"item_null_talisman" "1"
"item_soul_ring" "1"
"item_black_king_bar" "1"
"item_shivas_guard" "1"
}
}
"npc_dota_hero_sven"
{
"popular_items"
{
"item_blink" "1"
"item_power_treads" "1"
"item_mask_of_madness" "1"
"item_black_king_bar" "1"
"item_echo_sabre" "1"
"item_sange_and_yasha" "1"
"item_greater_crit" "1"
"item_assault" "1"
"item_bloodthorn" "1"
"item_travel_boots" "1"
"item_monkey_king_bar" "1"
"item_moon_shard" "1"
}
}
"npc_dota_hero_tiny"
{
"popular_items"
{
"item_blink" "1"
"item_echo_sabre" "1"
"item_power_treads" "1"
"item_magic_wand" "1"
"item_arcane_boots" "1"
"item_invis_sword" "1"
"item_assault" "1"
"item_bottle" "1"
"item_soul_ring" "1"
"item_black_king_bar" "1"
"item_travel_boots" "1"
"item_force_staff" "1"
}
}
"npc_dota_hero_vengefulspirit"
{
"popular_items"
{
"item_magic_wand" "1"
"item_power_treads" "1"
"item_ring_of_aquila" "1"
"item_solar_crest" "1"
"item_mask_of_madness" "1"
"item_force_staff" "1"
"item_hurricane_pike" "1"
"item_medallion_of_courage" "1"
"item_tranquil_boots" "1"
"item_black_king_bar" "1"
"item_invis_sword" "1"
"item_arcane_boots" "1"
}
}
"npc_dota_hero_windrunner"
{
"popular_items"
{
"item_phase_boots" "1"
"item_maelstrom" "1"
"item_blink" "1"
"item_magic_wand" "1"
"item_ultimate_scepter" "1"
"item_sphere" "1"
"item_force_staff" "1"
"item_null_talisman" "1"
"item_bottle" "1"
"item_black_king_bar" "1"
"item_monkey_king_bar" "1"
"item_desolator" "1"
}
}
"npc_dota_hero_zuus"
{
"popular_items"
{
"item_ultimate_scepter" "1"
"item_aether_lens" "1"
"item_kaya" "1"
"item_arcane_boots" "1"
"item_travel_boots" "1"
"item_veil_of_discord" "1"
"item_cyclone" "1"
"item_boots" "1"
"item_soul_ring" "1"
"item_force_staff" "1"
"item_bottle" "1"
"item_blink" "1"
}
}
"npc_dota_hero_kunkka"
{
"popular_items"
{
"item_magic_wand" "1"
"item_phase_boots" "1"
"item_greater_crit" "1"
"item_aether_lens" "1"
"item_blink" "1"
"item_arcane_boots" "1"
"item_armlet" "1"
"item_glimmer_cape" "1"
"item_force_staff" "1"
"item_urn_of_shadows" "1"
"item_ancient_janggo" "1"
"item_tranquil_boots" "1"
}
}
"npc_dota_hero_lina"
{
"popular_items"
{
"item_bloodstone" "1"
"item_invis_sword" "1"
"item_cyclone" "1"
"item_travel_boots" "1"
"item_null_talisman" "1"
"item_bottle" "1"
"item_magic_wand" "1"
"item_phase_boots" "1"
"item_sphere" "1"
"item_kaya" "1"
"item_arcane_boots" "1"
"item_black_king_bar" "1"
}
}
"npc_dota_hero_lion"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_blink" "1"
"item_magic_wand" "1"
"item_force_staff" "1"
"item_glimmer_cape" "1"
"item_aether_lens" "1"
"item_wind_lace" "1"
"item_ghost" "1"
"item_ultimate_scepter" "1"
"item_cyclone" "1"
"item_kaya" "1"
"item_magic_stick" "1"
}
}
"npc_dota_hero_shadow_shaman"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_blink" "1"
"item_ultimate_scepter" "1"
"item_wind_lace" "1"
"item_glimmer_cape" "1"
"item_aether_lens" "1"
"item_force_staff" "1"
"item_tranquil_boots" "1"
"item_boots" "1"
"item_refresher" "1"
"item_travel_boots" "1"
}
}
"npc_dota_hero_slardar"
{
"popular_items"
{
"item_blink" "1"
"item_tranquil_boots" "1"
"item_magic_wand" "1"
"item_force_staff" "1"
"item_power_treads" "1"
"item_black_king_bar" "1"
"item_solar_crest" "1"
"item_stout_shield" "1"
"item_cyclone" "1"
"item_wind_lace" "1"
"item_hand_of_midas" "1"
"item_quelling_blade" "1"
}
}
"npc_dota_hero_tidehunter"
{
"popular_items"
{
"item_blink" "1"
"item_magic_wand" "1"
"item_guardian_greaves" "1"
"item_arcane_boots" "1"
"item_pipe" "1"
"item_hood_of_defiance" "1"
"item_force_staff" "1"
"item_shivas_guard" "1"
"item_mekansm" "1"
"item_quelling_blade" "1"
"item_ultimate_scepter" "1"
"item_refresher" "1"
}
}
"npc_dota_hero_witch_doctor"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_glimmer_cape" "1"
"item_magic_wand" "1"
"item_ultimate_scepter" "1"
"item_boots" "1"
"item_force_staff" "1"
"item_ghost" "1"
"item_wind_lace" "1"
"item_urn_of_shadows" "1"
"item_tranquil_boots" "1"
"item_spirit_vessel" "1"
"item_aether_lens" "1"
}
}
"npc_dota_hero_lich"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_magic_wand" "1"
"item_glimmer_cape" "1"
"item_force_staff" "1"
"item_rod_of_atos" "1"
"item_hand_of_midas" "1"
"item_wind_lace" "1"
"item_ultimate_scepter" "1"
"item_urn_of_shadows" "1"
"item_mekansm" "1"
"item_ghost" "1"
"item_magic_stick" "1"
}
}
"npc_dota_hero_riki"
{
"popular_items"
{
"item_diffusal_blade" "1"
"item_phase_boots" "1"
"item_orb_of_venom" "1"
"item_ring_of_aquila" "1"
"item_magic_wand" "1"
"item_power_treads" "1"
"item_basher" "1"
"item_blink" "1"
"item_yasha" "1"
"item_sange_and_yasha" "1"
"item_urn_of_shadows" "1"
"item_blade_of_alacrity" "1"
}
}
"npc_dota_hero_enigma"
{
"popular_items"
{
"item_blink" "1"
"item_hand_of_midas" "1"
"item_black_king_bar" "1"
"item_soul_ring" "1"
"item_arcane_boots" "1"
"item_boots" "1"
"item_octarine_core" "1"
"item_guardian_greaves" "1"
"item_travel_boots" "1"
"item_refresher" "1"
"item_ultimate_scepter" "1"
"item_sphere" "1"
}
}
"npc_dota_hero_tinker"
{
"popular_items"
{
"item_travel_boots" "1"
"item_blink" "1"
"item_soul_ring" "1"
"item_aether_lens" "1"
"item_ultimate_scepter" "1"
"item_kaya" "1"
"item_bottle" "1"
"item_sheepstick" "1"
"item_dagon_5" "1"
"item_null_talisman" "1"
"item_bloodstone" "1"
"item_ghost" "1"
}
}
"npc_dota_hero_sniper"
{
"popular_items"
{
"item_hurricane_pike" "1"
"item_phase_boots" "1"
"item_ring_of_aquila" "1"
"item_mask_of_madness" "1"
"item_mjollnir" "1"
"item_maelstrom" "1"
"item_power_treads" "1"
"item_monkey_king_bar" "1"
"item_invis_sword" "1"
"item_dragon_lance" "1"
"item_black_king_bar" "1"
"item_magic_wand" "1"
}
}
"npc_dota_hero_necrolyte"
{
"popular_items"
{
"item_magic_wand" "1"
"item_veil_of_discord" "1"
"item_phase_boots" "1"
"item_radiance" "1"
"item_ultimate_scepter" "1"
"item_force_staff" "1"
"item_power_treads" "1"
"item_blink" "1"
"item_dagon_5" "1"
"item_hood_of_defiance" "1"
"item_rod_of_atos" "1"
"item_blade_mail" "1"
}
}
"npc_dota_hero_warlock"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_hand_of_midas" "1"
"item_glimmer_cape" "1"
"item_boots" "1"
"item_ultimate_scepter" "1"
"item_force_staff" "1"
"item_wind_lace" "1"
"item_refresher" "1"
"item_ghost" "1"
"item_point_booster" "1"
"item_tranquil_boots" "1"
}
}
"npc_dota_hero_beastmaster"
{
"popular_items"
{
"item_necronomicon_3" "1"
"item_blink" "1"
"item_magic_wand" "1"
"item_solar_crest" "1"
"item_travel_boots" "1"
"item_vladmir" "1"
"item_stout_shield" "1"
"item_tranquil_boots" "1"
"item_boots" "1"
"item_medallion_of_courage" "1"
"item_quelling_blade" "1"
"item_power_treads" "1"
}
}
"npc_dota_hero_queenofpain"
{
"popular_items"
{
"item_power_treads" "1"
"item_veil_of_discord" "1"
"item_magic_wand" "1"
"item_orchid" "1"
"item_sphere" "1"
"item_cyclone" "1"
"item_bottle" "1"
"item_black_king_bar" "1"
"item_shivas_guard" "1"
"item_null_talisman" "1"
"item_mjollnir" "1"
"item_bloodthorn" "1"
}
}
"npc_dota_hero_venomancer"
{
"popular_items"
{
"item_hurricane_pike" "1"
"item_ring_of_aquila" "1"
"item_veil_of_discord" "1"
"item_power_treads" "1"
"item_magic_wand" "1"
"item_ultimate_scepter" "1"
"item_hand_of_midas" "1"
"item_travel_boots" "1"
"item_force_staff" "1"
"item_blink" "1"
"item_boots" "1"
"item_black_king_bar" "1"
}
}
"npc_dota_hero_faceless_void"
{
"popular_items"
{
"item_power_treads" "1"
"item_mask_of_madness" "1"
"item_diffusal_blade" "1"
"item_manta" "1"
"item_black_king_bar" "1"
"item_invis_sword" "1"
"item_sphere" "1"
"item_magic_wand" "1"
"item_ring_of_aquila" "1"
"item_monkey_king_bar" "1"
"item_quelling_blade" "1"
"item_bfury" "1"
}
}
"npc_dota_hero_skeleton_king"
{
"popular_items"
{
"item_power_treads" "1"
"item_blink" "1"
"item_radiance" "1"
"item_armlet" "1"
"item_blade_mail" "1"
"item_magic_wand" "1"
"item_hand_of_midas" "1"
"item_assault" "1"
"item_desolator" "1"
"item_quelling_blade" "1"
"item_black_king_bar" "1"
"item_echo_sabre" "1"
}
}
"npc_dota_hero_death_prophet"
{
"popular_items"
{
"item_cyclone" "1"
"item_phase_boots" "1"
"item_magic_wand" "1"
"item_octarine_core" "1"
"item_shivas_guard" "1"
"item_null_talisman" "1"
"item_veil_of_discord" "1"
"item_black_king_bar" "1"
"item_travel_boots" "1"
"item_solar_crest" "1"
"item_rod_of_atos" "1"
"item_bottle" "1"
}
}
"npc_dota_hero_phantom_assassin"
{
"popular_items"
{
"item_phase_boots" "1"
"item_desolator" "1"
"item_black_king_bar" "1"
"item_bfury" "1"
"item_ring_of_aquila" "1"
"item_abyssal_blade" "1"
"item_magic_wand" "1"
"item_mask_of_madness" "1"
"item_basher" "1"
"item_vladmir" "1"
"item_power_treads" "1"
"item_stout_shield" "1"
}
}
"npc_dota_hero_pugna"
{
"popular_items"
{
"item_aether_lens" "1"
"item_ultimate_scepter" "1"
"item_magic_wand" "1"
"item_boots" "1"
"item_kaya" "1"
"item_travel_boots" "1"
"item_force_staff" "1"
"item_arcane_boots" "1"
"item_rod_of_atos" "1"
"item_veil_of_discord" "1"
"item_tranquil_boots" "1"
"item_dagon_5" "1"
}
}
"npc_dota_hero_templar_assassin"
{
"popular_items"
{
"item_desolator" "1"
"item_blink" "1"
"item_power_treads" "1"
"item_ring_of_aquila" "1"
"item_black_king_bar" "1"
"item_hurricane_pike" "1"
"item_bloodthorn" "1"
"item_bottle" "1"
"item_monkey_king_bar" "1"
"item_magic_wand" "1"
"item_travel_boots" "1"
"item_dragon_lance" "1"
}
}
"npc_dota_hero_viper"
{
"popular_items"
{
"item_power_treads" "1"
"item_ring_of_aquila" "1"
"item_hurricane_pike" "1"
"item_magic_wand" "1"
"item_veil_of_discord" "1"
"item_blade_mail" "1"
"item_maelstrom" "1"
"item_hood_of_defiance" "1"
"item_black_king_bar" "1"
"item_mjollnir" "1"
"item_dragon_lance" "1"
"item_phase_boots" "1"
}
}
"npc_dota_hero_luna"
{
"popular_items"
{
"item_power_treads" "1"
"item_manta" "1"
"item_mask_of_madness" "1"
"item_ring_of_aquila" "1"
"item_black_king_bar" "1"
"item_butterfly" "1"
"item_hurricane_pike" "1"
"item_dragon_lance" "1"
"item_magic_wand" "1"
"item_travel_boots" "1"
"item_yasha" "1"
"item_satanic" "1"
}
}
"npc_dota_hero_dragon_knight"
{
"popular_items"
{
"item_power_treads" "1"
"item_black_king_bar" "1"
"item_armlet" "1"
"item_magic_wand" "1"
"item_blink" "1"
"item_invis_sword" "1"
"item_assault" "1"
"item_soul_ring" "1"
"item_hand_of_midas" "1"
"item_silver_edge" "1"
"item_bottle" "1"
"item_heavens_halberd" "1"
"item_quelling_blade" "1"
}
}
"npc_dota_hero_dazzle"
{
"popular_items"
{
"item_magic_wand" "1"
"item_arcane_boots" "1"
"item_boots" "1"
"item_glimmer_cape" "1"
"item_urn_of_shadows" "1"
"item_solar_crest" "1"
"item_force_staff" "1"
"item_medallion_of_courage" "1"
"item_wind_lace" "1"
"item_spirit_vessel" "1"
"item_aether_lens" "1"
"item_magic_stick" "1"
}
}
"npc_dota_hero_rattletrap"
{
"popular_items"
{
"item_blade_mail" "1"
"item_force_staff" "1"
"item_magic_wand" "1"
"item_tranquil_boots" "1"
"item_ultimate_scepter" "1"
"item_urn_of_shadows" "1"
"item_phase_boots" "1"
"item_spirit_vessel" "1"
"item_hand_of_midas" "1"
"item_stout_shield" "1"
"item_power_treads" "1"
"item_travel_boots" "1"
}
}
"npc_dota_hero_leshrac"
{
"popular_items"
{
"item_bloodstone" "1"
"item_cyclone" "1"
"item_magic_wand" "1"
"item_travel_boots" "1"
"item_kaya" "1"
"item_arcane_boots" "1"
"item_boots" "1"
"item_null_talisman" "1"
"item_rod_of_atos" "1"
"item_bottle" "1"
"item_black_king_bar" "1"
"item_shivas_guard" "1"
}
}
"npc_dota_hero_furion"
{
"popular_items"
{
"item_phase_boots" "1"
"item_orchid" "1"
"item_invis_sword" "1"
"item_ancient_janggo" "1"
"item_maelstrom" "1"
"item_hand_of_midas" "1"
"item_sheepstick" "1"
"item_bloodthorn" "1"
"item_magic_wand" "1"
"item_power_treads" "1"
"item_black_king_bar" "1"
"item_blight_stone" "1"
}
}
"npc_dota_hero_life_stealer"
{
"popular_items"
{
"item_phase_boots" "1"
"item_armlet" "1"
"item_desolator" "1"
"item_assault" "1"
"item_sange_and_yasha" "1"
"item_magic_wand" "1"
"item_echo_sabre" "1"
"item_hand_of_midas" "1"
"item_quelling_blade" "1"
"item_abyssal_blade" "1"
"item_basher" "1"
"item_monkey_king_bar" "1"
}
}
"npc_dota_hero_dark_seer"
{
"popular_items"
{
"item_soul_ring" "1"
"item_guardian_greaves" "1"
"item_blink" "1"
"item_stout_shield" "1"
"item_magic_wand" "1"
"item_pipe" "1"
"item_arcane_boots" "1"
"item_mekansm" "1"
"item_force_staff" "1"
"item_shivas_guard" "1"
"item_lotus_orb" "1"
"item_helm_of_the_dominator" "1"
}
}
"npc_dota_hero_clinkz"
{
"popular_items"
{
"item_desolator" "1"
"item_power_treads" "1"
"item_ring_of_aquila" "1"
"item_soul_ring" "1"
"item_black_king_bar" "1"
"item_medallion_of_courage" "1"
"item_sheepstick" "1"
"item_solar_crest" "1"
"item_bloodthorn" "1"
"item_boots" "1"
"item_orchid" "1"
"item_monkey_king_bar" "1"
}
}
"npc_dota_hero_omniknight"
{
"popular_items"
{
"item_soul_ring" "1"
"item_magic_wand" "1"
"item_hand_of_midas" "1"
"item_guardian_greaves" "1"
"item_arcane_boots" "1"
"item_phase_boots" "1"
"item_force_staff" "1"
"item_radiance" "1"
"item_aether_lens" "1"
"item_blink" "1"
"item_ultimate_scepter" "1"
"item_stout_shield" "1"
}
}
"npc_dota_hero_enchantress"
{
"popular_items"
{
"item_hurricane_pike" "1"
"item_phase_boots" "1"
"item_magic_wand" "1"
"item_ancient_janggo" "1"
"item_power_treads" "1"
"item_ultimate_scepter" "1"
"item_hand_of_midas" "1"
"item_dragon_lance" "1"
"item_rod_of_atos" "1"
"item_hood_of_defiance" "1"
"item_orb_of_venom" "1"
"item_monkey_king_bar" "1"
}
}
"npc_dota_hero_huskar"
{
"popular_items"
{
"item_armlet" "1"
"item_heavens_halberd" "1"
"item_power_treads" "1"
"item_black_king_bar" "1"
"item_lifesteal" "1"
"item_magic_wand" "1"
"item_boots" "1"
"item_hurricane_pike" "1"
"item_satanic" "1"
"item_solar_crest" "1"
"item_phase_boots" "1"
"item_travel_boots" "1"
}
}
"npc_dota_hero_night_stalker"
{
"popular_items"
{
"item_phase_boots" "1"
"item_magic_wand" "1"
"item_urn_of_shadows" "1"
"item_ultimate_scepter" "1"
"item_solar_crest" "1"
"item_spirit_vessel" "1"
"item_orb_of_venom" "1"
"item_hand_of_midas" "1"
"item_heavens_halberd" "1"
"item_medallion_of_courage" "1"
"item_black_king_bar" "1"
"item_ogre_axe" "1"
}
}
"npc_dota_hero_broodmother"
{
"popular_items"
{
"item_soul_ring" "1"
"item_desolator" "1"
"item_black_king_bar" "1"
"item_power_treads" "1"
"item_orchid" "1"
"item_phase_boots" "1"
"item_mask_of_madness" "1"
"item_radiance" "1"
"item_medallion_of_courage" "1"
"item_bloodthorn" "1"
"item_solar_crest" "1"
"item_quelling_blade" "1"
}
}
"npc_dota_hero_bounty_hunter"
{
"popular_items"
{
"item_orb_of_venom" "1"
"item_magic_wand" "1"
"item_guardian_greaves" "1"
"item_arcane_boots" "1"
"item_force_staff" "1"
"item_solar_crest" "1"
"item_urn_of_shadows" "1"
"item_spirit_vessel" "1"
"item_wind_lace" "1"
"item_pipe" "1"
"item_lotus_orb" "1"
"item_phase_boots" "1"
}
}
"npc_dota_hero_weaver"
{
"popular_items"
{
"item_ring_of_aquila" "1"
"item_power_treads" "1"
"item_sphere" "1"
"item_diffusal_blade" "1"
"item_magic_wand" "1"
"item_desolator" "1"
"item_dragon_lance" "1"
"item_black_king_bar" "1"
"item_blight_stone" "1"
"item_hurricane_pike" "1"
"item_monkey_king_bar" "1"
"item_maelstrom" "1"
}
}
"npc_dota_hero_jakiro"
{
"popular_items"
{
"item_magic_wand" "1"
"item_cyclone" "1"
"item_tranquil_boots" "1"
"item_force_staff" "1"
"item_arcane_boots" "1"
"item_glimmer_cape" "1"
"item_rod_of_atos" "1"
"item_wind_lace" "1"
"item_kaya" "1"
"item_veil_of_discord" "1"
"item_aether_lens" "1"
"item_boots" "1"
}
}
"npc_dota_hero_batrider"
{
"popular_items"
{
"item_blink" "1"
"item_force_staff" "1"
"item_tranquil_boots" "1"
"item_magic_wand" "1"
"item_ancient_janggo" "1"
"item_travel_boots" "1"
"item_cyclone" "1"
"item_black_king_bar" "1"
"item_wind_lace" "1"
"item_ghost" "1"
"item_ultimate_scepter" "1"
"item_shivas_guard" "1"
}
}
"npc_dota_hero_chen"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_hand_of_midas" "1"
"item_ultimate_scepter" "1"
"item_mekansm" "1"
"item_guardian_greaves" "1"
"item_boots" "1"
"item_medallion_of_courage" "1"
"item_vladmir" "1"
"item_helm_of_the_dominator" "1"
"item_magic_wand" "1"
"item_ghost" "1"
"item_pipe" "1"
"item_force_staff" "1"
}
}
"npc_dota_hero_spectre"
{
"popular_items"
{
"item_phase_boots" "1"
"item_radiance" "1"
"item_manta" "1"
"item_diffusal_blade" "1"
"item_magic_wand" "1"
"item_blade_mail" "1"
"item_vanguard" "1"
"item_heart" "1"
"item_urn_of_shadows" "1"
"item_ring_of_aquila" "1"
"item_quelling_blade" "1"
"item_power_treads" "1"
}
}
"npc_dota_hero_ancient_apparition"
{
"popular_items"
{
"item_ultimate_scepter" "1"
"item_magic_wand" "1"
"item_hand_of_midas" "1"
"item_tranquil_boots" "1"
"item_arcane_boots" "1"
"item_boots" "1"
"item_glimmer_cape" "1"
"item_force_staff" "1"
"item_cyclone" "1"
"item_urn_of_shadows" "1"
"item_kaya" "1"
"item_wind_lace" "1"
}
}
"npc_dota_hero_doom_bringer"
{
"popular_items"
{
"item_phase_boots" "1"
"item_ancient_janggo" "1"
"item_invis_sword" "1"
"item_blink" "1"
"item_black_king_bar" "1"
"item_magic_wand" "1"
"item_shivas_guard" "1"
"item_hand_of_midas" "1"
"item_blade_mail" "1"
"item_heavens_halberd" "1"
"item_travel_boots" "1"
"item_tranquil_boots" "1"
}
}
"npc_dota_hero_ursa"
{
"popular_items"
{
"item_blink" "1"
"item_phase_boots" "1"
"item_black_king_bar" "1"
"item_basher" "1"
"item_vladmir" "1"
"item_mask_of_madness" "1"
"item_lifesteal" "1"
"item_abyssal_blade" "1"
"item_desolator" "1"
"item_magic_wand" "1"
"item_diffusal_blade" "1"
"item_ultimate_scepter" "1"
}
}
"npc_dota_hero_spirit_breaker"
{
"popular_items"
{
"item_power_treads" "1"
"item_urn_of_shadows" "1"
"item_magic_wand" "1"
"item_orb_of_venom" "1"
"item_blade_mail" "1"
"item_spirit_vessel" "1"
"item_invis_sword" "1"
"item_hand_of_midas" "1"
"item_boots" "1"
"item_stout_shield" "1"
"item_heavens_halberd" "1"
"item_black_king_bar" "1"
}
}
"npc_dota_hero_gyrocopter"
{
"popular_items"
{
"item_phase_boots" "1"
"item_ring_of_aquila" "1"
"item_black_king_bar" "1"
"item_sange_and_yasha" "1"
"item_butterfly" "1"
"item_magic_wand" "1"
"item_mask_of_madness" "1"
"item_dragon_lance" "1"
"item_hurricane_pike" "1"
"item_ultimate_scepter" "1"
"item_satanic" "1"
"item_travel_boots" "1"
}
}
"npc_dota_hero_alchemist"
{
"popular_items"
{
"item_travel_boots" "1"
"item_radiance" "1"
"item_armlet" "1"
"item_power_treads" "1"
"item_manta" "1"
"item_assault" "1"
"item_black_king_bar" "1"
"item_quelling_blade" "1"
"item_octarine_core" "1"
"item_blink" "1"
"item_invis_sword" "1"
"item_stout_shield" "1"
}
}
"npc_dota_hero_invoker"
{
"popular_items"
{
"item_ultimate_scepter" "1"
"item_travel_boots" "1"
"item_hand_of_midas" "1"
"item_null_talisman" "1"
"item_blink" "1"
"item_sphere" "1"
"item_magic_wand" "1"
"item_cyclone" "1"
"item_octarine_core" "1"
"item_black_king_bar" "1"
"item_boots" "1"
"item_force_staff" "1"
}
}
"npc_dota_hero_silencer"
{
"popular_items"
{
"item_magic_wand" "1"
"item_power_treads" "1"
"item_force_staff" "1"
"item_tranquil_boots" "1"
"item_rod_of_atos" "1"
"item_hurricane_pike" "1"
"item_glimmer_cape" "1"
"item_hand_of_midas" "1"
"item_boots" "1"
"item_wind_lace" "1"
"item_null_talisman" "1"
"item_urn_of_shadows" "1"
}
}
"npc_dota_hero_obsidian_destroyer"
{
"popular_items"
{
"item_power_treads" "1"
"item_hurricane_pike" "1"
"item_blink" "1"
"item_null_talisman" "1"
"item_hand_of_midas" "1"
"item_magic_wand" "1"
"item_black_king_bar" "1"
"item_sheepstick" "1"
"item_sphere" "1"
"item_rod_of_atos" "1"
"item_travel_boots" "1"
"item_force_staff" "1"
}
}
"npc_dota_hero_lycan"
{
"popular_items"
{
"item_power_treads" "1"
"item_necronomicon_3" "1"
"item_black_king_bar" "1"
"item_mask_of_madness" "1"
"item_assault" "1"
"item_quelling_blade" "1"
"item_desolator" "1"
"item_armlet" "1"
"item_vladmir" "1"
"item_stout_shield" "1"
"item_helm_of_the_dominator" "1"
"item_travel_boots" "1"
}
}
"npc_dota_hero_brewmaster"
{
"popular_items"
{
"item_blink" "1"
"item_magic_wand" "1"
"item_radiance" "1"
"item_vladmir" "1"
"item_phase_boots" "1"
"item_hand_of_midas" "1"
"item_soul_ring" "1"
"item_power_treads" "1"
"item_travel_boots" "1"
"item_black_king_bar" "1"
"item_ultimate_scepter" "1"
"item_boots" "1"
}
}
"npc_dota_hero_shadow_demon"
{
"popular_items"
{
"item_magic_wand" "1"
"item_arcane_boots" "1"
"item_force_staff" "1"
"item_aether_lens" "1"
"item_glimmer_cape" "1"
"item_tranquil_boots" "1"
"item_wind_lace" "1"
"item_blink" "1"
"item_boots" "1"
"item_urn_of_shadows" "1"
"item_ultimate_scepter" "1"
"item_cyclone" "1"
}
}
"npc_dota_hero_lone_druid"
{
"popular_items"
{
"item_boots" "1"
"item_ultimate_scepter" "1"
"item_phase_boots" "1"
"item_tranquil_boots" "1"
"item_ring_of_aquila" "1"
"item_hurricane_pike" "1"
"item_maelstrom" "1"
"item_magic_wand" "1"
"item_branches" "1"
"item_power_treads" "1"
"item_mjollnir" "1"
"item_hand_of_midas" "1"
}
}
"npc_dota_hero_chaos_knight"
{
"popular_items"
{
"item_power_treads" "1"
"item_armlet" "1"
"item_echo_sabre" "1"
"item_heart" "1"
"item_black_king_bar" "1"
"item_blink" "1"
"item_magic_wand" "1"
"item_manta" "1"
"item_assault" "1"
"item_hand_of_midas" "1"
"item_quelling_blade" "1"
"item_travel_boots" "1"
}
}
"npc_dota_hero_meepo"
{
"popular_items"
{
"item_blink" "1"
"item_ethereal_blade" "1"
"item_power_treads" "1"
"item_sheepstick" "1"
"item_wraith_band" "1"
"item_dragon_lance" "1"
"item_travel_boots" "1"
"item_skadi" "1"
"item_silver_edge" "1"
"item_diffusal_blade" "1"
"item_invis_sword" "1"
"item_ultimate_orb" "1"
}
}
"npc_dota_hero_treant"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_blink" "1"
"item_orb_of_venom" "1"
"item_ultimate_scepter" "1"
"item_magic_wand" "1"
"item_arcane_boots" "1"
"item_hand_of_midas" "1"
"item_wind_lace" "1"
"item_solar_crest" "1"
"item_boots" "1"
"item_quelling_blade" "1"
"item_medallion_of_courage" "1"
}
}
"npc_dota_hero_ogre_magi"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_force_staff" "1"
"item_glimmer_cape" "1"
"item_orb_of_venom" "1"
"item_tranquil_boots" "1"
"item_boots" "1"
"item_aether_lens" "1"
"item_wind_lace" "1"
"item_soul_ring" "1"
"item_urn_of_shadows" "1"
"item_spirit_vessel" "1"
}
}
"npc_dota_hero_undying"
{
"popular_items"
{
"item_magic_wand" "1"
"item_arcane_boots" "1"
"item_guardian_greaves" "1"
"item_stout_shield" "1"
"item_ultimate_scepter" "1"
"item_blade_mail" "1"
"item_pipe" "1"
"item_glimmer_cape" "1"
"item_mekansm" "1"
"item_soul_ring" "1"
"item_spirit_vessel" "1"
"item_urn_of_shadows" "1"
}
}
"npc_dota_hero_rubick"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_blink" "1"
"item_force_staff" "1"
"item_glimmer_cape" "1"
"item_wind_lace" "1"
"item_cyclone" "1"
"item_ultimate_scepter" "1"
"item_aether_lens" "1"
"item_ghost" "1"
"item_urn_of_shadows" "1"
"item_boots" "1"
}
}
"npc_dota_hero_disruptor"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_glimmer_cape" "1"
"item_force_staff" "1"
"item_ultimate_scepter" "1"
"item_wind_lace" "1"
"item_tranquil_boots" "1"
"item_boots" "1"
"item_ghost" "1"
"item_urn_of_shadows" "1"
"item_aether_lens" "1"
"item_blink" "1"
}
}
"npc_dota_hero_nyx_assassin"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_blink" "1"
"item_magic_wand" "1"
"item_ultimate_scepter" "1"
"item_hand_of_midas" "1"
"item_aether_lens" "1"
"item_force_staff" "1"
"item_cyclone" "1"
"item_boots" "1"
"item_stout_shield" "1"
"item_dagon_5" "1"
"item_urn_of_shadows" "1"
}
}
"npc_dota_hero_naga_siren"
{
"popular_items"
{
"item_travel_boots" "1"
"item_radiance" "1"
"item_magic_wand" "1"
"item_manta" "1"
"item_arcane_boots" "1"
"item_diffusal_blade" "1"
"item_ring_of_aquila" "1"
"item_octarine_core" "1"
"item_quelling_blade" "1"
"item_stout_shield" "1"
"item_power_treads" "1"
"item_boots" "1"
}
}
"npc_dota_hero_keeper_of_the_light"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_ultimate_scepter" "1"
"item_force_staff" "1"
"item_glimmer_cape" "1"
"item_magic_wand" "1"
"item_wind_lace" "1"
"item_ghost" "1"
"item_travel_boots" "1"
"item_aether_lens" "1"
"item_point_booster" "1"
"item_blink" "1"
"item_boots" "1"
}
}
"npc_dota_hero_wisp"
{
"popular_items"
{
"item_bottle" "1"
"item_urn_of_shadows" "1"
"item_magic_wand" "1"
"item_boots" "1"
"item_glimmer_cape" "1"
"item_arcane_boots" "1"
"item_spirit_vessel" "1"
"item_ghost" "1"
"item_mekansm" "1"
"item_guardian_greaves" "1"
"item_tranquil_boots" "1"
"item_power_treads" "1"
}
}
"npc_dota_hero_visage"
{
"popular_items"
{
"item_solar_crest" "1"
"item_ultimate_scepter" "1"
"item_magic_wand" "1"
"item_rod_of_atos" "1"
"item_tranquil_boots" "1"
"item_hand_of_midas" "1"
"item_boots" "1"
"item_medallion_of_courage" "1"
"item_travel_boots" "1"
"item_null_talisman" "1"
"item_assault" "1"
"item_power_treads" "1"
}
}
"npc_dota_hero_slark"
{
"popular_items"
{
"item_power_treads" "1"
"item_echo_sabre" "1"
"item_ring_of_aquila" "1"
"item_invis_sword" "1"
"item_silver_edge" "1"
"item_black_king_bar" "1"
"item_magic_wand" "1"
"item_basher" "1"
"item_sphere" "1"
"item_skadi" "1"
"item_quelling_blade" "1"
"item_abyssal_blade" "1"
}
}
"npc_dota_hero_medusa"
{
"popular_items"
{
"item_phase_boots" "1"
"item_mask_of_madness" "1"
"item_skadi" "1"
"item_ring_of_aquila" "1"
"item_sphere" "1"
"item_butterfly" "1"
"item_manta" "1"
"item_mjollnir" "1"
"item_hurricane_pike" "1"
"item_maelstrom" "1"
"item_magic_wand" "1"
"item_dragon_lance" "1"
}
}
"npc_dota_hero_troll_warlord"
{
"popular_items"
{
"item_phase_boots" "1"
"item_mask_of_madness" "1"
"item_black_king_bar" "1"
"item_sange_and_yasha" "1"
"item_ring_of_aquila" "1"
"item_invis_sword" "1"
"item_silver_edge" "1"
"item_diffusal_blade" "1"
"item_quelling_blade" "1"
"item_blink" "1"
"item_magic_wand" "1"
"item_monkey_king_bar" "1"
}
}
"npc_dota_hero_centaur"
{
"popular_items"
{
"item_blink" "1"
"item_tranquil_boots" "1"
"item_hood_of_defiance" "1"
"item_magic_wand" "1"
"item_heart" "1"
"item_ultimate_scepter" "1"
"item_blade_mail" "1"
"item_pipe" "1"
"item_force_staff" "1"
"item_vanguard" "1"
"item_crimson_guard" "1"
"item_stout_shield" "1"
}
}
"npc_dota_hero_magnataur"
{
"popular_items"
{
"item_blink" "1"
"item_arcane_boots" "1"
"item_force_staff" "1"
"item_invis_sword" "1"
"item_magic_wand" "1"
"item_soul_ring" "1"
"item_stout_shield" "1"
"item_power_treads" "1"
"item_black_king_bar" "1"
"item_quelling_blade" "1"
"item_cyclone" "1"
"item_refresher" "1"
}
}
"npc_dota_hero_shredder"
{
"popular_items"
{
"item_bloodstone" "1"
"item_magic_wand" "1"
"item_travel_boots" "1"
"item_boots" "1"
"item_soul_ring" "1"
"item_hood_of_defiance" "1"
"item_lotus_orb" "1"
"item_cyclone" "1"
"item_shivas_guard" "1"
"item_arcane_boots" "1"
"item_stout_shield" "1"
"item_pipe" "1"
}
}
"npc_dota_hero_bristleback"
{
"popular_items"
{
"item_power_treads" "1"
"item_vanguard" "1"
"item_magic_wand" "1"
"item_blade_mail" "1"
"item_pipe" "1"
"item_crimson_guard" "1"
"item_solar_crest" "1"
"item_radiance" "1"
"item_boots" "1"
"item_heavens_halberd" "1"
"item_lotus_orb" "1"
"item_soul_ring" "1"
"item_octarine_core" "1"
}
}
"npc_dota_hero_tusk"
{
"popular_items"
{
"item_magic_wand" "1"
"item_blink" "1"
"item_arcane_boots" "1"
"item_phase_boots" "1"
"item_urn_of_shadows" "1"
"item_solar_crest" "1"
"item_orb_of_venom" "1"
"item_spirit_vessel" "1"
"item_desolator" "1"
"item_invis_sword" "1"
"item_force_staff" "1"
"item_ultimate_scepter" "1"
}
}
"npc_dota_hero_skywrath_mage"
{
"popular_items"
{
"item_rod_of_atos" "1"
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_kaya" "1"
"item_veil_of_discord" "1"
"item_boots" "1"
"item_null_talisman" "1"
"item_ultimate_scepter" "1"
"item_travel_boots" "1"
"item_aether_lens" "1"
"item_ghost" "1"
"item_force_staff" "1"
}
}
"npc_dota_hero_abaddon"
{
"popular_items"
{
"item_phase_boots" "1"
"item_magic_wand" "1"
"item_radiance" "1"
"item_vladmir" "1"
"item_blade_mail" "1"
"item_hand_of_midas" "1"
"item_solar_crest" "1"
"item_stout_shield" "1"
"item_soul_ring" "1"
"item_tranquil_boots" "1"
"item_quelling_blade" "1"
"item_blink" "1"
}
}
"npc_dota_hero_elder_titan"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_magic_wand" "1"
"item_cyclone" "1"
"item_soul_ring" "1"
"item_power_treads" "1"
"item_force_staff" "1"
"item_hand_of_midas" "1"
"item_arcane_boots" "1"
"item_phase_boots" "1"
"item_stout_shield" "1"
"item_ancient_janggo" "1"
"item_solar_crest" "1"
}
}
"npc_dota_hero_legion_commander"
{
"popular_items"
{
"item_blink" "1"
"item_blade_mail" "1"
"item_phase_boots" "1"
"item_magic_wand" "1"
"item_power_treads" "1"
"item_invis_sword" "1"
"item_heavens_halberd" "1"
"item_black_king_bar" "1"
"item_stout_shield" "1"
"item_desolator" "1"
"item_quelling_blade" "1"
"item_armlet" "1"
}
}
"npc_dota_hero_techies"
{
"popular_items"
{
"item_soul_ring" "1"
"item_ultimate_scepter" "1"
"item_arcane_boots" "1"
"item_force_staff" "1"
"item_cyclone" "1"
"item_aether_lens" "1"
"item_travel_boots" "1"
"item_kaya" "1"
"item_bloodstone" "1"
"item_tranquil_boots" "1"
"item_boots" "1"
"item_octarine_core" "1"
}
}
"npc_dota_hero_ember_spirit"
{
"popular_items"
{
"item_travel_boots" "1"
"item_ring_of_aquila" "1"
"item_bfury" "1"
"item_bottle" "1"
"item_sphere" "1"
"item_greater_crit" "1"
"item_magic_wand" "1"
"item_blink" "1"
"item_veil_of_discord" "1"
"item_radiance" "1"
"item_maelstrom" "1"
"item_stout_shield" "1"
}
}
"npc_dota_hero_earth_spirit"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_blink" "1"
"item_magic_wand" "1"
"item_urn_of_shadows" "1"
"item_orb_of_venom" "1"
"item_cyclone" "1"
"item_spirit_vessel" "1"
"item_force_staff" "1"
"item_glimmer_cape" "1"
"item_boots" "1"
"item_arcane_boots" "1"
"item_ultimate_scepter" "1"
}
}
"npc_dota_hero_abyssal_underlord"
{
"popular_items"
{
"item_guardian_greaves" "1"
"item_magic_wand" "1"
"item_pipe" "1"
"item_stout_shield" "1"
"item_soul_ring" "1"
"item_crimson_guard" "1"
"item_arcane_boots" "1"
"item_blade_mail" "1"
"item_shivas_guard" "1"
"item_force_staff" "1"
"item_rod_of_atos" "1"
"item_hood_of_defiance" "1"
}
}
"npc_dota_hero_terrorblade"
{
"popular_items"
{
"item_power_treads" "1"
"item_manta" "1"
"item_ring_of_aquila" "1"
"item_dragon_lance" "1"
"item_hurricane_pike" "1"
"item_black_king_bar" "1"
"item_skadi" "1"
"item_diffusal_blade" "1"
"item_butterfly" "1"
"item_magic_wand" "1"
"item_quelling_blade" "1"
"item_mask_of_madness" "1"
}
}
"npc_dota_hero_phoenix"
{
"popular_items"
{
"item_tranquil_boots" "1"
"item_veil_of_discord" "1"
"item_shivas_guard" "1"
"item_hand_of_midas" "1"
"item_magic_wand" "1"
"item_urn_of_shadows" "1"
"item_kaya" "1"
"item_spirit_vessel" "1"
"item_ultimate_scepter" "1"
"item_rod_of_atos" "1"
"item_travel_boots" "1"
"item_cyclone" "1"
}
}
"npc_dota_hero_oracle"
{
"popular_items"
{
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_glimmer_cape" "1"
"item_aether_lens" "1"
"item_wind_lace" "1"
"item_boots" "1"
"item_force_staff" "1"
"item_urn_of_shadows" "1"
"item_spirit_vessel" "1"
"item_cyclone" "1"
"item_tranquil_boots" "1"
"item_ghost" "1"
}
}
"npc_dota_hero_winter_wyvern"
{
"popular_items"
{
"item_glimmer_cape" "1"
"item_arcane_boots" "1"
"item_magic_wand" "1"
"item_blink" "1"
"item_force_staff" "1"
"item_tranquil_boots" "1"
"item_aether_lens" "1"
"item_wind_lace" "1"
"item_soul_ring" "1"
"item_boots" "1"
"item_urn_of_shadows" "1"
"item_travel_boots" "1"
}
}
"npc_dota_hero_arc_warden"
{
"popular_items"
{
"item_travel_boots" "1"
"item_hand_of_midas" "1"
"item_mjollnir" "1"
"item_ring_of_aquila" "1"
"item_invis_sword" "1"
"item_bloodthorn" "1"
"item_hurricane_pike" "1"
"item_maelstrom" "1"
"item_sheepstick" "1"
"item_blink" "1"
"item_silver_edge" "1"
"item_orchid" "1"
}
}
"npc_dota_hero_monkey_king"
{
"popular_items"
{
"item_phase_boots" "1"
"item_echo_sabre" "1"
"item_black_king_bar" "1"
"item_power_treads" "1"
"item_invis_sword" "1"
"item_ring_of_aquila" "1"
"item_desolator" "1"
"item_bfury" "1"
"item_magic_wand" "1"
"item_orb_of_venom" "1"
"item_diffusal_blade" "1"
"item_stout_shield" "1"
}
}
"npc_dota_hero_dark_willow"
{
"popular_items"
{
"item_magic_wand" "1"
"item_arcane_boots" "1"
"item_kaya" "1"
"item_cyclone" "1"
"item_blink" "1"
"item_veil_of_discord" "1"
"item_force_staff" "1"
"item_boots" "1"
"item_wind_lace" "1"
"item_travel_boots" "1"
"item_glimmer_cape" "1"
"item_spirit_vessel" "1"
}
}
"npc_dota_hero_pangolier"
{
"popular_items"
{
"item_diffusal_blade" "1"
"item_magic_wand" "1"
"item_ring_of_aquila" "1"
"item_power_treads" "1"
"item_phase_boots" "1"
"item_basher" "1"
"item_blink" "1"
"item_javelin" "1"
"item_vanguard" "1"
"item_maelstrom" "1"
"item_monkey_king_bar" "1"
"item_abyssal_blade" "1"
}
}
"npc_dota_hero_muerta"
{
"popular_items"
{
"item_sheepstick" "1"
"item_ethereal_blade" "1"
"item_bloodthorn" "1"
"item_silver_edge" "1"
"item_travel_boots" "1"
"item_sphere" "1"
"item_kaya_and_sange" "1"
"item_skadi" "1"
"item_monkey_king_bar" "1"
"item_moon_shard" "1"
"item_rapier" "1"
"item_revenants_brooch" "1"
}
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// Dota Units File
"DOTAUnits"
{
"Version" "1"
//=================================================================================
// Creeps: Bad Melee UPGRADED
//=================================================================================
"npc_dota_creep_badguys_melee_upgraded"
{
// General
//
"BaseClass" "npc_dota_creep_lane" // Class of entity of link to.
"Model" "models/creeps/lane_creeps/creep_bad_melee/creep_bad_melee_mega.vmdl" // Model.
"SoundSet" "Creep_Bad_Melee" // Name of sound set.
"ModelScale" "1.12"
"Level" "1"
// Abilities
//----------------------------------------------------------------
"Ability1" "" // Ability 1.
"Ability2" "" // Ability 2.
"Ability3" "" // Ability 3.
"Ability4" "" // Ability 4.
"Ability5" "" // Ability 5.
"Ability6" "" // Ability 6 - Extra.
"Ability7" "" // Ability 7 - Extra.
"Ability8" "" // Ability 8 - Extra.
// Armor
//----------------------------------------------------------------
"ArmorPhysical" "3" // Physical protection.
"MagicalResistance" "0" // Magical protection.
// Attack
//----------------------------------------------------------------
"AttackCapabilities" "DOTA_UNIT_CAP_MELEE_ATTACK"
"AttackDamageMin" "36" // Damage range min.
"AttackDamageMax" "44" // Damage range max.
"AttackDamageType" "DAMAGE_TYPE_ArmorPhysical"
"AttackRate" "1" // Speed of attack.
"AttackAnimationPoint" "0.467" // Normalized time in animation cycle to attack.
"AttackAcquisitionRange" "500" // Range within a target can be acquired.
"AttackRange" "100" // Range within a target can be attacked.
"ProjectileModel" "" // Particle system model for projectile.
"ProjectileSpeed" "" // Speed of projectile.
// Attributes
//----------------------------------------------------------------
"AttributePrimary" "DOTA_ATTRIBUTE_STRENGTH"
"AttributeBaseStrength" "0" // Base strength
"AttributeStrengthGain" "0" // Strength bonus per level.
"AttributeBaseIntelligence" "0" // Base intelligence
"AttributeIntelligenceGain" "0" // Intelligence bonus per level.
"AttributeBaseAgility" "0" // Base agility
"AttributeAgilityGain" "0" // Agility bonus per level.
// Bounty
//----------------------------------------------------------------
"BountyXP" "25" // Experience earn.
"BountyGoldMin" "18" // Gold earned min.
"BountyGoldMax" "26" // Gold earned max.
// Bounds
//----------------------------------------------------------------
"BoundsHullName" "DOTA_HULL_SIZE_REGULAR" // Hull type used for navigation/locomotion.
"RingRadius" "45"
"HealthBarOffset" "120"
// Movement
//----------------------------------------------------------------
"MovementCapabilities" "DOTA_UNIT_CAP_MOVE_GROUND" // Type of locomotion - ground, air
"MovementSpeed" "325" // Speed
"MovementTurnRate" "0.5" // Turning rate.
// Status
//----------------------------------------------------------------
"StatusHealth" "700" // Base health.
"StatusHealthRegen" "0.5" // Health regeneration rate.
"StatusMana" "0" // Base mana.
"StatusManaRegen" "0" // Mana regeneration rate.
// Team
//----------------------------------------------------------------
"TeamName" "DOTA_TEAM_BADGUYS" // Team name.
"CombatClassAttack" "DOTA_COMBAT_CLASS_ATTACK_BASIC"
"CombatClassDefend" "DOTA_COMBAT_CLASS_DEFEND_SOFT"
"UnitRelationshipClass" "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
// Vision
//----------------------------------------------------------------
"VisionDaytimeRange" "850" // Range of vision during day light.
"VisionNighttimeRange" "800" // Range of vision at night time.
//Inventory
}
//=================================================================================
// Creeps: Bad Ranged UPGRADED
//=================================================================================
"npc_dota_creep_badguys_ranged_upgraded"
{
// General
//
"BaseClass" "npc_dota_creep_lane" // Class of entity of link to.
"Model" "models/creeps/lane_creeps/creep_bad_ranged/lane_dire_ranged_mega.vmdl" // Model.
"SoundSet" "Creep_Bad_Range" // Name of sound set.
"ModelScale" "1.12"
"Level" "1"
// Abilities
//----------------------------------------------------------------
"Ability1" "" // Ability 1.
"Ability2" "" // Ability 2.
"Ability3" "" // Ability 3.
"Ability4" "" // Ability 4.
"Ability5" "" // Ability 5.
"Ability6" "" // Ability 6 - Extra.
"Ability7" "" // Ability 7 - Extra.
"Ability8" "" // Ability 8 - Extra.
// Armor
//----------------------------------------------------------------
"ArmorPhysical" "1" // Physical protection.
"MagicalResistance" "0" // Magical protection.
// Attack
//----------------------------------------------------------------
"AttackCapabilities" "DOTA_UNIT_CAP_RANGED_ATTACK"
"AttackDamageMin" "41" // Damage range min.
"AttackDamageMax" "46" // Damage range max.
"AttackDamageType" "DAMAGE_TYPE_ArmorPhysical"
"AttackRate" "1" // Speed of attack.
"AttackAnimationPoint" "0.5" // Normalized time in animation cycle to attack.
"AttackAcquisitionRange" "800" // Range within a target can be acquired.
"AttackRange" "500" // Range within a target can be attacked.
"ProjectileModel" "particles/base_attacks/ranged_badguy.vpcf" // Particle system model for projectile.
"ProjectileSpeed" "900" // Speed of projectile.
// Attributes
//----------------------------------------------------------------
"AttributePrimary" "DOTA_ATTRIBUTE_STRENGTH"
"AttributeBaseStrength" "0" // Base strength
"AttributeStrengthGain" "0" // Strength bonus per level.
"AttributeBaseIntelligence" "0" // Base intelligence
"AttributeIntelligenceGain" "0" // Intelligence bonus per level.
"AttributeBaseAgility" "0" // Base agility
"AttributeAgilityGain" "0" // Agility bonus per level.
// Bounty
//----------------------------------------------------------------
"BountyXP" "25" // Experience earn.
"BountyGoldMin" "18" // Gold earned min.
"BountyGoldMax" "26" // Gold earned max.
// Bounds
//----------------------------------------------------------------
"BoundsHullName" "DOTA_HULL_SIZE_SMALL" // Hull type used for navigation/locomotion.
"RingRadius" "45"
"HealthBarOffset" "150"
// Movement
//----------------------------------------------------------------
"MovementCapabilities" "DOTA_UNIT_CAP_MOVE_GROUND" // Type of locomotion - ground, air
"MovementSpeed" "325" // Speed
"MovementTurnRate" "0.5" // Turning rate.
// Status
//----------------------------------------------------------------
"StatusHealth" "475" // Base health.
"StatusHealthRegen" "2" // Health regeneration rate.
"StatusMana" "500" // Base mana.
"StatusManaRegen" "0.75" // Mana regeneration rate.
// Team
//----------------------------------------------------------------
"TeamName" "DOTA_TEAM_BADGUYS" // Team name.
"CombatClassAttack" "DOTA_COMBAT_CLASS_ATTACK_PIERCE"
"CombatClassDefend" "DOTA_COMBAT_CLASS_DEFEND_SOFT"
"UnitRelationshipClass" "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"
// Vision
//----------------------------------------------------------------
"VisionDaytimeRange" "850" // Range of vision during day light.
"VisionNighttimeRange" "800" // Range of vision at night time.
//Inventory
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
"DOTACardPortraitInfo"
{
"DefaultActivity" "ACT_DOTA_CAPTURE"
"UseModelScale" "0"
"models/heroes/antimage_female/antimage_female.vmdl"
{
"cameras"
{
"Default"
{
"PortraitPosition" "99.922729 -191.042252 102.635201"
"PortraitAngles" "347.163422 116.304001 -9.360001"
"PortraitFOV" "10.000000"
"PortraitFar" "3303.399902"
}
}
"PortraitLightPosition" "54.049202 87.702721 229.578262"
"PortraitLightAngles" "32.906242 -122.835106 -12.825317"
"PortraitLightFOV" "50.504002"
"PortraitLightDistance" "212.979996"
"PortraitLightColor" "51 153 255"
"PortraitLightScale" "4.213000"
"PortraitShadowColor" "173 21 255"
"PortraitShadowScale" "1.000000"
"PortraitGroundShadowScale" "1.500000"
"PortraitAmbientDirection" "0.708 -0.647 0.282"
"PortraitAmbientColor" "206 142 90"
"PortraitAmbientScale" "10.000000"
"PortraitSpecularColor" "251 74 84"
"PortraitSpecularDirection" "0.000000 0.000000 -1.000000"
"PortraitSpecularPower" "16.000000"
"PortraitBackgroundColor1" "1.000000 1.000000 1.000000"
"PortraitBackgroundColor2" "1.000000 1.000000 1.000000"
"PortraitBackgroundColor3" "1.000000 1.000000 1.000000"
"PortraitBackgroundColor4" "1.000000 1.000000 1.000000"
"PortraitBackgroundTexture" "materials\portraits_card\portrait_backgrounds\antimage_persona.vmat"
"PortraitAnimationActivity" "ACT_DOTA_CAPTURE"
"PortraitAnimationCycle" "0.142857"
"PortraitAnimationRate" "1.000000"
"PortraitPlayIdleExpression" "0"
"PortraitHideHero" "0"
"PortraitHideParticles" "0"
"PortraitHideDropShadow" "0"
"PortraitDesaturateParticles" "0"
"PortraitDesaturateHero" "1"
}
}
"Portraits"
{
"default"
{
"cameras"
{
"Default"
{
"PortraitPosition" "480.132111 302.748627 403.187500"
"PortraitAngles" "28.490007 212.830048 0.000000"
"PortraitFOV" "16.000000"
"PortraitFar" "1000.000000"
}
}
"PortraitLightPosition" "202.699997 -23.150000 308.170013"
"PortraitLightAngles" "54.790001 171.699997 0.000000"
"PortraitLightFOV" "120.000000"
"PortraitLightDistance" "336"
"PortraitLightColor" "254 248 242"
"PortraitLightScale" "2"
"PortraitShadowColor" "74 74 74"
"PortraitShadowScale" "1.000000"
"PortraitGroundShadowScale" "1.500000"
"PortraitAmbientDirection" "-79.070 -84.150 -25.320"
"PortraitAmbientColor" "79 108 108"
"PortraitAmbientScale" "1.000000"
"PortraitSpecularColor" "251 74 84"
"PortraitSpecularDirection" "0.000000 0.000000 -1.000000"
"PortraitSpecularPower" "16.000000"
"PortraitBackgroundColor1" "1.000000 1.000000 1.000000"
"PortraitBackgroundColor2" "1.000000 1.000000 1.000000"
"PortraitBackgroundColor3" "1.000000 1.000000 1.000000"
"PortraitBackgroundColor4" "1.000000 1.000000 1.000000"
"PortraitAnimationActivity" "ACT_DOTA_CAPTURE"
"PortraitAnimationCycle" "0.000000"
"PortraitAnimationRate" "1.000000"
"PortraitHideHero" "0"
"PortraitHideParticles" "0"
"PortraitHideDropShadow" "0"
"PortraitDesaturateParticles" "0"
"PortraitDesaturateHero" "1"
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
"DOTAFullBodyRightSidePortraitInfo"
{
"npc_dota_hero_abaddon"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_abyssal_underlord"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_alchemist"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_ancient_apparition"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_antimage"
{
"UnitAngles" "0 -30 0"
}
"npc_dota_hero_arc_warden"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_axe"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_bane"
{
"UnitAngles" "0 -90 0"
}
"npc_dota_hero_batrider"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_beastmaster"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_bloodseeker"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_bounty_hunter"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_brewmaster"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_bristleback"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_broodmother"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_centaur"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_chaos_knight"
{
"UnitAngles" "0 0 0"
}
"npc_dota_hero_chen"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_clinkz"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_crystal_maiden"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_dark_seer"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_dazzle"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_death_prophet"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_disruptor"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_doom_bringer"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_dragon_knight"
{
"UnitAngles" "0 -10 0"
}
"npc_dota_hero_drow_ranger"
{
"UnitAngles" "0 -20 0"
}
"npc_dota_hero_earth_spirit"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_earthshaker"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_elder_titan"
{
"UnitAngles" "0 -0 0"
}
"npc_dota_hero_ember_spirit"
{
"UnitAngles" "0 -30 0"
}
"npc_dota_hero_enchantress"
{
"UnitAngles" "0 -55 0"
}
"npc_dota_hero_enigma"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_faceless_void"
{
"UnitAngles" "0 -20 0"
}
"npc_dota_hero_furion"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_techies"
{
"UnitAngles" "0 -60 0"
}
"npc_dota_hero_gyrocopter"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_huskar"
{
"UnitAngles" "0 -30 0"
}
"npc_dota_hero_invoker"
{
"UnitAngles" "0 -30 0"
}
"npc_dota_hero_jakiro"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_juggernaut"
{
"UnitAngles" "0 -20 0"
}
"npc_dota_hero_keeper_of_the_light"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_kunkka"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_legion_commander"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_leshrac"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_lich"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_life_stealer"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_lina"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_lion"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_lone_druid"
{
"UnitAngles" "0 -30 0"
}
"npc_dota_hero_luna"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_lycan"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_magnataur"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_medusa"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_meepo"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_mirana"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_morphling"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_naga_siren"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_necrolyte"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_nevermore"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_night_stalker"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_nyx_assassin"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_obsidian_destroyer"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_ogre_magi"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_omniknight"
{
"UnitAngles" "0 -25 0"
}
"npc_dota_hero_oracle"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_phantom_assassin"
{
"UnitAngles" "0 -20 0"
}
"npc_dota_hero_phantom_lancer"
{
"UnitAngles" "0 -10 0"
}
"npc_dota_hero_phoenix"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_puck"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_pudge"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_pugna"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_queenofpain"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_rattletrap"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_razor"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_riki"
{
"UnitAngles" "0 -60 0"
}
"npc_dota_hero_rubick"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_sand_king"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_shadow_demon"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_shadow_shaman"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_shredder"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_silencer"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_skeleton_king"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_skywrath_mage"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_slardar"
{
"UnitAngles" "0 -60 0"
}
"npc_dota_hero_slark"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_sniper"
{
"UnitAngles" "0 -60 0"
}
"npc_dota_hero_spectre"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_spirit_breaker"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_storm_spirit"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_sven"
{
"UnitAngles" "0 0 0"
}
"npc_dota_hero_templar_assassin"
{
"UnitAngles" "0 -30 0"
}
"npc_dota_hero_terrorblade"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_tidehunter"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_tinker"
{
"UnitAngles" "0 -60 0"
}
"npc_dota_hero_tiny"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_treant"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_troll_warlord"
{
"UnitAngles" "0 -10 0"
}
"npc_dota_hero_tusk"
{
"UnitAngles" "0 -30 0"
}
"npc_dota_hero_undying"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_ursa"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_vengefulspirit"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_venomancer"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_viper"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_visage"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_warlock"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_weaver"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_windrunner"
{
"UnitAngles" "0 -20 0"
}
"npc_dota_hero_wisp"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_winter_wyvern"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_witch_doctor"
{
"UnitAngles" "0 -50 0"
}
"npc_dota_hero_zuus"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_monkey_king"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_loadout_generic"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_pangolier"
{
"UnitAngles" "0 -10 0"
}
"npc_dota_hero_dark_willow"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_grimstroke"
{
"UnitAngles" "0 -40 0"
}
"npc_dota_hero_mars"
{
"UnitAngles" "0 -40 0"
}
}
\ No newline at end of file
"portraits_light_preselects"
{
"0"
{
"PortraitLightPosition" "129.51 -47.09 210.86"
"PortraitLightAngles" "41.53 118.08 0.00"
"PortraitLightFOV" "90"
"PortraitLightDistance" "142"
"PortraitLightColor" "219 169 254"
"PortraitShadowColor" "63 38 38"
"PortraitShadowScale" "5.000000"
"PortraitAmbientColor" "97 129 108"
"PortraitAmbientScale" "5.000000"
"PortraitSpecularColor" "251 74 84"
"PortraitLightScale" "2.750000"
"PortraitGroundShadowScale" "1.500000"
"PortraitAmbientDirection" "-0.850 75.650 30.680"
"PortraitAnimationActivity" "ACT_DOTA_IDLE"
}
"1"
{
"PortraitLightPosition" "202.70 -23.15 308.17"
"PortraitLightAngles" "54.79 171.70 0.00"
"PortraitLightFOV" "69"
"PortraitLightDistance" "377"
"PortraitLightColor" "254 248 242"
"PortraitShadowColor" "74 74 74"
"PortraitShadowScale" "5.000000"
"PortraitAmbientColor" "79 108 108"
"PortraitAmbientScale" "5.000000"
"PortraitSpecularColor" "251 74 84"
"PortraitLightScale" "4.500000"
"PortraitGroundShadowScale" "1.500000"
"PortraitAmbientDirection" "-79.070 -84.150 -25.320"
"PortraitAnimationActivity" "ACT_DOTA_IDLE"
}
"2"
{
"PortraitLightPosition" "3.82 2.62 181.84"
"PortraitLightAngles" "70.98 288.74 0.00"
"PortraitLightFOV" "90"
"PortraitLightDistance" "99"
"PortraitLightColor" "254 249 240"
"PortraitShadowColor" "126 126 126"
"PortraitShadowScale" "1.775000"
"PortraitAmbientColor" "144 108 238"
"PortraitAmbientScale" "5.000000"
"PortraitSpecularColor" "251 74 84"
"PortraitLightScale" "2.050000"
"PortraitGroundShadowScale" "1.500000"
"PortraitAmbientDirection" "55.270 96.390 -21.400"
"PortraitAnimationActivity" "ACT_DOTA_IDLE"
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment