cluaupp 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2328) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +4 -2
  3. package/editors/vscode/package.json +1 -1
  4. package/examples/README.md +5 -6
  5. package/examples/game/default.project.json +16 -11
  6. package/examples/game/include/clpp/datatypes.clh +40 -14
  7. package/examples/game/include/clpp/generated/instances.clh +80467 -5845
  8. package/examples/game/include/clpp/libs/arrayindexer.clh +12 -0
  9. package/examples/game/include/clpp/libs/axiom.clh +154 -0
  10. package/examples/game/include/clpp/libs/bloom.clh +58 -0
  11. package/examples/game/include/clpp/libs/coil.clh +37 -0
  12. package/examples/game/include/clpp/libs/crest.clh +22 -0
  13. package/examples/game/include/clpp/libs/echo.clh +52 -0
  14. package/examples/game/include/clpp/libs/ember.clh +17 -0
  15. package/examples/game/include/clpp/libs/flare.clh +65 -0
  16. package/examples/game/include/clpp/libs/gleam.clh +111 -0
  17. package/examples/game/include/clpp/libs/guide.clh +42 -0
  18. package/examples/game/include/clpp/libs/helm.clh +31 -0
  19. package/examples/game/include/clpp/libs/hive.clh +20 -0
  20. package/examples/game/include/clpp/libs/keep.clh +158 -0
  21. package/examples/game/include/clpp/libs/lens.clh +24 -0
  22. package/examples/game/include/clpp/libs/mint.clh +28 -0
  23. package/examples/game/include/clpp/libs/net.clh +15 -24
  24. package/examples/game/include/clpp/libs/occlude.clh +15 -0
  25. package/examples/game/include/clpp/libs/pin.clh +28 -0
  26. package/examples/game/include/clpp/libs/promise.clh +11 -15
  27. package/examples/game/include/clpp/libs/roster.clh +117 -0
  28. package/examples/game/include/clpp/libs/shift.clh +22 -0
  29. package/examples/game/include/clpp/libs/spark.clh +28 -0
  30. package/examples/game/include/clpp/libs/stage.clh +23 -0
  31. package/examples/game/include/clpp/libs/sweep.clh +23 -0
  32. package/examples/game/include/clpp/libs/trace.clh +18 -0
  33. package/examples/game/include/clpp/libs/ward.clh +18 -0
  34. package/examples/game/include/clpp/libs.clh +24 -17
  35. package/examples/game/include/clpp/roblox.clh +13 -3
  36. package/examples/game/src/ReplicatedFirst/Loading/.gitkeep +1 -0
  37. package/examples/game/src/ReplicatedStorage/Shared/Constants/Classes/.gitkeep +1 -0
  38. package/examples/game/src/ReplicatedStorage/Shared/Constants/Datas/TemplateData.clh +40 -0
  39. package/examples/game/src/ReplicatedStorage/Shared/Constants/Primitives/.gitkeep +1 -0
  40. package/examples/game/src/ReplicatedStorage/Shared/Modules/.gitkeep +1 -0
  41. package/examples/game/src/ReplicatedStorage/Shared/Net/.gitkeep +1 -0
  42. package/examples/game/src/ReplicatedStorage/Shared/Services/.gitkeep +1 -0
  43. package/examples/game/src/ReplicatedStorage/Shared/Types/.gitkeep +1 -0
  44. package/examples/game/src/ReplicatedStorage/Shared/Utils/.gitkeep +1 -0
  45. package/examples/game/src/ServerScriptService/Boot/DataBoot.server.clpp +13 -0
  46. package/examples/game/src/ServerScriptService/Components/.gitkeep +1 -0
  47. package/examples/game/src/ServerScriptService/Configuration/ServerConfig.clp +4 -0
  48. package/examples/game/src/ServerScriptService/Handlers/Guard.server.clpp +7 -0
  49. package/examples/game/src/ServerScriptService/Handlers/PlayerHandler.server.clpp +23 -0
  50. package/examples/game/src/ServerScriptService/Services/.gitkeep +1 -0
  51. package/examples/game/src/ServerStorage/Configuration/.gitkeep +1 -0
  52. package/examples/game/src/ServerStorage/Modules/.gitkeep +1 -0
  53. package/examples/game/src/StarterPlayer/StarterCharacterScripts/Character/CharacterReady.client.clpp +6 -0
  54. package/examples/game/src/StarterPlayer/StarterCharacterScripts/Combat/.gitkeep +1 -0
  55. package/examples/game/src/StarterPlayer/StarterCharacterScripts/Movement/.gitkeep +1 -0
  56. package/examples/game/src/StarterPlayer/StarterPlayerScripts/Controllers/DataController.client.clpp +7 -0
  57. package/examples/game/src/StarterPlayer/StarterPlayerScripts/Input/.gitkeep +1 -0
  58. package/examples/game/src/StarterPlayer/StarterPlayerScripts/UI/.gitkeep +1 -0
  59. package/examples/game/wally.toml +3 -3
  60. package/generated/cli.js +1 -1
  61. package/generated/clpp/contract.js +2 -2
  62. package/generated/clpp/paths.js +2 -1
  63. package/generated/clpp/postprocess.js +64 -6
  64. package/generated/compile.js +4 -3
  65. package/generated/flare/emit.js +222 -0
  66. package/generated/flare/index.js +58 -0
  67. package/generated/flare/parse.js +130 -0
  68. package/generated/flare/types.js +2 -0
  69. package/generated/libs.js +146 -75
  70. package/generated/native/index.js +482 -0
  71. package/generated/utils/project.js +115 -12
  72. package/generated/utils/rojo-mapper.js +12 -6
  73. package/include/clpp/datatypes.clh +40 -14
  74. package/include/clpp/generated/instances.clh +80467 -5845
  75. package/include/clpp/libs/arrayindexer.clh +12 -0
  76. package/include/clpp/libs/axiom.clh +154 -0
  77. package/include/clpp/libs/bloom.clh +58 -0
  78. package/include/clpp/libs/coil.clh +37 -0
  79. package/include/clpp/libs/crest.clh +22 -0
  80. package/include/clpp/libs/echo.clh +52 -0
  81. package/include/clpp/libs/ember.clh +17 -0
  82. package/include/clpp/libs/flare.clh +65 -0
  83. package/include/clpp/libs/gleam.clh +111 -0
  84. package/include/clpp/libs/guide.clh +42 -0
  85. package/include/clpp/libs/helm.clh +31 -0
  86. package/include/clpp/libs/hive.clh +20 -0
  87. package/include/clpp/libs/keep.clh +158 -0
  88. package/include/clpp/libs/lens.clh +24 -0
  89. package/include/clpp/libs/mint.clh +28 -0
  90. package/include/clpp/libs/net.clh +15 -24
  91. package/include/clpp/libs/occlude.clh +15 -0
  92. package/include/clpp/libs/pin.clh +28 -0
  93. package/include/clpp/libs/promise.clh +11 -15
  94. package/include/clpp/libs/roster.clh +117 -0
  95. package/include/clpp/libs/shift.clh +22 -0
  96. package/include/clpp/libs/spark.clh +28 -0
  97. package/include/clpp/libs/stage.clh +23 -0
  98. package/include/clpp/libs/sweep.clh +23 -0
  99. package/include/clpp/libs/trace.clh +18 -0
  100. package/include/clpp/libs/ward.clh +18 -0
  101. package/include/clpp/libs.clh +24 -17
  102. package/include/clpp/roblox.clh +13 -3
  103. package/package.json +3 -2
  104. package/runtime/ArrayIndexer/init.luau +127 -62
  105. package/runtime/Axiom/init.luau +605 -0
  106. package/runtime/Bloom/init.luau +433 -0
  107. package/runtime/Coil/init.luau +209 -0
  108. package/runtime/Crest/init.luau +425 -0
  109. package/runtime/Echo/init.luau +417 -0
  110. package/runtime/Ember/init.luau +365 -0
  111. package/runtime/Flare/init.luau +716 -0
  112. package/runtime/Gleam/init.luau +718 -0
  113. package/runtime/Guide/init.luau +215 -0
  114. package/runtime/Helm/init.luau +377 -0
  115. package/runtime/Hive/init.luau +219 -0
  116. package/runtime/Keep/Client.luau +114 -0
  117. package/runtime/Keep/Data.luau +883 -0
  118. package/runtime/Keep/Engine.luau +211 -0
  119. package/runtime/Keep/Replicator.luau +298 -0
  120. package/runtime/Keep/Server.luau +251 -0
  121. package/runtime/Keep/Store.luau +652 -0
  122. package/runtime/Keep/Trade.luau +455 -0
  123. package/runtime/Keep/init.luau +205 -0
  124. package/runtime/Lens/init.luau +609 -0
  125. package/runtime/Mint/init.luau +279 -0
  126. package/runtime/Net/init.luau +33 -2
  127. package/runtime/Net/src/codec.luau +98 -27
  128. package/runtime/Occlude/init.luau +64 -1
  129. package/runtime/Pin/init.luau +306 -0
  130. package/runtime/Roster/init.luau +678 -0
  131. package/runtime/SOURCES.md +28 -19
  132. package/runtime/Shift/init.luau +238 -0
  133. package/runtime/Spark/init.luau +484 -0
  134. package/runtime/Stage/init.luau +178 -0
  135. package/runtime/Sweep/init.luau +257 -0
  136. package/runtime/Trace/init.luau +210 -0
  137. package/runtime/Ward/init.luau +178 -0
  138. package/src/cli.ts +1 -1
  139. package/src/clpp/contract.ts +2 -2
  140. package/src/clpp/paths.ts +2 -1
  141. package/src/clpp/postprocess.ts +69 -7
  142. package/src/compile.ts +11 -3
  143. package/src/flare/emit.ts +231 -0
  144. package/src/flare/index.ts +50 -0
  145. package/src/flare/parse.ts +147 -0
  146. package/src/flare/types.ts +61 -0
  147. package/src/libs.ts +147 -75
  148. package/src/native/index.ts +509 -0
  149. package/src/utils/project.ts +116 -12
  150. package/src/utils/rojo-mapper.ts +12 -6
  151. package/templates/game/default.project.json +16 -11
  152. package/templates/game/include/clpp/datatypes.clh +40 -14
  153. package/templates/game/include/clpp/generated/instances.clh +80467 -5845
  154. package/templates/game/include/clpp/libs/arrayindexer.clh +12 -0
  155. package/templates/game/include/clpp/libs/axiom.clh +154 -0
  156. package/templates/game/include/clpp/libs/bloom.clh +58 -0
  157. package/templates/game/include/clpp/libs/coil.clh +37 -0
  158. package/templates/game/include/clpp/libs/crest.clh +22 -0
  159. package/templates/game/include/clpp/libs/echo.clh +52 -0
  160. package/templates/game/include/clpp/libs/ember.clh +17 -0
  161. package/templates/game/include/clpp/libs/flare.clh +65 -0
  162. package/templates/game/include/clpp/libs/gleam.clh +111 -0
  163. package/templates/game/include/clpp/libs/guide.clh +42 -0
  164. package/templates/game/include/clpp/libs/helm.clh +31 -0
  165. package/templates/game/include/clpp/libs/hive.clh +20 -0
  166. package/templates/game/include/clpp/libs/keep.clh +158 -0
  167. package/templates/game/include/clpp/libs/lens.clh +24 -0
  168. package/templates/game/include/clpp/libs/mint.clh +28 -0
  169. package/templates/game/include/clpp/libs/net.clh +15 -24
  170. package/templates/game/include/clpp/libs/occlude.clh +15 -0
  171. package/templates/game/include/clpp/libs/pin.clh +28 -0
  172. package/templates/game/include/clpp/libs/promise.clh +11 -15
  173. package/templates/game/include/clpp/libs/roster.clh +117 -0
  174. package/templates/game/include/clpp/libs/shift.clh +22 -0
  175. package/templates/game/include/clpp/libs/spark.clh +28 -0
  176. package/templates/game/include/clpp/libs/stage.clh +23 -0
  177. package/templates/game/include/clpp/libs/sweep.clh +23 -0
  178. package/templates/game/include/clpp/libs/trace.clh +18 -0
  179. package/templates/game/include/clpp/libs/ward.clh +18 -0
  180. package/templates/game/include/clpp/libs.clh +24 -17
  181. package/templates/game/include/clpp/roblox.clh +13 -3
  182. package/templates/game/src/ReplicatedFirst/Loading/.gitkeep +1 -0
  183. package/templates/game/src/ReplicatedStorage/Shared/Constants/Classes/.gitkeep +1 -0
  184. package/templates/game/src/ReplicatedStorage/Shared/Constants/Datas/TemplateData.clh +40 -0
  185. package/templates/game/src/ReplicatedStorage/Shared/Constants/Primitives/.gitkeep +1 -0
  186. package/templates/game/src/ReplicatedStorage/Shared/Modules/.gitkeep +1 -0
  187. package/templates/game/src/ReplicatedStorage/Shared/Net/.gitkeep +1 -0
  188. package/templates/game/src/ReplicatedStorage/Shared/Services/.gitkeep +1 -0
  189. package/templates/game/src/ReplicatedStorage/Shared/Types/.gitkeep +1 -0
  190. package/templates/game/src/ReplicatedStorage/Shared/Utils/.gitkeep +1 -0
  191. package/templates/game/src/ServerScriptService/Boot/DataBoot.server.clpp +13 -0
  192. package/templates/game/src/ServerScriptService/Components/.gitkeep +1 -0
  193. package/templates/game/src/ServerScriptService/Configuration/ServerConfig.clp +4 -0
  194. package/templates/game/src/ServerScriptService/Handlers/Guard.server.clpp +7 -0
  195. package/templates/game/src/ServerScriptService/Handlers/PlayerHandler.server.clpp +24 -0
  196. package/templates/game/src/ServerScriptService/Services/.gitkeep +1 -0
  197. package/templates/game/src/ServerStorage/Configuration/.gitkeep +1 -0
  198. package/templates/game/src/ServerStorage/Modules/.gitkeep +1 -0
  199. package/templates/game/src/StarterPlayer/StarterCharacterScripts/Character/CharacterReady.client.clpp +6 -0
  200. package/templates/game/src/StarterPlayer/StarterCharacterScripts/Combat/.gitkeep +1 -0
  201. package/templates/game/src/StarterPlayer/StarterCharacterScripts/Movement/.gitkeep +1 -0
  202. package/templates/game/src/StarterPlayer/StarterPlayerScripts/Controllers/DataController.client.clpp +7 -0
  203. package/templates/game/src/StarterPlayer/StarterPlayerScripts/Input/.gitkeep +1 -0
  204. package/templates/game/src/StarterPlayer/StarterPlayerScripts/UI/.gitkeep +1 -0
  205. package/templates/game/wally.toml +4 -3
  206. package/examples/game/include/clpp/libs/chrono.clh +0 -26
  207. package/examples/game/include/clpp/libs/cmdr.clh +0 -16
  208. package/examples/game/include/clpp/libs/dataservice.clh +0 -138
  209. package/examples/game/include/clpp/libs/display.clh +0 -12
  210. package/examples/game/include/clpp/libs/ezvisual.clh +0 -16
  211. package/examples/game/include/clpp/libs/formatnumber.clh +0 -14
  212. package/examples/game/include/clpp/libs/fusion.clh +0 -41
  213. package/examples/game/include/clpp/libs/iris.clh +0 -40
  214. package/examples/game/include/clpp/libs/janitor.clh +0 -38
  215. package/examples/game/include/clpp/libs/math.clh +0 -14
  216. package/examples/game/include/clpp/libs/module3d.clh +0 -23
  217. package/examples/game/include/clpp/libs/spring.clh +0 -17
  218. package/examples/game/include/clpp/libs/statemachine.clh +0 -18
  219. package/examples/game/include/clpp/libs/stickybillboard.clh +0 -13
  220. package/examples/game/include/clpp/libs/topbarplus.clh +0 -28
  221. package/examples/game/include/clpp/libs/twinkle.clh +0 -15
  222. package/examples/game/include/clpp/libs/vfx.clh +0 -13
  223. package/examples/game/libs/ArrayIndexer/init.luau +0 -144
  224. package/examples/game/libs/Chrono/Client/ClientClock.luau +0 -202
  225. package/examples/game/libs/Chrono/Client/InterpolationBuffer.luau +0 -74
  226. package/examples/game/libs/Chrono/Client/ModelResolver.luau +0 -53
  227. package/examples/game/libs/Chrono/Client/Player.luau +0 -113
  228. package/examples/game/libs/Chrono/Client/Receiver.luau +0 -395
  229. package/examples/game/libs/Chrono/Client/Replicate.luau +0 -333
  230. package/examples/game/libs/Chrono/Client/Sender.luau +0 -205
  231. package/examples/game/libs/Chrono/LICENSE +0 -21
  232. package/examples/game/libs/Chrono/Server/EntityGrid.luau +0 -299
  233. package/examples/game/libs/Chrono/Server/Player.luau +0 -141
  234. package/examples/game/libs/Chrono/Server/Receiver.luau +0 -287
  235. package/examples/game/libs/Chrono/Server/Replicate.luau +0 -415
  236. package/examples/game/libs/Chrono/Server/Sender.luau +0 -306
  237. package/examples/game/libs/Chrono/Server/ServerClock.luau +0 -50
  238. package/examples/game/libs/Chrono/Shared/ApplyMounts.luau +0 -137
  239. package/examples/game/libs/Chrono/Shared/Bin.luau +0 -31
  240. package/examples/game/libs/Chrono/Shared/ClockUnwrap.luau +0 -70
  241. package/examples/game/libs/Chrono/Shared/Config.luau +0 -264
  242. package/examples/game/libs/Chrono/Shared/Entity.luau +0 -1016
  243. package/examples/game/libs/Chrono/Shared/Events.luau +0 -39
  244. package/examples/game/libs/Chrono/Shared/Holder.luau +0 -210
  245. package/examples/game/libs/Chrono/Shared/InterpolationMath.luau +0 -51
  246. package/examples/game/libs/Chrono/Shared/ModelHelper.luau +0 -122
  247. package/examples/game/libs/Chrono/Shared/Remotes/ClientClockRelay.model.json +0 -3
  248. package/examples/game/libs/Chrono/Shared/Remotes/ClientHeartbeat.model.json +0 -3
  249. package/examples/game/libs/Chrono/Shared/Remotes/ClientLoaded.model.json +0 -3
  250. package/examples/game/libs/Chrono/Shared/Remotes/Death.model.json +0 -3
  251. package/examples/game/libs/Chrono/Shared/Remotes/Heartbeat.model.json +0 -3
  252. package/examples/game/libs/Chrono/Shared/Remotes/Replicate.model.json +0 -3
  253. package/examples/game/libs/Chrono/Shared/Remotes/ReplicateFull.model.json +0 -3
  254. package/examples/game/libs/Chrono/Shared/Remotes/SafeReplicate.model.json +0 -3
  255. package/examples/game/libs/Chrono/Shared/ReplicationRules.luau +0 -122
  256. package/examples/game/libs/Chrono/Shared/Signal.luau +0 -219
  257. package/examples/game/libs/Chrono/Shared/Snapshots.luau +0 -218
  258. package/examples/game/libs/Chrono/Shared/Stats.luau +0 -204
  259. package/examples/game/libs/Chrono/Shared/Ticker.luau +0 -112
  260. package/examples/game/libs/Chrono/Shared/Types.luau +0 -247
  261. package/examples/game/libs/Chrono/Shared/Warn.luau +0 -33
  262. package/examples/game/libs/Chrono/Shared/_CUSTOM_MODEL_REP/init.model.json +0 -3
  263. package/examples/game/libs/Chrono/_impl/Client/ClientClock.luau +0 -202
  264. package/examples/game/libs/Chrono/_impl/Client/InterpolationBuffer.luau +0 -74
  265. package/examples/game/libs/Chrono/_impl/Client/ModelResolver.luau +0 -53
  266. package/examples/game/libs/Chrono/_impl/Client/Player.luau +0 -113
  267. package/examples/game/libs/Chrono/_impl/Client/Receiver.luau +0 -395
  268. package/examples/game/libs/Chrono/_impl/Client/Replicate.luau +0 -333
  269. package/examples/game/libs/Chrono/_impl/Client/Sender.luau +0 -205
  270. package/examples/game/libs/Chrono/_impl/LICENSE +0 -21
  271. package/examples/game/libs/Chrono/_impl/Server/EntityGrid.luau +0 -299
  272. package/examples/game/libs/Chrono/_impl/Server/Player.luau +0 -141
  273. package/examples/game/libs/Chrono/_impl/Server/Receiver.luau +0 -287
  274. package/examples/game/libs/Chrono/_impl/Server/Replicate.luau +0 -415
  275. package/examples/game/libs/Chrono/_impl/Server/Sender.luau +0 -306
  276. package/examples/game/libs/Chrono/_impl/Server/ServerClock.luau +0 -50
  277. package/examples/game/libs/Chrono/_impl/Shared/ApplyMounts.luau +0 -137
  278. package/examples/game/libs/Chrono/_impl/Shared/Bin.luau +0 -31
  279. package/examples/game/libs/Chrono/_impl/Shared/ClockUnwrap.luau +0 -70
  280. package/examples/game/libs/Chrono/_impl/Shared/Config.luau +0 -264
  281. package/examples/game/libs/Chrono/_impl/Shared/Entity.luau +0 -1016
  282. package/examples/game/libs/Chrono/_impl/Shared/Events.luau +0 -39
  283. package/examples/game/libs/Chrono/_impl/Shared/Holder.luau +0 -210
  284. package/examples/game/libs/Chrono/_impl/Shared/InterpolationMath.luau +0 -51
  285. package/examples/game/libs/Chrono/_impl/Shared/ModelHelper.luau +0 -122
  286. package/examples/game/libs/Chrono/_impl/Shared/Remotes/ClientClockRelay.model.json +0 -3
  287. package/examples/game/libs/Chrono/_impl/Shared/Remotes/ClientHeartbeat.model.json +0 -3
  288. package/examples/game/libs/Chrono/_impl/Shared/Remotes/ClientLoaded.model.json +0 -3
  289. package/examples/game/libs/Chrono/_impl/Shared/Remotes/Death.model.json +0 -3
  290. package/examples/game/libs/Chrono/_impl/Shared/Remotes/Heartbeat.model.json +0 -3
  291. package/examples/game/libs/Chrono/_impl/Shared/Remotes/Replicate.model.json +0 -3
  292. package/examples/game/libs/Chrono/_impl/Shared/Remotes/ReplicateFull.model.json +0 -3
  293. package/examples/game/libs/Chrono/_impl/Shared/Remotes/SafeReplicate.model.json +0 -3
  294. package/examples/game/libs/Chrono/_impl/Shared/ReplicationRules.luau +0 -122
  295. package/examples/game/libs/Chrono/_impl/Shared/Signal.luau +0 -219
  296. package/examples/game/libs/Chrono/_impl/Shared/Snapshots.luau +0 -218
  297. package/examples/game/libs/Chrono/_impl/Shared/Stats.luau +0 -204
  298. package/examples/game/libs/Chrono/_impl/Shared/Ticker.luau +0 -112
  299. package/examples/game/libs/Chrono/_impl/Shared/Types.luau +0 -247
  300. package/examples/game/libs/Chrono/_impl/Shared/Warn.luau +0 -33
  301. package/examples/game/libs/Chrono/_impl/Shared/_CUSTOM_MODEL_REP/init.model.json +0 -3
  302. package/examples/game/libs/Chrono/_impl/init.luau +0 -96
  303. package/examples/game/libs/Chrono/init.luau +0 -14
  304. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/announce.luau +0 -21
  305. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/announceServer.luau +0 -17
  306. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/ban.luau +0 -59
  307. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/banServer.luau +0 -30
  308. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/gotoPlace.luau +0 -35
  309. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/gotoPlaceServer.luau +0 -17
  310. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/kick.luau +0 -19
  311. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/kickServer.luau +0 -27
  312. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/kill.luau +0 -13
  313. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/killServer.luau +0 -13
  314. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/respawn.luau +0 -15
  315. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/respawnServer.luau +0 -7
  316. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/teleport.luau +0 -30
  317. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/teleportServer.luau +0 -26
  318. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/unban.luau +0 -26
  319. package/examples/game/libs/Cmdr/BuiltInCommands/Admin/unbanServer.luau +0 -10
  320. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/blink.luau +0 -35
  321. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/fetch.luau +0 -12
  322. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/fetchServer.luau +0 -7
  323. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +0 -20
  324. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +0 -28
  325. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/position.luau +0 -30
  326. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/thru.luau +0 -50
  327. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/uptime.luau +0 -6
  328. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/uptimeServer.luau +0 -12
  329. package/examples/game/libs/Cmdr/BuiltInCommands/Debug/version.luau +0 -12
  330. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/alias.luau +0 -22
  331. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/bind.luau +0 -104
  332. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/clear.luau +0 -20
  333. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/convertTimestamp.luau +0 -18
  334. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/echo.luau +0 -17
  335. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/edit.luau +0 -75
  336. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/exit.luau +0 -11
  337. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/history.luau +0 -27
  338. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/hover.luau +0 -21
  339. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/jsonArrayDecode.luau +0 -25
  340. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/jsonArrayEncode.luau +0 -18
  341. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/len.luau +0 -16
  342. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/math.luau +0 -36
  343. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/pick.luau +0 -21
  344. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/rand.luau +0 -27
  345. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/replace.luau +0 -32
  346. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/resolve.luau +0 -32
  347. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/run.luau +0 -20
  348. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/runLines.luau +0 -34
  349. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/runif.luau +0 -95
  350. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/unbind.luau +0 -27
  351. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/var.luau +0 -29
  352. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/varServer.luau +0 -37
  353. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/varSet.luau +0 -30
  354. package/examples/game/libs/Cmdr/BuiltInCommands/Utility/varSetServer.luau +0 -29
  355. package/examples/game/libs/Cmdr/BuiltInCommands/help.luau +0 -96
  356. package/examples/game/libs/Cmdr/BuiltInTypes/BrickColor.luau +0 -258
  357. package/examples/game/libs/Cmdr/BuiltInTypes/Color3.luau +0 -59
  358. package/examples/game/libs/Cmdr/BuiltInTypes/Command.luau +0 -23
  359. package/examples/game/libs/Cmdr/BuiltInTypes/Duration.luau +0 -111
  360. package/examples/game/libs/Cmdr/BuiltInTypes/JSON.luau +0 -13
  361. package/examples/game/libs/Cmdr/BuiltInTypes/MathOperator.luau +0 -43
  362. package/examples/game/libs/Cmdr/BuiltInTypes/Player.luau +0 -36
  363. package/examples/game/libs/Cmdr/BuiltInTypes/PlayerId.luau +0 -66
  364. package/examples/game/libs/Cmdr/BuiltInTypes/Primitives.luau +0 -145
  365. package/examples/game/libs/Cmdr/BuiltInTypes/StoredKey.luau +0 -33
  366. package/examples/game/libs/Cmdr/BuiltInTypes/Team.luau +0 -49
  367. package/examples/game/libs/Cmdr/BuiltInTypes/Type.luau +0 -23
  368. package/examples/game/libs/Cmdr/BuiltInTypes/URL.luau +0 -18
  369. package/examples/game/libs/Cmdr/BuiltInTypes/UserInput.luau +0 -32
  370. package/examples/game/libs/Cmdr/BuiltInTypes/Vector.luau +0 -58
  371. package/examples/game/libs/Cmdr/CmdrClient/CmdrInterface/AutoComplete.luau +0 -240
  372. package/examples/game/libs/Cmdr/CmdrClient/CmdrInterface/CreateGui.luau +0 -227
  373. package/examples/game/libs/Cmdr/CmdrClient/CmdrInterface/Window.luau +0 -713
  374. package/examples/game/libs/Cmdr/CmdrClient/CmdrInterface/init.luau +0 -18
  375. package/examples/game/libs/Cmdr/CmdrClient/DefaultEventHandlers.luau +0 -18
  376. package/examples/game/libs/Cmdr/CmdrClient/Shared/Argument.luau +0 -395
  377. package/examples/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +0 -39
  378. package/examples/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +0 -36
  379. package/examples/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +0 -10
  380. package/examples/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +0 -10
  381. package/examples/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +0 -10
  382. package/examples/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +0 -8
  383. package/examples/game/libs/Cmdr/CmdrClient/Shared/Command.luau +0 -415
  384. package/examples/game/libs/Cmdr/CmdrClient/Shared/Dispatcher.luau +0 -407
  385. package/examples/game/libs/Cmdr/CmdrClient/Shared/Registry.luau +0 -717
  386. package/examples/game/libs/Cmdr/CmdrClient/Shared/Util.luau +0 -879
  387. package/examples/game/libs/Cmdr/CmdrClient/init.luau +0 -377
  388. package/examples/game/libs/Cmdr/LICENSE +0 -21
  389. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/announce.luau +0 -21
  390. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/announceServer.luau +0 -17
  391. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/ban.luau +0 -59
  392. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/banServer.luau +0 -30
  393. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/gotoPlace.luau +0 -35
  394. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/gotoPlaceServer.luau +0 -17
  395. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/kick.luau +0 -19
  396. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/kickServer.luau +0 -27
  397. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/kill.luau +0 -13
  398. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/killServer.luau +0 -13
  399. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/respawn.luau +0 -15
  400. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/respawnServer.luau +0 -7
  401. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/teleport.luau +0 -30
  402. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/teleportServer.luau +0 -26
  403. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/unban.luau +0 -26
  404. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Admin/unbanServer.luau +0 -10
  405. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/blink.luau +0 -35
  406. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/fetch.luau +0 -12
  407. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/fetchServer.luau +0 -7
  408. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +0 -20
  409. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +0 -28
  410. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/position.luau +0 -30
  411. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/thru.luau +0 -50
  412. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/uptime.luau +0 -6
  413. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/uptimeServer.luau +0 -12
  414. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Debug/version.luau +0 -12
  415. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/alias.luau +0 -22
  416. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/bind.luau +0 -104
  417. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/clear.luau +0 -20
  418. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/convertTimestamp.luau +0 -18
  419. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/echo.luau +0 -17
  420. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/edit.luau +0 -75
  421. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/exit.luau +0 -11
  422. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/history.luau +0 -27
  423. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/hover.luau +0 -21
  424. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayDecode.luau +0 -25
  425. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayEncode.luau +0 -18
  426. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/len.luau +0 -16
  427. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/math.luau +0 -36
  428. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/pick.luau +0 -21
  429. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/rand.luau +0 -27
  430. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/replace.luau +0 -32
  431. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/resolve.luau +0 -32
  432. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/run.luau +0 -20
  433. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/runLines.luau +0 -34
  434. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/runif.luau +0 -95
  435. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/unbind.luau +0 -27
  436. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/var.luau +0 -29
  437. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/varServer.luau +0 -37
  438. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/varSet.luau +0 -30
  439. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/Utility/varSetServer.luau +0 -29
  440. package/examples/game/libs/Cmdr/_impl/BuiltInCommands/help.luau +0 -96
  441. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/BrickColor.luau +0 -258
  442. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Color3.luau +0 -59
  443. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Command.luau +0 -23
  444. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Duration.luau +0 -111
  445. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/JSON.luau +0 -13
  446. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/MathOperator.luau +0 -43
  447. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Player.luau +0 -36
  448. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/PlayerId.luau +0 -66
  449. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Primitives.luau +0 -145
  450. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/StoredKey.luau +0 -33
  451. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Team.luau +0 -49
  452. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Type.luau +0 -23
  453. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/URL.luau +0 -18
  454. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/UserInput.luau +0 -32
  455. package/examples/game/libs/Cmdr/_impl/BuiltInTypes/Vector.luau +0 -58
  456. package/examples/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/AutoComplete.luau +0 -240
  457. package/examples/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/CreateGui.luau +0 -227
  458. package/examples/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/Window.luau +0 -713
  459. package/examples/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/init.luau +0 -18
  460. package/examples/game/libs/Cmdr/_impl/CmdrClient/DefaultEventHandlers.luau +0 -18
  461. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/Argument.luau +0 -395
  462. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +0 -39
  463. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +0 -36
  464. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +0 -10
  465. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +0 -10
  466. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +0 -10
  467. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +0 -8
  468. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/Command.luau +0 -415
  469. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/Dispatcher.luau +0 -407
  470. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/Registry.luau +0 -717
  471. package/examples/game/libs/Cmdr/_impl/CmdrClient/Shared/Util.luau +0 -879
  472. package/examples/game/libs/Cmdr/_impl/CmdrClient/init.luau +0 -377
  473. package/examples/game/libs/Cmdr/_impl/LICENSE +0 -21
  474. package/examples/game/libs/Cmdr/_impl/init.luau +0 -178
  475. package/examples/game/libs/Cmdr/init.luau +0 -8
  476. package/examples/game/libs/DataService/Client.luau +0 -209
  477. package/examples/game/libs/DataService/Data.luau +0 -886
  478. package/examples/game/libs/DataService/Packages/quicknet/DataTypes.luau +0 -70
  479. package/examples/game/libs/DataService/Packages/quicknet/Enums.luau +0 -85
  480. package/examples/game/libs/DataService/Packages/quicknet/EnumsToNativeTypes.luau +0 -57
  481. package/examples/game/libs/DataService/Packages/quicknet/Parser.luau +0 -355
  482. package/examples/game/libs/DataService/Packages/quicknet/QuickNet.luau +0 -953
  483. package/examples/game/libs/DataService/Packages/quicknet/Serialize.luau +0 -2020
  484. package/examples/game/libs/DataService/Packages/quicknet/Types.luau +0 -72
  485. package/examples/game/libs/DataService/Packages/quicknet/init.luau +0 -1
  486. package/examples/game/libs/DataService/Packages/signal/init.luau +0 -433
  487. package/examples/game/libs/DataService/ProfileStore.luau +0 -2243
  488. package/examples/game/libs/DataService/Replicator.luau +0 -172
  489. package/examples/game/libs/DataService/Server.luau +0 -412
  490. package/examples/game/libs/DataService/init.luau +0 -204
  491. package/examples/game/libs/Display/LICENSE +0 -201
  492. package/examples/game/libs/Display/_impl/LICENSE +0 -201
  493. package/examples/game/libs/Display/_impl/init.luau +0 -269
  494. package/examples/game/libs/Display/_impl/option.luau +0 -237
  495. package/examples/game/libs/Display/init.luau +0 -10
  496. package/examples/game/libs/Display/option.luau +0 -237
  497. package/examples/game/libs/EzVisualz/Dropshadow.luau +0 -148
  498. package/examples/game/libs/EzVisualz/Gradient.luau +0 -452
  499. package/examples/game/libs/EzVisualz/GradientTemplates/Bubblegum.luau +0 -16
  500. package/examples/game/libs/EzVisualz/GradientTemplates/Chrome.luau +0 -16
  501. package/examples/game/libs/EzVisualz/GradientTemplates/Death.luau +0 -15
  502. package/examples/game/libs/EzVisualz/GradientTemplates/Electric.luau +0 -14
  503. package/examples/game/libs/EzVisualz/GradientTemplates/Fire.luau +0 -13
  504. package/examples/game/libs/EzVisualz/GradientTemplates/Galaxy.luau +0 -11
  505. package/examples/game/libs/EzVisualz/GradientTemplates/Ghost.luau +0 -16
  506. package/examples/game/libs/EzVisualz/GradientTemplates/Gold.luau +0 -14
  507. package/examples/game/libs/EzVisualz/GradientTemplates/Green.luau +0 -14
  508. package/examples/game/libs/EzVisualz/GradientTemplates/Ice.luau +0 -14
  509. package/examples/game/libs/EzVisualz/GradientTemplates/Lava.luau +0 -15
  510. package/examples/game/libs/EzVisualz/GradientTemplates/Matrix.luau +0 -19
  511. package/examples/game/libs/EzVisualz/GradientTemplates/Neon.luau +0 -12
  512. package/examples/game/libs/EzVisualz/GradientTemplates/Oceanic.luau +0 -15
  513. package/examples/game/libs/EzVisualz/GradientTemplates/Rainbow.luau +0 -13
  514. package/examples/game/libs/EzVisualz/GradientTemplates/Silver.luau +0 -12
  515. package/examples/game/libs/EzVisualz/GradientTemplates/Sunset.luau +0 -11
  516. package/examples/game/libs/EzVisualz/GradientTemplates/Zebra.luau +0 -18
  517. package/examples/game/libs/EzVisualz/GradientTemplates/init.luau +0 -9
  518. package/examples/game/libs/EzVisualz/LICENSE.md +0 -21
  519. package/examples/game/libs/EzVisualz/Presets/Bubblegum.luau +0 -36
  520. package/examples/game/libs/EzVisualz/Presets/ChromeStroke.luau +0 -15
  521. package/examples/game/libs/EzVisualz/Presets/DeathStroke.luau +0 -15
  522. package/examples/game/libs/EzVisualz/Presets/ElectricStroke.luau +0 -54
  523. package/examples/game/libs/EzVisualz/Presets/FireStroke.luau +0 -29
  524. package/examples/game/libs/EzVisualz/Presets/GalaxyStroke.luau +0 -31
  525. package/examples/game/libs/EzVisualz/Presets/Ghost.luau +0 -10
  526. package/examples/game/libs/EzVisualz/Presets/GhostStroke.luau +0 -15
  527. package/examples/game/libs/EzVisualz/Presets/Gold.luau +0 -10
  528. package/examples/game/libs/EzVisualz/Presets/GoldStroke.luau +0 -15
  529. package/examples/game/libs/EzVisualz/Presets/GreenOutline.luau +0 -23
  530. package/examples/game/libs/EzVisualz/Presets/IceStroke.luau +0 -15
  531. package/examples/game/libs/EzVisualz/Presets/Lava.luau +0 -9
  532. package/examples/game/libs/EzVisualz/Presets/LavaStroke.luau +0 -13
  533. package/examples/game/libs/EzVisualz/Presets/Matrix.luau +0 -21
  534. package/examples/game/libs/EzVisualz/Presets/NeonStroke.luau +0 -30
  535. package/examples/game/libs/EzVisualz/Presets/OceanicStroke.luau +0 -15
  536. package/examples/game/libs/EzVisualz/Presets/Rainbow.luau +0 -9
  537. package/examples/game/libs/EzVisualz/Presets/RainbowOutline.luau +0 -23
  538. package/examples/game/libs/EzVisualz/Presets/RainbowStroke.luau +0 -13
  539. package/examples/game/libs/EzVisualz/Presets/Shine.luau +0 -48
  540. package/examples/game/libs/EzVisualz/Presets/ShineOutline.luau +0 -66
  541. package/examples/game/libs/EzVisualz/Presets/Silver.luau +0 -10
  542. package/examples/game/libs/EzVisualz/Presets/SilverStroke.luau +0 -15
  543. package/examples/game/libs/EzVisualz/Presets/SunsetStroke.luau +0 -31
  544. package/examples/game/libs/EzVisualz/Presets/WaveStroke.luau +0 -33
  545. package/examples/game/libs/EzVisualz/Presets/Zebra.luau +0 -21
  546. package/examples/game/libs/EzVisualz/Presets/init.luau +0 -9
  547. package/examples/game/libs/EzVisualz/Stroke.luau +0 -167
  548. package/examples/game/libs/EzVisualz/Util.luau +0 -7
  549. package/examples/game/libs/EzVisualz/_impl/Dropshadow.luau +0 -148
  550. package/examples/game/libs/EzVisualz/_impl/Gradient.luau +0 -452
  551. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Bubblegum.luau +0 -16
  552. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Chrome.luau +0 -16
  553. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Death.luau +0 -15
  554. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Electric.luau +0 -14
  555. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Fire.luau +0 -13
  556. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Galaxy.luau +0 -11
  557. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Ghost.luau +0 -16
  558. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Gold.luau +0 -14
  559. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Green.luau +0 -14
  560. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Ice.luau +0 -14
  561. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Lava.luau +0 -15
  562. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Matrix.luau +0 -19
  563. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Neon.luau +0 -12
  564. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Oceanic.luau +0 -15
  565. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Rainbow.luau +0 -13
  566. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Silver.luau +0 -12
  567. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Sunset.luau +0 -11
  568. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/Zebra.luau +0 -18
  569. package/examples/game/libs/EzVisualz/_impl/GradientTemplates/init.luau +0 -9
  570. package/examples/game/libs/EzVisualz/_impl/LICENSE.md +0 -21
  571. package/examples/game/libs/EzVisualz/_impl/Presets/Bubblegum.luau +0 -36
  572. package/examples/game/libs/EzVisualz/_impl/Presets/ChromeStroke.luau +0 -15
  573. package/examples/game/libs/EzVisualz/_impl/Presets/DeathStroke.luau +0 -15
  574. package/examples/game/libs/EzVisualz/_impl/Presets/ElectricStroke.luau +0 -54
  575. package/examples/game/libs/EzVisualz/_impl/Presets/FireStroke.luau +0 -29
  576. package/examples/game/libs/EzVisualz/_impl/Presets/GalaxyStroke.luau +0 -31
  577. package/examples/game/libs/EzVisualz/_impl/Presets/Ghost.luau +0 -10
  578. package/examples/game/libs/EzVisualz/_impl/Presets/GhostStroke.luau +0 -15
  579. package/examples/game/libs/EzVisualz/_impl/Presets/Gold.luau +0 -10
  580. package/examples/game/libs/EzVisualz/_impl/Presets/GoldStroke.luau +0 -15
  581. package/examples/game/libs/EzVisualz/_impl/Presets/GreenOutline.luau +0 -23
  582. package/examples/game/libs/EzVisualz/_impl/Presets/IceStroke.luau +0 -15
  583. package/examples/game/libs/EzVisualz/_impl/Presets/Lava.luau +0 -9
  584. package/examples/game/libs/EzVisualz/_impl/Presets/LavaStroke.luau +0 -13
  585. package/examples/game/libs/EzVisualz/_impl/Presets/Matrix.luau +0 -21
  586. package/examples/game/libs/EzVisualz/_impl/Presets/NeonStroke.luau +0 -30
  587. package/examples/game/libs/EzVisualz/_impl/Presets/OceanicStroke.luau +0 -15
  588. package/examples/game/libs/EzVisualz/_impl/Presets/Rainbow.luau +0 -9
  589. package/examples/game/libs/EzVisualz/_impl/Presets/RainbowOutline.luau +0 -23
  590. package/examples/game/libs/EzVisualz/_impl/Presets/RainbowStroke.luau +0 -13
  591. package/examples/game/libs/EzVisualz/_impl/Presets/Shine.luau +0 -48
  592. package/examples/game/libs/EzVisualz/_impl/Presets/ShineOutline.luau +0 -66
  593. package/examples/game/libs/EzVisualz/_impl/Presets/Silver.luau +0 -10
  594. package/examples/game/libs/EzVisualz/_impl/Presets/SilverStroke.luau +0 -15
  595. package/examples/game/libs/EzVisualz/_impl/Presets/SunsetStroke.luau +0 -31
  596. package/examples/game/libs/EzVisualz/_impl/Presets/WaveStroke.luau +0 -33
  597. package/examples/game/libs/EzVisualz/_impl/Presets/Zebra.luau +0 -21
  598. package/examples/game/libs/EzVisualz/_impl/Presets/init.luau +0 -9
  599. package/examples/game/libs/EzVisualz/_impl/Stroke.luau +0 -167
  600. package/examples/game/libs/EzVisualz/_impl/Util.luau +0 -7
  601. package/examples/game/libs/EzVisualz/_impl/init.luau +0 -319
  602. package/examples/game/libs/EzVisualz/_impl/wally.lock +0 -8
  603. package/examples/game/libs/EzVisualz/_impl/wally.toml +0 -8
  604. package/examples/game/libs/EzVisualz/init.luau +0 -9
  605. package/examples/game/libs/EzVisualz/wally.lock +0 -8
  606. package/examples/game/libs/EzVisualz/wally.toml +0 -8
  607. package/examples/game/libs/FormatNumber/LICENSE.md +0 -25
  608. package/examples/game/libs/FormatNumber/Main/DecimalFormatSymbols.lua +0 -43
  609. package/examples/game/libs/FormatNumber/Main/IntegerWidth.lua +0 -41
  610. package/examples/game/libs/FormatNumber/Main/Notation.lua +0 -116
  611. package/examples/game/libs/FormatNumber/Main/Precision.lua +0 -179
  612. package/examples/game/libs/FormatNumber/Main/init.lua +0 -199
  613. package/examples/game/libs/FormatNumber/Simple/init.lua +0 -76
  614. package/examples/game/libs/FormatNumber/Version.lua +0 -82
  615. package/examples/game/libs/FormatNumber/_impl/LICENSE.md +0 -25
  616. package/examples/game/libs/FormatNumber/_impl/Main/DecimalFormatSymbols.lua +0 -43
  617. package/examples/game/libs/FormatNumber/_impl/Main/IntegerWidth.lua +0 -41
  618. package/examples/game/libs/FormatNumber/_impl/Main/Notation.lua +0 -116
  619. package/examples/game/libs/FormatNumber/_impl/Main/Precision.lua +0 -179
  620. package/examples/game/libs/FormatNumber/_impl/Main/init.lua +0 -199
  621. package/examples/game/libs/FormatNumber/_impl/Simple/init.lua +0 -76
  622. package/examples/game/libs/FormatNumber/_impl/Version.lua +0 -82
  623. package/examples/game/libs/FormatNumber/_impl/_internal/class.lua +0 -204
  624. package/examples/game/libs/FormatNumber/_impl/_internal/decimal_conversion.lua +0 -30
  625. package/examples/game/libs/FormatNumber/_impl/_internal/enums.lua +0 -55
  626. package/examples/game/libs/FormatNumber/_impl/_internal/format.lua +0 -342
  627. package/examples/game/libs/FormatNumber/_impl/_internal/formatter_settings.lua +0 -160
  628. package/examples/game/libs/FormatNumber/_impl/_internal/init.lua +0 -8
  629. package/examples/game/libs/FormatNumber/_impl/_internal/skeleton.lua +0 -541
  630. package/examples/game/libs/FormatNumber/_impl/init.lua +0 -20
  631. package/examples/game/libs/FormatNumber/_internal/class.lua +0 -204
  632. package/examples/game/libs/FormatNumber/_internal/decimal_conversion.lua +0 -30
  633. package/examples/game/libs/FormatNumber/_internal/enums.lua +0 -55
  634. package/examples/game/libs/FormatNumber/_internal/format.lua +0 -342
  635. package/examples/game/libs/FormatNumber/_internal/formatter_settings.lua +0 -160
  636. package/examples/game/libs/FormatNumber/_internal/init.lua +0 -8
  637. package/examples/game/libs/FormatNumber/_internal/skeleton.lua +0 -541
  638. package/examples/game/libs/FormatNumber/init.lua +0 -20
  639. package/examples/game/libs/FormatNumber/init.luau +0 -20
  640. package/examples/game/libs/Fusion/Animation/ExternalTime.luau +0 -84
  641. package/examples/game/libs/Fusion/Animation/Spring.luau +0 -313
  642. package/examples/game/libs/Fusion/Animation/Stopwatch.luau +0 -128
  643. package/examples/game/libs/Fusion/Animation/Tween.luau +0 -178
  644. package/examples/game/libs/Fusion/Animation/getTweenDuration.luau +0 -27
  645. package/examples/game/libs/Fusion/Animation/getTweenRatio.luau +0 -47
  646. package/examples/game/libs/Fusion/Animation/lerpType.luau +0 -164
  647. package/examples/game/libs/Fusion/Animation/packType.luau +0 -100
  648. package/examples/game/libs/Fusion/Animation/springCoefficients.luau +0 -80
  649. package/examples/game/libs/Fusion/Animation/unpackType.luau +0 -103
  650. package/examples/game/libs/Fusion/Colour/Oklab.luau +0 -70
  651. package/examples/game/libs/Fusion/Colour/sRGB.luau +0 -47
  652. package/examples/game/libs/Fusion/External.luau +0 -156
  653. package/examples/game/libs/Fusion/ExternalDebug.luau +0 -70
  654. package/examples/game/libs/Fusion/Graph/Observer.luau +0 -111
  655. package/examples/game/libs/Fusion/Graph/castToGraph.luau +0 -29
  656. package/examples/game/libs/Fusion/Graph/change.luau +0 -81
  657. package/examples/game/libs/Fusion/Graph/depend.luau +0 -33
  658. package/examples/game/libs/Fusion/Graph/evaluate.luau +0 -56
  659. package/examples/game/libs/Fusion/Instances/Attribute.luau +0 -58
  660. package/examples/game/libs/Fusion/Instances/AttributeChange.luau +0 -47
  661. package/examples/game/libs/Fusion/Instances/AttributeOut.luau +0 -63
  662. package/examples/game/libs/Fusion/Instances/Child.luau +0 -21
  663. package/examples/game/libs/Fusion/Instances/Children.luau +0 -148
  664. package/examples/game/libs/Fusion/Instances/Hydrate.luau +0 -29
  665. package/examples/game/libs/Fusion/Instances/New.luau +0 -48
  666. package/examples/game/libs/Fusion/Instances/OnChange.luau +0 -50
  667. package/examples/game/libs/Fusion/Instances/OnEvent.luau +0 -54
  668. package/examples/game/libs/Fusion/Instances/Out.luau +0 -69
  669. package/examples/game/libs/Fusion/Instances/Tag.luau +0 -61
  670. package/examples/game/libs/Fusion/Instances/applyInstanceProps.luau +0 -149
  671. package/examples/game/libs/Fusion/Instances/defaultProps.luau +0 -194
  672. package/examples/game/libs/Fusion/LICENSE +0 -21
  673. package/examples/game/libs/Fusion/Logging/formatError.luau +0 -49
  674. package/examples/game/libs/Fusion/Logging/messages.luau +0 -46
  675. package/examples/game/libs/Fusion/Logging/parseError.luau +0 -25
  676. package/examples/game/libs/Fusion/Memory/checkLifetime.luau +0 -134
  677. package/examples/game/libs/Fusion/Memory/deriveScope.luau +0 -24
  678. package/examples/game/libs/Fusion/Memory/deriveScopeImpl.luau +0 -40
  679. package/examples/game/libs/Fusion/Memory/doCleanup.luau +0 -91
  680. package/examples/game/libs/Fusion/Memory/innerScope.luau +0 -34
  681. package/examples/game/libs/Fusion/Memory/insert.luau +0 -22
  682. package/examples/game/libs/Fusion/Memory/needsDestruction.luau +0 -17
  683. package/examples/game/libs/Fusion/Memory/scoped.luau +0 -24
  684. package/examples/game/libs/Fusion/RobloxExternal.luau +0 -98
  685. package/examples/game/libs/Fusion/State/Computed.luau +0 -122
  686. package/examples/game/libs/Fusion/State/For/Disassembly.luau +0 -207
  687. package/examples/game/libs/Fusion/State/For/ForTypes.luau +0 -30
  688. package/examples/game/libs/Fusion/State/For/init.luau +0 -101
  689. package/examples/game/libs/Fusion/State/ForKeys.luau +0 -88
  690. package/examples/game/libs/Fusion/State/ForPairs.luau +0 -91
  691. package/examples/game/libs/Fusion/State/ForValues.luau +0 -88
  692. package/examples/game/libs/Fusion/State/Value.luau +0 -76
  693. package/examples/game/libs/Fusion/State/castToState.luau +0 -26
  694. package/examples/game/libs/Fusion/State/peek.luau +0 -31
  695. package/examples/game/libs/Fusion/State/updateAll.luau +0 -1
  696. package/examples/game/libs/Fusion/Types.luau +0 -318
  697. package/examples/game/libs/Fusion/Utility/Contextual.luau +0 -91
  698. package/examples/game/libs/Fusion/Utility/Safe.luau +0 -23
  699. package/examples/game/libs/Fusion/Utility/isSimilar.luau +0 -29
  700. package/examples/game/libs/Fusion/Utility/merge.luau +0 -35
  701. package/examples/game/libs/Fusion/Utility/nameOf.luau +0 -35
  702. package/examples/game/libs/Fusion/Utility/never.luau +0 -14
  703. package/examples/game/libs/Fusion/Utility/nicknames.luau +0 -11
  704. package/examples/game/libs/Fusion/Utility/xtypeof.luau +0 -27
  705. package/examples/game/libs/Fusion/_impl/Animation/ExternalTime.luau +0 -84
  706. package/examples/game/libs/Fusion/_impl/Animation/Spring.luau +0 -313
  707. package/examples/game/libs/Fusion/_impl/Animation/Stopwatch.luau +0 -128
  708. package/examples/game/libs/Fusion/_impl/Animation/Tween.luau +0 -178
  709. package/examples/game/libs/Fusion/_impl/Animation/getTweenDuration.luau +0 -27
  710. package/examples/game/libs/Fusion/_impl/Animation/getTweenRatio.luau +0 -47
  711. package/examples/game/libs/Fusion/_impl/Animation/lerpType.luau +0 -164
  712. package/examples/game/libs/Fusion/_impl/Animation/packType.luau +0 -100
  713. package/examples/game/libs/Fusion/_impl/Animation/springCoefficients.luau +0 -80
  714. package/examples/game/libs/Fusion/_impl/Animation/unpackType.luau +0 -103
  715. package/examples/game/libs/Fusion/_impl/Colour/Oklab.luau +0 -70
  716. package/examples/game/libs/Fusion/_impl/Colour/sRGB.luau +0 -47
  717. package/examples/game/libs/Fusion/_impl/External.luau +0 -156
  718. package/examples/game/libs/Fusion/_impl/ExternalDebug.luau +0 -70
  719. package/examples/game/libs/Fusion/_impl/Graph/Observer.luau +0 -111
  720. package/examples/game/libs/Fusion/_impl/Graph/castToGraph.luau +0 -29
  721. package/examples/game/libs/Fusion/_impl/Graph/change.luau +0 -81
  722. package/examples/game/libs/Fusion/_impl/Graph/depend.luau +0 -33
  723. package/examples/game/libs/Fusion/_impl/Graph/evaluate.luau +0 -56
  724. package/examples/game/libs/Fusion/_impl/Instances/Attribute.luau +0 -58
  725. package/examples/game/libs/Fusion/_impl/Instances/AttributeChange.luau +0 -47
  726. package/examples/game/libs/Fusion/_impl/Instances/AttributeOut.luau +0 -63
  727. package/examples/game/libs/Fusion/_impl/Instances/Child.luau +0 -21
  728. package/examples/game/libs/Fusion/_impl/Instances/Children.luau +0 -148
  729. package/examples/game/libs/Fusion/_impl/Instances/Hydrate.luau +0 -29
  730. package/examples/game/libs/Fusion/_impl/Instances/New.luau +0 -48
  731. package/examples/game/libs/Fusion/_impl/Instances/OnChange.luau +0 -50
  732. package/examples/game/libs/Fusion/_impl/Instances/OnEvent.luau +0 -54
  733. package/examples/game/libs/Fusion/_impl/Instances/Out.luau +0 -69
  734. package/examples/game/libs/Fusion/_impl/Instances/Tag.luau +0 -61
  735. package/examples/game/libs/Fusion/_impl/Instances/applyInstanceProps.luau +0 -149
  736. package/examples/game/libs/Fusion/_impl/Instances/defaultProps.luau +0 -194
  737. package/examples/game/libs/Fusion/_impl/LICENSE +0 -21
  738. package/examples/game/libs/Fusion/_impl/Logging/formatError.luau +0 -49
  739. package/examples/game/libs/Fusion/_impl/Logging/messages.luau +0 -46
  740. package/examples/game/libs/Fusion/_impl/Logging/parseError.luau +0 -25
  741. package/examples/game/libs/Fusion/_impl/Memory/checkLifetime.luau +0 -134
  742. package/examples/game/libs/Fusion/_impl/Memory/deriveScope.luau +0 -24
  743. package/examples/game/libs/Fusion/_impl/Memory/deriveScopeImpl.luau +0 -40
  744. package/examples/game/libs/Fusion/_impl/Memory/doCleanup.luau +0 -91
  745. package/examples/game/libs/Fusion/_impl/Memory/innerScope.luau +0 -34
  746. package/examples/game/libs/Fusion/_impl/Memory/insert.luau +0 -22
  747. package/examples/game/libs/Fusion/_impl/Memory/needsDestruction.luau +0 -17
  748. package/examples/game/libs/Fusion/_impl/Memory/scoped.luau +0 -24
  749. package/examples/game/libs/Fusion/_impl/RobloxExternal.luau +0 -98
  750. package/examples/game/libs/Fusion/_impl/State/Computed.luau +0 -122
  751. package/examples/game/libs/Fusion/_impl/State/For/Disassembly.luau +0 -207
  752. package/examples/game/libs/Fusion/_impl/State/For/ForTypes.luau +0 -30
  753. package/examples/game/libs/Fusion/_impl/State/For/init.luau +0 -101
  754. package/examples/game/libs/Fusion/_impl/State/ForKeys.luau +0 -88
  755. package/examples/game/libs/Fusion/_impl/State/ForPairs.luau +0 -91
  756. package/examples/game/libs/Fusion/_impl/State/ForValues.luau +0 -88
  757. package/examples/game/libs/Fusion/_impl/State/Value.luau +0 -76
  758. package/examples/game/libs/Fusion/_impl/State/castToState.luau +0 -26
  759. package/examples/game/libs/Fusion/_impl/State/peek.luau +0 -31
  760. package/examples/game/libs/Fusion/_impl/State/updateAll.luau +0 -1
  761. package/examples/game/libs/Fusion/_impl/Types.luau +0 -318
  762. package/examples/game/libs/Fusion/_impl/Utility/Contextual.luau +0 -91
  763. package/examples/game/libs/Fusion/_impl/Utility/Safe.luau +0 -23
  764. package/examples/game/libs/Fusion/_impl/Utility/isSimilar.luau +0 -29
  765. package/examples/game/libs/Fusion/_impl/Utility/merge.luau +0 -35
  766. package/examples/game/libs/Fusion/_impl/Utility/nameOf.luau +0 -35
  767. package/examples/game/libs/Fusion/_impl/Utility/never.luau +0 -14
  768. package/examples/game/libs/Fusion/_impl/Utility/nicknames.luau +0 -11
  769. package/examples/game/libs/Fusion/_impl/Utility/xtypeof.luau +0 -27
  770. package/examples/game/libs/Fusion/_impl/init.luau +0 -83
  771. package/examples/game/libs/Fusion/init.luau +0 -27
  772. package/examples/game/libs/Iris/API.lua +0 -2085
  773. package/examples/game/libs/Iris/Internal.lua +0 -895
  774. package/examples/game/libs/Iris/LICENSE.txt +0 -21
  775. package/examples/game/libs/Iris/PubTypes.lua +0 -43
  776. package/examples/game/libs/Iris/Types.lua +0 -660
  777. package/examples/game/libs/Iris/WidgetTypes.lua +0 -521
  778. package/examples/game/libs/Iris/_impl/API.lua +0 -2085
  779. package/examples/game/libs/Iris/_impl/Internal.lua +0 -895
  780. package/examples/game/libs/Iris/_impl/LICENSE.txt +0 -21
  781. package/examples/game/libs/Iris/_impl/PubTypes.lua +0 -43
  782. package/examples/game/libs/Iris/_impl/Types.lua +0 -660
  783. package/examples/game/libs/Iris/_impl/WidgetTypes.lua +0 -521
  784. package/examples/game/libs/Iris/_impl/config.lua +0 -305
  785. package/examples/game/libs/Iris/_impl/init.lua +0 -696
  786. package/examples/game/libs/Iris/_impl/widgets/Button.lua +0 -90
  787. package/examples/game/libs/Iris/_impl/widgets/Checkbox.lua +0 -115
  788. package/examples/game/libs/Iris/_impl/widgets/Combo.lua +0 -492
  789. package/examples/game/libs/Iris/_impl/widgets/Format.lua +0 -140
  790. package/examples/game/libs/Iris/_impl/widgets/Image.lua +0 -155
  791. package/examples/game/libs/Iris/_impl/widgets/Input.lua +0 -1232
  792. package/examples/game/libs/Iris/_impl/widgets/Menu.lua +0 -599
  793. package/examples/game/libs/Iris/_impl/widgets/Plot.lua +0 -639
  794. package/examples/game/libs/Iris/_impl/widgets/RadioButton.lua +0 -126
  795. package/examples/game/libs/Iris/_impl/widgets/Root.lua +0 -143
  796. package/examples/game/libs/Iris/_impl/widgets/Tab.lua +0 -333
  797. package/examples/game/libs/Iris/_impl/widgets/Table.lua +0 -635
  798. package/examples/game/libs/Iris/_impl/widgets/Text.lua +0 -132
  799. package/examples/game/libs/Iris/_impl/widgets/Tree.lua +0 -287
  800. package/examples/game/libs/Iris/_impl/widgets/Window.lua +0 -1075
  801. package/examples/game/libs/Iris/_impl/widgets/init.lua +0 -447
  802. package/examples/game/libs/Iris/config.lua +0 -305
  803. package/examples/game/libs/Iris/init.lua +0 -696
  804. package/examples/game/libs/Iris/init.luau +0 -12
  805. package/examples/game/libs/Iris/widgets/Button.lua +0 -90
  806. package/examples/game/libs/Iris/widgets/Checkbox.lua +0 -115
  807. package/examples/game/libs/Iris/widgets/Combo.lua +0 -492
  808. package/examples/game/libs/Iris/widgets/Format.lua +0 -140
  809. package/examples/game/libs/Iris/widgets/Image.lua +0 -155
  810. package/examples/game/libs/Iris/widgets/Input.lua +0 -1232
  811. package/examples/game/libs/Iris/widgets/Menu.lua +0 -599
  812. package/examples/game/libs/Iris/widgets/Plot.lua +0 -639
  813. package/examples/game/libs/Iris/widgets/RadioButton.lua +0 -126
  814. package/examples/game/libs/Iris/widgets/Root.lua +0 -143
  815. package/examples/game/libs/Iris/widgets/Tab.lua +0 -333
  816. package/examples/game/libs/Iris/widgets/Table.lua +0 -635
  817. package/examples/game/libs/Iris/widgets/Text.lua +0 -132
  818. package/examples/game/libs/Iris/widgets/Tree.lua +0 -287
  819. package/examples/game/libs/Iris/widgets/Window.lua +0 -1075
  820. package/examples/game/libs/Iris/widgets/init.lua +0 -447
  821. package/examples/game/libs/Janitor/FastDefer.luau +0 -33
  822. package/examples/game/libs/Janitor/LICENSE +0 -21
  823. package/examples/game/libs/Janitor/_impl/FastDefer.luau +0 -33
  824. package/examples/game/libs/Janitor/_impl/LICENSE +0 -21
  825. package/examples/game/libs/Janitor/_impl/init.luau +0 -999
  826. package/examples/game/libs/Janitor/init.luau +0 -15
  827. package/examples/game/libs/MathUtils/init.luau +0 -100
  828. package/examples/game/libs/Module3D/LICENSE +0 -21
  829. package/examples/game/libs/Module3D/_impl/LICENSE +0 -21
  830. package/examples/game/libs/Module3D/_impl/init.luau +0 -269
  831. package/examples/game/libs/Module3D/init.luau +0 -14
  832. package/examples/game/libs/Net/init.luau +0 -125
  833. package/examples/game/libs/Net/src/codec.luau +0 -153
  834. package/examples/game/libs/Occlude/init.luau +0 -54
  835. package/examples/game/libs/Promise/LICENSE +0 -21
  836. package/examples/game/libs/Promise/_impl/LICENSE +0 -21
  837. package/examples/game/libs/Promise/_impl/init.lua +0 -1991
  838. package/examples/game/libs/Promise/init.lua +0 -1990
  839. package/examples/game/libs/Promise/init.luau +0 -13
  840. package/examples/game/libs/Promise/types.luau +0 -46
  841. package/examples/game/libs/SOURCES.md +0 -22
  842. package/examples/game/libs/Spring/LICENSE +0 -201
  843. package/examples/game/libs/Spring/_impl/LICENSE +0 -201
  844. package/examples/game/libs/Spring/_impl/init.luau +0 -111
  845. package/examples/game/libs/Spring/init.luau +0 -24
  846. package/examples/game/libs/StateMachine/Classes/State.lua +0 -375
  847. package/examples/game/libs/StateMachine/Classes/Transition.lua +0 -336
  848. package/examples/game/libs/StateMachine/Functions/deepCopy.lua +0 -19
  849. package/examples/game/libs/StateMachine/Functions/mergeTables.lua +0 -22
  850. package/examples/game/libs/StateMachine/LICENSE +0 -19
  851. package/examples/game/libs/StateMachine/Vendor/Signal.lua +0 -386
  852. package/examples/game/libs/StateMachine/Vendor/Trove.lua +0 -188
  853. package/examples/game/libs/StateMachine/_impl/Classes/State.lua +0 -375
  854. package/examples/game/libs/StateMachine/_impl/Classes/Transition.lua +0 -336
  855. package/examples/game/libs/StateMachine/_impl/Functions/deepCopy.lua +0 -19
  856. package/examples/game/libs/StateMachine/_impl/Functions/mergeTables.lua +0 -22
  857. package/examples/game/libs/StateMachine/_impl/LICENSE +0 -19
  858. package/examples/game/libs/StateMachine/_impl/Vendor/Signal.lua +0 -386
  859. package/examples/game/libs/StateMachine/_impl/Vendor/Trove.lua +0 -188
  860. package/examples/game/libs/StateMachine/_impl/init.lua +0 -595
  861. package/examples/game/libs/StateMachine/init.lua +0 -595
  862. package/examples/game/libs/StateMachine/init.luau +0 -10
  863. package/examples/game/libs/StickyBillboard/init.luau +0 -167
  864. package/examples/game/libs/TopbarPlus/Attribute.lua +0 -35
  865. package/examples/game/libs/TopbarPlus/Elements/Caption.lua +0 -316
  866. package/examples/game/libs/TopbarPlus/Elements/Container.lua +0 -215
  867. package/examples/game/libs/TopbarPlus/Elements/Dropdown.lua +0 -315
  868. package/examples/game/libs/TopbarPlus/Elements/Indicator.lua +0 -91
  869. package/examples/game/libs/TopbarPlus/Elements/Menu.lua +0 -180
  870. package/examples/game/libs/TopbarPlus/Elements/Notice.lua +0 -113
  871. package/examples/game/libs/TopbarPlus/Elements/Selection.lua +0 -49
  872. package/examples/game/libs/TopbarPlus/Elements/Widget.lua +0 -437
  873. package/examples/game/libs/TopbarPlus/Features/Gamepad.lua +0 -201
  874. package/examples/game/libs/TopbarPlus/Features/Overflow.lua +0 -360
  875. package/examples/game/libs/TopbarPlus/Features/Themes/Classic.lua +0 -27
  876. package/examples/game/libs/TopbarPlus/Features/Themes/Default.lua +0 -75
  877. package/examples/game/libs/TopbarPlus/Features/Themes/init.lua +0 -353
  878. package/examples/game/libs/TopbarPlus/LICENSE +0 -381
  879. package/examples/game/libs/TopbarPlus/Packages/GoodSignal.lua +0 -182
  880. package/examples/game/libs/TopbarPlus/Packages/Janitor.lua +0 -322
  881. package/examples/game/libs/TopbarPlus/Reference.lua +0 -30
  882. package/examples/game/libs/TopbarPlus/Types.lua +0 -477
  883. package/examples/game/libs/TopbarPlus/Utility.lua +0 -462
  884. package/examples/game/libs/TopbarPlus/VERSION.lua +0 -51
  885. package/examples/game/libs/TopbarPlus/_impl/Attribute.lua +0 -35
  886. package/examples/game/libs/TopbarPlus/_impl/Elements/Caption.lua +0 -316
  887. package/examples/game/libs/TopbarPlus/_impl/Elements/Container.lua +0 -215
  888. package/examples/game/libs/TopbarPlus/_impl/Elements/Dropdown.lua +0 -315
  889. package/examples/game/libs/TopbarPlus/_impl/Elements/Indicator.lua +0 -91
  890. package/examples/game/libs/TopbarPlus/_impl/Elements/Menu.lua +0 -180
  891. package/examples/game/libs/TopbarPlus/_impl/Elements/Notice.lua +0 -113
  892. package/examples/game/libs/TopbarPlus/_impl/Elements/Selection.lua +0 -49
  893. package/examples/game/libs/TopbarPlus/_impl/Elements/Widget.lua +0 -437
  894. package/examples/game/libs/TopbarPlus/_impl/Features/Gamepad.lua +0 -201
  895. package/examples/game/libs/TopbarPlus/_impl/Features/Overflow.lua +0 -360
  896. package/examples/game/libs/TopbarPlus/_impl/Features/Themes/Classic.lua +0 -27
  897. package/examples/game/libs/TopbarPlus/_impl/Features/Themes/Default.lua +0 -75
  898. package/examples/game/libs/TopbarPlus/_impl/Features/Themes/init.lua +0 -353
  899. package/examples/game/libs/TopbarPlus/_impl/LICENSE +0 -381
  900. package/examples/game/libs/TopbarPlus/_impl/Packages/GoodSignal.lua +0 -182
  901. package/examples/game/libs/TopbarPlus/_impl/Packages/Janitor.lua +0 -322
  902. package/examples/game/libs/TopbarPlus/_impl/Reference.lua +0 -30
  903. package/examples/game/libs/TopbarPlus/_impl/Types.lua +0 -477
  904. package/examples/game/libs/TopbarPlus/_impl/Utility.lua +0 -462
  905. package/examples/game/libs/TopbarPlus/_impl/VERSION.lua +0 -51
  906. package/examples/game/libs/TopbarPlus/_impl/init.lua +0 -1249
  907. package/examples/game/libs/TopbarPlus/init.lua +0 -1249
  908. package/examples/game/libs/TopbarPlus/init.luau +0 -8
  909. package/examples/game/libs/Twinkle/init.luau +0 -157
  910. package/examples/game/libs/VfxUtil/init.luau +0 -164
  911. package/examples/game/src/client/hud.client.clpp +0 -54
  912. package/examples/game/src/client/init.client.clpp +0 -6
  913. package/examples/game/src/server/combat.server.clpp +0 -85
  914. package/examples/game/src/server/leaderstats.server.clpp +0 -28
  915. package/examples/game/src/shared/PlayerData.clh +0 -20
  916. package/examples/game/src/shared/config.clp +0 -6
  917. package/examples/game/src/shared/features.clp +0 -100
  918. package/include/clpp/libs/chrono.clh +0 -26
  919. package/include/clpp/libs/cmdr.clh +0 -16
  920. package/include/clpp/libs/dataservice.clh +0 -138
  921. package/include/clpp/libs/display.clh +0 -12
  922. package/include/clpp/libs/ezvisual.clh +0 -16
  923. package/include/clpp/libs/formatnumber.clh +0 -14
  924. package/include/clpp/libs/fusion.clh +0 -41
  925. package/include/clpp/libs/iris.clh +0 -40
  926. package/include/clpp/libs/janitor.clh +0 -38
  927. package/include/clpp/libs/math.clh +0 -14
  928. package/include/clpp/libs/module3d.clh +0 -23
  929. package/include/clpp/libs/spring.clh +0 -17
  930. package/include/clpp/libs/statemachine.clh +0 -18
  931. package/include/clpp/libs/stickybillboard.clh +0 -13
  932. package/include/clpp/libs/topbarplus.clh +0 -28
  933. package/include/clpp/libs/twinkle.clh +0 -15
  934. package/include/clpp/libs/vfx.clh +0 -13
  935. package/runtime/Chrono/Client/ClientClock.luau +0 -202
  936. package/runtime/Chrono/Client/InterpolationBuffer.luau +0 -74
  937. package/runtime/Chrono/Client/ModelResolver.luau +0 -53
  938. package/runtime/Chrono/Client/Player.luau +0 -113
  939. package/runtime/Chrono/Client/Receiver.luau +0 -395
  940. package/runtime/Chrono/Client/Replicate.luau +0 -333
  941. package/runtime/Chrono/Client/Sender.luau +0 -205
  942. package/runtime/Chrono/LICENSE +0 -21
  943. package/runtime/Chrono/Server/EntityGrid.luau +0 -299
  944. package/runtime/Chrono/Server/Player.luau +0 -141
  945. package/runtime/Chrono/Server/Receiver.luau +0 -287
  946. package/runtime/Chrono/Server/Replicate.luau +0 -415
  947. package/runtime/Chrono/Server/Sender.luau +0 -306
  948. package/runtime/Chrono/Server/ServerClock.luau +0 -50
  949. package/runtime/Chrono/Shared/ApplyMounts.luau +0 -137
  950. package/runtime/Chrono/Shared/Bin.luau +0 -31
  951. package/runtime/Chrono/Shared/ClockUnwrap.luau +0 -70
  952. package/runtime/Chrono/Shared/Config.luau +0 -264
  953. package/runtime/Chrono/Shared/Entity.luau +0 -1016
  954. package/runtime/Chrono/Shared/Events.luau +0 -39
  955. package/runtime/Chrono/Shared/Holder.luau +0 -210
  956. package/runtime/Chrono/Shared/InterpolationMath.luau +0 -51
  957. package/runtime/Chrono/Shared/ModelHelper.luau +0 -122
  958. package/runtime/Chrono/Shared/Remotes/ClientClockRelay.model.json +0 -3
  959. package/runtime/Chrono/Shared/Remotes/ClientHeartbeat.model.json +0 -3
  960. package/runtime/Chrono/Shared/Remotes/ClientLoaded.model.json +0 -3
  961. package/runtime/Chrono/Shared/Remotes/Death.model.json +0 -3
  962. package/runtime/Chrono/Shared/Remotes/Heartbeat.model.json +0 -3
  963. package/runtime/Chrono/Shared/Remotes/Replicate.model.json +0 -3
  964. package/runtime/Chrono/Shared/Remotes/ReplicateFull.model.json +0 -3
  965. package/runtime/Chrono/Shared/Remotes/SafeReplicate.model.json +0 -3
  966. package/runtime/Chrono/Shared/ReplicationRules.luau +0 -122
  967. package/runtime/Chrono/Shared/Signal.luau +0 -219
  968. package/runtime/Chrono/Shared/Snapshots.luau +0 -218
  969. package/runtime/Chrono/Shared/Stats.luau +0 -204
  970. package/runtime/Chrono/Shared/Ticker.luau +0 -112
  971. package/runtime/Chrono/Shared/Types.luau +0 -247
  972. package/runtime/Chrono/Shared/Warn.luau +0 -33
  973. package/runtime/Chrono/Shared/_CUSTOM_MODEL_REP/init.model.json +0 -3
  974. package/runtime/Chrono/_impl/Client/ClientClock.luau +0 -202
  975. package/runtime/Chrono/_impl/Client/InterpolationBuffer.luau +0 -74
  976. package/runtime/Chrono/_impl/Client/ModelResolver.luau +0 -53
  977. package/runtime/Chrono/_impl/Client/Player.luau +0 -113
  978. package/runtime/Chrono/_impl/Client/Receiver.luau +0 -395
  979. package/runtime/Chrono/_impl/Client/Replicate.luau +0 -333
  980. package/runtime/Chrono/_impl/Client/Sender.luau +0 -205
  981. package/runtime/Chrono/_impl/LICENSE +0 -21
  982. package/runtime/Chrono/_impl/Server/EntityGrid.luau +0 -299
  983. package/runtime/Chrono/_impl/Server/Player.luau +0 -141
  984. package/runtime/Chrono/_impl/Server/Receiver.luau +0 -287
  985. package/runtime/Chrono/_impl/Server/Replicate.luau +0 -415
  986. package/runtime/Chrono/_impl/Server/Sender.luau +0 -306
  987. package/runtime/Chrono/_impl/Server/ServerClock.luau +0 -50
  988. package/runtime/Chrono/_impl/Shared/ApplyMounts.luau +0 -137
  989. package/runtime/Chrono/_impl/Shared/Bin.luau +0 -31
  990. package/runtime/Chrono/_impl/Shared/ClockUnwrap.luau +0 -70
  991. package/runtime/Chrono/_impl/Shared/Config.luau +0 -264
  992. package/runtime/Chrono/_impl/Shared/Entity.luau +0 -1016
  993. package/runtime/Chrono/_impl/Shared/Events.luau +0 -39
  994. package/runtime/Chrono/_impl/Shared/Holder.luau +0 -210
  995. package/runtime/Chrono/_impl/Shared/InterpolationMath.luau +0 -51
  996. package/runtime/Chrono/_impl/Shared/ModelHelper.luau +0 -122
  997. package/runtime/Chrono/_impl/Shared/Remotes/ClientClockRelay.model.json +0 -3
  998. package/runtime/Chrono/_impl/Shared/Remotes/ClientHeartbeat.model.json +0 -3
  999. package/runtime/Chrono/_impl/Shared/Remotes/ClientLoaded.model.json +0 -3
  1000. package/runtime/Chrono/_impl/Shared/Remotes/Death.model.json +0 -3
  1001. package/runtime/Chrono/_impl/Shared/Remotes/Heartbeat.model.json +0 -3
  1002. package/runtime/Chrono/_impl/Shared/Remotes/Replicate.model.json +0 -3
  1003. package/runtime/Chrono/_impl/Shared/Remotes/ReplicateFull.model.json +0 -3
  1004. package/runtime/Chrono/_impl/Shared/Remotes/SafeReplicate.model.json +0 -3
  1005. package/runtime/Chrono/_impl/Shared/ReplicationRules.luau +0 -122
  1006. package/runtime/Chrono/_impl/Shared/Signal.luau +0 -219
  1007. package/runtime/Chrono/_impl/Shared/Snapshots.luau +0 -218
  1008. package/runtime/Chrono/_impl/Shared/Stats.luau +0 -204
  1009. package/runtime/Chrono/_impl/Shared/Ticker.luau +0 -112
  1010. package/runtime/Chrono/_impl/Shared/Types.luau +0 -247
  1011. package/runtime/Chrono/_impl/Shared/Warn.luau +0 -33
  1012. package/runtime/Chrono/_impl/Shared/_CUSTOM_MODEL_REP/init.model.json +0 -3
  1013. package/runtime/Chrono/_impl/init.luau +0 -96
  1014. package/runtime/Chrono/init.luau +0 -14
  1015. package/runtime/Cmdr/BuiltInCommands/Admin/announce.luau +0 -21
  1016. package/runtime/Cmdr/BuiltInCommands/Admin/announceServer.luau +0 -17
  1017. package/runtime/Cmdr/BuiltInCommands/Admin/ban.luau +0 -59
  1018. package/runtime/Cmdr/BuiltInCommands/Admin/banServer.luau +0 -30
  1019. package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlace.luau +0 -35
  1020. package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlaceServer.luau +0 -17
  1021. package/runtime/Cmdr/BuiltInCommands/Admin/kick.luau +0 -19
  1022. package/runtime/Cmdr/BuiltInCommands/Admin/kickServer.luau +0 -27
  1023. package/runtime/Cmdr/BuiltInCommands/Admin/kill.luau +0 -13
  1024. package/runtime/Cmdr/BuiltInCommands/Admin/killServer.luau +0 -13
  1025. package/runtime/Cmdr/BuiltInCommands/Admin/respawn.luau +0 -15
  1026. package/runtime/Cmdr/BuiltInCommands/Admin/respawnServer.luau +0 -7
  1027. package/runtime/Cmdr/BuiltInCommands/Admin/teleport.luau +0 -30
  1028. package/runtime/Cmdr/BuiltInCommands/Admin/teleportServer.luau +0 -26
  1029. package/runtime/Cmdr/BuiltInCommands/Admin/unban.luau +0 -26
  1030. package/runtime/Cmdr/BuiltInCommands/Admin/unbanServer.luau +0 -10
  1031. package/runtime/Cmdr/BuiltInCommands/Debug/blink.luau +0 -35
  1032. package/runtime/Cmdr/BuiltInCommands/Debug/fetch.luau +0 -12
  1033. package/runtime/Cmdr/BuiltInCommands/Debug/fetchServer.luau +0 -7
  1034. package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +0 -20
  1035. package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +0 -28
  1036. package/runtime/Cmdr/BuiltInCommands/Debug/position.luau +0 -30
  1037. package/runtime/Cmdr/BuiltInCommands/Debug/thru.luau +0 -50
  1038. package/runtime/Cmdr/BuiltInCommands/Debug/uptime.luau +0 -6
  1039. package/runtime/Cmdr/BuiltInCommands/Debug/uptimeServer.luau +0 -12
  1040. package/runtime/Cmdr/BuiltInCommands/Debug/version.luau +0 -12
  1041. package/runtime/Cmdr/BuiltInCommands/Utility/alias.luau +0 -22
  1042. package/runtime/Cmdr/BuiltInCommands/Utility/bind.luau +0 -104
  1043. package/runtime/Cmdr/BuiltInCommands/Utility/clear.luau +0 -20
  1044. package/runtime/Cmdr/BuiltInCommands/Utility/convertTimestamp.luau +0 -18
  1045. package/runtime/Cmdr/BuiltInCommands/Utility/echo.luau +0 -17
  1046. package/runtime/Cmdr/BuiltInCommands/Utility/edit.luau +0 -75
  1047. package/runtime/Cmdr/BuiltInCommands/Utility/exit.luau +0 -11
  1048. package/runtime/Cmdr/BuiltInCommands/Utility/history.luau +0 -27
  1049. package/runtime/Cmdr/BuiltInCommands/Utility/hover.luau +0 -21
  1050. package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayDecode.luau +0 -25
  1051. package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayEncode.luau +0 -18
  1052. package/runtime/Cmdr/BuiltInCommands/Utility/len.luau +0 -16
  1053. package/runtime/Cmdr/BuiltInCommands/Utility/math.luau +0 -36
  1054. package/runtime/Cmdr/BuiltInCommands/Utility/pick.luau +0 -21
  1055. package/runtime/Cmdr/BuiltInCommands/Utility/rand.luau +0 -27
  1056. package/runtime/Cmdr/BuiltInCommands/Utility/replace.luau +0 -32
  1057. package/runtime/Cmdr/BuiltInCommands/Utility/resolve.luau +0 -32
  1058. package/runtime/Cmdr/BuiltInCommands/Utility/run.luau +0 -20
  1059. package/runtime/Cmdr/BuiltInCommands/Utility/runLines.luau +0 -34
  1060. package/runtime/Cmdr/BuiltInCommands/Utility/runif.luau +0 -95
  1061. package/runtime/Cmdr/BuiltInCommands/Utility/unbind.luau +0 -27
  1062. package/runtime/Cmdr/BuiltInCommands/Utility/var.luau +0 -29
  1063. package/runtime/Cmdr/BuiltInCommands/Utility/varServer.luau +0 -37
  1064. package/runtime/Cmdr/BuiltInCommands/Utility/varSet.luau +0 -30
  1065. package/runtime/Cmdr/BuiltInCommands/Utility/varSetServer.luau +0 -29
  1066. package/runtime/Cmdr/BuiltInCommands/help.luau +0 -96
  1067. package/runtime/Cmdr/BuiltInTypes/BrickColor.luau +0 -258
  1068. package/runtime/Cmdr/BuiltInTypes/Color3.luau +0 -59
  1069. package/runtime/Cmdr/BuiltInTypes/Command.luau +0 -23
  1070. package/runtime/Cmdr/BuiltInTypes/Duration.luau +0 -111
  1071. package/runtime/Cmdr/BuiltInTypes/JSON.luau +0 -13
  1072. package/runtime/Cmdr/BuiltInTypes/MathOperator.luau +0 -43
  1073. package/runtime/Cmdr/BuiltInTypes/Player.luau +0 -36
  1074. package/runtime/Cmdr/BuiltInTypes/PlayerId.luau +0 -66
  1075. package/runtime/Cmdr/BuiltInTypes/Primitives.luau +0 -145
  1076. package/runtime/Cmdr/BuiltInTypes/StoredKey.luau +0 -33
  1077. package/runtime/Cmdr/BuiltInTypes/Team.luau +0 -49
  1078. package/runtime/Cmdr/BuiltInTypes/Type.luau +0 -23
  1079. package/runtime/Cmdr/BuiltInTypes/URL.luau +0 -18
  1080. package/runtime/Cmdr/BuiltInTypes/UserInput.luau +0 -32
  1081. package/runtime/Cmdr/BuiltInTypes/Vector.luau +0 -58
  1082. package/runtime/Cmdr/CmdrClient/CmdrInterface/AutoComplete.luau +0 -240
  1083. package/runtime/Cmdr/CmdrClient/CmdrInterface/CreateGui.luau +0 -227
  1084. package/runtime/Cmdr/CmdrClient/CmdrInterface/Window.luau +0 -713
  1085. package/runtime/Cmdr/CmdrClient/CmdrInterface/init.luau +0 -18
  1086. package/runtime/Cmdr/CmdrClient/DefaultEventHandlers.luau +0 -18
  1087. package/runtime/Cmdr/CmdrClient/Shared/Argument.luau +0 -395
  1088. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +0 -39
  1089. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +0 -36
  1090. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +0 -10
  1091. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +0 -10
  1092. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +0 -10
  1093. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +0 -8
  1094. package/runtime/Cmdr/CmdrClient/Shared/Command.luau +0 -415
  1095. package/runtime/Cmdr/CmdrClient/Shared/Dispatcher.luau +0 -407
  1096. package/runtime/Cmdr/CmdrClient/Shared/Registry.luau +0 -717
  1097. package/runtime/Cmdr/CmdrClient/Shared/Util.luau +0 -879
  1098. package/runtime/Cmdr/CmdrClient/init.luau +0 -377
  1099. package/runtime/Cmdr/LICENSE +0 -21
  1100. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announce.luau +0 -21
  1101. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announceServer.luau +0 -17
  1102. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/ban.luau +0 -59
  1103. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/banServer.luau +0 -30
  1104. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlace.luau +0 -35
  1105. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlaceServer.luau +0 -17
  1106. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kick.luau +0 -19
  1107. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kickServer.luau +0 -27
  1108. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kill.luau +0 -13
  1109. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/killServer.luau +0 -13
  1110. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawn.luau +0 -15
  1111. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawnServer.luau +0 -7
  1112. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleport.luau +0 -30
  1113. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleportServer.luau +0 -26
  1114. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unban.luau +0 -26
  1115. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unbanServer.luau +0 -10
  1116. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/blink.luau +0 -35
  1117. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetch.luau +0 -12
  1118. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetchServer.luau +0 -7
  1119. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +0 -20
  1120. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +0 -28
  1121. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/position.luau +0 -30
  1122. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/thru.luau +0 -50
  1123. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptime.luau +0 -6
  1124. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptimeServer.luau +0 -12
  1125. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/version.luau +0 -12
  1126. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/alias.luau +0 -22
  1127. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/bind.luau +0 -104
  1128. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/clear.luau +0 -20
  1129. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/convertTimestamp.luau +0 -18
  1130. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/echo.luau +0 -17
  1131. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/edit.luau +0 -75
  1132. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/exit.luau +0 -11
  1133. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/history.luau +0 -27
  1134. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/hover.luau +0 -21
  1135. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayDecode.luau +0 -25
  1136. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayEncode.luau +0 -18
  1137. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/len.luau +0 -16
  1138. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/math.luau +0 -36
  1139. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/pick.luau +0 -21
  1140. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/rand.luau +0 -27
  1141. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/replace.luau +0 -32
  1142. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/resolve.luau +0 -32
  1143. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/run.luau +0 -20
  1144. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runLines.luau +0 -34
  1145. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runif.luau +0 -95
  1146. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/unbind.luau +0 -27
  1147. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/var.luau +0 -29
  1148. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varServer.luau +0 -37
  1149. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSet.luau +0 -30
  1150. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSetServer.luau +0 -29
  1151. package/runtime/Cmdr/_impl/BuiltInCommands/help.luau +0 -96
  1152. package/runtime/Cmdr/_impl/BuiltInTypes/BrickColor.luau +0 -258
  1153. package/runtime/Cmdr/_impl/BuiltInTypes/Color3.luau +0 -59
  1154. package/runtime/Cmdr/_impl/BuiltInTypes/Command.luau +0 -23
  1155. package/runtime/Cmdr/_impl/BuiltInTypes/Duration.luau +0 -111
  1156. package/runtime/Cmdr/_impl/BuiltInTypes/JSON.luau +0 -13
  1157. package/runtime/Cmdr/_impl/BuiltInTypes/MathOperator.luau +0 -43
  1158. package/runtime/Cmdr/_impl/BuiltInTypes/Player.luau +0 -36
  1159. package/runtime/Cmdr/_impl/BuiltInTypes/PlayerId.luau +0 -66
  1160. package/runtime/Cmdr/_impl/BuiltInTypes/Primitives.luau +0 -145
  1161. package/runtime/Cmdr/_impl/BuiltInTypes/StoredKey.luau +0 -33
  1162. package/runtime/Cmdr/_impl/BuiltInTypes/Team.luau +0 -49
  1163. package/runtime/Cmdr/_impl/BuiltInTypes/Type.luau +0 -23
  1164. package/runtime/Cmdr/_impl/BuiltInTypes/URL.luau +0 -18
  1165. package/runtime/Cmdr/_impl/BuiltInTypes/UserInput.luau +0 -32
  1166. package/runtime/Cmdr/_impl/BuiltInTypes/Vector.luau +0 -58
  1167. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/AutoComplete.luau +0 -240
  1168. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/CreateGui.luau +0 -227
  1169. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/Window.luau +0 -713
  1170. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/init.luau +0 -18
  1171. package/runtime/Cmdr/_impl/CmdrClient/DefaultEventHandlers.luau +0 -18
  1172. package/runtime/Cmdr/_impl/CmdrClient/Shared/Argument.luau +0 -395
  1173. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +0 -39
  1174. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +0 -36
  1175. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +0 -10
  1176. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +0 -10
  1177. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +0 -10
  1178. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +0 -8
  1179. package/runtime/Cmdr/_impl/CmdrClient/Shared/Command.luau +0 -415
  1180. package/runtime/Cmdr/_impl/CmdrClient/Shared/Dispatcher.luau +0 -407
  1181. package/runtime/Cmdr/_impl/CmdrClient/Shared/Registry.luau +0 -717
  1182. package/runtime/Cmdr/_impl/CmdrClient/Shared/Util.luau +0 -879
  1183. package/runtime/Cmdr/_impl/CmdrClient/init.luau +0 -377
  1184. package/runtime/Cmdr/_impl/LICENSE +0 -21
  1185. package/runtime/Cmdr/_impl/init.luau +0 -178
  1186. package/runtime/Cmdr/init.luau +0 -8
  1187. package/runtime/DataService/Client.luau +0 -209
  1188. package/runtime/DataService/Data.luau +0 -886
  1189. package/runtime/DataService/Enum.luau +0 -6
  1190. package/runtime/DataService/Enums.luau +0 -10
  1191. package/runtime/DataService/Packages/quicknet/DataTypes.luau +0 -70
  1192. package/runtime/DataService/Packages/quicknet/Enums.luau +0 -85
  1193. package/runtime/DataService/Packages/quicknet/EnumsToNativeTypes.luau +0 -57
  1194. package/runtime/DataService/Packages/quicknet/Parser.luau +0 -355
  1195. package/runtime/DataService/Packages/quicknet/QuickNet.luau +0 -953
  1196. package/runtime/DataService/Packages/quicknet/Serialize.luau +0 -2020
  1197. package/runtime/DataService/Packages/quicknet/Types.luau +0 -72
  1198. package/runtime/DataService/Packages/quicknet/init.luau +0 -1
  1199. package/runtime/DataService/Packages/signal/init.luau +0 -433
  1200. package/runtime/DataService/Path.luau +0 -236
  1201. package/runtime/DataService/ProfileStore.luau +0 -2243
  1202. package/runtime/DataService/Replicator.luau +0 -172
  1203. package/runtime/DataService/Server.luau +0 -412
  1204. package/runtime/DataService/init.luau +0 -204
  1205. package/runtime/Display/LICENSE +0 -201
  1206. package/runtime/Display/_impl/LICENSE +0 -201
  1207. package/runtime/Display/_impl/init.luau +0 -269
  1208. package/runtime/Display/_impl/option.luau +0 -237
  1209. package/runtime/Display/init.luau +0 -10
  1210. package/runtime/Display/option.luau +0 -237
  1211. package/runtime/EzVisualz/Dropshadow.luau +0 -148
  1212. package/runtime/EzVisualz/Gradient.luau +0 -452
  1213. package/runtime/EzVisualz/GradientTemplates/Bubblegum.luau +0 -16
  1214. package/runtime/EzVisualz/GradientTemplates/Chrome.luau +0 -16
  1215. package/runtime/EzVisualz/GradientTemplates/Death.luau +0 -15
  1216. package/runtime/EzVisualz/GradientTemplates/Electric.luau +0 -14
  1217. package/runtime/EzVisualz/GradientTemplates/Fire.luau +0 -13
  1218. package/runtime/EzVisualz/GradientTemplates/Galaxy.luau +0 -11
  1219. package/runtime/EzVisualz/GradientTemplates/Ghost.luau +0 -16
  1220. package/runtime/EzVisualz/GradientTemplates/Gold.luau +0 -14
  1221. package/runtime/EzVisualz/GradientTemplates/Green.luau +0 -14
  1222. package/runtime/EzVisualz/GradientTemplates/Ice.luau +0 -14
  1223. package/runtime/EzVisualz/GradientTemplates/Lava.luau +0 -15
  1224. package/runtime/EzVisualz/GradientTemplates/Matrix.luau +0 -19
  1225. package/runtime/EzVisualz/GradientTemplates/Neon.luau +0 -12
  1226. package/runtime/EzVisualz/GradientTemplates/Oceanic.luau +0 -15
  1227. package/runtime/EzVisualz/GradientTemplates/Rainbow.luau +0 -13
  1228. package/runtime/EzVisualz/GradientTemplates/Silver.luau +0 -12
  1229. package/runtime/EzVisualz/GradientTemplates/Sunset.luau +0 -11
  1230. package/runtime/EzVisualz/GradientTemplates/Zebra.luau +0 -18
  1231. package/runtime/EzVisualz/GradientTemplates/init.luau +0 -9
  1232. package/runtime/EzVisualz/LICENSE.md +0 -21
  1233. package/runtime/EzVisualz/Presets/Bubblegum.luau +0 -36
  1234. package/runtime/EzVisualz/Presets/ChromeStroke.luau +0 -15
  1235. package/runtime/EzVisualz/Presets/DeathStroke.luau +0 -15
  1236. package/runtime/EzVisualz/Presets/ElectricStroke.luau +0 -54
  1237. package/runtime/EzVisualz/Presets/FireStroke.luau +0 -29
  1238. package/runtime/EzVisualz/Presets/GalaxyStroke.luau +0 -31
  1239. package/runtime/EzVisualz/Presets/Ghost.luau +0 -10
  1240. package/runtime/EzVisualz/Presets/GhostStroke.luau +0 -15
  1241. package/runtime/EzVisualz/Presets/Gold.luau +0 -10
  1242. package/runtime/EzVisualz/Presets/GoldStroke.luau +0 -15
  1243. package/runtime/EzVisualz/Presets/GreenOutline.luau +0 -23
  1244. package/runtime/EzVisualz/Presets/IceStroke.luau +0 -15
  1245. package/runtime/EzVisualz/Presets/Lava.luau +0 -9
  1246. package/runtime/EzVisualz/Presets/LavaStroke.luau +0 -13
  1247. package/runtime/EzVisualz/Presets/Matrix.luau +0 -21
  1248. package/runtime/EzVisualz/Presets/NeonStroke.luau +0 -30
  1249. package/runtime/EzVisualz/Presets/OceanicStroke.luau +0 -15
  1250. package/runtime/EzVisualz/Presets/Rainbow.luau +0 -9
  1251. package/runtime/EzVisualz/Presets/RainbowOutline.luau +0 -23
  1252. package/runtime/EzVisualz/Presets/RainbowStroke.luau +0 -13
  1253. package/runtime/EzVisualz/Presets/Shine.luau +0 -48
  1254. package/runtime/EzVisualz/Presets/ShineOutline.luau +0 -66
  1255. package/runtime/EzVisualz/Presets/Silver.luau +0 -10
  1256. package/runtime/EzVisualz/Presets/SilverStroke.luau +0 -15
  1257. package/runtime/EzVisualz/Presets/SunsetStroke.luau +0 -31
  1258. package/runtime/EzVisualz/Presets/WaveStroke.luau +0 -33
  1259. package/runtime/EzVisualz/Presets/Zebra.luau +0 -21
  1260. package/runtime/EzVisualz/Presets/init.luau +0 -9
  1261. package/runtime/EzVisualz/Stroke.luau +0 -167
  1262. package/runtime/EzVisualz/Util.luau +0 -7
  1263. package/runtime/EzVisualz/_impl/Dropshadow.luau +0 -148
  1264. package/runtime/EzVisualz/_impl/Gradient.luau +0 -452
  1265. package/runtime/EzVisualz/_impl/GradientTemplates/Bubblegum.luau +0 -16
  1266. package/runtime/EzVisualz/_impl/GradientTemplates/Chrome.luau +0 -16
  1267. package/runtime/EzVisualz/_impl/GradientTemplates/Death.luau +0 -15
  1268. package/runtime/EzVisualz/_impl/GradientTemplates/Electric.luau +0 -14
  1269. package/runtime/EzVisualz/_impl/GradientTemplates/Fire.luau +0 -13
  1270. package/runtime/EzVisualz/_impl/GradientTemplates/Galaxy.luau +0 -11
  1271. package/runtime/EzVisualz/_impl/GradientTemplates/Ghost.luau +0 -16
  1272. package/runtime/EzVisualz/_impl/GradientTemplates/Gold.luau +0 -14
  1273. package/runtime/EzVisualz/_impl/GradientTemplates/Green.luau +0 -14
  1274. package/runtime/EzVisualz/_impl/GradientTemplates/Ice.luau +0 -14
  1275. package/runtime/EzVisualz/_impl/GradientTemplates/Lava.luau +0 -15
  1276. package/runtime/EzVisualz/_impl/GradientTemplates/Matrix.luau +0 -19
  1277. package/runtime/EzVisualz/_impl/GradientTemplates/Neon.luau +0 -12
  1278. package/runtime/EzVisualz/_impl/GradientTemplates/Oceanic.luau +0 -15
  1279. package/runtime/EzVisualz/_impl/GradientTemplates/Rainbow.luau +0 -13
  1280. package/runtime/EzVisualz/_impl/GradientTemplates/Silver.luau +0 -12
  1281. package/runtime/EzVisualz/_impl/GradientTemplates/Sunset.luau +0 -11
  1282. package/runtime/EzVisualz/_impl/GradientTemplates/Zebra.luau +0 -18
  1283. package/runtime/EzVisualz/_impl/GradientTemplates/init.luau +0 -9
  1284. package/runtime/EzVisualz/_impl/LICENSE.md +0 -21
  1285. package/runtime/EzVisualz/_impl/Presets/Bubblegum.luau +0 -36
  1286. package/runtime/EzVisualz/_impl/Presets/ChromeStroke.luau +0 -15
  1287. package/runtime/EzVisualz/_impl/Presets/DeathStroke.luau +0 -15
  1288. package/runtime/EzVisualz/_impl/Presets/ElectricStroke.luau +0 -54
  1289. package/runtime/EzVisualz/_impl/Presets/FireStroke.luau +0 -29
  1290. package/runtime/EzVisualz/_impl/Presets/GalaxyStroke.luau +0 -31
  1291. package/runtime/EzVisualz/_impl/Presets/Ghost.luau +0 -10
  1292. package/runtime/EzVisualz/_impl/Presets/GhostStroke.luau +0 -15
  1293. package/runtime/EzVisualz/_impl/Presets/Gold.luau +0 -10
  1294. package/runtime/EzVisualz/_impl/Presets/GoldStroke.luau +0 -15
  1295. package/runtime/EzVisualz/_impl/Presets/GreenOutline.luau +0 -23
  1296. package/runtime/EzVisualz/_impl/Presets/IceStroke.luau +0 -15
  1297. package/runtime/EzVisualz/_impl/Presets/Lava.luau +0 -9
  1298. package/runtime/EzVisualz/_impl/Presets/LavaStroke.luau +0 -13
  1299. package/runtime/EzVisualz/_impl/Presets/Matrix.luau +0 -21
  1300. package/runtime/EzVisualz/_impl/Presets/NeonStroke.luau +0 -30
  1301. package/runtime/EzVisualz/_impl/Presets/OceanicStroke.luau +0 -15
  1302. package/runtime/EzVisualz/_impl/Presets/Rainbow.luau +0 -9
  1303. package/runtime/EzVisualz/_impl/Presets/RainbowOutline.luau +0 -23
  1304. package/runtime/EzVisualz/_impl/Presets/RainbowStroke.luau +0 -13
  1305. package/runtime/EzVisualz/_impl/Presets/Shine.luau +0 -48
  1306. package/runtime/EzVisualz/_impl/Presets/ShineOutline.luau +0 -66
  1307. package/runtime/EzVisualz/_impl/Presets/Silver.luau +0 -10
  1308. package/runtime/EzVisualz/_impl/Presets/SilverStroke.luau +0 -15
  1309. package/runtime/EzVisualz/_impl/Presets/SunsetStroke.luau +0 -31
  1310. package/runtime/EzVisualz/_impl/Presets/WaveStroke.luau +0 -33
  1311. package/runtime/EzVisualz/_impl/Presets/Zebra.luau +0 -21
  1312. package/runtime/EzVisualz/_impl/Presets/init.luau +0 -9
  1313. package/runtime/EzVisualz/_impl/Stroke.luau +0 -167
  1314. package/runtime/EzVisualz/_impl/Util.luau +0 -7
  1315. package/runtime/EzVisualz/_impl/init.luau +0 -319
  1316. package/runtime/EzVisualz/_impl/wally.lock +0 -8
  1317. package/runtime/EzVisualz/_impl/wally.toml +0 -8
  1318. package/runtime/EzVisualz/init.luau +0 -9
  1319. package/runtime/EzVisualz/wally.lock +0 -8
  1320. package/runtime/EzVisualz/wally.toml +0 -8
  1321. package/runtime/FormatNumber/LICENSE.md +0 -25
  1322. package/runtime/FormatNumber/Main/DecimalFormatSymbols.lua +0 -43
  1323. package/runtime/FormatNumber/Main/IntegerWidth.lua +0 -41
  1324. package/runtime/FormatNumber/Main/Notation.lua +0 -116
  1325. package/runtime/FormatNumber/Main/Precision.lua +0 -179
  1326. package/runtime/FormatNumber/Main/init.lua +0 -199
  1327. package/runtime/FormatNumber/Simple/init.lua +0 -76
  1328. package/runtime/FormatNumber/Version.lua +0 -82
  1329. package/runtime/FormatNumber/_impl/LICENSE.md +0 -25
  1330. package/runtime/FormatNumber/_impl/Main/DecimalFormatSymbols.lua +0 -43
  1331. package/runtime/FormatNumber/_impl/Main/IntegerWidth.lua +0 -41
  1332. package/runtime/FormatNumber/_impl/Main/Notation.lua +0 -116
  1333. package/runtime/FormatNumber/_impl/Main/Precision.lua +0 -179
  1334. package/runtime/FormatNumber/_impl/Main/init.lua +0 -199
  1335. package/runtime/FormatNumber/_impl/Simple/init.lua +0 -76
  1336. package/runtime/FormatNumber/_impl/Version.lua +0 -82
  1337. package/runtime/FormatNumber/_impl/_internal/class.lua +0 -204
  1338. package/runtime/FormatNumber/_impl/_internal/decimal_conversion.lua +0 -30
  1339. package/runtime/FormatNumber/_impl/_internal/enums.lua +0 -55
  1340. package/runtime/FormatNumber/_impl/_internal/format.lua +0 -342
  1341. package/runtime/FormatNumber/_impl/_internal/formatter_settings.lua +0 -160
  1342. package/runtime/FormatNumber/_impl/_internal/init.lua +0 -8
  1343. package/runtime/FormatNumber/_impl/_internal/skeleton.lua +0 -541
  1344. package/runtime/FormatNumber/_impl/init.lua +0 -20
  1345. package/runtime/FormatNumber/_internal/class.lua +0 -204
  1346. package/runtime/FormatNumber/_internal/decimal_conversion.lua +0 -30
  1347. package/runtime/FormatNumber/_internal/enums.lua +0 -55
  1348. package/runtime/FormatNumber/_internal/format.lua +0 -342
  1349. package/runtime/FormatNumber/_internal/formatter_settings.lua +0 -160
  1350. package/runtime/FormatNumber/_internal/init.lua +0 -8
  1351. package/runtime/FormatNumber/_internal/skeleton.lua +0 -541
  1352. package/runtime/FormatNumber/init.lua +0 -20
  1353. package/runtime/FormatNumber/init.luau +0 -20
  1354. package/runtime/Fusion/Animation/ExternalTime.luau +0 -84
  1355. package/runtime/Fusion/Animation/Spring.luau +0 -313
  1356. package/runtime/Fusion/Animation/Stopwatch.luau +0 -128
  1357. package/runtime/Fusion/Animation/Tween.luau +0 -178
  1358. package/runtime/Fusion/Animation/getTweenDuration.luau +0 -27
  1359. package/runtime/Fusion/Animation/getTweenRatio.luau +0 -47
  1360. package/runtime/Fusion/Animation/lerpType.luau +0 -164
  1361. package/runtime/Fusion/Animation/packType.luau +0 -100
  1362. package/runtime/Fusion/Animation/springCoefficients.luau +0 -80
  1363. package/runtime/Fusion/Animation/unpackType.luau +0 -103
  1364. package/runtime/Fusion/Colour/Oklab.luau +0 -70
  1365. package/runtime/Fusion/Colour/sRGB.luau +0 -47
  1366. package/runtime/Fusion/External.luau +0 -156
  1367. package/runtime/Fusion/ExternalDebug.luau +0 -70
  1368. package/runtime/Fusion/Graph/Observer.luau +0 -111
  1369. package/runtime/Fusion/Graph/castToGraph.luau +0 -29
  1370. package/runtime/Fusion/Graph/change.luau +0 -81
  1371. package/runtime/Fusion/Graph/depend.luau +0 -33
  1372. package/runtime/Fusion/Graph/evaluate.luau +0 -56
  1373. package/runtime/Fusion/Instances/Attribute.luau +0 -58
  1374. package/runtime/Fusion/Instances/AttributeChange.luau +0 -47
  1375. package/runtime/Fusion/Instances/AttributeOut.luau +0 -63
  1376. package/runtime/Fusion/Instances/Child.luau +0 -21
  1377. package/runtime/Fusion/Instances/Children.luau +0 -148
  1378. package/runtime/Fusion/Instances/Hydrate.luau +0 -29
  1379. package/runtime/Fusion/Instances/New.luau +0 -48
  1380. package/runtime/Fusion/Instances/OnChange.luau +0 -50
  1381. package/runtime/Fusion/Instances/OnEvent.luau +0 -54
  1382. package/runtime/Fusion/Instances/Out.luau +0 -69
  1383. package/runtime/Fusion/Instances/Tag.luau +0 -61
  1384. package/runtime/Fusion/Instances/applyInstanceProps.luau +0 -149
  1385. package/runtime/Fusion/Instances/defaultProps.luau +0 -194
  1386. package/runtime/Fusion/LICENSE +0 -21
  1387. package/runtime/Fusion/Logging/formatError.luau +0 -49
  1388. package/runtime/Fusion/Logging/messages.luau +0 -46
  1389. package/runtime/Fusion/Logging/parseError.luau +0 -25
  1390. package/runtime/Fusion/Memory/checkLifetime.luau +0 -134
  1391. package/runtime/Fusion/Memory/deriveScope.luau +0 -24
  1392. package/runtime/Fusion/Memory/deriveScopeImpl.luau +0 -40
  1393. package/runtime/Fusion/Memory/doCleanup.luau +0 -91
  1394. package/runtime/Fusion/Memory/innerScope.luau +0 -34
  1395. package/runtime/Fusion/Memory/insert.luau +0 -22
  1396. package/runtime/Fusion/Memory/needsDestruction.luau +0 -17
  1397. package/runtime/Fusion/Memory/scoped.luau +0 -24
  1398. package/runtime/Fusion/RobloxExternal.luau +0 -98
  1399. package/runtime/Fusion/State/Computed.luau +0 -122
  1400. package/runtime/Fusion/State/For/Disassembly.luau +0 -207
  1401. package/runtime/Fusion/State/For/ForTypes.luau +0 -30
  1402. package/runtime/Fusion/State/For/init.luau +0 -101
  1403. package/runtime/Fusion/State/ForKeys.luau +0 -88
  1404. package/runtime/Fusion/State/ForPairs.luau +0 -91
  1405. package/runtime/Fusion/State/ForValues.luau +0 -88
  1406. package/runtime/Fusion/State/Value.luau +0 -76
  1407. package/runtime/Fusion/State/castToState.luau +0 -26
  1408. package/runtime/Fusion/State/peek.luau +0 -31
  1409. package/runtime/Fusion/State/updateAll.luau +0 -1
  1410. package/runtime/Fusion/Types.luau +0 -318
  1411. package/runtime/Fusion/Utility/Contextual.luau +0 -91
  1412. package/runtime/Fusion/Utility/Safe.luau +0 -23
  1413. package/runtime/Fusion/Utility/isSimilar.luau +0 -29
  1414. package/runtime/Fusion/Utility/merge.luau +0 -35
  1415. package/runtime/Fusion/Utility/nameOf.luau +0 -35
  1416. package/runtime/Fusion/Utility/never.luau +0 -14
  1417. package/runtime/Fusion/Utility/nicknames.luau +0 -11
  1418. package/runtime/Fusion/Utility/xtypeof.luau +0 -27
  1419. package/runtime/Fusion/_impl/Animation/ExternalTime.luau +0 -84
  1420. package/runtime/Fusion/_impl/Animation/Spring.luau +0 -313
  1421. package/runtime/Fusion/_impl/Animation/Stopwatch.luau +0 -128
  1422. package/runtime/Fusion/_impl/Animation/Tween.luau +0 -178
  1423. package/runtime/Fusion/_impl/Animation/getTweenDuration.luau +0 -27
  1424. package/runtime/Fusion/_impl/Animation/getTweenRatio.luau +0 -47
  1425. package/runtime/Fusion/_impl/Animation/lerpType.luau +0 -164
  1426. package/runtime/Fusion/_impl/Animation/packType.luau +0 -100
  1427. package/runtime/Fusion/_impl/Animation/springCoefficients.luau +0 -80
  1428. package/runtime/Fusion/_impl/Animation/unpackType.luau +0 -103
  1429. package/runtime/Fusion/_impl/Colour/Oklab.luau +0 -70
  1430. package/runtime/Fusion/_impl/Colour/sRGB.luau +0 -47
  1431. package/runtime/Fusion/_impl/External.luau +0 -156
  1432. package/runtime/Fusion/_impl/ExternalDebug.luau +0 -70
  1433. package/runtime/Fusion/_impl/Graph/Observer.luau +0 -111
  1434. package/runtime/Fusion/_impl/Graph/castToGraph.luau +0 -29
  1435. package/runtime/Fusion/_impl/Graph/change.luau +0 -81
  1436. package/runtime/Fusion/_impl/Graph/depend.luau +0 -33
  1437. package/runtime/Fusion/_impl/Graph/evaluate.luau +0 -56
  1438. package/runtime/Fusion/_impl/Instances/Attribute.luau +0 -58
  1439. package/runtime/Fusion/_impl/Instances/AttributeChange.luau +0 -47
  1440. package/runtime/Fusion/_impl/Instances/AttributeOut.luau +0 -63
  1441. package/runtime/Fusion/_impl/Instances/Child.luau +0 -21
  1442. package/runtime/Fusion/_impl/Instances/Children.luau +0 -148
  1443. package/runtime/Fusion/_impl/Instances/Hydrate.luau +0 -29
  1444. package/runtime/Fusion/_impl/Instances/New.luau +0 -48
  1445. package/runtime/Fusion/_impl/Instances/OnChange.luau +0 -50
  1446. package/runtime/Fusion/_impl/Instances/OnEvent.luau +0 -54
  1447. package/runtime/Fusion/_impl/Instances/Out.luau +0 -69
  1448. package/runtime/Fusion/_impl/Instances/Tag.luau +0 -61
  1449. package/runtime/Fusion/_impl/Instances/applyInstanceProps.luau +0 -149
  1450. package/runtime/Fusion/_impl/Instances/defaultProps.luau +0 -194
  1451. package/runtime/Fusion/_impl/LICENSE +0 -21
  1452. package/runtime/Fusion/_impl/Logging/formatError.luau +0 -49
  1453. package/runtime/Fusion/_impl/Logging/messages.luau +0 -46
  1454. package/runtime/Fusion/_impl/Logging/parseError.luau +0 -25
  1455. package/runtime/Fusion/_impl/Memory/checkLifetime.luau +0 -134
  1456. package/runtime/Fusion/_impl/Memory/deriveScope.luau +0 -24
  1457. package/runtime/Fusion/_impl/Memory/deriveScopeImpl.luau +0 -40
  1458. package/runtime/Fusion/_impl/Memory/doCleanup.luau +0 -91
  1459. package/runtime/Fusion/_impl/Memory/innerScope.luau +0 -34
  1460. package/runtime/Fusion/_impl/Memory/insert.luau +0 -22
  1461. package/runtime/Fusion/_impl/Memory/needsDestruction.luau +0 -17
  1462. package/runtime/Fusion/_impl/Memory/scoped.luau +0 -24
  1463. package/runtime/Fusion/_impl/RobloxExternal.luau +0 -98
  1464. package/runtime/Fusion/_impl/State/Computed.luau +0 -122
  1465. package/runtime/Fusion/_impl/State/For/Disassembly.luau +0 -207
  1466. package/runtime/Fusion/_impl/State/For/ForTypes.luau +0 -30
  1467. package/runtime/Fusion/_impl/State/For/init.luau +0 -101
  1468. package/runtime/Fusion/_impl/State/ForKeys.luau +0 -88
  1469. package/runtime/Fusion/_impl/State/ForPairs.luau +0 -91
  1470. package/runtime/Fusion/_impl/State/ForValues.luau +0 -88
  1471. package/runtime/Fusion/_impl/State/Value.luau +0 -76
  1472. package/runtime/Fusion/_impl/State/castToState.luau +0 -26
  1473. package/runtime/Fusion/_impl/State/peek.luau +0 -31
  1474. package/runtime/Fusion/_impl/State/updateAll.luau +0 -1
  1475. package/runtime/Fusion/_impl/Types.luau +0 -318
  1476. package/runtime/Fusion/_impl/Utility/Contextual.luau +0 -91
  1477. package/runtime/Fusion/_impl/Utility/Safe.luau +0 -23
  1478. package/runtime/Fusion/_impl/Utility/isSimilar.luau +0 -29
  1479. package/runtime/Fusion/_impl/Utility/merge.luau +0 -35
  1480. package/runtime/Fusion/_impl/Utility/nameOf.luau +0 -35
  1481. package/runtime/Fusion/_impl/Utility/never.luau +0 -14
  1482. package/runtime/Fusion/_impl/Utility/nicknames.luau +0 -11
  1483. package/runtime/Fusion/_impl/Utility/xtypeof.luau +0 -27
  1484. package/runtime/Fusion/_impl/init.luau +0 -83
  1485. package/runtime/Fusion/init.luau +0 -27
  1486. package/runtime/Iris/API.lua +0 -2085
  1487. package/runtime/Iris/Internal.lua +0 -895
  1488. package/runtime/Iris/LICENSE.txt +0 -21
  1489. package/runtime/Iris/PubTypes.lua +0 -43
  1490. package/runtime/Iris/Types.lua +0 -660
  1491. package/runtime/Iris/WidgetTypes.lua +0 -521
  1492. package/runtime/Iris/_impl/API.lua +0 -2085
  1493. package/runtime/Iris/_impl/Internal.lua +0 -895
  1494. package/runtime/Iris/_impl/LICENSE.txt +0 -21
  1495. package/runtime/Iris/_impl/PubTypes.lua +0 -43
  1496. package/runtime/Iris/_impl/Types.lua +0 -660
  1497. package/runtime/Iris/_impl/WidgetTypes.lua +0 -521
  1498. package/runtime/Iris/_impl/config.lua +0 -305
  1499. package/runtime/Iris/_impl/init.lua +0 -696
  1500. package/runtime/Iris/_impl/widgets/Button.lua +0 -90
  1501. package/runtime/Iris/_impl/widgets/Checkbox.lua +0 -115
  1502. package/runtime/Iris/_impl/widgets/Combo.lua +0 -492
  1503. package/runtime/Iris/_impl/widgets/Format.lua +0 -140
  1504. package/runtime/Iris/_impl/widgets/Image.lua +0 -155
  1505. package/runtime/Iris/_impl/widgets/Input.lua +0 -1232
  1506. package/runtime/Iris/_impl/widgets/Menu.lua +0 -599
  1507. package/runtime/Iris/_impl/widgets/Plot.lua +0 -639
  1508. package/runtime/Iris/_impl/widgets/RadioButton.lua +0 -126
  1509. package/runtime/Iris/_impl/widgets/Root.lua +0 -143
  1510. package/runtime/Iris/_impl/widgets/Tab.lua +0 -333
  1511. package/runtime/Iris/_impl/widgets/Table.lua +0 -635
  1512. package/runtime/Iris/_impl/widgets/Text.lua +0 -132
  1513. package/runtime/Iris/_impl/widgets/Tree.lua +0 -287
  1514. package/runtime/Iris/_impl/widgets/Window.lua +0 -1075
  1515. package/runtime/Iris/_impl/widgets/init.lua +0 -447
  1516. package/runtime/Iris/config.lua +0 -305
  1517. package/runtime/Iris/init.lua +0 -696
  1518. package/runtime/Iris/init.luau +0 -12
  1519. package/runtime/Iris/widgets/Button.lua +0 -90
  1520. package/runtime/Iris/widgets/Checkbox.lua +0 -115
  1521. package/runtime/Iris/widgets/Combo.lua +0 -492
  1522. package/runtime/Iris/widgets/Format.lua +0 -140
  1523. package/runtime/Iris/widgets/Image.lua +0 -155
  1524. package/runtime/Iris/widgets/Input.lua +0 -1232
  1525. package/runtime/Iris/widgets/Menu.lua +0 -599
  1526. package/runtime/Iris/widgets/Plot.lua +0 -639
  1527. package/runtime/Iris/widgets/RadioButton.lua +0 -126
  1528. package/runtime/Iris/widgets/Root.lua +0 -143
  1529. package/runtime/Iris/widgets/Tab.lua +0 -333
  1530. package/runtime/Iris/widgets/Table.lua +0 -635
  1531. package/runtime/Iris/widgets/Text.lua +0 -132
  1532. package/runtime/Iris/widgets/Tree.lua +0 -287
  1533. package/runtime/Iris/widgets/Window.lua +0 -1075
  1534. package/runtime/Iris/widgets/init.lua +0 -447
  1535. package/runtime/Janitor/FastDefer.luau +0 -33
  1536. package/runtime/Janitor/LICENSE +0 -21
  1537. package/runtime/Janitor/_impl/FastDefer.luau +0 -33
  1538. package/runtime/Janitor/_impl/LICENSE +0 -21
  1539. package/runtime/Janitor/_impl/init.luau +0 -999
  1540. package/runtime/Janitor/init.luau +0 -15
  1541. package/runtime/MathUtils/init.luau +0 -100
  1542. package/runtime/Module3D/LICENSE +0 -21
  1543. package/runtime/Module3D/_impl/LICENSE +0 -21
  1544. package/runtime/Module3D/_impl/init.luau +0 -269
  1545. package/runtime/Module3D/init.luau +0 -14
  1546. package/runtime/Spring/LICENSE +0 -201
  1547. package/runtime/Spring/_impl/LICENSE +0 -201
  1548. package/runtime/Spring/_impl/init.luau +0 -111
  1549. package/runtime/Spring/init.luau +0 -24
  1550. package/runtime/StateMachine/Classes/State.lua +0 -375
  1551. package/runtime/StateMachine/Classes/Transition.lua +0 -336
  1552. package/runtime/StateMachine/Functions/deepCopy.lua +0 -19
  1553. package/runtime/StateMachine/Functions/mergeTables.lua +0 -22
  1554. package/runtime/StateMachine/LICENSE +0 -19
  1555. package/runtime/StateMachine/Vendor/Signal.lua +0 -386
  1556. package/runtime/StateMachine/Vendor/Trove.lua +0 -188
  1557. package/runtime/StateMachine/_impl/Classes/State.lua +0 -375
  1558. package/runtime/StateMachine/_impl/Classes/Transition.lua +0 -336
  1559. package/runtime/StateMachine/_impl/Functions/deepCopy.lua +0 -19
  1560. package/runtime/StateMachine/_impl/Functions/mergeTables.lua +0 -22
  1561. package/runtime/StateMachine/_impl/LICENSE +0 -19
  1562. package/runtime/StateMachine/_impl/Vendor/Signal.lua +0 -386
  1563. package/runtime/StateMachine/_impl/Vendor/Trove.lua +0 -188
  1564. package/runtime/StateMachine/_impl/init.lua +0 -595
  1565. package/runtime/StateMachine/init.lua +0 -595
  1566. package/runtime/StateMachine/init.luau +0 -10
  1567. package/runtime/StickyBillboard/init.luau +0 -167
  1568. package/runtime/TopbarPlus/Attribute.lua +0 -35
  1569. package/runtime/TopbarPlus/Elements/Caption.lua +0 -316
  1570. package/runtime/TopbarPlus/Elements/Container.lua +0 -215
  1571. package/runtime/TopbarPlus/Elements/Dropdown.lua +0 -315
  1572. package/runtime/TopbarPlus/Elements/Indicator.lua +0 -91
  1573. package/runtime/TopbarPlus/Elements/Menu.lua +0 -180
  1574. package/runtime/TopbarPlus/Elements/Notice.lua +0 -113
  1575. package/runtime/TopbarPlus/Elements/Selection.lua +0 -49
  1576. package/runtime/TopbarPlus/Elements/Widget.lua +0 -437
  1577. package/runtime/TopbarPlus/Features/Gamepad.lua +0 -201
  1578. package/runtime/TopbarPlus/Features/Overflow.lua +0 -360
  1579. package/runtime/TopbarPlus/Features/Themes/Classic.lua +0 -27
  1580. package/runtime/TopbarPlus/Features/Themes/Default.lua +0 -75
  1581. package/runtime/TopbarPlus/Features/Themes/init.lua +0 -353
  1582. package/runtime/TopbarPlus/LICENSE +0 -381
  1583. package/runtime/TopbarPlus/Packages/GoodSignal.lua +0 -182
  1584. package/runtime/TopbarPlus/Packages/Janitor.lua +0 -322
  1585. package/runtime/TopbarPlus/Reference.lua +0 -30
  1586. package/runtime/TopbarPlus/Types.lua +0 -477
  1587. package/runtime/TopbarPlus/Utility.lua +0 -462
  1588. package/runtime/TopbarPlus/VERSION.lua +0 -51
  1589. package/runtime/TopbarPlus/_impl/Attribute.lua +0 -35
  1590. package/runtime/TopbarPlus/_impl/Elements/Caption.lua +0 -316
  1591. package/runtime/TopbarPlus/_impl/Elements/Container.lua +0 -215
  1592. package/runtime/TopbarPlus/_impl/Elements/Dropdown.lua +0 -315
  1593. package/runtime/TopbarPlus/_impl/Elements/Indicator.lua +0 -91
  1594. package/runtime/TopbarPlus/_impl/Elements/Menu.lua +0 -180
  1595. package/runtime/TopbarPlus/_impl/Elements/Notice.lua +0 -113
  1596. package/runtime/TopbarPlus/_impl/Elements/Selection.lua +0 -49
  1597. package/runtime/TopbarPlus/_impl/Elements/Widget.lua +0 -437
  1598. package/runtime/TopbarPlus/_impl/Features/Gamepad.lua +0 -201
  1599. package/runtime/TopbarPlus/_impl/Features/Overflow.lua +0 -360
  1600. package/runtime/TopbarPlus/_impl/Features/Themes/Classic.lua +0 -27
  1601. package/runtime/TopbarPlus/_impl/Features/Themes/Default.lua +0 -75
  1602. package/runtime/TopbarPlus/_impl/Features/Themes/init.lua +0 -353
  1603. package/runtime/TopbarPlus/_impl/LICENSE +0 -381
  1604. package/runtime/TopbarPlus/_impl/Packages/GoodSignal.lua +0 -182
  1605. package/runtime/TopbarPlus/_impl/Packages/Janitor.lua +0 -322
  1606. package/runtime/TopbarPlus/_impl/Reference.lua +0 -30
  1607. package/runtime/TopbarPlus/_impl/Types.lua +0 -477
  1608. package/runtime/TopbarPlus/_impl/Utility.lua +0 -462
  1609. package/runtime/TopbarPlus/_impl/VERSION.lua +0 -51
  1610. package/runtime/TopbarPlus/_impl/init.lua +0 -1249
  1611. package/runtime/TopbarPlus/init.lua +0 -1249
  1612. package/runtime/TopbarPlus/init.luau +0 -8
  1613. package/runtime/Twinkle/init.luau +0 -157
  1614. package/runtime/VfxUtil/init.luau +0 -164
  1615. package/templates/game/include/clpp/libs/chrono.clh +0 -26
  1616. package/templates/game/include/clpp/libs/cmdr.clh +0 -16
  1617. package/templates/game/include/clpp/libs/dataservice.clh +0 -138
  1618. package/templates/game/include/clpp/libs/display.clh +0 -12
  1619. package/templates/game/include/clpp/libs/ezvisual.clh +0 -16
  1620. package/templates/game/include/clpp/libs/formatnumber.clh +0 -14
  1621. package/templates/game/include/clpp/libs/fusion.clh +0 -41
  1622. package/templates/game/include/clpp/libs/iris.clh +0 -40
  1623. package/templates/game/include/clpp/libs/janitor.clh +0 -38
  1624. package/templates/game/include/clpp/libs/math.clh +0 -14
  1625. package/templates/game/include/clpp/libs/module3d.clh +0 -23
  1626. package/templates/game/include/clpp/libs/spring.clh +0 -17
  1627. package/templates/game/include/clpp/libs/statemachine.clh +0 -18
  1628. package/templates/game/include/clpp/libs/stickybillboard.clh +0 -13
  1629. package/templates/game/include/clpp/libs/topbarplus.clh +0 -28
  1630. package/templates/game/include/clpp/libs/twinkle.clh +0 -15
  1631. package/templates/game/include/clpp/libs/vfx.clh +0 -13
  1632. package/templates/game/libs/ArrayIndexer/init.luau +0 -144
  1633. package/templates/game/libs/Chrono/Client/ClientClock.luau +0 -202
  1634. package/templates/game/libs/Chrono/Client/InterpolationBuffer.luau +0 -74
  1635. package/templates/game/libs/Chrono/Client/ModelResolver.luau +0 -53
  1636. package/templates/game/libs/Chrono/Client/Player.luau +0 -113
  1637. package/templates/game/libs/Chrono/Client/Receiver.luau +0 -395
  1638. package/templates/game/libs/Chrono/Client/Replicate.luau +0 -333
  1639. package/templates/game/libs/Chrono/Client/Sender.luau +0 -205
  1640. package/templates/game/libs/Chrono/LICENSE +0 -21
  1641. package/templates/game/libs/Chrono/Server/EntityGrid.luau +0 -299
  1642. package/templates/game/libs/Chrono/Server/Player.luau +0 -141
  1643. package/templates/game/libs/Chrono/Server/Receiver.luau +0 -287
  1644. package/templates/game/libs/Chrono/Server/Replicate.luau +0 -415
  1645. package/templates/game/libs/Chrono/Server/Sender.luau +0 -306
  1646. package/templates/game/libs/Chrono/Server/ServerClock.luau +0 -50
  1647. package/templates/game/libs/Chrono/Shared/ApplyMounts.luau +0 -137
  1648. package/templates/game/libs/Chrono/Shared/Bin.luau +0 -31
  1649. package/templates/game/libs/Chrono/Shared/ClockUnwrap.luau +0 -70
  1650. package/templates/game/libs/Chrono/Shared/Config.luau +0 -264
  1651. package/templates/game/libs/Chrono/Shared/Entity.luau +0 -1016
  1652. package/templates/game/libs/Chrono/Shared/Events.luau +0 -39
  1653. package/templates/game/libs/Chrono/Shared/Holder.luau +0 -210
  1654. package/templates/game/libs/Chrono/Shared/InterpolationMath.luau +0 -51
  1655. package/templates/game/libs/Chrono/Shared/ModelHelper.luau +0 -122
  1656. package/templates/game/libs/Chrono/Shared/Remotes/ClientClockRelay.model.json +0 -3
  1657. package/templates/game/libs/Chrono/Shared/Remotes/ClientHeartbeat.model.json +0 -3
  1658. package/templates/game/libs/Chrono/Shared/Remotes/ClientLoaded.model.json +0 -3
  1659. package/templates/game/libs/Chrono/Shared/Remotes/Death.model.json +0 -3
  1660. package/templates/game/libs/Chrono/Shared/Remotes/Heartbeat.model.json +0 -3
  1661. package/templates/game/libs/Chrono/Shared/Remotes/Replicate.model.json +0 -3
  1662. package/templates/game/libs/Chrono/Shared/Remotes/ReplicateFull.model.json +0 -3
  1663. package/templates/game/libs/Chrono/Shared/Remotes/SafeReplicate.model.json +0 -3
  1664. package/templates/game/libs/Chrono/Shared/ReplicationRules.luau +0 -122
  1665. package/templates/game/libs/Chrono/Shared/Signal.luau +0 -219
  1666. package/templates/game/libs/Chrono/Shared/Snapshots.luau +0 -218
  1667. package/templates/game/libs/Chrono/Shared/Stats.luau +0 -204
  1668. package/templates/game/libs/Chrono/Shared/Ticker.luau +0 -112
  1669. package/templates/game/libs/Chrono/Shared/Types.luau +0 -247
  1670. package/templates/game/libs/Chrono/Shared/Warn.luau +0 -33
  1671. package/templates/game/libs/Chrono/Shared/_CUSTOM_MODEL_REP/init.model.json +0 -3
  1672. package/templates/game/libs/Chrono/_impl/Client/ClientClock.luau +0 -202
  1673. package/templates/game/libs/Chrono/_impl/Client/InterpolationBuffer.luau +0 -74
  1674. package/templates/game/libs/Chrono/_impl/Client/ModelResolver.luau +0 -53
  1675. package/templates/game/libs/Chrono/_impl/Client/Player.luau +0 -113
  1676. package/templates/game/libs/Chrono/_impl/Client/Receiver.luau +0 -395
  1677. package/templates/game/libs/Chrono/_impl/Client/Replicate.luau +0 -333
  1678. package/templates/game/libs/Chrono/_impl/Client/Sender.luau +0 -205
  1679. package/templates/game/libs/Chrono/_impl/LICENSE +0 -21
  1680. package/templates/game/libs/Chrono/_impl/Server/EntityGrid.luau +0 -299
  1681. package/templates/game/libs/Chrono/_impl/Server/Player.luau +0 -141
  1682. package/templates/game/libs/Chrono/_impl/Server/Receiver.luau +0 -287
  1683. package/templates/game/libs/Chrono/_impl/Server/Replicate.luau +0 -415
  1684. package/templates/game/libs/Chrono/_impl/Server/Sender.luau +0 -306
  1685. package/templates/game/libs/Chrono/_impl/Server/ServerClock.luau +0 -50
  1686. package/templates/game/libs/Chrono/_impl/Shared/ApplyMounts.luau +0 -137
  1687. package/templates/game/libs/Chrono/_impl/Shared/Bin.luau +0 -31
  1688. package/templates/game/libs/Chrono/_impl/Shared/ClockUnwrap.luau +0 -70
  1689. package/templates/game/libs/Chrono/_impl/Shared/Config.luau +0 -264
  1690. package/templates/game/libs/Chrono/_impl/Shared/Entity.luau +0 -1016
  1691. package/templates/game/libs/Chrono/_impl/Shared/Events.luau +0 -39
  1692. package/templates/game/libs/Chrono/_impl/Shared/Holder.luau +0 -210
  1693. package/templates/game/libs/Chrono/_impl/Shared/InterpolationMath.luau +0 -51
  1694. package/templates/game/libs/Chrono/_impl/Shared/ModelHelper.luau +0 -122
  1695. package/templates/game/libs/Chrono/_impl/Shared/Remotes/ClientClockRelay.model.json +0 -3
  1696. package/templates/game/libs/Chrono/_impl/Shared/Remotes/ClientHeartbeat.model.json +0 -3
  1697. package/templates/game/libs/Chrono/_impl/Shared/Remotes/ClientLoaded.model.json +0 -3
  1698. package/templates/game/libs/Chrono/_impl/Shared/Remotes/Death.model.json +0 -3
  1699. package/templates/game/libs/Chrono/_impl/Shared/Remotes/Heartbeat.model.json +0 -3
  1700. package/templates/game/libs/Chrono/_impl/Shared/Remotes/Replicate.model.json +0 -3
  1701. package/templates/game/libs/Chrono/_impl/Shared/Remotes/ReplicateFull.model.json +0 -3
  1702. package/templates/game/libs/Chrono/_impl/Shared/Remotes/SafeReplicate.model.json +0 -3
  1703. package/templates/game/libs/Chrono/_impl/Shared/ReplicationRules.luau +0 -122
  1704. package/templates/game/libs/Chrono/_impl/Shared/Signal.luau +0 -219
  1705. package/templates/game/libs/Chrono/_impl/Shared/Snapshots.luau +0 -218
  1706. package/templates/game/libs/Chrono/_impl/Shared/Stats.luau +0 -204
  1707. package/templates/game/libs/Chrono/_impl/Shared/Ticker.luau +0 -112
  1708. package/templates/game/libs/Chrono/_impl/Shared/Types.luau +0 -247
  1709. package/templates/game/libs/Chrono/_impl/Shared/Warn.luau +0 -33
  1710. package/templates/game/libs/Chrono/_impl/Shared/_CUSTOM_MODEL_REP/init.model.json +0 -3
  1711. package/templates/game/libs/Chrono/_impl/init.luau +0 -96
  1712. package/templates/game/libs/Chrono/init.luau +0 -14
  1713. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/announce.luau +0 -21
  1714. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/announceServer.luau +0 -17
  1715. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/ban.luau +0 -59
  1716. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/banServer.luau +0 -30
  1717. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/gotoPlace.luau +0 -35
  1718. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/gotoPlaceServer.luau +0 -17
  1719. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/kick.luau +0 -19
  1720. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/kickServer.luau +0 -27
  1721. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/kill.luau +0 -13
  1722. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/killServer.luau +0 -13
  1723. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/respawn.luau +0 -15
  1724. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/respawnServer.luau +0 -7
  1725. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/teleport.luau +0 -30
  1726. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/teleportServer.luau +0 -26
  1727. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/unban.luau +0 -26
  1728. package/templates/game/libs/Cmdr/BuiltInCommands/Admin/unbanServer.luau +0 -10
  1729. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/blink.luau +0 -35
  1730. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/fetch.luau +0 -12
  1731. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/fetchServer.luau +0 -7
  1732. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +0 -20
  1733. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +0 -28
  1734. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/position.luau +0 -30
  1735. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/thru.luau +0 -50
  1736. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/uptime.luau +0 -6
  1737. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/uptimeServer.luau +0 -12
  1738. package/templates/game/libs/Cmdr/BuiltInCommands/Debug/version.luau +0 -12
  1739. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/alias.luau +0 -22
  1740. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/bind.luau +0 -104
  1741. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/clear.luau +0 -20
  1742. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/convertTimestamp.luau +0 -18
  1743. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/echo.luau +0 -17
  1744. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/edit.luau +0 -75
  1745. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/exit.luau +0 -11
  1746. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/history.luau +0 -27
  1747. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/hover.luau +0 -21
  1748. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/jsonArrayDecode.luau +0 -25
  1749. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/jsonArrayEncode.luau +0 -18
  1750. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/len.luau +0 -16
  1751. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/math.luau +0 -36
  1752. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/pick.luau +0 -21
  1753. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/rand.luau +0 -27
  1754. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/replace.luau +0 -32
  1755. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/resolve.luau +0 -32
  1756. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/run.luau +0 -20
  1757. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/runLines.luau +0 -34
  1758. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/runif.luau +0 -95
  1759. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/unbind.luau +0 -27
  1760. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/var.luau +0 -29
  1761. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/varServer.luau +0 -37
  1762. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/varSet.luau +0 -30
  1763. package/templates/game/libs/Cmdr/BuiltInCommands/Utility/varSetServer.luau +0 -29
  1764. package/templates/game/libs/Cmdr/BuiltInCommands/help.luau +0 -96
  1765. package/templates/game/libs/Cmdr/BuiltInTypes/BrickColor.luau +0 -258
  1766. package/templates/game/libs/Cmdr/BuiltInTypes/Color3.luau +0 -59
  1767. package/templates/game/libs/Cmdr/BuiltInTypes/Command.luau +0 -23
  1768. package/templates/game/libs/Cmdr/BuiltInTypes/Duration.luau +0 -111
  1769. package/templates/game/libs/Cmdr/BuiltInTypes/JSON.luau +0 -13
  1770. package/templates/game/libs/Cmdr/BuiltInTypes/MathOperator.luau +0 -43
  1771. package/templates/game/libs/Cmdr/BuiltInTypes/Player.luau +0 -36
  1772. package/templates/game/libs/Cmdr/BuiltInTypes/PlayerId.luau +0 -66
  1773. package/templates/game/libs/Cmdr/BuiltInTypes/Primitives.luau +0 -145
  1774. package/templates/game/libs/Cmdr/BuiltInTypes/StoredKey.luau +0 -33
  1775. package/templates/game/libs/Cmdr/BuiltInTypes/Team.luau +0 -49
  1776. package/templates/game/libs/Cmdr/BuiltInTypes/Type.luau +0 -23
  1777. package/templates/game/libs/Cmdr/BuiltInTypes/URL.luau +0 -18
  1778. package/templates/game/libs/Cmdr/BuiltInTypes/UserInput.luau +0 -32
  1779. package/templates/game/libs/Cmdr/BuiltInTypes/Vector.luau +0 -58
  1780. package/templates/game/libs/Cmdr/CmdrClient/CmdrInterface/AutoComplete.luau +0 -240
  1781. package/templates/game/libs/Cmdr/CmdrClient/CmdrInterface/CreateGui.luau +0 -227
  1782. package/templates/game/libs/Cmdr/CmdrClient/CmdrInterface/Window.luau +0 -713
  1783. package/templates/game/libs/Cmdr/CmdrClient/CmdrInterface/init.luau +0 -18
  1784. package/templates/game/libs/Cmdr/CmdrClient/DefaultEventHandlers.luau +0 -18
  1785. package/templates/game/libs/Cmdr/CmdrClient/Shared/Argument.luau +0 -395
  1786. package/templates/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +0 -39
  1787. package/templates/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +0 -36
  1788. package/templates/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +0 -10
  1789. package/templates/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +0 -10
  1790. package/templates/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +0 -10
  1791. package/templates/game/libs/Cmdr/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +0 -8
  1792. package/templates/game/libs/Cmdr/CmdrClient/Shared/Command.luau +0 -415
  1793. package/templates/game/libs/Cmdr/CmdrClient/Shared/Dispatcher.luau +0 -407
  1794. package/templates/game/libs/Cmdr/CmdrClient/Shared/Registry.luau +0 -717
  1795. package/templates/game/libs/Cmdr/CmdrClient/Shared/Util.luau +0 -879
  1796. package/templates/game/libs/Cmdr/CmdrClient/init.luau +0 -377
  1797. package/templates/game/libs/Cmdr/LICENSE +0 -21
  1798. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/announce.luau +0 -21
  1799. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/announceServer.luau +0 -17
  1800. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/ban.luau +0 -59
  1801. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/banServer.luau +0 -30
  1802. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/gotoPlace.luau +0 -35
  1803. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/gotoPlaceServer.luau +0 -17
  1804. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/kick.luau +0 -19
  1805. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/kickServer.luau +0 -27
  1806. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/kill.luau +0 -13
  1807. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/killServer.luau +0 -13
  1808. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/respawn.luau +0 -15
  1809. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/respawnServer.luau +0 -7
  1810. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/teleport.luau +0 -30
  1811. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/teleportServer.luau +0 -26
  1812. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/unban.luau +0 -26
  1813. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Admin/unbanServer.luau +0 -10
  1814. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/blink.luau +0 -35
  1815. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/fetch.luau +0 -12
  1816. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/fetchServer.luau +0 -7
  1817. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +0 -20
  1818. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +0 -28
  1819. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/position.luau +0 -30
  1820. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/thru.luau +0 -50
  1821. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/uptime.luau +0 -6
  1822. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/uptimeServer.luau +0 -12
  1823. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Debug/version.luau +0 -12
  1824. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/alias.luau +0 -22
  1825. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/bind.luau +0 -104
  1826. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/clear.luau +0 -20
  1827. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/convertTimestamp.luau +0 -18
  1828. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/echo.luau +0 -17
  1829. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/edit.luau +0 -75
  1830. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/exit.luau +0 -11
  1831. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/history.luau +0 -27
  1832. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/hover.luau +0 -21
  1833. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayDecode.luau +0 -25
  1834. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayEncode.luau +0 -18
  1835. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/len.luau +0 -16
  1836. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/math.luau +0 -36
  1837. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/pick.luau +0 -21
  1838. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/rand.luau +0 -27
  1839. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/replace.luau +0 -32
  1840. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/resolve.luau +0 -32
  1841. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/run.luau +0 -20
  1842. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/runLines.luau +0 -34
  1843. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/runif.luau +0 -95
  1844. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/unbind.luau +0 -27
  1845. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/var.luau +0 -29
  1846. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/varServer.luau +0 -37
  1847. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/varSet.luau +0 -30
  1848. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/Utility/varSetServer.luau +0 -29
  1849. package/templates/game/libs/Cmdr/_impl/BuiltInCommands/help.luau +0 -96
  1850. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/BrickColor.luau +0 -258
  1851. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Color3.luau +0 -59
  1852. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Command.luau +0 -23
  1853. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Duration.luau +0 -111
  1854. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/JSON.luau +0 -13
  1855. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/MathOperator.luau +0 -43
  1856. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Player.luau +0 -36
  1857. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/PlayerId.luau +0 -66
  1858. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Primitives.luau +0 -145
  1859. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/StoredKey.luau +0 -33
  1860. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Team.luau +0 -49
  1861. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Type.luau +0 -23
  1862. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/URL.luau +0 -18
  1863. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/UserInput.luau +0 -32
  1864. package/templates/game/libs/Cmdr/_impl/BuiltInTypes/Vector.luau +0 -58
  1865. package/templates/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/AutoComplete.luau +0 -240
  1866. package/templates/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/CreateGui.luau +0 -227
  1867. package/templates/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/Window.luau +0 -713
  1868. package/templates/game/libs/Cmdr/_impl/CmdrClient/CmdrInterface/init.luau +0 -18
  1869. package/templates/game/libs/Cmdr/_impl/CmdrClient/DefaultEventHandlers.luau +0 -18
  1870. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/Argument.luau +0 -395
  1871. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +0 -39
  1872. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +0 -36
  1873. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +0 -10
  1874. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +0 -10
  1875. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +0 -10
  1876. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +0 -8
  1877. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/Command.luau +0 -415
  1878. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/Dispatcher.luau +0 -407
  1879. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/Registry.luau +0 -717
  1880. package/templates/game/libs/Cmdr/_impl/CmdrClient/Shared/Util.luau +0 -879
  1881. package/templates/game/libs/Cmdr/_impl/CmdrClient/init.luau +0 -377
  1882. package/templates/game/libs/Cmdr/_impl/LICENSE +0 -21
  1883. package/templates/game/libs/Cmdr/_impl/init.luau +0 -178
  1884. package/templates/game/libs/Cmdr/init.luau +0 -8
  1885. package/templates/game/libs/DataService/Client.luau +0 -209
  1886. package/templates/game/libs/DataService/Data.luau +0 -886
  1887. package/templates/game/libs/DataService/Enum.luau +0 -6
  1888. package/templates/game/libs/DataService/Enums.luau +0 -10
  1889. package/templates/game/libs/DataService/Packages/quicknet/DataTypes.luau +0 -70
  1890. package/templates/game/libs/DataService/Packages/quicknet/Enums.luau +0 -85
  1891. package/templates/game/libs/DataService/Packages/quicknet/EnumsToNativeTypes.luau +0 -57
  1892. package/templates/game/libs/DataService/Packages/quicknet/Parser.luau +0 -355
  1893. package/templates/game/libs/DataService/Packages/quicknet/QuickNet.luau +0 -953
  1894. package/templates/game/libs/DataService/Packages/quicknet/Serialize.luau +0 -2020
  1895. package/templates/game/libs/DataService/Packages/quicknet/Types.luau +0 -72
  1896. package/templates/game/libs/DataService/Packages/quicknet/init.luau +0 -1
  1897. package/templates/game/libs/DataService/Packages/signal/init.luau +0 -433
  1898. package/templates/game/libs/DataService/Path.luau +0 -236
  1899. package/templates/game/libs/DataService/ProfileStore.luau +0 -2243
  1900. package/templates/game/libs/DataService/Replicator.luau +0 -172
  1901. package/templates/game/libs/DataService/Server.luau +0 -412
  1902. package/templates/game/libs/DataService/init.luau +0 -204
  1903. package/templates/game/libs/Display/LICENSE +0 -201
  1904. package/templates/game/libs/Display/_impl/LICENSE +0 -201
  1905. package/templates/game/libs/Display/_impl/init.luau +0 -269
  1906. package/templates/game/libs/Display/_impl/option.luau +0 -237
  1907. package/templates/game/libs/Display/init.luau +0 -10
  1908. package/templates/game/libs/Display/option.luau +0 -237
  1909. package/templates/game/libs/EzVisualz/Dropshadow.luau +0 -148
  1910. package/templates/game/libs/EzVisualz/Gradient.luau +0 -452
  1911. package/templates/game/libs/EzVisualz/GradientTemplates/Bubblegum.luau +0 -16
  1912. package/templates/game/libs/EzVisualz/GradientTemplates/Chrome.luau +0 -16
  1913. package/templates/game/libs/EzVisualz/GradientTemplates/Death.luau +0 -15
  1914. package/templates/game/libs/EzVisualz/GradientTemplates/Electric.luau +0 -14
  1915. package/templates/game/libs/EzVisualz/GradientTemplates/Fire.luau +0 -13
  1916. package/templates/game/libs/EzVisualz/GradientTemplates/Galaxy.luau +0 -11
  1917. package/templates/game/libs/EzVisualz/GradientTemplates/Ghost.luau +0 -16
  1918. package/templates/game/libs/EzVisualz/GradientTemplates/Gold.luau +0 -14
  1919. package/templates/game/libs/EzVisualz/GradientTemplates/Green.luau +0 -14
  1920. package/templates/game/libs/EzVisualz/GradientTemplates/Ice.luau +0 -14
  1921. package/templates/game/libs/EzVisualz/GradientTemplates/Lava.luau +0 -15
  1922. package/templates/game/libs/EzVisualz/GradientTemplates/Matrix.luau +0 -19
  1923. package/templates/game/libs/EzVisualz/GradientTemplates/Neon.luau +0 -12
  1924. package/templates/game/libs/EzVisualz/GradientTemplates/Oceanic.luau +0 -15
  1925. package/templates/game/libs/EzVisualz/GradientTemplates/Rainbow.luau +0 -13
  1926. package/templates/game/libs/EzVisualz/GradientTemplates/Silver.luau +0 -12
  1927. package/templates/game/libs/EzVisualz/GradientTemplates/Sunset.luau +0 -11
  1928. package/templates/game/libs/EzVisualz/GradientTemplates/Zebra.luau +0 -18
  1929. package/templates/game/libs/EzVisualz/GradientTemplates/init.luau +0 -9
  1930. package/templates/game/libs/EzVisualz/LICENSE.md +0 -21
  1931. package/templates/game/libs/EzVisualz/Presets/Bubblegum.luau +0 -36
  1932. package/templates/game/libs/EzVisualz/Presets/ChromeStroke.luau +0 -15
  1933. package/templates/game/libs/EzVisualz/Presets/DeathStroke.luau +0 -15
  1934. package/templates/game/libs/EzVisualz/Presets/ElectricStroke.luau +0 -54
  1935. package/templates/game/libs/EzVisualz/Presets/FireStroke.luau +0 -29
  1936. package/templates/game/libs/EzVisualz/Presets/GalaxyStroke.luau +0 -31
  1937. package/templates/game/libs/EzVisualz/Presets/Ghost.luau +0 -10
  1938. package/templates/game/libs/EzVisualz/Presets/GhostStroke.luau +0 -15
  1939. package/templates/game/libs/EzVisualz/Presets/Gold.luau +0 -10
  1940. package/templates/game/libs/EzVisualz/Presets/GoldStroke.luau +0 -15
  1941. package/templates/game/libs/EzVisualz/Presets/GreenOutline.luau +0 -23
  1942. package/templates/game/libs/EzVisualz/Presets/IceStroke.luau +0 -15
  1943. package/templates/game/libs/EzVisualz/Presets/Lava.luau +0 -9
  1944. package/templates/game/libs/EzVisualz/Presets/LavaStroke.luau +0 -13
  1945. package/templates/game/libs/EzVisualz/Presets/Matrix.luau +0 -21
  1946. package/templates/game/libs/EzVisualz/Presets/NeonStroke.luau +0 -30
  1947. package/templates/game/libs/EzVisualz/Presets/OceanicStroke.luau +0 -15
  1948. package/templates/game/libs/EzVisualz/Presets/Rainbow.luau +0 -9
  1949. package/templates/game/libs/EzVisualz/Presets/RainbowOutline.luau +0 -23
  1950. package/templates/game/libs/EzVisualz/Presets/RainbowStroke.luau +0 -13
  1951. package/templates/game/libs/EzVisualz/Presets/Shine.luau +0 -48
  1952. package/templates/game/libs/EzVisualz/Presets/ShineOutline.luau +0 -66
  1953. package/templates/game/libs/EzVisualz/Presets/Silver.luau +0 -10
  1954. package/templates/game/libs/EzVisualz/Presets/SilverStroke.luau +0 -15
  1955. package/templates/game/libs/EzVisualz/Presets/SunsetStroke.luau +0 -31
  1956. package/templates/game/libs/EzVisualz/Presets/WaveStroke.luau +0 -33
  1957. package/templates/game/libs/EzVisualz/Presets/Zebra.luau +0 -21
  1958. package/templates/game/libs/EzVisualz/Presets/init.luau +0 -9
  1959. package/templates/game/libs/EzVisualz/Stroke.luau +0 -167
  1960. package/templates/game/libs/EzVisualz/Util.luau +0 -7
  1961. package/templates/game/libs/EzVisualz/_impl/Dropshadow.luau +0 -148
  1962. package/templates/game/libs/EzVisualz/_impl/Gradient.luau +0 -452
  1963. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Bubblegum.luau +0 -16
  1964. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Chrome.luau +0 -16
  1965. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Death.luau +0 -15
  1966. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Electric.luau +0 -14
  1967. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Fire.luau +0 -13
  1968. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Galaxy.luau +0 -11
  1969. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Ghost.luau +0 -16
  1970. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Gold.luau +0 -14
  1971. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Green.luau +0 -14
  1972. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Ice.luau +0 -14
  1973. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Lava.luau +0 -15
  1974. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Matrix.luau +0 -19
  1975. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Neon.luau +0 -12
  1976. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Oceanic.luau +0 -15
  1977. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Rainbow.luau +0 -13
  1978. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Silver.luau +0 -12
  1979. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Sunset.luau +0 -11
  1980. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/Zebra.luau +0 -18
  1981. package/templates/game/libs/EzVisualz/_impl/GradientTemplates/init.luau +0 -9
  1982. package/templates/game/libs/EzVisualz/_impl/LICENSE.md +0 -21
  1983. package/templates/game/libs/EzVisualz/_impl/Presets/Bubblegum.luau +0 -36
  1984. package/templates/game/libs/EzVisualz/_impl/Presets/ChromeStroke.luau +0 -15
  1985. package/templates/game/libs/EzVisualz/_impl/Presets/DeathStroke.luau +0 -15
  1986. package/templates/game/libs/EzVisualz/_impl/Presets/ElectricStroke.luau +0 -54
  1987. package/templates/game/libs/EzVisualz/_impl/Presets/FireStroke.luau +0 -29
  1988. package/templates/game/libs/EzVisualz/_impl/Presets/GalaxyStroke.luau +0 -31
  1989. package/templates/game/libs/EzVisualz/_impl/Presets/Ghost.luau +0 -10
  1990. package/templates/game/libs/EzVisualz/_impl/Presets/GhostStroke.luau +0 -15
  1991. package/templates/game/libs/EzVisualz/_impl/Presets/Gold.luau +0 -10
  1992. package/templates/game/libs/EzVisualz/_impl/Presets/GoldStroke.luau +0 -15
  1993. package/templates/game/libs/EzVisualz/_impl/Presets/GreenOutline.luau +0 -23
  1994. package/templates/game/libs/EzVisualz/_impl/Presets/IceStroke.luau +0 -15
  1995. package/templates/game/libs/EzVisualz/_impl/Presets/Lava.luau +0 -9
  1996. package/templates/game/libs/EzVisualz/_impl/Presets/LavaStroke.luau +0 -13
  1997. package/templates/game/libs/EzVisualz/_impl/Presets/Matrix.luau +0 -21
  1998. package/templates/game/libs/EzVisualz/_impl/Presets/NeonStroke.luau +0 -30
  1999. package/templates/game/libs/EzVisualz/_impl/Presets/OceanicStroke.luau +0 -15
  2000. package/templates/game/libs/EzVisualz/_impl/Presets/Rainbow.luau +0 -9
  2001. package/templates/game/libs/EzVisualz/_impl/Presets/RainbowOutline.luau +0 -23
  2002. package/templates/game/libs/EzVisualz/_impl/Presets/RainbowStroke.luau +0 -13
  2003. package/templates/game/libs/EzVisualz/_impl/Presets/Shine.luau +0 -48
  2004. package/templates/game/libs/EzVisualz/_impl/Presets/ShineOutline.luau +0 -66
  2005. package/templates/game/libs/EzVisualz/_impl/Presets/Silver.luau +0 -10
  2006. package/templates/game/libs/EzVisualz/_impl/Presets/SilverStroke.luau +0 -15
  2007. package/templates/game/libs/EzVisualz/_impl/Presets/SunsetStroke.luau +0 -31
  2008. package/templates/game/libs/EzVisualz/_impl/Presets/WaveStroke.luau +0 -33
  2009. package/templates/game/libs/EzVisualz/_impl/Presets/Zebra.luau +0 -21
  2010. package/templates/game/libs/EzVisualz/_impl/Presets/init.luau +0 -9
  2011. package/templates/game/libs/EzVisualz/_impl/Stroke.luau +0 -167
  2012. package/templates/game/libs/EzVisualz/_impl/Util.luau +0 -7
  2013. package/templates/game/libs/EzVisualz/_impl/init.luau +0 -319
  2014. package/templates/game/libs/EzVisualz/_impl/wally.lock +0 -8
  2015. package/templates/game/libs/EzVisualz/_impl/wally.toml +0 -8
  2016. package/templates/game/libs/EzVisualz/init.luau +0 -9
  2017. package/templates/game/libs/EzVisualz/wally.lock +0 -8
  2018. package/templates/game/libs/EzVisualz/wally.toml +0 -8
  2019. package/templates/game/libs/FormatNumber/LICENSE.md +0 -25
  2020. package/templates/game/libs/FormatNumber/Main/DecimalFormatSymbols.lua +0 -43
  2021. package/templates/game/libs/FormatNumber/Main/IntegerWidth.lua +0 -41
  2022. package/templates/game/libs/FormatNumber/Main/Notation.lua +0 -116
  2023. package/templates/game/libs/FormatNumber/Main/Precision.lua +0 -179
  2024. package/templates/game/libs/FormatNumber/Main/init.lua +0 -199
  2025. package/templates/game/libs/FormatNumber/Simple/init.lua +0 -76
  2026. package/templates/game/libs/FormatNumber/Version.lua +0 -82
  2027. package/templates/game/libs/FormatNumber/_impl/LICENSE.md +0 -25
  2028. package/templates/game/libs/FormatNumber/_impl/Main/DecimalFormatSymbols.lua +0 -43
  2029. package/templates/game/libs/FormatNumber/_impl/Main/IntegerWidth.lua +0 -41
  2030. package/templates/game/libs/FormatNumber/_impl/Main/Notation.lua +0 -116
  2031. package/templates/game/libs/FormatNumber/_impl/Main/Precision.lua +0 -179
  2032. package/templates/game/libs/FormatNumber/_impl/Main/init.lua +0 -199
  2033. package/templates/game/libs/FormatNumber/_impl/Simple/init.lua +0 -76
  2034. package/templates/game/libs/FormatNumber/_impl/Version.lua +0 -82
  2035. package/templates/game/libs/FormatNumber/_impl/_internal/class.lua +0 -204
  2036. package/templates/game/libs/FormatNumber/_impl/_internal/decimal_conversion.lua +0 -30
  2037. package/templates/game/libs/FormatNumber/_impl/_internal/enums.lua +0 -55
  2038. package/templates/game/libs/FormatNumber/_impl/_internal/format.lua +0 -342
  2039. package/templates/game/libs/FormatNumber/_impl/_internal/formatter_settings.lua +0 -160
  2040. package/templates/game/libs/FormatNumber/_impl/_internal/init.lua +0 -8
  2041. package/templates/game/libs/FormatNumber/_impl/_internal/skeleton.lua +0 -541
  2042. package/templates/game/libs/FormatNumber/_impl/init.lua +0 -20
  2043. package/templates/game/libs/FormatNumber/_internal/class.lua +0 -204
  2044. package/templates/game/libs/FormatNumber/_internal/decimal_conversion.lua +0 -30
  2045. package/templates/game/libs/FormatNumber/_internal/enums.lua +0 -55
  2046. package/templates/game/libs/FormatNumber/_internal/format.lua +0 -342
  2047. package/templates/game/libs/FormatNumber/_internal/formatter_settings.lua +0 -160
  2048. package/templates/game/libs/FormatNumber/_internal/init.lua +0 -8
  2049. package/templates/game/libs/FormatNumber/_internal/skeleton.lua +0 -541
  2050. package/templates/game/libs/FormatNumber/init.lua +0 -20
  2051. package/templates/game/libs/FormatNumber/init.luau +0 -20
  2052. package/templates/game/libs/Fusion/Animation/ExternalTime.luau +0 -84
  2053. package/templates/game/libs/Fusion/Animation/Spring.luau +0 -313
  2054. package/templates/game/libs/Fusion/Animation/Stopwatch.luau +0 -128
  2055. package/templates/game/libs/Fusion/Animation/Tween.luau +0 -178
  2056. package/templates/game/libs/Fusion/Animation/getTweenDuration.luau +0 -27
  2057. package/templates/game/libs/Fusion/Animation/getTweenRatio.luau +0 -47
  2058. package/templates/game/libs/Fusion/Animation/lerpType.luau +0 -164
  2059. package/templates/game/libs/Fusion/Animation/packType.luau +0 -100
  2060. package/templates/game/libs/Fusion/Animation/springCoefficients.luau +0 -80
  2061. package/templates/game/libs/Fusion/Animation/unpackType.luau +0 -103
  2062. package/templates/game/libs/Fusion/Colour/Oklab.luau +0 -70
  2063. package/templates/game/libs/Fusion/Colour/sRGB.luau +0 -47
  2064. package/templates/game/libs/Fusion/External.luau +0 -156
  2065. package/templates/game/libs/Fusion/ExternalDebug.luau +0 -70
  2066. package/templates/game/libs/Fusion/Graph/Observer.luau +0 -111
  2067. package/templates/game/libs/Fusion/Graph/castToGraph.luau +0 -29
  2068. package/templates/game/libs/Fusion/Graph/change.luau +0 -81
  2069. package/templates/game/libs/Fusion/Graph/depend.luau +0 -33
  2070. package/templates/game/libs/Fusion/Graph/evaluate.luau +0 -56
  2071. package/templates/game/libs/Fusion/Instances/Attribute.luau +0 -58
  2072. package/templates/game/libs/Fusion/Instances/AttributeChange.luau +0 -47
  2073. package/templates/game/libs/Fusion/Instances/AttributeOut.luau +0 -63
  2074. package/templates/game/libs/Fusion/Instances/Child.luau +0 -21
  2075. package/templates/game/libs/Fusion/Instances/Children.luau +0 -148
  2076. package/templates/game/libs/Fusion/Instances/Hydrate.luau +0 -29
  2077. package/templates/game/libs/Fusion/Instances/New.luau +0 -48
  2078. package/templates/game/libs/Fusion/Instances/OnChange.luau +0 -50
  2079. package/templates/game/libs/Fusion/Instances/OnEvent.luau +0 -54
  2080. package/templates/game/libs/Fusion/Instances/Out.luau +0 -69
  2081. package/templates/game/libs/Fusion/Instances/Tag.luau +0 -61
  2082. package/templates/game/libs/Fusion/Instances/applyInstanceProps.luau +0 -149
  2083. package/templates/game/libs/Fusion/Instances/defaultProps.luau +0 -194
  2084. package/templates/game/libs/Fusion/LICENSE +0 -21
  2085. package/templates/game/libs/Fusion/Logging/formatError.luau +0 -49
  2086. package/templates/game/libs/Fusion/Logging/messages.luau +0 -46
  2087. package/templates/game/libs/Fusion/Logging/parseError.luau +0 -25
  2088. package/templates/game/libs/Fusion/Memory/checkLifetime.luau +0 -134
  2089. package/templates/game/libs/Fusion/Memory/deriveScope.luau +0 -24
  2090. package/templates/game/libs/Fusion/Memory/deriveScopeImpl.luau +0 -40
  2091. package/templates/game/libs/Fusion/Memory/doCleanup.luau +0 -91
  2092. package/templates/game/libs/Fusion/Memory/innerScope.luau +0 -34
  2093. package/templates/game/libs/Fusion/Memory/insert.luau +0 -22
  2094. package/templates/game/libs/Fusion/Memory/needsDestruction.luau +0 -17
  2095. package/templates/game/libs/Fusion/Memory/scoped.luau +0 -24
  2096. package/templates/game/libs/Fusion/RobloxExternal.luau +0 -98
  2097. package/templates/game/libs/Fusion/State/Computed.luau +0 -122
  2098. package/templates/game/libs/Fusion/State/For/Disassembly.luau +0 -207
  2099. package/templates/game/libs/Fusion/State/For/ForTypes.luau +0 -30
  2100. package/templates/game/libs/Fusion/State/For/init.luau +0 -101
  2101. package/templates/game/libs/Fusion/State/ForKeys.luau +0 -88
  2102. package/templates/game/libs/Fusion/State/ForPairs.luau +0 -91
  2103. package/templates/game/libs/Fusion/State/ForValues.luau +0 -88
  2104. package/templates/game/libs/Fusion/State/Value.luau +0 -76
  2105. package/templates/game/libs/Fusion/State/castToState.luau +0 -26
  2106. package/templates/game/libs/Fusion/State/peek.luau +0 -31
  2107. package/templates/game/libs/Fusion/State/updateAll.luau +0 -1
  2108. package/templates/game/libs/Fusion/Types.luau +0 -318
  2109. package/templates/game/libs/Fusion/Utility/Contextual.luau +0 -91
  2110. package/templates/game/libs/Fusion/Utility/Safe.luau +0 -23
  2111. package/templates/game/libs/Fusion/Utility/isSimilar.luau +0 -29
  2112. package/templates/game/libs/Fusion/Utility/merge.luau +0 -35
  2113. package/templates/game/libs/Fusion/Utility/nameOf.luau +0 -35
  2114. package/templates/game/libs/Fusion/Utility/never.luau +0 -14
  2115. package/templates/game/libs/Fusion/Utility/nicknames.luau +0 -11
  2116. package/templates/game/libs/Fusion/Utility/xtypeof.luau +0 -27
  2117. package/templates/game/libs/Fusion/_impl/Animation/ExternalTime.luau +0 -84
  2118. package/templates/game/libs/Fusion/_impl/Animation/Spring.luau +0 -313
  2119. package/templates/game/libs/Fusion/_impl/Animation/Stopwatch.luau +0 -128
  2120. package/templates/game/libs/Fusion/_impl/Animation/Tween.luau +0 -178
  2121. package/templates/game/libs/Fusion/_impl/Animation/getTweenDuration.luau +0 -27
  2122. package/templates/game/libs/Fusion/_impl/Animation/getTweenRatio.luau +0 -47
  2123. package/templates/game/libs/Fusion/_impl/Animation/lerpType.luau +0 -164
  2124. package/templates/game/libs/Fusion/_impl/Animation/packType.luau +0 -100
  2125. package/templates/game/libs/Fusion/_impl/Animation/springCoefficients.luau +0 -80
  2126. package/templates/game/libs/Fusion/_impl/Animation/unpackType.luau +0 -103
  2127. package/templates/game/libs/Fusion/_impl/Colour/Oklab.luau +0 -70
  2128. package/templates/game/libs/Fusion/_impl/Colour/sRGB.luau +0 -47
  2129. package/templates/game/libs/Fusion/_impl/External.luau +0 -156
  2130. package/templates/game/libs/Fusion/_impl/ExternalDebug.luau +0 -70
  2131. package/templates/game/libs/Fusion/_impl/Graph/Observer.luau +0 -111
  2132. package/templates/game/libs/Fusion/_impl/Graph/castToGraph.luau +0 -29
  2133. package/templates/game/libs/Fusion/_impl/Graph/change.luau +0 -81
  2134. package/templates/game/libs/Fusion/_impl/Graph/depend.luau +0 -33
  2135. package/templates/game/libs/Fusion/_impl/Graph/evaluate.luau +0 -56
  2136. package/templates/game/libs/Fusion/_impl/Instances/Attribute.luau +0 -58
  2137. package/templates/game/libs/Fusion/_impl/Instances/AttributeChange.luau +0 -47
  2138. package/templates/game/libs/Fusion/_impl/Instances/AttributeOut.luau +0 -63
  2139. package/templates/game/libs/Fusion/_impl/Instances/Child.luau +0 -21
  2140. package/templates/game/libs/Fusion/_impl/Instances/Children.luau +0 -148
  2141. package/templates/game/libs/Fusion/_impl/Instances/Hydrate.luau +0 -29
  2142. package/templates/game/libs/Fusion/_impl/Instances/New.luau +0 -48
  2143. package/templates/game/libs/Fusion/_impl/Instances/OnChange.luau +0 -50
  2144. package/templates/game/libs/Fusion/_impl/Instances/OnEvent.luau +0 -54
  2145. package/templates/game/libs/Fusion/_impl/Instances/Out.luau +0 -69
  2146. package/templates/game/libs/Fusion/_impl/Instances/Tag.luau +0 -61
  2147. package/templates/game/libs/Fusion/_impl/Instances/applyInstanceProps.luau +0 -149
  2148. package/templates/game/libs/Fusion/_impl/Instances/defaultProps.luau +0 -194
  2149. package/templates/game/libs/Fusion/_impl/LICENSE +0 -21
  2150. package/templates/game/libs/Fusion/_impl/Logging/formatError.luau +0 -49
  2151. package/templates/game/libs/Fusion/_impl/Logging/messages.luau +0 -46
  2152. package/templates/game/libs/Fusion/_impl/Logging/parseError.luau +0 -25
  2153. package/templates/game/libs/Fusion/_impl/Memory/checkLifetime.luau +0 -134
  2154. package/templates/game/libs/Fusion/_impl/Memory/deriveScope.luau +0 -24
  2155. package/templates/game/libs/Fusion/_impl/Memory/deriveScopeImpl.luau +0 -40
  2156. package/templates/game/libs/Fusion/_impl/Memory/doCleanup.luau +0 -91
  2157. package/templates/game/libs/Fusion/_impl/Memory/innerScope.luau +0 -34
  2158. package/templates/game/libs/Fusion/_impl/Memory/insert.luau +0 -22
  2159. package/templates/game/libs/Fusion/_impl/Memory/needsDestruction.luau +0 -17
  2160. package/templates/game/libs/Fusion/_impl/Memory/scoped.luau +0 -24
  2161. package/templates/game/libs/Fusion/_impl/RobloxExternal.luau +0 -98
  2162. package/templates/game/libs/Fusion/_impl/State/Computed.luau +0 -122
  2163. package/templates/game/libs/Fusion/_impl/State/For/Disassembly.luau +0 -207
  2164. package/templates/game/libs/Fusion/_impl/State/For/ForTypes.luau +0 -30
  2165. package/templates/game/libs/Fusion/_impl/State/For/init.luau +0 -101
  2166. package/templates/game/libs/Fusion/_impl/State/ForKeys.luau +0 -88
  2167. package/templates/game/libs/Fusion/_impl/State/ForPairs.luau +0 -91
  2168. package/templates/game/libs/Fusion/_impl/State/ForValues.luau +0 -88
  2169. package/templates/game/libs/Fusion/_impl/State/Value.luau +0 -76
  2170. package/templates/game/libs/Fusion/_impl/State/castToState.luau +0 -26
  2171. package/templates/game/libs/Fusion/_impl/State/peek.luau +0 -31
  2172. package/templates/game/libs/Fusion/_impl/State/updateAll.luau +0 -1
  2173. package/templates/game/libs/Fusion/_impl/Types.luau +0 -318
  2174. package/templates/game/libs/Fusion/_impl/Utility/Contextual.luau +0 -91
  2175. package/templates/game/libs/Fusion/_impl/Utility/Safe.luau +0 -23
  2176. package/templates/game/libs/Fusion/_impl/Utility/isSimilar.luau +0 -29
  2177. package/templates/game/libs/Fusion/_impl/Utility/merge.luau +0 -35
  2178. package/templates/game/libs/Fusion/_impl/Utility/nameOf.luau +0 -35
  2179. package/templates/game/libs/Fusion/_impl/Utility/never.luau +0 -14
  2180. package/templates/game/libs/Fusion/_impl/Utility/nicknames.luau +0 -11
  2181. package/templates/game/libs/Fusion/_impl/Utility/xtypeof.luau +0 -27
  2182. package/templates/game/libs/Fusion/_impl/init.luau +0 -83
  2183. package/templates/game/libs/Fusion/init.luau +0 -27
  2184. package/templates/game/libs/Iris/API.lua +0 -2085
  2185. package/templates/game/libs/Iris/Internal.lua +0 -895
  2186. package/templates/game/libs/Iris/LICENSE.txt +0 -21
  2187. package/templates/game/libs/Iris/PubTypes.lua +0 -43
  2188. package/templates/game/libs/Iris/Types.lua +0 -660
  2189. package/templates/game/libs/Iris/WidgetTypes.lua +0 -521
  2190. package/templates/game/libs/Iris/_impl/API.lua +0 -2085
  2191. package/templates/game/libs/Iris/_impl/Internal.lua +0 -895
  2192. package/templates/game/libs/Iris/_impl/LICENSE.txt +0 -21
  2193. package/templates/game/libs/Iris/_impl/PubTypes.lua +0 -43
  2194. package/templates/game/libs/Iris/_impl/Types.lua +0 -660
  2195. package/templates/game/libs/Iris/_impl/WidgetTypes.lua +0 -521
  2196. package/templates/game/libs/Iris/_impl/config.lua +0 -305
  2197. package/templates/game/libs/Iris/_impl/init.lua +0 -696
  2198. package/templates/game/libs/Iris/_impl/widgets/Button.lua +0 -90
  2199. package/templates/game/libs/Iris/_impl/widgets/Checkbox.lua +0 -115
  2200. package/templates/game/libs/Iris/_impl/widgets/Combo.lua +0 -492
  2201. package/templates/game/libs/Iris/_impl/widgets/Format.lua +0 -140
  2202. package/templates/game/libs/Iris/_impl/widgets/Image.lua +0 -155
  2203. package/templates/game/libs/Iris/_impl/widgets/Input.lua +0 -1232
  2204. package/templates/game/libs/Iris/_impl/widgets/Menu.lua +0 -599
  2205. package/templates/game/libs/Iris/_impl/widgets/Plot.lua +0 -639
  2206. package/templates/game/libs/Iris/_impl/widgets/RadioButton.lua +0 -126
  2207. package/templates/game/libs/Iris/_impl/widgets/Root.lua +0 -143
  2208. package/templates/game/libs/Iris/_impl/widgets/Tab.lua +0 -333
  2209. package/templates/game/libs/Iris/_impl/widgets/Table.lua +0 -635
  2210. package/templates/game/libs/Iris/_impl/widgets/Text.lua +0 -132
  2211. package/templates/game/libs/Iris/_impl/widgets/Tree.lua +0 -287
  2212. package/templates/game/libs/Iris/_impl/widgets/Window.lua +0 -1075
  2213. package/templates/game/libs/Iris/_impl/widgets/init.lua +0 -447
  2214. package/templates/game/libs/Iris/config.lua +0 -305
  2215. package/templates/game/libs/Iris/init.lua +0 -696
  2216. package/templates/game/libs/Iris/init.luau +0 -12
  2217. package/templates/game/libs/Iris/widgets/Button.lua +0 -90
  2218. package/templates/game/libs/Iris/widgets/Checkbox.lua +0 -115
  2219. package/templates/game/libs/Iris/widgets/Combo.lua +0 -492
  2220. package/templates/game/libs/Iris/widgets/Format.lua +0 -140
  2221. package/templates/game/libs/Iris/widgets/Image.lua +0 -155
  2222. package/templates/game/libs/Iris/widgets/Input.lua +0 -1232
  2223. package/templates/game/libs/Iris/widgets/Menu.lua +0 -599
  2224. package/templates/game/libs/Iris/widgets/Plot.lua +0 -639
  2225. package/templates/game/libs/Iris/widgets/RadioButton.lua +0 -126
  2226. package/templates/game/libs/Iris/widgets/Root.lua +0 -143
  2227. package/templates/game/libs/Iris/widgets/Tab.lua +0 -333
  2228. package/templates/game/libs/Iris/widgets/Table.lua +0 -635
  2229. package/templates/game/libs/Iris/widgets/Text.lua +0 -132
  2230. package/templates/game/libs/Iris/widgets/Tree.lua +0 -287
  2231. package/templates/game/libs/Iris/widgets/Window.lua +0 -1075
  2232. package/templates/game/libs/Iris/widgets/init.lua +0 -447
  2233. package/templates/game/libs/Janitor/FastDefer.luau +0 -33
  2234. package/templates/game/libs/Janitor/LICENSE +0 -21
  2235. package/templates/game/libs/Janitor/_impl/FastDefer.luau +0 -33
  2236. package/templates/game/libs/Janitor/_impl/LICENSE +0 -21
  2237. package/templates/game/libs/Janitor/_impl/init.luau +0 -999
  2238. package/templates/game/libs/Janitor/init.luau +0 -15
  2239. package/templates/game/libs/MathUtils/init.luau +0 -100
  2240. package/templates/game/libs/Module3D/LICENSE +0 -21
  2241. package/templates/game/libs/Module3D/_impl/LICENSE +0 -21
  2242. package/templates/game/libs/Module3D/_impl/init.luau +0 -269
  2243. package/templates/game/libs/Module3D/init.luau +0 -14
  2244. package/templates/game/libs/Net/init.luau +0 -125
  2245. package/templates/game/libs/Net/src/codec.luau +0 -153
  2246. package/templates/game/libs/Occlude/init.luau +0 -54
  2247. package/templates/game/libs/Promise/LICENSE +0 -21
  2248. package/templates/game/libs/Promise/_impl/LICENSE +0 -21
  2249. package/templates/game/libs/Promise/_impl/init.lua +0 -1991
  2250. package/templates/game/libs/Promise/init.lua +0 -1990
  2251. package/templates/game/libs/Promise/init.luau +0 -13
  2252. package/templates/game/libs/Promise/types.luau +0 -46
  2253. package/templates/game/libs/SOURCES.md +0 -22
  2254. package/templates/game/libs/Spring/LICENSE +0 -201
  2255. package/templates/game/libs/Spring/_impl/LICENSE +0 -201
  2256. package/templates/game/libs/Spring/_impl/init.luau +0 -111
  2257. package/templates/game/libs/Spring/init.luau +0 -24
  2258. package/templates/game/libs/StateMachine/Classes/State.lua +0 -375
  2259. package/templates/game/libs/StateMachine/Classes/Transition.lua +0 -336
  2260. package/templates/game/libs/StateMachine/Functions/deepCopy.lua +0 -19
  2261. package/templates/game/libs/StateMachine/Functions/mergeTables.lua +0 -22
  2262. package/templates/game/libs/StateMachine/LICENSE +0 -19
  2263. package/templates/game/libs/StateMachine/Vendor/Signal.lua +0 -386
  2264. package/templates/game/libs/StateMachine/Vendor/Trove.lua +0 -188
  2265. package/templates/game/libs/StateMachine/_impl/Classes/State.lua +0 -375
  2266. package/templates/game/libs/StateMachine/_impl/Classes/Transition.lua +0 -336
  2267. package/templates/game/libs/StateMachine/_impl/Functions/deepCopy.lua +0 -19
  2268. package/templates/game/libs/StateMachine/_impl/Functions/mergeTables.lua +0 -22
  2269. package/templates/game/libs/StateMachine/_impl/LICENSE +0 -19
  2270. package/templates/game/libs/StateMachine/_impl/Vendor/Signal.lua +0 -386
  2271. package/templates/game/libs/StateMachine/_impl/Vendor/Trove.lua +0 -188
  2272. package/templates/game/libs/StateMachine/_impl/init.lua +0 -595
  2273. package/templates/game/libs/StateMachine/init.lua +0 -595
  2274. package/templates/game/libs/StateMachine/init.luau +0 -10
  2275. package/templates/game/libs/StickyBillboard/init.luau +0 -167
  2276. package/templates/game/libs/TopbarPlus/Attribute.lua +0 -35
  2277. package/templates/game/libs/TopbarPlus/Elements/Caption.lua +0 -316
  2278. package/templates/game/libs/TopbarPlus/Elements/Container.lua +0 -215
  2279. package/templates/game/libs/TopbarPlus/Elements/Dropdown.lua +0 -315
  2280. package/templates/game/libs/TopbarPlus/Elements/Indicator.lua +0 -91
  2281. package/templates/game/libs/TopbarPlus/Elements/Menu.lua +0 -180
  2282. package/templates/game/libs/TopbarPlus/Elements/Notice.lua +0 -113
  2283. package/templates/game/libs/TopbarPlus/Elements/Selection.lua +0 -49
  2284. package/templates/game/libs/TopbarPlus/Elements/Widget.lua +0 -437
  2285. package/templates/game/libs/TopbarPlus/Features/Gamepad.lua +0 -201
  2286. package/templates/game/libs/TopbarPlus/Features/Overflow.lua +0 -360
  2287. package/templates/game/libs/TopbarPlus/Features/Themes/Classic.lua +0 -27
  2288. package/templates/game/libs/TopbarPlus/Features/Themes/Default.lua +0 -75
  2289. package/templates/game/libs/TopbarPlus/Features/Themes/init.lua +0 -353
  2290. package/templates/game/libs/TopbarPlus/LICENSE +0 -381
  2291. package/templates/game/libs/TopbarPlus/Packages/GoodSignal.lua +0 -182
  2292. package/templates/game/libs/TopbarPlus/Packages/Janitor.lua +0 -322
  2293. package/templates/game/libs/TopbarPlus/Reference.lua +0 -30
  2294. package/templates/game/libs/TopbarPlus/Types.lua +0 -477
  2295. package/templates/game/libs/TopbarPlus/Utility.lua +0 -462
  2296. package/templates/game/libs/TopbarPlus/VERSION.lua +0 -51
  2297. package/templates/game/libs/TopbarPlus/_impl/Attribute.lua +0 -35
  2298. package/templates/game/libs/TopbarPlus/_impl/Elements/Caption.lua +0 -316
  2299. package/templates/game/libs/TopbarPlus/_impl/Elements/Container.lua +0 -215
  2300. package/templates/game/libs/TopbarPlus/_impl/Elements/Dropdown.lua +0 -315
  2301. package/templates/game/libs/TopbarPlus/_impl/Elements/Indicator.lua +0 -91
  2302. package/templates/game/libs/TopbarPlus/_impl/Elements/Menu.lua +0 -180
  2303. package/templates/game/libs/TopbarPlus/_impl/Elements/Notice.lua +0 -113
  2304. package/templates/game/libs/TopbarPlus/_impl/Elements/Selection.lua +0 -49
  2305. package/templates/game/libs/TopbarPlus/_impl/Elements/Widget.lua +0 -437
  2306. package/templates/game/libs/TopbarPlus/_impl/Features/Gamepad.lua +0 -201
  2307. package/templates/game/libs/TopbarPlus/_impl/Features/Overflow.lua +0 -360
  2308. package/templates/game/libs/TopbarPlus/_impl/Features/Themes/Classic.lua +0 -27
  2309. package/templates/game/libs/TopbarPlus/_impl/Features/Themes/Default.lua +0 -75
  2310. package/templates/game/libs/TopbarPlus/_impl/Features/Themes/init.lua +0 -353
  2311. package/templates/game/libs/TopbarPlus/_impl/LICENSE +0 -381
  2312. package/templates/game/libs/TopbarPlus/_impl/Packages/GoodSignal.lua +0 -182
  2313. package/templates/game/libs/TopbarPlus/_impl/Packages/Janitor.lua +0 -322
  2314. package/templates/game/libs/TopbarPlus/_impl/Reference.lua +0 -30
  2315. package/templates/game/libs/TopbarPlus/_impl/Types.lua +0 -477
  2316. package/templates/game/libs/TopbarPlus/_impl/Utility.lua +0 -462
  2317. package/templates/game/libs/TopbarPlus/_impl/VERSION.lua +0 -51
  2318. package/templates/game/libs/TopbarPlus/_impl/init.lua +0 -1249
  2319. package/templates/game/libs/TopbarPlus/init.lua +0 -1249
  2320. package/templates/game/libs/TopbarPlus/init.luau +0 -8
  2321. package/templates/game/libs/Twinkle/init.luau +0 -157
  2322. package/templates/game/libs/VfxUtil/init.luau +0 -164
  2323. package/templates/game/src/client/init.client.clpp +0 -6
  2324. package/templates/game/src/server/leaderstats.server.clpp +0 -29
  2325. package/templates/game/src/shared/config.clp +0 -6
  2326. /package/{examples/game/libs/DataService → runtime/Keep}/Enum.luau +0 -0
  2327. /package/{examples/game/libs/DataService → runtime/Keep}/Enums.luau +0 -0
  2328. /package/{examples/game/libs/DataService → runtime/Keep}/Path.luau +0 -0
