From 212c88efaabf67e965a474c85b31addb0035fac3 Mon Sep 17 00:00:00 2001
From: Janek <development@superyu.xyz>
Date: Wed, 3 Apr 2024 17:59:53 +0200
Subject: [PATCH] fix: resolve #16 by fix cs2dumper importing

Resolved #16, fixes URLs and module imports for cs2dumper.
Warning: Untested.
---
 Cargo.lock                       |  705 ++--
 Cargo.toml                       |   36 +-
 build.rs                         |   33 +-
 src/dma/context/mod.rs           |    2 +-
 src/dma/cs2dumper/client_mod.rs  | 5888 ++++++++++++++++++++++++++++++
 src/dma/cs2dumper/engine2_mod.rs |   79 +
 src/dma/cs2dumper/mod.rs         |   14 +-
 src/dma/cs2dumper/offsets_mod.rs |   48 +
 src/websocket.rs                 |    5 +-
 9 files changed, 6511 insertions(+), 299 deletions(-)
 mode change 100755 => 100644 Cargo.toml
 create mode 100644 src/dma/cs2dumper/client_mod.rs
 create mode 100644 src/dma/cs2dumper/engine2_mod.rs
 create mode 100644 src/dma/cs2dumper/offsets_mod.rs

diff --git a/Cargo.lock b/Cargo.lock
index 01a454c..d0d3d95 100755
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -66,9 +66,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.8.7"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -76,6 +76,15 @@ dependencies = [
  "zerocopy",
 ]
 
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
 [[package]]
 name = "allocator-api2"
 version = "0.2.16"
@@ -84,9 +93,9 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "anstream"
-version = "0.6.5"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -98,9 +107,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -132,9 +141,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "as_derive_utils"
@@ -150,36 +159,37 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "axum"
-version = "0.6.20"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
 dependencies = [
  "async-trait",
  "axum-core",
  "base64",
- "bitflags 1.3.2",
  "bytes",
  "futures-util",
  "http",
  "http-body",
+ "http-body-util",
  "hyper",
+ "hyper-util",
  "itoa",
  "matchit",
  "memchr",
@@ -192,36 +202,41 @@ dependencies = [
  "serde_path_to_error",
  "serde_urlencoded",
  "sha1",
- "sync_wrapper",
+ "sync_wrapper 1.0.0",
  "tokio",
  "tokio-tungstenite",
  "tower",
  "tower-layer",
  "tower-service",
+ "tracing",
 ]
 
 [[package]]
 name = "axum-core"
-version = "0.3.4"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
 dependencies = [
  "async-trait",
  "bytes",
  "futures-util",
  "http",
  "http-body",
+ "http-body-util",
  "mime",
+ "pin-project-lite",
  "rustversion",
+ "sync_wrapper 0.1.2",
  "tower-layer",
  "tower-service",
+ "tracing",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
 dependencies = [
  "addr2line",
  "cc",
@@ -234,9 +249,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bit_field"
@@ -252,9 +267,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block-buffer"
@@ -267,9 +282,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "byteorder"
@@ -279,18 +294,47 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+
+[[package]]
+name = "camino"
+version = "1.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver 1.0.22",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cfg-if"
@@ -340,9 +384,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.13"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52bdc885e4cacc7f7c9eedc1ef6da641603180c783c41a15c264944deeaab642"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -350,43 +394,42 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.12"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim",
+ "strsim 0.11.1",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "coarsetime"
-version = "0.1.33"
+version = "0.1.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71367d3385c716342014ad17e3d19f7788ae514885a1f4c24f500260fb365e1a"
+checksum = "13b3839cf01bb7960114be3ccf2340f541b6d0c81f8690b007b2b39f750f7e5d"
 dependencies = [
  "libc",
- "once_cell",
- "wasi",
+ "wasix",
  "wasm-bindgen",
 ]
 
@@ -448,22 +491,18 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.10"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.18"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crypto-common"
@@ -477,9 +516,9 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -487,27 +526,27 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.48",
+ "strsim 0.10.0",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -579,9 +618,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encoding_rs"
@@ -594,13 +633,13 @@ dependencies = [
 
 [[package]]
 name = "enum-primitive-derive"
-version = "0.2.2"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c375b9c5eadb68d0a6efee2999fef292f45854c3444c86f09d8ab086ba942b0e"
+checksum = "ba7795da175654fe16979af73f81f26a8ea27638d8d9823d317016888a63dc4c"
 dependencies = [
  "num-traits",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -621,9 +660,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
 
 [[package]]
 name = "fixed-slice-vec"
@@ -668,6 +707,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
+ "futures-sink",
 ]
 
 [[package]]
@@ -731,9 +771,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -759,9 +799,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.22"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
+checksum = "51ee2dd2e4f378392eeff5d51618cd9a63166a2513846bbc55f21cfacd9199d4"
 dependencies = [
  "bytes",
  "fnv",
@@ -788,21 +828,21 @@ dependencies = [
 
 [[package]]
 name = "heck"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -811,20 +851,32 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.6"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
 dependencies = [
  "bytes",
  "http",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "http",
+ "http-body",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "http-range-header"
-version = "0.3.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
+checksum = "3ce4ef31cda248bbdb6e6820603b82dfcd9e833db65a43e997a0ccec777d11fe"
 
 [[package]]
 name = "httparse"
@@ -840,13 +892,12 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "hyper"
-version = "0.14.28"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
 dependencies = [
  "bytes",
  "futures-channel",
- "futures-core",
  "futures-util",
  "h2",
  "http",
@@ -855,24 +906,45 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2",
+ "smallvec",
  "tokio",
- "tower-service",
- "tracing",
  "want",
 ]
 
 [[package]]
 name = "hyper-tls"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
 dependencies = [
  "bytes",
+ "http-body-util",
  "hyper",
+ "hyper-util",
  "native-tls",
  "tokio",
  "tokio-native-tls",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -893,9 +965,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -927,24 +999,24 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -957,9 +1029,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.151"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libloading"
@@ -973,36 +1045,35 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "libc",
- "redox_syscall 0.4.1",
 ]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "local-ip-address"
-version = "0.5.6"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66357e687a569abca487dc399a9c9ac19beb3f13991ed49f00c144e02cbd42ab"
+checksum = "136ef34e18462b17bf39a7826f8f3bbc223341f8e83822beb8b77db9a3d49696"
 dependencies = [
  "libc",
  "neli",
@@ -1022,9 +1093,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "matchit"
@@ -1034,9 +1105,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memflow"
@@ -1054,8 +1125,8 @@ dependencies = [
  "fixed-slice-vec",
  "goblin",
  "hashbrown",
- "itertools 0.12.0",
- "libloading 0.8.1",
+ "itertools 0.12.1",
+ "libloading 0.8.3",
  "log",
  "memflow-derive",
  "memmap",
@@ -1079,7 +1150,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1110,18 +1181,18 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -1187,10 +1258,16 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-traits"
-version = "0.2.17"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -1207,9 +1284,9 @@ dependencies = [
 
 [[package]]
 name = "num_threads"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
 dependencies = [
  "libc",
 ]
@@ -1231,11 +1308,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl"
-version = "0.10.62"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1252,7 +1329,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1263,9 +1340,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.98"
+version = "0.9.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
 dependencies = [
  "cc",
  "libc",
@@ -1358,29 +1435,29 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -1390,9 +1467,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plain"
@@ -1414,9 +1491,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro-crate"
-version = "2.0.1"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
+checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
 dependencies = [
  "toml_datetime",
  "toml_edit",
@@ -1424,9 +1501,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -1442,14 +1519,14 @@ dependencies = [
 
 [[package]]
 name = "radarflow"
-version = "0.2.2"
+version = "0.2.3"
 dependencies = [
  "anyhow",
  "axum",
  "clap",
  "dataview 1.0.1",
  "enum-primitive-derive",
- "itertools 0.12.0",
+ "itertools 0.12.1",
  "local-ip-address",
  "log",
  "memflow",
@@ -1496,9 +1573,9 @@ dependencies = [
 
 [[package]]
 name = "rangemap"
-version = "1.4.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
+checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
 
 [[package]]
 name = "redox_syscall"
@@ -1520,15 +1597,44 @@ dependencies = [
 
 [[package]]
 name = "redox_users"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
 dependencies = [
  "getrandom",
  "libredox",
  "thiserror",
 ]
 
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
 [[package]]
 name = "repr_offset"
 version = "0.2.2"
@@ -1540,20 +1646,23 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.23"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
+checksum = "2d66674f2b6fb864665eea7a3c1ac4e3dfacd2fda83cf6f935a612e01b0e3338"
 dependencies = [
  "base64",
  "bytes",
  "encoding_rs",
+ "futures-channel",
  "futures-core",
  "futures-util",
  "h2",
  "http",
  "http-body",
+ "http-body-util",
  "hyper",
  "hyper-tls",
+ "hyper-util",
  "ipnet",
  "js-sys",
  "log",
@@ -1562,9 +1671,11 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
+ "rustls-pemfile",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper 0.1.2",
  "system-configuration",
  "tokio",
  "tokio-native-tls",
@@ -1597,22 +1708,31 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.21",
+ "semver 1.0.22",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.28"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys",
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
 [[package]]
 name = "rustversion"
 version = "1.0.14"
@@ -1621,9 +1741,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "schannel"
@@ -1657,14 +1777,14 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "security-framework"
-version = "2.9.2"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -1675,9 +1795,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.1"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -1694,9 +1814,12 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "semver-parser"
@@ -1706,29 +1829,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
 dependencies = [
  "itoa",
  "ryu",
@@ -1737,9 +1860,9 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.15"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
+checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
 dependencies = [
  "itoa",
  "serde",
@@ -1809,18 +1932,18 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1829,6 +1952,12 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
 [[package]]
 name = "syn"
 version = "1.0.109"
@@ -1842,9 +1971,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1858,17 +1987,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
-name = "sysinfo"
-version = "0.29.11"
+name = "sync_wrapper"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666"
+checksum = "384595c11a4e2969895cad5a8c4029115f5ab956a9e5ef4de79d11a426e5f20c"
+
+[[package]]
+name = "sysinfo"
+version = "0.30.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b1a378e48fb3ce3a5cf04359c456c9c98ff689bcf1c1bc6e6a31f247686f275"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
  "libc",
  "ntapi",
  "once_cell",
- "winapi",
+ "windows",
 ]
 
 [[package]]
@@ -1900,46 +2035,46 @@ checksum = "88da97cd34718f47df2adae0c2310ee305e061c794b9c07fd33d8387f4ee2e1c"
 
 [[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall 0.4.1",
  "rustix",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.31"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
  "serde",
@@ -1955,10 +2090,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -1979,9 +2115,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2004,7 +2140,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -2019,9 +2155,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-tungstenite"
-version = "0.20.1"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
+checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38"
 dependencies = [
  "futures-util",
  "log",
@@ -2095,16 +2231,16 @@ dependencies = [
 
 [[package]]
 name = "tower-http"
-version = "0.4.4"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
+checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bytes",
- "futures-core",
  "futures-util",
  "http",
  "http-body",
+ "http-body-util",
  "http-range-header",
  "httpdate",
  "mime",
@@ -2158,9 +2294,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "tstr"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cca3264971090dec0feef3b455a3c178f02762f7550cf4592991ac64b3be2d7e"
+checksum = "7f8e0294f14baae476d0dd0a2d780b2e24d66e349a9de876f5126777a37bdba7"
 dependencies = [
  "tstr_proc_macros",
 ]
@@ -2173,9 +2309,9 @@ checksum = "e78122066b0cb818b8afd08f7ed22f7fdbc3e90815035726f0840d0d26c0747a"
 
 [[package]]
 name = "tungstenite"
-version = "0.20.1"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
 dependencies = [
  "byteorder",
  "bytes",
@@ -2213,9 +2349,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -2225,9 +2361,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -2263,11 +2399,14 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "vergen"
-version = "8.2.6"
+version = "8.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1290fd64cc4e7d3c9b07d7f333ce0ce0007253e32870e632624835cc80b83939"
+checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
 dependencies = [
  "anyhow",
+ "cargo_metadata",
+ "cfg-if",
+ "regex",
  "rustc_version 0.4.0",
  "rustversion",
  "sysinfo",
@@ -2302,10 +2441,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "wasm-bindgen"
-version = "0.2.89"
+name = "wasix"
+version = "0.12.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d"
+dependencies = [
+ "wasi",
+]
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2313,24 +2461,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2340,9 +2488,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2350,28 +2498,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2399,6 +2547,25 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
 [[package]]
 name = "windows-sys"
 version = "0.48.0"
@@ -2414,7 +2581,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -2434,17 +2601,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -2455,9 +2622,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2467,9 +2634,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2479,9 +2646,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2491,9 +2658,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2503,9 +2670,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2515,9 +2682,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -2527,15 +2694,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.33"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7520bbdec7211caa7c4e682eb1fbe07abe20cee6756b6e00f537c82c11816aa"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
@@ -2552,12 +2719,12 @@ dependencies = [
 
 [[package]]
 name = "x86_64"
-version = "0.14.11"
+version = "0.14.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b835097a84e4457323331ec5d6eb23d096066cbfb215d54096dcb4b2e85f500"
+checksum = "96cb6fd45bfeab6a5055c5bffdb08768bd0c069f1d946debe585bbb380a7c062"
 dependencies = [
  "bit_field",
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "rustversion",
  "volatile",
 ]
@@ -2579,5 +2746,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
diff --git a/Cargo.toml b/Cargo.toml
old mode 100755
new mode 100644
index efc1cdd..6b53694
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "radarflow"
-version = "0.2.2"
+version = "0.2.3"
 authors = ["Janek S <development@superyu.xyz"]
 edition = "2021"
 
@@ -8,36 +8,38 @@ edition = "2021"
 
 [dependencies]
 # memory
-memflow = "0.2.0"
+memflow = "0.2.1"
 dataview = "1.0.1"
 
 # logging
-log = "0.4.19"
-simple_logger = "4.2.0"
+log = "0.4.21"
+simple_logger = "4.3.3"
 
 # error handling
-anyhow = "1.0.79"
+anyhow = "1.0.81"
 
 # derive stuff
-enum-primitive-derive = "0.2.2"
-num-traits = "0.2.16"
-serde = { version = "1.0.181", features = ["derive"] }
-serde_json = "1.0.104"
-clap = { version = "4.3.19", features = ["derive", "string"] }
+enum-primitive-derive = "0.3.0"
+num-traits = "0.2.18"
+serde = { version = "1.0.197", features = ["derive"] }
+serde_json = "1.0.115"
+clap = { version = "4.5.4", features = ["derive", "string"] }
 
 # tokio
-tokio = { version = "1.29.1", features = ["full"] }
+tokio = { version = "1.37.0", features = ["full"] }
 
 # networking
-axum = { version = "0.6.20", features = ["ws"] }
-tower-http = { version = "0.4.3", features = ["fs"] }
+axum = { version = "0.7.5", features = ["ws"] }
+tower-http = { version = "0.5.2", features = ["fs"] }
 tower = "0.4.13"
-local-ip-address = "0.5.4"
+local-ip-address = "0.6.1"
 
 # other
-itertools = "0.12.0"
+itertools = "0.12.1"
 
 
 [build-dependencies]
-reqwest = { version = "0.11.18", features = ["blocking"] }
-vergen = { version = "8.0.0", features = ["build", "cargo", "git", "gitcl", "rustc", "si"] }
+reqwest = { version = "0.12.2", features = ["blocking"] }
+serde = { version = "1.0.197", features = ["derive"] }
+serde_json = "1.0.115"
+vergen = { version = "8.3.1", features = ["build", "cargo", "git", "gitcl", "rustc", "si"] }
diff --git a/build.rs b/build.rs
index ae610eb..7c692f0 100755
--- a/build.rs
+++ b/build.rs
@@ -1,7 +1,14 @@
 use std::error::Error;
 
+use serde::{Deserialize, Serialize};
 use vergen::EmitBuilder;
 
+#[derive(Clone, Deserialize, Serialize)]
+struct InfoJson {
+    build_number: usize,
+    timestamp: String
+}
+
 fn download(url: &str, to: &str) -> Result<(), Box<dyn Error>> {
     let content = reqwest::blocking::get(url)
         .unwrap_or_else(|_| panic!("Downloading \"{to}\""))
@@ -14,23 +21,37 @@ fn download(url: &str, to: &str) -> Result<(), Box<dyn Error>> {
     Ok(())
 }
 
+fn build_number() -> Result<(), Box<dyn Error>> {
+    let content = reqwest::blocking::get("https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/info.json")
+        .unwrap_or_else(|_| panic!("Downloading info.json"))
+        .text()
+        .expect("Convert response to text");
+
+    let info = serde_json::from_str::<InfoJson>(&content)?;
+    println!("cargo:rustc-env=CS2_BUILD_NUMBER={}", info.build_number);
+
+    Ok(())
+}
+
 fn main() -> Result<(), Box<dyn Error>> {
 
     download(
-        "https://raw.githubusercontent.com/a2x/cs2-dumper/main/generated/client.dll.rs",
-        "./src/dma/cs2dumper/client.rs"
+        "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/client.dll.rs",
+        "./src/dma/cs2dumper/client_mod.rs"
     ).expect("Failed to download build file \"client.dll.rs\"");
 
     download(
-        "https://raw.githubusercontent.com/a2x/cs2-dumper/main/generated/offsets.rs",
-        "./src/dma/cs2dumper/offsets.rs"
+        "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/offsets.rs",
+        "./src/dma/cs2dumper/offsets_mod.rs"
     ).expect("Failed to download build file \"offsets.rs\"");
 
     download(
-        "https://raw.githubusercontent.com/a2x/cs2-dumper/main/generated/engine2.dll.rs",
-        "./src/dma/cs2dumper/engine2.rs"
+        "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/engine2.dll.rs",
+        "./src/dma/cs2dumper/engine2_mod.rs"
     ).expect("Failed to download build file \"engine2.dll.rs\"");
 
+    build_number()?;
+
     EmitBuilder::builder()
         .git_sha(true)
         .git_commit_date()
diff --git a/src/dma/context/mod.rs b/src/dma/context/mod.rs
index d404fbb..50ede3c 100755
--- a/src/dma/context/mod.rs
+++ b/src/dma/context/mod.rs
@@ -18,7 +18,7 @@ pub struct DmaCtx {
 impl DmaCtx {
     fn check_version(&mut self) -> anyhow::Result<()> {
         let game_build_number: u32 = self.process.read(self.engine_module.base + cs2dumper::offsets::engine2_dll::dwBuildNumber)?;
-        let offset_build_number = cs2dumper::offsets::game_info::buildNumber;
+        let offset_build_number = env!("CS2_BUILD_NUMBER").parse::<usize>()?;
 
         if game_build_number as usize != offset_build_number {
             return Err(anyhow::anyhow!(
diff --git a/src/dma/cs2dumper/client_mod.rs b/src/dma/cs2dumper/client_mod.rs
new file mode 100644
index 0000000..cf38cf9
--- /dev/null
+++ b/src/dma/cs2dumper/client_mod.rs
@@ -0,0 +1,5888 @@
+// Generated using https://github.com/a2x/cs2-dumper
+// 2024-04-02 16:10:48.961749300 UTC
+
+#![allow(non_upper_case_globals, non_camel_case_types, unused)]
+
+pub mod cs2_dumper {
+    pub mod schemas {
+        // Module: client.dll
+        // Classes count: 220
+        // Enums count: 8
+        pub mod client_dll {
+            // Alignment: 4
+            // Members count: 5
+            #[repr(u32)]
+            pub enum C_BaseCombatCharacter__WaterWakeMode_t {
+                WATER_WAKE_NONE = 0x0,
+                WATER_WAKE_IDLE = 0x1,
+                WATER_WAKE_WALKING = 0x2,
+                WATER_WAKE_RUNNING = 0x3,
+                WATER_WAKE_WATER_OVERHEAD = 0x4
+            }
+            // Alignment: 4
+            // Members count: 6
+            #[repr(u32)]
+            pub enum CompositeMaterialMatchFilterType_t {
+                MATCH_FILTER_MATERIAL_ATTRIBUTE_EXISTS = 0x0,
+                MATCH_FILTER_MATERIAL_SHADER = 0x1,
+                MATCH_FILTER_MATERIAL_NAME_SUBSTR = 0x2,
+                MATCH_FILTER_MATERIAL_ATTRIBUTE_EQUALS = 0x3,
+                MATCH_FILTER_MATERIAL_PROPERTY_EXISTS = 0x4,
+                MATCH_FILTER_MATERIAL_PROPERTY_EQUALS = 0x5
+            }
+            // Alignment: 4
+            // Members count: 2
+            #[repr(u32)]
+            pub enum CompositeMaterialVarSystemVar_t {
+                COMPMATSYSVAR_COMPOSITETIME = 0x0,
+                COMPMATSYSVAR_EMPTY_RESOURCE_SPACER = 0x1
+            }
+            // Alignment: 4
+            // Members count: 14
+            #[repr(u32)]
+            pub enum CompositeMaterialInputLooseVariableType_t {
+                LOOSE_VARIABLE_TYPE_BOOLEAN = 0x0,
+                LOOSE_VARIABLE_TYPE_INTEGER1 = 0x1,
+                LOOSE_VARIABLE_TYPE_INTEGER2 = 0x2,
+                LOOSE_VARIABLE_TYPE_INTEGER3 = 0x3,
+                LOOSE_VARIABLE_TYPE_INTEGER4 = 0x4,
+                LOOSE_VARIABLE_TYPE_FLOAT1 = 0x5,
+                LOOSE_VARIABLE_TYPE_FLOAT2 = 0x6,
+                LOOSE_VARIABLE_TYPE_FLOAT3 = 0x7,
+                LOOSE_VARIABLE_TYPE_FLOAT4 = 0x8,
+                LOOSE_VARIABLE_TYPE_COLOR4 = 0x9,
+                LOOSE_VARIABLE_TYPE_STRING = 0xA,
+                LOOSE_VARIABLE_TYPE_SYSTEMVAR = 0xB,
+                LOOSE_VARIABLE_TYPE_RESOURCE_MATERIAL = 0xC,
+                LOOSE_VARIABLE_TYPE_RESOURCE_TEXTURE = 0xD
+            }
+            // Alignment: 4
+            // Members count: 7
+            #[repr(u32)]
+            pub enum CompositeMaterialInputTextureType_t {
+                INPUT_TEXTURE_TYPE_DEFAULT = 0x0,
+                INPUT_TEXTURE_TYPE_NORMALMAP = 0x1,
+                INPUT_TEXTURE_TYPE_COLOR = 0x2,
+                INPUT_TEXTURE_TYPE_MASKS = 0x3,
+                INPUT_TEXTURE_TYPE_ROUGHNESS = 0x4,
+                INPUT_TEXTURE_TYPE_PEARLESCENCE_MASK = 0x5,
+                INPUT_TEXTURE_TYPE_AO = 0x6
+            }
+            // Alignment: 4
+            // Members count: 10
+            #[repr(u32)]
+            pub enum CompMatPropertyMutatorType_t {
+                COMP_MAT_PROPERTY_MUTATOR_INIT = 0x0,
+                COMP_MAT_PROPERTY_MUTATOR_COPY_MATCHING_KEYS = 0x1,
+                COMP_MAT_PROPERTY_MUTATOR_COPY_KEYS_WITH_SUFFIX = 0x2,
+                COMP_MAT_PROPERTY_MUTATOR_COPY_PROPERTY = 0x3,
+                COMP_MAT_PROPERTY_MUTATOR_SET_VALUE = 0x4,
+                COMP_MAT_PROPERTY_MUTATOR_GENERATE_TEXTURE = 0x5,
+                COMP_MAT_PROPERTY_MUTATOR_CONDITIONAL_MUTATORS = 0x6,
+                COMP_MAT_PROPERTY_MUTATOR_POP_INPUT_QUEUE = 0x7,
+                COMP_MAT_PROPERTY_MUTATOR_DRAW_TEXT = 0x8,
+                COMP_MAT_PROPERTY_MUTATOR_RANDOM_ROLL_INPUT_VARIABLES = 0x9
+            }
+            // Alignment: 4
+            // Members count: 3
+            #[repr(u32)]
+            pub enum CompMatPropertyMutatorConditionType_t {
+                COMP_MAT_MUTATOR_CONDITION_INPUT_CONTAINER_EXISTS = 0x0,
+                COMP_MAT_MUTATOR_CONDITION_INPUT_CONTAINER_VALUE_EXISTS = 0x1,
+                COMP_MAT_MUTATOR_CONDITION_INPUT_CONTAINER_VALUE_EQUALS = 0x2
+            }
+            // Alignment: 4
+            // Members count: 6
+            #[repr(u32)]
+            pub enum CompositeMaterialInputContainerSourceType_t {
+                CONTAINER_SOURCE_TYPE_TARGET_MATERIAL = 0x0,
+                CONTAINER_SOURCE_TYPE_MATERIAL_FROM_TARGET_ATTR = 0x1,
+                CONTAINER_SOURCE_TYPE_SPECIFIC_MATERIAL = 0x2,
+                CONTAINER_SOURCE_TYPE_LOOSE_VARIABLES = 0x3,
+                CONTAINER_SOURCE_TYPE_VARIABLE_FROM_TARGET_ATTR = 0x4,
+                CONTAINER_SOURCE_TYPE_TARGET_INSTANCE_MATERIAL = 0x5
+            }
+            // Parent: None
+            // Fields count: 11
+            //
+            // Metadata:
+            // NetworkVarNames: m_nameStringableIndex (int32)
+            pub mod CEntityIdentity {
+                pub const m_nameStringableIndex: usize = 0x14; // int32
+                pub const m_name: usize = 0x18; // CUtlSymbolLarge
+                pub const m_designerName: usize = 0x20; // CUtlSymbolLarge
+                pub const m_flags: usize = 0x30; // uint32
+                pub const m_worldGroupId: usize = 0x38; // WorldGroupId_t
+                pub const m_fDataObjectTypes: usize = 0x3C; // uint32
+                pub const m_PathIndex: usize = 0x40; // ChangeAccessorFieldPathIndex_t
+                pub const m_pPrev: usize = 0x58; // CEntityIdentity*
+                pub const m_pNext: usize = 0x60; // CEntityIdentity*
+                pub const m_pPrevByClass: usize = 0x68; // CEntityIdentity*
+                pub const m_pNextByClass: usize = 0x70; // CEntityIdentity*
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_pEntity (CEntityIdentity*)
+            // NetworkVarNames: m_CScriptComponent (CScriptComponent::Storage_t)
+            pub mod CEntityInstance {
+                pub const m_iszPrivateVScripts: usize = 0x8; // CUtlSymbolLarge
+                pub const m_pEntity: usize = 0x10; // CEntityIdentity*
+                pub const m_CScriptComponent: usize = 0x28; // CScriptComponent*
+                pub const m_bVisibleinPVS: usize = 0x30; // bool
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_sceneNode (CGameSceneNode)
+            pub mod CBodyComponentPoint {
+                pub const m_sceneNode: usize = 0x50; // CGameSceneNode
+                pub const __m_pChainEntity: usize = 0x1A0; // CNetworkVarChainer
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_skeletonInstance (CSkeletonInstance)
+            pub mod CBodyComponentSkeletonInstance {
+                pub const m_skeletonInstance: usize = 0x50; // CSkeletonInstance
+                pub const __m_pChainEntity: usize = 0x430; // CNetworkVarChainer
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_bvDisabledHitGroups (uint32)
+            pub mod CHitboxComponent {
+                pub const m_bvDisabledHitGroups: usize = 0x24; // uint32[1]
+            }
+            // Parent: None
+            // Fields count: 66
+            //
+            // Metadata:
+            // NetworkVarNames: m_Color (Color)
+            // NetworkVarNames: m_SecondaryColor (Color)
+            // NetworkVarNames: m_flBrightness (float)
+            // NetworkVarNames: m_flBrightnessScale (float)
+            // NetworkVarNames: m_flBrightnessMult (float)
+            // NetworkVarNames: m_flRange (float)
+            // NetworkVarNames: m_flFalloff (float)
+            // NetworkVarNames: m_flAttenuation0 (float)
+            // NetworkVarNames: m_flAttenuation1 (float)
+            // NetworkVarNames: m_flAttenuation2 (float)
+            // NetworkVarNames: m_flTheta (float)
+            // NetworkVarNames: m_flPhi (float)
+            // NetworkVarNames: m_hLightCookie (HRenderTextureStrong)
+            // NetworkVarNames: m_nCascades (int)
+            // NetworkVarNames: m_nCastShadows (int)
+            // NetworkVarNames: m_nShadowWidth (int)
+            // NetworkVarNames: m_nShadowHeight (int)
+            // NetworkVarNames: m_bRenderDiffuse (bool)
+            // NetworkVarNames: m_nRenderSpecular (int)
+            // NetworkVarNames: m_bRenderTransmissive (bool)
+            // NetworkVarNames: m_flOrthoLightWidth (float)
+            // NetworkVarNames: m_flOrthoLightHeight (float)
+            // NetworkVarNames: m_nStyle (int)
+            // NetworkVarNames: m_Pattern (CUtlString)
+            // NetworkVarNames: m_nCascadeRenderStaticObjects (int)
+            // NetworkVarNames: m_flShadowCascadeCrossFade (float)
+            // NetworkVarNames: m_flShadowCascadeDistanceFade (float)
+            // NetworkVarNames: m_flShadowCascadeDistance0 (float)
+            // NetworkVarNames: m_flShadowCascadeDistance1 (float)
+            // NetworkVarNames: m_flShadowCascadeDistance2 (float)
+            // NetworkVarNames: m_flShadowCascadeDistance3 (float)
+            // NetworkVarNames: m_nShadowCascadeResolution0 (int)
+            // NetworkVarNames: m_nShadowCascadeResolution1 (int)
+            // NetworkVarNames: m_nShadowCascadeResolution2 (int)
+            // NetworkVarNames: m_nShadowCascadeResolution3 (int)
+            // NetworkVarNames: m_bUsesBakedShadowing (bool)
+            // NetworkVarNames: m_nShadowPriority (int)
+            // NetworkVarNames: m_nBakedShadowIndex (int)
+            // NetworkVarNames: m_bRenderToCubemaps (bool)
+            // NetworkVarNames: m_nDirectLight (int)
+            // NetworkVarNames: m_nIndirectLight (int)
+            // NetworkVarNames: m_flFadeMinDist (float)
+            // NetworkVarNames: m_flFadeMaxDist (float)
+            // NetworkVarNames: m_flShadowFadeMinDist (float)
+            // NetworkVarNames: m_flShadowFadeMaxDist (float)
+            // NetworkVarNames: m_bEnabled (bool)
+            // NetworkVarNames: m_bFlicker (bool)
+            // NetworkVarNames: m_bPrecomputedFieldsValid (bool)
+            // NetworkVarNames: m_vPrecomputedBoundsMins (Vector)
+            // NetworkVarNames: m_vPrecomputedBoundsMaxs (Vector)
+            // NetworkVarNames: m_vPrecomputedOBBOrigin (Vector)
+            // NetworkVarNames: m_vPrecomputedOBBAngles (QAngle)
+            // NetworkVarNames: m_vPrecomputedOBBExtent (Vector)
+            // NetworkVarNames: m_flPrecomputedMaxRange (float)
+            // NetworkVarNames: m_nFogLightingMode (int)
+            // NetworkVarNames: m_flFogContributionStength (float)
+            // NetworkVarNames: m_flNearClipPlane (float)
+            // NetworkVarNames: m_SkyColor (Color)
+            // NetworkVarNames: m_flSkyIntensity (float)
+            // NetworkVarNames: m_SkyAmbientBounce (Color)
+            // NetworkVarNames: m_bUseSecondaryColor (bool)
+            // NetworkVarNames: m_bMixedShadows (bool)
+            // NetworkVarNames: m_flLightStyleStartTime (GameTime_t)
+            // NetworkVarNames: m_flCapsuleLength (float)
+            // NetworkVarNames: m_flMinRoughness (float)
+            pub mod CLightComponent {
+                pub const __m_pChainEntity: usize = 0x48; // CNetworkVarChainer
+                pub const m_Color: usize = 0x85; // Color
+                pub const m_SecondaryColor: usize = 0x89; // Color
+                pub const m_flBrightness: usize = 0x90; // float32
+                pub const m_flBrightnessScale: usize = 0x94; // float32
+                pub const m_flBrightnessMult: usize = 0x98; // float32
+                pub const m_flRange: usize = 0x9C; // float32
+                pub const m_flFalloff: usize = 0xA0; // float32
+                pub const m_flAttenuation0: usize = 0xA4; // float32
+                pub const m_flAttenuation1: usize = 0xA8; // float32
+                pub const m_flAttenuation2: usize = 0xAC; // float32
+                pub const m_flTheta: usize = 0xB0; // float32
+                pub const m_flPhi: usize = 0xB4; // float32
+                pub const m_hLightCookie: usize = 0xB8; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_nCascades: usize = 0xC0; // int32
+                pub const m_nCastShadows: usize = 0xC4; // int32
+                pub const m_nShadowWidth: usize = 0xC8; // int32
+                pub const m_nShadowHeight: usize = 0xCC; // int32
+                pub const m_bRenderDiffuse: usize = 0xD0; // bool
+                pub const m_nRenderSpecular: usize = 0xD4; // int32
+                pub const m_bRenderTransmissive: usize = 0xD8; // bool
+                pub const m_flOrthoLightWidth: usize = 0xDC; // float32
+                pub const m_flOrthoLightHeight: usize = 0xE0; // float32
+                pub const m_nStyle: usize = 0xE4; // int32
+                pub const m_Pattern: usize = 0xE8; // CUtlString
+                pub const m_nCascadeRenderStaticObjects: usize = 0xF0; // int32
+                pub const m_flShadowCascadeCrossFade: usize = 0xF4; // float32
+                pub const m_flShadowCascadeDistanceFade: usize = 0xF8; // float32
+                pub const m_flShadowCascadeDistance0: usize = 0xFC; // float32
+                pub const m_flShadowCascadeDistance1: usize = 0x100; // float32
+                pub const m_flShadowCascadeDistance2: usize = 0x104; // float32
+                pub const m_flShadowCascadeDistance3: usize = 0x108; // float32
+                pub const m_nShadowCascadeResolution0: usize = 0x10C; // int32
+                pub const m_nShadowCascadeResolution1: usize = 0x110; // int32
+                pub const m_nShadowCascadeResolution2: usize = 0x114; // int32
+                pub const m_nShadowCascadeResolution3: usize = 0x118; // int32
+                pub const m_bUsesBakedShadowing: usize = 0x11C; // bool
+                pub const m_nShadowPriority: usize = 0x120; // int32
+                pub const m_nBakedShadowIndex: usize = 0x124; // int32
+                pub const m_bRenderToCubemaps: usize = 0x128; // bool
+                pub const m_nDirectLight: usize = 0x12C; // int32
+                pub const m_nIndirectLight: usize = 0x130; // int32
+                pub const m_flFadeMinDist: usize = 0x134; // float32
+                pub const m_flFadeMaxDist: usize = 0x138; // float32
+                pub const m_flShadowFadeMinDist: usize = 0x13C; // float32
+                pub const m_flShadowFadeMaxDist: usize = 0x140; // float32
+                pub const m_bEnabled: usize = 0x144; // bool
+                pub const m_bFlicker: usize = 0x145; // bool
+                pub const m_bPrecomputedFieldsValid: usize = 0x146; // bool
+                pub const m_vPrecomputedBoundsMins: usize = 0x148; // 
+                pub const m_vPrecomputedBoundsMaxs: usize = 0x154; // 
+                pub const m_vPrecomputedOBBOrigin: usize = 0x160; // 
+                pub const m_vPrecomputedOBBAngles: usize = 0x16C; // QAngle
+                pub const m_vPrecomputedOBBExtent: usize = 0x178; // 
+                pub const m_flPrecomputedMaxRange: usize = 0x184; // float32
+                pub const m_nFogLightingMode: usize = 0x188; // int32
+                pub const m_flFogContributionStength: usize = 0x18C; // float32
+                pub const m_flNearClipPlane: usize = 0x190; // float32
+                pub const m_SkyColor: usize = 0x194; // Color
+                pub const m_flSkyIntensity: usize = 0x198; // float32
+                pub const m_SkyAmbientBounce: usize = 0x19C; // Color
+                pub const m_bUseSecondaryColor: usize = 0x1A0; // bool
+                pub const m_bMixedShadows: usize = 0x1A1; // bool
+                pub const m_flLightStyleStartTime: usize = 0x1A4; // GameTime_t
+                pub const m_flCapsuleLength: usize = 0x1A8; // float32
+                pub const m_flMinRoughness: usize = 0x1AC; // float32
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod CBasePlayerControllerAPI {
+            }
+            // Parent: None
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: nType (FixAngleSet_t)
+            // NetworkVarNames: qAngle (QAngle)
+            // NetworkVarNames: nIndex (uint32)
+            pub mod ViewAngleServerChange_t {
+                pub const nType: usize = 0x30; // FixAngleSet_t
+                pub const qAngle: usize = 0x34; // QAngle
+                pub const nIndex: usize = 0x40; // uint32
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod CDynamicPropAPI {
+            }
+            // Parent: None
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: localSound (Vector)
+            // NetworkVarNames: soundscapeIndex (int32)
+            // NetworkVarNames: localBits (uint8)
+            // NetworkVarNames: soundscapeEntityListIndex (int)
+            // NetworkVarNames: soundEventHash (uint32)
+            pub mod audioparams_t {
+                pub const localSound: usize = 0x8; // Vector[8]
+                pub const soundscapeIndex: usize = 0x68; // int32
+                pub const localBits: usize = 0x6C; // uint8
+                pub const soundscapeEntityListIndex: usize = 0x70; // int32
+                pub const soundEventHash: usize = 0x74; // uint32
+            }
+            // Parent: None
+            // Fields count: 20
+            //
+            // Metadata:
+            // NetworkVarNames: m_vecCsViewPunchAngle (QAngle)
+            // NetworkVarNames: m_nCsViewPunchAngleTick (GameTick_t)
+            // NetworkVarNames: m_flCsViewPunchAngleTickRatio (float32)
+            // NetworkVarNames: m_PlayerFog (fogplayerparams_t)
+            // NetworkVarNames: m_hColorCorrectionCtrl (CHandle<CColorCorrection>)
+            // NetworkVarNames: m_hViewEntity (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_hTonemapController (CHandle<CTonemapController2>)
+            // NetworkVarNames: m_audio (audioparams_t)
+            // NetworkVarNames: m_PostProcessingVolumes (CHandle<C_PostProcessingVolume>)
+            pub mod CPlayer_CameraServices {
+                pub const m_vecCsViewPunchAngle: usize = 0x40; // QAngle
+                pub const m_nCsViewPunchAngleTick: usize = 0x4C; // GameTick_t
+                pub const m_flCsViewPunchAngleTickRatio: usize = 0x50; // float32
+                pub const m_PlayerFog: usize = 0x58; // C_fogplayerparams_t
+                pub const m_hColorCorrectionCtrl: usize = 0x98; // CHandle<C_ColorCorrection>
+                pub const m_hViewEntity: usize = 0x9C; // CHandle<C_BaseEntity>
+                pub const m_hTonemapController: usize = 0xA0; // CHandle<C_TonemapController2>
+                pub const m_audio: usize = 0xA8; // audioparams_t
+                pub const m_PostProcessingVolumes: usize = 0x120; // C_NetworkUtlVectorBase<CHandle<C_PostProcessingVolume>>
+                pub const m_flOldPlayerZ: usize = 0x138; // float32
+                pub const m_flOldPlayerViewOffsetZ: usize = 0x13C; // float32
+                pub const m_CurrentFog: usize = 0x140; // fogparams_t
+                pub const m_hOldFogController: usize = 0x1A8; // CHandle<C_FogController>
+                pub const m_bOverrideFogColor: usize = 0x1AC; // bool[5]
+                pub const m_OverrideFogColor: usize = 0x1B1; // Color[5]
+                pub const m_bOverrideFogStartEnd: usize = 0x1C5; // bool[5]
+                pub const m_fOverrideFogStart: usize = 0x1CC; // float32[5]
+                pub const m_fOverrideFogEnd: usize = 0x1E0; // float32[5]
+                pub const m_hActivePostProcessingVolume: usize = 0x1F4; // CHandle<C_PostProcessingVolume>
+                pub const m_angDemoViewAngles: usize = 0x1F8; // QAngle
+            }
+            // Parent: None
+            // Fields count: 15
+            //
+            // Metadata:
+            // NetworkVarNames: m_nToggleButtonDownMask (ButtonBitMask_t)
+            // NetworkVarNames: m_flMaxspeed (float32)
+            // NetworkVarNames: m_arrForceSubtickMoveWhen (float32)
+            pub mod CPlayer_MovementServices {
+                pub const m_nImpulse: usize = 0x40; // int32
+                pub const m_nButtons: usize = 0x48; // CInButtonState
+                pub const m_nQueuedButtonDownMask: usize = 0x68; // uint64
+                pub const m_nQueuedButtonChangeMask: usize = 0x70; // uint64
+                pub const m_nButtonDoublePressed: usize = 0x78; // uint64
+                pub const m_pButtonPressedCmdNumber: usize = 0x80; // uint32[64]
+                pub const m_nLastCommandNumberProcessed: usize = 0x180; // uint32
+                pub const m_nToggleButtonDownMask: usize = 0x188; // uint64
+                pub const m_flMaxspeed: usize = 0x198; // float32
+                pub const m_arrForceSubtickMoveWhen: usize = 0x19C; // float32[4]
+                pub const m_flForwardMove: usize = 0x1AC; // float32
+                pub const m_flLeftMove: usize = 0x1B0; // float32
+                pub const m_flUpMove: usize = 0x1B4; // float32
+                pub const m_vecLastMovementImpulses: usize = 0x1B8; // 
+                pub const m_vecOldViewAngles: usize = 0x1C4; // QAngle
+            }
+            // Parent: CPlayer_MovementServices
+            // Fields count: 12
+            //
+            // Metadata:
+            // NetworkVarNames: m_flFallVelocity (float32)
+            // NetworkVarNames: m_bInCrouch (bool)
+            // NetworkVarNames: m_nCrouchState (uint32)
+            // NetworkVarNames: m_flCrouchTransitionStartTime (GameTime_t)
+            // NetworkVarNames: m_bDucked (bool)
+            // NetworkVarNames: m_bDucking (bool)
+            // NetworkVarNames: m_bInDuckJump (bool)
+            pub mod CPlayer_MovementServices_Humanoid {
+                pub const m_flStepSoundTime: usize = 0x1D8; // float32
+                pub const m_flFallVelocity: usize = 0x1DC; // float32
+                pub const m_bInCrouch: usize = 0x1E0; // bool
+                pub const m_nCrouchState: usize = 0x1E4; // uint32
+                pub const m_flCrouchTransitionStartTime: usize = 0x1E8; // GameTime_t
+                pub const m_bDucked: usize = 0x1EC; // bool
+                pub const m_bDucking: usize = 0x1ED; // bool
+                pub const m_bInDuckJump: usize = 0x1EE; // bool
+                pub const m_groundNormal: usize = 0x1F0; // 
+                pub const m_flSurfaceFriction: usize = 0x1FC; // float32
+                pub const m_surfaceProps: usize = 0x200; // CUtlStringToken
+                pub const m_nStepside: usize = 0x210; // int32
+            }
+            // Parent: None
+            // Fields count: 6
+            //
+            // Metadata:
+            // NetworkVarNames: m_iObserverMode (uint8)
+            // NetworkVarNames: m_hObserverTarget (CHandle<CBaseEntity>)
+            pub mod CPlayer_ObserverServices {
+                pub const m_iObserverMode: usize = 0x40; // uint8
+                pub const m_hObserverTarget: usize = 0x44; // CHandle<C_BaseEntity>
+                pub const m_iObserverLastMode: usize = 0x48; // ObserverMode_t
+                pub const m_bForcedObserverMode: usize = 0x4C; // bool
+                pub const m_flObserverChaseDistance: usize = 0x50; // float32
+                pub const m_flObserverChaseDistanceCalcTime: usize = 0x54; // GameTime_t
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_hMyWeapons (CHandle<C_BasePlayerWeapon>)
+            // NetworkVarNames: m_hActiveWeapon (CHandle<CBasePlayerWeapon>)
+            // NetworkVarNames: m_hLastWeapon (CHandle<CBasePlayerWeapon>)
+            // NetworkVarNames: m_iAmmo (uint16)
+            pub mod CPlayer_WeaponServices {
+                pub const m_hMyWeapons: usize = 0x40; // C_NetworkUtlVectorBase<CHandle<C_BasePlayerWeapon>>
+                pub const m_hActiveWeapon: usize = 0x58; // CHandle<C_BasePlayerWeapon>
+                pub const m_hLastWeapon: usize = 0x5C; // CHandle<C_BasePlayerWeapon>
+                pub const m_iAmmo: usize = 0x60; // uint16[32]
+            }
+            // Parent: CBodyComponentSkeletonInstance
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_animationController (CBaseAnimGraphController)
+            pub mod CBodyComponentBaseAnimGraph {
+                pub const m_animationController: usize = 0x460; // CBaseAnimGraphController
+                pub const __m_pChainEntity: usize = 0x1C28; // CNetworkVarChainer
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_ID (CUtlStringToken)
+            // NetworkVarNames: m_Values (Vector4D)
+            pub mod EntityRenderAttribute_t {
+                pub const m_ID: usize = 0x30; // CUtlStringToken
+                pub const m_Values: usize = 0x34; // Vector4D
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_Handle (ModelConfigHandle_t)
+            // NetworkVarNames: m_Name (string_t)
+            // NetworkVarNames: m_AssociatedEntities (CHandle<C_BaseModelEntity>)
+            // NetworkVarNames: m_AssociatedEntityNames (string_t)
+            pub mod ActiveModelConfig_t {
+                pub const m_Handle: usize = 0x28; // ModelConfigHandle_t
+                pub const m_Name: usize = 0x30; // CUtlSymbolLarge
+                pub const m_AssociatedEntities: usize = 0x38; // C_NetworkUtlVectorBase<CHandle<C_BaseModelEntity>>
+                pub const m_AssociatedEntityNames: usize = 0x50; // C_NetworkUtlVectorBase<CUtlSymbolLarge>
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_hOwner (CEntityHandle)
+            // NetworkVarNames: m_name (CUtlStringToken)
+            pub mod CGameSceneNodeHandle {
+                pub const m_hOwner: usize = 0x8; // CEntityHandle
+                pub const m_name: usize = 0xC; // CUtlStringToken
+            }
+            // Parent: None
+            // Fields count: 32
+            //
+            // Metadata:
+            // NetworkVarNames: m_hParent (CGameSceneNodeHandle)
+            // NetworkVarNames: m_vecOrigin (CNetworkOriginCellCoordQuantizedVector)
+            // NetworkVarNames: m_angRotation (QAngle)
+            // NetworkVarNames: m_flScale (float)
+            // NetworkVarNames: m_name (CUtlStringToken)
+            // NetworkVarNames: m_hierarchyAttachName (CUtlStringToken)
+            pub mod CGameSceneNode {
+                pub const m_nodeToWorld: usize = 0x10; // CTransform
+                pub const m_pOwner: usize = 0x30; // CEntityInstance*
+                pub const m_pParent: usize = 0x38; // CGameSceneNode*
+                pub const m_pChild: usize = 0x40; // CGameSceneNode*
+                pub const m_pNextSibling: usize = 0x48; // CGameSceneNode*
+                pub const m_hParent: usize = 0x70; // CGameSceneNodeHandle
+                pub const m_vecOrigin: usize = 0x80; // CNetworkOriginCellCoordQuantizedVector
+                pub const m_angRotation: usize = 0xB8; // QAngle
+                pub const m_flScale: usize = 0xC4; // float32
+                pub const m_vecAbsOrigin: usize = 0xC8; // 
+                pub const m_angAbsRotation: usize = 0xD4; // QAngle
+                pub const m_flAbsScale: usize = 0xE0; // float32
+                pub const m_nParentAttachmentOrBone: usize = 0xE4; // int16
+                pub const m_bDebugAbsOriginChanges: usize = 0xE6; // bool
+                pub const m_bDormant: usize = 0xE7; // bool
+                pub const m_bForceParentToBeNetworked: usize = 0xE8; // bool
+                pub const m_bDirtyHierarchy: usize = 0x0; // bitfield:1
+                pub const m_bDirtyBoneMergeInfo: usize = 0x0; // bitfield:1
+                pub const m_bNetworkedPositionChanged: usize = 0x0; // bitfield:1
+                pub const m_bNetworkedAnglesChanged: usize = 0x0; // bitfield:1
+                pub const m_bNetworkedScaleChanged: usize = 0x0; // bitfield:1
+                pub const m_bWillBeCallingPostDataUpdate: usize = 0x0; // bitfield:1
+                pub const m_bBoneMergeFlex: usize = 0x0; // bitfield:1
+                pub const m_nLatchAbsOrigin: usize = 0x0; // bitfield:2
+                pub const m_bDirtyBoneMergeBoneToRoot: usize = 0x0; // bitfield:1
+                pub const m_nHierarchicalDepth: usize = 0xEB; // uint8
+                pub const m_nHierarchyType: usize = 0xEC; // uint8
+                pub const m_nDoNotSetAnimTimeInInvalidatePhysicsCount: usize = 0xED; // uint8
+                pub const m_name: usize = 0xF0; // CUtlStringToken
+                pub const m_hierarchyAttachName: usize = 0x130; // CUtlStringToken
+                pub const m_flZOffset: usize = 0x134; // float32
+                pub const m_vRenderOrigin: usize = 0x138; // 
+            }
+            // Parent: None
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_hSequence (HSequence)
+            // NetworkVarNames: m_flPrevCycle (float32)
+            // NetworkVarNames: m_flCycle (float32)
+            pub mod CNetworkedSequenceOperation {
+                pub const m_hSequence: usize = 0x8; // HSequence
+                pub const m_flPrevCycle: usize = 0xC; // float32
+                pub const m_flCycle: usize = 0x10; // float32
+                pub const m_flWeight: usize = 0x14; // CNetworkedQuantizedFloat
+                pub const m_bSequenceChangeNetworked: usize = 0x1C; // bool
+                pub const m_bDiscontinuity: usize = 0x1D; // bool
+                pub const m_flPrevCycleFromDiscontinuity: usize = 0x20; // float32
+                pub const m_flPrevCycleForAnimEventDetection: usize = 0x24; // float32
+            }
+            // Parent: None
+            // Fields count: 7
+            //
+            // Metadata:
+            // NetworkVarNames: m_hModel (HModelStrong)
+            // NetworkVarNames: m_bClientClothCreationSuppressed (bool)
+            // NetworkVarNames: m_MeshGroupMask (MeshGroupMask_t)
+            // NetworkVarNames: m_nIdealMotionType (int8)
+            pub mod CModelState {
+                pub const m_hModel: usize = 0xA0; // CStrongHandle<InfoForResourceTypeCModel>
+                pub const m_ModelName: usize = 0xA8; // CUtlSymbolLarge
+                pub const m_bClientClothCreationSuppressed: usize = 0xE8; // bool
+                pub const m_MeshGroupMask: usize = 0x180; // uint64
+                pub const m_nIdealMotionType: usize = 0x202; // int8
+                pub const m_nForceLOD: usize = 0x203; // int8
+                pub const m_nClothUpdateFlags: usize = 0x204; // int8
+            }
+            // Parent: CGameSceneNode
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_modelState (CModelState)
+            // NetworkVarNames: m_bIsAnimationEnabled (bool)
+            // NetworkVarNames: m_bUseParentRenderBounds (bool)
+            // NetworkVarNames: m_materialGroup (CUtlStringToken)
+            // NetworkVarNames: m_nHitboxSet (uint8)
+            pub mod CSkeletonInstance {
+                pub const m_modelState: usize = 0x160; // CModelState
+                pub const m_bIsAnimationEnabled: usize = 0x370; // bool
+                pub const m_bUseParentRenderBounds: usize = 0x371; // bool
+                pub const m_bDisableSolidCollisionsForHierarchy: usize = 0x372; // bool
+                pub const m_bDirtyMotionType: usize = 0x0; // bitfield:1
+                pub const m_bIsGeneratingLatchedParentSpaceState: usize = 0x0; // bitfield:1
+                pub const m_materialGroup: usize = 0x374; // CUtlStringToken
+                pub const m_nHitboxSet: usize = 0x378; // uint8
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_timestamp (GameTime_t)
+            // NetworkVarNames: m_nWorldGroupId (WorldGroupId_t)
+            pub mod IntervalTimer {
+                pub const m_timestamp: usize = 0x8; // GameTime_t
+                pub const m_nWorldGroupId: usize = 0xC; // WorldGroupId_t
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_duration (float32)
+            // NetworkVarNames: m_timestamp (GameTime_t)
+            // NetworkVarNames: m_timescale (float32)
+            // NetworkVarNames: m_nWorldGroupId (WorldGroupId_t)
+            pub mod CountdownTimer {
+                pub const m_duration: usize = 0x8; // float32
+                pub const m_timestamp: usize = 0xC; // GameTime_t
+                pub const m_timescale: usize = 0x10; // float32
+                pub const m_nWorldGroupId: usize = 0x14; // WorldGroupId_t
+            }
+            // Parent: None
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_duration (float32)
+            // NetworkVarNames: m_timestamp (float32)
+            // NetworkVarNames: m_timescale (float32)
+            pub mod EngineCountdownTimer {
+                pub const m_duration: usize = 0x8; // float32
+                pub const m_timestamp: usize = 0xC; // float32
+                pub const m_timescale: usize = 0x10; // float32
+            }
+            // Parent: IntervalTimer
+            // Fields count: 7
+            //
+            // Metadata:
+            // NetworkVarNames: m_flValues (float)
+            // NetworkVarNames: m_nValueCounts (int)
+            // NetworkVarNames: m_nBucketCount (int)
+            // NetworkVarNames: m_flInterval (float)
+            // NetworkVarNames: m_flFinalValue (float)
+            // NetworkVarNames: m_nCompressionType (TimelineCompression_t)
+            // NetworkVarNames: m_bStopped (bool)
+            pub mod CTimeline {
+                pub const m_flValues: usize = 0x10; // float32[64]
+                pub const m_nValueCounts: usize = 0x110; // int32[64]
+                pub const m_nBucketCount: usize = 0x210; // int32
+                pub const m_flInterval: usize = 0x214; // float32
+                pub const m_flFinalValue: usize = 0x218; // float32
+                pub const m_nCompressionType: usize = 0x21C; // TimelineCompression_t
+                pub const m_bStopped: usize = 0x220; // bool
+            }
+            // Parent: None
+            // Fields count: 24
+            //
+            // Metadata:
+            // NetworkVarNames: m_PredNetBoolVariables (uint32)
+            // NetworkVarNames: m_PredNetByteVariables (byte)
+            // NetworkVarNames: m_PredNetUInt16Variables (uint16)
+            // NetworkVarNames: m_PredNetIntVariables (int32)
+            // NetworkVarNames: m_PredNetUInt32Variables (uint32)
+            // NetworkVarNames: m_PredNetUInt64Variables (uint64)
+            // NetworkVarNames: m_PredNetFloatVariables (float)
+            // NetworkVarNames: m_PredNetVectorVariables (Vector)
+            // NetworkVarNames: m_PredNetQuaternionVariables (Quaternion)
+            // NetworkVarNames: m_PredNetGlobalSymbolVariables (CGlobalSymbol)
+            // NetworkVarNames: m_OwnerOnlyPredNetBoolVariables (uint32)
+            // NetworkVarNames: m_OwnerOnlyPredNetByteVariables (byte)
+            // NetworkVarNames: m_OwnerOnlyPredNetUInt16Variables (uint16)
+            // NetworkVarNames: m_OwnerOnlyPredNetIntVariables (int32)
+            // NetworkVarNames: m_OwnerOnlyPredNetUInt32Variables (uint32)
+            // NetworkVarNames: m_OwnerOnlyPredNetUInt64Variables (uint64)
+            // NetworkVarNames: m_OwnerOnlyPredNetFloatVariables (float)
+            // NetworkVarNames: m_OwnerOnlyPredNetVectorVariables (Vector)
+            // NetworkVarNames: m_OwnerOnlyPredNetQuaternionVariables (Quaternion)
+            // NetworkVarNames: m_OwnerOnlyPredNetGlobalSymbolVariables (CGlobalSymbol)
+            // NetworkVarNames: m_nBoolVariablesCount (int)
+            // NetworkVarNames: m_nOwnerOnlyBoolVariablesCount (int)
+            // NetworkVarNames: m_nRandomSeedOffset (int)
+            // NetworkVarNames: m_flLastTeleportTime (float)
+            pub mod CAnimGraphNetworkedVariables {
+                pub const m_PredNetBoolVariables: usize = 0x8; // C_NetworkUtlVectorBase<uint32>
+                pub const m_PredNetByteVariables: usize = 0x20; // C_NetworkUtlVectorBase<uint8>
+                pub const m_PredNetUInt16Variables: usize = 0x38; // C_NetworkUtlVectorBase<uint16>
+                pub const m_PredNetIntVariables: usize = 0x50; // C_NetworkUtlVectorBase<int32>
+                pub const m_PredNetUInt32Variables: usize = 0x68; // C_NetworkUtlVectorBase<uint32>
+                pub const m_PredNetUInt64Variables: usize = 0x80; // C_NetworkUtlVectorBase<uint64>
+                pub const m_PredNetFloatVariables: usize = 0x98; // C_NetworkUtlVectorBase<float32>
+                pub const m_PredNetVectorVariables: usize = 0xB0; // C_NetworkUtlVectorBase<Vector>
+                pub const m_PredNetQuaternionVariables: usize = 0xC8; // C_NetworkUtlVectorBase<Quaternion>
+                pub const m_PredNetGlobalSymbolVariables: usize = 0xE0; // C_NetworkUtlVectorBase<CGlobalSymbol>
+                pub const m_OwnerOnlyPredNetBoolVariables: usize = 0xF8; // C_NetworkUtlVectorBase<uint32>
+                pub const m_OwnerOnlyPredNetByteVariables: usize = 0x110; // C_NetworkUtlVectorBase<uint8>
+                pub const m_OwnerOnlyPredNetUInt16Variables: usize = 0x128; // C_NetworkUtlVectorBase<uint16>
+                pub const m_OwnerOnlyPredNetIntVariables: usize = 0x140; // C_NetworkUtlVectorBase<int32>
+                pub const m_OwnerOnlyPredNetUInt32Variables: usize = 0x158; // C_NetworkUtlVectorBase<uint32>
+                pub const m_OwnerOnlyPredNetUInt64Variables: usize = 0x170; // C_NetworkUtlVectorBase<uint64>
+                pub const m_OwnerOnlyPredNetFloatVariables: usize = 0x188; // C_NetworkUtlVectorBase<float32>
+                pub const m_OwnerOnlyPredNetVectorVariables: usize = 0x1A0; // C_NetworkUtlVectorBase<Vector>
+                pub const m_OwnerOnlyPredNetQuaternionVariables: usize = 0x1B8; // C_NetworkUtlVectorBase<Quaternion>
+                pub const m_OwnerOnlyPredNetGlobalSymbolVariables: usize = 0x1D0; // C_NetworkUtlVectorBase<CGlobalSymbol>
+                pub const m_nBoolVariablesCount: usize = 0x1E8; // int32
+                pub const m_nOwnerOnlyBoolVariablesCount: usize = 0x1EC; // int32
+                pub const m_nRandomSeedOffset: usize = 0x1F0; // int32
+                pub const m_flLastTeleportTime: usize = 0x1F4; // float32
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod C_BaseEntityAPI {
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod CTakeDamageInfoAPI {
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseLibraryBindings
+            pub mod CClientPointEntityAPI {
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // MPulseInstanceDomainInfo
+            // MPulseLibraryBindings
+            // MPulseDomainOptInFeatureTag
+            pub mod CPulseGraphInstance_ClientEntity {
+                pub const m_pParent: usize = 0xD8; // CClientScriptEntity*
+            }
+            // Parent: CEntityInstance
+            // Fields count: 80
+            //
+            // Metadata:
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // NetworkVarNames: m_CBodyComponent (CBodyComponent::Storage_t)
+            // NetworkVarNames: m_iMaxHealth (int32)
+            // NetworkVarNames: m_iHealth (int32)
+            // NetworkVarNames: m_lifeState (uint8)
+            // NetworkVarNames: m_bTakesDamage (bool)
+            // NetworkVarNames: m_nTakeDamageFlags (TakeDamageFlags_t)
+            // NetworkVarNames: m_bIsPlatform (bool)
+            // NetworkVarNames: m_ubInterpolationFrame (uint8)
+            // NetworkVarNames: m_nSubclassID (EntitySubclassID_t)
+            // NetworkVarNames: m_flAnimTime (float32)
+            // NetworkVarNames: m_flSimulationTime (float32)
+            // NetworkVarNames: m_flCreateTime (GameTime_t)
+            // NetworkVarNames: m_bClientSideRagdoll (bool)
+            // NetworkVarNames: m_iTeamNum (uint8)
+            // NetworkVarNames: m_spawnflags (uint32)
+            // NetworkVarNames: m_nNextThinkTick (GameTick_t)
+            // NetworkVarNames: m_fFlags (uint32)
+            // NetworkVarNames: m_vecBaseVelocity (Vector)
+            // NetworkVarNames: m_hEffectEntity (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_hOwnerEntity (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_MoveCollide (MoveCollide_t)
+            // NetworkVarNames: m_MoveType (MoveType_t)
+            // NetworkVarNames: m_flWaterLevel (float32)
+            // NetworkVarNames: m_fEffects (uint32)
+            // NetworkVarNames: m_hGroundEntity (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_flFriction (float32)
+            // NetworkVarNames: m_flElasticity (float32)
+            // NetworkVarNames: m_flGravityScale (float32)
+            // NetworkVarNames: m_flTimeScale (float32)
+            // NetworkVarNames: m_bAnimatedEveryTick (bool)
+            // NetworkVarNames: m_flNavIgnoreUntilTime (GameTime_t)
+            pub mod C_BaseEntity {
+                pub const m_CBodyComponent: usize = 0x38; // CBodyComponent*
+                pub const m_NetworkTransmitComponent: usize = 0x40; // CNetworkTransmitComponent
+                pub const m_nLastThinkTick: usize = 0x310; // GameTick_t
+                pub const m_pGameSceneNode: usize = 0x318; // CGameSceneNode*
+                pub const m_pRenderComponent: usize = 0x320; // CRenderComponent*
+                pub const m_pCollision: usize = 0x328; // CCollisionProperty*
+                pub const m_iMaxHealth: usize = 0x330; // int32
+                pub const m_iHealth: usize = 0x334; // int32
+                pub const m_lifeState: usize = 0x338; // uint8
+                pub const m_bTakesDamage: usize = 0x339; // bool
+                pub const m_nTakeDamageFlags: usize = 0x33C; // TakeDamageFlags_t
+                pub const m_bIsPlatform: usize = 0x340; // bool
+                pub const m_ubInterpolationFrame: usize = 0x341; // uint8
+                pub const m_hSceneObjectController: usize = 0x344; // CHandle<C_BaseEntity>
+                pub const m_nNoInterpolationTick: usize = 0x348; // int32
+                pub const m_nVisibilityNoInterpolationTick: usize = 0x34C; // int32
+                pub const m_flProxyRandomValue: usize = 0x350; // float32
+                pub const m_iEFlags: usize = 0x354; // int32
+                pub const m_nWaterType: usize = 0x358; // uint8
+                pub const m_bInterpolateEvenWithNoModel: usize = 0x359; // bool
+                pub const m_bPredictionEligible: usize = 0x35A; // bool
+                pub const m_bApplyLayerMatchIDToModel: usize = 0x35B; // bool
+                pub const m_tokLayerMatchID: usize = 0x35C; // CUtlStringToken
+                pub const m_nSubclassID: usize = 0x360; // CUtlStringToken
+                pub const m_nSimulationTick: usize = 0x370; // int32
+                pub const m_iCurrentThinkContext: usize = 0x374; // int32
+                pub const m_aThinkFunctions: usize = 0x378; // CUtlVector<thinkfunc_t>
+                pub const m_nDisableContextThinkStartTick: usize = 0x390; // GameTick_t
+                pub const m_flAnimTime: usize = 0x394; // float32
+                pub const m_flSimulationTime: usize = 0x398; // float32
+                pub const m_nSceneObjectOverrideFlags: usize = 0x39C; // uint8
+                pub const m_bHasSuccessfullyInterpolated: usize = 0x39D; // bool
+                pub const m_bHasAddedVarsToInterpolation: usize = 0x39E; // bool
+                pub const m_bRenderEvenWhenNotSuccessfullyInterpolated: usize = 0x39F; // bool
+                pub const m_nInterpolationLatchDirtyFlags: usize = 0x3A0; // int32[2]
+                pub const m_ListEntry: usize = 0x3A8; // uint16[11]
+                pub const m_flCreateTime: usize = 0x3C0; // GameTime_t
+                pub const m_flSpeed: usize = 0x3C4; // float32
+                pub const m_EntClientFlags: usize = 0x3C8; // uint16
+                pub const m_bClientSideRagdoll: usize = 0x3CA; // bool
+                pub const m_iTeamNum: usize = 0x3CB; // uint8
+                pub const m_spawnflags: usize = 0x3CC; // uint32
+                pub const m_nNextThinkTick: usize = 0x3D0; // GameTick_t
+                pub const m_fFlags: usize = 0x3D4; // uint32
+                pub const m_vecAbsVelocity: usize = 0x3D8; // 
+                pub const m_vecVelocity: usize = 0x3E8; // CNetworkVelocityVector
+                pub const m_vecBaseVelocity: usize = 0x418; // 
+                pub const m_hEffectEntity: usize = 0x424; // CHandle<C_BaseEntity>
+                pub const m_hOwnerEntity: usize = 0x428; // CHandle<C_BaseEntity>
+                pub const m_MoveCollide: usize = 0x42C; // MoveCollide_t
+                pub const m_MoveType: usize = 0x42D; // MoveType_t
+                pub const m_nActualMoveType: usize = 0x42E; // MoveType_t
+                pub const m_flWaterLevel: usize = 0x430; // float32
+                pub const m_fEffects: usize = 0x434; // uint32
+                pub const m_hGroundEntity: usize = 0x438; // CHandle<C_BaseEntity>
+                pub const m_flFriction: usize = 0x43C; // float32
+                pub const m_flElasticity: usize = 0x440; // float32
+                pub const m_flGravityScale: usize = 0x444; // float32
+                pub const m_flTimeScale: usize = 0x448; // float32
+                pub const m_bAnimatedEveryTick: usize = 0x44C; // bool
+                pub const m_flNavIgnoreUntilTime: usize = 0x450; // GameTime_t
+                pub const m_hThink: usize = 0x454; // uint16
+                pub const m_fBBoxVisFlags: usize = 0x460; // uint8
+                pub const m_bPredictable: usize = 0x461; // bool
+                pub const m_bRenderWithViewModels: usize = 0x462; // bool
+                pub const m_nSplitUserPlayerPredictionSlot: usize = 0x464; // CSplitScreenSlot
+                pub const m_nFirstPredictableCommand: usize = 0x468; // int32
+                pub const m_nLastPredictableCommand: usize = 0x46C; // int32
+                pub const m_hOldMoveParent: usize = 0x470; // CHandle<C_BaseEntity>
+                pub const m_Particles: usize = 0x478; // CParticleProperty
+                pub const m_vecPredictedScriptFloats: usize = 0x4A0; // CUtlVector<float32>
+                pub const m_vecPredictedScriptFloatIDs: usize = 0x4B8; // CUtlVector<int32>
+                pub const m_nNextScriptVarRecordID: usize = 0x4E8; // int32
+                pub const m_vecAngVelocity: usize = 0x4F8; // QAngle
+                pub const m_DataChangeEventRef: usize = 0x504; // int32
+                pub const m_dependencies: usize = 0x508; // CUtlVector<CEntityHandle>
+                pub const m_nCreationTick: usize = 0x520; // int32
+                pub const m_bAnimTimeChanged: usize = 0x539; // bool
+                pub const m_bSimulationTimeChanged: usize = 0x53A; // bool
+                pub const m_sUniqueHammerID: usize = 0x548; // CUtlString
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 18
+            //
+            // Metadata:
+            // MNetworkIncludeByUserGroup
+            // NetworkVarNames: m_MinFalloff (float32)
+            // NetworkVarNames: m_MaxFalloff (float32)
+            // NetworkVarNames: m_flFadeInDuration (float32)
+            // NetworkVarNames: m_flFadeOutDuration (float32)
+            // NetworkVarNames: m_flMaxWeight (float32)
+            // NetworkVarNames: m_flCurWeight (float32)
+            // NetworkVarNames: m_netlookupFilename (char)
+            // NetworkVarNames: m_bEnabled (bool)
+            // NetworkVarNames: m_bMaster (bool)
+            // NetworkVarNames: m_bClientSide (bool)
+            // NetworkVarNames: m_bExclusive (bool)
+            pub mod C_ColorCorrection {
+                pub const m_vecOrigin: usize = 0x550; // 
+                pub const m_MinFalloff: usize = 0x55C; // float32
+                pub const m_MaxFalloff: usize = 0x560; // float32
+                pub const m_flFadeInDuration: usize = 0x564; // float32
+                pub const m_flFadeOutDuration: usize = 0x568; // float32
+                pub const m_flMaxWeight: usize = 0x56C; // float32
+                pub const m_flCurWeight: usize = 0x570; // float32
+                pub const m_netlookupFilename: usize = 0x574; // char[512]
+                pub const m_bEnabled: usize = 0x774; // bool
+                pub const m_bMaster: usize = 0x775; // bool
+                pub const m_bClientSide: usize = 0x776; // bool
+                pub const m_bExclusive: usize = 0x777; // bool
+                pub const m_bEnabledOnClient: usize = 0x778; // bool[1]
+                pub const m_flCurWeightOnClient: usize = 0x77C; // float32[1]
+                pub const m_bFadingIn: usize = 0x780; // bool[1]
+                pub const m_flFadeStartWeight: usize = 0x784; // float32[1]
+                pub const m_flFadeStartTime: usize = 0x788; // float32[1]
+                pub const m_flFadeDuration: usize = 0x78C; // float32[1]
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_EnvWindShared (CEnvWindShared)
+            pub mod C_EnvWindClientside {
+                pub const m_EnvWindShared: usize = 0x550; // C_EnvWindShared
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_hEntAttached (CHandle<C_BaseEntity>)
+            // NetworkVarNames: m_bCheapEffect (bool)
+            pub mod C_EntityFlame {
+                pub const m_hEntAttached: usize = 0x550; // CHandle<C_BaseEntity>
+                pub const m_hOldAttached: usize = 0x578; // CHandle<C_BaseEntity>
+                pub const m_bCheapEffect: usize = 0x57C; // bool
+            }
+            // Parent: None
+            // Fields count: 30
+            //
+            // Metadata:
+            // NetworkVarNames: m_hTargetEntity (CHandle<C_BaseEntity>)
+            // NetworkVarNames: m_bState (bool)
+            // NetworkVarNames: m_bAlwaysUpdate (bool)
+            // NetworkVarNames: m_flLightFOV (float32)
+            // NetworkVarNames: m_bEnableShadows (bool)
+            // NetworkVarNames: m_bSimpleProjection (bool)
+            // NetworkVarNames: m_bLightOnlyTarget (bool)
+            // NetworkVarNames: m_bLightWorld (bool)
+            // NetworkVarNames: m_bCameraSpace (bool)
+            // NetworkVarNames: m_flBrightnessScale (float32)
+            // NetworkVarNames: m_LightColor (Color)
+            // NetworkVarNames: m_flIntensity (float32)
+            // NetworkVarNames: m_flLinearAttenuation (float32)
+            // NetworkVarNames: m_flQuadraticAttenuation (float32)
+            // NetworkVarNames: m_bVolumetric (bool)
+            // NetworkVarNames: m_flVolumetricIntensity (float32)
+            // NetworkVarNames: m_flNoiseStrength (float32)
+            // NetworkVarNames: m_flFlashlightTime (float32)
+            // NetworkVarNames: m_nNumPlanes (uint32)
+            // NetworkVarNames: m_flPlaneOffset (float32)
+            // NetworkVarNames: m_flColorTransitionTime (float32)
+            // NetworkVarNames: m_flAmbient (float32)
+            // NetworkVarNames: m_SpotlightTextureName (char)
+            // NetworkVarNames: m_nSpotlightTextureFrame (int32)
+            // NetworkVarNames: m_nShadowQuality (uint32)
+            // NetworkVarNames: m_flNearZ (float32)
+            // NetworkVarNames: m_flFarZ (float32)
+            // NetworkVarNames: m_flProjectionSize (float32)
+            // NetworkVarNames: m_flRotation (float32)
+            // NetworkVarNames: m_bFlipHorizontal (bool)
+            pub mod CProjectedTextureBase {
+                pub const m_hTargetEntity: usize = 0xC; // CHandle<C_BaseEntity>
+                pub const m_bState: usize = 0x10; // bool
+                pub const m_bAlwaysUpdate: usize = 0x11; // bool
+                pub const m_flLightFOV: usize = 0x14; // float32
+                pub const m_bEnableShadows: usize = 0x18; // bool
+                pub const m_bSimpleProjection: usize = 0x19; // bool
+                pub const m_bLightOnlyTarget: usize = 0x1A; // bool
+                pub const m_bLightWorld: usize = 0x1B; // bool
+                pub const m_bCameraSpace: usize = 0x1C; // bool
+                pub const m_flBrightnessScale: usize = 0x20; // float32
+                pub const m_LightColor: usize = 0x24; // Color
+                pub const m_flIntensity: usize = 0x28; // float32
+                pub const m_flLinearAttenuation: usize = 0x2C; // float32
+                pub const m_flQuadraticAttenuation: usize = 0x30; // float32
+                pub const m_bVolumetric: usize = 0x34; // bool
+                pub const m_flVolumetricIntensity: usize = 0x38; // float32
+                pub const m_flNoiseStrength: usize = 0x3C; // float32
+                pub const m_flFlashlightTime: usize = 0x40; // float32
+                pub const m_nNumPlanes: usize = 0x44; // uint32
+                pub const m_flPlaneOffset: usize = 0x48; // float32
+                pub const m_flColorTransitionTime: usize = 0x4C; // float32
+                pub const m_flAmbient: usize = 0x50; // float32
+                pub const m_SpotlightTextureName: usize = 0x54; // char[512]
+                pub const m_nSpotlightTextureFrame: usize = 0x254; // int32
+                pub const m_nShadowQuality: usize = 0x258; // uint32
+                pub const m_flNearZ: usize = 0x25C; // float32
+                pub const m_flFarZ: usize = 0x260; // float32
+                pub const m_flProjectionSize: usize = 0x264; // float32
+                pub const m_flRotation: usize = 0x268; // float32
+                pub const m_bFlipHorizontal: usize = 0x26C; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_flScale (float32)
+            // NetworkVarNames: m_flStartScale (float32)
+            // NetworkVarNames: m_flScaleTime (float)
+            // NetworkVarNames: m_nFlags (uint32)
+            pub mod C_BaseFire {
+                pub const m_flScale: usize = 0x550; // float32
+                pub const m_flStartScale: usize = 0x554; // float32
+                pub const m_flScaleTime: usize = 0x558; // float32
+                pub const m_nFlags: usize = 0x55C; // uint32
+            }
+            // Parent: C_BaseFire
+            // Fields count: 13
+            //
+            // Metadata:
+            // MNetworkOverride
+            // MNetworkOverride
+            // NetworkVarNames: m_nFlameModelIndex (int32)
+            // NetworkVarNames: m_nFlameFromAboveModelIndex (int32)
+            pub mod C_FireSmoke {
+                pub const m_nFlameModelIndex: usize = 0x560; // int32
+                pub const m_nFlameFromAboveModelIndex: usize = 0x564; // int32
+                pub const m_flScaleRegister: usize = 0x568; // float32
+                pub const m_flScaleStart: usize = 0x56C; // float32
+                pub const m_flScaleEnd: usize = 0x570; // float32
+                pub const m_flScaleTimeStart: usize = 0x574; // GameTime_t
+                pub const m_flScaleTimeEnd: usize = 0x578; // GameTime_t
+                pub const m_flChildFlameSpread: usize = 0x57C; // float32
+                pub const m_flClipPerc: usize = 0x590; // float32
+                pub const m_bClipTested: usize = 0x594; // bool
+                pub const m_bFadingOut: usize = 0x595; // bool
+                pub const m_tParticleSpawn: usize = 0x598; // TimedEvent
+                pub const m_pFireOverlay: usize = 0x5A0; // CFireOverlay*
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_skyboxData (sky3dparams_t)
+            // NetworkVarNames: m_skyboxSlotToken (CUtlStringToken)
+            pub mod C_SkyCamera {
+                pub const m_skyboxData: usize = 0x550; // sky3dparams_t
+                pub const m_skyboxSlotToken: usize = 0x5E0; // CUtlStringToken
+                pub const m_bUseAngles: usize = 0x5E4; // bool
+                pub const m_pNext: usize = 0x5E8; // C_SkyCamera*
+            }
+            // Parent: None
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_nInteractsAs (uint64)
+            // NetworkVarNames: m_nInteractsWith (uint64)
+            // NetworkVarNames: m_nInteractsExclude (uint64)
+            // NetworkVarNames: m_nEntityId (uint32)
+            // NetworkVarNames: m_nOwnerId (uint32)
+            // NetworkVarNames: m_nHierarchyId (uint16)
+            // NetworkVarNames: m_nCollisionGroup (uint8)
+            // NetworkVarNames: m_nCollisionFunctionMask (uint8)
+            pub mod VPhysicsCollisionAttribute_t {
+                pub const m_nInteractsAs: usize = 0x8; // uint64
+                pub const m_nInteractsWith: usize = 0x10; // uint64
+                pub const m_nInteractsExclude: usize = 0x18; // uint64
+                pub const m_nEntityId: usize = 0x20; // uint32
+                pub const m_nOwnerId: usize = 0x24; // uint32
+                pub const m_nHierarchyId: usize = 0x28; // uint16
+                pub const m_nCollisionGroup: usize = 0x2A; // uint8
+                pub const m_nCollisionFunctionMask: usize = 0x2B; // uint8
+            }
+            // Parent: None
+            // Fields count: 17
+            //
+            // Metadata:
+            // NetworkVarNames: m_collisionAttribute (VPhysicsCollisionAttribute_t)
+            // NetworkVarNames: m_vecMins (Vector)
+            // NetworkVarNames: m_vecMaxs (Vector)
+            // NetworkVarNames: m_usSolidFlags (uint8)
+            // NetworkVarNames: m_nSolidType (SolidType_t)
+            // NetworkVarNames: m_triggerBloat (uint8)
+            // NetworkVarNames: m_nSurroundType (SurroundingBoundsType_t)
+            // NetworkVarNames: m_CollisionGroup (uint8)
+            // NetworkVarNames: m_nEnablePhysics (uint8)
+            // NetworkVarNames: m_vecSpecifiedSurroundingMins (Vector)
+            // NetworkVarNames: m_vecSpecifiedSurroundingMaxs (Vector)
+            // NetworkVarNames: m_vCapsuleCenter1 (Vector)
+            // NetworkVarNames: m_vCapsuleCenter2 (Vector)
+            // NetworkVarNames: m_flCapsuleRadius (float)
+            pub mod CCollisionProperty {
+                pub const m_collisionAttribute: usize = 0x10; // VPhysicsCollisionAttribute_t
+                pub const m_vecMins: usize = 0x40; // 
+                pub const m_vecMaxs: usize = 0x4C; // 
+                pub const m_usSolidFlags: usize = 0x5A; // uint8
+                pub const m_nSolidType: usize = 0x5B; // SolidType_t
+                pub const m_triggerBloat: usize = 0x5C; // uint8
+                pub const m_nSurroundType: usize = 0x5D; // SurroundingBoundsType_t
+                pub const m_CollisionGroup: usize = 0x5E; // uint8
+                pub const m_nEnablePhysics: usize = 0x5F; // uint8
+                pub const m_flBoundingRadius: usize = 0x60; // float32
+                pub const m_vecSpecifiedSurroundingMins: usize = 0x64; // 
+                pub const m_vecSpecifiedSurroundingMaxs: usize = 0x70; // 
+                pub const m_vecSurroundingMaxs: usize = 0x7C; // 
+                pub const m_vecSurroundingMins: usize = 0x88; // 
+                pub const m_vCapsuleCenter1: usize = 0x94; // 
+                pub const m_vCapsuleCenter2: usize = 0xA0; // 
+                pub const m_flCapsuleRadius: usize = 0xAC; // float32
+            }
+            // Parent: None
+            // Fields count: 21
+            //
+            // Metadata:
+            // NetworkVarNames: m_vOrigin (Vector)
+            // NetworkVarNames: m_vStart (Vector)
+            // NetworkVarNames: m_vNormal (Vector)
+            // NetworkVarNames: m_vAngles (QAngle)
+            // NetworkVarNames: m_hEntity (CEntityHandle)
+            // NetworkVarNames: m_hOtherEntity (CEntityHandle)
+            // NetworkVarNames: m_flScale (float32)
+            // NetworkVarNames: m_flMagnitude (float32)
+            // NetworkVarNames: m_flRadius (float32)
+            // NetworkVarNames: m_nSurfaceProp (CUtlStringToken)
+            // NetworkVarNames: m_nEffectIndex (HParticleSystemDefinition)
+            // NetworkVarNames: m_nDamageType (uint32)
+            // NetworkVarNames: m_nPenetrate (uint8)
+            // NetworkVarNames: m_nMaterial (uint16)
+            // NetworkVarNames: m_nHitBox (uint16)
+            // NetworkVarNames: m_nColor (uint8)
+            // NetworkVarNames: m_fFlags (uint8)
+            // NetworkVarNames: m_nAttachmentIndex (AttachmentHandle_t)
+            // NetworkVarNames: m_nAttachmentName (CUtlStringToken)
+            // NetworkVarNames: m_iEffectName (uint16)
+            // NetworkVarNames: m_nExplosionType (uint8)
+            pub mod CEffectData {
+                pub const m_vOrigin: usize = 0x8; // 
+                pub const m_vStart: usize = 0x14; // 
+                pub const m_vNormal: usize = 0x20; // 
+                pub const m_vAngles: usize = 0x2C; // QAngle
+                pub const m_hEntity: usize = 0x38; // CEntityHandle
+                pub const m_hOtherEntity: usize = 0x3C; // CEntityHandle
+                pub const m_flScale: usize = 0x40; // float32
+                pub const m_flMagnitude: usize = 0x44; // float32
+                pub const m_flRadius: usize = 0x48; // float32
+                pub const m_nSurfaceProp: usize = 0x4C; // CUtlStringToken
+                pub const m_nEffectIndex: usize = 0x50; // CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>
+                pub const m_nDamageType: usize = 0x58; // uint32
+                pub const m_nPenetrate: usize = 0x5C; // uint8
+                pub const m_nMaterial: usize = 0x5E; // uint16
+                pub const m_nHitBox: usize = 0x60; // uint16
+                pub const m_nColor: usize = 0x62; // uint8
+                pub const m_fFlags: usize = 0x63; // uint8
+                pub const m_nAttachmentIndex: usize = 0x64; // AttachmentHandle_t
+                pub const m_nAttachmentName: usize = 0x68; // CUtlStringToken
+                pub const m_iEffectName: usize = 0x6C; // uint16
+                pub const m_nExplosionType: usize = 0x6E; // uint8
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_flFadeStartDist (float32)
+            // NetworkVarNames: m_flFadeEndDist (float32)
+            pub mod C_EnvDetailController {
+                pub const m_flFadeStartDist: usize = 0x550; // float32
+                pub const m_flFadeEndDist: usize = 0x554; // float32
+            }
+            // Parent: None
+            // Fields count: 29
+            //
+            // Metadata:
+            // NetworkVarNames: m_flStartTime (GameTime_t)
+            // NetworkVarNames: m_iWindSeed (uint32)
+            // NetworkVarNames: m_iMinWind (uint16)
+            // NetworkVarNames: m_iMaxWind (uint16)
+            // NetworkVarNames: m_windRadius (int32)
+            // NetworkVarNames: m_iMinGust (uint16)
+            // NetworkVarNames: m_iMaxGust (uint16)
+            // NetworkVarNames: m_flMinGustDelay (float32)
+            // NetworkVarNames: m_flMaxGustDelay (float32)
+            // NetworkVarNames: m_flGustDuration (float32)
+            // NetworkVarNames: m_iGustDirChange (uint16)
+            // NetworkVarNames: m_location (Vector)
+            // NetworkVarNames: m_iInitialWindDir (uint16)
+            // NetworkVarNames: m_flInitialWindSpeed (float32)
+            pub mod C_EnvWindShared {
+                pub const m_flStartTime: usize = 0x8; // GameTime_t
+                pub const m_iWindSeed: usize = 0xC; // uint32
+                pub const m_iMinWind: usize = 0x10; // uint16
+                pub const m_iMaxWind: usize = 0x12; // uint16
+                pub const m_windRadius: usize = 0x14; // int32
+                pub const m_iMinGust: usize = 0x18; // uint16
+                pub const m_iMaxGust: usize = 0x1A; // uint16
+                pub const m_flMinGustDelay: usize = 0x1C; // float32
+                pub const m_flMaxGustDelay: usize = 0x20; // float32
+                pub const m_flGustDuration: usize = 0x24; // float32
+                pub const m_iGustDirChange: usize = 0x28; // uint16
+                pub const m_location: usize = 0x2C; // 
+                pub const m_iszGustSound: usize = 0x38; // int32
+                pub const m_iWindDir: usize = 0x3C; // int32
+                pub const m_flWindSpeed: usize = 0x40; // float32
+                pub const m_currentWindVector: usize = 0x44; // 
+                pub const m_CurrentSwayVector: usize = 0x50; // 
+                pub const m_PrevSwayVector: usize = 0x5C; // 
+                pub const m_iInitialWindDir: usize = 0x68; // uint16
+                pub const m_flInitialWindSpeed: usize = 0x6C; // float32
+                pub const m_flVariationTime: usize = 0x70; // GameTime_t
+                pub const m_flSwayTime: usize = 0x74; // GameTime_t
+                pub const m_flSimTime: usize = 0x78; // GameTime_t
+                pub const m_flSwitchTime: usize = 0x7C; // GameTime_t
+                pub const m_flAveWindSpeed: usize = 0x80; // float32
+                pub const m_bGusting: usize = 0x84; // bool
+                pub const m_flWindAngleVariation: usize = 0x88; // float32
+                pub const m_flWindSpeedVariation: usize = 0x8C; // float32
+                pub const m_iEntIndex: usize = 0x90; // CEntityIndex
+            }
+            // Parent: None
+            // Fields count: 12
+            //
+            // Metadata:
+            // NetworkVarNames: m_nModelID (int32)
+            // NetworkVarNames: m_hMaterial (HMaterialStrong)
+            // NetworkVarNames: m_solid (ShardSolid_t)
+            // NetworkVarNames: m_ShatterPanelMode (ShatterPanelMode)
+            // NetworkVarNames: m_vecPanelSize (Vector2D)
+            // NetworkVarNames: m_vecStressPositionA (Vector2D)
+            // NetworkVarNames: m_vecStressPositionB (Vector2D)
+            // NetworkVarNames: m_vecPanelVertices (Vector2D)
+            // NetworkVarNames: m_flGlassHalfThickness (float)
+            // NetworkVarNames: m_bHasParent (bool)
+            // NetworkVarNames: m_bParentFrozen (bool)
+            // NetworkVarNames: m_SurfacePropStringToken (CUtlStringToken)
+            pub mod shard_model_desc_t {
+                pub const m_nModelID: usize = 0x8; // int32
+                pub const m_hMaterial: usize = 0x10; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_solid: usize = 0x18; // ShardSolid_t
+                pub const m_ShatterPanelMode: usize = 0x19; // ShatterPanelMode
+                pub const m_vecPanelSize: usize = 0x1C; // Vector2D
+                pub const m_vecStressPositionA: usize = 0x24; // Vector2D
+                pub const m_vecStressPositionB: usize = 0x2C; // Vector2D
+                pub const m_vecPanelVertices: usize = 0x38; // C_NetworkUtlVectorBase<Vector2D>
+                pub const m_flGlassHalfThickness: usize = 0x50; // float32
+                pub const m_bHasParent: usize = 0x54; // bool
+                pub const m_bParentFrozen: usize = 0x55; // bool
+                pub const m_SurfacePropStringToken: usize = 0x58; // CUtlStringToken
+            }
+            // Parent: None
+            // Fields count: 11
+            //
+            // Metadata:
+            // NetworkVarNames: m_iGlowType (int32)
+            // NetworkVarNames: m_iGlowTeam (int32)
+            // NetworkVarNames: m_nGlowRange (int32)
+            // NetworkVarNames: m_nGlowRangeMin (int32)
+            // NetworkVarNames: m_glowColorOverride (Color)
+            // NetworkVarNames: m_bFlashing (bool)
+            // NetworkVarNames: m_flGlowTime (float)
+            // NetworkVarNames: m_flGlowStartTime (float)
+            // NetworkVarNames: m_bEligibleForScreenHighlight (bool)
+            pub mod CGlowProperty {
+                pub const m_fGlowColor: usize = 0x8; // 
+                pub const m_iGlowType: usize = 0x30; // int32
+                pub const m_iGlowTeam: usize = 0x34; // int32
+                pub const m_nGlowRange: usize = 0x38; // int32
+                pub const m_nGlowRangeMin: usize = 0x3C; // int32
+                pub const m_glowColorOverride: usize = 0x40; // Color
+                pub const m_bFlashing: usize = 0x44; // bool
+                pub const m_flGlowTime: usize = 0x48; // float32
+                pub const m_flGlowStartTime: usize = 0x4C; // float32
+                pub const m_bEligibleForScreenHighlight: usize = 0x50; // bool
+                pub const m_bGlowing: usize = 0x51; // bool
+            }
+            // Parent: None
+            // Fields count: 25
+            //
+            // Metadata:
+            // NetworkVarNames: dirPrimary (Vector)
+            // NetworkVarNames: colorPrimary (Color)
+            // NetworkVarNames: colorSecondary (Color)
+            // NetworkVarNames: colorPrimaryLerpTo (Color)
+            // NetworkVarNames: colorSecondaryLerpTo (Color)
+            // NetworkVarNames: start (float32)
+            // NetworkVarNames: end (float32)
+            // NetworkVarNames: farz (float32)
+            // NetworkVarNames: maxdensity (float32)
+            // NetworkVarNames: exponent (float32)
+            // NetworkVarNames: HDRColorScale (float32)
+            // NetworkVarNames: skyboxFogFactor (float32)
+            // NetworkVarNames: skyboxFogFactorLerpTo (float32)
+            // NetworkVarNames: startLerpTo (float32)
+            // NetworkVarNames: endLerpTo (float32)
+            // NetworkVarNames: maxdensityLerpTo (float32)
+            // NetworkVarNames: lerptime (GameTime_t)
+            // NetworkVarNames: duration (float32)
+            // NetworkVarNames: blendtobackground (float32)
+            // NetworkVarNames: scattering (float32)
+            // NetworkVarNames: locallightscale (float32)
+            // NetworkVarNames: enable (bool)
+            // NetworkVarNames: blend (bool)
+            // NetworkVarNames: m_bNoReflectionFog (bool)
+            pub mod fogparams_t {
+                pub const dirPrimary: usize = 0x8; // 
+                pub const colorPrimary: usize = 0x14; // Color
+                pub const colorSecondary: usize = 0x18; // Color
+                pub const colorPrimaryLerpTo: usize = 0x1C; // Color
+                pub const colorSecondaryLerpTo: usize = 0x20; // Color
+                pub const start: usize = 0x24; // float32
+                pub const end: usize = 0x28; // float32
+                pub const farz: usize = 0x2C; // float32
+                pub const maxdensity: usize = 0x30; // float32
+                pub const exponent: usize = 0x34; // float32
+                pub const HDRColorScale: usize = 0x38; // float32
+                pub const skyboxFogFactor: usize = 0x3C; // float32
+                pub const skyboxFogFactorLerpTo: usize = 0x40; // float32
+                pub const startLerpTo: usize = 0x44; // float32
+                pub const endLerpTo: usize = 0x48; // float32
+                pub const maxdensityLerpTo: usize = 0x4C; // float32
+                pub const lerptime: usize = 0x50; // GameTime_t
+                pub const duration: usize = 0x54; // float32
+                pub const blendtobackground: usize = 0x58; // float32
+                pub const scattering: usize = 0x5C; // float32
+                pub const locallightscale: usize = 0x60; // float32
+                pub const enable: usize = 0x64; // bool
+                pub const blend: usize = 0x65; // bool
+                pub const m_bNoReflectionFog: usize = 0x66; // bool
+                pub const m_bPadding: usize = 0x67; // bool
+            }
+            // Parent: None
+            // Fields count: 14
+            //
+            // Metadata:
+            // NetworkVarNames: m_hCtrl (CHandle<CFogController>)
+            pub mod C_fogplayerparams_t {
+                pub const m_hCtrl: usize = 0x8; // CHandle<C_FogController>
+                pub const m_flTransitionTime: usize = 0xC; // float32
+                pub const m_OldColor: usize = 0x10; // Color
+                pub const m_flOldStart: usize = 0x14; // float32
+                pub const m_flOldEnd: usize = 0x18; // float32
+                pub const m_flOldMaxDensity: usize = 0x1C; // float32
+                pub const m_flOldHDRColorScale: usize = 0x20; // float32
+                pub const m_flOldFarZ: usize = 0x24; // float32
+                pub const m_NewColor: usize = 0x28; // Color
+                pub const m_flNewStart: usize = 0x2C; // float32
+                pub const m_flNewEnd: usize = 0x30; // float32
+                pub const m_flNewMaxDensity: usize = 0x34; // float32
+                pub const m_flNewHDRColorScale: usize = 0x38; // float32
+                pub const m_flNewFarZ: usize = 0x3C; // float32
+            }
+            // Parent: None
+            // Fields count: 6
+            //
+            // Metadata:
+            // NetworkVarNames: scale (int16)
+            // NetworkVarNames: origin (Vector)
+            // NetworkVarNames: bClip3DSkyBoxNearToWorldFar (bool)
+            // NetworkVarNames: flClip3DSkyBoxNearToWorldFarOffset (float32)
+            // NetworkVarNames: fog (fogparams_t)
+            // NetworkVarNames: m_nWorldGroupID (WorldGroupId_t)
+            pub mod sky3dparams_t {
+                pub const scale: usize = 0x8; // int16
+                pub const origin: usize = 0xC; // 
+                pub const bClip3DSkyBoxNearToWorldFar: usize = 0x18; // bool
+                pub const flClip3DSkyBoxNearToWorldFarOffset: usize = 0x1C; // float32
+                pub const fog: usize = 0x20; // fogparams_t
+                pub const m_nWorldGroupID: usize = 0x88; // WorldGroupId_t
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_Transforms (CTransform)
+            // NetworkVarNames: m_hOwner (EHANDLE)
+            pub mod PhysicsRagdollPose_t {
+                pub const __m_pChainEntity: usize = 0x8; // CNetworkVarChainer
+                pub const m_Transforms: usize = 0x30; // C_NetworkUtlVectorBase<CTransform>
+                pub const m_hOwner: usize = 0x48; // CHandle<C_BaseEntity>
+                pub const m_bDirty: usize = 0x68; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_iszStackName (string_t)
+            // NetworkVarNames: m_iszOperatorName (string_t)
+            // NetworkVarNames: m_iszOpvarName (string_t)
+            // NetworkVarNames: m_iOpvarIndex (int)
+            // NetworkVarNames: m_bUseAutoCompare (bool)
+            pub mod C_SoundOpvarSetPointBase {
+                pub const m_iszStackName: usize = 0x550; // CUtlSymbolLarge
+                pub const m_iszOperatorName: usize = 0x558; // CUtlSymbolLarge
+                pub const m_iszOpvarName: usize = 0x560; // CUtlSymbolLarge
+                pub const m_iOpvarIndex: usize = 0x568; // int32
+                pub const m_bUseAutoCompare: usize = 0x56C; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 30
+            //
+            // Metadata:
+            // NetworkVarNames: m_bTimerPaused (bool)
+            // NetworkVarNames: m_flTimeRemaining (float)
+            // NetworkVarNames: m_flTimerEndTime (GameTime_t)
+            // NetworkVarNames: m_bIsDisabled (bool)
+            // NetworkVarNames: m_bShowInHUD (bool)
+            // NetworkVarNames: m_nTimerLength (int)
+            // NetworkVarNames: m_nTimerInitialLength (int)
+            // NetworkVarNames: m_nTimerMaxLength (int)
+            // NetworkVarNames: m_bAutoCountdown (bool)
+            // NetworkVarNames: m_nSetupTimeLength (int)
+            // NetworkVarNames: m_nState (int)
+            // NetworkVarNames: m_bStartPaused (bool)
+            // NetworkVarNames: m_bInCaptureWatchState (bool)
+            // NetworkVarNames: m_flTotalTime (float)
+            // NetworkVarNames: m_bStopWatchTimer (bool)
+            pub mod C_TeamRoundTimer {
+                pub const m_bTimerPaused: usize = 0x550; // bool
+                pub const m_flTimeRemaining: usize = 0x554; // float32
+                pub const m_flTimerEndTime: usize = 0x558; // GameTime_t
+                pub const m_bIsDisabled: usize = 0x55C; // bool
+                pub const m_bShowInHUD: usize = 0x55D; // bool
+                pub const m_nTimerLength: usize = 0x560; // int32
+                pub const m_nTimerInitialLength: usize = 0x564; // int32
+                pub const m_nTimerMaxLength: usize = 0x568; // int32
+                pub const m_bAutoCountdown: usize = 0x56C; // bool
+                pub const m_nSetupTimeLength: usize = 0x570; // int32
+                pub const m_nState: usize = 0x574; // int32
+                pub const m_bStartPaused: usize = 0x578; // bool
+                pub const m_bInCaptureWatchState: usize = 0x579; // bool
+                pub const m_flTotalTime: usize = 0x57C; // float32
+                pub const m_bStopWatchTimer: usize = 0x580; // bool
+                pub const m_bFireFinished: usize = 0x581; // bool
+                pub const m_bFire5MinRemain: usize = 0x582; // bool
+                pub const m_bFire4MinRemain: usize = 0x583; // bool
+                pub const m_bFire3MinRemain: usize = 0x584; // bool
+                pub const m_bFire2MinRemain: usize = 0x585; // bool
+                pub const m_bFire1MinRemain: usize = 0x586; // bool
+                pub const m_bFire30SecRemain: usize = 0x587; // bool
+                pub const m_bFire10SecRemain: usize = 0x588; // bool
+                pub const m_bFire5SecRemain: usize = 0x589; // bool
+                pub const m_bFire4SecRemain: usize = 0x58A; // bool
+                pub const m_bFire3SecRemain: usize = 0x58B; // bool
+                pub const m_bFire2SecRemain: usize = 0x58C; // bool
+                pub const m_bFire1SecRemain: usize = 0x58D; // bool
+                pub const m_nOldTimerLength: usize = 0x590; // int32
+                pub const m_nOldTimerState: usize = 0x594; // int32
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_Attributes (CEconItemAttribute)
+            pub mod CAttributeList {
+                pub const m_Attributes: usize = 0x8; // C_UtlVectorEmbeddedNetworkVar<CEconItemAttribute>
+                pub const m_pManager: usize = 0x58; // CAttributeManager*
+            }
+            // Parent: None
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_iAttributeDefinitionIndex (attrib_definition_index_t)
+            // NetworkVarNames: m_flValue (float)
+            // NetworkVarNames: m_flInitialValue (float)
+            // NetworkVarNames: m_nRefundableCurrency (int)
+            // NetworkVarNames: m_bSetBonus (bool)
+            pub mod CEconItemAttribute {
+                pub const m_iAttributeDefinitionIndex: usize = 0x30; // uint16
+                pub const m_flValue: usize = 0x34; // float32
+                pub const m_flInitialValue: usize = 0x38; // float32
+                pub const m_nRefundableCurrency: usize = 0x3C; // int32
+                pub const m_bSetBonus: usize = 0x40; // bool
+            }
+            // Parent: None
+            // Fields count: 6
+            //
+            // Metadata:
+            // NetworkVarNames: m_iReapplyProvisionParity (int)
+            // NetworkVarNames: m_hOuter (EHANDLE)
+            // NetworkVarNames: m_ProviderType (attributeprovidertypes_t)
+            pub mod CAttributeManager {
+                pub const m_Providers: usize = 0x8; // CUtlVector<CHandle<C_BaseEntity>>
+                pub const m_iReapplyProvisionParity: usize = 0x20; // int32
+                pub const m_hOuter: usize = 0x24; // CHandle<C_BaseEntity>
+                pub const m_bPreventLoopback: usize = 0x28; // bool
+                pub const m_ProviderType: usize = 0x2C; // attributeprovidertypes_t
+                pub const m_CachedResults: usize = 0x30; // CUtlVector<CAttributeManager::cached_attribute_float_t>
+            }
+            // Parent: CAttributeManager
+            // Fields count: 3
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_Item (CEconItemView)
+            pub mod C_AttributeContainer {
+                pub const m_Item: usize = 0x50; // C_EconItemView
+                pub const m_iExternalItemProviderRegisteredToken: usize = 0x498; // int32
+                pub const m_ullRegisteredAsItemID: usize = 0x4A0; // uint64
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_bSpotted (bool)
+            // NetworkVarNames: m_bSpottedByMask (uint32)
+            pub mod EntitySpottedState_t {
+                pub const m_bSpotted: usize = 0x8; // bool
+                pub const m_bSpottedByMask: usize = 0xC; // uint32[2]
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_pGameRules (CCSGameRules*)
+            pub mod C_CSGameRulesProxy {
+                pub const m_pGameRules: usize = 0x550; // C_CSGameRules*
+            }
+            // Parent: None
+            // Fields count: 117
+            //
+            // Metadata:
+            // NetworkVarNames: m_bFreezePeriod (bool)
+            // NetworkVarNames: m_bWarmupPeriod (bool)
+            // NetworkVarNames: m_fWarmupPeriodEnd (GameTime_t)
+            // NetworkVarNames: m_fWarmupPeriodStart (GameTime_t)
+            // NetworkVarNames: m_nTotalPausedTicks (int)
+            // NetworkVarNames: m_nPauseStartTick (int)
+            // NetworkVarNames: m_bServerPaused (bool)
+            // NetworkVarNames: m_bGamePaused (bool)
+            // NetworkVarNames: m_bTerroristTimeOutActive (bool)
+            // NetworkVarNames: m_bCTTimeOutActive (bool)
+            // NetworkVarNames: m_flTerroristTimeOutRemaining (float)
+            // NetworkVarNames: m_flCTTimeOutRemaining (float)
+            // NetworkVarNames: m_nTerroristTimeOuts (int)
+            // NetworkVarNames: m_nCTTimeOuts (int)
+            // NetworkVarNames: m_bTechnicalTimeOut (bool)
+            // NetworkVarNames: m_bMatchWaitingForResume (bool)
+            // NetworkVarNames: m_iRoundTime (int)
+            // NetworkVarNames: m_fMatchStartTime (float)
+            // NetworkVarNames: m_fRoundStartTime (GameTime_t)
+            // NetworkVarNames: m_flRestartRoundTime (GameTime_t)
+            // NetworkVarNames: m_bGameRestart (bool)
+            // NetworkVarNames: m_flGameStartTime (float)
+            // NetworkVarNames: m_timeUntilNextPhaseStarts (float)
+            // NetworkVarNames: m_gamePhase (int)
+            // NetworkVarNames: m_totalRoundsPlayed (int)
+            // NetworkVarNames: m_nRoundsPlayedThisPhase (int)
+            // NetworkVarNames: m_nOvertimePlaying (int)
+            // NetworkVarNames: m_iHostagesRemaining (int)
+            // NetworkVarNames: m_bAnyHostageReached (bool)
+            // NetworkVarNames: m_bMapHasBombTarget (bool)
+            // NetworkVarNames: m_bMapHasRescueZone (bool)
+            // NetworkVarNames: m_bMapHasBuyZone (bool)
+            // NetworkVarNames: m_bIsQueuedMatchmaking (bool)
+            // NetworkVarNames: m_nQueuedMatchmakingMode (int)
+            // NetworkVarNames: m_bIsValveDS (bool)
+            // NetworkVarNames: m_bLogoMap (bool)
+            // NetworkVarNames: m_bPlayAllStepSoundsOnServer (bool)
+            // NetworkVarNames: m_iSpectatorSlotCount (int)
+            // NetworkVarNames: m_MatchDevice (int)
+            // NetworkVarNames: m_bHasMatchStarted (bool)
+            // NetworkVarNames: m_nNextMapInMapgroup (int)
+            // NetworkVarNames: m_szTournamentEventName (char)
+            // NetworkVarNames: m_szTournamentEventStage (char)
+            // NetworkVarNames: m_szMatchStatTxt (char)
+            // NetworkVarNames: m_szTournamentPredictionsTxt (char)
+            // NetworkVarNames: m_nTournamentPredictionsPct (int)
+            // NetworkVarNames: m_flCMMItemDropRevealStartTime (GameTime_t)
+            // NetworkVarNames: m_flCMMItemDropRevealEndTime (GameTime_t)
+            // NetworkVarNames: m_bIsDroppingItems (bool)
+            // NetworkVarNames: m_bIsQuestEligible (bool)
+            // NetworkVarNames: m_bIsHltvActive (bool)
+            // NetworkVarNames: m_nGuardianModeWaveNumber (int)
+            // NetworkVarNames: m_nGuardianModeSpecialKillsRemaining (int)
+            // NetworkVarNames: m_nGuardianModeSpecialWeaponNeeded (int)
+            // NetworkVarNames: m_numGlobalGiftsGiven (uint32)
+            // NetworkVarNames: m_numGlobalGifters (uint32)
+            // NetworkVarNames: m_numGlobalGiftsPeriodSeconds (uint32)
+            // NetworkVarNames: m_arrFeaturedGiftersAccounts (uint32)
+            // NetworkVarNames: m_arrFeaturedGiftersGifts (uint32)
+            // NetworkVarNames: m_arrProhibitedItemIndices (uint16)
+            // NetworkVarNames: m_arrTournamentActiveCasterAccounts (uint32)
+            // NetworkVarNames: m_numBestOfMaps (int)
+            // NetworkVarNames: m_nHalloweenMaskListSeed (int)
+            // NetworkVarNames: m_bBombDropped (bool)
+            // NetworkVarNames: m_bBombPlanted (bool)
+            // NetworkVarNames: m_iRoundWinStatus (int)
+            // NetworkVarNames: m_eRoundWinReason (int)
+            // NetworkVarNames: m_bTCantBuy (bool)
+            // NetworkVarNames: m_bCTCantBuy (bool)
+            // NetworkVarNames: m_flGuardianBuyUntilTime (GameTime_t)
+            // NetworkVarNames: m_iMatchStats_RoundResults (int)
+            // NetworkVarNames: m_iMatchStats_PlayersAlive_CT (int)
+            // NetworkVarNames: m_iMatchStats_PlayersAlive_T (int)
+            // NetworkVarNames: m_TeamRespawnWaveTimes (float)
+            // NetworkVarNames: m_flNextRespawnWave (GameTime_t)
+            // NetworkVarNames: m_nServerQuestID (int)
+            // NetworkVarNames: m_vMinimapMins (Vector)
+            // NetworkVarNames: m_vMinimapMaxs (Vector)
+            // NetworkVarNames: m_MinimapVerticalSectionHeights (float)
+            // NetworkVarNames: m_nEndMatchMapGroupVoteTypes (int)
+            // NetworkVarNames: m_nEndMatchMapGroupVoteOptions (int)
+            // NetworkVarNames: m_nEndMatchMapVoteWinner (int)
+            // NetworkVarNames: m_iNumConsecutiveCTLoses (int)
+            // NetworkVarNames: m_iNumConsecutiveTerroristLoses (int)
+            // NetworkVarNames: m_nMatchAbortedEarlyReason (int)
+            // NetworkVarNames: m_pGameModeRules (CCSGameModeRules*)
+            // NetworkVarNames: m_RetakeRules (CRetakeGameRules)
+            // NetworkVarNames: m_nMatchEndCount (uint8)
+            // NetworkVarNames: m_nTTeamIntroVariant (int)
+            // NetworkVarNames: m_nCTTeamIntroVariant (int)
+            // NetworkVarNames: m_bTeamIntroPeriod (bool)
+            // NetworkVarNames: m_iRoundEndWinnerTeam (int)
+            // NetworkVarNames: m_eRoundEndReason (int)
+            // NetworkVarNames: m_bRoundEndShowTimerDefend (bool)
+            // NetworkVarNames: m_iRoundEndTimerTime (int)
+            // NetworkVarNames: m_sRoundEndFunFactToken (CUtlString)
+            // NetworkVarNames: m_iRoundEndFunFactPlayerSlot (CPlayerSlot)
+            // NetworkVarNames: m_iRoundEndFunFactData1 (int)
+            // NetworkVarNames: m_iRoundEndFunFactData2 (int)
+            // NetworkVarNames: m_iRoundEndFunFactData3 (int)
+            // NetworkVarNames: m_sRoundEndMessage (CUtlString)
+            // NetworkVarNames: m_iRoundEndPlayerCount (int)
+            // NetworkVarNames: m_bRoundEndNoMusic (bool)
+            // NetworkVarNames: m_iRoundEndLegacy (int)
+            // NetworkVarNames: m_nRoundEndCount (uint8)
+            // NetworkVarNames: m_iRoundStartRoundNumber (int)
+            // NetworkVarNames: m_nRoundStartCount (uint8)
+            pub mod C_CSGameRules {
+                pub const __m_pChainEntity: usize = 0x8; // CNetworkVarChainer
+                pub const m_bFreezePeriod: usize = 0x30; // bool
+                pub const m_bWarmupPeriod: usize = 0x31; // bool
+                pub const m_fWarmupPeriodEnd: usize = 0x34; // GameTime_t
+                pub const m_fWarmupPeriodStart: usize = 0x38; // GameTime_t
+                pub const m_nTotalPausedTicks: usize = 0x3C; // int32
+                pub const m_nPauseStartTick: usize = 0x40; // int32
+                pub const m_bServerPaused: usize = 0x44; // bool
+                pub const m_bGamePaused: usize = 0x45; // bool
+                pub const m_bTerroristTimeOutActive: usize = 0x46; // bool
+                pub const m_bCTTimeOutActive: usize = 0x47; // bool
+                pub const m_flTerroristTimeOutRemaining: usize = 0x48; // float32
+                pub const m_flCTTimeOutRemaining: usize = 0x4C; // float32
+                pub const m_nTerroristTimeOuts: usize = 0x50; // int32
+                pub const m_nCTTimeOuts: usize = 0x54; // int32
+                pub const m_bTechnicalTimeOut: usize = 0x58; // bool
+                pub const m_bMatchWaitingForResume: usize = 0x59; // bool
+                pub const m_iRoundTime: usize = 0x5C; // int32
+                pub const m_fMatchStartTime: usize = 0x60; // float32
+                pub const m_fRoundStartTime: usize = 0x64; // GameTime_t
+                pub const m_flRestartRoundTime: usize = 0x68; // GameTime_t
+                pub const m_bGameRestart: usize = 0x6C; // bool
+                pub const m_flGameStartTime: usize = 0x70; // float32
+                pub const m_timeUntilNextPhaseStarts: usize = 0x74; // float32
+                pub const m_gamePhase: usize = 0x78; // int32
+                pub const m_totalRoundsPlayed: usize = 0x7C; // int32
+                pub const m_nRoundsPlayedThisPhase: usize = 0x80; // int32
+                pub const m_nOvertimePlaying: usize = 0x84; // int32
+                pub const m_iHostagesRemaining: usize = 0x88; // int32
+                pub const m_bAnyHostageReached: usize = 0x8C; // bool
+                pub const m_bMapHasBombTarget: usize = 0x8D; // bool
+                pub const m_bMapHasRescueZone: usize = 0x8E; // bool
+                pub const m_bMapHasBuyZone: usize = 0x8F; // bool
+                pub const m_bIsQueuedMatchmaking: usize = 0x90; // bool
+                pub const m_nQueuedMatchmakingMode: usize = 0x94; // int32
+                pub const m_bIsValveDS: usize = 0x98; // bool
+                pub const m_bLogoMap: usize = 0x99; // bool
+                pub const m_bPlayAllStepSoundsOnServer: usize = 0x9A; // bool
+                pub const m_iSpectatorSlotCount: usize = 0x9C; // int32
+                pub const m_MatchDevice: usize = 0xA0; // int32
+                pub const m_bHasMatchStarted: usize = 0xA4; // bool
+                pub const m_nNextMapInMapgroup: usize = 0xA8; // int32
+                pub const m_szTournamentEventName: usize = 0xAC; // char[512]
+                pub const m_szTournamentEventStage: usize = 0x2AC; // char[512]
+                pub const m_szMatchStatTxt: usize = 0x4AC; // char[512]
+                pub const m_szTournamentPredictionsTxt: usize = 0x6AC; // char[512]
+                pub const m_nTournamentPredictionsPct: usize = 0x8AC; // int32
+                pub const m_flCMMItemDropRevealStartTime: usize = 0x8B0; // GameTime_t
+                pub const m_flCMMItemDropRevealEndTime: usize = 0x8B4; // GameTime_t
+                pub const m_bIsDroppingItems: usize = 0x8B8; // bool
+                pub const m_bIsQuestEligible: usize = 0x8B9; // bool
+                pub const m_bIsHltvActive: usize = 0x8BA; // bool
+                pub const m_nGuardianModeWaveNumber: usize = 0x8BC; // int32
+                pub const m_nGuardianModeSpecialKillsRemaining: usize = 0x8C0; // int32
+                pub const m_nGuardianModeSpecialWeaponNeeded: usize = 0x8C4; // int32
+                pub const m_nGuardianGrenadesToGiveBots: usize = 0x8C8; // int32
+                pub const m_nNumHeaviesToSpawn: usize = 0x8CC; // int32
+                pub const m_numGlobalGiftsGiven: usize = 0x8D0; // uint32
+                pub const m_numGlobalGifters: usize = 0x8D4; // uint32
+                pub const m_numGlobalGiftsPeriodSeconds: usize = 0x8D8; // uint32
+                pub const m_arrFeaturedGiftersAccounts: usize = 0x8DC; // uint32[4]
+                pub const m_arrFeaturedGiftersGifts: usize = 0x8EC; // uint32[4]
+                pub const m_arrProhibitedItemIndices: usize = 0x8FC; // uint16[100]
+                pub const m_arrTournamentActiveCasterAccounts: usize = 0x9C4; // uint32[4]
+                pub const m_numBestOfMaps: usize = 0x9D4; // int32
+                pub const m_nHalloweenMaskListSeed: usize = 0x9D8; // int32
+                pub const m_bBombDropped: usize = 0x9DC; // bool
+                pub const m_bBombPlanted: usize = 0x9DD; // bool
+                pub const m_iRoundWinStatus: usize = 0x9E0; // int32
+                pub const m_eRoundWinReason: usize = 0x9E4; // int32
+                pub const m_bTCantBuy: usize = 0x9E8; // bool
+                pub const m_bCTCantBuy: usize = 0x9E9; // bool
+                pub const m_flGuardianBuyUntilTime: usize = 0x9EC; // GameTime_t
+                pub const m_iMatchStats_RoundResults: usize = 0x9F0; // int32[30]
+                pub const m_iMatchStats_PlayersAlive_CT: usize = 0xA68; // int32[30]
+                pub const m_iMatchStats_PlayersAlive_T: usize = 0xAE0; // int32[30]
+                pub const m_TeamRespawnWaveTimes: usize = 0xB58; // float32[32]
+                pub const m_flNextRespawnWave: usize = 0xBD8; // GameTime_t[32]
+                pub const m_nServerQuestID: usize = 0xC58; // int32
+                pub const m_vMinimapMins: usize = 0xC5C; // 
+                pub const m_vMinimapMaxs: usize = 0xC68; // 
+                pub const m_MinimapVerticalSectionHeights: usize = 0xC74; // float32[8]
+                pub const m_bDontIncrementCoopWave: usize = 0xC94; // bool
+                pub const m_bSpawnedTerrorHuntHeavy: usize = 0xC95; // bool
+                pub const m_nEndMatchMapGroupVoteTypes: usize = 0xC98; // int32[10]
+                pub const m_nEndMatchMapGroupVoteOptions: usize = 0xCC0; // int32[10]
+                pub const m_nEndMatchMapVoteWinner: usize = 0xCE8; // int32
+                pub const m_iNumConsecutiveCTLoses: usize = 0xCEC; // int32
+                pub const m_iNumConsecutiveTerroristLoses: usize = 0xCF0; // int32
+                pub const m_bMarkClientStopRecordAtRoundEnd: usize = 0xD10; // bool
+                pub const m_nMatchAbortedEarlyReason: usize = 0xD68; // int32
+                pub const m_bHasTriggeredRoundStartMusic: usize = 0xD6C; // bool
+                pub const m_bHasTriggeredCoopSpawnReset: usize = 0xD6D; // bool
+                pub const m_bSwitchingTeamsAtRoundReset: usize = 0xD6E; // bool
+                pub const m_pGameModeRules: usize = 0xD88; // CCSGameModeRules*
+                pub const m_RetakeRules: usize = 0xD90; // C_RetakeGameRules
+                pub const m_nMatchEndCount: usize = 0xEA8; // uint8
+                pub const m_nTTeamIntroVariant: usize = 0xEAC; // int32
+                pub const m_nCTTeamIntroVariant: usize = 0xEB0; // int32
+                pub const m_bTeamIntroPeriod: usize = 0xEB4; // bool
+                pub const m_iRoundEndWinnerTeam: usize = 0xEB8; // int32
+                pub const m_eRoundEndReason: usize = 0xEBC; // int32
+                pub const m_bRoundEndShowTimerDefend: usize = 0xEC0; // bool
+                pub const m_iRoundEndTimerTime: usize = 0xEC4; // int32
+                pub const m_sRoundEndFunFactToken: usize = 0xEC8; // CUtlString
+                pub const m_iRoundEndFunFactPlayerSlot: usize = 0xED0; // CPlayerSlot
+                pub const m_iRoundEndFunFactData1: usize = 0xED4; // int32
+                pub const m_iRoundEndFunFactData2: usize = 0xED8; // int32
+                pub const m_iRoundEndFunFactData3: usize = 0xEDC; // int32
+                pub const m_sRoundEndMessage: usize = 0xEE0; // CUtlString
+                pub const m_iRoundEndPlayerCount: usize = 0xEE8; // int32
+                pub const m_bRoundEndNoMusic: usize = 0xEEC; // bool
+                pub const m_iRoundEndLegacy: usize = 0xEF0; // int32
+                pub const m_nRoundEndCount: usize = 0xEF4; // uint8
+                pub const m_iRoundStartRoundNumber: usize = 0xEF8; // int32
+                pub const m_nRoundStartCount: usize = 0xEFC; // uint8
+                pub const m_flLastPerfSampleTime: usize = 0x4F08; // float64
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod CCSTakeDamageInfoAPI {
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseInstanceDomainInfo
+            // MPulseLibraryBindings
+            // MPulseDomainOptInFeatureTag
+            pub mod CCSGameModeScript {
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_WeaponSequence (CUtlString)
+            pub mod CCSGameModeRules_ArmsRace {
+                pub const m_WeaponSequence: usize = 0x38; // C_NetworkUtlVectorBase<CUtlString>
+            }
+            // Parent: CCSGameModeScript
+            // Fields count: 1
+            //
+            // Metadata:
+            // MPulseInstanceDomainInfo
+            // MPulseLibraryBindings
+            // MPulseDomainOptInFeatureTag
+            pub mod CCSArmsRaceScript {
+                pub const m_pOuter: usize = 0xD8; // CCSGameModeRules_ArmsRace*
+            }
+            // Parent: None
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_flDMBonusStartTime (GameTime_t)
+            // NetworkVarNames: m_flDMBonusTimeLength (float)
+            // NetworkVarNames: m_nDMBonusWeaponLoadoutSlot (int16)
+            pub mod CCSGameModeRules_Deathmatch {
+                pub const m_flDMBonusStartTime: usize = 0x38; // GameTime_t
+                pub const m_flDMBonusTimeLength: usize = 0x3C; // float32
+                pub const m_nDMBonusWeaponLoadoutSlot: usize = 0x40; // int16
+            }
+            // Parent: CCSGameModeScript
+            // Fields count: 1
+            //
+            // Metadata:
+            // MPulseInstanceDomainInfo
+            // MPulseLibraryBindings
+            // MPulseDomainOptInFeatureTag
+            pub mod CCSDeathmatchScript {
+                pub const m_pOuter: usize = 0xD8; // CCSGameModeRules_Deathmatch*
+            }
+            // Parent: None
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_nMatchSeed (int)
+            // NetworkVarNames: m_bBlockersPresent (bool)
+            // NetworkVarNames: m_bRoundInProgress (bool)
+            // NetworkVarNames: m_iFirstSecondHalfRound (int)
+            // NetworkVarNames: m_iBombSite (int)
+            pub mod C_RetakeGameRules {
+                pub const m_nMatchSeed: usize = 0xF8; // int32
+                pub const m_bBlockersPresent: usize = 0xFC; // bool
+                pub const m_bRoundInProgress: usize = 0xFD; // bool
+                pub const m_iFirstSecondHalfRound: usize = 0x100; // int32
+                pub const m_iBombSite: usize = 0x104; // int32
+            }
+            // Parent: None
+            // Fields count: 13
+            //
+            // Metadata:
+            // NetworkVarNames: m_iKills (int)
+            // NetworkVarNames: m_iDeaths (int)
+            // NetworkVarNames: m_iAssists (int)
+            // NetworkVarNames: m_iDamage (int)
+            // NetworkVarNames: m_iEquipmentValue (int)
+            // NetworkVarNames: m_iMoneySaved (int)
+            // NetworkVarNames: m_iKillReward (int)
+            // NetworkVarNames: m_iLiveTime (int)
+            // NetworkVarNames: m_iHeadShotKills (int)
+            // NetworkVarNames: m_iObjective (int)
+            // NetworkVarNames: m_iCashEarned (int)
+            // NetworkVarNames: m_iUtilityDamage (int)
+            // NetworkVarNames: m_iEnemiesFlashed (int)
+            pub mod CSPerRoundStats_t {
+                pub const m_iKills: usize = 0x30; // int32
+                pub const m_iDeaths: usize = 0x34; // int32
+                pub const m_iAssists: usize = 0x38; // int32
+                pub const m_iDamage: usize = 0x3C; // int32
+                pub const m_iEquipmentValue: usize = 0x40; // int32
+                pub const m_iMoneySaved: usize = 0x44; // int32
+                pub const m_iKillReward: usize = 0x48; // int32
+                pub const m_iLiveTime: usize = 0x4C; // int32
+                pub const m_iHeadShotKills: usize = 0x50; // int32
+                pub const m_iObjective: usize = 0x54; // int32
+                pub const m_iCashEarned: usize = 0x58; // int32
+                pub const m_iUtilityDamage: usize = 0x5C; // int32
+                pub const m_iEnemiesFlashed: usize = 0x60; // int32
+            }
+            // Parent: CSPerRoundStats_t
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_iEnemy5Ks (int)
+            // NetworkVarNames: m_iEnemy4Ks (int)
+            // NetworkVarNames: m_iEnemy3Ks (int)
+            // NetworkVarNames: m_iEnemyKnifeKills (int)
+            // NetworkVarNames: m_iEnemyTaserKills (int)
+            pub mod CSMatchStats_t {
+                pub const m_iEnemy5Ks: usize = 0x68; // int32
+                pub const m_iEnemy4Ks: usize = 0x6C; // int32
+                pub const m_iEnemy3Ks: usize = 0x70; // int32
+                pub const m_iEnemyKnifeKills: usize = 0x74; // int32
+                pub const m_iEnemyTaserKills: usize = 0x78; // int32
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_nVariant (int)
+            // NetworkVarNames: m_nRandom (int)
+            // NetworkVarNames: m_nOrdinal (int)
+            // NetworkVarNames: m_sWeaponName (CUtlString)
+            // NetworkVarNames: m_xuid (XUID)
+            // NetworkVarNames: m_agentItem (CEconItemView)
+            // NetworkVarNames: m_glovesItem (CEconItemView)
+            // NetworkVarNames: m_weaponItem (CEconItemView)
+            pub mod C_CSGO_TeamPreviewCharacterPosition {
+                pub const m_nVariant: usize = 0x550; // int32
+                pub const m_nRandom: usize = 0x554; // int32
+                pub const m_nOrdinal: usize = 0x558; // int32
+                pub const m_sWeaponName: usize = 0x560; // CUtlString
+                pub const m_xuid: usize = 0x568; // uint64
+                pub const m_agentItem: usize = 0x570; // C_EconItemView
+                pub const m_glovesItem: usize = 0x9B8; // C_EconItemView
+                pub const m_weaponItem: usize = 0xE00; // C_EconItemView
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_hPlayer (CHandle<CCSPlayerPawn>)
+            // NetworkVarNames: m_hPingedEntity (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_iType (int)
+            // NetworkVarNames: m_bUrgent (bool)
+            // NetworkVarNames: m_szPlaceName (char)
+            pub mod C_PlayerPing {
+                pub const m_hPlayer: usize = 0x580; // CHandle<C_CSPlayerPawn>
+                pub const m_hPingedEntity: usize = 0x584; // CHandle<C_BaseEntity>
+                pub const m_iType: usize = 0x588; // int32
+                pub const m_bUrgent: usize = 0x58C; // bool
+                pub const m_szPlaceName: usize = 0x58D; // char[18]
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_hPlayerPing (CHandle<CBaseEntity>)
+            pub mod CCSPlayer_PingServices {
+                pub const m_hPlayerPing: usize = 0x40; // CHandle<C_BaseEntity>
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 10
+            //
+            // Metadata:
+            // NetworkVarNames: m_bHostageAlive (bool)
+            // NetworkVarNames: m_isHostageFollowingSomeone (bool)
+            // NetworkVarNames: m_iHostageEntityIDs (CEntityIndex)
+            // NetworkVarNames: m_bombsiteCenterA (Vector)
+            // NetworkVarNames: m_bombsiteCenterB (Vector)
+            // NetworkVarNames: m_hostageRescueX (int)
+            // NetworkVarNames: m_hostageRescueY (int)
+            // NetworkVarNames: m_hostageRescueZ (int)
+            // NetworkVarNames: m_bEndMatchNextMapAllVoted (bool)
+            pub mod C_CSPlayerResource {
+                pub const m_bHostageAlive: usize = 0x550; // bool[12]
+                pub const m_isHostageFollowingSomeone: usize = 0x55C; // bool[12]
+                pub const m_iHostageEntityIDs: usize = 0x568; // CEntityIndex[12]
+                pub const m_bombsiteCenterA: usize = 0x598; // 
+                pub const m_bombsiteCenterB: usize = 0x5A4; // 
+                pub const m_hostageRescueX: usize = 0x5B0; // int32[4]
+                pub const m_hostageRescueY: usize = 0x5C0; // int32[4]
+                pub const m_hostageRescueZ: usize = 0x5D0; // int32[4]
+                pub const m_bEndMatchNextMapAllVoted: usize = 0x5E0; // bool
+                pub const m_foundGoalPositions: usize = 0x5E1; // bool
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod CCSPlayerControllerAPI {
+            }
+            // Parent: CPlayer_CameraServices
+            // Fields count: 6
+            //
+            // Metadata:
+            // NetworkVarNames: m_iFOV (uint32)
+            // NetworkVarNames: m_iFOVStart (uint32)
+            // NetworkVarNames: m_flFOVTime (GameTime_t)
+            // NetworkVarNames: m_flFOVRate (float32)
+            // NetworkVarNames: m_hZoomOwner (CHandle<CBaseEntity>)
+            pub mod CCSPlayerBase_CameraServices {
+                pub const m_iFOV: usize = 0x210; // uint32
+                pub const m_iFOVStart: usize = 0x214; // uint32
+                pub const m_flFOVTime: usize = 0x218; // GameTime_t
+                pub const m_flFOVRate: usize = 0x21C; // float32
+                pub const m_hZoomOwner: usize = 0x220; // CHandle<C_BaseEntity>
+                pub const m_flLastShotFOV: usize = 0x224; // float32
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_nItemDefIndex (uint16)
+            // NetworkVarNames: m_nCount (uint16)
+            pub mod WeaponPurchaseCount_t {
+                pub const m_nItemDefIndex: usize = 0x30; // uint16
+                pub const m_nCount: usize = 0x32; // uint16
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_weaponPurchases (WeaponPurchaseCount_t)
+            pub mod WeaponPurchaseTracker_t {
+                pub const m_weaponPurchases: usize = 0x8; // C_UtlVectorEmbeddedNetworkVar<WeaponPurchaseCount_t>
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_bIsRescuing (bool)
+            // NetworkVarNames: m_weaponPurchasesThisMatch (WeaponPurchaseTracker_t)
+            // NetworkVarNames: m_weaponPurchasesThisRound (WeaponPurchaseTracker_t)
+            pub mod CCSPlayer_ActionTrackingServices {
+                pub const m_hLastWeaponBeforeC4AutoSwitch: usize = 0x40; // CHandle<C_BasePlayerWeapon>
+                pub const m_bIsRescuing: usize = 0x44; // bool
+                pub const m_weaponPurchasesThisMatch: usize = 0x48; // WeaponPurchaseTracker_t
+                pub const m_weaponPurchasesThisRound: usize = 0xA0; // WeaponPurchaseTracker_t
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_totalHitsOnServer (int32)
+            pub mod CCSPlayer_BulletServices {
+                pub const m_totalHitsOnServer: usize = 0x40; // int32
+            }
+            // Parent: None
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_unDefIdx (item_definition_index_t)
+            // NetworkVarNames: m_nCost (int)
+            // NetworkVarNames: m_nPrevArmor (int)
+            // NetworkVarNames: m_bPrevHelmet (bool)
+            // NetworkVarNames: m_hItem (CEntityHandle)
+            pub mod SellbackPurchaseEntry_t {
+                pub const m_unDefIdx: usize = 0x30; // uint16
+                pub const m_nCost: usize = 0x34; // int32
+                pub const m_nPrevArmor: usize = 0x38; // int32
+                pub const m_bPrevHelmet: usize = 0x3C; // bool
+                pub const m_hItem: usize = 0x40; // CEntityHandle
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_vecSellbackPurchaseEntries (SellbackPurchaseEntry_t)
+            pub mod CCSPlayer_BuyServices {
+                pub const m_vecSellbackPurchaseEntries: usize = 0x40; // C_UtlVectorEmbeddedNetworkVar<SellbackPurchaseEntry_t>
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_hCarriedHostage (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_hCarriedHostageProp (CHandle<CBaseEntity>)
+            pub mod CCSPlayer_HostageServices {
+                pub const m_hCarriedHostage: usize = 0x40; // CHandle<C_BaseEntity>
+                pub const m_hCarriedHostageProp: usize = 0x44; // CHandle<C_BaseEntity>
+            }
+            // Parent: None
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_bHasDefuser (bool)
+            // NetworkVarNames: m_bHasHelmet (bool)
+            // NetworkVarNames: m_bHasHeavyArmor (bool)
+            pub mod CCSPlayer_ItemServices {
+                pub const m_bHasDefuser: usize = 0x40; // bool
+                pub const m_bHasHelmet: usize = 0x41; // bool
+                pub const m_bHasHeavyArmor: usize = 0x42; // bool
+            }
+            // Parent: CPlayer_MovementServices_Humanoid
+            // Fields count: 37
+            //
+            // Metadata:
+            // NetworkVarNames: m_flMaxFallVelocity (float)
+            // NetworkVarNames: m_vecLadderNormal (Vector)
+            // NetworkVarNames: m_nLadderSurfacePropIndex (int)
+            // NetworkVarNames: m_flDuckAmount (float)
+            // NetworkVarNames: m_flDuckSpeed (float)
+            // NetworkVarNames: m_bDuckOverride (bool)
+            // NetworkVarNames: m_bDesiresDuck (bool)
+            // NetworkVarNames: m_nDuckTimeMsecs (uint32)
+            // NetworkVarNames: m_nDuckJumpTimeMsecs (uint32)
+            // NetworkVarNames: m_nJumpTimeMsecs (uint32)
+            // NetworkVarNames: m_flLastDuckTime (float)
+            // NetworkVarNames: m_nGameCodeHasMovedPlayerAfterCommand (int)
+            // NetworkVarNames: m_bOldJumpPressed (bool)
+            // NetworkVarNames: m_flJumpUntil (float)
+            // NetworkVarNames: m_flJumpVel (float)
+            // NetworkVarNames: m_fStashGrenadeParameterWhen (GameTime_t)
+            // NetworkVarNames: m_nButtonDownMaskPrev (ButtonBitMask_t)
+            // NetworkVarNames: m_flOffsetTickCompleteTime (float)
+            // NetworkVarNames: m_flOffsetTickStashedSpeed (float)
+            // NetworkVarNames: m_flStamina (float)
+            pub mod CCSPlayer_MovementServices {
+                pub const m_flMaxFallVelocity: usize = 0x218; // float32
+                pub const m_vecLadderNormal: usize = 0x21C; // 
+                pub const m_nLadderSurfacePropIndex: usize = 0x228; // int32
+                pub const m_flDuckAmount: usize = 0x22C; // float32
+                pub const m_flDuckSpeed: usize = 0x230; // float32
+                pub const m_bDuckOverride: usize = 0x234; // bool
+                pub const m_bDesiresDuck: usize = 0x235; // bool
+                pub const m_flDuckOffset: usize = 0x238; // float32
+                pub const m_nDuckTimeMsecs: usize = 0x23C; // uint32
+                pub const m_nDuckJumpTimeMsecs: usize = 0x240; // uint32
+                pub const m_nJumpTimeMsecs: usize = 0x244; // uint32
+                pub const m_flLastDuckTime: usize = 0x248; // float32
+                pub const m_vecLastPositionAtFullCrouchSpeed: usize = 0x258; // Vector2D
+                pub const m_duckUntilOnGround: usize = 0x260; // bool
+                pub const m_bHasWalkMovedSinceLastJump: usize = 0x261; // bool
+                pub const m_bInStuckTest: usize = 0x262; // bool
+                pub const m_flStuckCheckTime: usize = 0x270; // 
+                pub const m_nTraceCount: usize = 0x470; // int32
+                pub const m_StuckLast: usize = 0x474; // int32
+                pub const m_bSpeedCropped: usize = 0x478; // bool
+                pub const m_nOldWaterLevel: usize = 0x47C; // int32
+                pub const m_flWaterEntryTime: usize = 0x480; // float32
+                pub const m_vecForward: usize = 0x484; // 
+                pub const m_vecLeft: usize = 0x490; // 
+                pub const m_vecUp: usize = 0x49C; // 
+                pub const m_nGameCodeHasMovedPlayerAfterCommand: usize = 0x4A8; // int32
+                pub const m_bOldJumpPressed: usize = 0x4AC; // bool
+                pub const m_flJumpPressedTime: usize = 0x4B0; // float32
+                pub const m_flJumpUntil: usize = 0x4B4; // float32
+                pub const m_flJumpVel: usize = 0x4B8; // float32
+                pub const m_fStashGrenadeParameterWhen: usize = 0x4BC; // GameTime_t
+                pub const m_nButtonDownMaskPrev: usize = 0x4C0; // uint64
+                pub const m_flOffsetTickCompleteTime: usize = 0x4C8; // float32
+                pub const m_flOffsetTickStashedSpeed: usize = 0x4CC; // float32
+                pub const m_flStamina: usize = 0x4D0; // float32
+                pub const m_flHeightAtJumpStart: usize = 0x4D4; // float32
+                pub const m_flMaxJumpHeightThisJump: usize = 0x4D8; // float32
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_hViewModel (CHandle<CBaseViewModel>)
+            pub mod CCSPlayer_ViewModelServices {
+                pub const m_hViewModel: usize = 0x40; // CHandle<C_BaseViewModel>[3]
+            }
+            // Parent: CPlayer_WeaponServices
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_flNextAttack (GameTime_t)
+            // NetworkVarNames: m_bIsLookingAtWeapon (bool)
+            // NetworkVarNames: m_bIsHoldingLookAtWeapon (bool)
+            pub mod CCSPlayer_WeaponServices {
+                pub const m_flNextAttack: usize = 0xB8; // GameTime_t
+                pub const m_bIsLookingAtWeapon: usize = 0xBC; // bool
+                pub const m_bIsHoldingLookAtWeapon: usize = 0xBD; // bool
+                pub const m_nOldShootPositionHistoryCount: usize = 0xC0; // uint32
+                pub const m_nOldInputHistoryCount: usize = 0x458; // uint32
+            }
+            // Parent: None
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_perRoundStats (CSPerRoundStats_t)
+            // NetworkVarNames: m_matchStats (CSMatchStats_t)
+            // NetworkVarNames: m_iNumRoundKills (int)
+            // NetworkVarNames: m_iNumRoundKillsHeadshots (int)
+            // NetworkVarNames: m_unTotalRoundDamageDealt (uint32)
+            pub mod CCSPlayerController_ActionTrackingServices {
+                pub const m_perRoundStats: usize = 0x40; // C_UtlVectorEmbeddedNetworkVar<CSPerRoundStats_t>
+                pub const m_matchStats: usize = 0x90; // CSMatchStats_t
+                pub const m_iNumRoundKills: usize = 0x110; // int32
+                pub const m_iNumRoundKillsHeadshots: usize = 0x114; // int32
+                pub const m_unTotalRoundDamageDealt: usize = 0x118; // uint32
+            }
+            // Parent: None
+            // Fields count: 14
+            //
+            // Metadata:
+            // NetworkVarNames: m_PlayerDamager (CHandle<CCSPlayerPawnBase>)
+            // NetworkVarNames: m_PlayerRecipient (CHandle<CCSPlayerPawnBase>)
+            // NetworkVarNames: m_hPlayerControllerDamager (CHandle<CCSPlayerController>)
+            // NetworkVarNames: m_hPlayerControllerRecipient (CHandle<CCSPlayerController>)
+            // NetworkVarNames: m_szPlayerDamagerName (CUtlString)
+            // NetworkVarNames: m_szPlayerRecipientName (CUtlString)
+            // NetworkVarNames: m_DamagerXuid (uint64)
+            // NetworkVarNames: m_RecipientXuid (uint64)
+            // NetworkVarNames: m_iDamage (int)
+            // NetworkVarNames: m_iActualHealthRemoved (int)
+            // NetworkVarNames: m_iNumHits (int)
+            // NetworkVarNames: m_iLastBulletUpdate (int)
+            // NetworkVarNames: m_bIsOtherEnemy (bool)
+            // NetworkVarNames: m_killType (EKillTypes_t)
+            pub mod CDamageRecord {
+                pub const m_PlayerDamager: usize = 0x28; // CHandle<C_CSPlayerPawnBase>
+                pub const m_PlayerRecipient: usize = 0x2C; // CHandle<C_CSPlayerPawnBase>
+                pub const m_hPlayerControllerDamager: usize = 0x30; // CHandle<CCSPlayerController>
+                pub const m_hPlayerControllerRecipient: usize = 0x34; // CHandle<CCSPlayerController>
+                pub const m_szPlayerDamagerName: usize = 0x38; // CUtlString
+                pub const m_szPlayerRecipientName: usize = 0x40; // CUtlString
+                pub const m_DamagerXuid: usize = 0x48; // uint64
+                pub const m_RecipientXuid: usize = 0x50; // uint64
+                pub const m_iDamage: usize = 0x58; // int32
+                pub const m_iActualHealthRemoved: usize = 0x5C; // int32
+                pub const m_iNumHits: usize = 0x60; // int32
+                pub const m_iLastBulletUpdate: usize = 0x64; // int32
+                pub const m_bIsOtherEnemy: usize = 0x68; // bool
+                pub const m_killType: usize = 0x69; // EKillTypes_t
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_nSendUpdate (int)
+            // NetworkVarNames: m_DamageList (CDamageRecord)
+            pub mod CCSPlayerController_DamageServices {
+                pub const m_nSendUpdate: usize = 0x40; // int32
+                pub const m_DamageList: usize = 0x48; // C_UtlVectorEmbeddedNetworkVar<CDamageRecord>
+            }
+            // Parent: None
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_iAccount (int)
+            // NetworkVarNames: m_iStartAccount (int)
+            // NetworkVarNames: m_iTotalCashSpent (int)
+            // NetworkVarNames: m_iCashSpentThisRound (int)
+            pub mod CCSPlayerController_InGameMoneyServices {
+                pub const m_iAccount: usize = 0x40; // int32
+                pub const m_iStartAccount: usize = 0x44; // int32
+                pub const m_iTotalCashSpent: usize = 0x48; // int32
+                pub const m_iCashSpentThisRound: usize = 0x4C; // int32
+                pub const m_nPreviousAccount: usize = 0x50; // int32
+            }
+            // Parent: None
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_unMusicID (item_definition_index_t)
+            // NetworkVarNames: m_rank (MedalRank_t)
+            // NetworkVarNames: m_nPersonaDataPublicLevel (int)
+            // NetworkVarNames: m_nPersonaDataPublicCommendsLeader (int)
+            // NetworkVarNames: m_nPersonaDataPublicCommendsTeacher (int)
+            // NetworkVarNames: m_nPersonaDataPublicCommendsFriendly (int)
+            // NetworkVarNames: m_nPersonaDataXpTrailLevel (int)
+            // NetworkVarNames: m_vecServerAuthoritativeWeaponSlots (ServerAuthoritativeWeaponSlot_t)
+            pub mod CCSPlayerController_InventoryServices {
+                pub const m_unMusicID: usize = 0x40; // uint16
+                pub const m_rank: usize = 0x44; // MedalRank_t[6]
+                pub const m_nPersonaDataPublicLevel: usize = 0x5C; // int32
+                pub const m_nPersonaDataPublicCommendsLeader: usize = 0x60; // int32
+                pub const m_nPersonaDataPublicCommendsTeacher: usize = 0x64; // int32
+                pub const m_nPersonaDataPublicCommendsFriendly: usize = 0x68; // int32
+                pub const m_nPersonaDataXpTrailLevel: usize = 0x6C; // int32
+                pub const m_vecServerAuthoritativeWeaponSlots: usize = 0x70; // C_UtlVectorEmbeddedNetworkVar<ServerAuthoritativeWeaponSlot_t>
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod CCSWeaponBaseVDataAPI {
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod CCSWeaponBaseAPI {
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            // MPropertyElementNameFn
+            pub mod CompositeMaterialMatchFilter_t {
+                pub const m_nCompositeMaterialMatchFilterType: usize = 0x0; // CompositeMaterialMatchFilterType_t
+                pub const m_strMatchFilter: usize = 0x8; // CUtlString
+                pub const m_strMatchValue: usize = 0x10; // CUtlString
+                pub const m_bPassWhenTrue: usize = 0x18; // bool
+            }
+            // Parent: None
+            // Fields count: 34
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            // MPropertyElementNameFn
+            pub mod CompositeMaterialInputLooseVariable_t {
+                pub const m_strName: usize = 0x0; // CUtlString
+                pub const m_bExposeExternally: usize = 0x8; // bool
+                pub const m_strExposedFriendlyName: usize = 0x10; // CUtlString
+                pub const m_strExposedFriendlyGroupName: usize = 0x18; // CUtlString
+                pub const m_bExposedVariableIsFixedRange: usize = 0x20; // bool
+                pub const m_strExposedVisibleWhenTrue: usize = 0x28; // CUtlString
+                pub const m_strExposedHiddenWhenTrue: usize = 0x30; // CUtlString
+                pub const m_nVariableType: usize = 0x38; // CompositeMaterialInputLooseVariableType_t
+                pub const m_bValueBoolean: usize = 0x3C; // bool
+                pub const m_nValueIntX: usize = 0x40; // int32
+                pub const m_nValueIntY: usize = 0x44; // int32
+                pub const m_nValueIntZ: usize = 0x48; // int32
+                pub const m_nValueIntW: usize = 0x4C; // int32
+                pub const m_bHasFloatBounds: usize = 0x50; // bool
+                pub const m_flValueFloatX: usize = 0x54; // float32
+                pub const m_flValueFloatX_Min: usize = 0x58; // float32
+                pub const m_flValueFloatX_Max: usize = 0x5C; // float32
+                pub const m_flValueFloatY: usize = 0x60; // float32
+                pub const m_flValueFloatY_Min: usize = 0x64; // float32
+                pub const m_flValueFloatY_Max: usize = 0x68; // float32
+                pub const m_flValueFloatZ: usize = 0x6C; // float32
+                pub const m_flValueFloatZ_Min: usize = 0x70; // float32
+                pub const m_flValueFloatZ_Max: usize = 0x74; // float32
+                pub const m_flValueFloatW: usize = 0x78; // float32
+                pub const m_flValueFloatW_Min: usize = 0x7C; // float32
+                pub const m_flValueFloatW_Max: usize = 0x80; // float32
+                pub const m_cValueColor4: usize = 0x84; // Color
+                pub const m_nValueSystemVar: usize = 0x88; // CompositeMaterialVarSystemVar_t
+                pub const m_strResourceMaterial: usize = 0x90; // CResourceName
+                pub const m_strTextureContentAssetPath: usize = 0x170; // CUtlString
+                pub const m_strTextureRuntimeResourcePath: usize = 0x178; // CResourceName
+                pub const m_strTextureCompilationVtexTemplate: usize = 0x258; // CUtlString
+                pub const m_nTextureType: usize = 0x260; // CompositeMaterialInputTextureType_t
+                pub const m_strString: usize = 0x268; // CUtlString
+            }
+            // Parent: None
+            // Fields count: 5
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            // MPropertyElementNameFn
+            pub mod CompMatMutatorCondition_t {
+                pub const m_nMutatorCondition: usize = 0x0; // CompMatPropertyMutatorConditionType_t
+                pub const m_strMutatorConditionContainerName: usize = 0x8; // CUtlString
+                pub const m_strMutatorConditionContainerVarName: usize = 0x10; // CUtlString
+                pub const m_strMutatorConditionContainerVarValue: usize = 0x18; // CUtlString
+                pub const m_bPassWhenTrue: usize = 0x20; // bool
+            }
+            // Parent: None
+            // Fields count: 28
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            // MPropertyElementNameFn
+            pub mod CompMatPropertyMutator_t {
+                pub const m_bEnabled: usize = 0x0; // bool
+                pub const m_nMutatorCommandType: usize = 0x4; // CompMatPropertyMutatorType_t
+                pub const m_strInitWith_Container: usize = 0x8; // CUtlString
+                pub const m_strCopyProperty_InputContainerSrc: usize = 0x10; // CUtlString
+                pub const m_strCopyProperty_InputContainerProperty: usize = 0x18; // CUtlString
+                pub const m_strCopyProperty_TargetProperty: usize = 0x20; // CUtlString
+                pub const m_strRandomRollInputVars_SeedInputVar: usize = 0x28; // CUtlString
+                pub const m_vecRandomRollInputVars_InputVarsToRoll: usize = 0x30; // CUtlVector<CUtlString>
+                pub const m_strCopyMatchingKeys_InputContainerSrc: usize = 0x48; // CUtlString
+                pub const m_strCopyKeysWithSuffix_InputContainerSrc: usize = 0x50; // CUtlString
+                pub const m_strCopyKeysWithSuffix_FindSuffix: usize = 0x58; // CUtlString
+                pub const m_strCopyKeysWithSuffix_ReplaceSuffix: usize = 0x60; // CUtlString
+                pub const m_nSetValue_Value: usize = 0x68; // CompositeMaterialInputLooseVariable_t
+                pub const m_strGenerateTexture_TargetParam: usize = 0x2D8; // CUtlString
+                pub const m_strGenerateTexture_InitialContainer: usize = 0x2E0; // CUtlString
+                pub const m_nResolution: usize = 0x2E8; // int32
+                pub const m_bIsScratchTarget: usize = 0x2EC; // bool
+                pub const m_bSplatDebugInfo: usize = 0x2ED; // bool
+                pub const m_bCaptureInRenderDoc: usize = 0x2EE; // bool
+                pub const m_vecTexGenInstructions: usize = 0x2F0; // CUtlVector<CompMatPropertyMutator_t>
+                pub const m_vecConditionalMutators: usize = 0x308; // CUtlVector<CompMatPropertyMutator_t>
+                pub const m_strPopInputQueue_Container: usize = 0x320; // CUtlString
+                pub const m_strDrawText_InputContainerSrc: usize = 0x328; // CUtlString
+                pub const m_strDrawText_InputContainerProperty: usize = 0x330; // CUtlString
+                pub const m_vecDrawText_Position: usize = 0x338; // Vector2D
+                pub const m_colDrawText_Color: usize = 0x340; // Color
+                pub const m_strDrawText_Font: usize = 0x348; // CUtlString
+                pub const m_vecConditions: usize = 0x350; // CUtlVector<CompMatMutatorCondition_t>
+            }
+            // Parent: None
+            // Fields count: 8
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            // MPropertyElementNameFn
+            pub mod CompositeMaterialInputContainer_t {
+                pub const m_bEnabled: usize = 0x0; // bool
+                pub const m_nCompositeMaterialInputContainerSourceType: usize = 0x4; // CompositeMaterialInputContainerSourceType_t
+                pub const m_strSpecificContainerMaterial: usize = 0x8; // CResourceName
+                pub const m_strAttrName: usize = 0xE8; // CUtlString
+                pub const m_strAlias: usize = 0xF0; // CUtlString
+                pub const m_vecLooseVariables: usize = 0xF8; // CUtlVector<CompositeMaterialInputLooseVariable_t>
+                pub const m_strAttrNameForVar: usize = 0x110; // CUtlString
+                pub const m_bExposeExternally: usize = 0x118; // bool
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            // MPropertyElementNameFn
+            pub mod CompositeMaterialAssemblyProcedure_t {
+                pub const m_vecCompMatIncludes: usize = 0x0; // CUtlVector<CResourceName>
+                pub const m_vecMatchFilters: usize = 0x18; // CUtlVector<CompositeMaterialMatchFilter_t>
+                pub const m_vecCompositeInputContainers: usize = 0x30; // CUtlVector<CompositeMaterialInputContainer_t>
+                pub const m_vecPropertyMutators: usize = 0x48; // CUtlVector<CompMatPropertyMutator_t>
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // MPropertyElementNameFn
+            pub mod GeneratedTextureHandle_t {
+                pub const m_strBitmapName: usize = 0x0; // CUtlString
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // MPropertyElementNameFn
+            pub mod CompositeMaterial_t {
+                pub const m_TargetKVs: usize = 0x8; // KeyValues3
+                pub const m_PreGenerationKVs: usize = 0x18; // KeyValues3
+                pub const m_FinalKVs: usize = 0x28; // KeyValues3
+                pub const m_vecGeneratedTextures: usize = 0x40; // CUtlVector<GeneratedTextureHandle_t>
+            }
+            // Parent: None
+            // Fields count: 8
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            pub mod CompositeMaterialEditorPoint_t {
+                pub const m_ModelName: usize = 0x0; // CResourceName
+                pub const m_nSequenceIndex: usize = 0xE0; // int32
+                pub const m_flCycle: usize = 0xE4; // float32
+                pub const m_KVModelStateChoices: usize = 0xE8; // KeyValues3
+                pub const m_bEnableChildModel: usize = 0xF8; // bool
+                pub const m_ChildModelName: usize = 0x100; // CResourceName
+                pub const m_vecCompositeMaterialAssemblyProcedures: usize = 0x1E0; // CUtlVector<CompositeMaterialAssemblyProcedure_t>
+                pub const m_vecCompositeMaterials: usize = 0x1F8; // CUtlVector<CompositeMaterial_t>
+            }
+            // Parent: None
+            // Fields count: 3
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            pub mod CCompositeMaterialEditorDoc {
+                pub const m_nVersion: usize = 0x8; // int32
+                pub const m_Points: usize = 0x10; // CUtlVector<CompositeMaterialEditorPoint_t>
+                pub const m_KVthumbnail: usize = 0x28; // KeyValues3
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod C_CSObserverPawnAPI {
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MPulseProvideFeatureTag
+            // MPulseLibraryBindings
+            pub mod C_CSPlayerPawnAPI {
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 7
+            //
+            // Metadata:
+            // NetworkVarNames: m_iActiveIssueIndex (int)
+            // NetworkVarNames: m_iOnlyTeamToVote (int)
+            // NetworkVarNames: m_nVoteOptionCount (int)
+            // NetworkVarNames: m_nPotentialVotes (int)
+            // NetworkVarNames: m_bIsYesNoVote (bool)
+            pub mod C_VoteController {
+                pub const m_iActiveIssueIndex: usize = 0x560; // int32
+                pub const m_iOnlyTeamToVote: usize = 0x564; // int32
+                pub const m_nVoteOptionCount: usize = 0x568; // int32[5]
+                pub const m_nPotentialVotes: usize = 0x57C; // int32
+                pub const m_bVotesDirty: usize = 0x580; // bool
+                pub const m_bTypeDirty: usize = 0x581; // bool
+                pub const m_bIsYesNoVote: usize = 0x582; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 17
+            //
+            // Metadata:
+            // NetworkVarNames: m_nDraftType (int)
+            // NetworkVarNames: m_nTeamWinningCoinToss (int)
+            // NetworkVarNames: m_nTeamWithFirstChoice (int)
+            // NetworkVarNames: m_nVoteMapIdsList (int)
+            // NetworkVarNames: m_nAccountIDs (int)
+            // NetworkVarNames: m_nMapId0 (int)
+            // NetworkVarNames: m_nMapId1 (int)
+            // NetworkVarNames: m_nMapId2 (int)
+            // NetworkVarNames: m_nMapId3 (int)
+            // NetworkVarNames: m_nMapId4 (int)
+            // NetworkVarNames: m_nMapId5 (int)
+            // NetworkVarNames: m_nStartingSide0 (int)
+            // NetworkVarNames: m_nCurrentPhase (int)
+            // NetworkVarNames: m_nPhaseStartTick (int)
+            // NetworkVarNames: m_nPhaseDurationTicks (int)
+            pub mod C_MapVetoPickController {
+                pub const m_nDraftType: usize = 0x560; // int32
+                pub const m_nTeamWinningCoinToss: usize = 0x564; // int32
+                pub const m_nTeamWithFirstChoice: usize = 0x568; // int32[64]
+                pub const m_nVoteMapIdsList: usize = 0x668; // int32[7]
+                pub const m_nAccountIDs: usize = 0x684; // int32[64]
+                pub const m_nMapId0: usize = 0x784; // int32[64]
+                pub const m_nMapId1: usize = 0x884; // int32[64]
+                pub const m_nMapId2: usize = 0x984; // int32[64]
+                pub const m_nMapId3: usize = 0xA84; // int32[64]
+                pub const m_nMapId4: usize = 0xB84; // int32[64]
+                pub const m_nMapId5: usize = 0xC84; // int32[64]
+                pub const m_nStartingSide0: usize = 0xD84; // int32[64]
+                pub const m_nCurrentPhase: usize = 0xE84; // int32
+                pub const m_nPhaseStartTick: usize = 0xE88; // int32
+                pub const m_nPhaseDurationTicks: usize = 0xE8C; // int32
+                pub const m_nPostDataUpdateTick: usize = 0xE90; // int32
+                pub const m_bDisabledHud: usize = 0xE94; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 24
+            //
+            // Metadata:
+            // NetworkVarNames: m_Color (Color)
+            // NetworkVarNames: m_flBrightness (float)
+            // NetworkVarNames: m_hCubemapTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_bCustomCubemapTexture (bool)
+            // NetworkVarNames: m_hLightProbeTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_hLightProbeDirectLightIndicesTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_hLightProbeDirectLightScalarsTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_hLightProbeDirectLightShadowsTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_vBoxMins (Vector)
+            // NetworkVarNames: m_vBoxMaxs (Vector)
+            // NetworkVarNames: m_bMoveable (bool)
+            // NetworkVarNames: m_nHandshake (int)
+            // NetworkVarNames: m_nEnvCubeMapArrayIndex (int)
+            // NetworkVarNames: m_nPriority (int)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_flEdgeFadeDist (float)
+            // NetworkVarNames: m_vEdgeFadeDists (Vector)
+            // NetworkVarNames: m_nLightProbeSizeX (int)
+            // NetworkVarNames: m_nLightProbeSizeY (int)
+            // NetworkVarNames: m_nLightProbeSizeZ (int)
+            // NetworkVarNames: m_nLightProbeAtlasX (int)
+            // NetworkVarNames: m_nLightProbeAtlasY (int)
+            // NetworkVarNames: m_nLightProbeAtlasZ (int)
+            // NetworkVarNames: m_bEnabled (bool)
+            pub mod C_EnvCombinedLightProbeVolume {
+                pub const m_Color: usize = 0x15A8; // Color
+                pub const m_flBrightness: usize = 0x15AC; // float32
+                pub const m_hCubemapTexture: usize = 0x15B0; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_bCustomCubemapTexture: usize = 0x15B8; // bool
+                pub const m_hLightProbeTexture: usize = 0x15C0; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_hLightProbeDirectLightIndicesTexture: usize = 0x15C8; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_hLightProbeDirectLightScalarsTexture: usize = 0x15D0; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_hLightProbeDirectLightShadowsTexture: usize = 0x15D8; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_vBoxMins: usize = 0x15E0; // 
+                pub const m_vBoxMaxs: usize = 0x15EC; // 
+                pub const m_bMoveable: usize = 0x15F8; // bool
+                pub const m_nHandshake: usize = 0x15FC; // int32
+                pub const m_nEnvCubeMapArrayIndex: usize = 0x1600; // int32
+                pub const m_nPriority: usize = 0x1604; // int32
+                pub const m_bStartDisabled: usize = 0x1608; // bool
+                pub const m_flEdgeFadeDist: usize = 0x160C; // float32
+                pub const m_vEdgeFadeDists: usize = 0x1610; // 
+                pub const m_nLightProbeSizeX: usize = 0x161C; // int32
+                pub const m_nLightProbeSizeY: usize = 0x1620; // int32
+                pub const m_nLightProbeSizeZ: usize = 0x1624; // int32
+                pub const m_nLightProbeAtlasX: usize = 0x1628; // int32
+                pub const m_nLightProbeAtlasY: usize = 0x162C; // int32
+                pub const m_nLightProbeAtlasZ: usize = 0x1630; // int32
+                pub const m_bEnabled: usize = 0x1649; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 18
+            //
+            // Metadata:
+            // NetworkVarNames: m_hCubemapTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_bCustomCubemapTexture (bool)
+            // NetworkVarNames: m_flInfluenceRadius (float)
+            // NetworkVarNames: m_vBoxProjectMins (Vector)
+            // NetworkVarNames: m_vBoxProjectMaxs (Vector)
+            // NetworkVarNames: m_bMoveable (bool)
+            // NetworkVarNames: m_nHandshake (int)
+            // NetworkVarNames: m_nEnvCubeMapArrayIndex (int)
+            // NetworkVarNames: m_nPriority (int)
+            // NetworkVarNames: m_flEdgeFadeDist (float)
+            // NetworkVarNames: m_vEdgeFadeDists (Vector)
+            // NetworkVarNames: m_flDiffuseScale (float)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_bDefaultEnvMap (bool)
+            // NetworkVarNames: m_bDefaultSpecEnvMap (bool)
+            // NetworkVarNames: m_bIndoorCubeMap (bool)
+            // NetworkVarNames: m_bCopyDiffuseFromDefaultCubemap (bool)
+            // NetworkVarNames: m_bEnabled (bool)
+            pub mod C_EnvCubemap {
+                pub const m_hCubemapTexture: usize = 0x5D0; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_bCustomCubemapTexture: usize = 0x5D8; // bool
+                pub const m_flInfluenceRadius: usize = 0x5DC; // float32
+                pub const m_vBoxProjectMins: usize = 0x5E0; // 
+                pub const m_vBoxProjectMaxs: usize = 0x5EC; // 
+                pub const m_bMoveable: usize = 0x5F8; // bool
+                pub const m_nHandshake: usize = 0x5FC; // int32
+                pub const m_nEnvCubeMapArrayIndex: usize = 0x600; // int32
+                pub const m_nPriority: usize = 0x604; // int32
+                pub const m_flEdgeFadeDist: usize = 0x608; // float32
+                pub const m_vEdgeFadeDists: usize = 0x60C; // 
+                pub const m_flDiffuseScale: usize = 0x618; // float32
+                pub const m_bStartDisabled: usize = 0x61C; // bool
+                pub const m_bDefaultEnvMap: usize = 0x61D; // bool
+                pub const m_bDefaultSpecEnvMap: usize = 0x61E; // bool
+                pub const m_bIndoorCubeMap: usize = 0x61F; // bool
+                pub const m_bCopyDiffuseFromDefaultCubemap: usize = 0x620; // bool
+                pub const m_bEnabled: usize = 0x630; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 18
+            //
+            // Metadata:
+            // NetworkVarNames: m_flEndDistance (float)
+            // NetworkVarNames: m_flStartDistance (float)
+            // NetworkVarNames: m_flFogFalloffExponent (float)
+            // NetworkVarNames: m_bHeightFogEnabled (bool)
+            // NetworkVarNames: m_flFogHeightWidth (float)
+            // NetworkVarNames: m_flFogHeightEnd (float)
+            // NetworkVarNames: m_flFogHeightStart (float)
+            // NetworkVarNames: m_flFogHeightExponent (float)
+            // NetworkVarNames: m_flLODBias (float)
+            // NetworkVarNames: m_bActive (bool)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_flFogMaxOpacity (float)
+            // NetworkVarNames: m_nCubemapSourceType (int)
+            // NetworkVarNames: m_hSkyMaterial (HMaterialStrong)
+            // NetworkVarNames: m_iszSkyEntity (string_t)
+            // NetworkVarNames: m_hFogCubemapTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_bHasHeightFogEnd (bool)
+            pub mod C_EnvCubemapFog {
+                pub const m_flEndDistance: usize = 0x550; // float32
+                pub const m_flStartDistance: usize = 0x554; // float32
+                pub const m_flFogFalloffExponent: usize = 0x558; // float32
+                pub const m_bHeightFogEnabled: usize = 0x55C; // bool
+                pub const m_flFogHeightWidth: usize = 0x560; // float32
+                pub const m_flFogHeightEnd: usize = 0x564; // float32
+                pub const m_flFogHeightStart: usize = 0x568; // float32
+                pub const m_flFogHeightExponent: usize = 0x56C; // float32
+                pub const m_flLODBias: usize = 0x570; // float32
+                pub const m_bActive: usize = 0x574; // bool
+                pub const m_bStartDisabled: usize = 0x575; // bool
+                pub const m_flFogMaxOpacity: usize = 0x578; // float32
+                pub const m_nCubemapSourceType: usize = 0x57C; // int32
+                pub const m_hSkyMaterial: usize = 0x580; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_iszSkyEntity: usize = 0x588; // CUtlSymbolLarge
+                pub const m_hFogCubemapTexture: usize = 0x590; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_bHasHeightFogEnd: usize = 0x598; // bool
+                pub const m_bFirstTime: usize = 0x599; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 16
+            //
+            // Metadata:
+            // NetworkVarNames: m_hGradientFogTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_flFogStartDistance (float)
+            // NetworkVarNames: m_flFogEndDistance (float)
+            // NetworkVarNames: m_bHeightFogEnabled (bool)
+            // NetworkVarNames: m_flFogStartHeight (float)
+            // NetworkVarNames: m_flFogEndHeight (float)
+            // NetworkVarNames: m_flFarZ (float)
+            // NetworkVarNames: m_flFogMaxOpacity (float)
+            // NetworkVarNames: m_flFogFalloffExponent (float)
+            // NetworkVarNames: m_flFogVerticalExponent (float)
+            // NetworkVarNames: m_fogColor (Color)
+            // NetworkVarNames: m_flFogStrength (float)
+            // NetworkVarNames: m_flFadeTime (float)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_bIsEnabled (bool)
+            pub mod C_GradientFog {
+                pub const m_hGradientFogTexture: usize = 0x550; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_flFogStartDistance: usize = 0x558; // float32
+                pub const m_flFogEndDistance: usize = 0x55C; // float32
+                pub const m_bHeightFogEnabled: usize = 0x560; // bool
+                pub const m_flFogStartHeight: usize = 0x564; // float32
+                pub const m_flFogEndHeight: usize = 0x568; // float32
+                pub const m_flFarZ: usize = 0x56C; // float32
+                pub const m_flFogMaxOpacity: usize = 0x570; // float32
+                pub const m_flFogFalloffExponent: usize = 0x574; // float32
+                pub const m_flFogVerticalExponent: usize = 0x578; // float32
+                pub const m_fogColor: usize = 0x57C; // Color
+                pub const m_flFogStrength: usize = 0x580; // float32
+                pub const m_flFadeTime: usize = 0x584; // float32
+                pub const m_bStartDisabled: usize = 0x588; // bool
+                pub const m_bIsEnabled: usize = 0x589; // bool
+                pub const m_bGradientFogNeedsTextures: usize = 0x58A; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 17
+            //
+            // Metadata:
+            // NetworkVarNames: m_hLightProbeTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_hLightProbeDirectLightIndicesTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_hLightProbeDirectLightScalarsTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_hLightProbeDirectLightShadowsTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_vBoxMins (Vector)
+            // NetworkVarNames: m_vBoxMaxs (Vector)
+            // NetworkVarNames: m_bMoveable (bool)
+            // NetworkVarNames: m_nHandshake (int)
+            // NetworkVarNames: m_nPriority (int)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_nLightProbeSizeX (int)
+            // NetworkVarNames: m_nLightProbeSizeY (int)
+            // NetworkVarNames: m_nLightProbeSizeZ (int)
+            // NetworkVarNames: m_nLightProbeAtlasX (int)
+            // NetworkVarNames: m_nLightProbeAtlasY (int)
+            // NetworkVarNames: m_nLightProbeAtlasZ (int)
+            // NetworkVarNames: m_bEnabled (bool)
+            pub mod C_EnvLightProbeVolume {
+                pub const m_hLightProbeTexture: usize = 0x1528; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_hLightProbeDirectLightIndicesTexture: usize = 0x1530; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_hLightProbeDirectLightScalarsTexture: usize = 0x1538; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_hLightProbeDirectLightShadowsTexture: usize = 0x1540; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_vBoxMins: usize = 0x1548; // 
+                pub const m_vBoxMaxs: usize = 0x1554; // 
+                pub const m_bMoveable: usize = 0x1560; // bool
+                pub const m_nHandshake: usize = 0x1564; // int32
+                pub const m_nPriority: usize = 0x1568; // int32
+                pub const m_bStartDisabled: usize = 0x156C; // bool
+                pub const m_nLightProbeSizeX: usize = 0x1570; // int32
+                pub const m_nLightProbeSizeY: usize = 0x1574; // int32
+                pub const m_nLightProbeSizeZ: usize = 0x1578; // int32
+                pub const m_nLightProbeAtlasX: usize = 0x157C; // int32
+                pub const m_nLightProbeAtlasY: usize = 0x1580; // int32
+                pub const m_nLightProbeAtlasZ: usize = 0x1584; // int32
+                pub const m_bEnabled: usize = 0x1591; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 6
+            //
+            // Metadata:
+            // NetworkVarNames: m_flVisibilityStrength (float)
+            // NetworkVarNames: m_flFogDistanceMultiplier (float)
+            // NetworkVarNames: m_flFogMaxDensityMultiplier (float)
+            // NetworkVarNames: m_flFadeTime (float)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_bIsEnabled (bool)
+            pub mod C_PlayerVisibility {
+                pub const m_flVisibilityStrength: usize = 0x550; // float32
+                pub const m_flFogDistanceMultiplier: usize = 0x554; // float32
+                pub const m_flFogMaxDensityMultiplier: usize = 0x558; // float32
+                pub const m_flFadeTime: usize = 0x55C; // float32
+                pub const m_bStartDisabled: usize = 0x560; // bool
+                pub const m_bIsEnabled: usize = 0x561; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_flAutoExposureMin (float)
+            // NetworkVarNames: m_flAutoExposureMax (float)
+            // NetworkVarNames: m_flTonemapPercentTarget (float)
+            // NetworkVarNames: m_flTonemapPercentBrightPixels (float)
+            // NetworkVarNames: m_flTonemapMinAvgLum (float)
+            // NetworkVarNames: m_flExposureAdaptationSpeedUp (float)
+            // NetworkVarNames: m_flExposureAdaptationSpeedDown (float)
+            // NetworkVarNames: m_flTonemapEVSmoothingRange (float)
+            pub mod C_TonemapController2 {
+                pub const m_flAutoExposureMin: usize = 0x550; // float32
+                pub const m_flAutoExposureMax: usize = 0x554; // float32
+                pub const m_flTonemapPercentTarget: usize = 0x558; // float32
+                pub const m_flTonemapPercentBrightPixels: usize = 0x55C; // float32
+                pub const m_flTonemapMinAvgLum: usize = 0x560; // float32
+                pub const m_flExposureAdaptationSpeedUp: usize = 0x564; // float32
+                pub const m_flExposureAdaptationSpeedDown: usize = 0x568; // float32
+                pub const m_flTonemapEVSmoothingRange: usize = 0x56C; // float32
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 28
+            //
+            // Metadata:
+            // NetworkVarNames: m_flScattering (float)
+            // NetworkVarNames: m_flAnisotropy (float)
+            // NetworkVarNames: m_flFadeSpeed (float)
+            // NetworkVarNames: m_flDrawDistance (float)
+            // NetworkVarNames: m_flFadeInStart (float)
+            // NetworkVarNames: m_flFadeInEnd (float)
+            // NetworkVarNames: m_flIndirectStrength (float)
+            // NetworkVarNames: m_nIndirectTextureDimX (int)
+            // NetworkVarNames: m_nIndirectTextureDimY (int)
+            // NetworkVarNames: m_nIndirectTextureDimZ (int)
+            // NetworkVarNames: m_vBoxMins (Vector)
+            // NetworkVarNames: m_vBoxMaxs (Vector)
+            // NetworkVarNames: m_bActive (bool)
+            // NetworkVarNames: m_flStartAnisoTime (GameTime_t)
+            // NetworkVarNames: m_flStartScatterTime (GameTime_t)
+            // NetworkVarNames: m_flStartDrawDistanceTime (GameTime_t)
+            // NetworkVarNames: m_flStartAnisotropy (float)
+            // NetworkVarNames: m_flStartScattering (float)
+            // NetworkVarNames: m_flStartDrawDistance (float)
+            // NetworkVarNames: m_flDefaultAnisotropy (float)
+            // NetworkVarNames: m_flDefaultScattering (float)
+            // NetworkVarNames: m_flDefaultDrawDistance (float)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_bEnableIndirect (bool)
+            // NetworkVarNames: m_bIsMaster (bool)
+            // NetworkVarNames: m_hFogIndirectTexture (HRenderTextureStrong)
+            // NetworkVarNames: m_nForceRefreshCount (int)
+            pub mod C_EnvVolumetricFogController {
+                pub const m_flScattering: usize = 0x550; // float32
+                pub const m_flAnisotropy: usize = 0x554; // float32
+                pub const m_flFadeSpeed: usize = 0x558; // float32
+                pub const m_flDrawDistance: usize = 0x55C; // float32
+                pub const m_flFadeInStart: usize = 0x560; // float32
+                pub const m_flFadeInEnd: usize = 0x564; // float32
+                pub const m_flIndirectStrength: usize = 0x568; // float32
+                pub const m_nIndirectTextureDimX: usize = 0x56C; // int32
+                pub const m_nIndirectTextureDimY: usize = 0x570; // int32
+                pub const m_nIndirectTextureDimZ: usize = 0x574; // int32
+                pub const m_vBoxMins: usize = 0x578; // 
+                pub const m_vBoxMaxs: usize = 0x584; // 
+                pub const m_bActive: usize = 0x590; // bool
+                pub const m_flStartAnisoTime: usize = 0x594; // GameTime_t
+                pub const m_flStartScatterTime: usize = 0x598; // GameTime_t
+                pub const m_flStartDrawDistanceTime: usize = 0x59C; // GameTime_t
+                pub const m_flStartAnisotropy: usize = 0x5A0; // float32
+                pub const m_flStartScattering: usize = 0x5A4; // float32
+                pub const m_flStartDrawDistance: usize = 0x5A8; // float32
+                pub const m_flDefaultAnisotropy: usize = 0x5AC; // float32
+                pub const m_flDefaultScattering: usize = 0x5B0; // float32
+                pub const m_flDefaultDrawDistance: usize = 0x5B4; // float32
+                pub const m_bStartDisabled: usize = 0x5B8; // bool
+                pub const m_bEnableIndirect: usize = 0x5B9; // bool
+                pub const m_bIsMaster: usize = 0x5BA; // bool
+                pub const m_hFogIndirectTexture: usize = 0x5C0; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_nForceRefreshCount: usize = 0x5C8; // int32
+                pub const m_bFirstTime: usize = 0x5CC; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 7
+            //
+            // Metadata:
+            // NetworkVarNames: m_bActive (bool)
+            // NetworkVarNames: m_vBoxMins (Vector)
+            // NetworkVarNames: m_vBoxMaxs (Vector)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_flStrength (float)
+            // NetworkVarNames: m_nFalloffShape (int)
+            // NetworkVarNames: m_flFalloffExponent (float)
+            pub mod C_EnvVolumetricFogVolume {
+                pub const m_bActive: usize = 0x550; // bool
+                pub const m_vBoxMins: usize = 0x554; // 
+                pub const m_vBoxMaxs: usize = 0x560; // 
+                pub const m_bStartDisabled: usize = 0x56C; // bool
+                pub const m_flStrength: usize = 0x570; // float32
+                pub const m_nFalloffShape: usize = 0x574; // int32
+                pub const m_flFalloffExponent: usize = 0x578; // float32
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_fog (fogparams_t)
+            pub mod C_FogController {
+                pub const m_fog: usize = 0x550; // fogparams_t
+                pub const m_bUseAngles: usize = 0x5B8; // bool
+                pub const m_iChangedVariables: usize = 0x5BC; // int32
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_nMode (int)
+            // NetworkVarNames: m_vBoxSize (Vector)
+            // NetworkVarNames: m_bEnabled (bool)
+            pub mod C_InfoVisibilityBox {
+                pub const m_nMode: usize = 0x554; // int32
+                pub const m_vBoxSize: usize = 0x558; // 
+                pub const m_bEnabled: usize = 0x564; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_worldName (string_t)
+            // NetworkVarNames: m_layerName (string_t)
+            // NetworkVarNames: m_bWorldLayerVisible (bool)
+            // NetworkVarNames: m_bEntitiesSpawned (bool)
+            pub mod CInfoWorldLayer {
+                pub const m_pOutputOnEntitiesSpawned: usize = 0x550; // CEntityIOOutput
+                pub const m_worldName: usize = 0x578; // CUtlSymbolLarge
+                pub const m_layerName: usize = 0x580; // CUtlSymbolLarge
+                pub const m_bWorldLayerVisible: usize = 0x588; // bool
+                pub const m_bEntitiesSpawned: usize = 0x589; // bool
+                pub const m_bCreateAsChildSpawnGroup: usize = 0x58A; // bool
+                pub const m_hLayerSpawnGroup: usize = 0x58C; // uint32
+                pub const m_bWorldLayerActuallyVisible: usize = 0x590; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 25
+            //
+            // Metadata:
+            // NetworkVarNames: m_FOV (float)
+            // NetworkVarNames: m_Resolution (float)
+            // NetworkVarNames: m_bFogEnable (bool)
+            // NetworkVarNames: m_FogColor (Color)
+            // NetworkVarNames: m_flFogStart (float)
+            // NetworkVarNames: m_flFogEnd (float)
+            // NetworkVarNames: m_flFogMaxDensity (float)
+            // NetworkVarNames: m_bActive (bool)
+            // NetworkVarNames: m_bUseScreenAspectRatio (bool)
+            // NetworkVarNames: m_flAspectRatio (float)
+            // NetworkVarNames: m_bNoSky (bool)
+            // NetworkVarNames: m_fBrightness (float)
+            // NetworkVarNames: m_flZFar (float)
+            // NetworkVarNames: m_flZNear (float)
+            // NetworkVarNames: m_bCanHLTVUse (bool)
+            // NetworkVarNames: m_bDofEnabled (bool)
+            // NetworkVarNames: m_flDofNearBlurry (float)
+            // NetworkVarNames: m_flDofNearCrisp (float)
+            // NetworkVarNames: m_flDofFarCrisp (float)
+            // NetworkVarNames: m_flDofFarBlurry (float)
+            // NetworkVarNames: m_flDofTiltToGround (float)
+            pub mod C_PointCamera {
+                pub const m_FOV: usize = 0x550; // float32
+                pub const m_Resolution: usize = 0x554; // float32
+                pub const m_bFogEnable: usize = 0x558; // bool
+                pub const m_FogColor: usize = 0x559; // Color
+                pub const m_flFogStart: usize = 0x560; // float32
+                pub const m_flFogEnd: usize = 0x564; // float32
+                pub const m_flFogMaxDensity: usize = 0x568; // float32
+                pub const m_bActive: usize = 0x56C; // bool
+                pub const m_bUseScreenAspectRatio: usize = 0x56D; // bool
+                pub const m_flAspectRatio: usize = 0x570; // float32
+                pub const m_bNoSky: usize = 0x574; // bool
+                pub const m_fBrightness: usize = 0x578; // float32
+                pub const m_flZFar: usize = 0x57C; // float32
+                pub const m_flZNear: usize = 0x580; // float32
+                pub const m_bCanHLTVUse: usize = 0x584; // bool
+                pub const m_bDofEnabled: usize = 0x585; // bool
+                pub const m_flDofNearBlurry: usize = 0x588; // float32
+                pub const m_flDofNearCrisp: usize = 0x58C; // float32
+                pub const m_flDofFarCrisp: usize = 0x590; // float32
+                pub const m_flDofFarBlurry: usize = 0x594; // float32
+                pub const m_flDofTiltToGround: usize = 0x598; // float32
+                pub const m_TargetFOV: usize = 0x59C; // float32
+                pub const m_DegreesPerSecond: usize = 0x5A0; // float32
+                pub const m_bIsOn: usize = 0x5A4; // bool
+                pub const m_pNext: usize = 0x5A8; // C_PointCamera*
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_bDisabled (bool)
+            // NetworkVarNames: m_iszSoundAreaType (string_t)
+            // NetworkVarNames: m_vPos (Vector)
+            pub mod C_SoundAreaEntityBase {
+                pub const m_bDisabled: usize = 0x550; // bool
+                pub const m_bWasEnabled: usize = 0x558; // bool
+                pub const m_iszSoundAreaType: usize = 0x560; // CUtlSymbolLarge
+                pub const m_vPos: usize = 0x568; // 
+            }
+            // Parent: C_SoundAreaEntityBase
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_flRadius (float)
+            pub mod C_SoundAreaEntitySphere {
+                pub const m_flRadius: usize = 0x578; // float32
+            }
+            // Parent: C_SoundAreaEntityBase
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_vMin (Vector)
+            // NetworkVarNames: m_vMax (Vector)
+            pub mod C_SoundAreaEntityOrientedBox {
+                pub const m_vMin: usize = 0x578; // 
+                pub const m_vMax: usize = 0x584; // 
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 4
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_aPlayerControllers (CHandle<CBasePlayerController>)
+            // NetworkVarNames: m_aPlayers (CHandle<C_BasePlayerPawn>)
+            // NetworkVarNames: m_iScore (int32)
+            // NetworkVarNames: m_szTeamname (char)
+            pub mod C_Team {
+                pub const m_aPlayerControllers: usize = 0x550; // C_NetworkUtlVectorBase<CHandle<CBasePlayerController>>
+                pub const m_aPlayers: usize = 0x568; // C_NetworkUtlVectorBase<CHandle<C_BasePlayerPawn>>
+                pub const m_iScore: usize = 0x580; // int32
+                pub const m_szTeamname: usize = 0x584; // char[129]
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 15
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkUserGroupProxy
+            // MNetworkUserGroupProxy
+            // MNetworkIncludeByUserGroup
+            // NetworkVarNames: m_nTickBase (uint32)
+            // NetworkVarNames: m_hPawn (CHandle<CBasePlayerPawn>)
+            // NetworkVarNames: m_iConnected (PlayerConnectedState)
+            // NetworkVarNames: m_iszPlayerName (char)
+            // NetworkVarNames: m_steamID (uint64)
+            // NetworkVarNames: m_iDesiredFOV (uint32)
+            // MNetworkReplayCompatField
+            pub mod CBasePlayerController {
+                pub const m_nFinalPredictedTick: usize = 0x558; // int32
+                pub const m_CommandContext: usize = 0x560; // C_CommandContext
+                pub const m_nInButtonsWhichAreToggles: usize = 0x5F8; // uint64
+                pub const m_nTickBase: usize = 0x600; // uint32
+                pub const m_hPawn: usize = 0x604; // CHandle<C_BasePlayerPawn>
+                pub const m_hPredictedPawn: usize = 0x608; // CHandle<C_BasePlayerPawn>
+                pub const m_nSplitScreenSlot: usize = 0x60C; // CSplitScreenSlot
+                pub const m_hSplitOwner: usize = 0x610; // CHandle<CBasePlayerController>
+                pub const m_hSplitScreenPlayers: usize = 0x618; // CUtlVector<CHandle<CBasePlayerController>>
+                pub const m_bIsHLTV: usize = 0x630; // bool
+                pub const m_iConnected: usize = 0x634; // PlayerConnectedState
+                pub const m_iszPlayerName: usize = 0x638; // char[128]
+                pub const m_steamID: usize = 0x6C0; // uint64
+                pub const m_bIsLocalPlayerController: usize = 0x6C8; // bool
+                pub const m_iDesiredFOV: usize = 0x6CC; // uint32
+            }
+            // Parent: None
+            // Fields count: 14
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            pub mod CBasePlayerVData {
+                pub const m_sModelName: usize = 0x28; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>>
+                pub const m_flHeadDamageMultiplier: usize = 0x108; // CSkillFloat
+                pub const m_flChestDamageMultiplier: usize = 0x118; // CSkillFloat
+                pub const m_flStomachDamageMultiplier: usize = 0x128; // CSkillFloat
+                pub const m_flArmDamageMultiplier: usize = 0x138; // CSkillFloat
+                pub const m_flLegDamageMultiplier: usize = 0x148; // CSkillFloat
+                pub const m_flHoldBreathTime: usize = 0x158; // float32
+                pub const m_flDrowningDamageInterval: usize = 0x15C; // float32
+                pub const m_nDrowningDamageInitial: usize = 0x160; // int32
+                pub const m_nDrowningDamageMax: usize = 0x164; // int32
+                pub const m_nWaterSpeed: usize = 0x168; // int32
+                pub const m_flUseRange: usize = 0x16C; // float32
+                pub const m_flUseAngleTolerance: usize = 0x170; // float32
+                pub const m_flCrouchTime: usize = 0x174; // float32
+            }
+            // Parent: None
+            // Fields count: 20
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            pub mod CBasePlayerWeaponVData {
+                pub const m_szWorldModel: usize = 0x28; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>>
+                pub const m_bBuiltRightHanded: usize = 0x108; // bool
+                pub const m_bAllowFlipping: usize = 0x109; // bool
+                pub const m_sMuzzleAttachment: usize = 0x110; // CUtlString
+                pub const m_szMuzzleFlashParticle: usize = 0x118; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_iFlags: usize = 0x1F8; // ItemFlagTypes_t
+                pub const m_nPrimaryAmmoType: usize = 0x1F9; // AmmoIndex_t
+                pub const m_nSecondaryAmmoType: usize = 0x1FA; // AmmoIndex_t
+                pub const m_iMaxClip1: usize = 0x1FC; // int32
+                pub const m_iMaxClip2: usize = 0x200; // int32
+                pub const m_iDefaultClip1: usize = 0x204; // int32
+                pub const m_iDefaultClip2: usize = 0x208; // int32
+                pub const m_iWeight: usize = 0x20C; // int32
+                pub const m_bAutoSwitchTo: usize = 0x210; // bool
+                pub const m_bAutoSwitchFrom: usize = 0x211; // bool
+                pub const m_iRumbleEffect: usize = 0x214; // RumbleEffect_t
+                pub const m_bLinkedCooldowns: usize = 0x218; // bool
+                pub const m_aShootSounds: usize = 0x220; // CUtlMap<WeaponSound_t,CSoundEventName>
+                pub const m_iSlot: usize = 0x240; // int32
+                pub const m_iPosition: usize = 0x244; // int32
+            }
+            // Parent: None
+            // Fields count: 13
+            //
+            // Metadata:
+            // NetworkVarNames: m_animGraphNetworkedVars (CAnimGraphNetworkedVariables)
+            // NetworkVarNames: m_hSequence (HSequence)
+            // NetworkVarNames: m_flSeqStartTime (GameTime_t)
+            // NetworkVarNames: m_flSeqFixedCycle (float)
+            // NetworkVarNames: m_nAnimLoopMode (AnimLoopMode_t)
+            pub mod CBaseAnimGraphController {
+                pub const m_animGraphNetworkedVars: usize = 0x18; // CAnimGraphNetworkedVariables
+                pub const m_bSequenceFinished: usize = 0x14A8; // bool
+                pub const m_flSoundSyncTime: usize = 0x14AC; // float32
+                pub const m_hSequence: usize = 0x14B0; // HSequence
+                pub const m_flSeqStartTime: usize = 0x14B4; // GameTime_t
+                pub const m_flSeqFixedCycle: usize = 0x14B8; // float32
+                pub const m_nAnimLoopMode: usize = 0x14BC; // AnimLoopMode_t
+                pub const m_flPlaybackRate: usize = 0x14C0; // CNetworkedQuantizedFloat
+                pub const m_nNotifyState: usize = 0x14CC; // SequenceFinishNotifyState_t
+                pub const m_bNetworkedAnimationInputsChanged: usize = 0x14CE; // bool
+                pub const m_bNetworkedSequenceChanged: usize = 0x14CF; // bool
+                pub const m_bLastUpdateSkipped: usize = 0x14D0; // bool
+                pub const m_flPrevAnimUpdateTime: usize = 0x14D4; // GameTime_t
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 31
+            //
+            // Metadata:
+            // NetworkVarNames: m_CRenderComponent (CRenderComponent::Storage_t)
+            // NetworkVarNames: m_CHitboxComponent (CHitboxComponent::Storage_t)
+            // NetworkVarNames: m_nRenderMode (RenderMode_t)
+            // NetworkVarNames: m_nRenderFX (RenderFx_t)
+            // NetworkVarNames: m_clrRender (Color)
+            // NetworkVarNames: m_vecRenderAttributes (EntityRenderAttribute_t)
+            // NetworkVarNames: m_bRenderToCubemaps (bool)
+            // NetworkVarNames: m_Collision (CCollisionProperty)
+            // NetworkVarNames: m_Glow (CGlowProperty)
+            // NetworkVarNames: m_flGlowBackfaceMult (float)
+            // NetworkVarNames: m_fadeMinDist (float32)
+            // NetworkVarNames: m_fadeMaxDist (float32)
+            // NetworkVarNames: m_flFadeScale (float32)
+            // NetworkVarNames: m_flShadowStrength (float32)
+            // NetworkVarNames: m_nObjectCulling (uint8)
+            // NetworkVarNames: m_nAddDecal (int)
+            // NetworkVarNames: m_vDecalPosition (Vector)
+            // NetworkVarNames: m_vDecalForwardAxis (Vector)
+            // NetworkVarNames: m_flDecalHealBloodRate (float)
+            // NetworkVarNames: m_flDecalHealHeightRate (float)
+            // NetworkVarNames: m_ConfigEntitiesToPropagateMaterialDecalsTo (CHandle<C_BaseModelEntity>)
+            pub mod C_BaseModelEntity {
+                pub const m_CRenderComponent: usize = 0xA20; // CRenderComponent*
+                pub const m_CHitboxComponent: usize = 0xA28; // CHitboxComponent
+                pub const m_bInitModelEffects: usize = 0xA70; // bool
+                pub const m_bIsStaticProp: usize = 0xA71; // bool
+                pub const m_nLastAddDecal: usize = 0xA74; // int32
+                pub const m_nDecalsAdded: usize = 0xA78; // int32
+                pub const m_iOldHealth: usize = 0xA7C; // int32
+                pub const m_nRenderMode: usize = 0xA80; // RenderMode_t
+                pub const m_nRenderFX: usize = 0xA81; // RenderFx_t
+                pub const m_bAllowFadeInView: usize = 0xA82; // bool
+                pub const m_clrRender: usize = 0xA83; // Color
+                pub const m_vecRenderAttributes: usize = 0xA88; // C_UtlVectorEmbeddedNetworkVar<EntityRenderAttribute_t>
+                pub const m_bRenderToCubemaps: usize = 0xAF0; // bool
+                pub const m_Collision: usize = 0xAF8; // CCollisionProperty
+                pub const m_Glow: usize = 0xBA8; // CGlowProperty
+                pub const m_flGlowBackfaceMult: usize = 0xC00; // float32
+                pub const m_fadeMinDist: usize = 0xC04; // float32
+                pub const m_fadeMaxDist: usize = 0xC08; // float32
+                pub const m_flFadeScale: usize = 0xC0C; // float32
+                pub const m_flShadowStrength: usize = 0xC10; // float32
+                pub const m_nObjectCulling: usize = 0xC14; // uint8
+                pub const m_nAddDecal: usize = 0xC18; // int32
+                pub const m_vDecalPosition: usize = 0xC1C; // 
+                pub const m_vDecalForwardAxis: usize = 0xC28; // 
+                pub const m_flDecalHealBloodRate: usize = 0xC34; // float32
+                pub const m_flDecalHealHeightRate: usize = 0xC38; // float32
+                pub const m_ConfigEntitiesToPropagateMaterialDecalsTo: usize = 0xC40; // C_NetworkUtlVectorBase<CHandle<C_BaseModelEntity>>
+                pub const m_vecViewOffset: usize = 0xC58; // CNetworkViewOffsetVector
+                pub const m_pClientAlphaProperty: usize = 0xC88; // CClientAlphaProperty*
+                pub const m_ClientOverrideTint: usize = 0xC90; // Color
+                pub const m_bUseClientOverrideTint: usize = 0xC94; // bool
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 24
+            //
+            // Metadata:
+            // MNetworkIncludeByUserGroup
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_szSnapshotFileName (char)
+            // NetworkVarNames: m_bActive (bool)
+            // NetworkVarNames: m_bFrozen (bool)
+            // NetworkVarNames: m_flFreezeTransitionDuration (float)
+            // NetworkVarNames: m_nStopType (int)
+            // NetworkVarNames: m_bAnimateDuringGameplayPause (bool)
+            // NetworkVarNames: m_iEffectIndex (HParticleSystemDefinitionStrong)
+            // NetworkVarNames: m_flStartTime (GameTime_t)
+            // NetworkVarNames: m_flPreSimTime (float32)
+            // NetworkVarNames: m_vServerControlPoints (Vector)
+            // NetworkVarNames: m_iServerControlPointAssignments (uint8)
+            // NetworkVarNames: m_hControlPointEnts (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_bNoSave (bool)
+            // NetworkVarNames: m_bNoFreeze (bool)
+            // NetworkVarNames: m_bNoRamp (bool)
+            pub mod C_ParticleSystem {
+                pub const m_szSnapshotFileName: usize = 0xCD0; // char[512]
+                pub const m_bActive: usize = 0xED0; // bool
+                pub const m_bFrozen: usize = 0xED1; // bool
+                pub const m_flFreezeTransitionDuration: usize = 0xED4; // float32
+                pub const m_nStopType: usize = 0xED8; // int32
+                pub const m_bAnimateDuringGameplayPause: usize = 0xEDC; // bool
+                pub const m_iEffectIndex: usize = 0xEE0; // CStrongHandle<InfoForResourceTypeIParticleSystemDefinition>
+                pub const m_flStartTime: usize = 0xEE8; // GameTime_t
+                pub const m_flPreSimTime: usize = 0xEEC; // float32
+                pub const m_vServerControlPoints: usize = 0xEF0; // Vector[4]
+                pub const m_iServerControlPointAssignments: usize = 0xF20; // uint8[4]
+                pub const m_hControlPointEnts: usize = 0xF24; // CHandle<C_BaseEntity>[64]
+                pub const m_bNoSave: usize = 0x1024; // bool
+                pub const m_bNoFreeze: usize = 0x1025; // bool
+                pub const m_bNoRamp: usize = 0x1026; // bool
+                pub const m_bStartActive: usize = 0x1027; // bool
+                pub const m_iszEffectName: usize = 0x1028; // CUtlSymbolLarge
+                pub const m_iszControlPointNames: usize = 0x1030; // CUtlSymbolLarge[64]
+                pub const m_nDataCP: usize = 0x1230; // int32
+                pub const m_vecDataCPValue: usize = 0x1234; // 
+                pub const m_nTintCP: usize = 0x1240; // int32
+                pub const m_clrTint: usize = 0x1244; // Color
+                pub const m_bOldActive: usize = 0x1268; // bool
+                pub const m_bOldFrozen: usize = 0x1269; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 16
+            //
+            // Metadata:
+            // NetworkVarNames: m_flParticleSpacing (float)
+            // NetworkVarNames: m_flSlack (float)
+            // NetworkVarNames: m_flRadius (float)
+            // NetworkVarNames: m_ColorTint (Color)
+            // NetworkVarNames: m_nEffectState (int)
+            // NetworkVarNames: m_iEffectIndex (HParticleSystemDefinitionStrong)
+            // NetworkVarNames: m_PathNodes_Position (Vector)
+            // NetworkVarNames: m_PathNodes_TangentIn (Vector)
+            // NetworkVarNames: m_PathNodes_TangentOut (Vector)
+            // NetworkVarNames: m_PathNodes_Color (Vector)
+            // NetworkVarNames: m_PathNodes_PinEnabled (bool)
+            // NetworkVarNames: m_PathNodes_RadiusScale (float)
+            pub mod C_PathParticleRope {
+                pub const m_bStartActive: usize = 0x550; // bool
+                pub const m_flMaxSimulationTime: usize = 0x554; // float32
+                pub const m_iszEffectName: usize = 0x558; // CUtlSymbolLarge
+                pub const m_PathNodes_Name: usize = 0x560; // CUtlVector<CUtlSymbolLarge>
+                pub const m_flParticleSpacing: usize = 0x578; // float32
+                pub const m_flSlack: usize = 0x57C; // float32
+                pub const m_flRadius: usize = 0x580; // float32
+                pub const m_ColorTint: usize = 0x584; // Color
+                pub const m_nEffectState: usize = 0x588; // int32
+                pub const m_iEffectIndex: usize = 0x590; // CStrongHandle<InfoForResourceTypeIParticleSystemDefinition>
+                pub const m_PathNodes_Position: usize = 0x598; // C_NetworkUtlVectorBase<Vector>
+                pub const m_PathNodes_TangentIn: usize = 0x5B0; // C_NetworkUtlVectorBase<Vector>
+                pub const m_PathNodes_TangentOut: usize = 0x5C8; // C_NetworkUtlVectorBase<Vector>
+                pub const m_PathNodes_Color: usize = 0x5E0; // C_NetworkUtlVectorBase<Vector>
+                pub const m_PathNodes_PinEnabled: usize = 0x5F8; // C_NetworkUtlVectorBase<bool>
+                pub const m_PathNodes_RadiusScale: usize = 0x610; // C_NetworkUtlVectorBase<float32>
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 7
+            //
+            // Metadata:
+            // NetworkVarNames: m_Flags (uint8)
+            // NetworkVarNames: m_LightStyle (uint8)
+            // NetworkVarNames: m_Radius (float32)
+            // NetworkVarNames: m_Exponent (int32)
+            // NetworkVarNames: m_InnerAngle (float32)
+            // NetworkVarNames: m_OuterAngle (float32)
+            // NetworkVarNames: m_SpotRadius (float32)
+            pub mod C_DynamicLight {
+                pub const m_Flags: usize = 0xCD0; // uint8
+                pub const m_LightStyle: usize = 0xCD1; // uint8
+                pub const m_Radius: usize = 0xCD4; // float32
+                pub const m_Exponent: usize = 0xCD8; // int32
+                pub const m_InnerAngle: usize = 0xCDC; // float32
+                pub const m_OuterAngle: usize = 0xCE0; // float32
+                pub const m_SpotRadius: usize = 0xCE4; // float32
+            }
+            // Parent: None
+            // Fields count: 9
+            //
+            // Metadata:
+            // NetworkVarNames: m_iszOverlayNames (string_t)
+            // NetworkVarNames: m_flOverlayTimes (float32)
+            // NetworkVarNames: m_flStartTime (GameTime_t)
+            // NetworkVarNames: m_iDesiredOverlay (int32)
+            // NetworkVarNames: m_bIsActive (bool)
+            pub mod C_EnvScreenOverlay {
+                pub const m_iszOverlayNames: usize = 0x550; // CUtlSymbolLarge[10]
+                pub const m_flOverlayTimes: usize = 0x5A0; // float32[10]
+                pub const m_flStartTime: usize = 0x5C8; // GameTime_t
+                pub const m_iDesiredOverlay: usize = 0x5CC; // int32
+                pub const m_bIsActive: usize = 0x5D0; // bool
+                pub const m_bWasActive: usize = 0x5D1; // bool
+                pub const m_iCachedDesiredOverlay: usize = 0x5D4; // int32
+                pub const m_iCurrentOverlay: usize = 0x5D8; // int32
+                pub const m_flCurrentOverlayTime: usize = 0x5DC; // GameTime_t
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 8
+            //
+            // Metadata:
+            // MNetworkIncludeByUserGroup
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_nHorizontalSize (uint32)
+            // NetworkVarNames: m_nVerticalSize (uint32)
+            // NetworkVarNames: m_nMinDist (uint32)
+            // NetworkVarNames: m_nMaxDist (uint32)
+            // NetworkVarNames: m_nOuterMaxDist (uint32)
+            // NetworkVarNames: m_flGlowProxySize (float32)
+            // NetworkVarNames: m_flHDRColorScale (float32)
+            pub mod C_LightGlow {
+                pub const m_nHorizontalSize: usize = 0xCD0; // uint32
+                pub const m_nVerticalSize: usize = 0xCD4; // uint32
+                pub const m_nMinDist: usize = 0xCD8; // uint32
+                pub const m_nMaxDist: usize = 0xCDC; // uint32
+                pub const m_nOuterMaxDist: usize = 0xCE0; // uint32
+                pub const m_flGlowProxySize: usize = 0xCE4; // float32
+                pub const m_flHDRColorScale: usize = 0xCE8; // float32
+                pub const m_Glow: usize = 0xCF0; // C_LightGlowOverlay
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_iCurrentMaxRagdollCount (int8)
+            pub mod C_RagdollManager {
+                pub const m_iCurrentMaxRagdollCount: usize = 0x550; // int8
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_flLightScale (float32)
+            // NetworkVarNames: m_Radius (float32)
+            pub mod C_SpotlightEnd {
+                pub const m_flLightScale: usize = 0xCD0; // float32
+                pub const m_Radius: usize = 0xCD4; // float32
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 25
+            //
+            // Metadata:
+            // NetworkVarNames: m_bDisabled (bool)
+            // NetworkVarNames: m_bUpdateOnClient (bool)
+            // NetworkVarNames: m_nInputType (ValueRemapperInputType_t)
+            // NetworkVarNames: m_hRemapLineStart (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_hRemapLineEnd (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_flMaximumChangePerSecond (float)
+            // NetworkVarNames: m_flDisengageDistance (float)
+            // NetworkVarNames: m_flEngageDistance (float)
+            // NetworkVarNames: m_bRequiresUseKey (bool)
+            // NetworkVarNames: m_nOutputType (ValueRemapperOutputType_t)
+            // NetworkVarNames: m_hOutputEntities (CHandle<C_BaseEntity>)
+            // NetworkVarNames: m_nHapticsType (ValueRemapperHapticsType_t)
+            // NetworkVarNames: m_nMomentumType (ValueRemapperMomentumType_t)
+            // NetworkVarNames: m_flMomentumModifier (float)
+            // NetworkVarNames: m_flSnapValue (float)
+            // NetworkVarNames: m_nRatchetType (ValueRemapperRatchetType_t)
+            // NetworkVarNames: m_flInputOffset (float)
+            pub mod C_PointValueRemapper {
+                pub const m_bDisabled: usize = 0x550; // bool
+                pub const m_bDisabledOld: usize = 0x551; // bool
+                pub const m_bUpdateOnClient: usize = 0x552; // bool
+                pub const m_nInputType: usize = 0x554; // ValueRemapperInputType_t
+                pub const m_hRemapLineStart: usize = 0x558; // CHandle<C_BaseEntity>
+                pub const m_hRemapLineEnd: usize = 0x55C; // CHandle<C_BaseEntity>
+                pub const m_flMaximumChangePerSecond: usize = 0x560; // float32
+                pub const m_flDisengageDistance: usize = 0x564; // float32
+                pub const m_flEngageDistance: usize = 0x568; // float32
+                pub const m_bRequiresUseKey: usize = 0x56C; // bool
+                pub const m_nOutputType: usize = 0x570; // ValueRemapperOutputType_t
+                pub const m_hOutputEntities: usize = 0x578; // C_NetworkUtlVectorBase<CHandle<C_BaseEntity>>
+                pub const m_nHapticsType: usize = 0x590; // ValueRemapperHapticsType_t
+                pub const m_nMomentumType: usize = 0x594; // ValueRemapperMomentumType_t
+                pub const m_flMomentumModifier: usize = 0x598; // float32
+                pub const m_flSnapValue: usize = 0x59C; // float32
+                pub const m_flCurrentMomentum: usize = 0x5A0; // float32
+                pub const m_nRatchetType: usize = 0x5A4; // ValueRemapperRatchetType_t
+                pub const m_flRatchetOffset: usize = 0x5A8; // float32
+                pub const m_flInputOffset: usize = 0x5AC; // float32
+                pub const m_bEngaged: usize = 0x5B0; // bool
+                pub const m_bFirstUpdate: usize = 0x5B1; // bool
+                pub const m_flPreviousValue: usize = 0x5B4; // float32
+                pub const m_flPreviousUpdateTickTime: usize = 0x5B8; // GameTime_t
+                pub const m_vecPreviousTestPoint: usize = 0x5BC; // 
+            }
+            // Parent: None
+            // Fields count: 12
+            //
+            // Metadata:
+            // NetworkVarNames: m_messageText (char)
+            // NetworkVarNames: m_FontName (char)
+            // NetworkVarNames: m_bEnabled (bool)
+            // NetworkVarNames: m_bFullbright (bool)
+            // NetworkVarNames: m_flWorldUnitsPerPx (float)
+            // NetworkVarNames: m_flFontSize (float)
+            // NetworkVarNames: m_flDepthOffset (float)
+            // NetworkVarNames: m_Color (Color)
+            // NetworkVarNames: m_nJustifyHorizontal (PointWorldTextJustifyHorizontal_t)
+            // NetworkVarNames: m_nJustifyVertical (PointWorldTextJustifyVertical_t)
+            // NetworkVarNames: m_nReorientMode (PointWorldTextReorientMode_t)
+            pub mod C_PointWorldText {
+                pub const m_bForceRecreateNextUpdate: usize = 0xCD8; // bool
+                pub const m_messageText: usize = 0xCE8; // char[512]
+                pub const m_FontName: usize = 0xEE8; // char[64]
+                pub const m_bEnabled: usize = 0xF28; // bool
+                pub const m_bFullbright: usize = 0xF29; // bool
+                pub const m_flWorldUnitsPerPx: usize = 0xF2C; // float32
+                pub const m_flFontSize: usize = 0xF30; // float32
+                pub const m_flDepthOffset: usize = 0xF34; // float32
+                pub const m_Color: usize = 0xF38; // Color
+                pub const m_nJustifyHorizontal: usize = 0xF3C; // PointWorldTextJustifyHorizontal_t
+                pub const m_nJustifyVertical: usize = 0xF40; // PointWorldTextJustifyVertical_t
+                pub const m_nReorientMode: usize = 0xF44; // PointWorldTextReorientMode_t
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_Handle (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_bSendHandle (bool)
+            pub mod C_HandleTest {
+                pub const m_Handle: usize = 0x550; // CHandle<C_BaseEntity>
+                pub const m_bSendHandle: usize = 0x554; // bool
+            }
+            // Parent: C_BaseEntity
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_EnvWindShared (CEnvWindShared)
+            pub mod C_EnvWind {
+                pub const m_EnvWindShared: usize = 0x550; // C_EnvWindShared
+            }
+            // Parent: None
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_glowEntity (CHandle<C_BaseModelEntity>)
+            // NetworkVarNames: m_usable (bool)
+            // NetworkVarNames: m_szDisplayText (string_t)
+            pub mod C_BaseButton {
+                pub const m_glowEntity: usize = 0xCD0; // CHandle<C_BaseModelEntity>
+                pub const m_usable: usize = 0xCD4; // bool
+                pub const m_szDisplayText: usize = 0xCD8; // CUtlSymbolLarge
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 13
+            //
+            // Metadata:
+            // NetworkVarNames: m_flStartTime (GameTime_t)
+            // NetworkVarNames: m_flFadeInStart (float32)
+            // NetworkVarNames: m_flFadeInLength (float32)
+            // NetworkVarNames: m_flFadeOutModelStart (float32)
+            // NetworkVarNames: m_flFadeOutModelLength (float32)
+            // NetworkVarNames: m_flFadeOutStart (float32)
+            // NetworkVarNames: m_flFadeOutLength (float32)
+            // NetworkVarNames: m_nDissolveType (EntityDisolveType_t)
+            // NetworkVarNames: m_vDissolverOrigin (Vector)
+            // NetworkVarNames: m_nMagnitude (uint32)
+            pub mod C_EntityDissolve {
+                pub const m_flStartTime: usize = 0xCD8; // GameTime_t
+                pub const m_flFadeInStart: usize = 0xCDC; // float32
+                pub const m_flFadeInLength: usize = 0xCE0; // float32
+                pub const m_flFadeOutModelStart: usize = 0xCE4; // float32
+                pub const m_flFadeOutModelLength: usize = 0xCE8; // float32
+                pub const m_flFadeOutStart: usize = 0xCEC; // float32
+                pub const m_flFadeOutLength: usize = 0xCF0; // float32
+                pub const m_flNextSparkTime: usize = 0xCF4; // GameTime_t
+                pub const m_nDissolveType: usize = 0xCF8; // EntityDisolveType_t
+                pub const m_vDissolverOrigin: usize = 0xCFC; // 
+                pub const m_nMagnitude: usize = 0xD08; // uint32
+                pub const m_bCoreExplode: usize = 0xD0C; // bool
+                pub const m_bLinkedToServerEnt: usize = 0xD0D; // bool
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 9
+            //
+            // Metadata:
+            // NetworkVarNames: m_hDecalMaterial (HMaterialStrong)
+            // NetworkVarNames: m_flWidth (float)
+            // NetworkVarNames: m_flHeight (float)
+            // NetworkVarNames: m_flDepth (float)
+            // NetworkVarNames: m_nRenderOrder (uint32)
+            // NetworkVarNames: m_bProjectOnWorld (bool)
+            // NetworkVarNames: m_bProjectOnCharacters (bool)
+            // NetworkVarNames: m_bProjectOnWater (bool)
+            // NetworkVarNames: m_flDepthSortBias (float)
+            pub mod C_EnvDecal {
+                pub const m_hDecalMaterial: usize = 0xCD0; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_flWidth: usize = 0xCD8; // float32
+                pub const m_flHeight: usize = 0xCDC; // float32
+                pub const m_flDepth: usize = 0xCE0; // float32
+                pub const m_nRenderOrder: usize = 0xCE4; // uint32
+                pub const m_bProjectOnWorld: usize = 0xCE8; // bool
+                pub const m_bProjectOnCharacters: usize = 0xCE9; // bool
+                pub const m_bProjectOnWater: usize = 0xCEA; // bool
+                pub const m_flDepthSortBias: usize = 0xCEC; // float32
+            }
+            // Parent: None
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_EffectName (string_t)
+            // NetworkVarNames: m_bState (bool)
+            pub mod C_FuncElectrifiedVolume {
+                pub const m_nAmbientEffect: usize = 0xCD0; // ParticleIndex_t
+                pub const m_EffectName: usize = 0xCD8; // CUtlSymbolLarge
+                pub const m_bState: usize = 0xCE0; // bool
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 0
+            //
+            // Metadata:
+            // MNetworkOverride
+            // MNetworkOverride
+            pub mod C_FuncRotating {
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 41
+            //
+            // Metadata:
+            // MNetworkIncludeByUserGroup
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_flScrollSpeed (float32)
+            // NetworkVarNames: m_RopeFlags (uint16)
+            // NetworkVarNames: m_iRopeMaterialModelIndex (HMaterialStrong)
+            // NetworkVarNames: m_nSegments (uint8)
+            // NetworkVarNames: m_hStartPoint (CHandle<C_BaseEntity>)
+            // NetworkVarNames: m_hEndPoint (CHandle<C_BaseEntity>)
+            // NetworkVarNames: m_iStartAttachment (AttachmentHandle_t)
+            // NetworkVarNames: m_iEndAttachment (AttachmentHandle_t)
+            // NetworkVarNames: m_Subdiv (uint8)
+            // NetworkVarNames: m_RopeLength (int16)
+            // NetworkVarNames: m_Slack (int16)
+            // NetworkVarNames: m_TextureScale (float32)
+            // NetworkVarNames: m_fLockedPoints (uint8)
+            // NetworkVarNames: m_nChangeCount (uint8)
+            // NetworkVarNames: m_Width (float32)
+            // NetworkVarNames: m_bConstrainBetweenEndpoints (bool)
+            pub mod C_RopeKeyframe {
+                pub const m_LinksTouchingSomething: usize = 0xCD8; // CBitVec<10>
+                pub const m_nLinksTouchingSomething: usize = 0xCDC; // int32
+                pub const m_bApplyWind: usize = 0xCE0; // bool
+                pub const m_fPrevLockedPoints: usize = 0xCE4; // int32
+                pub const m_iForcePointMoveCounter: usize = 0xCE8; // int32
+                pub const m_bPrevEndPointPos: usize = 0xCEC; // bool[2]
+                pub const m_vPrevEndPointPos: usize = 0xCF0; // Vector[2]
+                pub const m_flCurScroll: usize = 0xD08; // float32
+                pub const m_flScrollSpeed: usize = 0xD0C; // float32
+                pub const m_RopeFlags: usize = 0xD10; // uint16
+                pub const m_iRopeMaterialModelIndex: usize = 0xD18; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_LightValues: usize = 0xF90; // Vector[10]
+                pub const m_nSegments: usize = 0x1008; // uint8
+                pub const m_hStartPoint: usize = 0x100C; // CHandle<C_BaseEntity>
+                pub const m_hEndPoint: usize = 0x1010; // CHandle<C_BaseEntity>
+                pub const m_iStartAttachment: usize = 0x1014; // AttachmentHandle_t
+                pub const m_iEndAttachment: usize = 0x1015; // AttachmentHandle_t
+                pub const m_Subdiv: usize = 0x1016; // uint8
+                pub const m_RopeLength: usize = 0x1018; // int16
+                pub const m_Slack: usize = 0x101A; // int16
+                pub const m_TextureScale: usize = 0x101C; // float32
+                pub const m_fLockedPoints: usize = 0x1020; // uint8
+                pub const m_nChangeCount: usize = 0x1021; // uint8
+                pub const m_Width: usize = 0x1024; // float32
+                pub const m_PhysicsDelegate: usize = 0x1028; // C_RopeKeyframe::CPhysicsDelegate
+                pub const m_hMaterial: usize = 0x1038; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_TextureHeight: usize = 0x1040; // int32
+                pub const m_vecImpulse: usize = 0x1044; // 
+                pub const m_vecPreviousImpulse: usize = 0x1050; // 
+                pub const m_flCurrentGustTimer: usize = 0x105C; // float32
+                pub const m_flCurrentGustLifetime: usize = 0x1060; // float32
+                pub const m_flTimeToNextGust: usize = 0x1064; // float32
+                pub const m_vWindDir: usize = 0x1068; // 
+                pub const m_vColorMod: usize = 0x1074; // 
+                pub const m_vCachedEndPointAttachmentPos: usize = 0x1080; // Vector[2]
+                pub const m_vCachedEndPointAttachmentAngle: usize = 0x1098; // QAngle[2]
+                pub const m_bConstrainBetweenEndpoints: usize = 0x10B0; // bool
+                pub const m_bEndPointAttachmentPositionsDirty: usize = 0x0; // bitfield:1
+                pub const m_bEndPointAttachmentAnglesDirty: usize = 0x0; // bitfield:1
+                pub const m_bNewDataThisFrame: usize = 0x0; // bitfield:1
+                pub const m_bPhysicsInitted: usize = 0x0; // bitfield:1
+            }
+            // Parent: None
+            // Fields count: 12
+            //
+            // Metadata:
+            // NetworkVarNames: m_bIsPlayingBack (bool)
+            // NetworkVarNames: m_bPaused (bool)
+            // NetworkVarNames: m_bMultiplayer (bool)
+            // NetworkVarNames: m_bAutogenerated (bool)
+            // NetworkVarNames: m_flForceClientTime (float32)
+            // NetworkVarNames: m_nSceneStringIndex (uint16)
+            // NetworkVarNames: m_hActorList (CHandle<C_BaseFlex>)
+            pub mod C_SceneEntity {
+                pub const m_bIsPlayingBack: usize = 0x558; // bool
+                pub const m_bPaused: usize = 0x559; // bool
+                pub const m_bMultiplayer: usize = 0x55A; // bool
+                pub const m_bAutogenerated: usize = 0x55B; // bool
+                pub const m_flForceClientTime: usize = 0x55C; // float32
+                pub const m_nSceneStringIndex: usize = 0x560; // uint16
+                pub const m_bClientOnly: usize = 0x562; // bool
+                pub const m_hOwner: usize = 0x564; // CHandle<C_BaseFlex>
+                pub const m_hActorList: usize = 0x568; // C_NetworkUtlVectorBase<CHandle<C_BaseFlex>>
+                pub const m_bWasPlaying: usize = 0x580; // bool
+                pub const m_QueuedEvents: usize = 0x590; // CUtlVector<C_SceneEntity::QueuedEvents_t>
+                pub const m_flCurrentTime: usize = 0x5A8; // float32
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 18
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkExcludeByName
+            // MNetworkIncludeByUserGroup
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_vDirection (Vector)
+            // NetworkVarNames: m_iszEffectName (string_t)
+            // NetworkVarNames: m_iszSSEffectName (string_t)
+            // NetworkVarNames: m_clrOverlay (Color)
+            // NetworkVarNames: m_bOn (bool)
+            // NetworkVarNames: m_bmaxColor (bool)
+            // NetworkVarNames: m_flSize (float32)
+            // NetworkVarNames: m_flHazeScale (float32)
+            // NetworkVarNames: m_flRotation (float32)
+            // NetworkVarNames: m_flHDRColorScale (float32)
+            // NetworkVarNames: m_flAlphaHaze (float32)
+            // NetworkVarNames: m_flAlphaScale (float32)
+            // NetworkVarNames: m_flAlphaHdr (float32)
+            // NetworkVarNames: m_flFarZScale (float32)
+            pub mod C_Sun {
+                pub const m_fxSSSunFlareEffectIndex: usize = 0xCD0; // ParticleIndex_t
+                pub const m_fxSunFlareEffectIndex: usize = 0xCD4; // ParticleIndex_t
+                pub const m_fdistNormalize: usize = 0xCD8; // float32
+                pub const m_vSunPos: usize = 0xCDC; // 
+                pub const m_vDirection: usize = 0xCE8; // 
+                pub const m_iszEffectName: usize = 0xCF8; // CUtlSymbolLarge
+                pub const m_iszSSEffectName: usize = 0xD00; // CUtlSymbolLarge
+                pub const m_clrOverlay: usize = 0xD08; // Color
+                pub const m_bOn: usize = 0xD0C; // bool
+                pub const m_bmaxColor: usize = 0xD0D; // bool
+                pub const m_flSize: usize = 0xD10; // float32
+                pub const m_flHazeScale: usize = 0xD14; // float32
+                pub const m_flRotation: usize = 0xD18; // float32
+                pub const m_flHDRColorScale: usize = 0xD1C; // float32
+                pub const m_flAlphaHaze: usize = 0xD20; // float32
+                pub const m_flAlphaScale: usize = 0xD24; // float32
+                pub const m_flAlphaHdr: usize = 0xD28; // float32
+                pub const m_flFarZScale: usize = 0xD2C; // float32
+            }
+            // Parent: None
+            // Fields count: 2
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_bDisabled (bool)
+            // NetworkVarNames: m_bClientSidePredicted (bool)
+            pub mod C_BaseTrigger {
+                pub const m_bDisabled: usize = 0xCD0; // bool
+                pub const m_bClientSidePredicted: usize = 0xCD1; // bool
+            }
+            // Parent: C_BaseTrigger
+            // Fields count: 13
+            //
+            // Metadata:
+            // NetworkVarNames: m_gravityScale (float)
+            // NetworkVarNames: m_linearLimit (float)
+            // NetworkVarNames: m_linearDamping (float)
+            // NetworkVarNames: m_angularLimit (float)
+            // NetworkVarNames: m_angularDamping (float)
+            // NetworkVarNames: m_linearForce (float)
+            // NetworkVarNames: m_flFrequency (float)
+            // NetworkVarNames: m_flDampingRatio (float)
+            // NetworkVarNames: m_vecLinearForcePointAt (Vector)
+            // NetworkVarNames: m_bCollapseToForcePoint (bool)
+            // NetworkVarNames: m_vecLinearForcePointAtWorld (Vector)
+            // NetworkVarNames: m_vecLinearForceDirection (Vector)
+            // NetworkVarNames: m_bConvertToDebrisWhenPossible (bool)
+            pub mod C_TriggerPhysics {
+                pub const m_gravityScale: usize = 0xCD8; // float32
+                pub const m_linearLimit: usize = 0xCDC; // float32
+                pub const m_linearDamping: usize = 0xCE0; // float32
+                pub const m_angularLimit: usize = 0xCE4; // float32
+                pub const m_angularDamping: usize = 0xCE8; // float32
+                pub const m_linearForce: usize = 0xCEC; // float32
+                pub const m_flFrequency: usize = 0xCF0; // float32
+                pub const m_flDampingRatio: usize = 0xCF4; // float32
+                pub const m_vecLinearForcePointAt: usize = 0xCF8; // 
+                pub const m_bCollapseToForcePoint: usize = 0xD04; // bool
+                pub const m_vecLinearForcePointAtWorld: usize = 0xD08; // 
+                pub const m_vecLinearForceDirection: usize = 0xD14; // 
+                pub const m_bConvertToDebrisWhenPossible: usize = 0xD20; // bool
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 24
+            //
+            // Metadata:
+            // MNetworkIncludeByUserGroup
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkOverride
+            // NetworkVarNames: m_flFrameRate (float32)
+            // NetworkVarNames: m_flHDRColorScale (float32)
+            // NetworkVarNames: m_nNumBeamEnts (uint8)
+            // NetworkVarNames: m_hBaseMaterial (HMaterialStrong)
+            // NetworkVarNames: m_nHaloIndex (HMaterialStrong)
+            // NetworkVarNames: m_nBeamType (BeamType_t)
+            // NetworkVarNames: m_nBeamFlags (uint32)
+            // NetworkVarNames: m_hAttachEntity (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_nAttachIndex (AttachmentHandle_t)
+            // NetworkVarNames: m_fWidth (float32)
+            // NetworkVarNames: m_fEndWidth (float32)
+            // NetworkVarNames: m_fFadeLength (float32)
+            // NetworkVarNames: m_fHaloScale (float32)
+            // NetworkVarNames: m_fAmplitude (float32)
+            // NetworkVarNames: m_fStartFrame (float32)
+            // NetworkVarNames: m_fSpeed (float32)
+            // NetworkVarNames: m_flFrame (float32)
+            // NetworkVarNames: m_nClipStyle (BeamClipStyle_t)
+            // NetworkVarNames: m_bTurnedOff (bool)
+            // NetworkVarNames: m_vecEndPos (Vector)
+            pub mod C_Beam {
+                pub const m_flFrameRate: usize = 0xCD0; // float32
+                pub const m_flHDRColorScale: usize = 0xCD4; // float32
+                pub const m_flFireTime: usize = 0xCD8; // GameTime_t
+                pub const m_flDamage: usize = 0xCDC; // float32
+                pub const m_nNumBeamEnts: usize = 0xCE0; // uint8
+                pub const m_queryHandleHalo: usize = 0xCE4; // int32
+                pub const m_hBaseMaterial: usize = 0xD08; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_nHaloIndex: usize = 0xD10; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_nBeamType: usize = 0xD18; // BeamType_t
+                pub const m_nBeamFlags: usize = 0xD1C; // uint32
+                pub const m_hAttachEntity: usize = 0xD20; // CHandle<C_BaseEntity>[10]
+                pub const m_nAttachIndex: usize = 0xD48; // AttachmentHandle_t[10]
+                pub const m_fWidth: usize = 0xD54; // float32
+                pub const m_fEndWidth: usize = 0xD58; // float32
+                pub const m_fFadeLength: usize = 0xD5C; // float32
+                pub const m_fHaloScale: usize = 0xD60; // float32
+                pub const m_fAmplitude: usize = 0xD64; // float32
+                pub const m_fStartFrame: usize = 0xD68; // float32
+                pub const m_fSpeed: usize = 0xD6C; // float32
+                pub const m_flFrame: usize = 0xD70; // float32
+                pub const m_nClipStyle: usize = 0xD74; // BeamClipStyle_t
+                pub const m_bTurnedOff: usize = 0xD78; // bool
+                pub const m_vecEndPos: usize = 0xD7C; // 
+                pub const m_hEndEntity: usize = 0xD88; // CHandle<C_BaseEntity>
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 9
+            //
+            // Metadata:
+            // NetworkVarNames: m_vecLadderDir (Vector)
+            // NetworkVarNames: m_vecPlayerMountPositionTop (Vector)
+            // NetworkVarNames: m_vecPlayerMountPositionBottom (Vector)
+            // NetworkVarNames: m_flAutoRideSpeed (float)
+            // NetworkVarNames: m_bFakeLadder (bool)
+            pub mod C_FuncLadder {
+                pub const m_vecLadderDir: usize = 0xCD0; // 
+                pub const m_Dismounts: usize = 0xCE0; // CUtlVector<CHandle<C_InfoLadderDismount>>
+                pub const m_vecLocalTop: usize = 0xCF8; // 
+                pub const m_vecPlayerMountPositionTop: usize = 0xD04; // 
+                pub const m_vecPlayerMountPositionBottom: usize = 0xD10; // 
+                pub const m_flAutoRideSpeed: usize = 0xD1C; // float32
+                pub const m_bDisabled: usize = 0xD20; // bool
+                pub const m_bFakeLadder: usize = 0xD21; // bool
+                pub const m_bHasSlack: usize = 0xD22; // bool
+            }
+            // Parent: None
+            // Fields count: 7
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            pub mod CPrecipitationVData {
+                pub const m_szParticlePrecipitationEffect: usize = 0x28; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_flInnerDistance: usize = 0x108; // float32
+                pub const m_nAttachType: usize = 0x10C; // ParticleAttachment_t
+                pub const m_bBatchSameVolumeType: usize = 0x110; // bool
+                pub const m_nRTEnvCP: usize = 0x114; // int32
+                pub const m_nRTEnvCPComponent: usize = 0x118; // int32
+                pub const m_szModifier: usize = 0x120; // CUtlString
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 24
+            //
+            // Metadata:
+            // NetworkVarNames: m_hSpriteMaterial (HMaterialStrong)
+            // NetworkVarNames: m_hAttachedToEntity (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_nAttachment (AttachmentHandle_t)
+            // NetworkVarNames: m_flSpriteFramerate (float32)
+            // NetworkVarNames: m_flFrame (float32)
+            // NetworkVarNames: m_nBrightness (uint32)
+            // NetworkVarNames: m_flBrightnessDuration (float32)
+            // NetworkVarNames: m_flSpriteScale (float32)
+            // NetworkVarNames: m_flScaleDuration (float32)
+            // NetworkVarNames: m_bWorldSpaceScale (bool)
+            // NetworkVarNames: m_flGlowProxySize (float32)
+            // NetworkVarNames: m_flHDRColorScale (float32)
+            pub mod C_Sprite {
+                pub const m_hSpriteMaterial: usize = 0xCE8; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_hAttachedToEntity: usize = 0xCF0; // CHandle<C_BaseEntity>
+                pub const m_nAttachment: usize = 0xCF4; // AttachmentHandle_t
+                pub const m_flSpriteFramerate: usize = 0xCF8; // float32
+                pub const m_flFrame: usize = 0xCFC; // float32
+                pub const m_flDieTime: usize = 0xD00; // GameTime_t
+                pub const m_nBrightness: usize = 0xD10; // uint32
+                pub const m_flBrightnessDuration: usize = 0xD14; // float32
+                pub const m_flSpriteScale: usize = 0xD18; // float32
+                pub const m_flScaleDuration: usize = 0xD1C; // float32
+                pub const m_bWorldSpaceScale: usize = 0xD20; // bool
+                pub const m_flGlowProxySize: usize = 0xD24; // float32
+                pub const m_flHDRColorScale: usize = 0xD28; // float32
+                pub const m_flLastTime: usize = 0xD2C; // GameTime_t
+                pub const m_flMaxFrame: usize = 0xD30; // float32
+                pub const m_flStartScale: usize = 0xD34; // float32
+                pub const m_flDestScale: usize = 0xD38; // float32
+                pub const m_flScaleTimeStart: usize = 0xD3C; // GameTime_t
+                pub const m_nStartBrightness: usize = 0xD40; // int32
+                pub const m_nDestBrightness: usize = 0xD44; // int32
+                pub const m_flBrightnessTimeStart: usize = 0xD48; // GameTime_t
+                pub const m_hOldSpriteMaterial: usize = 0xD50; // CWeakHandle<InfoForResourceTypeIMaterial2>
+                pub const m_nSpriteWidth: usize = 0xDF8; // int32
+                pub const m_nSpriteHeight: usize = 0xDFC; // int32
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_bEnabled (bool)
+            // NetworkVarNames: m_DialogXMLName (string_t)
+            // NetworkVarNames: m_PanelClassName (string_t)
+            // NetworkVarNames: m_PanelID (string_t)
+            pub mod C_BaseClientUIEntity {
+                pub const m_bEnabled: usize = 0xCD8; // bool
+                pub const m_DialogXMLName: usize = 0xCE0; // CUtlSymbolLarge
+                pub const m_PanelClassName: usize = 0xCE8; // CUtlSymbolLarge
+                pub const m_PanelID: usize = 0xCF0; // CUtlSymbolLarge
+            }
+            // Parent: C_BaseClientUIEntity
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_hActivator (EHANDLE)
+            pub mod C_PointClientUIDialog {
+                pub const m_hActivator: usize = 0xD00; // CHandle<C_BaseEntity>
+                pub const m_bStartEnabled: usize = 0xD04; // bool
+            }
+            // Parent: C_BaseClientUIEntity
+            // Fields count: 13
+            //
+            // Metadata:
+            // NetworkVarNames: m_bIgnoreInput (bool)
+            // NetworkVarNames: m_flWidth (float)
+            // NetworkVarNames: m_flHeight (float)
+            // NetworkVarNames: m_flDPI (float)
+            // NetworkVarNames: m_flInteractDistance (float)
+            // NetworkVarNames: m_flDepthOffset (float)
+            // NetworkVarNames: m_unOwnerContext (uint32)
+            // NetworkVarNames: m_unHorizontalAlign (uint32)
+            // NetworkVarNames: m_unVerticalAlign (uint32)
+            // NetworkVarNames: m_unOrientation (uint32)
+            // NetworkVarNames: m_bAllowInteractionFromAllSceneWorlds (bool)
+            // NetworkVarNames: m_vecCSSClasses (string_t)
+            pub mod C_PointClientUIHUD {
+                pub const m_bCheckCSSClasses: usize = 0xD08; // bool
+                pub const m_bIgnoreInput: usize = 0xE90; // bool
+                pub const m_flWidth: usize = 0xE94; // float32
+                pub const m_flHeight: usize = 0xE98; // float32
+                pub const m_flDPI: usize = 0xE9C; // float32
+                pub const m_flInteractDistance: usize = 0xEA0; // float32
+                pub const m_flDepthOffset: usize = 0xEA4; // float32
+                pub const m_unOwnerContext: usize = 0xEA8; // uint32
+                pub const m_unHorizontalAlign: usize = 0xEAC; // uint32
+                pub const m_unVerticalAlign: usize = 0xEB0; // uint32
+                pub const m_unOrientation: usize = 0xEB4; // uint32
+                pub const m_bAllowInteractionFromAllSceneWorlds: usize = 0xEB8; // bool
+                pub const m_vecCSSClasses: usize = 0xEC0; // C_NetworkUtlVectorBase<CUtlSymbolLarge>
+            }
+            // Parent: C_BaseClientUIEntity
+            // Fields count: 28
+            //
+            // Metadata:
+            // NetworkVarNames: m_bIgnoreInput (bool)
+            // NetworkVarNames: m_bLit (bool)
+            // NetworkVarNames: m_bFollowPlayerAcrossTeleport (bool)
+            // NetworkVarNames: m_flWidth (float)
+            // NetworkVarNames: m_flHeight (float)
+            // NetworkVarNames: m_flDPI (float)
+            // NetworkVarNames: m_flInteractDistance (float)
+            // NetworkVarNames: m_flDepthOffset (float)
+            // NetworkVarNames: m_unOwnerContext (uint32)
+            // NetworkVarNames: m_unHorizontalAlign (uint32)
+            // NetworkVarNames: m_unVerticalAlign (uint32)
+            // NetworkVarNames: m_unOrientation (uint32)
+            // NetworkVarNames: m_bAllowInteractionFromAllSceneWorlds (bool)
+            // NetworkVarNames: m_vecCSSClasses (string_t)
+            // NetworkVarNames: m_bOpaque (bool)
+            // NetworkVarNames: m_bNoDepth (bool)
+            // NetworkVarNames: m_bRenderBackface (bool)
+            // NetworkVarNames: m_bUseOffScreenIndicator (bool)
+            // NetworkVarNames: m_bExcludeFromSaveGames (bool)
+            // NetworkVarNames: m_bGrabbable (bool)
+            // NetworkVarNames: m_bOnlyRenderToTexture (bool)
+            // NetworkVarNames: m_bDisableMipGen (bool)
+            // NetworkVarNames: m_nExplicitImageLayout (int32)
+            pub mod C_PointClientUIWorldPanel {
+                pub const m_bForceRecreateNextUpdate: usize = 0xD08; // bool
+                pub const m_bMoveViewToPlayerNextThink: usize = 0xD09; // bool
+                pub const m_bCheckCSSClasses: usize = 0xD0A; // bool
+                pub const m_anchorDeltaTransform: usize = 0xD10; // CTransform
+                pub const m_pOffScreenIndicator: usize = 0xEB0; // CPointOffScreenIndicatorUi*
+                pub const m_bIgnoreInput: usize = 0xED8; // bool
+                pub const m_bLit: usize = 0xED9; // bool
+                pub const m_bFollowPlayerAcrossTeleport: usize = 0xEDA; // bool
+                pub const m_flWidth: usize = 0xEDC; // float32
+                pub const m_flHeight: usize = 0xEE0; // float32
+                pub const m_flDPI: usize = 0xEE4; // float32
+                pub const m_flInteractDistance: usize = 0xEE8; // float32
+                pub const m_flDepthOffset: usize = 0xEEC; // float32
+                pub const m_unOwnerContext: usize = 0xEF0; // uint32
+                pub const m_unHorizontalAlign: usize = 0xEF4; // uint32
+                pub const m_unVerticalAlign: usize = 0xEF8; // uint32
+                pub const m_unOrientation: usize = 0xEFC; // uint32
+                pub const m_bAllowInteractionFromAllSceneWorlds: usize = 0xF00; // bool
+                pub const m_vecCSSClasses: usize = 0xF08; // C_NetworkUtlVectorBase<CUtlSymbolLarge>
+                pub const m_bOpaque: usize = 0xF20; // bool
+                pub const m_bNoDepth: usize = 0xF21; // bool
+                pub const m_bRenderBackface: usize = 0xF22; // bool
+                pub const m_bUseOffScreenIndicator: usize = 0xF23; // bool
+                pub const m_bExcludeFromSaveGames: usize = 0xF24; // bool
+                pub const m_bGrabbable: usize = 0xF25; // bool
+                pub const m_bOnlyRenderToTexture: usize = 0xF26; // bool
+                pub const m_bDisableMipGen: usize = 0xF27; // bool
+                pub const m_nExplicitImageLayout: usize = 0xF28; // int32
+            }
+            // Parent: C_PointClientUIWorldPanel
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_messageText (char)
+            pub mod C_PointClientUIWorldTextPanel {
+                pub const m_messageText: usize = 0xF30; // char[512]
+            }
+            // Parent: None
+            // Fields count: 9
+            //
+            // Metadata:
+            // NetworkVarNames: m_bDisabled (bool)
+            // NetworkVarNames: m_nResolutionX (int)
+            // NetworkVarNames: m_nResolutionY (int)
+            // NetworkVarNames: m_szLayoutFileName (string_t)
+            // NetworkVarNames: m_RenderAttrName (string_t)
+            // NetworkVarNames: m_TargetEntities (CHandle<C_BaseModelEntity>)
+            // NetworkVarNames: m_nTargetChangeCount (int)
+            // NetworkVarNames: m_vecCSSClasses (string_t)
+            pub mod CInfoOffscreenPanoramaTexture {
+                pub const m_bDisabled: usize = 0x550; // bool
+                pub const m_nResolutionX: usize = 0x554; // int32
+                pub const m_nResolutionY: usize = 0x558; // int32
+                pub const m_szLayoutFileName: usize = 0x560; // CUtlSymbolLarge
+                pub const m_RenderAttrName: usize = 0x568; // CUtlSymbolLarge
+                pub const m_TargetEntities: usize = 0x570; // C_NetworkUtlVectorBase<CHandle<C_BaseModelEntity>>
+                pub const m_nTargetChangeCount: usize = 0x588; // int32
+                pub const m_vecCSSClasses: usize = 0x590; // C_NetworkUtlVectorBase<CUtlSymbolLarge>
+                pub const m_bCheckCSSClasses: usize = 0x708; // bool
+            }
+            // Parent: None
+            // Fields count: 28
+            //
+            // Metadata:
+            // NetworkVarNames: m_iItemDefinitionIndex (item_definition_index_t)
+            // NetworkVarNames: m_iEntityQuality (int)
+            // NetworkVarNames: m_iEntityLevel (uint32)
+            // NetworkVarNames: m_iItemIDHigh (uint32)
+            // NetworkVarNames: m_iItemIDLow (uint32)
+            // NetworkVarNames: m_iAccountID (uint32)
+            // NetworkVarNames: m_iInventoryPosition (uint32)
+            // NetworkVarNames: m_bInitialized (bool)
+            // NetworkVarNames: m_AttributeList (CAttributeList)
+            // NetworkVarNames: m_NetworkedDynamicAttributes (CAttributeList)
+            // NetworkVarNames: m_szCustomName (char)
+            pub mod C_EconItemView {
+                pub const m_bInventoryImageRgbaRequested: usize = 0x60; // bool
+                pub const m_bInventoryImageTriedCache: usize = 0x61; // bool
+                pub const m_nInventoryImageRgbaWidth: usize = 0x80; // int32
+                pub const m_nInventoryImageRgbaHeight: usize = 0x84; // int32
+                pub const m_szCurrentLoadCachedFileName: usize = 0x88; // char[260]
+                pub const m_bRestoreCustomMaterialAfterPrecache: usize = 0x1B8; // bool
+                pub const m_iItemDefinitionIndex: usize = 0x1BA; // uint16
+                pub const m_iEntityQuality: usize = 0x1BC; // int32
+                pub const m_iEntityLevel: usize = 0x1C0; // uint32
+                pub const m_iItemID: usize = 0x1C8; // uint64
+                pub const m_iItemIDHigh: usize = 0x1D0; // uint32
+                pub const m_iItemIDLow: usize = 0x1D4; // uint32
+                pub const m_iAccountID: usize = 0x1D8; // uint32
+                pub const m_iInventoryPosition: usize = 0x1DC; // uint32
+                pub const m_bInitialized: usize = 0x1E8; // bool
+                pub const m_bDisallowSOC: usize = 0x1E9; // bool
+                pub const m_bIsStoreItem: usize = 0x1EA; // bool
+                pub const m_bIsTradeItem: usize = 0x1EB; // bool
+                pub const m_iEntityQuantity: usize = 0x1EC; // int32
+                pub const m_iRarityOverride: usize = 0x1F0; // int32
+                pub const m_iQualityOverride: usize = 0x1F4; // int32
+                pub const m_unClientFlags: usize = 0x1F8; // uint8
+                pub const m_unOverrideStyle: usize = 0x1F9; // uint8
+                pub const m_AttributeList: usize = 0x210; // CAttributeList
+                pub const m_NetworkedDynamicAttributes: usize = 0x270; // CAttributeList
+                pub const m_szCustomName: usize = 0x2D0; // char[161]
+                pub const m_szCustomNameOverride: usize = 0x371; // char[161]
+                pub const m_bInitializedTags: usize = 0x440; // bool
+            }
+            // Parent: C_BaseTrigger
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_bBombPlantedHere (bool)
+            pub mod CBombTarget {
+                pub const m_bBombPlantedHere: usize = 0xCD8; // bool
+            }
+            // Parent: C_BaseTrigger
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_flFluidDensity (float)
+            pub mod C_TriggerBuoyancy {
+                pub const m_BuoyancyHelper: usize = 0xCD8; // CBuoyancyHelper
+                pub const m_flFluidDensity: usize = 0xCF8; // float32
+            }
+            // Parent: CBasePlayerController
+            // Fields count: 62
+            //
+            // Metadata:
+            // MNetworkUserGroupProxy
+            // MNetworkUserGroupProxy
+            // MNetworkUserGroupProxy
+            // NetworkVarNames: m_pInGameMoneyServices (CCSPlayerController_InGameMoneyServices*)
+            // NetworkVarNames: m_pInventoryServices (CCSPlayerController_InventoryServices*)
+            // NetworkVarNames: m_pActionTrackingServices (CCSPlayerController_ActionTrackingServices*)
+            // NetworkVarNames: m_pDamageServices (CCSPlayerController_DamageServices*)
+            // NetworkVarNames: m_iPing (uint32)
+            // NetworkVarNames: m_bHasCommunicationAbuseMute (bool)
+            // NetworkVarNames: m_szCrosshairCodes (string_t)
+            // NetworkVarNames: m_iPendingTeamNum (uint8)
+            // NetworkVarNames: m_flForceTeamTime (GameTime_t)
+            // NetworkVarNames: m_iCompTeammateColor (int)
+            // NetworkVarNames: m_bEverPlayedOnTeam (bool)
+            // NetworkVarNames: m_szClan (string_t)
+            // NetworkVarNames: m_iCoachingTeam (int)
+            // NetworkVarNames: m_nPlayerDominated (uint64)
+            // NetworkVarNames: m_nPlayerDominatingMe (uint64)
+            // NetworkVarNames: m_iCompetitiveRanking (int)
+            // NetworkVarNames: m_iCompetitiveWins (int)
+            // NetworkVarNames: m_iCompetitiveRankType (int8)
+            // NetworkVarNames: m_iCompetitiveRankingPredicted_Win (int)
+            // NetworkVarNames: m_iCompetitiveRankingPredicted_Loss (int)
+            // NetworkVarNames: m_iCompetitiveRankingPredicted_Tie (int)
+            // NetworkVarNames: m_nEndMatchNextMapVote (int)
+            // NetworkVarNames: m_unActiveQuestId (uint16)
+            // NetworkVarNames: m_nQuestProgressReason (QuestProgress::Reason)
+            // NetworkVarNames: m_unPlayerTvControlFlags (uint32)
+            // NetworkVarNames: m_nDisconnectionTick (int)
+            // NetworkVarNames: m_bControllingBot (bool)
+            // NetworkVarNames: m_bHasControlledBotThisRound (bool)
+            // NetworkVarNames: m_bCanControlObservedBot (bool)
+            // NetworkVarNames: m_hPlayerPawn (CHandle<CCSPlayerPawn>)
+            // NetworkVarNames: m_hObserverPawn (CHandle<CCSObserverPawn>)
+            // NetworkVarNames: m_bPawnIsAlive (bool)
+            // NetworkVarNames: m_iPawnHealth (uint32)
+            // NetworkVarNames: m_iPawnArmor (int)
+            // NetworkVarNames: m_bPawnHasDefuser (bool)
+            // NetworkVarNames: m_bPawnHasHelmet (bool)
+            // NetworkVarNames: m_nPawnCharacterDefIndex (item_definition_index_t)
+            // NetworkVarNames: m_iPawnLifetimeStart (int)
+            // NetworkVarNames: m_iPawnLifetimeEnd (int)
+            // NetworkVarNames: m_iPawnBotDifficulty (int)
+            // NetworkVarNames: m_hOriginalControllerOfCurrentPawn (CHandle<CCSPlayerController>)
+            // NetworkVarNames: m_iScore (int32)
+            // NetworkVarNames: m_vecKills (EKillTypes_t)
+            // NetworkVarNames: m_bMvpNoMusic (bool)
+            // NetworkVarNames: m_eMvpReason (int)
+            // NetworkVarNames: m_iMusicKitID (int)
+            // NetworkVarNames: m_iMusicKitMVPs (int)
+            // NetworkVarNames: m_iMVPs (int)
+            pub mod CCSPlayerController {
+                pub const m_pInGameMoneyServices: usize = 0x6F8; // CCSPlayerController_InGameMoneyServices*
+                pub const m_pInventoryServices: usize = 0x700; // CCSPlayerController_InventoryServices*
+                pub const m_pActionTrackingServices: usize = 0x708; // CCSPlayerController_ActionTrackingServices*
+                pub const m_pDamageServices: usize = 0x710; // CCSPlayerController_DamageServices*
+                pub const m_iPing: usize = 0x718; // uint32
+                pub const m_bHasCommunicationAbuseMute: usize = 0x71C; // bool
+                pub const m_szCrosshairCodes: usize = 0x720; // CUtlSymbolLarge
+                pub const m_iPendingTeamNum: usize = 0x728; // uint8
+                pub const m_flForceTeamTime: usize = 0x72C; // GameTime_t
+                pub const m_iCompTeammateColor: usize = 0x730; // int32
+                pub const m_bEverPlayedOnTeam: usize = 0x734; // bool
+                pub const m_flPreviousForceJoinTeamTime: usize = 0x738; // GameTime_t
+                pub const m_szClan: usize = 0x740; // CUtlSymbolLarge
+                pub const m_sSanitizedPlayerName: usize = 0x748; // CUtlString
+                pub const m_iCoachingTeam: usize = 0x750; // int32
+                pub const m_nPlayerDominated: usize = 0x758; // uint64
+                pub const m_nPlayerDominatingMe: usize = 0x760; // uint64
+                pub const m_iCompetitiveRanking: usize = 0x768; // int32
+                pub const m_iCompetitiveWins: usize = 0x76C; // int32
+                pub const m_iCompetitiveRankType: usize = 0x770; // int8
+                pub const m_iCompetitiveRankingPredicted_Win: usize = 0x774; // int32
+                pub const m_iCompetitiveRankingPredicted_Loss: usize = 0x778; // int32
+                pub const m_iCompetitiveRankingPredicted_Tie: usize = 0x77C; // int32
+                pub const m_nEndMatchNextMapVote: usize = 0x780; // int32
+                pub const m_unActiveQuestId: usize = 0x784; // uint16
+                pub const m_nQuestProgressReason: usize = 0x788; // QuestProgress::Reason
+                pub const m_unPlayerTvControlFlags: usize = 0x78C; // uint32
+                pub const m_iDraftIndex: usize = 0x7B8; // int32
+                pub const m_msQueuedModeDisconnectionTimestamp: usize = 0x7BC; // uint32
+                pub const m_uiAbandonRecordedReason: usize = 0x7C0; // uint32
+                pub const m_bCannotBeKicked: usize = 0x7C4; // bool
+                pub const m_bEverFullyConnected: usize = 0x7C5; // bool
+                pub const m_bAbandonAllowsSurrender: usize = 0x7C6; // bool
+                pub const m_bAbandonOffersInstantSurrender: usize = 0x7C7; // bool
+                pub const m_bDisconnection1MinWarningPrinted: usize = 0x7C8; // bool
+                pub const m_bScoreReported: usize = 0x7C9; // bool
+                pub const m_nDisconnectionTick: usize = 0x7CC; // int32
+                pub const m_bControllingBot: usize = 0x7D8; // bool
+                pub const m_bHasControlledBotThisRound: usize = 0x7D9; // bool
+                pub const m_bHasBeenControlledByPlayerThisRound: usize = 0x7DA; // bool
+                pub const m_nBotsControlledThisRound: usize = 0x7DC; // int32
+                pub const m_bCanControlObservedBot: usize = 0x7E0; // bool
+                pub const m_hPlayerPawn: usize = 0x7E4; // CHandle<C_CSPlayerPawn>
+                pub const m_hObserverPawn: usize = 0x7E8; // CHandle<C_CSObserverPawn>
+                pub const m_bPawnIsAlive: usize = 0x7EC; // bool
+                pub const m_iPawnHealth: usize = 0x7F0; // uint32
+                pub const m_iPawnArmor: usize = 0x7F4; // int32
+                pub const m_bPawnHasDefuser: usize = 0x7F8; // bool
+                pub const m_bPawnHasHelmet: usize = 0x7F9; // bool
+                pub const m_nPawnCharacterDefIndex: usize = 0x7FA; // uint16
+                pub const m_iPawnLifetimeStart: usize = 0x7FC; // int32
+                pub const m_iPawnLifetimeEnd: usize = 0x800; // int32
+                pub const m_iPawnBotDifficulty: usize = 0x804; // int32
+                pub const m_hOriginalControllerOfCurrentPawn: usize = 0x808; // CHandle<CCSPlayerController>
+                pub const m_iScore: usize = 0x80C; // int32
+                pub const m_vecKills: usize = 0x810; // C_NetworkUtlVectorBase<EKillTypes_t>
+                pub const m_bMvpNoMusic: usize = 0x828; // bool
+                pub const m_eMvpReason: usize = 0x82C; // int32
+                pub const m_iMusicKitID: usize = 0x830; // int32
+                pub const m_iMusicKitMVPs: usize = 0x834; // int32
+                pub const m_iMVPs: usize = 0x838; // int32
+                pub const m_bIsPlayerNameDirty: usize = 0x83C; // bool
+            }
+            // Parent: C_BaseTrigger
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_source (string_t)
+            // NetworkVarNames: m_destination (string_t)
+            pub mod C_FootstepControl {
+                pub const m_source: usize = 0xCD8; // CUtlSymbolLarge
+                pub const m_destination: usize = 0xCE0; // CUtlSymbolLarge
+            }
+            // Parent: CBasePlayerWeaponVData
+            // Fields count: 92
+            //
+            // Metadata:
+            // MGetKV3ClassDefaults
+            // MPropertySuppressBaseClassField
+            // MPropertySuppressBaseClassField
+            pub mod CCSWeaponBaseVData {
+                pub const m_WeaponType: usize = 0x248; // CSWeaponType
+                pub const m_WeaponCategory: usize = 0x24C; // CSWeaponCategory
+                pub const m_szViewModel: usize = 0x250; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>>
+                pub const m_szPlayerModel: usize = 0x330; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>>
+                pub const m_szWorldDroppedModel: usize = 0x410; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>>
+                pub const m_szAimsightLensMaskModel: usize = 0x4F0; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>>
+                pub const m_szMagazineModel: usize = 0x5D0; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeCModel>>
+                pub const m_szHeatEffect: usize = 0x6B0; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_szEjectBrassEffect: usize = 0x790; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_szMuzzleFlashParticleAlt: usize = 0x870; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_szMuzzleFlashThirdPersonParticle: usize = 0x950; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_szMuzzleFlashThirdPersonParticleAlt: usize = 0xA30; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_szTracerParticle: usize = 0xB10; // CResourceNameTyped<CWeakHandle<InfoForResourceTypeIParticleSystemDefinition>>
+                pub const m_GearSlot: usize = 0xBF0; // gear_slot_t
+                pub const m_GearSlotPosition: usize = 0xBF4; // int32
+                pub const m_DefaultLoadoutSlot: usize = 0xBF8; // loadout_slot_t
+                pub const m_sWrongTeamMsg: usize = 0xC00; // CUtlString
+                pub const m_nPrice: usize = 0xC08; // int32
+                pub const m_nKillAward: usize = 0xC0C; // int32
+                pub const m_nPrimaryReserveAmmoMax: usize = 0xC10; // int32
+                pub const m_nSecondaryReserveAmmoMax: usize = 0xC14; // int32
+                pub const m_bMeleeWeapon: usize = 0xC18; // bool
+                pub const m_bHasBurstMode: usize = 0xC19; // bool
+                pub const m_bIsRevolver: usize = 0xC1A; // bool
+                pub const m_bCannotShootUnderwater: usize = 0xC1B; // bool
+                pub const m_szName: usize = 0xC20; // CGlobalSymbol
+                pub const m_szAnimExtension: usize = 0xC28; // CUtlString
+                pub const m_eSilencerType: usize = 0xC30; // CSWeaponSilencerType
+                pub const m_nCrosshairMinDistance: usize = 0xC34; // int32
+                pub const m_nCrosshairDeltaDistance: usize = 0xC38; // int32
+                pub const m_bIsFullAuto: usize = 0xC3C; // bool
+                pub const m_nNumBullets: usize = 0xC40; // int32
+                pub const m_flCycleTime: usize = 0xC44; // CFiringModeFloat
+                pub const m_flMaxSpeed: usize = 0xC4C; // CFiringModeFloat
+                pub const m_flSpread: usize = 0xC54; // CFiringModeFloat
+                pub const m_flInaccuracyCrouch: usize = 0xC5C; // CFiringModeFloat
+                pub const m_flInaccuracyStand: usize = 0xC64; // CFiringModeFloat
+                pub const m_flInaccuracyJump: usize = 0xC6C; // CFiringModeFloat
+                pub const m_flInaccuracyLand: usize = 0xC74; // CFiringModeFloat
+                pub const m_flInaccuracyLadder: usize = 0xC7C; // CFiringModeFloat
+                pub const m_flInaccuracyFire: usize = 0xC84; // CFiringModeFloat
+                pub const m_flInaccuracyMove: usize = 0xC8C; // CFiringModeFloat
+                pub const m_flRecoilAngle: usize = 0xC94; // CFiringModeFloat
+                pub const m_flRecoilAngleVariance: usize = 0xC9C; // CFiringModeFloat
+                pub const m_flRecoilMagnitude: usize = 0xCA4; // CFiringModeFloat
+                pub const m_flRecoilMagnitudeVariance: usize = 0xCAC; // CFiringModeFloat
+                pub const m_nTracerFrequency: usize = 0xCB4; // CFiringModeInt
+                pub const m_flInaccuracyJumpInitial: usize = 0xCBC; // float32
+                pub const m_flInaccuracyJumpApex: usize = 0xCC0; // float32
+                pub const m_flInaccuracyReload: usize = 0xCC4; // float32
+                pub const m_nRecoilSeed: usize = 0xCC8; // int32
+                pub const m_nSpreadSeed: usize = 0xCCC; // int32
+                pub const m_flTimeToIdleAfterFire: usize = 0xCD0; // float32
+                pub const m_flIdleInterval: usize = 0xCD4; // float32
+                pub const m_flAttackMovespeedFactor: usize = 0xCD8; // float32
+                pub const m_flHeatPerShot: usize = 0xCDC; // float32
+                pub const m_flInaccuracyPitchShift: usize = 0xCE0; // float32
+                pub const m_flInaccuracyAltSoundThreshold: usize = 0xCE4; // float32
+                pub const m_flBotAudibleRange: usize = 0xCE8; // float32
+                pub const m_szUseRadioSubtitle: usize = 0xCF0; // CUtlString
+                pub const m_bUnzoomsAfterShot: usize = 0xCF8; // bool
+                pub const m_bHideViewModelWhenZoomed: usize = 0xCF9; // bool
+                pub const m_nZoomLevels: usize = 0xCFC; // int32
+                pub const m_nZoomFOV1: usize = 0xD00; // int32
+                pub const m_nZoomFOV2: usize = 0xD04; // int32
+                pub const m_flZoomTime0: usize = 0xD08; // float32
+                pub const m_flZoomTime1: usize = 0xD0C; // float32
+                pub const m_flZoomTime2: usize = 0xD10; // float32
+                pub const m_flIronSightPullUpSpeed: usize = 0xD14; // float32
+                pub const m_flIronSightPutDownSpeed: usize = 0xD18; // float32
+                pub const m_flIronSightFOV: usize = 0xD1C; // float32
+                pub const m_flIronSightPivotForward: usize = 0xD20; // float32
+                pub const m_flIronSightLooseness: usize = 0xD24; // float32
+                pub const m_angPivotAngle: usize = 0xD28; // QAngle
+                pub const m_vecIronSightEyePos: usize = 0xD34; // 
+                pub const m_nDamage: usize = 0xD40; // int32
+                pub const m_flHeadshotMultiplier: usize = 0xD44; // float32
+                pub const m_flArmorRatio: usize = 0xD48; // float32
+                pub const m_flPenetration: usize = 0xD4C; // float32
+                pub const m_flRange: usize = 0xD50; // float32
+                pub const m_flRangeModifier: usize = 0xD54; // float32
+                pub const m_flFlinchVelocityModifierLarge: usize = 0xD58; // float32
+                pub const m_flFlinchVelocityModifierSmall: usize = 0xD5C; // float32
+                pub const m_flRecoveryTimeCrouch: usize = 0xD60; // float32
+                pub const m_flRecoveryTimeStand: usize = 0xD64; // float32
+                pub const m_flRecoveryTimeCrouchFinal: usize = 0xD68; // float32
+                pub const m_flRecoveryTimeStandFinal: usize = 0xD6C; // float32
+                pub const m_nRecoveryTransitionStartBullet: usize = 0xD70; // int32
+                pub const m_nRecoveryTransitionEndBullet: usize = 0xD74; // int32
+                pub const m_flThrowVelocity: usize = 0xD78; // float32
+                pub const m_vSmokeColor: usize = 0xD7C; // 
+                pub const m_szAnimClass: usize = 0xD88; // CGlobalSymbol
+            }
+            // Parent: None
+            // Fields count: 16
+            //
+            // Metadata:
+            // NetworkVarNames: m_nUniqueID (int)
+            // NetworkVarNames: m_unAccountID (uint32)
+            // NetworkVarNames: m_unTraceID (uint32)
+            // NetworkVarNames: m_rtGcTime (uint32)
+            // NetworkVarNames: m_vecEndPos (Vector)
+            // NetworkVarNames: m_vecStart (Vector)
+            // NetworkVarNames: m_vecLeft (Vector)
+            // NetworkVarNames: m_vecNormal (Vector)
+            // NetworkVarNames: m_nPlayer (int)
+            // NetworkVarNames: m_nEntity (int)
+            // NetworkVarNames: m_nHitbox (int)
+            // NetworkVarNames: m_flCreationTime (float)
+            // NetworkVarNames: m_nTintID (int)
+            // NetworkVarNames: m_nVersion (uint8)
+            // NetworkVarNames: m_ubSignature (uint8)
+            pub mod C_PlayerSprayDecal {
+                pub const m_nUniqueID: usize = 0xCD0; // int32
+                pub const m_unAccountID: usize = 0xCD4; // uint32
+                pub const m_unTraceID: usize = 0xCD8; // uint32
+                pub const m_rtGcTime: usize = 0xCDC; // uint32
+                pub const m_vecEndPos: usize = 0xCE0; // 
+                pub const m_vecStart: usize = 0xCEC; // 
+                pub const m_vecLeft: usize = 0xCF8; // 
+                pub const m_vecNormal: usize = 0xD04; // 
+                pub const m_nPlayer: usize = 0xD10; // int32
+                pub const m_nEntity: usize = 0xD14; // int32
+                pub const m_nHitbox: usize = 0xD18; // int32
+                pub const m_flCreationTime: usize = 0xD1C; // float32
+                pub const m_nTintID: usize = 0xD20; // int32
+                pub const m_nVersion: usize = 0xD24; // uint8
+                pub const m_ubSignature: usize = 0xD25; // uint8[128]
+                pub const m_SprayRenderHelper: usize = 0xDB0; // CPlayerSprayDecalRenderHelper
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 8
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkOverride
+            // NetworkVarNames: m_vecMoveDirEntitySpace (Vector)
+            // NetworkVarNames: m_flTargetSpeed (float32)
+            // NetworkVarNames: m_nTransitionStartTick (GameTick_t)
+            // NetworkVarNames: m_nTransitionDurationTicks (int)
+            // NetworkVarNames: m_flTransitionStartSpeed (float32)
+            // NetworkVarNames: m_hConveyorModels (EHANDLE)
+            pub mod C_FuncConveyor {
+                pub const m_vecMoveDirEntitySpace: usize = 0xCD8; // 
+                pub const m_flTargetSpeed: usize = 0xCE4; // float32
+                pub const m_nTransitionStartTick: usize = 0xCE8; // GameTick_t
+                pub const m_nTransitionDurationTicks: usize = 0xCEC; // int32
+                pub const m_flTransitionStartSpeed: usize = 0xCF0; // float32
+                pub const m_hConveyorModels: usize = 0xCF8; // C_NetworkUtlVectorBase<CHandle<C_BaseEntity>>
+                pub const m_flCurrentConveyorOffset: usize = 0xD10; // float32
+                pub const m_flCurrentConveyorSpeed: usize = 0xD14; // float32
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 19
+            //
+            // Metadata:
+            // NetworkVarNames: m_firePositions (Vector)
+            // NetworkVarNames: m_fireParentPositions (Vector)
+            // NetworkVarNames: m_bFireIsBurning (bool)
+            // NetworkVarNames: m_BurnNormal (Vector)
+            // NetworkVarNames: m_fireCount (int)
+            // NetworkVarNames: m_nInfernoType (int)
+            // NetworkVarNames: m_nFireLifetime (float)
+            // NetworkVarNames: m_bInPostEffectTime (bool)
+            // NetworkVarNames: m_nFireEffectTickBegin (int)
+            pub mod C_Inferno {
+                pub const m_nfxFireDamageEffect: usize = 0xD10; // ParticleIndex_t
+                pub const m_firePositions: usize = 0xD14; // Vector[64]
+                pub const m_fireParentPositions: usize = 0x1014; // Vector[64]
+                pub const m_bFireIsBurning: usize = 0x1314; // bool[64]
+                pub const m_BurnNormal: usize = 0x1354; // Vector[64]
+                pub const m_fireCount: usize = 0x1654; // int32
+                pub const m_nInfernoType: usize = 0x1658; // int32
+                pub const m_nFireLifetime: usize = 0x165C; // float32
+                pub const m_bInPostEffectTime: usize = 0x1660; // bool
+                pub const m_lastFireCount: usize = 0x1664; // int32
+                pub const m_nFireEffectTickBegin: usize = 0x1668; // int32
+                pub const m_drawableCount: usize = 0x8270; // int32
+                pub const m_blosCheck: usize = 0x8274; // bool
+                pub const m_nlosperiod: usize = 0x8278; // int32
+                pub const m_maxFireHalfWidth: usize = 0x827C; // float32
+                pub const m_maxFireHeight: usize = 0x8280; // float32
+                pub const m_minBounds: usize = 0x8284; // 
+                pub const m_maxBounds: usize = 0x8290; // 
+                pub const m_flLastGrassBurnThink: usize = 0x829C; // float32
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 51
+            //
+            // Metadata:
+            // NetworkVarNames: m_bEnabled (bool)
+            // NetworkVarNames: m_nColorMode (int)
+            // NetworkVarNames: m_Color (Color)
+            // NetworkVarNames: m_flColorTemperature (float)
+            // NetworkVarNames: m_flBrightness (float)
+            // NetworkVarNames: m_flBrightnessScale (float)
+            // NetworkVarNames: m_nDirectLight (int)
+            // NetworkVarNames: m_nBakedShadowIndex (int)
+            // NetworkVarNames: m_nLuminaireShape (int)
+            // NetworkVarNames: m_flLuminaireSize (float)
+            // NetworkVarNames: m_flLuminaireAnisotropy (float)
+            // NetworkVarNames: m_LightStyleString (CUtlString)
+            // NetworkVarNames: m_flLightStyleStartTime (GameTime_t)
+            // NetworkVarNames: m_QueuedLightStyleStrings (CUtlString)
+            // NetworkVarNames: m_LightStyleEvents (CUtlString)
+            // NetworkVarNames: m_LightStyleTargets (CHandle<C_BaseModelEntity>)
+            // NetworkVarNames: m_hLightCookie (HRenderTextureStrong)
+            // NetworkVarNames: m_flShape (float)
+            // NetworkVarNames: m_flSoftX (float)
+            // NetworkVarNames: m_flSoftY (float)
+            // NetworkVarNames: m_flSkirt (float)
+            // NetworkVarNames: m_flSkirtNear (float)
+            // NetworkVarNames: m_vSizeParams (Vector)
+            // NetworkVarNames: m_flRange (float)
+            // NetworkVarNames: m_vShear (Vector)
+            // NetworkVarNames: m_nBakeSpecularToCubemaps (int)
+            // NetworkVarNames: m_vBakeSpecularToCubemapsSize (Vector)
+            // NetworkVarNames: m_nCastShadows (int)
+            // NetworkVarNames: m_nShadowMapSize (int)
+            // NetworkVarNames: m_nShadowPriority (int)
+            // NetworkVarNames: m_bContactShadow (bool)
+            // NetworkVarNames: m_nBounceLight (int)
+            // NetworkVarNames: m_flBounceScale (float)
+            // NetworkVarNames: m_flMinRoughness (float)
+            // NetworkVarNames: m_vAlternateColor (Vector)
+            // NetworkVarNames: m_fAlternateColorBrightness (float)
+            // NetworkVarNames: m_nFog (int)
+            // NetworkVarNames: m_flFogStrength (float)
+            // NetworkVarNames: m_nFogShadows (int)
+            // NetworkVarNames: m_flFogScale (float)
+            // NetworkVarNames: m_flFadeSizeStart (float)
+            // NetworkVarNames: m_flFadeSizeEnd (float)
+            // NetworkVarNames: m_flShadowFadeSizeStart (float)
+            // NetworkVarNames: m_flShadowFadeSizeEnd (float)
+            // NetworkVarNames: m_bPrecomputedFieldsValid (bool)
+            // NetworkVarNames: m_vPrecomputedBoundsMins (Vector)
+            // NetworkVarNames: m_vPrecomputedBoundsMaxs (Vector)
+            // NetworkVarNames: m_vPrecomputedOBBOrigin (Vector)
+            // NetworkVarNames: m_vPrecomputedOBBAngles (QAngle)
+            // NetworkVarNames: m_vPrecomputedOBBExtent (Vector)
+            pub mod C_BarnLight {
+                pub const m_bEnabled: usize = 0xCD0; // bool
+                pub const m_nColorMode: usize = 0xCD4; // int32
+                pub const m_Color: usize = 0xCD8; // Color
+                pub const m_flColorTemperature: usize = 0xCDC; // float32
+                pub const m_flBrightness: usize = 0xCE0; // float32
+                pub const m_flBrightnessScale: usize = 0xCE4; // float32
+                pub const m_nDirectLight: usize = 0xCE8; // int32
+                pub const m_nBakedShadowIndex: usize = 0xCEC; // int32
+                pub const m_nLuminaireShape: usize = 0xCF0; // int32
+                pub const m_flLuminaireSize: usize = 0xCF4; // float32
+                pub const m_flLuminaireAnisotropy: usize = 0xCF8; // float32
+                pub const m_LightStyleString: usize = 0xD00; // CUtlString
+                pub const m_flLightStyleStartTime: usize = 0xD08; // GameTime_t
+                pub const m_QueuedLightStyleStrings: usize = 0xD10; // C_NetworkUtlVectorBase<CUtlString>
+                pub const m_LightStyleEvents: usize = 0xD28; // C_NetworkUtlVectorBase<CUtlString>
+                pub const m_LightStyleTargets: usize = 0xD40; // C_NetworkUtlVectorBase<CHandle<C_BaseModelEntity>>
+                pub const m_StyleEvent: usize = 0xD58; // CEntityIOOutput[4]
+                pub const m_hLightCookie: usize = 0xDF8; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_flShape: usize = 0xE00; // float32
+                pub const m_flSoftX: usize = 0xE04; // float32
+                pub const m_flSoftY: usize = 0xE08; // float32
+                pub const m_flSkirt: usize = 0xE0C; // float32
+                pub const m_flSkirtNear: usize = 0xE10; // float32
+                pub const m_vSizeParams: usize = 0xE14; // 
+                pub const m_flRange: usize = 0xE20; // float32
+                pub const m_vShear: usize = 0xE24; // 
+                pub const m_nBakeSpecularToCubemaps: usize = 0xE30; // int32
+                pub const m_vBakeSpecularToCubemapsSize: usize = 0xE34; // 
+                pub const m_nCastShadows: usize = 0xE40; // int32
+                pub const m_nShadowMapSize: usize = 0xE44; // int32
+                pub const m_nShadowPriority: usize = 0xE48; // int32
+                pub const m_bContactShadow: usize = 0xE4C; // bool
+                pub const m_nBounceLight: usize = 0xE50; // int32
+                pub const m_flBounceScale: usize = 0xE54; // float32
+                pub const m_flMinRoughness: usize = 0xE58; // float32
+                pub const m_vAlternateColor: usize = 0xE5C; // 
+                pub const m_fAlternateColorBrightness: usize = 0xE68; // float32
+                pub const m_nFog: usize = 0xE6C; // int32
+                pub const m_flFogStrength: usize = 0xE70; // float32
+                pub const m_nFogShadows: usize = 0xE74; // int32
+                pub const m_flFogScale: usize = 0xE78; // float32
+                pub const m_flFadeSizeStart: usize = 0xE7C; // float32
+                pub const m_flFadeSizeEnd: usize = 0xE80; // float32
+                pub const m_flShadowFadeSizeStart: usize = 0xE84; // float32
+                pub const m_flShadowFadeSizeEnd: usize = 0xE88; // float32
+                pub const m_bPrecomputedFieldsValid: usize = 0xE8C; // bool
+                pub const m_vPrecomputedBoundsMins: usize = 0xE90; // 
+                pub const m_vPrecomputedBoundsMaxs: usize = 0xE9C; // 
+                pub const m_vPrecomputedOBBOrigin: usize = 0xEA8; // 
+                pub const m_vPrecomputedOBBAngles: usize = 0xEB4; // QAngle
+                pub const m_vPrecomputedOBBExtent: usize = 0xEC0; // 
+            }
+            // Parent: C_BarnLight
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_bShowLight (bool)
+            pub mod C_RectLight {
+                pub const m_bShowLight: usize = 0xF18; // bool
+            }
+            // Parent: C_BarnLight
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_flInnerAngle (float)
+            // NetworkVarNames: m_flOuterAngle (float)
+            // NetworkVarNames: m_bShowLight (bool)
+            pub mod C_OmniLight {
+                pub const m_flInnerAngle: usize = 0xF18; // float32
+                pub const m_flOuterAngle: usize = 0xF1C; // float32
+                pub const m_bShowLight: usize = 0xF20; // bool
+            }
+            // Parent: C_Team
+            // Fields count: 10
+            //
+            // Metadata:
+            // NetworkVarNames: m_szTeamMatchStat (char)
+            // NetworkVarNames: m_numMapVictories (int)
+            // NetworkVarNames: m_bSurrendered (bool)
+            // NetworkVarNames: m_scoreFirstHalf (int32)
+            // NetworkVarNames: m_scoreSecondHalf (int32)
+            // NetworkVarNames: m_scoreOvertime (int32)
+            // NetworkVarNames: m_szClanTeamname (char)
+            // NetworkVarNames: m_iClanID (uint32)
+            // NetworkVarNames: m_szTeamFlagImage (char)
+            // NetworkVarNames: m_szTeamLogoImage (char)
+            pub mod C_CSTeam {
+                pub const m_szTeamMatchStat: usize = 0x608; // char[512]
+                pub const m_numMapVictories: usize = 0x808; // int32
+                pub const m_bSurrendered: usize = 0x80C; // bool
+                pub const m_scoreFirstHalf: usize = 0x810; // int32
+                pub const m_scoreSecondHalf: usize = 0x814; // int32
+                pub const m_scoreOvertime: usize = 0x818; // int32
+                pub const m_szClanTeamname: usize = 0x81C; // char[129]
+                pub const m_iClanID: usize = 0x8A0; // uint32
+                pub const m_szTeamFlagImage: usize = 0x8A4; // char[8]
+                pub const m_szTeamLogoImage: usize = 0x8AC; // char[8]
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 12
+            //
+            // Metadata:
+            // NetworkVarNames: m_hSkyMaterial (HMaterialStrong)
+            // NetworkVarNames: m_hSkyMaterialLightingOnly (HMaterialStrong)
+            // NetworkVarNames: m_bStartDisabled (bool)
+            // NetworkVarNames: m_vTintColor (Color)
+            // NetworkVarNames: m_vTintColorLightingOnly (Color)
+            // NetworkVarNames: m_flBrightnessScale (float)
+            // NetworkVarNames: m_nFogType (int)
+            // NetworkVarNames: m_flFogMinStart (float)
+            // NetworkVarNames: m_flFogMinEnd (float)
+            // NetworkVarNames: m_flFogMaxStart (float)
+            // NetworkVarNames: m_flFogMaxEnd (float)
+            // NetworkVarNames: m_bEnabled (bool)
+            pub mod C_EnvSky {
+                pub const m_hSkyMaterial: usize = 0xCD0; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_hSkyMaterialLightingOnly: usize = 0xCD8; // CStrongHandle<InfoForResourceTypeIMaterial2>
+                pub const m_bStartDisabled: usize = 0xCE0; // bool
+                pub const m_vTintColor: usize = 0xCE1; // Color
+                pub const m_vTintColorLightingOnly: usize = 0xCE5; // Color
+                pub const m_flBrightnessScale: usize = 0xCEC; // float32
+                pub const m_nFogType: usize = 0xCF0; // int32
+                pub const m_flFogMinStart: usize = 0xCF4; // float32
+                pub const m_flFogMinEnd: usize = 0xCF8; // float32
+                pub const m_flFogMaxStart: usize = 0xCFC; // float32
+                pub const m_flFogMaxEnd: usize = 0xD00; // float32
+                pub const m_bEnabled: usize = 0xD04; // bool
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_CLightComponent (CLightComponent::Storage_t)
+            pub mod C_LightEntity {
+                pub const m_CLightComponent: usize = 0xCD0; // CLightComponent*
+            }
+            // Parent: C_BaseTrigger
+            // Fields count: 16
+            //
+            // Metadata:
+            // NetworkVarNames: m_hPostSettings (HPostProcessingStrong)
+            // NetworkVarNames: m_flFadeDuration (float)
+            // NetworkVarNames: m_flMinLogExposure (float)
+            // NetworkVarNames: m_flMaxLogExposure (float)
+            // NetworkVarNames: m_flMinExposure (float)
+            // NetworkVarNames: m_flMaxExposure (float)
+            // NetworkVarNames: m_flExposureCompensation (float)
+            // NetworkVarNames: m_flExposureFadeSpeedUp (float)
+            // NetworkVarNames: m_flExposureFadeSpeedDown (float)
+            // NetworkVarNames: m_flTonemapEVSmoothingRange (float)
+            // NetworkVarNames: m_bMaster (bool)
+            // NetworkVarNames: m_bExposureControl (bool)
+            // NetworkVarNames: m_flRate (float)
+            // NetworkVarNames: m_flTonemapPercentTarget (float)
+            // NetworkVarNames: m_flTonemapPercentBrightPixels (float)
+            // NetworkVarNames: m_flTonemapMinAvgLum (float)
+            pub mod C_PostProcessingVolume {
+                pub const m_hPostSettings: usize = 0xCE8; // CStrongHandle<InfoForResourceTypeCPostProcessingResource>
+                pub const m_flFadeDuration: usize = 0xCF0; // float32
+                pub const m_flMinLogExposure: usize = 0xCF4; // float32
+                pub const m_flMaxLogExposure: usize = 0xCF8; // float32
+                pub const m_flMinExposure: usize = 0xCFC; // float32
+                pub const m_flMaxExposure: usize = 0xD00; // float32
+                pub const m_flExposureCompensation: usize = 0xD04; // float32
+                pub const m_flExposureFadeSpeedUp: usize = 0xD08; // float32
+                pub const m_flExposureFadeSpeedDown: usize = 0xD0C; // float32
+                pub const m_flTonemapEVSmoothingRange: usize = 0xD10; // float32
+                pub const m_bMaster: usize = 0xD14; // bool
+                pub const m_bExposureControl: usize = 0xD15; // bool
+                pub const m_flRate: usize = 0xD18; // float32
+                pub const m_flTonemapPercentTarget: usize = 0xD1C; // float32
+                pub const m_flTonemapPercentBrightPixels: usize = 0xD20; // float32
+                pub const m_flTonemapMinAvgLum: usize = 0xD24; // float32
+            }
+            // Parent: C_ParticleSystem
+            // Fields count: 5
+            //
+            // Metadata:
+            // NetworkVarNames: m_flAlphaScale (float32)
+            // NetworkVarNames: m_flRadiusScale (float32)
+            // NetworkVarNames: m_flSelfIllumScale (float32)
+            // NetworkVarNames: m_ColorTint (Color)
+            // NetworkVarNames: m_hTextureOverride (HRenderTextureStrong)
+            pub mod C_EnvParticleGlow {
+                pub const m_flAlphaScale: usize = 0x1280; // float32
+                pub const m_flRadiusScale: usize = 0x1284; // float32
+                pub const m_flSelfIllumScale: usize = 0x1288; // float32
+                pub const m_ColorTint: usize = 0x128C; // Color
+                pub const m_hTextureOverride: usize = 0x1290; // CStrongHandle<InfoForResourceTypeCTextureBase>
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_bLoop (bool)
+            // NetworkVarNames: m_flFPS (float)
+            // NetworkVarNames: m_hPositionKeys (HRenderTextureStrong)
+            // NetworkVarNames: m_hRotationKeys (HRenderTextureStrong)
+            // NetworkVarNames: m_vAnimationBoundsMin (Vector)
+            // NetworkVarNames: m_vAnimationBoundsMax (Vector)
+            // NetworkVarNames: m_flStartTime (float)
+            // NetworkVarNames: m_flStartFrame (float)
+            pub mod C_TextureBasedAnimatable {
+                pub const m_bLoop: usize = 0xCD0; // bool
+                pub const m_flFPS: usize = 0xCD4; // float32
+                pub const m_hPositionKeys: usize = 0xCD8; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_hRotationKeys: usize = 0xCE0; // CStrongHandle<InfoForResourceTypeCTextureBase>
+                pub const m_vAnimationBoundsMin: usize = 0xCE8; // 
+                pub const m_vAnimationBoundsMax: usize = 0xCF4; // 
+                pub const m_flStartTime: usize = 0xD00; // float32
+                pub const m_flStartFrame: usize = 0xD04; // float32
+            }
+            // Parent: C_BaseModelEntity
+            // Fields count: 13
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_bInitiallyPopulateInterpHistory (bool)
+            // NetworkVarNames: m_bAnimGraphUpdateEnabled (bool)
+            // NetworkVarNames: m_vecForce (Vector)
+            // NetworkVarNames: m_nForceBone (int32)
+            // NetworkVarNames: m_pRagdollPose (PhysicsRagdollPose_t*)
+            // NetworkVarNames: m_bClientRagdoll (bool)
+            pub mod CBaseAnimGraph {
+                pub const m_bInitiallyPopulateInterpHistory: usize = 0xD48; // bool
+                pub const m_bSuppressAnimEventSounds: usize = 0xD4A; // bool
+                pub const m_bAnimGraphUpdateEnabled: usize = 0xD58; // bool
+                pub const m_flMaxSlopeDistance: usize = 0xD5C; // float32
+                pub const m_vLastSlopeCheckPos: usize = 0xD60; // 
+                pub const m_bAnimationUpdateScheduled: usize = 0xD6C; // bool
+                pub const m_vecForce: usize = 0xD70; // 
+                pub const m_nForceBone: usize = 0xD7C; // int32
+                pub const m_pClientsideRagdoll: usize = 0xD80; // CBaseAnimGraph*
+                pub const m_bBuiltRagdoll: usize = 0xD88; // bool
+                pub const m_pRagdollPose: usize = 0xDA0; // PhysicsRagdollPose_t*
+                pub const m_bClientRagdoll: usize = 0xDA8; // bool
+                pub const m_bHasAnimatedMaterialAttributes: usize = 0xDB8; // bool
+            }
+            // Parent: None
+            // Fields count: 30
+            //
+            // Metadata:
+            // NetworkVarNames: m_noGhostCollision (bool)
+            pub mod C_BreakableProp {
+                pub const m_OnBreak: usize = 0xF20; // CEntityIOOutput
+                pub const m_OnHealthChanged: usize = 0xF48; // CEntityOutputTemplate<float32>
+                pub const m_OnTakeDamage: usize = 0xF70; // CEntityIOOutput
+                pub const m_impactEnergyScale: usize = 0xF98; // float32
+                pub const m_iMinHealthDmg: usize = 0xF9C; // int32
+                pub const m_flPressureDelay: usize = 0xFA0; // float32
+                pub const m_hBreaker: usize = 0xFA4; // CHandle<C_BaseEntity>
+                pub const m_PerformanceMode: usize = 0xFA8; // PerformanceMode_t
+                pub const m_flDmgModBullet: usize = 0xFAC; // float32
+                pub const m_flDmgModClub: usize = 0xFB0; // float32
+                pub const m_flDmgModExplosive: usize = 0xFB4; // float32
+                pub const m_flDmgModFire: usize = 0xFB8; // float32
+                pub const m_iszPhysicsDamageTableName: usize = 0xFC0; // CUtlSymbolLarge
+                pub const m_iszBasePropData: usize = 0xFC8; // CUtlSymbolLarge
+                pub const m_iInteractions: usize = 0xFD0; // int32
+                pub const m_flPreventDamageBeforeTime: usize = 0xFD4; // GameTime_t
+                pub const m_bHasBreakPiecesOrCommands: usize = 0xFD8; // bool
+                pub const m_explodeDamage: usize = 0xFDC; // float32
+                pub const m_explodeRadius: usize = 0xFE0; // float32
+                pub const m_explosionDelay: usize = 0xFE8; // float32
+                pub const m_explosionBuildupSound: usize = 0xFF0; // CUtlSymbolLarge
+                pub const m_explosionCustomEffect: usize = 0xFF8; // CUtlSymbolLarge
+                pub const m_explosionCustomSound: usize = 0x1000; // CUtlSymbolLarge
+                pub const m_explosionModifier: usize = 0x1008; // CUtlSymbolLarge
+                pub const m_hPhysicsAttacker: usize = 0x1010; // CHandle<C_BasePlayerPawn>
+                pub const m_flLastPhysicsInfluenceTime: usize = 0x1014; // GameTime_t
+                pub const m_flDefaultFadeScale: usize = 0x1018; // float32
+                pub const m_hLastAttacker: usize = 0x101C; // CHandle<C_BaseEntity>
+                pub const m_hFlareEnt: usize = 0x1020; // CHandle<C_BaseEntity>
+                pub const m_noGhostCollision: usize = 0x1024; // bool
+            }
+            // Parent: C_BreakableProp
+            // Fields count: 23
+            //
+            // Metadata:
+            // NetworkVarNames: m_bUseHitboxesForRenderBox (bool)
+            // NetworkVarNames: m_bUseAnimGraph (bool)
+            pub mod C_DynamicProp {
+                pub const m_bUseHitboxesForRenderBox: usize = 0x1028; // bool
+                pub const m_bUseAnimGraph: usize = 0x1029; // bool
+                pub const m_pOutputAnimBegun: usize = 0x1030; // CEntityIOOutput
+                pub const m_pOutputAnimOver: usize = 0x1058; // CEntityIOOutput
+                pub const m_pOutputAnimLoopCycleOver: usize = 0x1080; // CEntityIOOutput
+                pub const m_OnAnimReachedStart: usize = 0x10A8; // CEntityIOOutput
+                pub const m_OnAnimReachedEnd: usize = 0x10D0; // CEntityIOOutput
+                pub const m_iszIdleAnim: usize = 0x10F8; // CUtlSymbolLarge
+                pub const m_nIdleAnimLoopMode: usize = 0x1100; // AnimLoopMode_t
+                pub const m_bRandomizeCycle: usize = 0x1104; // bool
+                pub const m_bStartDisabled: usize = 0x1105; // bool
+                pub const m_bFiredStartEndOutput: usize = 0x1106; // bool
+                pub const m_bForceNpcExclude: usize = 0x1107; // bool
+                pub const m_bCreateNonSolid: usize = 0x1108; // bool
+                pub const m_bIsOverrideProp: usize = 0x1109; // bool
+                pub const m_iInitialGlowState: usize = 0x110C; // int32
+                pub const m_nGlowRange: usize = 0x1110; // int32
+                pub const m_nGlowRangeMin: usize = 0x1114; // int32
+                pub const m_glowColor: usize = 0x1118; // Color
+                pub const m_nGlowTeam: usize = 0x111C; // int32
+                pub const m_iCachedFrameCount: usize = 0x1120; // int32
+                pub const m_vecCachedRenderMins: usize = 0x1124; // 
+                pub const m_vecCachedRenderMaxs: usize = 0x1130; // 
+            }
+            // Parent: C_BaseTrigger
+            // Fields count: 9
+            //
+            // Metadata:
+            // NetworkVarNames: m_bEnabled (bool)
+            // NetworkVarNames: m_MaxWeight (float)
+            // NetworkVarNames: m_FadeDuration (float)
+            // NetworkVarNames: m_Weight (float)
+            // NetworkVarNames: m_lookupFilename (char)
+            pub mod C_ColorCorrectionVolume {
+                pub const m_LastEnterWeight: usize = 0xCD8; // float32
+                pub const m_LastEnterTime: usize = 0xCDC; // float32
+                pub const m_LastExitWeight: usize = 0xCE0; // float32
+                pub const m_LastExitTime: usize = 0xCE4; // float32
+                pub const m_bEnabled: usize = 0xCE8; // bool
+                pub const m_MaxWeight: usize = 0xCEC; // float32
+                pub const m_FadeDuration: usize = 0xCF0; // float32
+                pub const m_Weight: usize = 0xCF4; // float32
+                pub const m_lookupFilename: usize = 0xCF8; // char[512]
+            }
+            // Parent: None
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_targetCamera (CUtlString)
+            // NetworkVarNames: m_nResolutionEnum (int)
+            // NetworkVarNames: m_bRenderShadows (bool)
+            // NetworkVarNames: m_bUseUniqueColorTarget (bool)
+            // NetworkVarNames: m_brushModelName (CUtlString)
+            // NetworkVarNames: m_hTargetCamera (EHANDLE)
+            // NetworkVarNames: m_bEnabled (bool)
+            // NetworkVarNames: m_bDraw3DSkybox (bool)
+            pub mod C_FuncMonitor {
+                pub const m_targetCamera: usize = 0xCD0; // CUtlString
+                pub const m_nResolutionEnum: usize = 0xCD8; // int32
+                pub const m_bRenderShadows: usize = 0xCDC; // bool
+                pub const m_bUseUniqueColorTarget: usize = 0xCDD; // bool
+                pub const m_brushModelName: usize = 0xCE0; // CUtlString
+                pub const m_hTargetCamera: usize = 0xCE8; // CHandle<C_BaseEntity>
+                pub const m_bEnabled: usize = 0xCEC; // bool
+                pub const m_bDraw3DSkybox: usize = 0xCED; // bool
+            }
+            // Parent: None
+            // Fields count: 0
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkOverride
+            pub mod C_FuncMoveLinear {
+            }
+            // Parent: CBaseAnimGraph
+            // Fields count: 13
+            //
+            // Metadata:
+            // NetworkVarNames: m_bActive (bool)
+            // NetworkVarNames: m_flStartTime (GameTime_t)
+            // NetworkVarNames: m_flStartTimeInCommentary (float32)
+            // NetworkVarNames: m_iszCommentaryFile (string_t)
+            // NetworkVarNames: m_iszTitle (string_t)
+            // NetworkVarNames: m_iszSpeakers (string_t)
+            // NetworkVarNames: m_iNodeNumber (int)
+            // NetworkVarNames: m_iNodeNumberMax (int)
+            // NetworkVarNames: m_bListenedTo (bool)
+            // NetworkVarNames: m_hViewPosition (CHandle<C_BaseEntity>)
+            pub mod C_PointCommentaryNode {
+                pub const m_bActive: usize = 0xEE0; // bool
+                pub const m_bWasActive: usize = 0xEE1; // bool
+                pub const m_flEndTime: usize = 0xEE4; // GameTime_t
+                pub const m_flStartTime: usize = 0xEE8; // GameTime_t
+                pub const m_flStartTimeInCommentary: usize = 0xEEC; // float32
+                pub const m_iszCommentaryFile: usize = 0xEF0; // CUtlSymbolLarge
+                pub const m_iszTitle: usize = 0xEF8; // CUtlSymbolLarge
+                pub const m_iszSpeakers: usize = 0xF00; // CUtlSymbolLarge
+                pub const m_iNodeNumber: usize = 0xF08; // int32
+                pub const m_iNodeNumberMax: usize = 0xF0C; // int32
+                pub const m_bListenedTo: usize = 0xF10; // bool
+                pub const m_hViewPosition: usize = 0xF20; // CHandle<C_BaseEntity>
+                pub const m_bRestartAfterRestore: usize = 0xF24; // bool
+            }
+            // Parent: None
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_bIsUsable (bool)
+            pub mod C_BaseDoor {
+                pub const m_bIsUsable: usize = 0xCD0; // bool
+            }
+            // Parent: CBaseAnimGraph
+            // Fields count: 19
+            //
+            // Metadata:
+            // NetworkVarNames: m_flexWeight (float32)
+            // NetworkVarNames: m_blinktoggle (bool)
+            pub mod C_BaseFlex {
+                pub const m_flexWeight: usize = 0xEE8; // C_NetworkUtlVectorBase<float32>
+                pub const m_vLookTargetPosition: usize = 0xF00; // 
+                pub const m_blinktoggle: usize = 0xF18; // bool
+                pub const m_nLastFlexUpdateFrameCount: usize = 0xF78; // int32
+                pub const m_CachedViewTarget: usize = 0xF7C; // 
+                pub const m_nNextSceneEventId: usize = 0xF88; // uint32
+                pub const m_iBlink: usize = 0xF8C; // int32
+                pub const m_blinktime: usize = 0xF90; // float32
+                pub const m_prevblinktoggle: usize = 0xF94; // bool
+                pub const m_iJawOpen: usize = 0xF98; // int32
+                pub const m_flJawOpenAmount: usize = 0xF9C; // float32
+                pub const m_flBlinkAmount: usize = 0xFA0; // float32
+                pub const m_iMouthAttachment: usize = 0xFA4; // AttachmentHandle_t
+                pub const m_iEyeAttachment: usize = 0xFA5; // AttachmentHandle_t
+                pub const m_bResetFlexWeightsOnModelChange: usize = 0xFA6; // bool
+                pub const m_nEyeOcclusionRendererBone: usize = 0xFC0; // int32
+                pub const m_mEyeOcclusionRendererCameraToBoneTransform: usize = 0xFC4; // matrix3x4_t
+                pub const m_vEyeOcclusionRendererHalfExtent: usize = 0xFF4; // 
+                pub const m_PhonemeClasses: usize = 0x1010; // C_BaseFlex::Emphasized_Phoneme[3]
+            }
+            // Parent: CBaseAnimGraph
+            // Fields count: 23
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_poolOrigin (Vector)
+            // NetworkVarNames: m_waterLevel (float32)
+            // NetworkVarNames: m_x (float32)
+            // NetworkVarNames: m_y (float32)
+            // NetworkVarNames: m_z (float32)
+            // NetworkVarNames: m_angle (float32)
+            pub mod C_Fish {
+                pub const m_pos: usize = 0xED8; // 
+                pub const m_vel: usize = 0xEE4; // 
+                pub const m_angles: usize = 0xEF0; // QAngle
+                pub const m_localLifeState: usize = 0xEFC; // int32
+                pub const m_deathDepth: usize = 0xF00; // float32
+                pub const m_deathAngle: usize = 0xF04; // float32
+                pub const m_buoyancy: usize = 0xF08; // float32
+                pub const m_wiggleTimer: usize = 0xF10; // CountdownTimer
+                pub const m_wigglePhase: usize = 0xF28; // float32
+                pub const m_wiggleRate: usize = 0xF2C; // float32
+                pub const m_actualPos: usize = 0xF30; // 
+                pub const m_actualAngles: usize = 0xF3C; // QAngle
+                pub const m_poolOrigin: usize = 0xF48; // 
+                pub const m_waterLevel: usize = 0xF54; // float32
+                pub const m_gotUpdate: usize = 0xF58; // bool
+                pub const m_x: usize = 0xF5C; // float32
+                pub const m_y: usize = 0xF60; // float32
+                pub const m_z: usize = 0xF64; // float32
+                pub const m_angle: usize = 0xF68; // float32
+                pub const m_errorHistory: usize = 0xF6C; // float32[20]
+                pub const m_errorHistoryIndex: usize = 0xFBC; // int32
+                pub const m_errorHistoryCount: usize = 0xFC0; // int32
+                pub const m_averageError: usize = 0xFC4; // float32
+            }
+            // Parent: C_BreakableProp
+            // Fields count: 1
+            //
+            // Metadata:
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_bAwake (bool)
+            pub mod C_PhysicsProp {
+                pub const m_bAwake: usize = 0x1028; // bool
+            }
+            // Parent: C_DynamicProp
+            // Fields count: 7
+            //
+            // Metadata:
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_eDoorState (DoorState_t)
+            // NetworkVarNames: m_bLocked (bool)
+            // NetworkVarNames: m_closedPosition (Vector)
+            // NetworkVarNames: m_closedAngles (QAngle)
+            // NetworkVarNames: m_hMaster (CHandle<C_BasePropDoor>)
+            pub mod C_BasePropDoor {
+                pub const m_eDoorState: usize = 0x1150; // DoorState_t
+                pub const m_modelChanged: usize = 0x1154; // bool
+                pub const m_bLocked: usize = 0x1155; // bool
+                pub const m_closedPosition: usize = 0x1158; // 
+                pub const m_closedAngles: usize = 0x1164; // QAngle
+                pub const m_hMaster: usize = 0x1170; // CHandle<C_BasePropDoor>
+                pub const m_vWhereToSetLightingOrigin: usize = 0x1174; // 
+            }
+            // Parent: CBaseAnimGraph
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_ragPos (Vector)
+            // NetworkVarNames: m_ragAngles (QAngle)
+            // NetworkVarNames: m_flBlendWeight (float32)
+            // NetworkVarNames: m_hRagdollSource (EHANDLE)
+            pub mod C_RagdollProp {
+                pub const m_ragPos: usize = 0xEE0; // C_NetworkUtlVectorBase<Vector>
+                pub const m_ragAngles: usize = 0xEF8; // C_NetworkUtlVectorBase<QAngle>
+                pub const m_flBlendWeight: usize = 0xF10; // float32
+                pub const m_hRagdollSource: usize = 0xF14; // CHandle<C_BaseEntity>
+                pub const m_iEyeAttachment: usize = 0xF18; // AttachmentHandle_t
+                pub const m_flBlendWeightCurrent: usize = 0xF1C; // float32
+                pub const m_parentPhysicsBoneIndices: usize = 0xF20; // CUtlVector<int32>
+                pub const m_worldSpaceBoneComputationOrder: usize = 0xF38; // CUtlVector<int32>
+            }
+            // Parent: C_PhysicsProp
+            // Fields count: 1
+            //
+            // Metadata:
+            // MNetworkExcludeByName
+            // NetworkVarNames: m_ShardDesc (shard_model_desc_t)
+            pub mod C_ShatterGlassShardPhysics {
+                pub const m_ShardDesc: usize = 0x1038; // shard_model_desc_t
+            }
+            // Parent: C_BaseFlex
+            // Fields count: 20
+            //
+            // Metadata:
+            // NetworkVarNames: m_AttributeManager (CAttributeContainer)
+            // NetworkVarNames: m_OriginalOwnerXuidLow (uint32)
+            // NetworkVarNames: m_OriginalOwnerXuidHigh (uint32)
+            // NetworkVarNames: m_nFallbackPaintKit (int)
+            // NetworkVarNames: m_nFallbackSeed (int)
+            // NetworkVarNames: m_flFallbackWear (float)
+            // NetworkVarNames: m_nFallbackStatTrak (int)
+            pub mod C_EconEntity {
+                pub const m_flFlexDelayTime: usize = 0x1080; // float32
+                pub const m_flFlexDelayedWeight: usize = 0x1088; // float32*
+                pub const m_bAttributesInitialized: usize = 0x1090; // bool
+                pub const m_AttributeManager: usize = 0x1098; // C_AttributeContainer
+                pub const m_OriginalOwnerXuidLow: usize = 0x1540; // uint32
+                pub const m_OriginalOwnerXuidHigh: usize = 0x1544; // uint32
+                pub const m_nFallbackPaintKit: usize = 0x1548; // int32
+                pub const m_nFallbackSeed: usize = 0x154C; // int32
+                pub const m_flFallbackWear: usize = 0x1550; // float32
+                pub const m_nFallbackStatTrak: usize = 0x1554; // int32
+                pub const m_bClientside: usize = 0x1558; // bool
+                pub const m_bParticleSystemsCreated: usize = 0x1559; // bool
+                pub const m_vecAttachedParticles: usize = 0x1560; // CUtlVector<int32>
+                pub const m_hViewmodelAttachment: usize = 0x1578; // CHandle<CBaseAnimGraph>
+                pub const m_iOldTeam: usize = 0x157C; // int32
+                pub const m_bAttachmentDirty: usize = 0x1580; // bool
+                pub const m_nUnloadedModelIndex: usize = 0x1584; // int32
+                pub const m_iNumOwnerValidationRetries: usize = 0x1588; // int32
+                pub const m_hOldProvidee: usize = 0x1598; // CHandle<C_BaseEntity>
+                pub const m_vecAttachedModels: usize = 0x15A0; // CUtlVector<C_EconEntity::AttachedModelData_t>
+            }
+            // Parent: C_BaseFlex
+            // Fields count: 12
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // NetworkVarNames: m_bIsLive (bool)
+            // NetworkVarNames: m_DmgRadius (float32)
+            // NetworkVarNames: m_flDetonateTime (GameTime_t)
+            // NetworkVarNames: m_flDamage (float32)
+            // NetworkVarNames: m_hThrower (CHandle<CCSPlayerPawn>)
+            pub mod C_BaseGrenade {
+                pub const m_bHasWarnedAI: usize = 0x1070; // bool
+                pub const m_bIsSmokeGrenade: usize = 0x1071; // bool
+                pub const m_bIsLive: usize = 0x1072; // bool
+                pub const m_DmgRadius: usize = 0x1074; // float32
+                pub const m_flDetonateTime: usize = 0x1078; // GameTime_t
+                pub const m_flWarnAITime: usize = 0x107C; // float32
+                pub const m_flDamage: usize = 0x1080; // float32
+                pub const m_iszBounceSound: usize = 0x1088; // CUtlSymbolLarge
+                pub const m_ExplosionSound: usize = 0x1090; // CUtlString
+                pub const m_hThrower: usize = 0x109C; // CHandle<C_CSPlayerPawn>
+                pub const m_flNextAttack: usize = 0x10B4; // GameTime_t
+                pub const m_hOriginalThrower: usize = 0x10B8; // CHandle<C_CSPlayerPawn>
+            }
+            // Parent: CBaseAnimGraph
+            // Fields count: 17
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkOverride
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_nViewModelIndex (uint32)
+            // NetworkVarNames: m_nAnimationParity (uint32)
+            // NetworkVarNames: m_flAnimationStartTime (float32)
+            // NetworkVarNames: m_hWeapon (CHandle<CBasePlayerWeapon>)
+            // NetworkVarNames: m_hControlPanel (CHandle<CBaseEntity>)
+            pub mod C_BaseViewModel {
+                pub const m_vecLastFacing: usize = 0xEE0; // 
+                pub const m_nViewModelIndex: usize = 0xEEC; // uint32
+                pub const m_nAnimationParity: usize = 0xEF0; // uint32
+                pub const m_flAnimationStartTime: usize = 0xEF4; // float32
+                pub const m_hWeapon: usize = 0xEF8; // CHandle<C_BasePlayerWeapon>
+                pub const m_sVMName: usize = 0xF00; // CUtlSymbolLarge
+                pub const m_sAnimationPrefix: usize = 0xF08; // CUtlSymbolLarge
+                pub const m_hWeaponModel: usize = 0xF10; // CHandle<C_ViewmodelWeapon>
+                pub const m_iCameraAttachment: usize = 0xF14; // AttachmentHandle_t
+                pub const m_vecLastCameraAngles: usize = 0xF18; // QAngle
+                pub const m_previousElapsedDuration: usize = 0xF24; // float32
+                pub const m_previousCycle: usize = 0xF28; // float32
+                pub const m_nOldAnimationParity: usize = 0xF2C; // int32
+                pub const m_hOldLayerSequence: usize = 0xF30; // HSequence
+                pub const m_oldLayer: usize = 0xF34; // int32
+                pub const m_oldLayerStartTime: usize = 0xF38; // float32
+                pub const m_hControlPanel: usize = 0xF3C; // CHandle<C_BaseEntity>
+            }
+            // Parent: C_BaseGrenade
+            // Fields count: 16
+            //
+            // Metadata:
+            // NetworkVarNames: m_vInitialPosition (Vector)
+            // NetworkVarNames: m_vInitialVelocity (Vector)
+            // NetworkVarNames: m_nBounces (int)
+            // NetworkVarNames: m_nExplodeEffectIndex (HParticleSystemDefinitionStrong)
+            // NetworkVarNames: m_nExplodeEffectTickBegin (int)
+            // NetworkVarNames: m_vecExplodeEffectOrigin (Vector)
+            pub mod C_BaseCSGrenadeProjectile {
+                pub const m_vInitialPosition: usize = 0x10C0; // 
+                pub const m_vInitialVelocity: usize = 0x10CC; // 
+                pub const m_nBounces: usize = 0x10D8; // int32
+                pub const m_nExplodeEffectIndex: usize = 0x10E0; // CStrongHandle<InfoForResourceTypeIParticleSystemDefinition>
+                pub const m_nExplodeEffectTickBegin: usize = 0x10E8; // int32
+                pub const m_vecExplodeEffectOrigin: usize = 0x10EC; // 
+                pub const m_flSpawnTime: usize = 0x10F8; // GameTime_t
+                pub const vecLastTrailLinePos: usize = 0x10FC; // 
+                pub const flNextTrailLineTime: usize = 0x1108; // GameTime_t
+                pub const m_bExplodeEffectBegan: usize = 0x110C; // bool
+                pub const m_bCanCreateGrenadeTrail: usize = 0x110D; // bool
+                pub const m_nSnapshotTrajectoryEffectIndex: usize = 0x1110; // ParticleIndex_t
+                pub const m_hSnapshotTrajectoryParticleSnapshot: usize = 0x1118; // CStrongHandle<InfoForResourceTypeIParticleSnapshot>
+                pub const m_arrTrajectoryTrailPoints: usize = 0x1120; // CUtlVector<Vector>
+                pub const m_arrTrajectoryTrailPointCreationTimes: usize = 0x1138; // CUtlVector<float32>
+                pub const m_flTrajectoryTrailEffectCreationTime: usize = 0x1150; // float32
+            }
+            // Parent: CBaseAnimGraph
+            // Fields count: 29
+            //
+            // Metadata:
+            // NetworkVarNames: m_bBombTicking (bool)
+            // NetworkVarNames: m_nBombSite (int)
+            // NetworkVarNames: m_nSourceSoundscapeHash (int)
+            // NetworkVarNames: m_entitySpottedState (EntitySpottedState_t)
+            // NetworkVarNames: m_flC4Blow (GameTime_t)
+            // NetworkVarNames: m_bCannotBeDefused (bool)
+            // NetworkVarNames: m_bHasExploded (bool)
+            // NetworkVarNames: m_flTimerLength (float)
+            // NetworkVarNames: m_bBeingDefused (bool)
+            // NetworkVarNames: m_flDefuseLength (float)
+            // NetworkVarNames: m_flDefuseCountDown (GameTime_t)
+            // NetworkVarNames: m_bBombDefused (bool)
+            // NetworkVarNames: m_hBombDefuser (CHandle<CCSPlayerPawn>)
+            // NetworkVarNames: m_hControlPanel (CHandle<CBaseEntity>)
+            pub mod C_PlantedC4 {
+                pub const m_bBombTicking: usize = 0xED8; // bool
+                pub const m_nBombSite: usize = 0xEDC; // int32
+                pub const m_nSourceSoundscapeHash: usize = 0xEE0; // int32
+                pub const m_entitySpottedState: usize = 0xEE8; // EntitySpottedState_t
+                pub const m_flNextGlow: usize = 0xF00; // GameTime_t
+                pub const m_flNextBeep: usize = 0xF04; // GameTime_t
+                pub const m_flC4Blow: usize = 0xF08; // GameTime_t
+                pub const m_bCannotBeDefused: usize = 0xF0C; // bool
+                pub const m_bHasExploded: usize = 0xF0D; // bool
+                pub const m_flTimerLength: usize = 0xF10; // float32
+                pub const m_bBeingDefused: usize = 0xF14; // bool
+                pub const m_bTriggerWarning: usize = 0xF18; // float32
+                pub const m_bExplodeWarning: usize = 0xF1C; // float32
+                pub const m_bC4Activated: usize = 0xF20; // bool
+                pub const m_bTenSecWarning: usize = 0xF21; // bool
+                pub const m_flDefuseLength: usize = 0xF24; // float32
+                pub const m_flDefuseCountDown: usize = 0xF28; // GameTime_t
+                pub const m_bBombDefused: usize = 0xF2C; // bool
+                pub const m_hBombDefuser: usize = 0xF30; // CHandle<C_CSPlayerPawn>
+                pub const m_hControlPanel: usize = 0xF34; // CHandle<C_BaseEntity>
+                pub const m_hDefuserMultimeter: usize = 0xF38; // CHandle<C_Multimeter>
+                pub const m_flNextRadarFlashTime: usize = 0xF3C; // GameTime_t
+                pub const m_bRadarFlash: usize = 0xF40; // bool
+                pub const m_pBombDefuser: usize = 0xF44; // CHandle<C_CSPlayerPawn>
+                pub const m_fLastDefuseTime: usize = 0xF48; // GameTime_t
+                pub const m_pPredictionOwner: usize = 0xF50; // CBasePlayerController*
+                pub const m_vecC4ExplodeSpectatePos: usize = 0xF58; // 
+                pub const m_vecC4ExplodeSpectateAng: usize = 0xF64; // QAngle
+                pub const m_flC4ExplodeSpectateDuration: usize = 0xF70; // float32
+            }
+            // Parent: C_EconEntity
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_bShouldGlow (bool)
+            pub mod C_Item {
+                pub const m_bShouldGlow: usize = 0x15B8; // bool
+                pub const m_pReticleHintTextName: usize = 0x15B9; // char[256]
+            }
+            // Parent: C_DynamicProp
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_jumpedThisFrame (bool)
+            // NetworkVarNames: m_leader (CHandle<CCSPlayerPawn>)
+            // NetworkVarNames: m_AttributeManager (CAttributeContainer)
+            // NetworkVarNames: m_OriginalOwnerXuidLow (uint32)
+            // NetworkVarNames: m_OriginalOwnerXuidHigh (uint32)
+            pub mod C_Chicken {
+                pub const m_hHolidayHatAddon: usize = 0x1148; // CHandle<CBaseAnimGraph>
+                pub const m_jumpedThisFrame: usize = 0x114C; // bool
+                pub const m_leader: usize = 0x1150; // CHandle<C_CSPlayerPawn>
+                pub const m_AttributeManager: usize = 0x1158; // C_AttributeContainer
+                pub const m_OriginalOwnerXuidLow: usize = 0x1600; // uint32
+                pub const m_OriginalOwnerXuidHigh: usize = 0x1604; // uint32
+                pub const m_bAttributesInitialized: usize = 0x1608; // bool
+                pub const m_hWaterWakeParticles: usize = 0x160C; // ParticleIndex_t
+            }
+            // Parent: C_EconEntity
+            // Fields count: 7
+            //
+            // Metadata:
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkIncludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByUserGroup
+            // MNetworkUserGroupProxy
+            // NetworkVarNames: m_nNextPrimaryAttackTick (GameTick_t)
+            // NetworkVarNames: m_flNextPrimaryAttackTickRatio (float32)
+            // NetworkVarNames: m_nNextSecondaryAttackTick (GameTick_t)
+            // NetworkVarNames: m_flNextSecondaryAttackTickRatio (float32)
+            // NetworkVarNames: m_iClip1 (int32)
+            // NetworkVarNames: m_iClip2 (int32)
+            // NetworkVarNames: m_pReserveAmmo (int)
+            pub mod C_BasePlayerWeapon {
+                pub const m_nNextPrimaryAttackTick: usize = 0x15B8; // GameTick_t
+                pub const m_flNextPrimaryAttackTickRatio: usize = 0x15BC; // float32
+                pub const m_nNextSecondaryAttackTick: usize = 0x15C0; // GameTick_t
+                pub const m_flNextSecondaryAttackTickRatio: usize = 0x15C4; // float32
+                pub const m_iClip1: usize = 0x15C8; // int32
+                pub const m_iClip2: usize = 0x15CC; // int32
+                pub const m_pReserveAmmo: usize = 0x15D0; // int32[2]
+            }
+            // Parent: C_RagdollProp
+            // Fields count: 7
+            //
+            // Metadata:
+            // NetworkVarNames: m_boneIndexAttached (uint32)
+            // NetworkVarNames: m_ragdollAttachedObjectIndex (uint32)
+            // NetworkVarNames: m_attachmentPointBoneSpace (Vector)
+            // NetworkVarNames: m_attachmentPointRagdollSpace (Vector)
+            pub mod C_RagdollPropAttached {
+                pub const m_boneIndexAttached: usize = 0xF50; // uint32
+                pub const m_ragdollAttachedObjectIndex: usize = 0xF54; // uint32
+                pub const m_attachmentPointBoneSpace: usize = 0xF58; // 
+                pub const m_attachmentPointRagdollSpace: usize = 0xF64; // 
+                pub const m_vecOffset: usize = 0xF70; // 
+                pub const m_parentTime: usize = 0xF7C; // float32
+                pub const m_bHasParent: usize = 0xF80; // bool
+            }
+            // Parent: C_BaseFlex
+            // Fields count: 8
+            //
+            // Metadata:
+            // MNetworkExcludeByUserGroup
+            // NetworkVarNames: m_hMyWearables (CHandle<C_EconWearable>)
+            // NetworkVarNames: m_flFieldOfView (float)
+            pub mod C_BaseCombatCharacter {
+                pub const m_hMyWearables: usize = 0x1070; // C_NetworkUtlVectorBase<CHandle<C_EconWearable>>
+                pub const m_bloodColor: usize = 0x1088; // int32
+                pub const m_leftFootAttachment: usize = 0x108C; // AttachmentHandle_t
+                pub const m_rightFootAttachment: usize = 0x108D; // AttachmentHandle_t
+                pub const m_nWaterWakeMode: usize = 0x1090; // C_BaseCombatCharacter::WaterWakeMode_t
+                pub const m_flWaterWorldZ: usize = 0x1094; // float32
+                pub const m_flWaterNextTraceTime: usize = 0x1098; // float32
+                pub const m_flFieldOfView: usize = 0x109C; // float32
+            }
+            // Parent: C_BaseCombatCharacter
+            // Fields count: 28
+            //
+            // Metadata:
+            // MNetworkUserGroupProxy
+            // MNetworkUserGroupProxy
+            // MNetworkExcludeByUserGroup
+            // MNetworkIncludeByUserGroup
+            // MNetworkIncludeByUserGroup
+            // MNetworkIncludeByUserGroup
+            // MNetworkOverride
+            // MNetworkOverride
+            // MNetworkOverride
+            // MNetworkOverride
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // NetworkVarNames: m_pWeaponServices (CPlayer_WeaponServices*)
+            // NetworkVarNames: m_pItemServices (CPlayer_ItemServices*)
+            // NetworkVarNames: m_pAutoaimServices (CPlayer_AutoaimServices*)
+            // NetworkVarNames: m_pObserverServices (CPlayer_ObserverServices*)
+            // NetworkVarNames: m_pWaterServices (CPlayer_WaterServices*)
+            // NetworkVarNames: m_pUseServices (CPlayer_UseServices*)
+            // NetworkVarNames: m_pFlashlightServices (CPlayer_FlashlightServices*)
+            // NetworkVarNames: m_pCameraServices (CPlayer_CameraServices*)
+            // NetworkVarNames: m_pMovementServices (CPlayer_MovementServices*)
+            // NetworkVarNames: m_ServerViewAngleChanges (ViewAngleServerChange_t)
+            // NetworkVarNames: m_iHideHUD (uint32)
+            // NetworkVarNames: m_skybox3d (sky3dparams_t)
+            // NetworkVarNames: m_flDeathTime (GameTime_t)
+            // NetworkVarNames: m_hController (CHandle<CBasePlayerController>)
+            pub mod C_BasePlayerPawn {
+                pub const m_pWeaponServices: usize = 0x1100; // CPlayer_WeaponServices*
+                pub const m_pItemServices: usize = 0x1108; // CPlayer_ItemServices*
+                pub const m_pAutoaimServices: usize = 0x1110; // CPlayer_AutoaimServices*
+                pub const m_pObserverServices: usize = 0x1118; // CPlayer_ObserverServices*
+                pub const m_pWaterServices: usize = 0x1120; // CPlayer_WaterServices*
+                pub const m_pUseServices: usize = 0x1128; // CPlayer_UseServices*
+                pub const m_pFlashlightServices: usize = 0x1130; // CPlayer_FlashlightServices*
+                pub const m_pCameraServices: usize = 0x1138; // CPlayer_CameraServices*
+                pub const m_pMovementServices: usize = 0x1140; // CPlayer_MovementServices*
+                pub const m_ServerViewAngleChanges: usize = 0x1150; // C_UtlVectorEmbeddedNetworkVar<ViewAngleServerChange_t>
+                pub const m_nHighestConsumedServerViewAngleChangeIndex: usize = 0x11A0; // uint32
+                pub const v_angle: usize = 0x11A4; // QAngle
+                pub const v_anglePrevious: usize = 0x11B0; // QAngle
+                pub const m_iHideHUD: usize = 0x11BC; // uint32
+                pub const m_skybox3d: usize = 0x11C0; // sky3dparams_t
+                pub const m_flDeathTime: usize = 0x1250; // GameTime_t
+                pub const m_vecPredictionError: usize = 0x1254; // 
+                pub const m_flPredictionErrorTime: usize = 0x1260; // GameTime_t
+                pub const m_vecLastCameraSetupLocalOrigin: usize = 0x1264; // 
+                pub const m_flLastCameraSetupTime: usize = 0x1270; // GameTime_t
+                pub const m_flFOVSensitivityAdjust: usize = 0x1274; // float32
+                pub const m_flMouseSensitivity: usize = 0x1278; // float32
+                pub const m_vOldOrigin: usize = 0x127C; // 
+                pub const m_flOldSimulationTime: usize = 0x1288; // float32
+                pub const m_nLastExecutedCommandNumber: usize = 0x128C; // int32
+                pub const m_nLastExecutedCommandTick: usize = 0x1290; // int32
+                pub const m_hController: usize = 0x1294; // CHandle<CBasePlayerController>
+                pub const m_bIsSwappingToPredictableController: usize = 0x1298; // bool
+            }
+            // Parent: None
+            // Fields count: 6
+            //
+            // Metadata:
+            // MNetworkOverride
+            // NetworkVarNames: m_bShouldIgnoreOffsetAndAccuracy (bool)
+            // NetworkVarNames: m_nWeaponParity (uint32)
+            pub mod C_CSGOViewModel {
+                pub const m_bShouldIgnoreOffsetAndAccuracy: usize = 0xF68; // bool
+                pub const m_nWeaponParity: usize = 0xF6C; // uint32
+                pub const m_nOldWeaponParity: usize = 0xF70; // uint32
+                pub const m_nLastKnownAssociatedWeaponEntIndex: usize = 0xF74; // CEntityIndex
+                pub const m_bNeedToQueueHighResComposite: usize = 0xF78; // bool
+                pub const m_vLoweredWeaponOffset: usize = 0xFDC; // QAngle
+            }
+            // Parent: C_BasePlayerWeapon
+            // Fields count: 71
+            //
+            // Metadata:
+            // MNetworkExcludeByName
+            // NetworkVarNames: m_flFireSequenceStartTime (float)
+            // NetworkVarNames: m_nFireSequenceStartTimeChange (int)
+            // NetworkVarNames: m_ePlayerFireEvent (PlayerAnimEvent_t)
+            // NetworkVarNames: m_ePlayerFireEventAttackType (WeaponAttackType_t)
+            // NetworkVarNames: m_iState (CSWeaponState_t)
+            // NetworkVarNames: m_nViewModelIndex (uint32)
+            // NetworkVarNames: m_flTimeWeaponIdle (GameTime_t)
+            // NetworkVarNames: m_weaponMode (CSWeaponMode)
+            // NetworkVarNames: m_fAccuracyPenalty (float)
+            // NetworkVarNames: m_iRecoilIndex (int)
+            // NetworkVarNames: m_flRecoilIndex (float)
+            // NetworkVarNames: m_bBurstMode (bool)
+            // NetworkVarNames: m_nPostponeFireReadyTicks (GameTick_t)
+            // NetworkVarNames: m_flPostponeFireReadyFrac (float)
+            // NetworkVarNames: m_bInReload (bool)
+            // NetworkVarNames: m_bReloadVisuallyComplete (bool)
+            // NetworkVarNames: m_flDroppedAtTime (GameTime_t)
+            // NetworkVarNames: m_bIsHauledBack (bool)
+            // NetworkVarNames: m_bSilencerOn (bool)
+            // NetworkVarNames: m_flTimeSilencerSwitchComplete (GameTime_t)
+            // NetworkVarNames: m_iOriginalTeamNumber (int)
+            // NetworkVarNames: m_hPrevOwner (CHandle<CCSPlayerPawn>)
+            // NetworkVarNames: m_nDropTick (GameTick_t)
+            // NetworkVarNames: m_fLastShotTime (GameTime_t)
+            // NetworkVarNames: m_iIronSightMode (int)
+            // NetworkVarNames: m_iNumEmptyAttacks (int)
+            pub mod C_CSWeaponBase {
+                pub const m_flFireSequenceStartTime: usize = 0x162C; // float32
+                pub const m_nFireSequenceStartTimeChange: usize = 0x1630; // int32
+                pub const m_nFireSequenceStartTimeAck: usize = 0x1634; // int32
+                pub const m_ePlayerFireEvent: usize = 0x1638; // PlayerAnimEvent_t
+                pub const m_ePlayerFireEventAttackType: usize = 0x163C; // WeaponAttackType_t
+                pub const m_seqIdle: usize = 0x1640; // HSequence
+                pub const m_seqFirePrimary: usize = 0x1644; // HSequence
+                pub const m_seqFireSecondary: usize = 0x1648; // HSequence
+                pub const m_thirdPersonFireSequences: usize = 0x1650; // CUtlVector<HSequence>
+                pub const m_hCurrentThirdPersonSequence: usize = 0x1668; // HSequence
+                pub const m_nSilencerBoneIndex: usize = 0x166C; // int32
+                pub const m_thirdPersonSequences: usize = 0x1670; // HSequence[7]
+                pub const m_ClientPreviousWeaponState: usize = 0x16A8; // CSWeaponState_t
+                pub const m_iState: usize = 0x16AC; // CSWeaponState_t
+                pub const m_flCrosshairDistance: usize = 0x16B0; // float32
+                pub const m_iAmmoLastCheck: usize = 0x16B4; // int32
+                pub const m_iAlpha: usize = 0x16B8; // int32
+                pub const m_iScopeTextureID: usize = 0x16BC; // int32
+                pub const m_iCrosshairTextureID: usize = 0x16C0; // int32
+                pub const m_flGunAccuracyPositionDeprecated: usize = 0x16C4; // float32
+                pub const m_nLastEmptySoundCmdNum: usize = 0x16C8; // int32
+                pub const m_nViewModelIndex: usize = 0x16CC; // uint32
+                pub const m_bReloadsWithClips: usize = 0x16D0; // bool
+                pub const m_flTimeWeaponIdle: usize = 0x16D4; // GameTime_t
+                pub const m_bFireOnEmpty: usize = 0x16D8; // bool
+                pub const m_OnPlayerPickup: usize = 0x16E0; // CEntityIOOutput
+                pub const m_weaponMode: usize = 0x1708; // CSWeaponMode
+                pub const m_flTurningInaccuracyDelta: usize = 0x170C; // float32
+                pub const m_vecTurningInaccuracyEyeDirLast: usize = 0x1710; // 
+                pub const m_flTurningInaccuracy: usize = 0x171C; // float32
+                pub const m_fAccuracyPenalty: usize = 0x1720; // float32
+                pub const m_flLastAccuracyUpdateTime: usize = 0x1724; // GameTime_t
+                pub const m_fAccuracySmoothedForZoom: usize = 0x1728; // float32
+                pub const m_fScopeZoomEndTime: usize = 0x172C; // GameTime_t
+                pub const m_iRecoilIndex: usize = 0x1730; // int32
+                pub const m_flRecoilIndex: usize = 0x1734; // float32
+                pub const m_bBurstMode: usize = 0x1738; // bool
+                pub const m_nPostponeFireReadyTicks: usize = 0x173C; // GameTick_t
+                pub const m_flPostponeFireReadyFrac: usize = 0x1740; // float32
+                pub const m_bInReload: usize = 0x1744; // bool
+                pub const m_bReloadVisuallyComplete: usize = 0x1745; // bool
+                pub const m_flDroppedAtTime: usize = 0x1748; // GameTime_t
+                pub const m_bIsHauledBack: usize = 0x174C; // bool
+                pub const m_bSilencerOn: usize = 0x174D; // bool
+                pub const m_flTimeSilencerSwitchComplete: usize = 0x1750; // GameTime_t
+                pub const m_iOriginalTeamNumber: usize = 0x1754; // int32
+                pub const m_flNextAttackRenderTimeOffset: usize = 0x1758; // float32
+                pub const m_bVisualsDataSet: usize = 0x17E0; // bool
+                pub const m_bOldFirstPersonSpectatedState: usize = 0x17E1; // bool
+                pub const m_hOurPing: usize = 0x17E4; // CHandle<C_BaseEntity>
+                pub const m_nOurPingIndex: usize = 0x17E8; // CEntityIndex
+                pub const m_vecOurPingPos: usize = 0x17EC; // 
+                pub const m_bGlowForPing: usize = 0x17F8; // bool
+                pub const m_bUIWeapon: usize = 0x17F9; // bool
+                pub const m_hPrevOwner: usize = 0x1808; // CHandle<C_CSPlayerPawn>
+                pub const m_nDropTick: usize = 0x180C; // GameTick_t
+                pub const m_donated: usize = 0x182C; // bool
+                pub const m_fLastShotTime: usize = 0x1830; // GameTime_t
+                pub const m_bWasOwnedByCT: usize = 0x1834; // bool
+                pub const m_bWasOwnedByTerrorist: usize = 0x1835; // bool
+                pub const m_gunHeat: usize = 0x1838; // float32
+                pub const m_smokeAttachments: usize = 0x183C; // uint32
+                pub const m_lastSmokeTime: usize = 0x1840; // GameTime_t
+                pub const m_flNextClientFireBulletTime: usize = 0x1844; // float32
+                pub const m_flNextClientFireBulletTime_Repredict: usize = 0x1848; // float32
+                pub const m_IronSightController: usize = 0x1920; // C_IronSightController
+                pub const m_iIronSightMode: usize = 0x19D0; // int32
+                pub const m_flLastLOSTraceFailureTime: usize = 0x19E0; // GameTime_t
+                pub const m_iNumEmptyAttacks: usize = 0x19E4; // int32
+                pub const m_flLastMagDropRequestTime: usize = 0x1A60; // GameTime_t
+                pub const m_flWatTickOffset: usize = 0x1A64; // float32
+            }
+            // Parent: C_CSWeaponBase
+            // Fields count: 6
+            //
+            // Metadata:
+            // NetworkVarNames: m_zoomLevel (int)
+            // NetworkVarNames: m_iBurstShotsRemaining (int)
+            // NetworkVarNames: m_bNeedsBoltAction (bool)
+            pub mod C_CSWeaponBaseGun {
+                pub const m_zoomLevel: usize = 0x1A70; // int32
+                pub const m_iBurstShotsRemaining: usize = 0x1A74; // int32
+                pub const m_iSilencerBodygroup: usize = 0x1A78; // int32
+                pub const m_silencedModelIndex: usize = 0x1A88; // int32
+                pub const m_inPrecache: usize = 0x1A8C; // bool
+                pub const m_bNeedsBoltAction: usize = 0x1A8D; // bool
+            }
+            // Parent: C_CSWeaponBase
+            // Fields count: 11
+            //
+            // Metadata:
+            // NetworkVarNames: m_bStartedArming (bool)
+            // NetworkVarNames: m_fArmedTime (GameTime_t)
+            // NetworkVarNames: m_bBombPlacedAnimation (bool)
+            // NetworkVarNames: m_bIsPlantingViaUse (bool)
+            // NetworkVarNames: m_entitySpottedState (EntitySpottedState_t)
+            pub mod C_C4 {
+                pub const m_szScreenText: usize = 0x1A70; // char[32]
+                pub const m_activeLightParticleIndex: usize = 0x1A90; // ParticleIndex_t
+                pub const m_eActiveLightEffect: usize = 0x1A94; // C4LightEffect_t
+                pub const m_bStartedArming: usize = 0x1A98; // bool
+                pub const m_fArmedTime: usize = 0x1A9C; // GameTime_t
+                pub const m_bBombPlacedAnimation: usize = 0x1AA0; // bool
+                pub const m_bIsPlantingViaUse: usize = 0x1AA1; // bool
+                pub const m_entitySpottedState: usize = 0x1AA8; // EntitySpottedState_t
+                pub const m_nSpotRules: usize = 0x1AC0; // int32
+                pub const m_bPlayedArmingBeeps: usize = 0x1AC4; // bool[7]
+                pub const m_bBombPlanted: usize = 0x1ACB; // bool
+            }
+            // Parent: C_CSWeaponBaseGun
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_fFireTime (GameTime_t)
+            pub mod C_WeaponTaser {
+                pub const m_fFireTime: usize = 0x1A90; // GameTime_t
+            }
+            // Parent: C_CSWeaponBaseGun
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_flDisplayHealth (float)
+            pub mod C_WeaponShield {
+                pub const m_flDisplayHealth: usize = 0x1A90; // float32
+            }
+            // Parent: C_BaseCSGrenadeProjectile
+            // Fields count: 1
+            //
+            // Metadata:
+            // NetworkVarNames: m_bIsIncGrenade (bool)
+            pub mod C_MolotovProjectile {
+                pub const m_bIsIncGrenade: usize = 0x1158; // bool
+            }
+            // Parent: C_BaseCSGrenadeProjectile
+            // Fields count: 3
+            //
+            // Metadata:
+            // NetworkVarNames: m_nDecoyShotTick (int)
+            pub mod C_DecoyProjectile {
+                pub const m_nDecoyShotTick: usize = 0x1158; // int32
+                pub const m_nClientLastKnownDecoyShotTick: usize = 0x115C; // int32
+                pub const m_flTimeParticleEffectSpawn: usize = 0x1180; // GameTime_t
+            }
+            // Parent: C_BaseCSGrenadeProjectile
+            // Fields count: 8
+            //
+            // Metadata:
+            // NetworkVarNames: m_nSmokeEffectTickBegin (int)
+            // NetworkVarNames: m_bDidSmokeEffect (bool)
+            // NetworkVarNames: m_nRandomSeed (int)
+            // NetworkVarNames: m_vSmokeColor (Vector)
+            // NetworkVarNames: m_vSmokeDetonationPos (Vector)
+            // NetworkVarNames: m_VoxelFrameData (CUtlVector<uint8>)
+            pub mod C_SmokeGrenadeProjectile {
+                pub const m_nSmokeEffectTickBegin: usize = 0x1160; // int32
+                pub const m_bDidSmokeEffect: usize = 0x1164; // bool
+                pub const m_nRandomSeed: usize = 0x1168; // int32
+                pub const m_vSmokeColor: usize = 0x116C; // 
+                pub const m_vSmokeDetonationPos: usize = 0x1178; // 
+                pub const m_VoxelFrameData: usize = 0x1188; // CUtlVector<uint8>
+                pub const m_bSmokeVolumeDataReceived: usize = 0x11A0; // bool
+                pub const m_bSmokeEffectSpawned: usize = 0x11A1; // bool
+            }
+            // Parent: C_CSWeaponBase
+            // Fields count: 14
+            //
+            // Metadata:
+            // NetworkVarNames: m_bRedraw (bool)
+            // NetworkVarNames: m_bIsHeldByPlayer (bool)
+            // NetworkVarNames: m_bPinPulled (bool)
+            // NetworkVarNames: m_bJumpThrow (bool)
+            // NetworkVarNames: m_bThrowAnimating (bool)
+            // NetworkVarNames: m_fThrowTime (GameTime_t)
+            // NetworkVarNames: m_flThrowStrength (float)
+            // NetworkVarNames: m_flThrowStrengthApproach (float)
+            // NetworkVarNames: m_fDropTime (GameTime_t)
+            // NetworkVarNames: m_bJustPulledPin (bool)
+            // NetworkVarNames: m_nNextHoldTick (GameTick_t)
+            // NetworkVarNames: m_flNextHoldFrac (float)
+            // NetworkVarNames: m_hSwitchToWeaponAfterThrow (CHandle<CCSWeaponBase>)
+            pub mod C_BaseCSGrenade {
+                pub const m_bClientPredictDelete: usize = 0x1A70; // bool
+                pub const m_bRedraw: usize = 0x1A71; // bool
+                pub const m_bIsHeldByPlayer: usize = 0x1A72; // bool
+                pub const m_bPinPulled: usize = 0x1A73; // bool
+                pub const m_bJumpThrow: usize = 0x1A74; // bool
+                pub const m_bThrowAnimating: usize = 0x1A75; // bool
+                pub const m_fThrowTime: usize = 0x1A78; // GameTime_t
+                pub const m_flThrowStrength: usize = 0x1A7C; // float32
+                pub const m_flThrowStrengthApproach: usize = 0x1A80; // float32
+                pub const m_fDropTime: usize = 0x1A84; // GameTime_t
+                pub const m_bJustPulledPin: usize = 0x1A88; // bool
+                pub const m_nNextHoldTick: usize = 0x1A8C; // GameTick_t
+                pub const m_flNextHoldFrac: usize = 0x1A90; // float32
+                pub const m_hSwitchToWeaponAfterThrow: usize = 0x1A94; // CHandle<C_CSWeaponBase>
+            }
+            // Parent: C_CSWeaponBase
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_SequenceCompleteTimer (CountdownTimer)
+            // NetworkVarNames: m_bRedraw (bool)
+            pub mod C_WeaponBaseItem {
+                pub const m_SequenceCompleteTimer: usize = 0x1A70; // CountdownTimer
+                pub const m_bRedraw: usize = 0x1A88; // bool
+            }
+            // Parent: C_Item
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_OwningPlayer (CHandle<CCSPlayerPawn>)
+            // NetworkVarNames: m_KillingPlayer (CHandle<CCSPlayerPawn>)
+            pub mod C_ItemDogtags {
+                pub const m_OwningPlayer: usize = 0x16C0; // CHandle<C_CSPlayerPawn>
+                pub const m_KillingPlayer: usize = 0x16C4; // CHandle<C_CSPlayerPawn>
+            }
+            // Parent: C_CSWeaponBase
+            // Fields count: 2
+            //
+            // Metadata:
+            // NetworkVarNames: m_bPlayingUninterruptableAct (bool)
+            // NetworkVarNames: m_nUninterruptableActivity (PlayerAnimEvent_t)
+            pub mod C_Fists {
+                pub const m_bPlayingUninterruptableAct: usize = 0x1A70; // bool
+                pub const m_nUninterruptableActivity: usize = 0x1A74; // PlayerAnimEvent_t
+            }
+            // Parent: C_BasePlayerPawn
+            // Fields count: 142
+            //
+            // Metadata:
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkExcludeByUserGroup
+            // MNetworkExcludeByName
+            // MNetworkExcludeByName
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_pPingServices (CCSPlayer_PingServices*)
+            // NetworkVarNames: m_pViewModelServices (CPlayer_ViewModelServices*)
+            // NetworkVarNames: m_bIsScoped (bool)
+            // NetworkVarNames: m_bIsWalking (bool)
+            // NetworkVarNames: m_bResumeZoom (bool)
+            // NetworkVarNames: m_iPlayerState (CSPlayerState)
+            // NetworkVarNames: m_bIsDefusing (bool)
+            // NetworkVarNames: m_bIsGrabbingHostage (bool)
+            // NetworkVarNames: m_iBlockingUseActionInProgress (CSPlayerBlockingUseAction_t)
+            // NetworkVarNames: m_bIsRescuing (bool)
+            // NetworkVarNames: m_fImmuneToGunGameDamageTime (GameTime_t)
+            // NetworkVarNames: m_bGunGameImmunity (bool)
+            // NetworkVarNames: m_GunGameImmunityColor (Color)
+            // NetworkVarNames: m_bHasMovedSinceSpawn (bool)
+            // NetworkVarNames: m_fMolotovUseTime (float)
+            // NetworkVarNames: m_fMolotovDamageTime (float)
+            // NetworkVarNames: m_nWhichBombZone (int)
+            // NetworkVarNames: m_bInNoDefuseArea (bool)
+            // NetworkVarNames: m_iThrowGrenadeCounter (int)
+            // NetworkVarNames: m_bWaitForNoAttack (bool)
+            // NetworkVarNames: m_flGuardianTooFarDistFrac (float)
+            // NetworkVarNames: m_flDetectedByEnemySensorTime (GameTime_t)
+            // NetworkVarNames: m_bKilledByTaser (bool)
+            // NetworkVarNames: m_iMoveState (int)
+            // NetworkVarNames: m_bCanMoveDuringFreezePeriod (bool)
+            // NetworkVarNames: m_flLowerBodyYawTarget (float)
+            // NetworkVarNames: m_bStrafing (bool)
+            // NetworkVarNames: m_flEmitSoundTime (GameTime_t)
+            // NetworkVarNames: m_iAddonBits (int)
+            // NetworkVarNames: m_iPrimaryAddon (int)
+            // NetworkVarNames: m_iSecondaryAddon (int)
+            // NetworkVarNames: m_iProgressBarDuration (int)
+            // NetworkVarNames: m_flProgressBarStartTime (float)
+            // NetworkVarNames: m_iDirection (int)
+            // NetworkVarNames: m_iShotsFired (int)
+            // NetworkVarNames: m_bNightVisionOn (bool)
+            // NetworkVarNames: m_bHasNightVision (bool)
+            // NetworkVarNames: m_flVelocityModifier (float)
+            // NetworkVarNames: m_flHitHeading (float)
+            // NetworkVarNames: m_nHitBodyPart (int)
+            // NetworkVarNames: m_iStartAccount (int)
+            // NetworkVarNames: m_flFlashMaxAlpha (float)
+            // NetworkVarNames: m_flFlashDuration (float)
+            // NetworkVarNames: m_unCurrentEquipmentValue (uint16)
+            // NetworkVarNames: m_unRoundStartEquipmentValue (uint16)
+            // NetworkVarNames: m_unFreezetimeEndEquipmentValue (uint16)
+            // NetworkVarNames: m_nHeavyAssaultSuitCooldownRemaining (int)
+            // NetworkVarNames: m_ArmorValue (int32)
+            // NetworkVarNames: m_bHud_MiniScoreHidden (bool)
+            // NetworkVarNames: m_bHud_RadarHidden (bool)
+            // NetworkVarNames: m_nLastKillerIndex (CEntityIndex)
+            // NetworkVarNames: m_nLastConcurrentKilled (int)
+            // NetworkVarNames: m_nDeathCamMusic (int)
+            // NetworkVarNames: m_cycleLatch (int)
+            // NetworkVarNames: m_vecPlayerPatchEconIndices (uint32)
+            // NetworkVarNames: m_bHideTargetID (bool)
+            // NetworkVarNames: m_entitySpottedState (EntitySpottedState_t)
+            // NetworkVarNames: m_nSurvivalTeamNumber (int)
+            // NetworkVarNames: m_bKilledByHeadshot (bool)
+            // NetworkVarNames: m_hOriginalController (CHandle<CCSPlayerController>)
+            pub mod C_CSPlayerPawnBase {
+                pub const m_pPingServices: usize = 0x12C0; // CCSPlayer_PingServices*
+                pub const m_pViewModelServices: usize = 0x12C8; // CPlayer_ViewModelServices*
+                pub const m_fRenderingClipPlane: usize = 0x12D8; // float32[4]
+                pub const m_nLastClipPlaneSetupFrame: usize = 0x12E8; // int32
+                pub const m_vecLastClipCameraPos: usize = 0x12EC; // 
+                pub const m_vecLastClipCameraForward: usize = 0x12F8; // 
+                pub const m_bClipHitStaticWorld: usize = 0x1304; // bool
+                pub const m_bCachedPlaneIsValid: usize = 0x1305; // bool
+                pub const m_pClippingWeapon: usize = 0x1308; // C_CSWeaponBase*
+                pub const m_previousPlayerState: usize = 0x1310; // CSPlayerState
+                pub const m_flLastCollisionCeiling: usize = 0x1314; // float32
+                pub const m_flLastCollisionCeilingChangeTime: usize = 0x1318; // float32
+                pub const m_grenadeParameterStashTime: usize = 0x1338; // GameTime_t
+                pub const m_bGrenadeParametersStashed: usize = 0x133C; // bool
+                pub const m_angStashedShootAngles: usize = 0x1340; // QAngle
+                pub const m_vecStashedGrenadeThrowPosition: usize = 0x134C; // 
+                pub const m_vecStashedVelocity: usize = 0x1358; // 
+                pub const m_angShootAngleHistory: usize = 0x1364; // QAngle[2]
+                pub const m_vecThrowPositionHistory: usize = 0x137C; // Vector[2]
+                pub const m_vecVelocityHistory: usize = 0x1394; // Vector[2]
+                pub const m_thirdPersonHeading: usize = 0x13B0; // QAngle
+                pub const m_flSlopeDropOffset: usize = 0x13C8; // float32
+                pub const m_flSlopeDropHeight: usize = 0x13D8; // float32
+                pub const m_vHeadConstraintOffset: usize = 0x13E8; // 
+                pub const m_bIsScoped: usize = 0x1400; // bool
+                pub const m_bIsWalking: usize = 0x1401; // bool
+                pub const m_bResumeZoom: usize = 0x1402; // bool
+                pub const m_iPlayerState: usize = 0x1404; // CSPlayerState
+                pub const m_bIsDefusing: usize = 0x1408; // bool
+                pub const m_bIsGrabbingHostage: usize = 0x1409; // bool
+                pub const m_iBlockingUseActionInProgress: usize = 0x140C; // CSPlayerBlockingUseAction_t
+                pub const m_bIsRescuing: usize = 0x1410; // bool
+                pub const m_fImmuneToGunGameDamageTime: usize = 0x1414; // GameTime_t
+                pub const m_fImmuneToGunGameDamageTimeLast: usize = 0x1418; // GameTime_t
+                pub const m_bGunGameImmunity: usize = 0x141C; // bool
+                pub const m_GunGameImmunityColor: usize = 0x141D; // Color
+                pub const m_bHasMovedSinceSpawn: usize = 0x1421; // bool
+                pub const m_fMolotovUseTime: usize = 0x1424; // float32
+                pub const m_fMolotovDamageTime: usize = 0x1428; // float32
+                pub const m_nWhichBombZone: usize = 0x142C; // int32
+                pub const m_bInNoDefuseArea: usize = 0x1430; // bool
+                pub const m_iThrowGrenadeCounter: usize = 0x1434; // int32
+                pub const m_bWaitForNoAttack: usize = 0x1438; // bool
+                pub const m_flGuardianTooFarDistFrac: usize = 0x143C; // float32
+                pub const m_flDetectedByEnemySensorTime: usize = 0x1440; // GameTime_t
+                pub const m_flNextGuardianTooFarWarning: usize = 0x1444; // float32
+                pub const m_bSuppressGuardianTooFarWarningAudio: usize = 0x1448; // bool
+                pub const m_bKilledByTaser: usize = 0x1449; // bool
+                pub const m_iMoveState: usize = 0x144C; // int32
+                pub const m_bCanMoveDuringFreezePeriod: usize = 0x1450; // bool
+                pub const m_flLowerBodyYawTarget: usize = 0x1454; // float32
+                pub const m_bStrafing: usize = 0x1458; // bool
+                pub const m_flLastSpawnTimeIndex: usize = 0x145C; // GameTime_t
+                pub const m_flEmitSoundTime: usize = 0x1460; // GameTime_t
+                pub const m_iAddonBits: usize = 0x1464; // int32
+                pub const m_iPrimaryAddon: usize = 0x1468; // int32
+                pub const m_iSecondaryAddon: usize = 0x146C; // int32
+                pub const m_iProgressBarDuration: usize = 0x1470; // int32
+                pub const m_flProgressBarStartTime: usize = 0x1474; // float32
+                pub const m_iDirection: usize = 0x1478; // int32
+                pub const m_iShotsFired: usize = 0x147C; // int32
+                pub const m_bNightVisionOn: usize = 0x1480; // bool
+                pub const m_bHasNightVision: usize = 0x1481; // bool
+                pub const m_flVelocityModifier: usize = 0x1484; // float32
+                pub const m_flHitHeading: usize = 0x1488; // float32
+                pub const m_nHitBodyPart: usize = 0x148C; // int32
+                pub const m_iStartAccount: usize = 0x1490; // int32
+                pub const m_vecIntroStartEyePosition: usize = 0x1494; // 
+                pub const m_vecIntroStartPlayerForward: usize = 0x14A0; // 
+                pub const m_flClientDeathTime: usize = 0x14AC; // GameTime_t
+                pub const m_flNightVisionAlpha: usize = 0x14B0; // float32
+                pub const m_bScreenTearFrameCaptured: usize = 0x14B4; // bool
+                pub const m_flFlashBangTime: usize = 0x14B8; // float32
+                pub const m_flFlashScreenshotAlpha: usize = 0x14BC; // float32
+                pub const m_flFlashOverlayAlpha: usize = 0x14C0; // float32
+                pub const m_bFlashBuildUp: usize = 0x14C4; // bool
+                pub const m_bFlashDspHasBeenCleared: usize = 0x14C5; // bool
+                pub const m_bFlashScreenshotHasBeenGrabbed: usize = 0x14C6; // bool
+                pub const m_flFlashMaxAlpha: usize = 0x14C8; // float32
+                pub const m_flFlashDuration: usize = 0x14CC; // float32
+                pub const m_lastStandingPos: usize = 0x14D0; // 
+                pub const m_vecLastMuzzleFlashPos: usize = 0x14DC; // 
+                pub const m_angLastMuzzleFlashAngle: usize = 0x14E8; // QAngle
+                pub const m_hMuzzleFlashShape: usize = 0x14F4; // CHandle<C_BaseEntity>
+                pub const m_iHealthBarRenderMaskIndex: usize = 0x14F8; // int32
+                pub const m_flHealthFadeValue: usize = 0x14FC; // float32
+                pub const m_flHealthFadeAlpha: usize = 0x1500; // float32
+                pub const m_nMyCollisionGroup: usize = 0x1504; // int32
+                pub const m_ignoreLadderJumpTime: usize = 0x1508; // float32
+                pub const m_ladderSurpressionTimer: usize = 0x1510; // CountdownTimer
+                pub const m_lastLadderNormal: usize = 0x1528; // 
+                pub const m_lastLadderPos: usize = 0x1534; // 
+                pub const m_flDeathCCWeight: usize = 0x1548; // float32
+                pub const m_bOldIsScoped: usize = 0x154C; // bool
+                pub const m_flPrevRoundEndTime: usize = 0x1550; // float32
+                pub const m_flPrevMatchEndTime: usize = 0x1554; // float32
+                pub const m_unCurrentEquipmentValue: usize = 0x1558; // uint16
+                pub const m_unRoundStartEquipmentValue: usize = 0x155A; // uint16
+                pub const m_unFreezetimeEndEquipmentValue: usize = 0x155C; // uint16
+                pub const m_vecThirdPersonViewPositionOverride: usize = 0x1560; // 
+                pub const m_nHeavyAssaultSuitCooldownRemaining: usize = 0x156C; // int32
+                pub const m_ArmorValue: usize = 0x1570; // int32
+                pub const m_angEyeAngles: usize = 0x1578; // QAngle
+                pub const m_fNextThinkPushAway: usize = 0x1590; // float32
+                pub const m_bShouldAutobuyDMWeapons: usize = 0x1594; // bool
+                pub const m_bShouldAutobuyNow: usize = 0x1595; // bool
+                pub const m_bHud_MiniScoreHidden: usize = 0x1596; // bool
+                pub const m_bHud_RadarHidden: usize = 0x1597; // bool
+                pub const m_nLastKillerIndex: usize = 0x1598; // CEntityIndex
+                pub const m_nLastConcurrentKilled: usize = 0x159C; // int32
+                pub const m_nDeathCamMusic: usize = 0x15A0; // int32
+                pub const m_iIDEntIndex: usize = 0x15A4; // CEntityIndex
+                pub const m_delayTargetIDTimer: usize = 0x15A8; // CountdownTimer
+                pub const m_iTargetedWeaponEntIndex: usize = 0x15C0; // CEntityIndex
+                pub const m_iOldIDEntIndex: usize = 0x15C4; // CEntityIndex
+                pub const m_holdTargetIDTimer: usize = 0x15C8; // CountdownTimer
+                pub const m_flCurrentMusicStartTime: usize = 0x15E4; // float32
+                pub const m_flMusicRoundStartTime: usize = 0x15E8; // float32
+                pub const m_bDeferStartMusicOnWarmup: usize = 0x15EC; // bool
+                pub const m_cycleLatch: usize = 0x15F0; // int32
+                pub const m_serverIntendedCycle: usize = 0x15F4; // float32
+                pub const m_vecPlayerPatchEconIndices: usize = 0x15F8; // uint32[5]
+                pub const m_bHideTargetID: usize = 0x1614; // bool
+                pub const m_flLastSmokeOverlayAlpha: usize = 0x1618; // float32
+                pub const m_flLastSmokeAge: usize = 0x161C; // float32
+                pub const m_vLastSmokeOverlayColor: usize = 0x1620; // 
+                pub const m_nPlayerSmokedFx: usize = 0x162C; // ParticleIndex_t
+                pub const m_nPlayerInfernoBodyFx: usize = 0x1630; // ParticleIndex_t
+                pub const m_nPlayerInfernoFootFx: usize = 0x1634; // ParticleIndex_t
+                pub const m_flNextMagDropTime: usize = 0x1638; // float32
+                pub const m_nLastMagDropAttachmentIndex: usize = 0x163C; // int32
+                pub const m_vecBulletHitModels: usize = 0x1640; // CUtlVector<C_BulletHitModel*>
+                pub const m_vecPickupModelSlerpers: usize = 0x1658; // CUtlVector<C_PickUpModelSlerper*>
+                pub const m_vecLastAliveLocalVelocity: usize = 0x1670; // 
+                pub const m_entitySpottedState: usize = 0x1698; // EntitySpottedState_t
+                pub const m_nSurvivalTeamNumber: usize = 0x16B0; // int32
+                pub const m_bGuardianShouldSprayCustomXMark: usize = 0x16B4; // bool
+                pub const m_bHasDeathInfo: usize = 0x16B5; // bool
+                pub const m_flDeathInfoTime: usize = 0x16B8; // float32
+                pub const m_vecDeathInfoOrigin: usize = 0x16BC; // 
+                pub const m_bKilledByHeadshot: usize = 0x16C8; // bool
+                pub const m_hOriginalController: usize = 0x16CC; // CHandle<CCSPlayerController>
+            }
+            // Parent: C_CSPlayerPawnBase
+            // Fields count: 1
+            //
+            // Metadata:
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            pub mod C_CSObserverPawn {
+                pub const m_hDetectParentChange: usize = 0x1718; // CEntityHandle
+            }
+            // Parent: C_CSPlayerPawnBase
+            // Fields count: 52
+            //
+            // Metadata:
+            // NetworkVarNames: m_pBulletServices (CCSPlayer_BulletServices*)
+            // NetworkVarNames: m_pHostageServices (CCSPlayer_HostageServices*)
+            // NetworkVarNames: m_pBuyServices (CCSPlayer_BuyServices*)
+            // NetworkVarNames: m_pGlowServices (CCSPlayer_GlowServices*)
+            // NetworkVarNames: m_pActionTrackingServices (CCSPlayer_ActionTrackingServices*)
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // MNetworkVarTypeOverride
+            // MNetworkIncludeByName
+            // NetworkVarNames: m_flHealthShotBoostExpirationTime (GameTime_t)
+            // NetworkVarNames: m_bHasFemaleVoice (bool)
+            // NetworkVarNames: m_szLastPlaceName (char)
+            // NetworkVarNames: m_bInBuyZone (bool)
+            // NetworkVarNames: m_aimPunchAngle (QAngle)
+            // NetworkVarNames: m_aimPunchAngleVel (QAngle)
+            // NetworkVarNames: m_aimPunchTickBase (int)
+            // NetworkVarNames: m_aimPunchTickFraction (float)
+            // NetworkVarNames: m_bInHostageRescueZone (bool)
+            // NetworkVarNames: m_bInBombZone (bool)
+            // NetworkVarNames: m_bIsBuyMenuOpen (bool)
+            // NetworkVarNames: m_flTimeOfLastInjury (GameTime_t)
+            // NetworkVarNames: m_flNextSprayDecalTime (GameTime_t)
+            // NetworkVarNames: m_iRetakesOffering (int)
+            // NetworkVarNames: m_iRetakesOfferingCard (int)
+            // NetworkVarNames: m_bRetakesHasDefuseKit (bool)
+            // NetworkVarNames: m_bRetakesMVPLastRound (bool)
+            // NetworkVarNames: m_iRetakesMVPBoostItem (int)
+            // NetworkVarNames: m_RetakesMVPBoostExtraUtility (loadout_slot_t)
+            // NetworkVarNames: m_EconGloves (CEconItemView)
+            // NetworkVarNames: m_nEconGlovesChanged (uint8)
+            // NetworkVarNames: m_nRagdollDamageBone (int)
+            // NetworkVarNames: m_vRagdollDamageForce (Vector)
+            // NetworkVarNames: m_vRagdollDamagePosition (Vector)
+            // NetworkVarNames: m_szRagdollDamageWeaponName (char)
+            // NetworkVarNames: m_bRagdollDamageHeadshot (bool)
+            // NetworkVarNames: m_vRagdollServerOrigin (Vector)
+            // NetworkVarNames: m_qDeathEyeAngles (QAngle)
+            pub mod C_CSPlayerPawn {
+                pub const m_pBulletServices: usize = 0x1718; // CCSPlayer_BulletServices*
+                pub const m_pHostageServices: usize = 0x1720; // CCSPlayer_HostageServices*
+                pub const m_pBuyServices: usize = 0x1728; // CCSPlayer_BuyServices*
+                pub const m_pGlowServices: usize = 0x1730; // CCSPlayer_GlowServices*
+                pub const m_pActionTrackingServices: usize = 0x1738; // CCSPlayer_ActionTrackingServices*
+                pub const m_flHealthShotBoostExpirationTime: usize = 0x1740; // GameTime_t
+                pub const m_flLastFiredWeaponTime: usize = 0x1744; // GameTime_t
+                pub const m_bHasFemaleVoice: usize = 0x1748; // bool
+                pub const m_flLandseconds: usize = 0x174C; // float32
+                pub const m_flOldFallVelocity: usize = 0x1750; // float32
+                pub const m_szLastPlaceName: usize = 0x1754; // char[18]
+                pub const m_bPrevDefuser: usize = 0x1766; // bool
+                pub const m_bPrevHelmet: usize = 0x1767; // bool
+                pub const m_nPrevArmorVal: usize = 0x1768; // int32
+                pub const m_nPrevGrenadeAmmoCount: usize = 0x176C; // int32
+                pub const m_unPreviousWeaponHash: usize = 0x1770; // uint32
+                pub const m_unWeaponHash: usize = 0x1774; // uint32
+                pub const m_bInBuyZone: usize = 0x1778; // bool
+                pub const m_bPreviouslyInBuyZone: usize = 0x1779; // bool
+                pub const m_aimPunchAngle: usize = 0x177C; // QAngle
+                pub const m_aimPunchAngleVel: usize = 0x1788; // QAngle
+                pub const m_aimPunchTickBase: usize = 0x1794; // int32
+                pub const m_aimPunchTickFraction: usize = 0x1798; // float32
+                pub const m_aimPunchCache: usize = 0x17A0; // CUtlVector<QAngle>
+                pub const m_bInLanding: usize = 0x17C0; // bool
+                pub const m_flLandingTime: usize = 0x17C4; // float32
+                pub const m_bInHostageRescueZone: usize = 0x17C8; // bool
+                pub const m_bInBombZone: usize = 0x17C9; // bool
+                pub const m_bIsBuyMenuOpen: usize = 0x17CA; // bool
+                pub const m_flTimeOfLastInjury: usize = 0x17CC; // GameTime_t
+                pub const m_flNextSprayDecalTime: usize = 0x17D0; // GameTime_t
+                pub const m_iRetakesOffering: usize = 0x18E8; // int32
+                pub const m_iRetakesOfferingCard: usize = 0x18EC; // int32
+                pub const m_bRetakesHasDefuseKit: usize = 0x18F0; // bool
+                pub const m_bRetakesMVPLastRound: usize = 0x18F1; // bool
+                pub const m_iRetakesMVPBoostItem: usize = 0x18F4; // int32
+                pub const m_RetakesMVPBoostExtraUtility: usize = 0x18F8; // loadout_slot_t
+                pub const m_bNeedToReApplyGloves: usize = 0x1918; // bool
+                pub const m_EconGloves: usize = 0x1920; // C_EconItemView
+                pub const m_nEconGlovesChanged: usize = 0x1D68; // uint8
+                pub const m_bMustSyncRagdollState: usize = 0x1D69; // bool
+                pub const m_nRagdollDamageBone: usize = 0x1D6C; // int32
+                pub const m_vRagdollDamageForce: usize = 0x1D70; // 
+                pub const m_vRagdollDamagePosition: usize = 0x1D7C; // 
+                pub const m_szRagdollDamageWeaponName: usize = 0x1D88; // char[64]
+                pub const m_bRagdollDamageHeadshot: usize = 0x1DC8; // bool
+                pub const m_vRagdollServerOrigin: usize = 0x1DCC; // 
+                pub const m_bLastHeadBoneTransformIsValid: usize = 0x23E0; // bool
+                pub const m_lastLandTime: usize = 0x23E4; // GameTime_t
+                pub const m_bOnGroundLastTick: usize = 0x23E8; // bool
+                pub const m_qDeathEyeAngles: usize = 0x2404; // QAngle
+                pub const m_bSkipOneHeadConstraintUpdate: usize = 0x2410; // bool
+            }
+            // Parent: C_BaseCombatCharacter
+            // Fields count: 23
+            //
+            // Metadata:
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkIncludeByName
+            // MNetworkOverride
+            // NetworkVarNames: m_entitySpottedState (EntitySpottedState_t)
+            // NetworkVarNames: m_leader (CHandle<CBaseEntity>)
+            // NetworkVarNames: m_reuseTimer (CountdownTimer)
+            // NetworkVarNames: m_vel (Vector)
+            // NetworkVarNames: m_isRescued (bool)
+            // NetworkVarNames: m_jumpedThisFrame (bool)
+            // NetworkVarNames: m_nHostageState (int)
+            // NetworkVarNames: m_bHandsHaveBeenCut (bool)
+            // NetworkVarNames: m_hHostageGrabber (CHandle<CCSPlayerPawn>)
+            // NetworkVarNames: m_flRescueStartTime (GameTime_t)
+            // NetworkVarNames: m_flGrabSuccessTime (GameTime_t)
+            // NetworkVarNames: m_flDropStartTime (GameTime_t)
+            pub mod C_Hostage {
+                pub const m_entitySpottedState: usize = 0x1100; // EntitySpottedState_t
+                pub const m_leader: usize = 0x1118; // CHandle<C_BaseEntity>
+                pub const m_reuseTimer: usize = 0x1120; // CountdownTimer
+                pub const m_vel: usize = 0x1138; // 
+                pub const m_isRescued: usize = 0x1144; // bool
+                pub const m_jumpedThisFrame: usize = 0x1145; // bool
+                pub const m_nHostageState: usize = 0x1148; // int32
+                pub const m_bHandsHaveBeenCut: usize = 0x114C; // bool
+                pub const m_hHostageGrabber: usize = 0x1150; // CHandle<C_CSPlayerPawn>
+                pub const m_fLastGrabTime: usize = 0x1154; // GameTime_t
+                pub const m_vecGrabbedPos: usize = 0x1158; // 
+                pub const m_flRescueStartTime: usize = 0x1164; // GameTime_t
+                pub const m_flGrabSuccessTime: usize = 0x1168; // GameTime_t
+                pub const m_flDropStartTime: usize = 0x116C; // GameTime_t
+                pub const m_flDeadOrRescuedTime: usize = 0x1170; // GameTime_t
+                pub const m_blinkTimer: usize = 0x1178; // CountdownTimer
+                pub const m_lookAt: usize = 0x1190; // 
+                pub const m_lookAroundTimer: usize = 0x11A0; // CountdownTimer
+                pub const m_isInit: usize = 0x11B8; // bool
+                pub const m_eyeAttachment: usize = 0x11B9; // AttachmentHandle_t
+                pub const m_chestAttachment: usize = 0x11BA; // AttachmentHandle_t
+                pub const m_pPredictionOwner: usize = 0x11C0; // CBasePlayerController*
+                pub const m_fNewestAlphaThinkTime: usize = 0x11C8; // GameTime_t
+            }
+        }
+    }
+}
diff --git a/src/dma/cs2dumper/engine2_mod.rs b/src/dma/cs2dumper/engine2_mod.rs
new file mode 100644
index 0000000..f104d2d
--- /dev/null
+++ b/src/dma/cs2dumper/engine2_mod.rs
@@ -0,0 +1,79 @@
+// Generated using https://github.com/a2x/cs2-dumper
+// 2024-04-02 16:10:48.961749300 UTC
+
+#![allow(non_upper_case_globals, non_camel_case_types, unused)]
+
+pub mod cs2_dumper {
+    pub mod schemas {
+        // Module: engine2.dll
+        // Classes count: 2
+        // Enums count: 4
+        pub mod engine2_dll {
+            // Alignment: 4
+            // Members count: 3
+            #[repr(u32)]
+            pub enum SpawnDebugOverrideState_t {
+                SPAWN_DEBUG_OVERRIDE_NONE = 0x0,
+                SPAWN_DEBUG_OVERRIDE_FORCE_ENABLED = 0x1,
+                SPAWN_DEBUG_OVERRIDE_FORCE_DISABLED = 0x2
+            }
+            // Alignment: 4
+            // Members count: 5
+            #[repr(u32)]
+            pub enum SpawnDebugRestrictionOverrideState_t {
+                SPAWN_DEBUG_RESTRICT_NONE = 0x0,
+                SPAWN_DEBUG_RESTRICT_IGNORE_MANAGER_DISTANCE_REQS = 0x1,
+                SPAWN_DEBUG_RESTRICT_IGNORE_TEMPLATE_DISTANCE_LOS_REQS = 0x2,
+                SPAWN_DEBUG_RESTRICT_IGNORE_TEMPLATE_COOLDOWN_LIMITS = 0x4,
+                SPAWN_DEBUG_RESTRICT_IGNORE_TARGET_COOLDOWN_LIMITS = 0x8
+            }
+            // Alignment: 4
+            // Members count: 3
+            #[repr(u32)]
+            pub enum EntityDormancyType_t {
+                ENTITY_NOT_DORMANT = 0x0,
+                ENTITY_DORMANT = 0x1,
+                ENTITY_SUSPENDED = 0x2
+            }
+            // Alignment: 4
+            // Members count: 4
+            #[repr(u32)]
+            pub enum EntityIOTargetType_t {
+                ENTITY_IO_TARGET_INVALID = 0xFFFFFFFFFFFFFFFF,
+                ENTITY_IO_TARGET_ENTITYNAME = 0x2,
+                ENTITY_IO_TARGET_EHANDLE = 0x6,
+                ENTITY_IO_TARGET_ENTITYNAME_OR_CLASSNAME = 0x7
+            }
+            // Parent: None
+            // Fields count: 11
+            //
+            // Metadata:
+            // NetworkVarNames: m_nameStringableIndex (int32)
+            pub mod CEntityIdentity {
+                pub const m_nameStringableIndex: usize = 0x14; // int32
+                pub const m_name: usize = 0x18; // CUtlSymbolLarge
+                pub const m_designerName: usize = 0x20; // CUtlSymbolLarge
+                pub const m_flags: usize = 0x30; // uint32
+                pub const m_worldGroupId: usize = 0x38; // WorldGroupId_t
+                pub const m_fDataObjectTypes: usize = 0x3C; // uint32
+                pub const m_PathIndex: usize = 0x40; // ChangeAccessorFieldPathIndex_t
+                pub const m_pPrev: usize = 0x58; // CEntityIdentity*
+                pub const m_pNext: usize = 0x60; // CEntityIdentity*
+                pub const m_pPrevByClass: usize = 0x68; // CEntityIdentity*
+                pub const m_pNextByClass: usize = 0x70; // CEntityIdentity*
+            }
+            // Parent: None
+            // Fields count: 4
+            //
+            // Metadata:
+            // NetworkVarNames: m_pEntity (CEntityIdentity*)
+            // NetworkVarNames: m_CScriptComponent (CScriptComponent::Storage_t)
+            pub mod CEntityInstance {
+                pub const m_iszPrivateVScripts: usize = 0x8; // CUtlSymbolLarge
+                pub const m_pEntity: usize = 0x10; // CEntityIdentity*
+                pub const m_CScriptComponent: usize = 0x28; // CScriptComponent*
+                pub const m_bVisibleinPVS: usize = 0x30; // bool
+            }
+        }
+    }
+}
diff --git a/src/dma/cs2dumper/mod.rs b/src/dma/cs2dumper/mod.rs
index 0429f69..2e7b6bd 100755
--- a/src/dma/cs2dumper/mod.rs
+++ b/src/dma/cs2dumper/mod.rs
@@ -1,4 +1,12 @@
 #![allow(dead_code)]
-pub mod client;
-pub mod engine2;
-pub mod offsets;
\ No newline at end of file
+#![allow(overflowing_literals)]
+#![allow(non_snake_case)]
+#![allow(unused_imports)]
+
+mod client_mod;
+mod engine2_mod;
+mod offsets_mod;
+
+pub use client_mod::cs2_dumper::schemas::client_dll as client;
+pub use engine2_mod::cs2_dumper::schemas::engine2_dll as engine;
+pub use offsets_mod::cs2_dumper::offsets as offsets;
\ No newline at end of file
diff --git a/src/dma/cs2dumper/offsets_mod.rs b/src/dma/cs2dumper/offsets_mod.rs
new file mode 100644
index 0000000..d3c0391
--- /dev/null
+++ b/src/dma/cs2dumper/offsets_mod.rs
@@ -0,0 +1,48 @@
+// Generated using https://github.com/a2x/cs2-dumper
+// 2024-04-02 16:10:48.961749300 UTC
+
+#![allow(non_upper_case_globals, non_camel_case_types, unused)]
+
+pub mod cs2_dumper {
+    pub mod offsets {
+        // Module: client.dll
+        pub mod client_dll {
+            pub const dwCSGOInput: usize = 0x192B620;
+            pub const dwEntityList: usize = 0x18C2D58;
+            pub const dwGameEntitySystem: usize = 0x19E0790;
+            pub const dwGameEntitySystem_getHighestEntityIndex: usize = 0x1510;
+            pub const dwGameRules: usize = 0x191FCA0;
+            pub const dwGlobalVars: usize = 0x172ABA0;
+            pub const dwGlowManager: usize = 0x19200C0;
+            pub const dwLocalPlayerController: usize = 0x1912578;
+            pub const dwLocalPlayerPawn: usize = 0x17371A8;
+            pub const dwPlantedC4: usize = 0x1928AD8;
+            pub const dwPrediction: usize = 0x1737070;
+            pub const dwSensitivity: usize = 0x19209E8;
+            pub const dwSensitivity_sensitivity: usize = 0x40;
+            pub const dwViewAngles: usize = 0x19309B0;
+            pub const dwViewMatrix: usize = 0x19241A0;
+            pub const dwViewRender: usize = 0x1924A20;
+        }
+        // Module: engine2.dll
+        pub mod engine2_dll {
+            pub const dwBuildNumber: usize = 0x514574;
+            pub const dwNetworkGameClient: usize = 0x513AC8;
+            pub const dwNetworkGameClient_deltaTick: usize = 0x258;
+            pub const dwNetworkGameClient_getLocalPlayer: usize = 0xF0;
+            pub const dwNetworkGameClient_getMaxClients: usize = 0x250;
+            pub const dwNetworkGameClient_signOnState: usize = 0x240;
+            pub const dwWindowHeight: usize = 0x5CCCDC;
+            pub const dwWindowWidth: usize = 0x5CCCD8;
+        }
+        // Module: inputsystem.dll
+        pub mod inputsystem_dll {
+            pub const dwInputSystem: usize = 0x367A0;
+        }
+        // Module: matchmaking.dll
+        pub mod matchmaking_dll {
+            pub const dwGameTypes: usize = 0x1D21E0;
+            pub const dwGameTypes_mapName: usize = 0x1D2300;
+        }
+    }
+}
diff --git a/src/websocket.rs b/src/websocket.rs
index 090ec16..46a9e97 100644
--- a/src/websocket.rs
+++ b/src/websocket.rs
@@ -60,9 +60,8 @@ pub async fn run(path: PathBuf, port: u16, data_lock: Arc<RwLock<RadarData>>) ->
         .with_state(AppState { data_lock });
 
     let address = format!("0.0.0.0:{}", port);
-
-    axum::Server::bind(&address.parse()?)
-        .serve(app.into_make_service())
+    let listener = tokio::net::TcpListener::bind(address).await?;
+    axum::serve(listener, app.into_make_service())
         .await?;
 
     Ok(())