hlsdk-portable
v0.1.2
Published
HLSDK emscripten port
Maintainers
Readme
HLSDK-Portable for Xash3D-FWGS
Emscripten-compiled WebAssembly (WASM) binaries of the Half-Life SDK Portable, targeting Xash3D-FWGS, with zero external dependencies.
🚀 Project Overview
This package provides precompiled HLSDK binaries compiled to WASM via Emscripten, specifically targeting the Xash3D-FWGS.
Designed for use with Xash3D-FWGS Web ports, this SDK enables fully in-browser gameplay and mod support for classic Half-Life and its based mods — without requiring any native libraries or installations.
🧱 Features
- ✅ WASM only (no native code)
- ✅ Compatible with WebXash3D-FWGS
- ✅ Drop-in mod support
- ✅ Zero runtime dependencies
- ✅ Runs entirely in-browser
🌐 Discord Community
Need help? Want to share your project or ideas? Join our Discord community to connect with others!
🧩 Usage
To get started quickly, check out the examples/ folder for real-world usage with:
- WebRTC transport
- File system mount
- Minimal startup with in-memory assets
- Multiplayer setup demo
import { Xash3D } from "xash3d-fwgs"
import clientUrl from "hlsdk-portable/cl_dll/client_emscripten_wasm32.wasm"
import serverUrl from "hlsdk-portable/dlls/hl_emscripten_wasm32.so"
const x = new Xash3D({
canvas: document.getElementById('canvas'),
libraries: {
client: clientUrl,
server: serverUrl
}
})
await x.init()
x.main()
x.Cmd_ExecuteString('map crossfire')
x.Cmd_ExecuteString('sv_cheats 1')
x.Cmd_ExecuteString('noclip')
x.Cmd_ExecuteString('kill')
x.quit()📝 Changelog
See CHANGELOG.md for a full list of updates and release history.