@@ -1,2243 +0,0 @@
1
- --[[
2
- MAD STUDIO (by loleris)
3
-
4
- -[ProfileStore]---------------------------------------
5
-
6
- Periodic DataStore saving solution with session locking
7
-
8
- WARNINGS FOR "Profile.Data" VALUES:
9
- ! Do not create numeric tables with gaps - attempting to store such tables will result in an error.
10
- ! Do not create mixed tables (some values indexed by number and others by a string key)
11
- - only numerically indexed data will be stored.
12
- ! Do not index tables by anything other than numbers and strings.
13
- ! Do not reference Roblox Instances
14
- ! Do not reference userdata (Vector3, Color3, CFrame...) - Serialize userdata before referencing
15
- ! Do not reference functions
16
-
17
- Members:
18
-
19
- ProfileStore.IsClosing [bool]
20
- -- Set to true after a game:BindToClose() trigger
21
-
22
- ProfileStore.IsCriticalState [bool]
23
- -- Set to true when ProfileStore experiences too many consecutive errors
24
-
25
- ProfileStore.OnError [Signal] (message, store_name, profile_key)
26
- -- Most ProfileStore errors will be caught and passed to this signal
27
-
28
- ProfileStore.OnOverwrite [Signal] (store_name, profile_key)
29
- -- Triggered when a DataStore key was likely used to store data that wasn't
30
- a ProfileStore profile or the ProfileStore structure was invalidly manually
31
- altered for that DataStore key
32
-
33
- ProfileStore.OnCriticalToggle [Signal] (is_critical)
34
- -- Triggered when ProfileStore experiences too many consecutive errors
35
-
36
- ProfileStore.DataStoreState [string] ("NotReady", "NoInternet", "NoAccess", "Access")
37
- -- This value resembles ProfileStore's access to the DataStore; The value starts
38
- as "NotReady" and will eventually change to one of the other 3 possible values.
39
-
40
- Functions:
41
-
42
- ProfileStore.New(store_name, template?) --> [ProfileStore]
43
- store_name [string] -- DataStore name
44
- template [table] or nil -- Profiles will default to given table (hard-copy) when no data was saved previously
45
-
46
- ProfileStore.SetConstant(name, value)
47
- name [string]
48
- value [number]
49
-
50
- Members [ProfileStore]:
51
-
52
- ProfileStore.Mock [ProfileStore]
53
- -- Reflection of ProfileStore methods, but the methods will now query a mock
54
- DataStore with no relation to the real DataStore
55
-
56
- ProfileStore.Name [string]
57
-
58
- Methods [ProfileStore]:
59
-
60
- ProfileStore:StartSessionAsync(profile_key, params?) --> [Profile] or nil
61
- profile_key [string] -- DataStore key
62
- params nil or [table]: -- Custom params; E.g. {Steal = true}
63
- {
64
- Steal = true, -- Pass this to disregard an existing session lock
65
- Cancel = fn() -> (boolean), -- Pass this to create a request cancel condition.
66
- -- If the cancel function returns true, ProfileStore will stop trying to
67
- -- start the session and return nil
68
- }
69
-
70
- ProfileStore:MessageAsync(profile_key, message) --> is_success [bool]
71
- profile_key [string] -- DataStore key
72
- message [table] -- Data to be messaged to the profile
73
-
74
- ProfileStore:GetAsync(profile_key, version?) --> [Profile] or nil
75
- -- Reads a profile without starting a session - will not autosave
76
- profile_key [string] -- DataStore key
77
- version nil or [string] -- DataStore key version
78
-
79
- ProfileStore:VersionQuery(profile_key, sort_direction?, min_date?, max_date?) --> [VersionQuery]
80
- profile_key [string]
81
- sort_direction nil or [Enum.SortDirection]
82
- min_date nil or [DateTime]
83
- max_date nil or [DateTime]
84
-
85
- ProfileStore:RemoveAsync(profile_key) --> is_success [bool]
86
- -- Completely removes profile data from the DataStore / mock DataStore with no way to recover it.
87
-
88
- Methods [VersionQuery]:
89
-
90
- VersionQuery:NextAsync() --> [Profile] or nil -- (Yields)
91
- -- Returned profile is similar to profiles returned by ProfileStore:GetAsync()
92
-
93
- Members [Profile]:
94
-
95
- Profile.Data [table]
96
- -- When the profile is active changes to this table are guaranteed to be saved
97
- Profile.LastSavedData [table] (Read-only)
98
- -- Last snapshot of "Profile.Data" that has been successfully saved to the DataStore;
99
- Useful for proper developer product purchase receipt handling
100
-
101
- Profile.FirstSessionTime [number] (Read-only)
102
- -- os.time() timestamp of the first profile session
103
-
104
- Profile.SessionLoadCount [number] (Read-only) -- Amount of times a session was started for this profile
105
-
106
- Profile.Session [table] (Read-only) {PlaceId = number, JobId = string} / nil
107
- -- Set to a table if this profile is in use by a server; nil if released
108
-
109
- Profile.RobloxMetaData [table] -- Writable table that gets saved automatically and once the profile is released
110
- Profile.UserIds [table] -- (Read-only) -- {user_id [number], ...} -- User ids associated with this profile
111
-
112
- Profile.KeyInfo [DataStoreKeyInfo] -- Changes before OnAfterSave signal
113
-
114
- Profile.OnSave [Signal] ()
115
- -- Triggered right before changes to Profile.Data are saved to the DataStore
116
-
117
- Profile.OnLastSave [Signal] (reason [string]: "Manual", "External", "Shutdown")
118
- -- Triggered right before changes to Profile.Data are saved to the DataStore
119
- for the last time; A reason is provided for the last save:
120
- - "Manual" - Profile:EndSession() was called
121
- - "Shutdown" - The server that has ownership of this profile is shutting down
122
- - "External" - Another server has started a session for this profile
123
- Note that this event will not trigger for when a profile session is ended by
124
- another server trying to take ownership of the session - this is impossible to
125
- do without compromising on ProfileStore's speed.
126
-
127
- Profile.OnSessionEnd [Signal] ()
128
- -- Triggered when the profile session is terminated on this server
129
-
130
- Profile.OnAfterSave [Signal] (last_saved_data)
131
- -- Triggered after a successful save
132
- last_saved_data [table] -- Profile.LastSavedData
133
-
134
- Profile.ProfileStore [ProfileStore] -- ProfileStore object this profile belongs to
135
- Profile.Key [string] -- DataStore key
136
-
137
- Methods [Profile]:
138
-
139
- Profile:IsActive() --> [bool] -- If "true" is returned, changes to Profile.Data are guaranteed to save;
140
- This guarantee is only valid until code yields (e.g. task.wait() is used).
141
-
142
- Profile:Reconcile() -- Fills in missing (nil) [string_key] = [value] pairs to the Profile.Data structure
143
- from the "template" argument that was passed to "ProfileStore.New()"
144
-
145
- Profile:EndSession() -- Call after the server has finished working with this profile
146
- e.g., after the player leaves (Profile object will become inactive)
147
-
148
- Profile:AddUserId(user_id) -- Associates user_id with profile (GDPR compliance)
149
- user_id [number]
150
-
151
- Profile:RemoveUserId(user_id) -- Removes user_id association with profile (safe function)
152
- user_id [number]
153
-
154
- Profile:MessageHandler(fn) -- Sets a message handler for this profile
155
- fn [function] (message [table], processed [function]())
156
- -- The handler function receives a message table and a callback function;
157
- The callback function is to be called when a message has been processed
158
- - this will discard the message from the profile message cache; If the
159
- callback function is not called, other message handlers will also be triggered
160
- with unprocessed message data.
161
-
162
- Profile:Save() -- If the profile session is still active makes an UpdateAsync call
163
- to the DataStore to immediately save profile data
164
-
165
- Profile:SetAsync() -- Forcefully saves changes to the profile; Only for profiles
166
- loaded with ProfileStore:GetAsync() or ProfileStore:VersionQuery()
167
-
168
- --]]
169
-
170
- local AUTO_SAVE_PERIOD = 300 -- (Seconds) Time between when changes to a profile are saved to the DataStore
171
- local LOAD_REPEAT_PERIOD = 10 -- (Seconds) Time between successive profile reads when handling a session conflict
172
- local FIRST_LOAD_REPEAT = 5 -- (Seconds) Time between first and second profile read when handling a session conflict
173
- local SESSION_STEAL = 40 -- (Seconds) Time until a session conflict is resolved with the waiting server stealing the session
174
- local ASSUME_DEAD = 630 -- (Seconds) If a profile hasn't had updates for this long, quickly assume an active session belongs to a crashed server
175
- local START_SESSION_TIMEOUT = 120 -- (Seconds) If a session can't be started for a profile for this long, stop repeating calls to the DataStore
176
-
177
- local CRITICAL_STATE_ERROR_COUNT = 5 -- Assume critical state if this many issues happen in a short amount of time
178
- local CRITICAL_STATE_ERROR_EXPIRE = 120 -- (Seconds) Individual issue expiration
179
- local CRITICAL_STATE_EXPIRE = 120 -- (Seconds) Critical state expiration
180
-
181
- local MAX_MESSAGE_QUEUE = 1000 -- Max messages saved in a profile that were sent using "ProfileStore:MessageAsync()"
182
-
183
- -- Dependencies
184
-
185
- -- local Util = require(game.ReplicatedStorage.Shared.Util)
186
- -- local Signal = Util.Signal
187
-
188
- local Signal do
189
-
190
- local FreeRunnerThread
191
-
192
- --[[
193
- Yield-safe coroutine reusing by stravant;
194
- Sources:
195
- https://devforum.roblox.com/t/lua-signal-class-comparison-optimal-goodsignal-class/1387063
196
- https://gist.github.com/stravant/b75a322e0919d60dde8a0316d1f09d2f
197
- --]]
198
-
199
- local function AcquireRunnerThreadAndCallEventHandler(fn, ...)
200
- local acquired_runner_thread = FreeRunnerThread
201
- FreeRunnerThread = nil
202
- fn(...)
203
- -- The handler finished running, this runner thread is free again.
204
- FreeRunnerThread = acquired_runner_thread
205
- end
206
-
207
- local function RunEventHandlerInFreeThread(...)
208
- AcquireRunnerThreadAndCallEventHandler(...)
209
- while true do
210
- AcquireRunnerThreadAndCallEventHandler(coroutine.yield())
211
- end
212
- end
213
-
214
- local Connection = {}
215
- Connection.__index = Connection
216
-
217
- local SignalClass = {}
218
- SignalClass.__index = SignalClass
219
-
220
- function Connection:Disconnect()
221
-
222
- if self.is_connected == false then
223
- return
224
- end
225
-
226
- local signal = self.signal
227
- self.is_connected = false
228
- signal.listener_count -= 1
229
-
230
- if signal.head == self then
231
- signal.head = self.next
232
- else
233
- local prev = signal.head
234
- while prev ~= nil and prev.next ~= self do
235
- prev = prev.next
236
- end
237
- if prev ~= nil then
238
- prev.next = self.next
239
- end
240
- end
241
-
242
- end
243
-
244
- function SignalClass.New()
245
-
246
- local self = {
247
- head = nil,
248
- listener_count = 0,
249
- }
250
- setmetatable(self, SignalClass)
251
-
252
- return self
253
-
254
- end
255
-
256
- function SignalClass:Connect(listener: (...any) -> ())
257
-
258
- if type(listener) ~= "function" then
259
- error(`[{script.Name}]: \"listener\" must be a function; Received {typeof(listener)}`)
260
- end
261
-
262
- local connection = {
263
- listener = listener,
264
- signal = self,
265
- next = self.head,
266
- is_connected = true,
267
- }
268
- setmetatable(connection, Connection)
269
-
270
- self.head = connection
271
- self.listener_count += 1
272
-
273
- return connection
274
-
275
- end
276
-
277
- function SignalClass:GetListenerCount(): number
278
- return self.listener_count
279
- end
280
-
281
- function SignalClass:Fire(...)
282
- local item = self.head
283
- while item ~= nil do
284
- if item.is_connected == true then
285
- if not FreeRunnerThread then
286
- FreeRunnerThread = coroutine.create(RunEventHandlerInFreeThread)
287
- end
288
- task.spawn(FreeRunnerThread, item.listener, ...)
289
- end
290
- item = item.next
291
- end
292
- end
293
-
294
- function SignalClass:Wait()
295
- local co = coroutine.running()
296
- local connection
297
- connection = self:Connect(function(...)
298
- connection:Disconnect()
299
- task.spawn(co, ...)
300
- end)
301
- return coroutine.yield()
302
- end
303
-
304
- Signal = table.freeze({
305
- New = SignalClass.New,
306
- })
307
-
308
- end
309
-
310
- -- Private
311
-
312
- local ActiveSessionCheck = {} -- {[session_token] = profile, ...}
313
- local AutoSaveList = {} -- {profile, ...} -- Loaded profile table which will be circularly auto-saved
314
- local IssueQueue = {} -- {issue_time, ...}
315
-
316
- local DataStoreService = game:GetService("DataStoreService")
317
- local MessagingService = game:GetService("MessagingService")
318
- local HttpService = game:GetService("HttpService")
319
- local RunService = game:GetService("RunService")
320
-
321
- local PlaceId = game.PlaceId
322
- local JobId = game.JobId
323
-
324
- local AutoSaveIndex = 1 -- Next profile to auto save
325
- local LastAutoSave = os.clock()
326
-
327
- local LoadIndex = 0
328
-
329
- local ActiveProfileLoadJobs = 0 -- Number of active threads that are loading in profiles
330
- local ActiveProfileSaveJobs = 0 -- Number of active threads that are saving profiles
331
-
332
- local CriticalStateStart = 0 -- os.clock()
333
-
334
- local IsStudio = RunService:IsStudio()
335
- local DataStoreState: "NotReady" | "NoInternet" | "NoAccess" | "Access" = "NotReady"
336
-
337
- local MockStore = {}
338
- local UserMockStore = {}
339
- local MockFlag = false
340
-
341
- local OnError = Signal.New() -- (message, store_name, profile_key)
342
- local OnOverwrite = Signal.New() -- (store_name, profile_key)
343
-
344
- local UpdateQueue = { -- For stability sake, we won't do UpdateAsync calls for the same key until all previous calls finish
345
- --[[
346
- [session_token] = {
347
- coroutine, ...
348
- },
349
- ...
350
- --]]
351
- }
352
-
353
- local function WaitInUpdateQueue(session_token) --> next_in_queue()
354
-
355
- local is_first = false
356
-
357
- if UpdateQueue[session_token] == nil then
358
- is_first = true
359
- UpdateQueue[session_token] = {}
360
- end
361
-
362
- local queue = UpdateQueue[session_token]
363
-
364
- if is_first == false then
365
- table.insert(queue, coroutine.running())
366
- coroutine.yield()
367
- end
368
-
369
- return function()
370
- local next_co = table.remove(queue, 1)
371
- if next_co ~= nil then
372
- coroutine.resume(next_co)
373
- else
374
- UpdateQueue[session_token] = nil
375
- end
376
- end
377
-
378
- end
379
-
380
- local function SessionToken(store_name, profile_key, is_mock)
381
-
382
- local session_token = "L_" -- Live
383
-
384
- if is_mock == true then
385
- session_token = "U_" -- User mock
386
- elseif DataStoreState ~= "Access" then
387
- session_token = "M_" -- Mock, cause no DataStore access
388
- end
389
-
390
- session_token ..= store_name .. "\0" .. profile_key
391
-
392
- return session_token
393
-
394
- end
395
-
396
- local function DeepCopyTable(t)
397
- local copy = {}
398
- for key, value in pairs(t) do
399
- if type(value) == "table" then
400
- copy[key] = DeepCopyTable(value)
401
- else
402
- copy[key] = value
403
- end
404
- end
405
- return copy
406
- end
407
-
408
- local function ReconcileTable(target, template)
409
- for k, v in pairs(template) do
410
- if type(k) == "string" then -- Only string keys will be reconciled
411
- if target[k] == nil then
412
- if type(v) == "table" then
413
- target[k] = DeepCopyTable(v)
414
- else
415
- target[k] = v
416
- end
417
- elseif type(target[k]) == "table" and type(v) == "table" then
418
- ReconcileTable(target[k], v)
419
- end
420
- end
421
- end
422
- end
423
-
424
- local function RegisterError(error_message, store_name, profile_key) -- Called when a DataStore API call errors
425
- warn(`[{script.Name}]: DataStore API error (STORE:{store_name}; KEY:{profile_key}) - {tostring(error_message)}`)
426
- table.insert(IssueQueue, os.clock()) -- Adding issue time to queue
427
- OnError:Fire(tostring(error_message), store_name, profile_key)
428
- end
429
-
430
- local function RegisterOverwrite(store_name, profile_key) -- Called when a corrupted profile is loaded
431
- warn(`[{script.Name}]: Invalid profile was overwritten (STORE:{store_name}; KEY:{profile_key})`)
432
- OnOverwrite:Fire(store_name, profile_key)
433
- end
434
-
435
- local function NewMockDataStoreKeyInfo(params)
436
-
437
- local version_id_string = tostring(params.VersionId or 0)
438
- local meta_data = params.MetaData or {}
439
- local user_ids = params.UserIds or {}
440
-
441
- return {
442
- CreatedTime = params.CreatedTime,
443
- UpdatedTime = params.UpdatedTime,
444
- Version = string.rep("0", 16) .. "."
445
- .. string.rep("0", 10 - string.len(version_id_string)) .. version_id_string
446
- .. "." .. string.rep("0", 16) .. "." .. "01",
447
-
448
- GetMetadata = function()
449
- return DeepCopyTable(meta_data)
450
- end,
451
-
452
- GetUserIds = function()
453
- return DeepCopyTable(user_ids)
454
- end,
455
- }
456
-
457
- end
458
-
459
- local function MockUpdateAsync(mock_data_store, profile_store_name, key, transform_function, is_get_call) --> loaded_data, key_info
460
-
461
- local profile_store = mock_data_store[profile_store_name]
462
-
463
- if profile_store == nil then
464
- profile_store = {}
465
- mock_data_store[profile_store_name] = profile_store
466
- end
467
-
468
- local epoch_time = math.floor(os.time() * 1000)
469
- local mock_entry = profile_store[key]
470
- local mock_entry_was_nil = false
471
-
472
- if mock_entry == nil then
473
- mock_entry_was_nil = true
474
- if is_get_call ~= true then
475
- mock_entry = {
476
- Data = nil,
477
- CreatedTime = epoch_time,
478
- UpdatedTime = epoch_time,
479
- VersionId = 0,
480
- UserIds = {},
481
- MetaData = {},
482
- }
483
- profile_store[key] = mock_entry
484
- end
485
- end
486
-
487
- local mock_key_info = mock_entry_was_nil == false and NewMockDataStoreKeyInfo(mock_entry) or nil
488
-
489
- local transform, user_ids, roblox_meta_data = transform_function(mock_entry and mock_entry.Data, mock_key_info)
490
-
491
- if transform == nil then
492
- return nil
493
- else
494
- if mock_entry ~= nil and is_get_call ~= true then
495
- mock_entry.Data = DeepCopyTable(transform)
496
- mock_entry.UserIds = DeepCopyTable(user_ids or {})
497
- mock_entry.MetaData = DeepCopyTable(roblox_meta_data or {})
498
- mock_entry.VersionId += 1
499
- mock_entry.UpdatedTime = epoch_time
500
- end
501
-
502
- return DeepCopyTable(transform), mock_entry ~= nil and NewMockDataStoreKeyInfo(mock_entry) or nil
503
- end
504
-
505
- end
506
-
507
- local function UpdateAsync(profile_store, profile_key, transform_params, is_user_mock, is_get_call, version) --> loaded_data, key_info
508
- --transform_params = {
509
- -- ExistingProfileHandle = function(latest_data),
510
- -- MissingProfileHandle = function(latest_data),
511
- -- EditProfile = function(latest_data),
512
- --}
513
-
514
- local loaded_data, key_info
515
-
516
- local next_in_queue = WaitInUpdateQueue(SessionToken(profile_store.Name, profile_key, is_user_mock))
517
-
518
- local success = true
519
-
520
- local success, error_message = pcall(function()
521
- local transform_function = function(latest_data)
522
-
523
- local missing_profile = false
524
- local overwritten = false
525
- local global_updates = {0, {}}
526
-
527
- if latest_data == nil then
528
-
529
- missing_profile = true
530
-
531
- elseif type(latest_data) ~= "table" then
532
-
533
- missing_profile = true
534
- overwritten = true
535
-
536
- else
537
-
538
- if type(latest_data.Data) == "table" and type(latest_data.MetaData) == "table" and type(latest_data.GlobalUpdates) == "table" then
539
-
540
- -- Regular profile structure detected:
541
-
542
- latest_data.WasOverwritten = false -- Must be set to false if set previously
543
- global_updates = latest_data.GlobalUpdates
544
-
545
- if transform_params.ExistingProfileHandle ~= nil then
546
- transform_params.ExistingProfileHandle(latest_data)
547
- end
548
-
549
- elseif latest_data.Data == nil and latest_data.MetaData == nil and type(latest_data.GlobalUpdates) == "table" then
550
-
551
- -- Regular structure not detected, but GlobalUpdate data exists:
552
-
553
- latest_data.WasOverwritten = false -- Must be set to false if set previously
554
- global_updates = latest_data.GlobalUpdates or global_updates
555
- missing_profile = true
556
-
557
- else
558
-
559
- missing_profile = true
560
- overwritten = true
561
-
562
- end
563
-
564
- end
565
-
566
- -- Profile was not created or corrupted and no GlobalUpdate data exists:
567
- if missing_profile == true then
568
- latest_data = {
569
- -- Data = nil,
570
- -- MetaData = nil,
571
- GlobalUpdates = global_updates,
572
- }
573
- if transform_params.MissingProfileHandle ~= nil then
574
- transform_params.MissingProfileHandle(latest_data)
575
- end
576
- end
577
-
578
- -- Editing profile:
579
- if transform_params.EditProfile ~= nil then
580
- transform_params.EditProfile(latest_data)
581
- end
582
-
583
- -- Invalid data handling (Silently override with empty profile)
584
- if overwritten == true then
585
- latest_data.WasOverwritten = true -- Temporary tag that will be removed on first save
586
- end
587
-
588
- return latest_data, latest_data.UserIds, latest_data.RobloxMetaData
589
- end
590
-
591
- if is_user_mock == true then -- Used when the profile is accessed through ProfileStore.Mock
592
-
593
- loaded_data, key_info = MockUpdateAsync(UserMockStore, profile_store.Name, profile_key, transform_function, is_get_call)
594
- task.wait() -- Simulate API call yield
595
-
596
- elseif DataStoreState ~= "Access" then -- Used when API access is disabled
597
-
598
- loaded_data, key_info = MockUpdateAsync(MockStore, profile_store.Name, profile_key, transform_function, is_get_call)
599
- task.wait() -- Simulate API call yield
600
-
601
- else
602
-
603
- if is_get_call == true then
604
-
605
- if version ~= nil then
606
-
607
- local success, error_message = pcall(function()
608
- loaded_data, key_info = profile_store.data_store:GetVersionAsync(profile_key, version)
609
- end)
610
-
611
- if success == false and type(error_message) == "string" and string.find(error_message, "not valid") ~= nil then
612
- warn(`[{script.Name}]: Passed version argument is not valid; Traceback:\n` .. debug.traceback())
613
- end
614
-
615
- else
616
-
617
- loaded_data, key_info = profile_store.data_store:GetAsync(profile_key)
618
-
619
- end
620
-
621
- loaded_data = transform_function(loaded_data)
622
-
623
- else
624
-
625
- loaded_data, key_info = profile_store.data_store:UpdateAsync(profile_key, transform_function)
626
-
627
- end
628
-
629
- end
630
-
631
- end)
632
-
633
- next_in_queue()
634
-
635
- if success == true and type(loaded_data) == "table" then
636
- -- Invalid data handling:
637
- if loaded_data.WasOverwritten == true and is_get_call ~= true then
638
- RegisterOverwrite(
639
- profile_store.Name,
640
- profile_key
641
- )
642
- end
643
- -- Return loaded_data:
644
- return loaded_data, key_info
645
- else
646
- -- Error handling:
647
- RegisterError(
648
- error_message or "Undefined error",
649
- profile_store.Name,
650
- profile_key
651
- )
652
- -- Return nothing:
653
- return nil
654
- end
655
-
656
- end
657
-
658
- local function IsThisSession(session_tag)
659
- return session_tag[1] == PlaceId and session_tag[2] == JobId
660
- end
661
-
662
- local function ReadMockFlag(): boolean
663
- local is_mock = MockFlag
664
- MockFlag = false
665
- return is_mock
666
- end
667
-
668
- local function WaitForStoreReady(profile_store)
669
- while profile_store.is_ready == false do
670
- task.wait()
671
- end
672
- end
673
-
674
- local function AddProfileToAutoSave(profile)
675
-
676
- ActiveSessionCheck[profile.session_token] = profile
677
-
678
- -- Add at AutoSaveIndex and move AutoSaveIndex right:
679
-
680
- table.insert(AutoSaveList, AutoSaveIndex, profile)
681
-
682
- if #AutoSaveList > 1 then
683
- AutoSaveIndex = AutoSaveIndex + 1
684
- elseif #AutoSaveList == 1 then
685
- -- First profile created - make sure it doesn't get immediately auto saved:
686
- LastAutoSave = os.clock()
687
- end
688
-
689
- end
690
-
691
- local function RemoveProfileFromAutoSave(profile)
692
-
693
- ActiveSessionCheck[profile.session_token] = nil
694
-
695
- local auto_save_index = table.find(AutoSaveList, profile)
696
-
697
- if auto_save_index ~= nil then
698
- table.remove(AutoSaveList, auto_save_index)
699
- if auto_save_index < AutoSaveIndex then
700
- AutoSaveIndex = AutoSaveIndex - 1 -- Table contents were moved left before AutoSaveIndex so move AutoSaveIndex left as well
701
- end
702
- if AutoSaveList[AutoSaveIndex] == nil then -- AutoSaveIndex was at the end of the AutoSaveList - reset to 1
703
- AutoSaveIndex = 1
704
- end
705
- end
706
-
707
- end
708
-
709
- local function SaveProfileAsync(profile, is_ending_session, is_overwriting, last_save_reason)
710
-
711
- if type(profile.Data) ~= "table" then
712
- error(`[{script.Name}]: Developer code likely set "Profile.Data" to a non-table value! (STORE:{profile.ProfileStore.Name}; KEY:{profile.Key})`)
713
- end
714
-
715
- profile.OnSave:Fire()
716
- if is_ending_session == true then
717
- profile.OnLastSave:Fire(last_save_reason or "Manual")
718
- end
719
-
720
- if is_ending_session == true and is_overwriting ~= true then
721
- if profile.roblox_message_subscription ~= nil then
722
- profile.roblox_message_subscription:Disconnect()
723
- end
724
- RemoveProfileFromAutoSave(profile)
725
- profile.OnSessionEnd:Fire()
726
- end
727
-
728
- ActiveProfileSaveJobs = ActiveProfileSaveJobs + 1
729
-
730
- -- Compare "SessionLoadCount" when writing to profile to prevent a rare case of repeat last save when the profile is loaded on the same server again
731
-
732
- local repeat_save_flag = true -- Released Profile save calls have to repeat until they succeed
733
- local exp_backoff = 1
734
-
735
- while repeat_save_flag == true do
736
-
737
- if is_ending_session ~= true then
738
- repeat_save_flag = false
739
- end
740
-
741
- local loaded_data, key_info = UpdateAsync(
742
- profile.ProfileStore,
743
- profile.Key,
744
- {
745
- ExistingProfileHandle = nil,
746
- MissingProfileHandle = nil,
747
- EditProfile = function(latest_data)
748
-
749
- -- Check if this session still owns the profile:
750
-
751
- local session_owns_profile = false
752
-
753
- if is_overwriting ~= true then
754
-
755
- local active_session = latest_data.MetaData.ActiveSession
756
- local session_load_count = latest_data.MetaData.SessionLoadCount
757
-
758
- if type(active_session) == "table" then
759
- session_owns_profile = IsThisSession(active_session) and session_load_count == profile.load_index
760
- end
761
-
762
- else
763
- session_owns_profile = true
764
- end
765
-
766
- -- We may only edit the profile if this server has ownership of the profile:
767
-
768
- if session_owns_profile == true then
769
-
770
- -- Clear processed updates (messages):
771
-
772
- local locked_updates = profile.locked_global_updates -- [index] = true, ...
773
- local active_updates = latest_data.GlobalUpdates[2]
774
- -- ProfileService module format: {{update_id, version_id, update_locked, update_data}, ...}
775
- -- ProfileStore module format: {{update_id, update_data}, ...}
776
-
777
- if next(locked_updates) ~= nil then
778
- local i = 1
779
- while i <= #active_updates do
780
- local update = active_updates[i]
781
- if locked_updates[update[1]] == true then
782
- table.remove(active_updates, i)
783
- else
784
- i += 1
785
- end
786
- end
787
- end
788
-
789
- -- Save profile data:
790
-
791
- latest_data.Data = profile.Data
792
- latest_data.RobloxMetaData = profile.RobloxMetaData
793
- latest_data.UserIds = profile.UserIds
794
-
795
- if is_overwriting ~= true then
796
-
797
- latest_data.MetaData.LastUpdate = os.time()
798
-
799
- if is_ending_session == true then
800
- latest_data.MetaData.ActiveSession = nil
801
- end
802
-
803
- else
804
-
805
- latest_data.MetaData.ActiveSession = nil
806
- latest_data.MetaData.ForceLoadSession = nil
807
-
808
- end
809
-
810
- end
811
-
812
- end,
813
- },
814
- profile.is_mock
815
- )
816
-
817
- if loaded_data ~= nil and key_info ~= nil then
818
-
819
- if is_overwriting == true then
820
- break
821
- end
822
-
823
- repeat_save_flag = false
824
-
825
- local active_session = loaded_data.MetaData.ActiveSession
826
- local session_load_count = loaded_data.MetaData.SessionLoadCount
827
- local session_owns_profile = false
828
-
829
- if type(active_session) == "table" then
830
- session_owns_profile = IsThisSession(active_session) and session_load_count == profile.load_index
831
- end
832
-
833
- local force_load_session = loaded_data.MetaData.ForceLoadSession
834
- local force_load_pending = false
835
- if type(force_load_session) == "table" then
836
- force_load_pending = not IsThisSession(force_load_session)
837
- end
838
-
839
- local is_active = profile:IsActive()
840
-
841
- -- If another server is trying to start a session for this profile - end the session:
842
-
843
- if force_load_pending == true and session_owns_profile == true then
844
- if is_active == true then
845
- SaveProfileAsync(profile, true, false, "External")
846
- end
847
- break
848
- end
849
-
850
- -- Clearing processed update list / Detecting new updates:
851
-
852
- local locked_updates = profile.locked_global_updates -- [index] = true, ...
853
- local received_updates = profile.received_global_updates -- [index] = true, ...
854
- local active_updates = loaded_data.GlobalUpdates[2]
855
-
856
- local new_updates = {} -- {}, ...
857
- local still_pending = {} -- [index] = true, ...
858
-
859
- for _, update in ipairs(active_updates) do
860
- if locked_updates[update[1]] == true then
861
- still_pending[update[1]] = true
862
- elseif received_updates[update[1]] ~= true then
863
- received_updates[update[1]] = true
864
- table.insert(new_updates, update)
865
- end
866
- end
867
-
868
- for index in pairs(locked_updates) do
869
- if still_pending[index] ~= true then
870
- locked_updates[index] = nil
871
- end
872
- end
873
-
874
- -- Updating profile values:
875
-
876
- profile.KeyInfo = key_info
877
- profile.LastSavedData = loaded_data.Data
878
- profile.global_updates = loaded_data.GlobalUpdates and loaded_data.GlobalUpdates[2] or {}
879
-
880
- if session_owns_profile == true then
881
- if is_active == true and is_ending_session ~= true then
882
-
883
- -- Processing new global updates (messages):
884
-
885
- for _, update in ipairs(new_updates) do
886
-
887
- local index = update[1]
888
- local update_data = update[#update] -- Backwards compatibility with ProfileService
889
-
890
- for _, handler in ipairs(profile.message_handlers) do
891
-
892
- local is_processed = false
893
- local processed_callback = function()
894
- is_processed = true
895
- locked_updates[index] = true
896
- end
897
-
898
- local send_update_data = DeepCopyTable(update_data)
899
-
900
- task.spawn(handler, send_update_data, processed_callback)
901
-
902
- if is_processed == true then
903
- break
904
- end
905
-
906
- end
907
-
908
- end
909
-
910
- end
911
- else
912
-
913
- if profile.roblox_message_subscription ~= nil then
914
- profile.roblox_message_subscription:Disconnect()
915
- end
916
-
917
- if is_active == true then
918
- RemoveProfileFromAutoSave(profile)
919
- profile.OnSessionEnd:Fire()
920
- end
921
-
922
- end
923
-
924
- profile.OnAfterSave:Fire(profile.LastSavedData)
925
-
926
- elseif repeat_save_flag == true then
927
-
928
- -- DataStore call likely resulted in an error; Repeat the DataStore call shortly
929
- task.wait(exp_backoff)
930
- exp_backoff = math.min(if last_save_reason == "Shutdown" then 8 else 20, exp_backoff * 2)
931
-
932
- end
933
-
934
- end
935
-
936
- ActiveProfileSaveJobs = ActiveProfileSaveJobs - 1
937
-
938
- end
939
-
940
- -- Public
941
-
942
- --[[
943
- Saved profile structure:
944
-
945
- {
946
- Data = {},
947
-
948
- MetaData = {
949
- ProfileCreateTime = 0,
950
- SessionLoadCount = 0,
951
- ActiveSession = {place_id, game_job_id, unique_session_id} / nil,
952
- ForceLoadSession = {place_id, game_job_id} / nil,
953
- LastUpdate = 0, -- os.time()
954
- MetaTags = {}, -- Backwards compatibility with ProfileService
955
- },
956
-
957
- RobloxMetaData = {},
958
- UserIds = {},
959
-
960
- GlobalUpdates = {
961
- update_index,
962
- {
963
- {update_index, data}, ...
964
- },
965
- },
966
- }
967
-
968
- --]]
969
-
970
- export type JSONAcceptable = { JSONAcceptable } | { [string]: JSONAcceptable } | number | string | boolean | buffer
971
-
972
- export type Profile<T> = {
973
- Data: T & JSONAcceptable,
974
- LastSavedData: T & JSONAcceptable,
975
- FirstSessionTime: number,
976
- SessionLoadCount: number,
977
- Session: {PlaceId: number, JobId: string}?,
978
- RobloxMetaData: JSONAcceptable,
979
- UserIds: {number},
980
- KeyInfo: DataStoreKeyInfo,
981
- OnSave: {Connect: (self: any, listener: () -> ()) -> ({Disconnect: (self: any) -> ()})},
982
- OnLastSave: {Connect: (self: any, listener: (reason: "Manual" | "External" | "Shutdown") -> ()) -> ({Disconnect: (self: any) -> ()})},
983
- OnSessionEnd: {Connect: (self: any, listener: () -> ()) -> ({Disconnect: (self: any) -> ()})},
984
- OnAfterSave: {Connect: (self: any, listener: (last_saved_data: T & JSONAcceptable) -> ()) -> ({Disconnect: (self: any) -> ()})},
985
- ProfileStore: JSONAcceptable,
986
- Key: string,
987
-
988
- IsActive: (self: any) -> (boolean),
989
- Reconcile: (self: any) -> (),
990
- EndSession: (self: any) -> (),
991
- AddUserId: (self: any, user_id: number) -> (),
992
- RemoveUserId: (self: any, user_id: number) -> (),
993
- MessageHandler: (self: any, fn: (message: JSONAcceptable, processed: () -> ()) -> ()) -> (),
994
- Save: (self: any) -> (),
995
- SetAsync: (self: any) -> (),
996
- }
997
-
998
- export type VersionQuery<T> = {
999
- NextAsync: (self: any) -> (Profile<T>?),
1000
- }
1001
-
1002
- type ProfileStoreStandard<T> = {
1003
- Name: string,
1004
- StartSessionAsync: (self: any, profile_key: string, params: {Steal: boolean?}) -> (Profile<T>?),
1005
- MessageAsync: (self: any, profile_key: string, message: JSONAcceptable) -> (boolean),
1006
- GetAsync: (self: any, profile_key: string, version: string?) -> (Profile<T>?),
1007
- VersionQuery: (self: any, profile_key: string, sort_direction: Enum.SortDirection?, min_date: DateTime | number | nil, max_date: DateTime | number | nil) -> (VersionQuery<T>),
1008
- RemoveAsync: (self: any, profile_key: string) -> (boolean),
1009
- }
1010
-
1011
- export type ProfileStore<T> = {
1012
- Mock: ProfileStoreStandard<T>,
1013
- } & ProfileStoreStandard<T>
1014
-
1015
- type ConstantName = "AUTO_SAVE_PERIOD" | "LOAD_REPEAT_PERIOD" | "FIRST_LOAD_REPEAT" | "SESSION_STEAL"
1016
- | "ASSUME_DEAD" | "START_SESSION_TIMEOUT" | "CRITICAL_STATE_ERROR_COUNT" | "CRITICAL_STATE_ERROR_EXPIRE"
1017
- | "CRITICAL_STATE_EXPIRE" | "MAX_MESSAGE_QUEUE"
1018
-
1019
- export type ProfileStoreModule = {
1020
- IsClosing: boolean,
1021
- IsCriticalState: boolean,
1022
- OnError: {Connect: (self: any, listener: (message: string, store_name: string, profile_key: string) -> ()) -> ({Disconnect: (self: any) -> ()})},
1023
- OnOverwrite: {Connect: (self: any, listener: (store_name: string, profile_key: string) -> ()) -> ({Disconnect: (self: any) -> ()})},
1024
- OnCriticalToggle: {Connect: (self: any, listener: (is_critical: boolean) -> ()) -> ({Disconnect: (self: any) -> ()})},
1025
- DataStoreState: "NotReady" | "NoInternet" | "NoAccess" | "Access",
1026
- New: <T>(store_name: string, template: (T & JSONAcceptable)?) -> (ProfileStore<T>),
1027
- SetConstant: (name: ConstantName, value: number) -> ()
1028
- }
1029
-
1030
- local Profile = {}
1031
- Profile.__index = Profile
1032
-
1033
- function Profile.New(raw_data, key_info, profile_store, key, is_mock, session_token)
1034
-
1035
- local data = raw_data.Data or {}
1036
- local session = raw_data.MetaData and raw_data.MetaData.ActiveSession or nil
1037
-
1038
- local global_updates = raw_data.GlobalUpdates and raw_data.GlobalUpdates[2] or {}
1039
- local received_global_updates = {}
1040
-
1041
- for _, update in ipairs(global_updates) do
1042
- received_global_updates[update[1]] = true
1043
- end
1044
-
1045
- local self = {
1046
-
1047
- Data = data,
1048
- LastSavedData = DeepCopyTable(data),
1049
-
1050
- FirstSessionTime = raw_data.MetaData and raw_data.MetaData.ProfileCreateTime or 0,
1051
- SessionLoadCount = raw_data.MetaData and raw_data.MetaData.SessionLoadCount or 0,
1052
- Session = session and {PlaceId = session[1], JobId = session[2]},
1053
-
1054
- RobloxMetaData = raw_data.RobloxMetaData or {},
1055
- UserIds = raw_data.UserIds or {},
1056
- KeyInfo = key_info,
1057
-
1058
- OnAfterSave = Signal.New(),
1059
- OnSave = Signal.New(),
1060
- OnLastSave = Signal.New(),
1061
- OnSessionEnd = Signal.New(),
1062
-
1063
- ProfileStore = profile_store,
1064
- Key = key,
1065
-
1066
- load_timestamp = os.clock(),
1067
- is_mock = is_mock,
1068
- session_token = session_token or "",
1069
- load_index = raw_data.MetaData and raw_data.MetaData.SessionLoadCount or 0,
1070
- locked_global_updates = {},
1071
- received_global_updates = received_global_updates,
1072
- message_handlers = {},
1073
- global_updates = global_updates,
1074
-
1075
- }
1076
- setmetatable(self, Profile)
1077
-
1078
- return self
1079
-
1080
- end
1081
-
1082
- function Profile:IsActive()
1083
- return ActiveSessionCheck[self.session_token] == self
1084
- end
1085
-
1086
- function Profile:Reconcile()
1087
- ReconcileTable(self.Data, self.ProfileStore.template)
1088
- end
1089
-
1090
- function Profile:EndSession()
1091
- if self:IsActive() == true then
1092
- task.spawn(SaveProfileAsync, self, true, nil, "Manual") -- Call save function in a new thread with release_from_session = true
1093
- end
1094
- end
1095
-
1096
- function Profile:AddUserId(user_id) -- Associates user_id with profile (GDPR compliance)
1097
-
1098
- if type(user_id) ~= "number" or user_id % 1 ~= 0 then
1099
- warn(`[{script.Name}]: Invalid UserId argument for :AddUserId() ({tostring(user_id)}); Traceback:\n` .. debug.traceback())
1100
- return
1101
- end
1102
-
1103
- if user_id < 0 and self.is_mock ~= true and DataStoreState == "Access" then
1104
- return -- Avoid giving real Roblox APIs negative UserId's
1105
- end
1106
-
1107
- if table.find(self.UserIds, user_id) == nil then
1108
- table.insert(self.UserIds, user_id)
1109
- end
1110
-
1111
- end
1112
-
1113
- function Profile:RemoveUserId(user_id) -- Removes user_id association with profile (safe function)
1114
-
1115
- if type(user_id) ~= "number" or user_id % 1 ~= 0 then
1116
- warn(`[{script.Name}]: Invalid UserId argument for :RemoveUserId() ({tostring(user_id)}); Traceback:\n` .. debug.traceback())
1117
- return
1118
- end
1119
-
1120
- local index = table.find(self.UserIds, user_id)
1121
-
1122
- if index ~= nil then
1123
- table.remove(self.UserIds, index)
1124
- end
1125
-
1126
- end
1127
-
1128
- function Profile:SetAsync() -- Saves the profile to the DataStore and removes the session lock
1129
-
1130
- if self.view_mode ~= true then
1131
- error(`[{script.Name}]: :SetAsync() can only be used in view mode`)
1132
- end
1133
-
1134
- SaveProfileAsync(self, nil, true)
1135
-
1136
- end
1137
-
1138
- function Profile:MessageHandler(fn)
1139
-
1140
- if type(fn) ~= "function" then
1141
- error(`[{script.Name}]: fn argument is not a function`)
1142
- end
1143
-
1144
- if self.view_mode ~= true and self:IsActive() ~= true then
1145
- return -- Don't process messages if the profile session was ended
1146
- end
1147
-
1148
- local locked_updates = self.locked_global_updates
1149
- table.insert(self.message_handlers, fn)
1150
-
1151
- for _, update in ipairs(self.global_updates) do
1152
-
1153
- local index = update[1]
1154
- local update_data = update[#update] -- Backwards compatibility with ProfileService
1155
-
1156
- if locked_updates[index] ~= true then
1157
-
1158
- local processed_callback = function()
1159
- locked_updates[index] = true
1160
- end
1161
-
1162
- local send_update_data = DeepCopyTable(update_data)
1163
-
1164
- task.spawn(fn, send_update_data, processed_callback)
1165
-
1166
- end
1167
-
1168
- end
1169
-
1170
- end
1171
-
1172
- function Profile:Save()
1173
-
1174
- if self.view_mode == true then
1175
- error(`[{script.Name}]: Can't save profile in view mode; Should you be calling :SetAsync() instead?`)
1176
- end
1177
-
1178
- if self:IsActive() == false then
1179
- warn(`[{script.Name}]: Attempted saving an inactive profile (STORE:{self.ProfileStore.Name}; KEY:{self.Key});`
1180
- .. ` Traceback:\n` .. debug.traceback())
1181
- return
1182
- end
1183
-
1184
- -- Move the profile right behind the auto save index to delay the next auto save for it:
1185
- RemoveProfileFromAutoSave(self)
1186
- AddProfileToAutoSave(self)
1187
-
1188
- -- Perform save in new thread:
1189
- task.spawn(SaveProfileAsync, self)
1190
-
1191
- end
1192
-
1193
- local ProfileStore: ProfileStoreModule = {
1194
-
1195
- IsClosing = false,
1196
- IsCriticalState = false,
1197
- OnError = OnError, -- (message, store_name, profile_key)
1198
- OnOverwrite = OnOverwrite, -- (store_name, profile_key)
1199
- OnCriticalToggle = Signal.New(), -- (is_critical)
1200
- DataStoreState = "NotReady", -- ("NotReady", "NoInternet", "NoAccess", "Access")
1201
-
1202
- }
1203
- ProfileStore.__index = ProfileStore
1204
-
1205
- function ProfileStore.SetConstant(name, value)
1206
-
1207
- if type(value) ~= "number" then
1208
- error(`[{script.Name}]: Invalid value type`)
1209
- end
1210
-
1211
- if name == "AUTO_SAVE_PERIOD" then
1212
- AUTO_SAVE_PERIOD = value
1213
- elseif name == "LOAD_REPEAT_PERIOD" then
1214
- LOAD_REPEAT_PERIOD = value
1215
- elseif name == "FIRST_LOAD_REPEAT" then
1216
- FIRST_LOAD_REPEAT = value
1217
- elseif name == "SESSION_STEAL" then
1218
- SESSION_STEAL = value
1219
- elseif name == "ASSUME_DEAD" then
1220
- ASSUME_DEAD = value
1221
- elseif name == "START_SESSION_TIMEOUT" then
1222
- START_SESSION_TIMEOUT = value
1223
- elseif name == "CRITICAL_STATE_ERROR_COUNT" then
1224
- CRITICAL_STATE_ERROR_COUNT = value
1225
- elseif name == "CRITICAL_STATE_ERROR_EXPIRE" then
1226
- CRITICAL_STATE_ERROR_EXPIRE = value
1227
- elseif name == "CRITICAL_STATE_EXPIRE" then
1228
- CRITICAL_STATE_EXPIRE = value
1229
- elseif name == "MAX_MESSAGE_QUEUE" then
1230
- MAX_MESSAGE_QUEUE = value
1231
- else
1232
- error(`[{script.Name}]: Invalid constant name was provided`)
1233
- end
1234
-
1235
- end
1236
-
1237
- function ProfileStore.Test()
1238
- return {
1239
- ActiveSessionCheck = ActiveSessionCheck,
1240
- AutoSaveList = AutoSaveList,
1241
- ActiveProfileLoadJobs = ActiveProfileLoadJobs,
1242
- ActiveProfileSaveJobs = ActiveProfileSaveJobs,
1243
- MockStore = MockStore,
1244
- UserMockStore = UserMockStore,
1245
- UpdateQueue = UpdateQueue,
1246
- }
1247
- end
1248
-
1249
- function ProfileStore.New(store_name, template)
1250
-
1251
- template = template or {}
1252
-
1253
- if type(store_name) ~= "string" then
1254
- error(`[{script.Name}]: Invalid or missing "store_name"`)
1255
- elseif string.len(store_name) == 0 then
1256
- error(`[{script.Name}]: store_name cannot be an empty string`)
1257
- elseif string.len(store_name) > 50 then
1258
- error(`[{script.Name}]: store_name is too long`)
1259
- end
1260
-
1261
- if type(template) ~= "table" then
1262
- error(`[{script.Name}]: Invalid template argument`)
1263
- end
1264
-
1265
- local self
1266
- self = {
1267
-
1268
- Mock = {
1269
-
1270
- Name = store_name,
1271
-
1272
- StartSessionAsync = function(_, profile_key)
1273
- MockFlag = true
1274
- return self:StartSessionAsync(profile_key)
1275
- end,
1276
- MessageAsync = function(_, profile_key, message)
1277
- MockFlag = true
1278
- return self:MessageAsync(profile_key, message)
1279
- end,
1280
- GetAsync = function(_, profile_key, version)
1281
- MockFlag = true
1282
- return self:GetAsync(profile_key, version)
1283
- end,
1284
- VersionQuery = function(_, profile_key, sort_direction, min_date, max_date)
1285
- MockFlag = true
1286
- return self:VersionQuery(profile_key, sort_direction, min_date, max_date)
1287
- end,
1288
- RemoveAsync = function(_, profile_key)
1289
- MockFlag = true
1290
- return self:RemoveAsync(profile_key)
1291
- end
1292
- },
1293
-
1294
- Name = store_name,
1295
-
1296
- template = template,
1297
- data_store = nil,
1298
- load_jobs = {},
1299
- mock_load_jobs = {},
1300
- is_ready = true,
1301
-
1302
- }
1303
- setmetatable(self, ProfileStore)
1304
-
1305
- local options = Instance.new("DataStoreOptions")
1306
- options:SetExperimentalFeatures({v2 = true})
1307
-
1308
- if DataStoreState == "NotReady" then
1309
-
1310
- -- The module is not sure whether DataStores are accessible yet:
1311
-
1312
- self.is_ready = false
1313
-
1314
- task.spawn(function()
1315
-
1316
- repeat task.wait() until DataStoreState ~= "NotReady"
1317
-
1318
- if DataStoreState == "Access" then
1319
- self.data_store = DataStoreService:GetDataStore(store_name, nil, options)
1320
- end
1321
-
1322
- self.is_ready = true
1323
-
1324
- end)
1325
-
1326
- elseif DataStoreState == "Access" then
1327
-
1328
- self.data_store = DataStoreService:GetDataStore(store_name, nil, options)
1329
-
1330
- end
1331
-
1332
- return self
1333
-
1334
- end
1335
-
1336
- local function RobloxMessageSubscription(profile, unique_session_id)
1337
-
1338
- local last_roblox_message = 0
1339
-
1340
- local roblox_message_subscription = MessagingService:SubscribeAsync("PS_" .. unique_session_id, function(message)
1341
- if type(message.Data) == "table" and message.Data.LoadCount == profile.SessionLoadCount then
1342
- -- High reaction rate, based on numPlayers × 10 DataStore budget as of writing
1343
- if os.clock() - last_roblox_message > 6 then
1344
- last_roblox_message = os.clock()
1345
- if profile:IsActive() == true then
1346
- if message.Data.EndSession == true then
1347
- SaveProfileAsync(profile, true, false, "External")
1348
- else
1349
- profile:Save()
1350
- end
1351
- end
1352
- end
1353
- end
1354
- end)
1355
-
1356
- if profile:IsActive() == true then
1357
- profile.roblox_message_subscription = roblox_message_subscription
1358
- else
1359
- roblox_message_subscription:Disconnect()
1360
- end
1361
-
1362
- end
1363
-
1364
- function ProfileStore:StartSessionAsync(profile_key, params)
1365
-
1366
- local is_mock = ReadMockFlag()
1367
-
1368
- if type(profile_key) ~= "string" then
1369
- error(`[{script.Name}]: profile_key must be a string`)
1370
- elseif string.len(profile_key) == 0 then
1371
- error(`[{script.Name}]: Invalid profile_key`)
1372
- elseif string.len(profile_key) > 50 then
1373
- error(`[{script.Name}]: profile_key is too long`)
1374
- end
1375
-
1376
- if params ~= nil and type(params) ~= "table" then
1377
- error(`[{script.Name}]: Invalid params`)
1378
- end
1379
-
1380
- params = params or {}
1381
-
1382
- if ProfileStore.IsClosing == true then
1383
- return nil
1384
- end
1385
-
1386
- WaitForStoreReady(self)
1387
-
1388
- local session_token = SessionToken(self.Name, profile_key, is_mock)
1389
-
1390
- if ActiveSessionCheck[session_token] ~= nil then
1391
- error(`[{script.Name}]: Profile (STORE:{self.Name}; KEY:{profile_key}) is already loaded in this session`)
1392
- end
1393
-
1394
- ActiveProfileLoadJobs = ActiveProfileLoadJobs + 1
1395
-
1396
- local is_user_cancel = false
1397
-
1398
- local function cancel_condition()
1399
- if is_user_cancel == false then
1400
- if params.Cancel ~= nil then
1401
- is_user_cancel = params.Cancel() == true
1402
- end
1403
- return is_user_cancel
1404
- end
1405
- return true
1406
- end
1407
-
1408
- local user_steal = params.Steal == true
1409
-
1410
- local force_load_steps = 0 -- Session conflict handling values
1411
- local request_force_load = true
1412
- local steal_session = false
1413
-
1414
- local start = os.clock()
1415
- local exp_backoff = 1
1416
-
1417
- while ProfileStore.IsClosing == false and cancel_condition() == false do
1418
-
1419
- -- Load profile:
1420
-
1421
- -- SPECIAL CASE - If StartSessionAsync is called for the same key again before another StartSessionAsync finishes,
1422
- -- grab the DataStore return for the new call. The early call will return nil. This is supposed to retain
1423
- -- expected and efficient behavior in cases where a player would quickly rejoin the same server.
1424
-
1425
- LoadIndex += 1
1426
- local load_id = LoadIndex
1427
- local profile_load_jobs = is_mock == true and self.mock_load_jobs or self.load_jobs
1428
- local profile_load_job = profile_load_jobs[profile_key] -- {load_id, {loaded_data, key_info} or nil}
1429
-
1430
- local loaded_data, key_info
1431
- local unique_session_id = HttpService:GenerateGUID(false)
1432
-
1433
- if profile_load_job ~= nil then
1434
-
1435
- profile_load_job[1] = load_id -- Steal load job
1436
- while profile_load_job[2] == nil do -- Wait for job to finish
1437
- task.wait()
1438
- end
1439
- if profile_load_job[1] == load_id then -- Load job hasn't been double-stolen
1440
- loaded_data, key_info = table.unpack(profile_load_job[2])
1441
- profile_load_jobs[profile_key] = nil
1442
- else
1443
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1444
- return nil
1445
- end
1446
-
1447
- else
1448
-
1449
- profile_load_job = {load_id, nil}
1450
- profile_load_jobs[profile_key] = profile_load_job
1451
-
1452
- profile_load_job[2] = table.pack(UpdateAsync(
1453
- self,
1454
- profile_key,
1455
- {
1456
- ExistingProfileHandle = function(latest_data)
1457
-
1458
- if ProfileStore.IsClosing == true or cancel_condition() == true then
1459
- return
1460
- end
1461
-
1462
- local active_session = latest_data.MetaData.ActiveSession
1463
- local force_load_session = latest_data.MetaData.ForceLoadSession
1464
-
1465
- if active_session == nil then
1466
- latest_data.MetaData.ActiveSession = {PlaceId, JobId, unique_session_id}
1467
- latest_data.MetaData.ForceLoadSession = nil
1468
- elseif type(active_session) == "table" then
1469
- if IsThisSession(active_session) == false then
1470
- local last_update = latest_data.MetaData.LastUpdate
1471
- if last_update ~= nil then
1472
- if os.time() - last_update > ASSUME_DEAD then
1473
- latest_data.MetaData.ActiveSession = {PlaceId, JobId, unique_session_id}
1474
- latest_data.MetaData.ForceLoadSession = nil
1475
- return
1476
- end
1477
- end
1478
- if steal_session == true or user_steal == true then
1479
- local force_load_interrupted = if force_load_session ~= nil then not IsThisSession(force_load_session) else true
1480
- if force_load_interrupted == false or user_steal == true then
1481
- latest_data.MetaData.ActiveSession = {PlaceId, JobId, unique_session_id}
1482
- latest_data.MetaData.ForceLoadSession = nil
1483
- end
1484
- elseif request_force_load == true then
1485
- latest_data.MetaData.ForceLoadSession = {PlaceId, JobId}
1486
- end
1487
- else
1488
- latest_data.MetaData.ForceLoadSession = nil
1489
- end
1490
- end
1491
-
1492
- end,
1493
- MissingProfileHandle = function(latest_data)
1494
-
1495
- local is_cancel = ProfileStore.IsClosing == true or cancel_condition() == true
1496
-
1497
- latest_data.Data = DeepCopyTable(self.template)
1498
- latest_data.MetaData = {
1499
- ProfileCreateTime = os.time(),
1500
- SessionLoadCount = 0,
1501
- ActiveSession = if is_cancel == false then {PlaceId, JobId, unique_session_id} else nil,
1502
- ForceLoadSession = nil,
1503
- MetaTags = {}, -- Backwards compatibility with ProfileService
1504
- }
1505
-
1506
- end,
1507
- EditProfile = function(latest_data)
1508
-
1509
- if ProfileStore.IsClosing == true or cancel_condition() == true then
1510
- return
1511
- end
1512
-
1513
- local active_session = latest_data.MetaData.ActiveSession
1514
- if active_session ~= nil and IsThisSession(active_session) == true then
1515
- latest_data.MetaData.SessionLoadCount = latest_data.MetaData.SessionLoadCount + 1
1516
- latest_data.MetaData.LastUpdate = os.time()
1517
- end
1518
-
1519
- end,
1520
- },
1521
- is_mock
1522
- ))
1523
- if profile_load_job[1] == load_id then -- Load job hasn't been stolen
1524
- loaded_data, key_info = table.unpack(profile_load_job[2])
1525
- profile_load_jobs[profile_key] = nil
1526
- else
1527
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1528
- return nil -- Load job stolen
1529
- end
1530
- end
1531
-
1532
- -- Handle load_data:
1533
-
1534
- if loaded_data ~= nil and key_info ~= nil then
1535
- local active_session = loaded_data.MetaData.ActiveSession
1536
- if type(active_session) == "table" then
1537
-
1538
- if IsThisSession(active_session) == true then
1539
-
1540
- -- Profile is now taken by this session:
1541
-
1542
- local profile = Profile.New(loaded_data, key_info, self, profile_key, is_mock, session_token)
1543
- AddProfileToAutoSave(profile)
1544
-
1545
- if is_mock ~= true and DataStoreState == "Access" then
1546
-
1547
- -- Use MessagingService to quickly detect session conflicts and resolve them quickly:
1548
- task.spawn(RobloxMessageSubscription, profile, unique_session_id) -- Blocking prevention
1549
-
1550
- end
1551
-
1552
- if ProfileStore.IsClosing == true or cancel_condition() == true then
1553
- -- The server has initiated a shutdown by the time this profile was loaded
1554
- SaveProfileAsync(profile, true) -- Release profile and yield until the DataStore call is finished
1555
- profile = nil -- Don't return the profile object
1556
- end
1557
-
1558
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1559
- return profile
1560
-
1561
- else
1562
-
1563
- if ProfileStore.IsClosing == true or cancel_condition() == true then
1564
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1565
- return nil
1566
- end
1567
-
1568
- -- Profile is taken by some other session:
1569
-
1570
- local force_load_session = loaded_data.MetaData.ForceLoadSession
1571
- local force_load_interrupted = if force_load_session ~= nil then not IsThisSession(force_load_session) else true
1572
-
1573
- if force_load_interrupted == false then
1574
-
1575
- if request_force_load == false then
1576
- force_load_steps = force_load_steps + 1
1577
- if force_load_steps >= math.ceil(SESSION_STEAL / LOAD_REPEAT_PERIOD) then
1578
- steal_session = true
1579
- end
1580
- end
1581
-
1582
- -- Request the remote server to end its session:
1583
- if type(active_session[3]) == "string" then
1584
- local session_load_count = loaded_data.MetaData.SessionLoadCount or 0
1585
- task.spawn(MessagingService.PublishAsync, MessagingService, "PS_" .. active_session[3], {LoadCount = session_load_count, EndSession = true})
1586
- end
1587
-
1588
- -- Attempt to load the profile again after a delay
1589
- local wait_until = os.clock() + if request_force_load == true then FIRST_LOAD_REPEAT else LOAD_REPEAT_PERIOD
1590
- repeat task.wait() until os.clock() >= wait_until or ProfileStore.IsClosing == true
1591
-
1592
- else
1593
- -- Another session tried to load this profile:
1594
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1595
- return nil
1596
- end
1597
-
1598
- request_force_load = false -- Only request a force load once
1599
-
1600
- end
1601
-
1602
- else
1603
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1604
- return nil -- In this scenario it is likely that this server started shutting down
1605
- end
1606
- else
1607
-
1608
- -- A DataStore call has likely ended in an error:
1609
-
1610
- local default_timeout = false
1611
-
1612
- if params.Cancel == nil then
1613
- default_timeout = os.clock() - start >= START_SESSION_TIMEOUT
1614
- end
1615
-
1616
- if default_timeout == true or ProfileStore.IsClosing == true or cancel_condition() == true then
1617
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1618
- return nil
1619
- end
1620
-
1621
- task.wait(exp_backoff) -- Repeat the call shortly
1622
- exp_backoff = math.min(20, exp_backoff * 2)
1623
-
1624
- end
1625
-
1626
- end
1627
-
1628
- ActiveProfileLoadJobs = ActiveProfileLoadJobs - 1
1629
- return nil -- Game started shutting down or the request was cancelled - don't return the profile
1630
-
1631
- end
1632
-
1633
- function ProfileStore:MessageAsync(profile_key, message)
1634
-
1635
- local is_mock = ReadMockFlag()
1636
-
1637
- if type(profile_key) ~= "string" then
1638
- error(`[{script.Name}]: profile_key must be a string`)
1639
- elseif string.len(profile_key) == 0 then
1640
- error(`[{script.Name}]: Invalid profile_key`)
1641
- elseif string.len(profile_key) > 50 then
1642
- error(`[{script.Name}]: profile_key is too long`)
1643
- end
1644
-
1645
- if type(message) ~= "table" then
1646
- error(`[{script.Name}]: message must be a table`)
1647
- end
1648
-
1649
- if ProfileStore.IsClosing == true then
1650
- return false
1651
- end
1652
-
1653
- WaitForStoreReady(self)
1654
-
1655
- local exp_backoff = 1
1656
-
1657
- while ProfileStore.IsClosing == false do
1658
-
1659
- -- Updating profile:
1660
-
1661
- local loaded_data = UpdateAsync(
1662
- self,
1663
- profile_key,
1664
- {
1665
- ExistingProfileHandle = nil,
1666
- MissingProfileHandle = nil,
1667
- EditProfile = function(latest_data)
1668
-
1669
- local global_updates = latest_data.GlobalUpdates
1670
- local update_list = global_updates[2]
1671
- --{
1672
- -- update_index,
1673
- -- {
1674
- -- {update_index, data}, ...
1675
- -- },
1676
- --},
1677
-
1678
- global_updates[1] += 1
1679
- table.insert(update_list, {global_updates[1], message})
1680
-
1681
- -- Clearing queue if above limit:
1682
-
1683
- while #update_list > MAX_MESSAGE_QUEUE do
1684
- table.remove(update_list, 1)
1685
- end
1686
-
1687
- end,
1688
- },
1689
- is_mock
1690
- )
1691
-
1692
- if loaded_data ~= nil then
1693
-
1694
- local session_token = SessionToken(self.Name, profile_key, is_mock)
1695
-
1696
- local profile = ActiveSessionCheck[session_token]
1697
-
1698
- if profile ~= nil then
1699
-
1700
- -- The message was sent to a profile that is active in this server:
1701
- profile:Save()
1702
-
1703
- else
1704
-
1705
- local meta_data = loaded_data.MetaData or {}
1706
- local active_session = meta_data.ActiveSession
1707
- local session_load_count = meta_data.SessionLoadCount or 0
1708
-
1709
- if type(active_session) == "table" and type(active_session[3]) == "string" then
1710
- -- Request the remote server to auto-save sooner and receive the message:
1711
- task.spawn(MessagingService.PublishAsync, MessagingService, "PS_" .. active_session[3], {LoadCount = session_load_count})
1712
- end
1713
-
1714
- end
1715
-
1716
- return true
1717
-
1718
- else
1719
-
1720
- task.wait(exp_backoff) -- A DataStore call has likely ended in an error - repeat the call shortly
1721
- exp_backoff = math.min(20, exp_backoff * 2)
1722
-
1723
- end
1724
-
1725
- end
1726
-
1727
- return false
1728
-
1729
- end
1730
-
1731
- function ProfileStore:GetAsync(profile_key, version)
1732
-
1733
- local is_mock = ReadMockFlag()
1734
-
1735
- if type(profile_key) ~= "string" then
1736
- error(`[{script.Name}]: profile_key must be a string`)
1737
- elseif string.len(profile_key) == 0 then
1738
- error(`[{script.Name}]: Invalid profile_key`)
1739
- elseif string.len(profile_key) > 50 then
1740
- error(`[{script.Name}]: profile_key is too long`)
1741
- end
1742
-
1743
- if ProfileStore.IsClosing == true then
1744
- return nil
1745
- end
1746
-
1747
- WaitForStoreReady(self)
1748
-
1749
- if version ~= nil and (is_mock or DataStoreState ~= "Access") then
1750
- return nil -- No version support in mock mode
1751
- end
1752
-
1753
- local exp_backoff = 1
1754
-
1755
- while ProfileStore.IsClosing == false do
1756
-
1757
- -- Load profile:
1758
-
1759
- local loaded_data, key_info = UpdateAsync(
1760
- self,
1761
- profile_key,
1762
- {
1763
- ExistingProfileHandle = nil,
1764
- MissingProfileHandle = function(latest_data)
1765
-
1766
- latest_data.Data = DeepCopyTable(self.template)
1767
- latest_data.MetaData = {
1768
- ProfileCreateTime = os.time(),
1769
- SessionLoadCount = 0,
1770
- ActiveSession = nil,
1771
- ForceLoadSession = nil,
1772
- MetaTags = {}, -- Backwards compatibility with ProfileService
1773
- }
1774
-
1775
- end,
1776
- EditProfile = nil,
1777
- },
1778
- is_mock,
1779
- true, -- Use :GetAsync()
1780
- version -- DataStore key version
1781
- )
1782
-
1783
- -- Handle load_data:
1784
-
1785
- if loaded_data ~= nil then
1786
-
1787
- if key_info == nil then
1788
- return nil -- Load was successful, but the key was empty - return no profile object
1789
- end
1790
-
1791
- local profile = Profile.New(loaded_data, key_info, self, profile_key, is_mock)
1792
- profile.view_mode = true
1793
-
1794
- return profile
1795
-
1796
- else
1797
-
1798
- task.wait(exp_backoff) -- A DataStore call has likely ended in an error - repeat the call shortly
1799
- exp_backoff = math.min(20, exp_backoff * 2)
1800
-
1801
- end
1802
-
1803
- end
1804
-
1805
- return nil -- Game started shutting down - don't return the profile
1806
-
1807
- end
1808
-
1809
- function ProfileStore:RemoveAsync(profile_key)
1810
-
1811
- local is_mock = ReadMockFlag()
1812
-
1813
- if type(profile_key) ~= "string" or string.len(profile_key) == 0 then
1814
- error(`[{script.Name}]: Invalid profile_key`)
1815
- end
1816
-
1817
- if ProfileStore.IsClosing == true then
1818
- return false
1819
- end
1820
-
1821
- WaitForStoreReady(self)
1822
-
1823
- local wipe_status = false
1824
-
1825
- local next_in_queue = WaitInUpdateQueue(SessionToken(self.Name, profile_key, is_mock))
1826
-
1827
- if is_mock == true then -- Used when the profile is accessed through ProfileStore.Mock
1828
-
1829
- local mock_data_store = UserMockStore[self.Name]
1830
-
1831
- if mock_data_store ~= nil then
1832
- mock_data_store[profile_key] = nil
1833
- if next(mock_data_store) == nil then
1834
- UserMockStore[self.Name] = nil
1835
- end
1836
- end
1837
-
1838
- wipe_status = true
1839
- task.wait() -- Simulate API call yield
1840
-
1841
- elseif DataStoreState ~= "Access" then -- Used when API access is disabled
1842
-
1843
- local mock_data_store = MockStore[self.Name]
1844
-
1845
- if mock_data_store ~= nil then
1846
- mock_data_store[profile_key] = nil
1847
- if next(mock_data_store) == nil then
1848
- MockStore[self.Name] = nil
1849
- end
1850
- end
1851
-
1852
- wipe_status = true
1853
- task.wait() -- Simulate API call yield
1854
-
1855
- else -- Live DataStore
1856
-
1857
- wipe_status = pcall(function()
1858
- self.data_store:RemoveAsync(profile_key)
1859
- end)
1860
-
1861
- end
1862
-
1863
- next_in_queue()
1864
-
1865
- return wipe_status
1866
-
1867
- end
1868
-
1869
- local ProfileVersionQuery = {}
1870
- ProfileVersionQuery.__index = ProfileVersionQuery
1871
-
1872
- function ProfileVersionQuery.New(profile_store, profile_key, sort_direction, min_date, max_date, is_mock)
1873
-
1874
- local self = {
1875
- profile_store = profile_store,
1876
- profile_key = profile_key,
1877
- sort_direction = sort_direction,
1878
- min_date = min_date,
1879
- max_date = max_date,
1880
-
1881
- query_pages = nil,
1882
- query_index = 0,
1883
- query_failure = false,
1884
-
1885
- is_query_yielded = false,
1886
- query_queue = {},
1887
-
1888
- is_mock = is_mock,
1889
- }
1890
- setmetatable(self, ProfileVersionQuery)
1891
-
1892
- return self
1893
-
1894
- end
1895
-
1896
- function MoveVersionQueryQueue(self) -- Hidden ProfileVersionQuery method
1897
- while #self.query_queue > 0 do
1898
-
1899
- local queue_entry = table.remove(self.query_queue, 1)
1900
-
1901
- task.spawn(queue_entry)
1902
-
1903
- if self.is_query_yielded == true then
1904
- break
1905
- end
1906
-
1907
- end
1908
- end
1909
-
1910
- local VersionQueryNextAsyncStackingFlag = false
1911
- local WarnAboutVersionQueryOnce = false
1912
-
1913
- function ProfileVersionQuery:NextAsync()
1914
-
1915
- local is_stacking = VersionQueryNextAsyncStackingFlag == true
1916
- VersionQueryNextAsyncStackingFlag = false
1917
-
1918
- WaitForStoreReady(self.profile_store)
1919
-
1920
- if ProfileStore.IsClosing == true then
1921
- return nil -- Silently fail :NextAsync() requests
1922
- end
1923
-
1924
- if self.is_mock == true or DataStoreState ~= "Access" then
1925
- if IsStudio == true and WarnAboutVersionQueryOnce == false then
1926
- WarnAboutVersionQueryOnce = true
1927
- warn(`[{script.Name}]: :VersionQuery() is not supported in mock mode!`)
1928
- end
1929
- return nil -- Silently fail :NextAsync() requests
1930
- end
1931
-
1932
- local profile
1933
- local is_finished = false
1934
-
1935
- local function query_job()
1936
-
1937
- if self.query_failure == true then
1938
- is_finished = true
1939
- return
1940
- end
1941
-
1942
- -- First "next" call loads version pages:
1943
-
1944
- if self.query_pages == nil then
1945
-
1946
- self.is_query_yielded = true
1947
-
1948
- task.spawn(function()
1949
- VersionQueryNextAsyncStackingFlag = true
1950
- profile = self:NextAsync()
1951
- is_finished = true
1952
- end)
1953
-
1954
- local list_success, error_message = pcall(function()
1955
- self.query_pages = self.profile_store.data_store:ListVersionsAsync(
1956
- self.profile_key,
1957
- self.sort_direction,
1958
- self.min_date,
1959
- self.max_date
1960
- )
1961
- self.query_index = 0
1962
- end)
1963
-
1964
- if list_success == false or self.query_pages == nil then
1965
- warn(`[{script.Name}]: Version query fail - {tostring(error_message)}`)
1966
- self.query_failure = true
1967
- end
1968
-
1969
- self.is_query_yielded = false
1970
-
1971
- MoveVersionQueryQueue(self)
1972
-
1973
- return
1974
-
1975
- end
1976
-
1977
- local current_page = self.query_pages:GetCurrentPage()
1978
- local next_item = current_page[self.query_index + 1]
1979
-
1980
- -- No more entries:
1981
-
1982
- if self.query_pages.IsFinished == true and next_item == nil then
1983
- is_finished = true
1984
- return
1985
- end
1986
-
1987
- -- Load next page when this page is over:
1988
-
1989
- if next_item == nil then
1990
-
1991
- self.is_query_yielded = true
1992
- task.spawn(function()
1993
- VersionQueryNextAsyncStackingFlag = true
1994
- profile = self:NextAsync()
1995
- is_finished = true
1996
- end)
1997
-
1998
- local success, error_message = pcall(function()
1999
- self.query_pages:AdvanceToNextPageAsync()
2000
- self.query_index = 0
2001
- end)
2002
-
2003
- if success == false or #self.query_pages:GetCurrentPage() == 0 then
2004
- self.query_failure = true
2005
- end
2006
-
2007
- self.is_query_yielded = false
2008
- MoveVersionQueryQueue(self)
2009
-
2010
- return
2011
-
2012
- end
2013
-
2014
- -- Next page item:
2015
-
2016
- self.query_index += 1
2017
- profile = self.profile_store:GetAsync(self.profile_key, next_item.Version)
2018
- is_finished = true
2019
-
2020
- end
2021
-
2022
- if self.is_query_yielded == false then
2023
- query_job()
2024
- else
2025
- if is_stacking == true then
2026
- table.insert(self.query_queue, 1, query_job)
2027
- else
2028
- table.insert(self.query_queue, query_job)
2029
- end
2030
- end
2031
-
2032
- while is_finished == false do
2033
- task.wait()
2034
- end
2035
-
2036
- return profile
2037
-
2038
- end
2039
-
2040
- function ProfileStore:VersionQuery(profile_key, sort_direction, min_date, max_date)
2041
-
2042
- local is_mock = ReadMockFlag()
2043
-
2044
- if type(profile_key) ~= "string" or string.len(profile_key) == 0 then
2045
- error(`[{script.Name}]: Invalid profile_key`)
2046
- end
2047
-
2048
- -- Type check:
2049
-
2050
- if sort_direction ~= nil and (typeof(sort_direction) ~= "EnumItem"
2051
- or sort_direction.EnumType ~= Enum.SortDirection) then
2052
- error(`[{script.Name}]: Invalid sort_direction ({tostring(sort_direction)})`)
2053
- end
2054
-
2055
- if min_date ~= nil and typeof(min_date) ~= "DateTime" and typeof(min_date) ~= "number" then
2056
- error(`[{script.Name}]: Invalid min_date ({tostring(min_date)})`)
2057
- end
2058
-
2059
- if max_date ~= nil and typeof(max_date) ~= "DateTime" and typeof(max_date) ~= "number" then
2060
- error(`[{script.Name}]: Invalid max_date ({tostring(max_date)})`)
2061
- end
2062
-
2063
- min_date = typeof(min_date) == "DateTime" and min_date.UnixTimestampMillis or min_date
2064
- max_date = typeof(max_date) == "DateTime" and max_date.UnixTimestampMillis or max_date
2065
-
2066
- return ProfileVersionQuery.New(self, profile_key, sort_direction, min_date, max_date, is_mock)
2067
-
2068
- end
2069
-
2070
- -- DataStore API access check:
2071
-
2072
- if IsStudio == true then
2073
-
2074
- task.spawn(function()
2075
-
2076
- local new_state = "NoAccess"
2077
-
2078
- local status, message = pcall(function()
2079
- -- This will error if current instance has no Studio API access:
2080
- DataStoreService:GetDataStore("____PS"):SetAsync("____PS", os.time())
2081
- end)
2082
-
2083
- local no_internet_access = status == false and string.find(message, "ConnectFail", 1, true) ~= nil
2084
-
2085
- if no_internet_access == true then
2086
- warn(`[{script.Name}]: No internet access - check your network connection`)
2087
- end
2088
-
2089
- if status == false and
2090
- (string.find(message, "403", 1, true) ~= nil or -- Cannot write to DataStore from studio if API access is not enabled
2091
- string.find(message, "must publish", 1, true) ~= nil or -- Game must be published to access live keys
2092
- no_internet_access == true) then -- No internet access
2093
-
2094
- new_state = if no_internet_access == true then "NoInternet" else "NoAccess"
2095
- print(`[{script.Name}]: Roblox API services unavailable - data will not be saved`)
2096
- else
2097
- new_state = "Access"
2098
- print(`[{script.Name}]: Roblox API services available - data will be saved`)
2099
- end
2100
-
2101
- DataStoreState = new_state
2102
- ProfileStore.DataStoreState = new_state
2103
-
2104
- end)
2105
-
2106
- else
2107
-
2108
- DataStoreState = "Access"
2109
- ProfileStore.DataStoreState = "Access"
2110
-
2111
- end
2112
-
2113
- -- Update loop:
2114
-
2115
- RunService.Heartbeat:Connect(function()
2116
-
2117
- -- Auto saving:
2118
-
2119
- local auto_save_list_length = #AutoSaveList
2120
- if auto_save_list_length > 0 then
2121
- local auto_save_index_speed = AUTO_SAVE_PERIOD / auto_save_list_length
2122
- local os_clock = os.clock()
2123
- while os_clock - LastAutoSave > auto_save_index_speed do
2124
- LastAutoSave = LastAutoSave + auto_save_index_speed
2125
- local profile = AutoSaveList[AutoSaveIndex]
2126
- if os_clock - profile.load_timestamp < AUTO_SAVE_PERIOD / 2 then
2127
- -- This profile is freshly loaded - auto saving immediately is not necessary:
2128
- profile = nil
2129
- for _ = 1, auto_save_list_length - 1 do
2130
- -- Move auto save index to the right:
2131
- AutoSaveIndex = AutoSaveIndex + 1
2132
- if AutoSaveIndex > auto_save_list_length then
2133
- AutoSaveIndex = 1
2134
- end
2135
- profile = AutoSaveList[AutoSaveIndex]
2136
- if os_clock - profile.load_timestamp >= AUTO_SAVE_PERIOD / 2 then
2137
- break
2138
- else
2139
- profile = nil
2140
- end
2141
- end
2142
- end
2143
- -- Move auto save index to the right:
2144
- AutoSaveIndex = AutoSaveIndex + 1
2145
- if AutoSaveIndex > auto_save_list_length then
2146
- AutoSaveIndex = 1
2147
- end
2148
- -- Perform save call:
2149
- if profile ~= nil then
2150
- task.spawn(SaveProfileAsync, profile) -- Auto save profile in new thread
2151
- end
2152
- end
2153
- end
2154
-
2155
- -- Critical state handling:
2156
-
2157
- if ProfileStore.IsCriticalState == false then
2158
- if #IssueQueue >= CRITICAL_STATE_ERROR_COUNT then
2159
- ProfileStore.IsCriticalState = true
2160
- ProfileStore.OnCriticalToggle:Fire(true)
2161
- CriticalStateStart = os.clock()
2162
- warn(`[{script.Name}]: Entered critical state`)
2163
- end
2164
- else
2165
- if #IssueQueue >= CRITICAL_STATE_ERROR_COUNT then
2166
- CriticalStateStart = os.clock()
2167
- elseif os.clock() - CriticalStateStart > CRITICAL_STATE_EXPIRE then
2168
- ProfileStore.IsCriticalState = false
2169
- ProfileStore.OnCriticalToggle:Fire(false)
2170
- warn(`[{script.Name}]: Critical state ended`)
2171
- end
2172
- end
2173
-
2174
- -- Issue queue:
2175
-
2176
- while true do
2177
- local issue_time = IssueQueue[1]
2178
- if issue_time == nil then
2179
- break
2180
- elseif os.clock() - issue_time > CRITICAL_STATE_ERROR_EXPIRE then
2181
- table.remove(IssueQueue, 1)
2182
- else
2183
- break
2184
- end
2185
- end
2186
-
2187
- end)
2188
-
2189
- -- Release all loaded profiles when the server is shutting down:
2190
-
2191
- task.spawn(function()
2192
-
2193
- while DataStoreState == "NotReady" do
2194
- task.wait()
2195
- end
2196
-
2197
- if DataStoreState ~= "Access" then
2198
-
2199
- game:BindToClose(function()
2200
- ProfileStore.IsClosing = true
2201
- task.wait() -- Mock shutdown delay
2202
- end)
2203
-
2204
- return -- Don't wait for profiles to properly save in mock mode so studio could end the simulation faster
2205
-
2206
- end
2207
-
2208
- game:BindToClose(function()
2209
-
2210
- ProfileStore.IsClosing = true
2211
-
2212
- -- Release all active profiles:
2213
- -- (Clone AutoSaveList to a new table because AutoSaveList changes when profiles are released)
2214
-
2215
- local on_close_save_job_count = 0
2216
- local active_profiles = {}
2217
- for index, profile in ipairs(AutoSaveList) do
2218
- active_profiles[index] = profile
2219
- end
2220
-
2221
- -- Release the profiles; Releasing profiles can trigger listeners that release other profiles, so check active state:
2222
- for _, profile in ipairs(active_profiles) do
2223
- if profile:IsActive() == true then
2224
- on_close_save_job_count = on_close_save_job_count + 1
2225
- task.spawn(function() -- Save profile on new thread
2226
- SaveProfileAsync(profile, true, nil, "Shutdown")
2227
- on_close_save_job_count = on_close_save_job_count - 1
2228
- end)
2229
- end
2230
- end
2231
-
2232
- -- Yield until all active profile jobs are finished:
2233
- while on_close_save_job_count > 0 or ActiveProfileLoadJobs > 0 or ActiveProfileSaveJobs > 0 do
2234
- task.wait()
2235
- end
2236
-
2237
- return -- We're done!
2238
-
2239
- end)
2240
-
2241
- end)
2242
-
2243
- return ProfileStore