{"id":21326862,"url":"https://github.com/climax-solution/csgo-react","last_synced_at":"2026-05-10T14:48:48.426Z","repository":{"id":166415009,"uuid":"609117511","full_name":"climax-solution/csgo-react","owner":"climax-solution","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-03T12:25:47.000Z","size":22708,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T12:45:28.323Z","etag":null,"topics":["csgo","react","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/climax-solution.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-03T12:13:24.000Z","updated_at":"2023-03-03T12:37:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"b160288f-d06c-4412-aba3-ac7f6f49c38b","html_url":"https://github.com/climax-solution/csgo-react","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/climax-solution%2Fcsgo-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/climax-solution%2Fcsgo-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/climax-solution%2Fcsgo-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/climax-solution%2Fcsgo-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/climax-solution","download_url":"https://codeload.github.com/climax-solution/csgo-react/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243806071,"owners_count":20350775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csgo","react","typescript"],"created_at":"2024-11-21T21:11:45.014Z","updated_at":"2026-05-10T14:48:43.397Z","avatar_url":"https://github.com/climax-solution.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n\t\u003cp align=\"center\" style=\"font-weight:600; letter-spacing:1pt; font-size:20pt;\"\u003eLEXOGRINE HUD\u003c/p\u003e\n\t\u003cp align=\"center\"\u003e\u003cimg src=\"icon.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\u003c/p\u003e\n\t\u003cp align=\"center\" style=\"font-weight:400;\"\u003ePowered by \u003ca href='https://github.com/lexogrine/hud-manager'\u003e\u003cstrong\u003e« Lexogrine HUD Manager »\u003c/strong\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/p\u003e\n\n# Lexogrine HUD\n\n  \n\nFullfledged example of the React HUD made for HUD Manager. It has:\n\n- Custom actions\n- Keybinds\n- Killfeed\n- Player cam feed\n- Custom Radar\n\n## Keybinds:\n### **Left Alt + S**\n\u003eMakes radar smaller by 20px;\n### **Left Alt + B**\n\u003eMakes radar bigger by 20px;\n### **Left Alt + T**\n\u003eShows trivia box\n### **Left Alt + M**\n\u003eToggles upcoming match box\n### **Left Alt + P**\n\u003eToggles player preview\n### **Left Alt + C**\n\u003eToggles camera feed\n### **Left Ctrl + B**\n\u003eMake radar invisible\n\n## **Panel**\n## Trivia settings\n\n|  Field|Description  |\n|--|--|\n|  Trivia title| `Text` |\n|  Trivia content| `Text` |\n\n\n## Display settings\n\n\n|  Field|Description  |\n|--|--|\n|  Left/right box's title| `Text` |\n|  Left/right box's title| `Text` |\n|  Left/right box's image logo| `Image file` |\n\n## Example settings\n\n![Preview of HUDs settings](settings.png)\n\n## Preview\n\n![Preview of HUDs panel in action](preview.png)\n\n# Download\n\nTo download it just click here: [DOWNLOAD HUD](https://github.com/lexogrine/csgo-react-hud/releases/latest)\n\n# Instruction\n## Setting up\nFork this repo, clone it, and then run `npm install` and `npm start`. HUD should start on the 3500 port. For this to work have HUD Manager opened so it will pass CS:GO data to the HUD.\n\n## Identifying HUD\nIn `/public` directory edit hud.json so it fits you - fill HUD's name, author, version, specify the radar and killfeed functionalities. At the end replace the thumb.png with your icon :)\n\n## Building \u0026 distributing\nTo build version to distribute and move around, in the root directory run `npm run pack`. It will create the zip file for distribution. Now you can just drag and drop this file into the HUD Managers upload area.\n\n## Signing\n\nTo create Signed HUD to prevent at least from modyfing compiled Javascript files run `npm run sign`. It's the same as `npm run pack` command but with additional step of signing .js and .css files and hud.json.\n\n  \n ## File structure\n The HUD is seperated into two parts - the API part, that connects to the HUD Manager API and communicate with it: `src/App.tsx` file and `src/api` directory. Usually, you don't want to play with it, so the whole runs without a problem.\n The second part is the render part - `src/HUD`, `src/fonts` and `src/assets` are the directories you want to modify. In the `src/HUD` each element of the HUD is seperated into its own folder. Styles are kept in the `src/HUD/styles`. Names are quite self-explanatory, and to modify style of the element you should just find  the styling by the file and class name.\n\n\n## `panel.json` API\nTo get the incoming data from the HUD Manager, let's take a look at the `src/HUD/SideBoxes/SideBox.tsx` `componentDidMount()` method:\n```javascript\nimport {configs} from  './../../App';\n...\nconfigs.onChange((data:any) =\u003e {\n\tif(!data) return;\n\t\n\tconst  display = data.display_settings;\n\t\n\tif(!display) return;\n\t\n\tif(display[`${this.props.side}_title`]){\n\t\tthis.setState({title:display[`${this.props.side}_title`]})\n\t}\n\tif(display[`${this.props.side}_subtitle`]){\n\t\tthis.setState({subtitle:display[`${this.props.side}_subtitle`]})\n\t}\n\tif(display[`${this.props.side}_image`]){\n\t\tthis.setState({image:display[`${this.props.side}_image`]})\n\t}\n});\n```\nTo retrieve incoming data, you should just import `configs` object and then listen for the changes with `onChange` method. Usually you want to check for the specific data, as in the callback it will always serve the full form from the Manager.\nHowever it looks different in the case of action input. In this case, let's look at the `src/HUD/Trivia/Trivia.tsx`:\n```javascript\nimport {configs, actions} from  './../../App';\n...\nactions.on(\"triviaState\", (state: any) =\u003e {\n\tthis.setState({show:  state === \"show\"})\n});\n```\nFor the action input we need to import the `actions` object and create listener with the parameter on it.\n## `keybinds.json` API\nKeybinds API works in very similiar to `panel.json` action API. One more time the example will be from `src/HUD/Trivia/Trivia.tsx`:\n```javascript\nimport {configs, actions} from  './../../App';\n...\nactions.on(\"toggleTrivia\", () =\u003e {\n\tthis.setState({show: !this.state.show})\n});\n```\nKeybinds listener works on the same object as action input, in this case however there are no parameter to retrieve.\n\n## Killfeed\nBecause our  `csgogsi` has the ability to process input from HLAE's MIRV, listening for kills is very easy. We can see than in `src/HUD/Killfeed/Killfeed.tsx`:\n```javascript\ncomponentDidMount() {\n\tGSI.on(\"kill\", kill  =\u003e {\n\t\tthis.addKill(kill);\n\t});\n}\n```\nThe Killfeed component basically just keeps kills in the state during the round, and after the round it cleans the state. Kills have CSS animation, that makes them gently show, and after a few seconds disappear, the experience is very smooth. You can fiddle with the styling in the `killfeed.css`\nThis killfeed detects who killed whom, if there was an assist (flash assist as well), used weapon, headshot and wallbang.\n\n## Radar\nRadar is custom React-based component, made by Hubert Walczak, and is easily editable from css.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclimax-solution%2Fcsgo-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclimax-solution%2Fcsgo-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclimax-solution%2Fcsgo-react/lists"}