A web application designed to create Half-Life configuration files quickly and intuitively. It brings together dozens of scripts, binds, and gameplay settings in one place — no more hunting through scattered config snippets.
- Names — Main nickname, alternate nick list with bind key and color preview.
- Weapons — Per-weapon key bindings for quick weapon switching.
- Slots — Weapon slot binds with numpad, custom, or no-priority modes.
- Scripts — Auto bunnyhop, quick use, using, and low sensitivity aliases.
- Team Communication — Pre-built bind keys for team chat and callouts.
- Basic Config — Mouse sensitivity & raw input, HUD tweaks (weapon image, speedometer, clock, rainbow HUD, RGB color), MP5 bullet visual customization, FPS limiter and VSync.
- Gameplay — Optimized video/sound/connection settings, custom textures, map & model aliases, cycling smile aliases, sound fix, spectate alias, and force model commands.
- React 19 + React Router 7 — Component-based UI with client-side routing.
- TypeScript 6 — Full type safety across the codebase.
- Vite 8 — Fast development server and optimized production builds.
- Tailwind CSS 4 — Utility-first styling with
@themecustom properties. - Zustand 5 — Lightweight global state management (7 store slices).
- shadcn/ui + Radix UI — Accessible, composable UI primitives (dialog, tooltip, switch, slider, tabs, scroll area, etc.).
- @dnd-kit — Drag-and-drop reordering for the nick list.
- lucide-react — Consistent icon set.
config-generator/
├── public/ # Static assets (logo, images, audio, base.cfg)
│ ├── assets/
│ │ ├── base.cfg # Base Half-Life config template
│ │ ├── slots/ # Slot reference images
│ │ ├── team-binds/ # Team bind reference images
│ │ ├── weapons/ # Weapon icon images
│ │ ├── key-names.png # Keyboard layout reference
│ │ ├── text-colors.png # Color code reference
│ │ └── TriageAtDawn.mp3 # Background music
│ └── logo.png
├── src/
│ ├── components/
│ │ ├── layout/ # AppShell, Sidebar, Header
│ │ ├── tabs/ # 7 tab components (Names, Weapons, Slots, etc.)
│ │ ├── modals/ # Generate modal, Recommendation modal
│ │ ├── shared/ # ColorPicker, DraggableNickList, SpecialKeyButtons
│ │ └── ui/ # shadcn/ui primitives (button, dialog)
│ ├── generators/ # Config output generators (one per tab)
│ ├── hooks/ # Custom hooks (useAudio)
│ ├── i18n/ # Internationalization (en, es)
│ ├── pages/ # HomePage (landing), AppShell routed as /app
│ └── store/ # Global Zustand store with all slices
├── index.html
├── vite.config.ts
├── tsconfig.json
└── package.json
- Node.js >= 20
- npm (or pnpm / yarn)
# Clone the repository
git clone https://github.com/your-username/config-generator.git
cd config-generator
# Install dependencies
npm install
# Start the development server
npm run devOpen http://localhost:5173 in your browser. The app will reload on file changes.
npm run build
npm run previewThe build output is written to the dist/ directory.
- Fork the repository.
- Create a branch for your feature or bug fix:
git checkout -b feat/my-feature
- Commit your changes with a clear message:
git commit -m "feat: add new weapon bind preset" - Push to your fork and open a Pull Request.
Please keep pull requests focused on a single concern. If you're adding a new feature, consider adding or updating the corresponding generator.
If you find this project useful, consider supporting its development:
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
You are free to fork, modify, and distribute this software, provided that all derivative works are distributed under the same license and give credit to the original project.
