{
  "filename": {
    "prefix": "__filename: string",
    "body": "__filename",
    "description": "Filename of the currently running script.",
    "scope": "javascript,typescript"
  },
  "Reference": {
    "prefix": "Reference(path: Path): Reference",
    "body": "Reference(path)",
    "description": "Returns a Reference to the specified ui element.",
    "scope": "javascript,typescript"
  },
  "Entity": {
    "prefix": "Entity(entityindex: number): Entity",
    "body": "Entity(entityindex)",
    "description": "Returns the Entity for the specified entity.",
    "scope": "javascript,typescript"
  },
  "Vector": {
    "prefix": "Vector3(x: number, y: number, z: number): Vector3",
    "body": "Vector3(x, y, z)",
    "description": "Returns a Vector3 with the specified coordinates.",
    "scope": "javascript,typescript"
  },
  "Angle": {
    "prefix": "Angle(pitch: number, yaw: number, roll: number): Angle",
    "body": "Angle(pitch, yaw, roll)",
    "description": "Returns Angle with the specified pitch/yaw/roll values.",
    "scope": "javascript,typescript"
  },
  "RGBA": {
    "prefix": "RGBA(r: number, g: number, b: number, a: number): RGBA",
    "body": "RGBA(r, g, b, a)",
    "description": "Returns a RGBA color with the specified red/green/blue/alpha values.",
    "scope": "javascript,typescript"
  },
  "GlobalsTickcount": {
    "prefix": "Globals.Tickcount(): number",
    "body": "Globals.Tickcount()",
    "description": "Returns the tick the server is on.",
    "scope": "javascript,typescript"
  },
  "GlobalsTickrate": {
    "prefix": "Globals.Tickrate(): number",
    "body": "Globals.Tickrate()",
    "description": "Returns the server's tickrate. The tickrate is how many ticks the server processes each second.",
    "scope": "javascript,typescript"
  },
  "GlobalsTickInterval": {
    "prefix": "Globals.TickInterval(): number",
    "body": "Globals.TickInterval()",
    "description": "Returns the time between each tick.\nThis is equivalent to: 1 / Globals.Tickrate()",
    "scope": "javascript,typescript"
  },
  "GlobalsCurtime": {
    "prefix": "Globals.Curtime(): number",
    "body": "Globals.Curtime()",
    "description": "Returns the time of the server in seconds.",
    "scope": "javascript,typescript"
  },
  "GlobalsRealtime": {
    "prefix": "Globals.Realtime(): number",
    "body": "Globals.Realtime()",
    "description": "Returns the time in seconds since the game started.",
    "scope": "javascript,typescript"
  },
  "GlobalsFrametime": {
    "prefix": "Globals.Frametime(): number",
    "body": "Globals.Frametime()",
    "description": "Returns the time the last frame took to render.\nTo convert to FPS use:\n\n```js\nMath.floor(1 / Globals.Frametime())\n```",
    "scope": "javascript,typescript"
  },
  "SoundPlay": {
    "prefix": "Sound.Play(filename: string)",
    "body": "Sound.Play(filename)",
    "description": "Plays a sound from a `.wav` file.",
    "scope": "javascript,typescript"
  },
  "SoundPlayMicrophone": {
    "prefix": "Sound.PlayMicrophone(filename: string)",
    "body": "Sound.PlayMicrophone(filename)",
    "description": "Plays a sound from a `.wav` file over the voicechat.",
    "scope": "javascript,typescript"
  },
  "SoundStopMicrophone": {
    "prefix": "Sound.StopMicrophone()",
    "body": "Sound.StopMicrophone()",
    "description": "Interrupts the currently playing sound from Sound.PlayMicrophone.",
    "scope": "javascript,typescript"
  },
  "CheatGetUsername": {
    "prefix": "Cheat.GetUsername(): string",
    "body": "Cheat.GetUsername()",
    "description": "Returns the name of the steam account at the point of the injection.",
    "scope": "javascript,typescript"
  },
  "CheatRegisterCallback": {
    "prefix": "Cheat.RegisterCallback(callback: string, name: function)",
    "body": "Cheat.RegisterCallback(callback, name)",
    "description": "Registers a callback, check the Callbacks documentation for more information.\n\n```js\nCheat.RegisterCallback(\"CreateMove\", function() {\n    // called every tick\n})\n```",
    "scope": "javascript,typescript"
  },
  "CheatExecuteCommand": {
    "prefix": "Cheat.ExecuteCommand(command: string)",
    "body": "Cheat.ExecuteCommand(command)",
    "description": "Executes a command in the CS:GO console.\n\n```js\n// TODO: better example :kek:\nCheat.ExecuteCommand(\"say I'm using OTC (chams.cc)\") // cringe\n```",
    "scope": "javascript,typescript"
  },
  "CheatFrameStage": {
    "prefix": "Cheat.FrameStage(): number",
    "body": "Cheat.FrameStage()",
    "description": "Returns the current framestage.\n\n|  Stage  |  Meaning                               |\n| ------- | -------------------------------------- |\n|    0    |  Frame Start                           |\n|    1    |  Frame NetUpdate Start                 |\n|    2    |  Frame NetUpdate PostDataUpdate Start  |\n|    3    |  Frame NetUpdate PostDataUpdate End    |\n|    4    |  Frame NetUpdate End                   |\n|    5    |  Frame Render Start                    |\n|    6    |  Frame Render End                      |",
    "scope": "javascript,typescript"
  },
  "CheatPrint": {
    "prefix": "Cheat.Print(text: string)",
    "body": "Cheat.Print(text)",
    "description": "Prints text into the CS:GO console.  \nA newline `\\n` is **not** automatically appended, so make sure you include one.",
    "scope": "javascript,typescript"
  },
  "CheatPrintChat": {
    "prefix": "Cheat.PrintChat(text: string)",
    "body": "Cheat.PrintChat(text)",
    "description": "Prints text into your local chat (only you can see it).\n\nYou can use special bytes to change the color:\n\n|  Byte   |  Color         |     |  Byte   |  Color         |     |  Byte   |  Color         |     |  Byte   |  Color         |\n| ------- | -------------- | --- | ------- | -------------- | --- | ------- | -------------- | --- | ------- | -------------- |\n|  \\\\x01  |  White         |     |  \\\\x05  |  Lighter green |     |  \\\\x09  |  Gold          |     |  \\\\x0D  |  Dark purple   |\n|  \\\\x02  |  Dark red      |     |  \\\\x06  |  Light green   |     |  \\\\x0A  |  Gray          |     |  \\\\x0E  |  Light purple  |\n|  \\\\x03  |  Purple        |     |  \\\\x07  |  Red           |     |  \\\\x0B  |  Aqua          |     |  \\\\x0F  |  Light red     |\n|  \\\\x04  |  Green         |     |  \\\\x08  |  Gray          |     |  \\\\x0C  |  Blue          |     |         |                |\n\n> **Warning**: The first character cannot be a color changing byte, adding a space at the start of the string fixes this issue.",
    "scope": "javascript,typescript"
  },
  "CheatPrintColor": {
    "prefix": "Cheat.PrintColor(color: RGBA, text: string)",
    "body": "Cheat.PrintColor(color, text)",
    "description": "Same as Cheat.Print but colored.",
    "scope": "javascript,typescript"
  },
  "LocalLatency": {
    "prefix": "Local.Latency(): number",
    "body": "Local.Latency()",
    "description": "Returns your latency to the server in seconds.",
    "scope": "javascript,typescript"
  },
  "LocalGetViewAngles": {
    "prefix": "Local.GetViewAngles(): Angle",
    "body": "Local.GetViewAngles()",
    "description": "Returns your current viweangles.\n\n```js\nGlobal.RegisterCallback(\"Draw\", function() {\n    const angles = Global.GetViewAngles();\n    Render.String(5, 5, 0, \"Angles: pitch=\" + angles.pitch + \" yaw=\" + angles.yaw + \" roll=\" + angles.roll, [255, 0, 0, 255]);\n});\n```",
    "scope": "javascript,typescript"
  },
  "LocalSetViewAngles": {
    "prefix": "Local.SetViewAngles(angle: Angle)",
    "body": "Local.SetViewAngles(angle)",
    "description": "Sets your current viewangles to the specified one.",
    "scope": "javascript,typescript"
  },
  "LocalSetClanTag": {
    "prefix": "Local.SetClanTag(clantag: string)",
    "body": "Local.SetClanTag(clantag)",
    "description": "Changes your clantag to the specified one.",
    "scope": "javascript,typescript"
  },
  "LocalGetRealYaw": {
    "prefix": "Local.GetRealYaw(): number",
    "body": "Local.GetRealYaw()",
    "description": "Returns the yaw of your real.",
    "scope": "javascript,typescript"
  },
  "LocalGetFakeYaw": {
    "prefix": "Local.GetFakeYaw(): number",
    "body": "Local.GetFakeYaw()",
    "description": "Returns the yaw of your fake.",
    "scope": "javascript,typescript"
  },
  "LocalGetSpread": {
    "prefix": "Local.GetSpread(): number",
    "body": "Local.GetSpread()",
    "description": "Returns the spread of your selected gun.",
    "scope": "javascript,typescript"
  },
  "LocalGetInaccuracy": {
    "prefix": "Local.GetInaccuracy(): number",
    "body": "Local.GetInaccuracy()",
    "description": "Returns the inaccuracy of your selected gun with other factors calculated (e.g. moving inaccuracy)",
    "scope": "javascript,typescript"
  },
  "WorldGetMapName": {
    "prefix": "World.GetMapName(): string",
    "body": "World.GetMapName()",
    "description": "Returns the current map name. (e.g. `de_dust2`, `de_mirage`)",
    "scope": "javascript,typescript"
  },
  "WorldGetServerString": {
    "prefix": "World.GetServerString(): string",
    "body": "World.GetServerString()",
    "description": "Returns the current server (ip, port, offline match, ...) as a string.  \nThis is used in the watermark.",
    "scope": "javascript,typescript"
  },
  "InputGetCursorPosition": {
    "prefix": "Input.GetCursorPosition(): Vector2",
    "body": "Input.GetCursorPosition()",
    "description": "Returns the current position of the cursor (mouse).",
    "scope": "javascript,typescript"
  },
  "InputIsKeyPressed": {
    "prefix": "Input.IsKeyPressed(key: number): boolean",
    "body": "Input.IsKeyPressed(key)",
    "description": "Returns if the key is currently pressed.\n\nFor possible keys check [Virtual Key Codes](https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes).",
    "scope": "javascript,typescript"
  },
  "RenderString": {
    "prefix": "Render.String(x: number, y: number, align: number, text: string, color: RGBA, size: Size)",
    "body": "Render.String(x, y, align, text, color, size)",
    "description": "Renders the string text at the position x|y on the screen.\n\n`align === 0` is left-aligned and everything else is centered.  \n`size` is optional.\n\n```js\n// this will render a red colored string at the top left of the screen\nRender.String(0, 0, 0, \"Hello World\", [255, 0, 0, 255]); \n```",
    "scope": "javascript,typescript"
  },
  "RenderTextSize": {
    "prefix": "Render.TextSize(text: string, size: Size): Vector2",
    "body": "Render.TextSize(text, size)",
    "description": "Returns `width` and `height` the text would need to be rendered.",
    "scope": "javascript,typescript"
  },
  "RenderLine": {
    "prefix": "Render.Line(x1: number, y1: number, x2: number, y2: number, color: RGBA)",
    "body": "Render.Line(x1, y1, x2, y2, color)",
    "description": "Renders a line from x1|y1 to x2|y2.",
    "scope": "javascript,typescript"
  },
  "RenderRect": {
    "prefix": "Render.Rect(x: number, y: number, width: number, height: number, color: RGBA)",
    "body": "Render.Rect(x, y, width, height, color)",
    "description": "Renders the outline of a rectangle at x|y with the specified width and height.",
    "scope": "javascript,typescript"
  },
  "RenderFilledRect": {
    "prefix": "Render.FilledRect(x: number, y: number, width: number, height: number, color: RGBA)",
    "body": "Render.FilledRect(x, y, width, height, color)",
    "description": "Renders a filled reactangle at x|y with the specified width and height.",
    "scope": "javascript,typescript"
  },
  "RenderGradientRect": {
    "prefix": "Render.GradientRect(x: number, y: number, width: number, height: number, direction: number, color1: RGBA?, color2: RGBA?)",
    "body": "Render.GradientRect(x, y, width, height, direction, color1, color2)",
    "description": "Renders a gradient reactangle at x|y with the specified width and height.",
    "scope": "javascript,typescript"
  },
  "RenderCircle": {
    "prefix": "Render.Circle(x: number, y: number, radius: number, color: RGBA)",
    "body": "Render.Circle(x, y, radius, color)",
    "description": "Renders a circle at x|y with the specified color and radius.",
    "scope": "javascript,typescript"
  },
  "RenderFilledCircle": {
    "prefix": "Render.FilledCircle(x: number, y: number, radius: number, color: RGBA)",
    "body": "Render.FilledCircle(x, y, radius, color)",
    "description": "Renders a circle at x|y with the specified color and radius.",
    "scope": "javascript,typescript"
  },
  "RenderPolygon": {
    "prefix": "Render.Polygon(points, color: RGBA)",
    "body": "Render.Polygon(points, color)",
    "description": "Renders a polygon/triangle, the 3 corners are the `points` list.\n\n```js\nCheat.RegisterCallback(\"Draw\", function() {\n    // draws a simple red polygon\n    Render.Polygon([[50, 0], [25, 50], [75, 50]], [255, 0, 0, 255]);\n});\n```",
    "scope": "javascript,typescript"
  },
  "RenderWorldToScreen": {
    "prefix": "Render.WorldToScreen(position: Vector3): Vector2",
    "body": "Render.WorldToScreen(position)",
    "description": "Transforms a world position to a screen position.",
    "scope": "javascript,typescript"
  },
  "RenderAddFont": {
    "prefix": "Render.AddFont(name: string, size: number, weight: number): number",
    "body": "Render.AddFont(name, size, weight)",
    "description": "Creates a new font with the specified name, size and weight, and returns its font identifier.",
    "scope": "javascript,typescript"
  },
  "RenderFindFont": {
    "prefix": "Render.FindFont(name: string, size: number, weight: number): number",
    "body": "Render.FindFont(name, size, weight)",
    "description": "Returns font identifier.  \nReturns 0 if the font is not found.",
    "scope": "javascript,typescript"
  },
  "RenderStringCustom": {
    "prefix": "Render.StringCustom(x: number, y: number, align: number, text: string, color: RGBA, font: number)",
    "body": "Render.StringCustom(x, y, align, text, color, font)",
    "description": "Renders the string text at x|y with a custom font (see also Font).",
    "scope": "javascript,typescript"
  },
  "RenderTexturedRect": {
    "prefix": "Render.TexturedRect(x, y, width, height, texture)",
    "body": "Render.TexturedRect(x, y, width, height, texture)",
    "description": "Renders the texture at x|y with the specified width and height.",
    "scope": "javascript,typescript"
  },
  "RenderAddTexture": {
    "prefix": "Render.AddTexture(filename: string): number",
    "body": "Render.AddTexture(filename)",
    "description": "Returns a texture loaded from a file.",
    "scope": "javascript,typescript"
  },
  "RenderTextSizeCustom": {
    "prefix": "Render.TextSizeCustom(text: string, font: number): Vector2",
    "body": "Render.TextSizeCustom(text, font)",
    "description": "Like Render.TextSize but for custom fonts.",
    "scope": "javascript,typescript"
  },
  "RenderGetScreenSize": {
    "prefix": "Render.GetScreenSize(): Vector2",
    "body": "Render.GetScreenSize()",
    "description": "Returns the width and height of the screen (not the CS:GO window!).",
    "scope": "javascript,typescript"
  },
  "UIAddCheckbox": {
    "prefix": "UI.AddCheckbox(name: string): Reference",
    "body": "UI.AddCheckbox(name)",
    "description": "Creates a checkbox element in the scripting section and returns a reference to it.",
    "scope": "javascript,typescript"
  },
  "UIAddSliderInt": {
    "prefix": "UI.AddSliderInt(name: string, min: number, max: number): Reference",
    "body": "UI.AddSliderInt(name, min, max)",
    "description": "Creates a slider element with the specified range in the scripting section and returns a reference to it.",
    "scope": "javascript,typescript"
  },
  "UIAddSliderFloat": {
    "prefix": "UI.AddSliderFloat(name: string, min: number, max: number): Reference",
    "body": "UI.AddSliderFloat(name, min, max)",
    "description": "Creates a slider element with the specified range in the scripting section and returns a reference to it.",
    "scope": "javascript,typescript"
  },
  "UIAddHotkey": {
    "prefix": "UI.AddHotkey(name: string): Reference",
    "body": "UI.AddHotkey(name)",
    "description": "Creates a hotkey element in the scripting section and returns a reference to it.\n\nUse Reference.IsHotkeyActive to check if the hotkey is active.",
    "scope": "javascript,typescript"
  },
  "UIAddLabel": {
    "prefix": "UI.AddLabel(text: string): Reference",
    "body": "UI.AddLabel(text)",
    "description": "Creates a label element in the scripting section and returns a reference to it.",
    "scope": "javascript,typescript"
  },
  "UIAddDropdown": {
    "prefix": "UI.AddDropdown(name: string, options): Reference",
    "body": "UI.AddDropdown(name, options)",
    "description": "Creates a dropdown element in the scripting section and returns a reference to it.  \n`options` is a list of string.\n\nReference.GetValue on a dropdown returns a zero-indexed number\n\n```js\nUI.AddDropdown(\"sample dropdown\", [\"option 0\", \"option 1\", \"option 2\"])\n\n// by default the first option is selected\nUI.GetValue(\"sample dropdown\") // 0\nUI.SetValue(\"sample dropdown\", 2) // sets dropdown to \"option 2\"\n```",
    "scope": "javascript,typescript"
  },
  "UIAddMultiDropdown": {
    "prefix": "UI.AddMultiDropdown(name: string, options): Reference",
    "body": "UI.AddMultiDropdown(name, options)",
    "description": "Creates a mnlti dropdown element in the scripting section and returns a reference to it.  \n`options` is a list of string.\n\nReference.GetValue on a dropdown returns a number which has the bits of the active options set.\n\n```js\nUI.AddMultiDropdown(\"sample multidropdown\", [\"option 0\", \"option 1\", \"option 2\"])\n\nUI.GetValue(\"sample multidropdown\") // 0, because nothing is set\nUI.SetValue(\"sample multidropdown\", 0b101) // selects option 0 and 2 (bitwise)\nUI.GetValue(\"sample multidropdown\") // 5, because option 0 and 2 are set\n```",
    "scope": "javascript,typescript"
  },
  "UIAddColorPicker": {
    "prefix": "UI.AddColorPicker(name: string): Reference",
    "body": "UI.AddColorPicker(name)",
    "description": "Creates a colorpicker element in the scripting section and returns a reference to it.",
    "scope": "javascript,typescript"
  },
  "UIAddTextbox": {
    "prefix": "UI.AddTextbox(name: string): Reference",
    "body": "UI.AddTextbox(name)",
    "description": "Creates a textbox element in the scripting section and returns a reference to it.",
    "scope": "javascript,typescript"
  },
  "UIIsMenuOpen": {
    "prefix": "UI.IsMenuOpen(): boolean",
    "body": "UI.IsMenuOpen()",
    "description": "Returns if the menu is opened.",
    "scope": "javascript,typescript"
  },
  "ConvarGetInt": {
    "prefix": "Convar.GetInt(name: string): number",
    "body": "Convar.GetInt(name)",
    "description": "Returns the current value of the specified console variable.",
    "scope": "javascript,typescript"
  },
  "ConvarSetInt": {
    "prefix": "Convar.SetInt(name: string, value: number)",
    "body": "Convar.SetInt(name, value)",
    "description": "Sets the value of the specified console variable to the specified value.",
    "scope": "javascript,typescript"
  },
  "ConvarGetFloat": {
    "prefix": "Convar.GetFloat(name: string): number",
    "body": "Convar.GetFloat(name)",
    "description": "Returns the current value of the specified console variable.",
    "scope": "javascript,typescript"
  },
  "ConvarSetFloat": {
    "prefix": "Convar.SetFloat(name: string, value: number)",
    "body": "Convar.SetFloat(name, value)",
    "description": "Sets the value of the specified console variable to the specified value.",
    "scope": "javascript,typescript"
  },
  "ConvarGetString": {
    "prefix": "Convar.GetString(name: string): string",
    "body": "Convar.GetString(name)",
    "description": "Returns the current value of the specified console variable.",
    "scope": "javascript,typescript"
  },
  "ConvarSetString": {
    "prefix": "Convar.SetString(name: string, value: string)",
    "body": "Convar.SetString(name, value)",
    "description": "Sets the value of the specified console variable to the specified value.",
    "scope": "javascript,typescript"
  },
  "EventGetInt": {
    "prefix": "Event.GetInt(name: string): number",
    "body": "Event.GetInt(name)",
    "description": "Returns the integer representation of the specified variable.",
    "scope": "javascript,typescript"
  },
  "EventGetFloat": {
    "prefix": "Event.GetFloat(name: string): number",
    "body": "Event.GetFloat(name)",
    "description": "Returns the floating point representation of the specified variable.",
    "scope": "javascript,typescript"
  },
  "EventGetString": {
    "prefix": "Event.GetString(name: string): string",
    "body": "Event.GetString(name)",
    "description": "Returns the string representation of the specified variable.",
    "scope": "javascript,typescript"
  },
  "EntitiesGetEntities": {
    "prefix": "Entities.GetEntities(): Array[Entity]",
    "body": "Entities.GetEntities()",
    "description": "Returns the entityindex of every entity.",
    "scope": "javascript,typescript"
  },
  "EntitiesGetEntitiesByClassID": {
    "prefix": "Entities.GetEntitiesByClassID(classid: number): Array[Entity]",
    "body": "Entities.GetEntitiesByClassID(classid)",
    "description": "Returns the entityindex of every entity with that class id.",
    "scope": "javascript,typescript"
  },
  "EntitiesGetPlayers": {
    "prefix": "Entities.GetPlayers(): Array[Entity]",
    "body": "Entities.GetPlayers()",
    "description": "Returns the entityindex of every player.",
    "scope": "javascript,typescript"
  },
  "EntitiesGetEnemies": {
    "prefix": "Entities.GetEnemies(): Array[Entity]",
    "body": "Entities.GetEnemies()",
    "description": "Returns the entityindex of every enemy.",
    "scope": "javascript,typescript"
  },
  "EntitiesGetTeammates": {
    "prefix": "Entities.GetTeammates(): Array[Entity]",
    "body": "Entities.GetTeammates()",
    "description": "Returns the entityindex of every teammates.",
    "scope": "javascript,typescript"
  },
  "EntitiesGetLocalPlayer": {
    "prefix": "Entities.GetLocalPlayer(): Entity",
    "body": "Entities.GetLocalPlayer()",
    "description": "Returns the entityindex of yourself.",
    "scope": "javascript,typescript"
  },
  "EntitiesGetGameRulesProxy": {
    "prefix": "Entities.GetGameRulesProxy(): Entity",
    "body": "Entities.GetGameRulesProxy()",
    "description": "Returns the entityindex of the gamerules proxy.\n\n// TODO: maybe link to some information about the GameRulesProxy?",
    "scope": "javascript,typescript"
  },
  "EntitiesGetEntityFromUserID": {
    "prefix": "Entities.GetEntityFromUserID(userid: number): Entity",
    "body": "Entities.GetEntityFromUserID(userid)",
    "description": "Returns the entityindex of the player with the matching user id.",
    "scope": "javascript,typescript"
  },
  "TraceLine": {
    "prefix": "Trace.Line(entityindex: Entity, start: Vector3, end: Vector3)",
    "body": "Trace.Line(entityindex, start, end)",
    "description": "Traces a line between start and end, ignoring the specified entity.\n\n[target: Entity, fraction: number]\n\n- `target` is the entity who was hit\n- `fraction` has 3 possible values:\n  - 1.0: didn't hit anything\n  - 0.5: hit something halfway through\n  - 0.1: hit something",
    "scope": "javascript,typescript"
  },
  "TraceBullet": {
    "prefix": "Trace.Bullet(source: Entity, target: Entity, start: Vector3, end: Vector3)",
    "body": "Trace.Bullet(source, target, start, end)",
    "description": "Traces a bullet between start and end.  \nReturns `undefined` if the target is not hit.\n\n[target: Entity, damage: number, visibility: boolean, hitbox: number]\n\n- `target` is the entity from the function call\n- `damage` is the damage your current gun would deal\n- `visibility` is whether the target is visible\n- `hitbox` is the hitbox that gets hit, see also: Hitbox\n\n> **Warning**: If you've teamcheck on, this will return 0 damage on teammates and yourself!",
    "scope": "javascript,typescript"
  },
  "UserCMDSetMovement": {
    "prefix": "UserCMD.SetMovement(movement: Vector3)",
    "body": "UserCMD.SetMovement(movement)",
    "description": "Sets the movement for the current user command.",
    "scope": "javascript,typescript"
  },
  "UserCMDGetMovement": {
    "prefix": "UserCMD.GetMovement(): Vector3",
    "body": "UserCMD.GetMovement()",
    "description": "Returns the planned movement for the current user command.",
    "scope": "javascript,typescript"
  },
  "UserCMDSetAngles": {
    "prefix": "UserCMD.SetAngles(angles: Vector3)",
    "body": "UserCMD.SetAngles(angles)",
    "description": "Sets the viewangles for the current user command.",
    "scope": "javascript,typescript"
  },
  "UserCMDForceJump": {
    "prefix": "UserCMD.ForceJump(value: boolean)",
    "body": "UserCMD.ForceJump(value)",
    "description": "Forces yourself to jump (or not) in this user command.",
    "scope": "javascript,typescript"
  },
  "UserCMDForceCrouch": {
    "prefix": "UserCMD.ForceCrouch(value: boolean)",
    "body": "UserCMD.ForceCrouch(value)",
    "description": "Forces yourself to crouch (or not) in this user command.",
    "scope": "javascript,typescript"
  },
  "AntiAimGetOverride": {
    "prefix": "AntiAim.GetOverride(): number",
    "body": "AntiAim.GetOverride()",
    "description": "Returns whether the antiaim is being managed by a script.  \n`1` means it is and `0` means it isn't.",
    "scope": "javascript,typescript"
  },
  "AntiAimSetOverride": {
    "prefix": "AntiAim.SetOverride(managed: number)",
    "body": "AntiAim.SetOverride(managed)",
    "description": "Enables/disables management of the antiaim.\n\n> **Warning**: A boolean is **not supported**.  \n> Use `0` instead of `false` and `1` instead of `true`.",
    "scope": "javascript,typescript"
  },
  "AntiAimSetRealOffset": {
    "prefix": "AntiAim.SetRealOffset(degrees: number)",
    "body": "AntiAim.SetRealOffset(degrees)",
    "description": "Sets the offset of your real (relative to your AntiAim.SetFakeOffset).  \nDegrees should be between -58 and 58.",
    "scope": "javascript,typescript"
  },
  "AntiAimSetFakeOffset": {
    "prefix": "AntiAim.SetFakeOffset(degrees: number)",
    "body": "AntiAim.SetFakeOffset(degrees)",
    "description": "Sets your yaw offset (relative to -180).  \nDegrees should be between -180 and 180.",
    "scope": "javascript,typescript"
  },
  "AntiAimSetLBYOffset": {
    "prefix": "AntiAim.SetLBYOffset(degrees: number)",
    "body": "AntiAim.SetLBYOffset(degrees)",
    "description": "Sets the offset of your fake (relative to your AntiAim.SetFakeOffset).  \nDegrees should be between -58 and 58.",
    "scope": "javascript,typescript"
  },
  "ExploitGetCharge": {
    "prefix": "Exploit.GetCharge(): number",
    "body": "Exploit.GetCharge()",
    "description": "Returns the current doubletap charge percentage between 0 and 1 and `-1` if disabled.",
    "scope": "javascript,typescript"
  },
  "ExploitRecharge": {
    "prefix": "Exploit.Recharge()",
    "body": "Exploit.Recharge()",
    "description": "Forces the ragebot to recharge the doubletap as soon as possible.",
    "scope": "javascript,typescript"
  },
  "ExploitDisableRecharge": {
    "prefix": "Exploit.DisableRecharge()",
    "body": "Exploit.DisableRecharge()",
    "description": "Disables automatic recharge.",
    "scope": "javascript,typescript"
  },
  "ExploitEnableRecharge": {
    "prefix": "Exploit.EnableRecharge()",
    "body": "Exploit.EnableRecharge()",
    "description": "Enables automatic recharge.",
    "scope": "javascript,typescript"
  },
  "RagebotGetTarget": {
    "prefix": "Ragebot.GetTarget(): Entity",
    "body": "Ragebot.GetTarget()",
    "description": "Returns the targetted entity.  \nReturns 0 if no entity is being targetted.",
    "scope": "javascript,typescript"
  },
  "RagebotIgnoreTarget": {
    "prefix": "Ragebot.IgnoreTarget(entity: Entity)",
    "body": "Ragebot.IgnoreTarget(entity)",
    "description": "Ignores the specified entity for the current tick.",
    "scope": "javascript,typescript"
  },
  "RagebotForceTarget": {
    "prefix": "Ragebot.ForceTarget(entity: Entity)",
    "body": "Ragebot.ForceTarget(entity)",
    "description": "Forces the ragebot to shoot the specified entity for the current tick.",
    "scope": "javascript,typescript"
  },
  "RagebotForceTargetSafety": {
    "prefix": "Ragebot.ForceTargetSafety(entity: Entity)",
    "body": "Ragebot.ForceTargetSafety(entity)",
    "description": "Forces the ragebot to only shoot safepoint for the specified entity for the current tick.",
    "scope": "javascript,typescript"
  },
  "RagebotForceTargetHitchance": {
    "prefix": "Ragebot.ForceTargetHitchance(entity: Entity, hitchance: number)",
    "body": "Ragebot.ForceTargetHitchance(entity, hitchance)",
    "description": "Forces the ragebot to only shoot with at least the specified hitchance for the specified entity for the current tick.  \nHitchance is a number between 0 and 100.",
    "scope": "javascript,typescript"
  },
  "RagebotForceTargetMinimumDamage": {
    "prefix": "Ragebot.ForceTargetMinimumDamage(entity: Entity, damage: number)",
    "body": "Ragebot.ForceTargetMinimumDamage(entity, damage)",
    "description": "Forces the ragebot to shoot for at least the specified damage for the specified entity for the current tick.  \nDamage 0 is treated as dynamic min damage.\nDamage over 100 is treated as `HP + (damage - 100)`.",
    "scope": "javascript,typescript"
  },
  "RagebotForceHitboxSafety": {
    "prefix": "Ragebot.ForceHitboxSafety(hitbox: Hitbox)",
    "body": "Ragebot.ForceHitboxSafety(hitbox)",
    "description": "Forces the ragebot to only shoot safepoint of the specified hitbox for the current tick.",
    "scope": "javascript,typescript"
  },
  "MaterialCreate": {
    "prefix": "Material.Create(name: string): Material?",
    "body": "Material.Create(name)",
    "description": "Creates a material and returns it or `false` if it fails.\n\nThe material is added to the \"Visible type\" dropdown in the chams section of the menu.",
    "scope": "javascript,typescript"
  },
  "MaterialGet": {
    "prefix": "Material.Get(name: string): Material",
    "body": "Material.Get(name)",
    "description": "Returns the material.",
    "scope": "javascript,typescript"
  }
}