diff --git a/.efrocachemap b/.efrocachemap
index 37fedd12..786c79b5 100644
--- a/.efrocachemap
+++ b/.efrocachemap
@@ -420,32 +420,32 @@
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/51/eb/0a567253cc08c94c5d315a64d9af",
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/bc/8f/a9c51a09c418136e386b7fdf21c7",
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/02/e5/84916e123f47ccf11ddda380d699",
- "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/0a/8c/4b3344df186e2f26d959bd886c72",
+ "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/b8/e5/db9d86f120c6f2788f68320453e4",
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/0f/e1/94378b32c786d5365a7810a15d73",
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/55/8c/8d0a0585e434b94865ae4befc090",
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/f6/21/951b7ff02b0ad14b1f0ac55763c4",
"assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/ef/c2/a607f318b815f025a20ab92f0a7b",
"assets/build/ba_data/data/languages/croatian.json": "https://files.ballistica.net/cache/ba1/66/bf/6e98398016da261296b8c306560e",
- "assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/82/61/8319e81bc3fed77e8319a2fd6988",
+ "assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/87/84/9f3d39610453b3bf350698a23316",
"assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28",
"assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/97/90/39ba65c2ad714429aec82ea1ae3e",
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/99/2a/bdcfa0932cf73e5cf63fd8113b1b",
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/4c/c7/0184b8178869d1a3827a1bfcd5bb",
- "assets/build/ba_data/data/languages/filipino.json": "https://files.ballistica.net/cache/ba1/00/70/fabda1781ddbb540cd1c2a6278db",
+ "assets/build/ba_data/data/languages/filipino.json": "https://files.ballistica.net/cache/ba1/6c/81/fad9858b8904190be7686ee245f8",
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/b6/e0/37dd30b686f475733ccc4b3cab49",
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/20/3f/198dcc5cfed5789042e1595bd048",
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/03/6a/4db89c5bf1ced8eb5a5615a4ae64",
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/8c/8e/67de1d9997a66299c8881d44ab22",
- "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/c2/f5/e7549f5179c22c6da97fafffc058",
+ "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/08/3b/68cea4d16f7020d932829af85323",
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/2d/e5/3737c6c3979cf381321c5472bea5",
"assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/75/70/e33e6ee95830052e8f36cd2135f7",
"assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/c7/16/e31ce16d1b4150c271401669f24f",
- "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/d7/8b/acdfb39196be7856f8bad77eb6a0",
+ "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/07/37/ab65ccee3a555bd40e9661860c58",
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/02/ab/e310f81582b6dc2ae93348d45166",
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/d5/fe/422745cdbe51ccb4f2ced6f5554a",
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/26/41/f1246ab56c6b7853f605c3a95889",
"assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/82/12/57bf144e12be229a9b70da9c45cb",
- "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/e8/25/a304de7a79195cb37ce9340e4194",
+ "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/b2/46/89ae228342f20ca4937ee254197b",
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/e6/59/af13a5d296da5935699bec902ed7",
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/9f/a6/a2c9d7f3f90a2320aa45ccfd65cd",
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/87/5d/d36a8a2e9cb0f02731a3fd7af000",
@@ -454,7 +454,7 @@
"assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/74/3d/c3d40a1e5ee1edf82555da05eda9",
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/0a/4f/90fcd63bd12a7648b2a1e9b01586",
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/87/20/259904441097b886b841d7c4d09a",
- "assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/71/59/356404b8db683d8c946a40ca02e5",
+ "assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/e2/e1/b815d9f2e9b2c3a4daddaf728225",
"assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/0b/24/3cc2b5a6ebe4bca1e01b40f8ed09",
"assets/build/ba_data/data/maps/big_g.json": "https://files.ballistica.net/cache/ba1/47/0a/a617cc85d927b576c4e6fc1091ed",
"assets/build/ba_data/data/maps/bridgit.json": "https://files.ballistica.net/cache/ba1/03/4b/57ee9b42854b26f23f81bd8c58ef",
@@ -3971,50 +3971,50 @@
"assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e",
"assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34",
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
- "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/17/93/7b6203d2f38b36df05b8ce17c46b",
+ "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/b4/0a/b59aa94b6312147af0935b80c262",
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0",
- "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e8/73/f01326803a219d4f131d4fd15976",
- "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/66/28/d54dc9e355fda0955078f25549a1",
- "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/06/ef/5fe65d87dc079e73ed5187dce9af",
+ "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/af/73/1a6b805983f216bad020b277c0a5",
+ "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/37/b2/8717f97080cb943b9dd07a1d4a8c",
+ "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5e/aa/13d5a6cadb58a25661f8adafba11",
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b",
- "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3c/18/ccc2d35dd33ebd3230d95e6eb2d4",
- "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d7/92/04ba79a96d83ac02cd5a17adbe1e",
- "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e1/c9/2a5225bab922a56c10759838001c",
- "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/45/53/cca9bd784b8d01f10721bed9d59d",
- "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e0/a9/1f73ee93654ac25f2d9dba2a9b05",
- "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/71/86/bdb8ebf17e301f14a58233be0acd",
- "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3d/7d/4482b4152112095189d0d2b61f6b",
- "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/df/80/86ee8de6a7dc36f4b2fe771070fa",
- "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fa/c6/122a0ab76d053fb4da0e3ea6a6ac",
- "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ee/c4/1b6fe482b04c3145932cf7ce3a0f",
- "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/29/7b/1be809b8f016e40214b1cfa25a20",
- "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/6d/e9/8df8c7d846b533c85b44b9361faa",
- "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/9e/98/b0b1341ef5c1eaac79142dc2076e",
- "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/a1/7a/86a45167e081bc7799528450fd8f",
- "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/aa/bb/a13c0ab9ce46ab4f966186c9096a",
- "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1a/1e/2a439812be1b0e9a3714e9d4488b",
- "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cc/6f/1800d03105696660c45e43a78e1c",
- "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/46/13/3d1f2f24646886f2dfde9a561ded",
- "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/2e/7d/ccddf9588cf47d78228237e3a04f",
- "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4e/b4/c8da295ae64e2cc32f0c8c62e52a",
- "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/87/71/373676b923ebef33a75794dea87b",
- "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5b/ac/449c528d0aa13ec54232018c62ec",
- "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7c/fe/a0314005dfce9ab567dfaada5e52",
- "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/02/46/17132be086c333bcfcc2fb95ab51",
- "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/95/ba/67d79a6fe650bdf8e95177958eb4",
- "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/77/cc/2fc9ce86779a8ee21d02ce7f76a7",
- "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7e/5b/89ed5e609d512884de7397e7c967",
- "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b0/b8/01076d33a22d6638ef1cd9d413b5",
- "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/29/d3/4e469307f21084658dc6ab5ba0e1",
- "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/03/8d/9a09a658c70d29dd92ff0d7acfc8",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/dd/19/b5ebb26a87f986691c59d3a65e48",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/c1/49/46c948466711b306dc916ab7db6c",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/f2/80/08bae6295630e53ae3e7d6a3da9e",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/c7/ec/d6afcfb4c38c26be12834bac8e4b",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/ad/ee/4615a67cc8cf4a6c8f654eeee70a",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/71/19/9603c2f8c04bfa9a44f827d9b5b4",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/cc/19/5c3fe6efa96b35b8d54923412008",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/b7/80/6d08ab8059affb89e3a9ec70a377",
- "src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/c5/18/29d9fe8e483ce222d3263336f7e6",
+ "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/00/bb/c2340cc627b8b197825e240ce439",
+ "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/22/f7/b5966ebcd8af85cce5faddcbe23b",
+ "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/41/6e/0fcd3a55242627fdced0bafdafd0",
+ "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/3d/d6/70f2389e7a5f6818a3eacb937c42",
+ "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/35/cd/f2c0289fc676fd2e455a743dd5cc",
+ "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/66/c5/d6754f8e481cdfa238571b230006",
+ "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a8/af/12ee80d554e454a7a886520b9b85",
+ "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/6d/41/594f4a81dc280ba910e648c1f7ec",
+ "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d6/16/3fbd2aedf257615c743438e02710",
+ "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5d/f4/d989633afc9634b750a1e3d164c3",
+ "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/6b/46/7f077995794fdd27d57c34a4314a",
+ "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/b7/a6/aae9cc9e7167f5f6fcb18b8ecd3f",
+ "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/43/e3/dcdf490211f4b9f82fc5e9d1e6a0",
+ "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/8f/97/e3f48e8e18027c4a10dd10a00970",
+ "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/36/4c/60982c040f3d99115533defa8424",
+ "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fa/ce/979941714e5818f53e7b432999e5",
+ "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e8/7a/53b3337ca506f115d3abb2ed2178",
+ "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/14/fc/47d215d72a1f92884b4bb933d174",
+ "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b9/56/8d0c5c7c3e88053b91ca3347d81c",
+ "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cb/17/666666b770534df7bf22bd8b339a",
+ "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/16/f2/f3ddad586518c3cf691f549c935a",
+ "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ec/44/0371116fbbdec59df047cd704739",
+ "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/da/99/a26510b1c727ba3c21059b6e527c",
+ "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0d/aa/d66c7ed8e090061c4223ffda8691",
+ "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/95/04/32ec2d08c22a60c1094df98f7cde",
+ "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6e/ad/651d3b89a8b3b1adbadffa242453",
+ "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/62/2c/9005fac95dba13211491a4a174b1",
+ "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/57/bc/4baf0c1c3ae705b13351d77c2321",
+ "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a6/3c/13037c954372776021d4e02cd976",
+ "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/03/18/548ae6eb8fa4c8e022c549e95408",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/bc/5c/b41c1b7f75e2c0a91ca75b015e32",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/a8/c2/7263210f9ca44940beba9e7094c3",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/4f/53/3cf9875e15b556f4f480c0ff1866",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/d8/31/8984d535d100bd9db3bcb650e505",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/08/61/240d6b0150ae3418e92907f62415",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/31/43/82418c0cd44e360d90127d18eb45",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/b9/17/8a8a2315df28cb88ad8bbea7f539",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/1d/2d/1d60ffc9cd423ddf0fc2ae9279c1",
+ "src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/b3/15/7c6d580b3482870b5b058858624c",
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/9d/7e/0a5125aa421e722c59d22b8beb19"
}
\ No newline at end of file
diff --git a/assets/src/ba_data/python/._ba_sources_hash b/assets/src/ba_data/python/._ba_sources_hash
index b814fafa..262d68ce 100644
--- a/assets/src/ba_data/python/._ba_sources_hash
+++ b/assets/src/ba_data/python/._ba_sources_hash
@@ -1 +1 @@
-251250588769004084707045653514620133412
\ No newline at end of file
+248384142463789950002131932834119995109
\ No newline at end of file
diff --git a/assets/src/ba_data/python/_ba.py b/assets/src/ba_data/python/_ba.py
index 93d60b2e..15bf9178 100644
--- a/assets/src/ba_data/python/_ba.py
+++ b/assets/src/ba_data/python/_ba.py
@@ -1244,14 +1244,6 @@ def _app() -> ba.App:
return ba.App()
-def accept_party_invitation(invite_id: str) -> None:
- """accept_party_invitation(invite_id: str) -> None
-
- (internal)
- """
- return None
-
-
def add_clean_frame_callback(call: Callable) -> None:
"""add_clean_frame_callback(call: Callable) -> None
@@ -2048,6 +2040,22 @@ def get_chat_messages() -> list[str]:
return ['blah', 'blah2']
+def get_client_public_device_uuid(client_id: int) -> Optional[str]:
+ """get_client_public_device_uuid(client_id: int) -> Optional[str]
+
+ (internal)
+
+ Category: General Utility Functions
+
+ Return a public device UUID for a client. If the client does not
+ exist or is running a version older than 1.6.10, returns None.
+ Public device UUID uniquely identifies the device the client is
+ using in a semi-permanent way. The UUID value will change
+ periodically with updates to the game or operating system.
+ """
+ return ''
+
+
def get_collision_info(*args: Any) -> Any:
"""get_collision_info(*args: Any) -> Any
@@ -2134,14 +2142,6 @@ def get_game_roster() -> list[dict[str, Any]]:
return [{'foo': 'bar'}]
-def get_google_play_party_client_count() -> int:
- """get_google_play_party_client_count() -> int
-
- (internal)
- """
- return int()
-
-
def get_idle_time() -> int:
"""get_idle_time() -> int
@@ -2813,15 +2813,6 @@ def increment_analytics_counts_raw(name: str, increment: int = 1) -> None:
return None
-def invite_players() -> None:
- """invite_players() -> None
-
- (internal)
- Category: General Utility Functions
- """
- return None
-
-
def is_blessed() -> bool:
"""is_blessed() -> bool
@@ -3784,16 +3775,6 @@ def show_app_invite(title: Union[str, ba.Lstr], message: Union[str, ba.Lstr],
return None
-def show_invites_ui() -> None:
- """show_invites_ui() -> None
-
- (internal)
-
- Category: General Utility Functions
- """
- return None
-
-
def show_online_score_ui(show: str = 'general',
game: str = None,
game_version: str = None) -> None:
@@ -3835,26 +3816,6 @@ def sign_out() -> None:
return None
-def start_listening_for_wii_remotes() -> None:
- """start_listening_for_wii_remotes() -> None
-
- (internal)
-
- Start listening for connections from wii remotes.
- """
- return None
-
-
-def stop_listening_for_wii_remotes() -> None:
- """stop_listening_for_wii_remotes() -> None
-
- (internal)
-
- Stop listening for connections from wii remotes.
- """
- return None
-
-
def submit_analytics_counts() -> None:
"""submit_analytics_counts() -> None
diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
index 7dcc6f9c..d208d02b 100644
--- a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
+++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
@@ -189,72 +189,459 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
index 1f8490f9..4644102e 100644
--- a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
+++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
@@ -1,204 +1,1365 @@
-
+
ballistica\app
-
+
ballistica\app
-
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica
+
+
+ ballistica
+
+
ballistica\config
-
+
ballistica\config
-
+
ballistica\config
-
+
ballistica\config
-
+
ballistica\config
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
-
- ballistica\config
+
+ ballistica\dynamics\bg
-
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game
+
+
ballistica\game
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
+
+ ballistica\game
+
+
+ ballistica\game
+
+
ballistica\game
-
- ballistica\game\session
+
+ ballistica\game
+
+
+ ballistica\game
-
- ballistica\game\session
+
+ ballistica\game
+
+
+ ballistica\game
-
+
+ ballistica\game
+
+
+ ballistica\game
+
+
ballistica\game\session
-
-
+
+
ballistica\game\session
-
-
+
+
ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\generic
-
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
ballistica\networking
-
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
ballistica\networking
-
+
+ ballistica\networking
+
+
ballistica\networking
-
+
ballistica\networking
-
-
- ballistica\platform\android\amazon
-
-
- ballistica\platform\android\amazon
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android\cardboard
-
-
- ballistica\platform\android\cardboard
-
-
- ballistica\platform\android\google
-
-
- ballistica\platform\android\google
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android\utf8
-
-
- ballistica\platform\android\utf8
-
-
- ballistica\platform\android\utf8
-
-
+
ballistica\platform\apple
-
- ballistica\platform\apple
-
-
- ballistica\platform\apple
+
+ ballistica\platform\linux
-
- ballistica\platform\apple
+
+ ballistica\platform\linux
-
- ballistica\platform\apple
+
+ ballistica\platform
-
- ballistica\platform\oculus
+
+ ballistica\platform
-
- ballistica\platform\oculus
-
-
- ballistica\platform\oculus
+
+ ballistica\platform
-
+
+ ballistica\platform\sdl
+
+
+ ballistica\platform\sdl
+
+
ballistica\platform\windows
-
+
ballistica\platform\windows
-
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
ballistica\python\methods
-
+
ballistica\python\methods
-
+
ballistica\python\methods
-
+
ballistica\python\methods
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene
+
+
+ ballistica\scene
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
external\open_dynamics_engine-ef\ode
@@ -434,22 +1595,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj
index b0295807..d79838a4 100644
--- a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj
+++ b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj
@@ -184,72 +184,459 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters
index 1f8490f9..4644102e 100644
--- a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters
+++ b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters
@@ -1,204 +1,1365 @@
-
+
ballistica\app
-
+
ballistica\app
-
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\app
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica\audio
+
+
+ ballistica
+
+
+ ballistica
+
+
ballistica\config
-
+
ballistica\config
-
+
ballistica\config
-
+
ballistica\config
-
+
ballistica\config
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
+
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\core
-
- ballistica\config
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
-
- ballistica\config
+
+ ballistica\dynamics\bg
-
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics\bg
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics\material
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\dynamics
+
+
+ ballistica\game
+
+
+ ballistica\game
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game\connection
+
+
+ ballistica\game
+
+
ballistica\game
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
+
+ ballistica\game
+
+
+ ballistica\game
+
+
ballistica\game
-
- ballistica\game\session
+
+ ballistica\game
+
+
+ ballistica\game
-
- ballistica\game\session
+
+ ballistica\game
+
+
+ ballistica\game
-
+
+ ballistica\game
+
+
+ ballistica\game
+
+
ballistica\game\session
-
-
+
+
ballistica\game\session
-
-
+
+
ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\game\session
+
+
+ ballistica\generic
-
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\generic
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics\component
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics\gl
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics\mesh
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\text
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics\texture
+
+
+ ballistica\graphics
+
+
+ ballistica\graphics
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input\device
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\input
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\math
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\component
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media\data
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
+ ballistica\media
+
+
ballistica\networking
-
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
+ ballistica\networking
+
+
ballistica\networking
-
+
+ ballistica\networking
+
+
ballistica\networking
-
+
ballistica\networking
-
-
- ballistica\platform\android\amazon
-
-
- ballistica\platform\android\amazon
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android\cardboard
-
-
- ballistica\platform\android\cardboard
-
-
- ballistica\platform\android\google
-
-
- ballistica\platform\android\google
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android
-
-
- ballistica\platform\android\utf8
-
-
- ballistica\platform\android\utf8
-
-
- ballistica\platform\android\utf8
-
-
+
ballistica\platform\apple
-
- ballistica\platform\apple
-
-
- ballistica\platform\apple
+
+ ballistica\platform\linux
-
- ballistica\platform\apple
+
+ ballistica\platform\linux
-
- ballistica\platform\apple
+
+ ballistica\platform
-
- ballistica\platform\oculus
+
+ ballistica\platform
-
- ballistica\platform\oculus
-
-
- ballistica\platform\oculus
+
+ ballistica\platform
-
+
+ ballistica\platform\sdl
+
+
+ ballistica\platform\sdl
+
+
ballistica\platform\windows
-
+
ballistica\platform\windows
-
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
+ ballistica\python\class
+
+
ballistica\python\methods
-
+
ballistica\python\methods
-
+
ballistica\python\methods
-
+
ballistica\python\methods
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python\methods
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\python
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene\node
+
+
+ ballistica\scene
+
+
+ ballistica\scene
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
+
+ ballistica\ui\widget
+
external\open_dynamics_engine-ef\ode
@@ -434,22 +1595,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/ba_module.md b/docs/ba_module.md
index 76e02435..2d4152bf 100644
--- a/docs/ba_module.md
+++ b/docs/ba_module.md
@@ -1,5 +1,5 @@
-last updated for Ballistica version 1.6.9 build 20486
+last updated for Ballistica version 1.6.10 build 20501
This page documents the Python classes and functions in the 'ba' module,
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please let me know. Happy modding!
@@ -3428,7 +3428,7 @@ needs a chooser.
currently-active language.
To see available resource keys, look at any of the bs_language_*.py files
- in the game or the translations pages at bombsquadgame.com/translate.
+ in the game or the translations pages at legacy.ballistica.net/translate.
# EXAMPLE 1: specify a string from a resource path
mynode.text = ba.Lstr(resource='audioSettingsWindow.titleText')
diff --git a/tools/batools/build.py b/tools/batools/build.py
index f197f77e..482463f8 100644
--- a/tools/batools/build.py
+++ b/tools/batools/build.py
@@ -200,7 +200,7 @@ def lazybuild(target: str, category: SourceCategory, command: str) -> None:
# Everything possibly affecting Windows binary builds.
elif category is SourceCategory.WIN:
- paths = ['Makefile', 'src', 'resources/src']
+ paths = ['Makefile', 'src', 'resources/src', 'ballisticacore-windows']
# Everything possibly affecting resource builds.
elif category is SourceCategory.RESOURCES:
diff --git a/tools/batools/project.py b/tools/batools/project.py
index 2a1bbb74..3e598afc 100755
--- a/tools/batools/project.py
+++ b/tools/batools/project.py
@@ -460,7 +460,7 @@ class Updater:
src_root = '..\\..\\src'
- public_project = 'Internal' in basename
+ public_project = 'Internal' not in basename
all_files = sorted([
f for f in (self._source_files + self._header_files)