JS module to decode / encode CS:GO and CS2 share codes used to share game replays/crosshairs between players.
npm install csgo-sharecode
This module relies on BigInt, your target platform must support it!
Decodes a match share code into a MatchInformation
object.
import { decodeMatchShareCode, MatchInformation } from 'csgo-sharecode'; const shareCode = 'CSGO-GADqf-jjyJ8-cSP2r-smZRo-TO2xK'; const matchInformation: MatchInformation = decodeMatchShareCode(shareCode); console.log(matchInformation); // output: // // { // matchId: 3230642215713767580n, // reservationId: 3230647599455273103n, // tvPort: 55788 // }
Encodes a MatchInformation
object into a match share code. The example below use values coming from a real CDataGCCStrike15_v2_MatchInfo (lookup for CDataGCCStrike15_v2_MatchInfo
) message.
You should get them from the Steam Game Coordinator or from a .info file.
import { encodeMatch, MatchInformation } from 'csgo-sharecode'; const matchInformation: MatchInformation = { matchId: BigInt('3230642215713767580'), reservationId: BigInt('3230647599455273103'), tvPort: 599906796, }; const shareCode = encodeMatch(matchInformation); console.log(shareCode); // output: // // "CSGO-GADqf-jjyJ8-cSP2r-smZRo-TO2xK"
Decodes a crosshair share code into a Crosshair
object.
import { decodeCrosshairShareCode, Crosshair } from 'csgo-sharecode'; const shareCode = 'CSGO-WsnnD-eHaMw-QNDf9-oxuDh-ydOUD'; const crosshair: Crosshair = decodeCrosshairShareCode(shareCode); console.log(crosshair); // output: // // { // gap: -2.2, // outline: 1, // red: 50, // green: 250, // blue: 50, // alpha: 200, // splitDistance: 3, // followRecoil: true, // fixedCrosshairGap: 3, // color: 1, // outlineEnabled: true, // innerSplitAlpha: 0, // outerSplitAlpha: 1, // splitSizeRatio: 1, // thickness: 0.6, // centerDotEnabled: false, // deployedWeaponGapEnabled: true, // alphaEnabled: true, // tStyleEnabled: false, // style: 2, // length: 10 // }
Encodes a Crosshair
object into a crosshair share code.
import { encodeCrosshair, Crosshair } from 'csgo-sharecode'; const crosshair: Crosshair = { gap: -2.2, outline: 1, red: 50, green: 250, blue: 50, alpha: 200, splitDistance: 3, fixedCrosshairGap: 3, color: 1, innerSplitAlpha: 0, outlineEnabled: true, outerSplitAlpha: 1, splitSizeRatio: 1, thickness: 0.6, centerDotEnabled: false, alphaEnabled: true, tStyleEnabled: false, style: 2, length: 10, deployedWeaponGapEnabled: true, followRecoil: true, }; const shareCode = encodeCrosshair(crosshair); console.log(shareCode); // output: // // "CSGO-WsnnD-eHaMw-QNDf9-oxuDh-ydOUD"
Utility function to generate CSGO ConVars for a given crosshair.
import { crosshairToConVars, Crosshair } from 'csgo-sharecode'; const crosshair: Crosshair = { gap: -2.2, outline: 1, red: 50, green: 250, blue: 50, alpha: 200, splitDistance: 3, fixedCrosshairGap: 3, color: 1, innerSplitAlpha: 0, outlineEnabled: true, outerSplitAlpha: 1, splitSizeRatio: 1, thickness: 0.6, centerDotEnabled: false, alphaEnabled: true, tStyleEnabled: false, style: 2, length: 10, deployedWeaponGapEnabled: true, followRecoil: true, }; const conVars = crosshairToConVars(crosshair); console.log(conVars); // Output: // // cl_crosshair_drawoutline "1" // cl_crosshair_dynamic_maxdist_splitratio "1" // cl_crosshair_dynamic_splitalpha_innermod "0" // cl_crosshair_dynamic_splitalpha_outermod "1" // cl_crosshair_dynamic_splitdist "3" // cl_crosshair_outlinethickness "1" // cl_crosshair_t "0" // cl_crosshairalpha "200" // cl_crosshaircolor "1" // cl_crosshaircolor_b "50" // cl_crosshaircolor_g "250" // cl_crosshaircolor_r "50" // cl_crosshairdot "0" // cl_crosshairgap "-2.2" // cl_crosshairgap_useweaponvalue "1" // cl_crosshairsize "10" // cl_crosshairstyle "2" // cl_crosshairthickness "0.6" // cl_crosshairusealpha "1" // cl_fixedcrosshairgap "3" // cl_crosshair_recoil "1"