cluaupp 0.1.0

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 (760) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +119 -0
  4. package/bin/cluau.js +4 -0
  5. package/bin/cluaupp.js +4 -0
  6. package/docs/README.md +20 -0
  7. package/docs/architecture.md +110 -0
  8. package/docs/cli.md +69 -0
  9. package/docs/comparison.md +37 -0
  10. package/docs/config.md +31 -0
  11. package/docs/cpp-advanced.md +71 -0
  12. package/docs/cpp-const.md +52 -0
  13. package/docs/cpp-organization.md +61 -0
  14. package/docs/cpp-safety.md +58 -0
  15. package/docs/cpp-types.md +66 -0
  16. package/docs/getting-started.md +169 -0
  17. package/docs/intro.md +37 -0
  18. package/docs/libraries.md +77 -0
  19. package/docs/roblox-api.md +81 -0
  20. package/docs/syntax.md +131 -0
  21. package/include/cluaupp/datatypes.hpp +581 -0
  22. package/include/cluaupp/generated/enums.hpp +4920 -0
  23. package/include/cluaupp/generated/instances.hpp +12489 -0
  24. package/include/cluaupp/libs/chrono.hpp +26 -0
  25. package/include/cluaupp/libs/cmdr.hpp +16 -0
  26. package/include/cluaupp/libs/dataservice.hpp +141 -0
  27. package/include/cluaupp/libs/display.hpp +13 -0
  28. package/include/cluaupp/libs/ezvisual.hpp +18 -0
  29. package/include/cluaupp/libs/formatnumber.hpp +15 -0
  30. package/include/cluaupp/libs/fusion.hpp +41 -0
  31. package/include/cluaupp/libs/iris.hpp +40 -0
  32. package/include/cluaupp/libs/janitor.hpp +35 -0
  33. package/include/cluaupp/libs/math.hpp +14 -0
  34. package/include/cluaupp/libs/module3d.hpp +25 -0
  35. package/include/cluaupp/libs/net.hpp +42 -0
  36. package/include/cluaupp/libs/promise.hpp +30 -0
  37. package/include/cluaupp/libs/spring.hpp +18 -0
  38. package/include/cluaupp/libs/statemachine.hpp +19 -0
  39. package/include/cluaupp/libs/stickybillboard.hpp +14 -0
  40. package/include/cluaupp/libs/topbarplus.hpp +29 -0
  41. package/include/cluaupp/libs/twinkle.hpp +15 -0
  42. package/include/cluaupp/libs/vfx.hpp +13 -0
  43. package/include/cluaupp/libs.hpp +25 -0
  44. package/include/cluaupp/roblox.hpp +28 -0
  45. package/package.json +65 -0
  46. package/runtime/ArrayIndexer/init.luau +144 -0
  47. package/runtime/Chrono/Client/ClientClock.luau +202 -0
  48. package/runtime/Chrono/Client/InterpolationBuffer.luau +74 -0
  49. package/runtime/Chrono/Client/ModelResolver.luau +53 -0
  50. package/runtime/Chrono/Client/Player.luau +113 -0
  51. package/runtime/Chrono/Client/Receiver.luau +395 -0
  52. package/runtime/Chrono/Client/Replicate.luau +333 -0
  53. package/runtime/Chrono/Client/Sender.luau +205 -0
  54. package/runtime/Chrono/LICENSE +21 -0
  55. package/runtime/Chrono/Server/EntityGrid.luau +299 -0
  56. package/runtime/Chrono/Server/Player.luau +141 -0
  57. package/runtime/Chrono/Server/Receiver.luau +287 -0
  58. package/runtime/Chrono/Server/Replicate.luau +415 -0
  59. package/runtime/Chrono/Server/Sender.luau +306 -0
  60. package/runtime/Chrono/Server/ServerClock.luau +50 -0
  61. package/runtime/Chrono/Shared/ApplyMounts.luau +137 -0
  62. package/runtime/Chrono/Shared/Bin.luau +31 -0
  63. package/runtime/Chrono/Shared/ClockUnwrap.luau +70 -0
  64. package/runtime/Chrono/Shared/Config.luau +264 -0
  65. package/runtime/Chrono/Shared/Entity.luau +1016 -0
  66. package/runtime/Chrono/Shared/Events.luau +39 -0
  67. package/runtime/Chrono/Shared/Holder.luau +210 -0
  68. package/runtime/Chrono/Shared/InterpolationMath.luau +51 -0
  69. package/runtime/Chrono/Shared/ModelHelper.luau +122 -0
  70. package/runtime/Chrono/Shared/Remotes/ClientClockRelay.model.json +3 -0
  71. package/runtime/Chrono/Shared/Remotes/ClientHeartbeat.model.json +3 -0
  72. package/runtime/Chrono/Shared/Remotes/ClientLoaded.model.json +3 -0
  73. package/runtime/Chrono/Shared/Remotes/Death.model.json +3 -0
  74. package/runtime/Chrono/Shared/Remotes/Heartbeat.model.json +3 -0
  75. package/runtime/Chrono/Shared/Remotes/Replicate.model.json +3 -0
  76. package/runtime/Chrono/Shared/Remotes/ReplicateFull.model.json +3 -0
  77. package/runtime/Chrono/Shared/Remotes/SafeReplicate.model.json +3 -0
  78. package/runtime/Chrono/Shared/ReplicationRules.luau +122 -0
  79. package/runtime/Chrono/Shared/Signal.luau +219 -0
  80. package/runtime/Chrono/Shared/Snapshots.luau +218 -0
  81. package/runtime/Chrono/Shared/Stats.luau +204 -0
  82. package/runtime/Chrono/Shared/Ticker.luau +112 -0
  83. package/runtime/Chrono/Shared/Types.luau +247 -0
  84. package/runtime/Chrono/Shared/Warn.luau +33 -0
  85. package/runtime/Chrono/Shared/_CUSTOM_MODEL_REP/init.model.json +3 -0
  86. package/runtime/Chrono/_impl/Client/ClientClock.luau +202 -0
  87. package/runtime/Chrono/_impl/Client/InterpolationBuffer.luau +74 -0
  88. package/runtime/Chrono/_impl/Client/ModelResolver.luau +53 -0
  89. package/runtime/Chrono/_impl/Client/Player.luau +113 -0
  90. package/runtime/Chrono/_impl/Client/Receiver.luau +395 -0
  91. package/runtime/Chrono/_impl/Client/Replicate.luau +333 -0
  92. package/runtime/Chrono/_impl/Client/Sender.luau +205 -0
  93. package/runtime/Chrono/_impl/LICENSE +21 -0
  94. package/runtime/Chrono/_impl/Server/EntityGrid.luau +299 -0
  95. package/runtime/Chrono/_impl/Server/Player.luau +141 -0
  96. package/runtime/Chrono/_impl/Server/Receiver.luau +287 -0
  97. package/runtime/Chrono/_impl/Server/Replicate.luau +415 -0
  98. package/runtime/Chrono/_impl/Server/Sender.luau +306 -0
  99. package/runtime/Chrono/_impl/Server/ServerClock.luau +50 -0
  100. package/runtime/Chrono/_impl/Shared/ApplyMounts.luau +137 -0
  101. package/runtime/Chrono/_impl/Shared/Bin.luau +31 -0
  102. package/runtime/Chrono/_impl/Shared/ClockUnwrap.luau +70 -0
  103. package/runtime/Chrono/_impl/Shared/Config.luau +264 -0
  104. package/runtime/Chrono/_impl/Shared/Entity.luau +1016 -0
  105. package/runtime/Chrono/_impl/Shared/Events.luau +39 -0
  106. package/runtime/Chrono/_impl/Shared/Holder.luau +210 -0
  107. package/runtime/Chrono/_impl/Shared/InterpolationMath.luau +51 -0
  108. package/runtime/Chrono/_impl/Shared/ModelHelper.luau +122 -0
  109. package/runtime/Chrono/_impl/Shared/Remotes/ClientClockRelay.model.json +3 -0
  110. package/runtime/Chrono/_impl/Shared/Remotes/ClientHeartbeat.model.json +3 -0
  111. package/runtime/Chrono/_impl/Shared/Remotes/ClientLoaded.model.json +3 -0
  112. package/runtime/Chrono/_impl/Shared/Remotes/Death.model.json +3 -0
  113. package/runtime/Chrono/_impl/Shared/Remotes/Heartbeat.model.json +3 -0
  114. package/runtime/Chrono/_impl/Shared/Remotes/Replicate.model.json +3 -0
  115. package/runtime/Chrono/_impl/Shared/Remotes/ReplicateFull.model.json +3 -0
  116. package/runtime/Chrono/_impl/Shared/Remotes/SafeReplicate.model.json +3 -0
  117. package/runtime/Chrono/_impl/Shared/ReplicationRules.luau +122 -0
  118. package/runtime/Chrono/_impl/Shared/Signal.luau +219 -0
  119. package/runtime/Chrono/_impl/Shared/Snapshots.luau +218 -0
  120. package/runtime/Chrono/_impl/Shared/Stats.luau +204 -0
  121. package/runtime/Chrono/_impl/Shared/Ticker.luau +112 -0
  122. package/runtime/Chrono/_impl/Shared/Types.luau +247 -0
  123. package/runtime/Chrono/_impl/Shared/Warn.luau +33 -0
  124. package/runtime/Chrono/_impl/Shared/_CUSTOM_MODEL_REP/init.model.json +3 -0
  125. package/runtime/Chrono/_impl/init.luau +96 -0
  126. package/runtime/Chrono/init.luau +14 -0
  127. package/runtime/Cmdr/BuiltInCommands/Admin/announce.luau +21 -0
  128. package/runtime/Cmdr/BuiltInCommands/Admin/announceServer.luau +17 -0
  129. package/runtime/Cmdr/BuiltInCommands/Admin/ban.luau +59 -0
  130. package/runtime/Cmdr/BuiltInCommands/Admin/banServer.luau +30 -0
  131. package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlace.luau +35 -0
  132. package/runtime/Cmdr/BuiltInCommands/Admin/gotoPlaceServer.luau +17 -0
  133. package/runtime/Cmdr/BuiltInCommands/Admin/kick.luau +19 -0
  134. package/runtime/Cmdr/BuiltInCommands/Admin/kickServer.luau +27 -0
  135. package/runtime/Cmdr/BuiltInCommands/Admin/kill.luau +13 -0
  136. package/runtime/Cmdr/BuiltInCommands/Admin/killServer.luau +13 -0
  137. package/runtime/Cmdr/BuiltInCommands/Admin/respawn.luau +15 -0
  138. package/runtime/Cmdr/BuiltInCommands/Admin/respawnServer.luau +7 -0
  139. package/runtime/Cmdr/BuiltInCommands/Admin/teleport.luau +30 -0
  140. package/runtime/Cmdr/BuiltInCommands/Admin/teleportServer.luau +26 -0
  141. package/runtime/Cmdr/BuiltInCommands/Admin/unban.luau +26 -0
  142. package/runtime/Cmdr/BuiltInCommands/Admin/unbanServer.luau +10 -0
  143. package/runtime/Cmdr/BuiltInCommands/Debug/blink.luau +35 -0
  144. package/runtime/Cmdr/BuiltInCommands/Debug/fetch.luau +12 -0
  145. package/runtime/Cmdr/BuiltInCommands/Debug/fetchServer.luau +7 -0
  146. package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +20 -0
  147. package/runtime/Cmdr/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +28 -0
  148. package/runtime/Cmdr/BuiltInCommands/Debug/position.luau +30 -0
  149. package/runtime/Cmdr/BuiltInCommands/Debug/thru.luau +50 -0
  150. package/runtime/Cmdr/BuiltInCommands/Debug/uptime.luau +6 -0
  151. package/runtime/Cmdr/BuiltInCommands/Debug/uptimeServer.luau +12 -0
  152. package/runtime/Cmdr/BuiltInCommands/Debug/version.luau +12 -0
  153. package/runtime/Cmdr/BuiltInCommands/Utility/alias.luau +22 -0
  154. package/runtime/Cmdr/BuiltInCommands/Utility/bind.luau +104 -0
  155. package/runtime/Cmdr/BuiltInCommands/Utility/clear.luau +20 -0
  156. package/runtime/Cmdr/BuiltInCommands/Utility/convertTimestamp.luau +18 -0
  157. package/runtime/Cmdr/BuiltInCommands/Utility/echo.luau +17 -0
  158. package/runtime/Cmdr/BuiltInCommands/Utility/edit.luau +75 -0
  159. package/runtime/Cmdr/BuiltInCommands/Utility/exit.luau +11 -0
  160. package/runtime/Cmdr/BuiltInCommands/Utility/history.luau +27 -0
  161. package/runtime/Cmdr/BuiltInCommands/Utility/hover.luau +21 -0
  162. package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayDecode.luau +25 -0
  163. package/runtime/Cmdr/BuiltInCommands/Utility/jsonArrayEncode.luau +18 -0
  164. package/runtime/Cmdr/BuiltInCommands/Utility/len.luau +16 -0
  165. package/runtime/Cmdr/BuiltInCommands/Utility/math.luau +36 -0
  166. package/runtime/Cmdr/BuiltInCommands/Utility/pick.luau +21 -0
  167. package/runtime/Cmdr/BuiltInCommands/Utility/rand.luau +27 -0
  168. package/runtime/Cmdr/BuiltInCommands/Utility/replace.luau +32 -0
  169. package/runtime/Cmdr/BuiltInCommands/Utility/resolve.luau +32 -0
  170. package/runtime/Cmdr/BuiltInCommands/Utility/run.luau +20 -0
  171. package/runtime/Cmdr/BuiltInCommands/Utility/runLines.luau +34 -0
  172. package/runtime/Cmdr/BuiltInCommands/Utility/runif.luau +95 -0
  173. package/runtime/Cmdr/BuiltInCommands/Utility/unbind.luau +27 -0
  174. package/runtime/Cmdr/BuiltInCommands/Utility/var.luau +29 -0
  175. package/runtime/Cmdr/BuiltInCommands/Utility/varServer.luau +37 -0
  176. package/runtime/Cmdr/BuiltInCommands/Utility/varSet.luau +30 -0
  177. package/runtime/Cmdr/BuiltInCommands/Utility/varSetServer.luau +29 -0
  178. package/runtime/Cmdr/BuiltInCommands/help.luau +96 -0
  179. package/runtime/Cmdr/BuiltInTypes/BrickColor.luau +258 -0
  180. package/runtime/Cmdr/BuiltInTypes/Color3.luau +59 -0
  181. package/runtime/Cmdr/BuiltInTypes/Command.luau +23 -0
  182. package/runtime/Cmdr/BuiltInTypes/Duration.luau +111 -0
  183. package/runtime/Cmdr/BuiltInTypes/JSON.luau +13 -0
  184. package/runtime/Cmdr/BuiltInTypes/MathOperator.luau +43 -0
  185. package/runtime/Cmdr/BuiltInTypes/Player.luau +36 -0
  186. package/runtime/Cmdr/BuiltInTypes/PlayerId.luau +66 -0
  187. package/runtime/Cmdr/BuiltInTypes/Primitives.luau +145 -0
  188. package/runtime/Cmdr/BuiltInTypes/StoredKey.luau +33 -0
  189. package/runtime/Cmdr/BuiltInTypes/Team.luau +49 -0
  190. package/runtime/Cmdr/BuiltInTypes/Type.luau +23 -0
  191. package/runtime/Cmdr/BuiltInTypes/URL.luau +18 -0
  192. package/runtime/Cmdr/BuiltInTypes/UserInput.luau +32 -0
  193. package/runtime/Cmdr/BuiltInTypes/Vector.luau +58 -0
  194. package/runtime/Cmdr/CmdrClient/CmdrInterface/AutoComplete.luau +240 -0
  195. package/runtime/Cmdr/CmdrClient/CmdrInterface/CreateGui.luau +227 -0
  196. package/runtime/Cmdr/CmdrClient/CmdrInterface/Window.luau +713 -0
  197. package/runtime/Cmdr/CmdrClient/CmdrInterface/init.luau +18 -0
  198. package/runtime/Cmdr/CmdrClient/DefaultEventHandlers.luau +18 -0
  199. package/runtime/Cmdr/CmdrClient/Shared/Argument.luau +395 -0
  200. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +39 -0
  201. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +36 -0
  202. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +10 -0
  203. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +10 -0
  204. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +10 -0
  205. package/runtime/Cmdr/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +8 -0
  206. package/runtime/Cmdr/CmdrClient/Shared/Command.luau +415 -0
  207. package/runtime/Cmdr/CmdrClient/Shared/Dispatcher.luau +407 -0
  208. package/runtime/Cmdr/CmdrClient/Shared/Registry.luau +717 -0
  209. package/runtime/Cmdr/CmdrClient/Shared/Util.luau +879 -0
  210. package/runtime/Cmdr/CmdrClient/init.luau +377 -0
  211. package/runtime/Cmdr/LICENSE +21 -0
  212. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announce.luau +21 -0
  213. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/announceServer.luau +17 -0
  214. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/ban.luau +59 -0
  215. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/banServer.luau +30 -0
  216. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlace.luau +35 -0
  217. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/gotoPlaceServer.luau +17 -0
  218. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kick.luau +19 -0
  219. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kickServer.luau +27 -0
  220. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/kill.luau +13 -0
  221. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/killServer.luau +13 -0
  222. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawn.luau +15 -0
  223. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/respawnServer.luau +7 -0
  224. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleport.luau +30 -0
  225. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/teleportServer.luau +26 -0
  226. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unban.luau +26 -0
  227. package/runtime/Cmdr/_impl/BuiltInCommands/Admin/unbanServer.luau +10 -0
  228. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/blink.luau +35 -0
  229. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetch.luau +12 -0
  230. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/fetchServer.luau +7 -0
  231. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstance.luau +20 -0
  232. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/getPlayerPlaceInstanceServer.luau +28 -0
  233. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/position.luau +30 -0
  234. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/thru.luau +50 -0
  235. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptime.luau +6 -0
  236. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/uptimeServer.luau +12 -0
  237. package/runtime/Cmdr/_impl/BuiltInCommands/Debug/version.luau +12 -0
  238. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/alias.luau +22 -0
  239. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/bind.luau +104 -0
  240. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/clear.luau +20 -0
  241. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/convertTimestamp.luau +18 -0
  242. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/echo.luau +17 -0
  243. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/edit.luau +75 -0
  244. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/exit.luau +11 -0
  245. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/history.luau +27 -0
  246. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/hover.luau +21 -0
  247. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayDecode.luau +25 -0
  248. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/jsonArrayEncode.luau +18 -0
  249. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/len.luau +16 -0
  250. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/math.luau +36 -0
  251. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/pick.luau +21 -0
  252. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/rand.luau +27 -0
  253. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/replace.luau +32 -0
  254. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/resolve.luau +32 -0
  255. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/run.luau +20 -0
  256. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runLines.luau +34 -0
  257. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/runif.luau +95 -0
  258. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/unbind.luau +27 -0
  259. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/var.luau +29 -0
  260. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varServer.luau +37 -0
  261. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSet.luau +30 -0
  262. package/runtime/Cmdr/_impl/BuiltInCommands/Utility/varSetServer.luau +29 -0
  263. package/runtime/Cmdr/_impl/BuiltInCommands/help.luau +96 -0
  264. package/runtime/Cmdr/_impl/BuiltInTypes/BrickColor.luau +258 -0
  265. package/runtime/Cmdr/_impl/BuiltInTypes/Color3.luau +59 -0
  266. package/runtime/Cmdr/_impl/BuiltInTypes/Command.luau +23 -0
  267. package/runtime/Cmdr/_impl/BuiltInTypes/Duration.luau +111 -0
  268. package/runtime/Cmdr/_impl/BuiltInTypes/JSON.luau +13 -0
  269. package/runtime/Cmdr/_impl/BuiltInTypes/MathOperator.luau +43 -0
  270. package/runtime/Cmdr/_impl/BuiltInTypes/Player.luau +36 -0
  271. package/runtime/Cmdr/_impl/BuiltInTypes/PlayerId.luau +66 -0
  272. package/runtime/Cmdr/_impl/BuiltInTypes/Primitives.luau +145 -0
  273. package/runtime/Cmdr/_impl/BuiltInTypes/StoredKey.luau +33 -0
  274. package/runtime/Cmdr/_impl/BuiltInTypes/Team.luau +49 -0
  275. package/runtime/Cmdr/_impl/BuiltInTypes/Type.luau +23 -0
  276. package/runtime/Cmdr/_impl/BuiltInTypes/URL.luau +18 -0
  277. package/runtime/Cmdr/_impl/BuiltInTypes/UserInput.luau +32 -0
  278. package/runtime/Cmdr/_impl/BuiltInTypes/Vector.luau +58 -0
  279. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/AutoComplete.luau +240 -0
  280. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/CreateGui.luau +227 -0
  281. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/Window.luau +713 -0
  282. package/runtime/Cmdr/_impl/CmdrClient/CmdrInterface/init.luau +18 -0
  283. package/runtime/Cmdr/_impl/CmdrClient/DefaultEventHandlers.luau +18 -0
  284. package/runtime/Cmdr/_impl/CmdrClient/Shared/Argument.luau +395 -0
  285. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/HasCharacter.luau +39 -0
  286. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/IsDataStoreAvailable.luau +36 -0
  287. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxArrayLength.luau +10 -0
  288. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/MaxStringLength.luau +10 -0
  289. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NonEmptyString.luau +10 -0
  290. package/runtime/Cmdr/_impl/CmdrClient/Shared/BuiltInGuards/NotEquals.luau +8 -0
  291. package/runtime/Cmdr/_impl/CmdrClient/Shared/Command.luau +415 -0
  292. package/runtime/Cmdr/_impl/CmdrClient/Shared/Dispatcher.luau +407 -0
  293. package/runtime/Cmdr/_impl/CmdrClient/Shared/Registry.luau +717 -0
  294. package/runtime/Cmdr/_impl/CmdrClient/Shared/Util.luau +879 -0
  295. package/runtime/Cmdr/_impl/CmdrClient/init.luau +377 -0
  296. package/runtime/Cmdr/_impl/LICENSE +21 -0
  297. package/runtime/Cmdr/_impl/init.luau +178 -0
  298. package/runtime/Cmdr/init.luau +8 -0
  299. package/runtime/DataService/Client.luau +209 -0
  300. package/runtime/DataService/Data.luau +886 -0
  301. package/runtime/DataService/Enum.luau +6 -0
  302. package/runtime/DataService/Enums.luau +10 -0
  303. package/runtime/DataService/Packages/quicknet/DataTypes.luau +70 -0
  304. package/runtime/DataService/Packages/quicknet/Enums.luau +85 -0
  305. package/runtime/DataService/Packages/quicknet/EnumsToNativeTypes.luau +57 -0
  306. package/runtime/DataService/Packages/quicknet/Parser.luau +355 -0
  307. package/runtime/DataService/Packages/quicknet/QuickNet.luau +953 -0
  308. package/runtime/DataService/Packages/quicknet/Serialize.luau +2020 -0
  309. package/runtime/DataService/Packages/quicknet/Types.luau +72 -0
  310. package/runtime/DataService/Packages/quicknet/init.luau +1 -0
  311. package/runtime/DataService/Packages/signal/init.luau +433 -0
  312. package/runtime/DataService/Path.luau +236 -0
  313. package/runtime/DataService/ProfileStore.luau +2243 -0
  314. package/runtime/DataService/Replicator.luau +172 -0
  315. package/runtime/DataService/Server.luau +412 -0
  316. package/runtime/DataService/init.luau +204 -0
  317. package/runtime/Display/LICENSE +201 -0
  318. package/runtime/Display/_impl/LICENSE +201 -0
  319. package/runtime/Display/_impl/init.luau +269 -0
  320. package/runtime/Display/_impl/option.luau +237 -0
  321. package/runtime/Display/init.luau +10 -0
  322. package/runtime/Display/option.luau +237 -0
  323. package/runtime/EzVisualz/Dropshadow.luau +148 -0
  324. package/runtime/EzVisualz/Gradient.luau +452 -0
  325. package/runtime/EzVisualz/GradientTemplates/Bubblegum.luau +16 -0
  326. package/runtime/EzVisualz/GradientTemplates/Chrome.luau +16 -0
  327. package/runtime/EzVisualz/GradientTemplates/Death.luau +15 -0
  328. package/runtime/EzVisualz/GradientTemplates/Electric.luau +14 -0
  329. package/runtime/EzVisualz/GradientTemplates/Fire.luau +13 -0
  330. package/runtime/EzVisualz/GradientTemplates/Galaxy.luau +11 -0
  331. package/runtime/EzVisualz/GradientTemplates/Ghost.luau +16 -0
  332. package/runtime/EzVisualz/GradientTemplates/Gold.luau +14 -0
  333. package/runtime/EzVisualz/GradientTemplates/Green.luau +14 -0
  334. package/runtime/EzVisualz/GradientTemplates/Ice.luau +14 -0
  335. package/runtime/EzVisualz/GradientTemplates/Lava.luau +15 -0
  336. package/runtime/EzVisualz/GradientTemplates/Matrix.luau +19 -0
  337. package/runtime/EzVisualz/GradientTemplates/Neon.luau +12 -0
  338. package/runtime/EzVisualz/GradientTemplates/Oceanic.luau +15 -0
  339. package/runtime/EzVisualz/GradientTemplates/Rainbow.luau +13 -0
  340. package/runtime/EzVisualz/GradientTemplates/Silver.luau +12 -0
  341. package/runtime/EzVisualz/GradientTemplates/Sunset.luau +11 -0
  342. package/runtime/EzVisualz/GradientTemplates/Zebra.luau +18 -0
  343. package/runtime/EzVisualz/GradientTemplates/init.luau +9 -0
  344. package/runtime/EzVisualz/LICENSE.md +21 -0
  345. package/runtime/EzVisualz/Presets/Bubblegum.luau +36 -0
  346. package/runtime/EzVisualz/Presets/ChromeStroke.luau +15 -0
  347. package/runtime/EzVisualz/Presets/DeathStroke.luau +15 -0
  348. package/runtime/EzVisualz/Presets/ElectricStroke.luau +54 -0
  349. package/runtime/EzVisualz/Presets/FireStroke.luau +29 -0
  350. package/runtime/EzVisualz/Presets/GalaxyStroke.luau +31 -0
  351. package/runtime/EzVisualz/Presets/Ghost.luau +10 -0
  352. package/runtime/EzVisualz/Presets/GhostStroke.luau +15 -0
  353. package/runtime/EzVisualz/Presets/Gold.luau +10 -0
  354. package/runtime/EzVisualz/Presets/GoldStroke.luau +15 -0
  355. package/runtime/EzVisualz/Presets/GreenOutline.luau +23 -0
  356. package/runtime/EzVisualz/Presets/IceStroke.luau +15 -0
  357. package/runtime/EzVisualz/Presets/Lava.luau +9 -0
  358. package/runtime/EzVisualz/Presets/LavaStroke.luau +13 -0
  359. package/runtime/EzVisualz/Presets/Matrix.luau +21 -0
  360. package/runtime/EzVisualz/Presets/NeonStroke.luau +30 -0
  361. package/runtime/EzVisualz/Presets/OceanicStroke.luau +15 -0
  362. package/runtime/EzVisualz/Presets/Rainbow.luau +9 -0
  363. package/runtime/EzVisualz/Presets/RainbowOutline.luau +23 -0
  364. package/runtime/EzVisualz/Presets/RainbowStroke.luau +13 -0
  365. package/runtime/EzVisualz/Presets/Shine.luau +48 -0
  366. package/runtime/EzVisualz/Presets/ShineOutline.luau +66 -0
  367. package/runtime/EzVisualz/Presets/Silver.luau +10 -0
  368. package/runtime/EzVisualz/Presets/SilverStroke.luau +15 -0
  369. package/runtime/EzVisualz/Presets/SunsetStroke.luau +31 -0
  370. package/runtime/EzVisualz/Presets/WaveStroke.luau +33 -0
  371. package/runtime/EzVisualz/Presets/Zebra.luau +21 -0
  372. package/runtime/EzVisualz/Presets/init.luau +9 -0
  373. package/runtime/EzVisualz/Stroke.luau +167 -0
  374. package/runtime/EzVisualz/Util.luau +7 -0
  375. package/runtime/EzVisualz/_impl/Dropshadow.luau +148 -0
  376. package/runtime/EzVisualz/_impl/Gradient.luau +452 -0
  377. package/runtime/EzVisualz/_impl/GradientTemplates/Bubblegum.luau +16 -0
  378. package/runtime/EzVisualz/_impl/GradientTemplates/Chrome.luau +16 -0
  379. package/runtime/EzVisualz/_impl/GradientTemplates/Death.luau +15 -0
  380. package/runtime/EzVisualz/_impl/GradientTemplates/Electric.luau +14 -0
  381. package/runtime/EzVisualz/_impl/GradientTemplates/Fire.luau +13 -0
  382. package/runtime/EzVisualz/_impl/GradientTemplates/Galaxy.luau +11 -0
  383. package/runtime/EzVisualz/_impl/GradientTemplates/Ghost.luau +16 -0
  384. package/runtime/EzVisualz/_impl/GradientTemplates/Gold.luau +14 -0
  385. package/runtime/EzVisualz/_impl/GradientTemplates/Green.luau +14 -0
  386. package/runtime/EzVisualz/_impl/GradientTemplates/Ice.luau +14 -0
  387. package/runtime/EzVisualz/_impl/GradientTemplates/Lava.luau +15 -0
  388. package/runtime/EzVisualz/_impl/GradientTemplates/Matrix.luau +19 -0
  389. package/runtime/EzVisualz/_impl/GradientTemplates/Neon.luau +12 -0
  390. package/runtime/EzVisualz/_impl/GradientTemplates/Oceanic.luau +15 -0
  391. package/runtime/EzVisualz/_impl/GradientTemplates/Rainbow.luau +13 -0
  392. package/runtime/EzVisualz/_impl/GradientTemplates/Silver.luau +12 -0
  393. package/runtime/EzVisualz/_impl/GradientTemplates/Sunset.luau +11 -0
  394. package/runtime/EzVisualz/_impl/GradientTemplates/Zebra.luau +18 -0
  395. package/runtime/EzVisualz/_impl/GradientTemplates/init.luau +9 -0
  396. package/runtime/EzVisualz/_impl/LICENSE.md +21 -0
  397. package/runtime/EzVisualz/_impl/Presets/Bubblegum.luau +36 -0
  398. package/runtime/EzVisualz/_impl/Presets/ChromeStroke.luau +15 -0
  399. package/runtime/EzVisualz/_impl/Presets/DeathStroke.luau +15 -0
  400. package/runtime/EzVisualz/_impl/Presets/ElectricStroke.luau +54 -0
  401. package/runtime/EzVisualz/_impl/Presets/FireStroke.luau +29 -0
  402. package/runtime/EzVisualz/_impl/Presets/GalaxyStroke.luau +31 -0
  403. package/runtime/EzVisualz/_impl/Presets/Ghost.luau +10 -0
  404. package/runtime/EzVisualz/_impl/Presets/GhostStroke.luau +15 -0
  405. package/runtime/EzVisualz/_impl/Presets/Gold.luau +10 -0
  406. package/runtime/EzVisualz/_impl/Presets/GoldStroke.luau +15 -0
  407. package/runtime/EzVisualz/_impl/Presets/GreenOutline.luau +23 -0
  408. package/runtime/EzVisualz/_impl/Presets/IceStroke.luau +15 -0
  409. package/runtime/EzVisualz/_impl/Presets/Lava.luau +9 -0
  410. package/runtime/EzVisualz/_impl/Presets/LavaStroke.luau +13 -0
  411. package/runtime/EzVisualz/_impl/Presets/Matrix.luau +21 -0
  412. package/runtime/EzVisualz/_impl/Presets/NeonStroke.luau +30 -0
  413. package/runtime/EzVisualz/_impl/Presets/OceanicStroke.luau +15 -0
  414. package/runtime/EzVisualz/_impl/Presets/Rainbow.luau +9 -0
  415. package/runtime/EzVisualz/_impl/Presets/RainbowOutline.luau +23 -0
  416. package/runtime/EzVisualz/_impl/Presets/RainbowStroke.luau +13 -0
  417. package/runtime/EzVisualz/_impl/Presets/Shine.luau +48 -0
  418. package/runtime/EzVisualz/_impl/Presets/ShineOutline.luau +66 -0
  419. package/runtime/EzVisualz/_impl/Presets/Silver.luau +10 -0
  420. package/runtime/EzVisualz/_impl/Presets/SilverStroke.luau +15 -0
  421. package/runtime/EzVisualz/_impl/Presets/SunsetStroke.luau +31 -0
  422. package/runtime/EzVisualz/_impl/Presets/WaveStroke.luau +33 -0
  423. package/runtime/EzVisualz/_impl/Presets/Zebra.luau +21 -0
  424. package/runtime/EzVisualz/_impl/Presets/init.luau +9 -0
  425. package/runtime/EzVisualz/_impl/Stroke.luau +167 -0
  426. package/runtime/EzVisualz/_impl/Util.luau +7 -0
  427. package/runtime/EzVisualz/_impl/init.luau +319 -0
  428. package/runtime/EzVisualz/_impl/wally.lock +8 -0
  429. package/runtime/EzVisualz/_impl/wally.toml +8 -0
  430. package/runtime/EzVisualz/init.luau +9 -0
  431. package/runtime/EzVisualz/wally.lock +8 -0
  432. package/runtime/EzVisualz/wally.toml +8 -0
  433. package/runtime/FormatNumber/LICENSE.md +25 -0
  434. package/runtime/FormatNumber/Main/DecimalFormatSymbols.lua +43 -0
  435. package/runtime/FormatNumber/Main/IntegerWidth.lua +41 -0
  436. package/runtime/FormatNumber/Main/Notation.lua +116 -0
  437. package/runtime/FormatNumber/Main/Precision.lua +179 -0
  438. package/runtime/FormatNumber/Main/init.lua +199 -0
  439. package/runtime/FormatNumber/Simple/init.lua +76 -0
  440. package/runtime/FormatNumber/Version.lua +82 -0
  441. package/runtime/FormatNumber/_impl/LICENSE.md +25 -0
  442. package/runtime/FormatNumber/_impl/Main/DecimalFormatSymbols.lua +43 -0
  443. package/runtime/FormatNumber/_impl/Main/IntegerWidth.lua +41 -0
  444. package/runtime/FormatNumber/_impl/Main/Notation.lua +116 -0
  445. package/runtime/FormatNumber/_impl/Main/Precision.lua +179 -0
  446. package/runtime/FormatNumber/_impl/Main/init.lua +199 -0
  447. package/runtime/FormatNumber/_impl/Simple/init.lua +76 -0
  448. package/runtime/FormatNumber/_impl/Version.lua +82 -0
  449. package/runtime/FormatNumber/_impl/_internal/class.lua +204 -0
  450. package/runtime/FormatNumber/_impl/_internal/decimal_conversion.lua +30 -0
  451. package/runtime/FormatNumber/_impl/_internal/enums.lua +55 -0
  452. package/runtime/FormatNumber/_impl/_internal/format.lua +342 -0
  453. package/runtime/FormatNumber/_impl/_internal/formatter_settings.lua +160 -0
  454. package/runtime/FormatNumber/_impl/_internal/init.lua +8 -0
  455. package/runtime/FormatNumber/_impl/_internal/skeleton.lua +541 -0
  456. package/runtime/FormatNumber/_impl/init.lua +20 -0
  457. package/runtime/FormatNumber/_internal/class.lua +204 -0
  458. package/runtime/FormatNumber/_internal/decimal_conversion.lua +30 -0
  459. package/runtime/FormatNumber/_internal/enums.lua +55 -0
  460. package/runtime/FormatNumber/_internal/format.lua +342 -0
  461. package/runtime/FormatNumber/_internal/formatter_settings.lua +160 -0
  462. package/runtime/FormatNumber/_internal/init.lua +8 -0
  463. package/runtime/FormatNumber/_internal/skeleton.lua +541 -0
  464. package/runtime/FormatNumber/init.lua +20 -0
  465. package/runtime/FormatNumber/init.luau +20 -0
  466. package/runtime/Fusion/Animation/ExternalTime.luau +84 -0
  467. package/runtime/Fusion/Animation/Spring.luau +313 -0
  468. package/runtime/Fusion/Animation/Stopwatch.luau +128 -0
  469. package/runtime/Fusion/Animation/Tween.luau +178 -0
  470. package/runtime/Fusion/Animation/getTweenDuration.luau +27 -0
  471. package/runtime/Fusion/Animation/getTweenRatio.luau +47 -0
  472. package/runtime/Fusion/Animation/lerpType.luau +164 -0
  473. package/runtime/Fusion/Animation/packType.luau +100 -0
  474. package/runtime/Fusion/Animation/springCoefficients.luau +80 -0
  475. package/runtime/Fusion/Animation/unpackType.luau +103 -0
  476. package/runtime/Fusion/Colour/Oklab.luau +70 -0
  477. package/runtime/Fusion/Colour/sRGB.luau +47 -0
  478. package/runtime/Fusion/External.luau +156 -0
  479. package/runtime/Fusion/ExternalDebug.luau +70 -0
  480. package/runtime/Fusion/Graph/Observer.luau +111 -0
  481. package/runtime/Fusion/Graph/castToGraph.luau +29 -0
  482. package/runtime/Fusion/Graph/change.luau +81 -0
  483. package/runtime/Fusion/Graph/depend.luau +33 -0
  484. package/runtime/Fusion/Graph/evaluate.luau +56 -0
  485. package/runtime/Fusion/Instances/Attribute.luau +58 -0
  486. package/runtime/Fusion/Instances/AttributeChange.luau +47 -0
  487. package/runtime/Fusion/Instances/AttributeOut.luau +63 -0
  488. package/runtime/Fusion/Instances/Child.luau +21 -0
  489. package/runtime/Fusion/Instances/Children.luau +148 -0
  490. package/runtime/Fusion/Instances/Hydrate.luau +29 -0
  491. package/runtime/Fusion/Instances/New.luau +48 -0
  492. package/runtime/Fusion/Instances/OnChange.luau +50 -0
  493. package/runtime/Fusion/Instances/OnEvent.luau +54 -0
  494. package/runtime/Fusion/Instances/Out.luau +69 -0
  495. package/runtime/Fusion/Instances/Tag.luau +61 -0
  496. package/runtime/Fusion/Instances/applyInstanceProps.luau +149 -0
  497. package/runtime/Fusion/Instances/defaultProps.luau +194 -0
  498. package/runtime/Fusion/LICENSE +21 -0
  499. package/runtime/Fusion/Logging/formatError.luau +49 -0
  500. package/runtime/Fusion/Logging/messages.luau +46 -0
  501. package/runtime/Fusion/Logging/parseError.luau +25 -0
  502. package/runtime/Fusion/Memory/checkLifetime.luau +134 -0
  503. package/runtime/Fusion/Memory/deriveScope.luau +24 -0
  504. package/runtime/Fusion/Memory/deriveScopeImpl.luau +40 -0
  505. package/runtime/Fusion/Memory/doCleanup.luau +91 -0
  506. package/runtime/Fusion/Memory/innerScope.luau +34 -0
  507. package/runtime/Fusion/Memory/insert.luau +22 -0
  508. package/runtime/Fusion/Memory/needsDestruction.luau +17 -0
  509. package/runtime/Fusion/Memory/scoped.luau +24 -0
  510. package/runtime/Fusion/RobloxExternal.luau +98 -0
  511. package/runtime/Fusion/State/Computed.luau +122 -0
  512. package/runtime/Fusion/State/For/Disassembly.luau +207 -0
  513. package/runtime/Fusion/State/For/ForTypes.luau +30 -0
  514. package/runtime/Fusion/State/For/init.luau +101 -0
  515. package/runtime/Fusion/State/ForKeys.luau +88 -0
  516. package/runtime/Fusion/State/ForPairs.luau +91 -0
  517. package/runtime/Fusion/State/ForValues.luau +88 -0
  518. package/runtime/Fusion/State/Value.luau +76 -0
  519. package/runtime/Fusion/State/castToState.luau +26 -0
  520. package/runtime/Fusion/State/peek.luau +31 -0
  521. package/runtime/Fusion/State/updateAll.luau +1 -0
  522. package/runtime/Fusion/Types.luau +318 -0
  523. package/runtime/Fusion/Utility/Contextual.luau +91 -0
  524. package/runtime/Fusion/Utility/Safe.luau +23 -0
  525. package/runtime/Fusion/Utility/isSimilar.luau +29 -0
  526. package/runtime/Fusion/Utility/merge.luau +35 -0
  527. package/runtime/Fusion/Utility/nameOf.luau +35 -0
  528. package/runtime/Fusion/Utility/never.luau +14 -0
  529. package/runtime/Fusion/Utility/nicknames.luau +11 -0
  530. package/runtime/Fusion/Utility/xtypeof.luau +27 -0
  531. package/runtime/Fusion/_impl/Animation/ExternalTime.luau +84 -0
  532. package/runtime/Fusion/_impl/Animation/Spring.luau +313 -0
  533. package/runtime/Fusion/_impl/Animation/Stopwatch.luau +128 -0
  534. package/runtime/Fusion/_impl/Animation/Tween.luau +178 -0
  535. package/runtime/Fusion/_impl/Animation/getTweenDuration.luau +27 -0
  536. package/runtime/Fusion/_impl/Animation/getTweenRatio.luau +47 -0
  537. package/runtime/Fusion/_impl/Animation/lerpType.luau +164 -0
  538. package/runtime/Fusion/_impl/Animation/packType.luau +100 -0
  539. package/runtime/Fusion/_impl/Animation/springCoefficients.luau +80 -0
  540. package/runtime/Fusion/_impl/Animation/unpackType.luau +103 -0
  541. package/runtime/Fusion/_impl/Colour/Oklab.luau +70 -0
  542. package/runtime/Fusion/_impl/Colour/sRGB.luau +47 -0
  543. package/runtime/Fusion/_impl/External.luau +156 -0
  544. package/runtime/Fusion/_impl/ExternalDebug.luau +70 -0
  545. package/runtime/Fusion/_impl/Graph/Observer.luau +111 -0
  546. package/runtime/Fusion/_impl/Graph/castToGraph.luau +29 -0
  547. package/runtime/Fusion/_impl/Graph/change.luau +81 -0
  548. package/runtime/Fusion/_impl/Graph/depend.luau +33 -0
  549. package/runtime/Fusion/_impl/Graph/evaluate.luau +56 -0
  550. package/runtime/Fusion/_impl/Instances/Attribute.luau +58 -0
  551. package/runtime/Fusion/_impl/Instances/AttributeChange.luau +47 -0
  552. package/runtime/Fusion/_impl/Instances/AttributeOut.luau +63 -0
  553. package/runtime/Fusion/_impl/Instances/Child.luau +21 -0
  554. package/runtime/Fusion/_impl/Instances/Children.luau +148 -0
  555. package/runtime/Fusion/_impl/Instances/Hydrate.luau +29 -0
  556. package/runtime/Fusion/_impl/Instances/New.luau +48 -0
  557. package/runtime/Fusion/_impl/Instances/OnChange.luau +50 -0
  558. package/runtime/Fusion/_impl/Instances/OnEvent.luau +54 -0
  559. package/runtime/Fusion/_impl/Instances/Out.luau +69 -0
  560. package/runtime/Fusion/_impl/Instances/Tag.luau +61 -0
  561. package/runtime/Fusion/_impl/Instances/applyInstanceProps.luau +149 -0
  562. package/runtime/Fusion/_impl/Instances/defaultProps.luau +194 -0
  563. package/runtime/Fusion/_impl/LICENSE +21 -0
  564. package/runtime/Fusion/_impl/Logging/formatError.luau +49 -0
  565. package/runtime/Fusion/_impl/Logging/messages.luau +46 -0
  566. package/runtime/Fusion/_impl/Logging/parseError.luau +25 -0
  567. package/runtime/Fusion/_impl/Memory/checkLifetime.luau +134 -0
  568. package/runtime/Fusion/_impl/Memory/deriveScope.luau +24 -0
  569. package/runtime/Fusion/_impl/Memory/deriveScopeImpl.luau +40 -0
  570. package/runtime/Fusion/_impl/Memory/doCleanup.luau +91 -0
  571. package/runtime/Fusion/_impl/Memory/innerScope.luau +34 -0
  572. package/runtime/Fusion/_impl/Memory/insert.luau +22 -0
  573. package/runtime/Fusion/_impl/Memory/needsDestruction.luau +17 -0
  574. package/runtime/Fusion/_impl/Memory/scoped.luau +24 -0
  575. package/runtime/Fusion/_impl/RobloxExternal.luau +98 -0
  576. package/runtime/Fusion/_impl/State/Computed.luau +122 -0
  577. package/runtime/Fusion/_impl/State/For/Disassembly.luau +207 -0
  578. package/runtime/Fusion/_impl/State/For/ForTypes.luau +30 -0
  579. package/runtime/Fusion/_impl/State/For/init.luau +101 -0
  580. package/runtime/Fusion/_impl/State/ForKeys.luau +88 -0
  581. package/runtime/Fusion/_impl/State/ForPairs.luau +91 -0
  582. package/runtime/Fusion/_impl/State/ForValues.luau +88 -0
  583. package/runtime/Fusion/_impl/State/Value.luau +76 -0
  584. package/runtime/Fusion/_impl/State/castToState.luau +26 -0
  585. package/runtime/Fusion/_impl/State/peek.luau +31 -0
  586. package/runtime/Fusion/_impl/State/updateAll.luau +1 -0
  587. package/runtime/Fusion/_impl/Types.luau +318 -0
  588. package/runtime/Fusion/_impl/Utility/Contextual.luau +91 -0
  589. package/runtime/Fusion/_impl/Utility/Safe.luau +23 -0
  590. package/runtime/Fusion/_impl/Utility/isSimilar.luau +29 -0
  591. package/runtime/Fusion/_impl/Utility/merge.luau +35 -0
  592. package/runtime/Fusion/_impl/Utility/nameOf.luau +35 -0
  593. package/runtime/Fusion/_impl/Utility/never.luau +14 -0
  594. package/runtime/Fusion/_impl/Utility/nicknames.luau +11 -0
  595. package/runtime/Fusion/_impl/Utility/xtypeof.luau +27 -0
  596. package/runtime/Fusion/_impl/init.luau +83 -0
  597. package/runtime/Fusion/init.luau +27 -0
  598. package/runtime/Iris/API.lua +2085 -0
  599. package/runtime/Iris/Internal.lua +895 -0
  600. package/runtime/Iris/LICENSE.txt +21 -0
  601. package/runtime/Iris/PubTypes.lua +43 -0
  602. package/runtime/Iris/Types.lua +660 -0
  603. package/runtime/Iris/WidgetTypes.lua +521 -0
  604. package/runtime/Iris/_impl/API.lua +2085 -0
  605. package/runtime/Iris/_impl/Internal.lua +895 -0
  606. package/runtime/Iris/_impl/LICENSE.txt +21 -0
  607. package/runtime/Iris/_impl/PubTypes.lua +43 -0
  608. package/runtime/Iris/_impl/Types.lua +660 -0
  609. package/runtime/Iris/_impl/WidgetTypes.lua +521 -0
  610. package/runtime/Iris/_impl/config.lua +305 -0
  611. package/runtime/Iris/_impl/init.lua +696 -0
  612. package/runtime/Iris/_impl/widgets/Button.lua +90 -0
  613. package/runtime/Iris/_impl/widgets/Checkbox.lua +115 -0
  614. package/runtime/Iris/_impl/widgets/Combo.lua +492 -0
  615. package/runtime/Iris/_impl/widgets/Format.lua +140 -0
  616. package/runtime/Iris/_impl/widgets/Image.lua +155 -0
  617. package/runtime/Iris/_impl/widgets/Input.lua +1232 -0
  618. package/runtime/Iris/_impl/widgets/Menu.lua +599 -0
  619. package/runtime/Iris/_impl/widgets/Plot.lua +639 -0
  620. package/runtime/Iris/_impl/widgets/RadioButton.lua +126 -0
  621. package/runtime/Iris/_impl/widgets/Root.lua +143 -0
  622. package/runtime/Iris/_impl/widgets/Tab.lua +333 -0
  623. package/runtime/Iris/_impl/widgets/Table.lua +635 -0
  624. package/runtime/Iris/_impl/widgets/Text.lua +132 -0
  625. package/runtime/Iris/_impl/widgets/Tree.lua +287 -0
  626. package/runtime/Iris/_impl/widgets/Window.lua +1075 -0
  627. package/runtime/Iris/_impl/widgets/init.lua +447 -0
  628. package/runtime/Iris/config.lua +305 -0
  629. package/runtime/Iris/init.lua +696 -0
  630. package/runtime/Iris/init.luau +12 -0
  631. package/runtime/Iris/widgets/Button.lua +90 -0
  632. package/runtime/Iris/widgets/Checkbox.lua +115 -0
  633. package/runtime/Iris/widgets/Combo.lua +492 -0
  634. package/runtime/Iris/widgets/Format.lua +140 -0
  635. package/runtime/Iris/widgets/Image.lua +155 -0
  636. package/runtime/Iris/widgets/Input.lua +1232 -0
  637. package/runtime/Iris/widgets/Menu.lua +599 -0
  638. package/runtime/Iris/widgets/Plot.lua +639 -0
  639. package/runtime/Iris/widgets/RadioButton.lua +126 -0
  640. package/runtime/Iris/widgets/Root.lua +143 -0
  641. package/runtime/Iris/widgets/Tab.lua +333 -0
  642. package/runtime/Iris/widgets/Table.lua +635 -0
  643. package/runtime/Iris/widgets/Text.lua +132 -0
  644. package/runtime/Iris/widgets/Tree.lua +287 -0
  645. package/runtime/Iris/widgets/Window.lua +1075 -0
  646. package/runtime/Iris/widgets/init.lua +447 -0
  647. package/runtime/Janitor/FastDefer.luau +33 -0
  648. package/runtime/Janitor/LICENSE +21 -0
  649. package/runtime/Janitor/_impl/FastDefer.luau +33 -0
  650. package/runtime/Janitor/_impl/LICENSE +21 -0
  651. package/runtime/Janitor/_impl/init.luau +999 -0
  652. package/runtime/Janitor/init.luau +45 -0
  653. package/runtime/MathUtils/init.luau +100 -0
  654. package/runtime/Module3D/LICENSE +21 -0
  655. package/runtime/Module3D/_impl/LICENSE +21 -0
  656. package/runtime/Module3D/_impl/init.luau +269 -0
  657. package/runtime/Module3D/init.luau +14 -0
  658. package/runtime/Net/init.luau +125 -0
  659. package/runtime/Net/src/codec.luau +153 -0
  660. package/runtime/Occlude/init.luau +54 -0
  661. package/runtime/Promise/LICENSE +21 -0
  662. package/runtime/Promise/_impl/LICENSE +21 -0
  663. package/runtime/Promise/_impl/init.lua +1991 -0
  664. package/runtime/Promise/init.lua +1990 -0
  665. package/runtime/Promise/init.luau +13 -0
  666. package/runtime/Promise/types.luau +46 -0
  667. package/runtime/SOURCES.md +22 -0
  668. package/runtime/Spring/LICENSE +201 -0
  669. package/runtime/Spring/_impl/LICENSE +201 -0
  670. package/runtime/Spring/_impl/init.luau +111 -0
  671. package/runtime/Spring/init.luau +24 -0
  672. package/runtime/StateMachine/Classes/State.lua +375 -0
  673. package/runtime/StateMachine/Classes/Transition.lua +336 -0
  674. package/runtime/StateMachine/Functions/deepCopy.lua +19 -0
  675. package/runtime/StateMachine/Functions/mergeTables.lua +22 -0
  676. package/runtime/StateMachine/LICENSE +19 -0
  677. package/runtime/StateMachine/Vendor/Signal.lua +386 -0
  678. package/runtime/StateMachine/Vendor/Trove.lua +188 -0
  679. package/runtime/StateMachine/_impl/Classes/State.lua +375 -0
  680. package/runtime/StateMachine/_impl/Classes/Transition.lua +336 -0
  681. package/runtime/StateMachine/_impl/Functions/deepCopy.lua +19 -0
  682. package/runtime/StateMachine/_impl/Functions/mergeTables.lua +22 -0
  683. package/runtime/StateMachine/_impl/LICENSE +19 -0
  684. package/runtime/StateMachine/_impl/Vendor/Signal.lua +386 -0
  685. package/runtime/StateMachine/_impl/Vendor/Trove.lua +188 -0
  686. package/runtime/StateMachine/_impl/init.lua +595 -0
  687. package/runtime/StateMachine/init.lua +595 -0
  688. package/runtime/StateMachine/init.luau +10 -0
  689. package/runtime/StickyBillboard/init.luau +167 -0
  690. package/runtime/TopbarPlus/Attribute.lua +35 -0
  691. package/runtime/TopbarPlus/Elements/Caption.lua +316 -0
  692. package/runtime/TopbarPlus/Elements/Container.lua +215 -0
  693. package/runtime/TopbarPlus/Elements/Dropdown.lua +315 -0
  694. package/runtime/TopbarPlus/Elements/Indicator.lua +91 -0
  695. package/runtime/TopbarPlus/Elements/Menu.lua +180 -0
  696. package/runtime/TopbarPlus/Elements/Notice.lua +113 -0
  697. package/runtime/TopbarPlus/Elements/Selection.lua +49 -0
  698. package/runtime/TopbarPlus/Elements/Widget.lua +437 -0
  699. package/runtime/TopbarPlus/Features/Gamepad.lua +201 -0
  700. package/runtime/TopbarPlus/Features/Overflow.lua +360 -0
  701. package/runtime/TopbarPlus/Features/Themes/Classic.lua +27 -0
  702. package/runtime/TopbarPlus/Features/Themes/Default.lua +75 -0
  703. package/runtime/TopbarPlus/Features/Themes/init.lua +353 -0
  704. package/runtime/TopbarPlus/LICENSE +381 -0
  705. package/runtime/TopbarPlus/Packages/GoodSignal.lua +182 -0
  706. package/runtime/TopbarPlus/Packages/Janitor.lua +322 -0
  707. package/runtime/TopbarPlus/Reference.lua +30 -0
  708. package/runtime/TopbarPlus/Types.lua +477 -0
  709. package/runtime/TopbarPlus/Utility.lua +462 -0
  710. package/runtime/TopbarPlus/VERSION.lua +51 -0
  711. package/runtime/TopbarPlus/_impl/Attribute.lua +35 -0
  712. package/runtime/TopbarPlus/_impl/Elements/Caption.lua +316 -0
  713. package/runtime/TopbarPlus/_impl/Elements/Container.lua +215 -0
  714. package/runtime/TopbarPlus/_impl/Elements/Dropdown.lua +315 -0
  715. package/runtime/TopbarPlus/_impl/Elements/Indicator.lua +91 -0
  716. package/runtime/TopbarPlus/_impl/Elements/Menu.lua +180 -0
  717. package/runtime/TopbarPlus/_impl/Elements/Notice.lua +113 -0
  718. package/runtime/TopbarPlus/_impl/Elements/Selection.lua +49 -0
  719. package/runtime/TopbarPlus/_impl/Elements/Widget.lua +437 -0
  720. package/runtime/TopbarPlus/_impl/Features/Gamepad.lua +201 -0
  721. package/runtime/TopbarPlus/_impl/Features/Overflow.lua +360 -0
  722. package/runtime/TopbarPlus/_impl/Features/Themes/Classic.lua +27 -0
  723. package/runtime/TopbarPlus/_impl/Features/Themes/Default.lua +75 -0
  724. package/runtime/TopbarPlus/_impl/Features/Themes/init.lua +353 -0
  725. package/runtime/TopbarPlus/_impl/LICENSE +381 -0
  726. package/runtime/TopbarPlus/_impl/Packages/GoodSignal.lua +182 -0
  727. package/runtime/TopbarPlus/_impl/Packages/Janitor.lua +322 -0
  728. package/runtime/TopbarPlus/_impl/Reference.lua +30 -0
  729. package/runtime/TopbarPlus/_impl/Types.lua +477 -0
  730. package/runtime/TopbarPlus/_impl/Utility.lua +462 -0
  731. package/runtime/TopbarPlus/_impl/VERSION.lua +51 -0
  732. package/runtime/TopbarPlus/_impl/init.lua +1249 -0
  733. package/runtime/TopbarPlus/init.lua +1249 -0
  734. package/runtime/TopbarPlus/init.luau +8 -0
  735. package/runtime/Twinkle/init.luau +157 -0
  736. package/runtime/VfxUtil/init.luau +164 -0
  737. package/src/api.generated.js +3675 -0
  738. package/src/api.js +57 -0
  739. package/src/architecture.js +393 -0
  740. package/src/cli.js +192 -0
  741. package/src/compile.js +40 -0
  742. package/src/emit.js +213 -0
  743. package/src/lex.js +149 -0
  744. package/src/libs.js +355 -0
  745. package/src/parse.js +421 -0
  746. package/src/preprocess.js +80 -0
  747. package/src/understand.js +453 -0
  748. package/templates/game/.clangd +5 -0
  749. package/templates/game/.vscode/c_cpp_properties.json +23 -0
  750. package/templates/game/.vscode/settings.json +12 -0
  751. package/templates/game/Packages/.gitkeep +0 -0
  752. package/templates/game/cluaupp.config.json +6 -0
  753. package/templates/game/compile_flags.txt +3 -0
  754. package/templates/game/default.project.json +39 -0
  755. package/templates/game/package.json +9 -0
  756. package/templates/game/src/client/init.client.cpp +5 -0
  757. package/templates/game/src/server/leaderstats.server.cpp +28 -0
  758. package/templates/game/src/shared/config.cpp +5 -0
  759. package/templates/game/src/shared/config.h +3 -0
  760. package/templates/game/wally.toml +11 -0
@@ -0,0 +1,1016 @@
1
+ const Entity = {}
2
+
3
+ const Players = game:GetService("Players")
4
+ const RunService = game:GetService("RunService")
5
+ const Types = require(script.Parent.Types)
6
+ const Config = require(script.Parent.Config)
7
+ const Snapshot = require(script.Parent.Snapshots)
8
+ const InterpolationMath = require(script.Parent.InterpolationMath)
9
+ const ClientClock = require(script.Parent.Parent.Client.ClientClock)
10
+ const Holder = require(script.Parent.Holder)
11
+ const Signal = require(script.Parent.Signal)
12
+ const Events = require(script.Parent.Events)
13
+ const ModelHelper = require(script.Parent.ModelHelper)
14
+ const Warn = require(script.Parent.Warn)
15
+ const VelocityAt = InterpolationMath.VelocityAt
16
+
17
+ const Changes = {}
18
+
19
+ const clientOwned = Holder._clientOwned
20
+ const IS_SERVER = RunService:IsServer()
21
+ const LOCAL_PLAYER = if IS_SERVER then nil else Players.LocalPlayer
22
+
23
+ const CHRONO_PRIMARY = "__CHRONO_PRIMARY"
24
+
25
+ const CENTER_PART = Instance.new("Part")
26
+ CENTER_PART.Size = Vector3.new(0.1, 0.1, 0.1)
27
+ CENTER_PART.Name = "__CHRONO_CENTER"
28
+ CENTER_PART.Anchored = true
29
+ CENTER_PART.Transparency = 1
30
+ CENTER_PART.CanCollide = false
31
+ CENTER_PART.CanTouch = false
32
+ CENTER_PART.CanQuery = false
33
+
34
+ type Entity = Types.Entity
35
+
36
+ local READY = false
37
+
38
+ Config._WaitForLock(function()
39
+ READY = true
40
+ end)
41
+
42
+ const function SafeDestroy(instance: Instance?)
43
+ if instance then
44
+ pcall(function()
45
+ instance:Destroy()
46
+ end)
47
+ end
48
+ end
49
+
50
+ const function SafeSetNetworkOwner(part: BasePart, player: Player?)
51
+ pcall(function()
52
+ part:SetNetworkOwner(player)
53
+ end)
54
+ end
55
+
56
+ const function GetPart(self: Types.Entity): BasePart?
57
+ const model = self.model
58
+ if not model then
59
+ return nil
60
+ end
61
+ if model:IsA("BasePart") then
62
+ return model
63
+ end
64
+ if model:IsA("Model") then
65
+ const chronoPrimary = self._chronoPrimary
66
+ if chronoPrimary then
67
+ const primary = model:FindFirstChild(chronoPrimary)
68
+ if primary and primary:IsA("BasePart") then
69
+ return primary
70
+ else
71
+ Warn.low(
72
+ `Chrono primary part {chronoPrimary} not found or not a BasePart in model {model:GetFullName()} for entity id {self.id}. Falling back to default PrimaryPart.`
73
+ )
74
+ end
75
+ end
76
+ const primaryPart = model.PrimaryPart
77
+ if primaryPart then
78
+ return primaryPart
79
+ end
80
+ end
81
+ return nil
82
+ end
83
+
84
+ const function GetRootPart(entity: Entity): BasePart?
85
+ const primaryPart = Entity.GetPrimaryPart(entity)
86
+
87
+ if not primaryPart then
88
+ return
89
+ end
90
+
91
+ if IS_SERVER and entity._lockedCFReplication then
92
+ const locker = primaryPart:FindFirstChild("__CHRONO_LOCKER")
93
+
94
+ if not locker then
95
+ return
96
+ end
97
+ const lockerPart = locker:FindFirstChildWhichIsA("BasePart")
98
+ if not lockerPart or not lockerPart:IsA("BasePart") then
99
+ return primaryPart
100
+ end
101
+
102
+ return lockerPart
103
+ else
104
+ return primaryPart
105
+ end
106
+ end
107
+
108
+ const function LockCFReplication(part: BasePart?): BasePart?
109
+ if not part then
110
+ return
111
+ end
112
+ const initCF = part.CFrame
113
+ const previousLocker = part:FindFirstChild("__CHRONO_LOCKER")
114
+ if previousLocker then
115
+ const weld = previousLocker:FindFirstChild("__CHRONO_WELD") :: Motor6D
116
+ if weld then
117
+ weld.Part1 = part
118
+ part.CFrame = initCF
119
+ return weld.Part0
120
+ else
121
+ SafeDestroy(previousLocker)
122
+ end
123
+ end
124
+
125
+ const camera = Instance.new("Camera", part)
126
+ camera.Archivable = false
127
+ camera.Name = "__CHRONO_LOCKER"
128
+ const weld = Instance.new("Weld", camera)
129
+ weld.Name = "__CHRONO_WELD"
130
+ const locker = Instance.new("Part")
131
+ locker.CustomPhysicalProperties = PhysicalProperties.new(0.0001, 0, 0, 0, 0)
132
+ locker.Name = "__CHRONO_LOCKER_PART"
133
+ locker.Parent = camera
134
+ locker.CanCollide = false
135
+ locker.CanQuery = false
136
+ locker.CanTouch = false
137
+ locker.Transparency = if IS_SERVER then 0 else 1
138
+ locker.Color = Color3.new(1, 0, 0)
139
+ locker.Massless = false
140
+ locker.RootPriority = 127
141
+ locker.Size = Vector3.zero
142
+ --locker.Anchored = true
143
+ weld.Part0 = locker
144
+ weld.Part1 = part
145
+ part.CFrame = initCF
146
+ return locker
147
+ end
148
+
149
+ const function SetPartCFrame(entity, cframe: CFrame)
150
+ const part = GetRootPart(entity)
151
+ if part then
152
+ part.CFrame = cframe
153
+ end
154
+ end
155
+
156
+ const function UnlockCFReplication(part: BasePart?)
157
+ if not part then
158
+ return
159
+ end
160
+ const cf = part.CFrame
161
+ const locker = part:FindFirstChild("__CHRONO_LOCKER")
162
+ if locker then
163
+ -- local weld = locker:FindFirstChild("__CHRONO_WELD") :: Motor6D
164
+ -- if weld then
165
+ -- weld.Part1 = nil
166
+ -- else
167
+ -- SafeDestroy(locker)
168
+ -- end
169
+ --Safer overall to just destroy and recreate
170
+ locker:Destroy()
171
+ part.CFrame = cf
172
+ end
173
+ end
174
+
175
+ const function SetValue(entity: Entity, key: string, value: any, bypass: boolean?, specialValue: any)
176
+ if not bypass and entity[key] == value then
177
+ return
178
+ end
179
+ entity[key] = value
180
+ if not IS_SERVER then
181
+ return
182
+ end
183
+ if not Changes[entity] then
184
+ Changes[entity] = {}
185
+ end
186
+ Changes[entity][key] = specialValue or value or false
187
+ end
188
+
189
+ const function FireEvent(entity: Entity, eventName: string, ...: any)
190
+ const events = entity._events
191
+ if not events then
192
+ return
193
+ end
194
+ const signal = events[eventName]
195
+ if signal then
196
+ signal:Fire(entity, ...)
197
+ end
198
+ end
199
+
200
+ -- If buffer is given then it will create a client clock for the entity as well.
201
+ const function SetClock(self: Entity, buffer: number | false?)
202
+ if self._clientClock then
203
+ self._clientClock:Destroy()
204
+ self._clientClock = nil
205
+ end
206
+ if buffer == false then
207
+ self._clockBuffer = nil
208
+ buffer = nil
209
+ end
210
+ buffer = buffer or self._clockBuffer
211
+ self._clockBuffer = buffer
212
+ const entityBuffer = buffer or self.entityConfig.BUFFER or 0
213
+ if self.networkOwner or buffer then
214
+ const networkOwner = self.networkOwner
215
+ self._clientClock = ClientClock.new(
216
+ self.entityConfig.TICK_RATE,
217
+ `Entity id: {self.id} plr: {networkOwner and networkOwner.Name or "SERVER"}`,
218
+ entityBuffer,
219
+ networkOwner
220
+ )
221
+ end
222
+ end
223
+
224
+ const function CheckNetworkOwner(self: Entity, prev: Player?)
225
+ self.isContextOwner = self.networkOwner == LOCAL_PLAYER
226
+ const isSameOwner = self.networkOwner == prev
227
+ if not isSameOwner then
228
+ self.latestTime = 0
229
+ self.lastClientClock = 0
230
+ end
231
+ if IS_SERVER then
232
+ const part = GetPart(self)
233
+ if part then
234
+ const locked = self._lockedCFReplication
235
+
236
+ if locked then
237
+ UnlockCFReplication(part)
238
+ end
239
+ SafeSetNetworkOwner(part, self.networkOwner)
240
+ if locked then
241
+ LockCFReplication(part)
242
+ const root = GetRootPart(self)
243
+ if root then
244
+ SafeSetNetworkOwner(root, self.networkOwner)
245
+ root.Anchored = not isSameOwner
246
+ end
247
+ end
248
+ end
249
+
250
+ if self.isContextOwner and not self.entityConfig.STORE_SNAPSHOTS then
251
+ self.snapshot = nil
252
+ elseif not self.snapshot then
253
+ self.snapshot = Snapshot(InterpolationMath.Hermite)
254
+ end
255
+ else
256
+ const locked = self._lockedCFReplication
257
+
258
+ if locked and self.isContextOwner then
259
+ const part = GetPart(self)
260
+ if part then
261
+ LockCFReplication(part)
262
+ self._cfLockFailed = nil
263
+ else
264
+ self._cfLockFailed = true
265
+ end
266
+ if self._player then
267
+ UnlockCFReplication(part)
268
+ end
269
+ end
270
+ end
271
+
272
+ if isSameOwner then
273
+ return
274
+ elseif self.snapshot then
275
+ self.snapshot:Clear()
276
+ end
277
+
278
+ if not IS_SERVER then
279
+ SetClock(self)
280
+ end
281
+
282
+ FireEvent(self, "NetworkOwnerChanged", self.networkOwner, prev)
283
+
284
+ if prev then
285
+ const ownedEntities = clientOwned[prev]
286
+
287
+ if ownedEntities then
288
+ ownedEntities[self] = nil
289
+
290
+ Events._Signals.PlayerOwnedRemoved:Fire(prev, self)
291
+ end
292
+ end
293
+ if self.networkOwner then
294
+ const ownedEntities = clientOwned[self.networkOwner]
295
+
296
+ if not ownedEntities then
297
+ return
298
+ end
299
+ ownedEntities[self] = true
300
+
301
+ Events._Signals.PlayerOwnedAdded:Fire(self.networkOwner, self)
302
+ end
303
+ end
304
+
305
+ function Entity.SyncOwnerShip(self: Entity)
306
+ CheckNetworkOwner(self, self.networkOwner)
307
+ end
308
+
309
+ const function CheckModelReplicationMode(entity: Entity, mode: Types.MODEL_REPLICATION_MODE?): "NATIVE" | "CUSTOM"
310
+ if not mode then
311
+ mode = entity.modelReplicationMode
312
+ end
313
+ if not mode then
314
+ const config = entity.entityConfig
315
+ mode = config.MODEL_REPLICATION_MODE
316
+ end
317
+ mode = (mode :: any):upper()
318
+ if mode ~= "NATIVE" and mode ~= "CUSTOM" and mode ~= "NATIVE_WITH_LOCK" then
319
+ Warn.medium(`Invalid model replication mode {mode} for entity id {entity.id}, defaulting to NATIVE`)
320
+ mode = "NATIVE"
321
+ end
322
+ entity._lockedCFReplication = false
323
+ if mode == "NATIVE_WITH_LOCK" then
324
+ mode = "NATIVE"
325
+ entity._lockedCFReplication = true
326
+ end
327
+ return mode :: any
328
+ end
329
+
330
+ const function SetModel(
331
+ self: Entity,
332
+ model: Model | BasePart | string?,
333
+ modelReplicationMode: Types.MODEL_REPLICATION_MODE?,
334
+ noDestroy: boolean?
335
+ ): ()
336
+ const wasCustom = self.modelReplicationMode == "CUSTOM"
337
+
338
+ if IS_SERVER then
339
+ if self.modelReplicationMode == "NATIVE" and self._lockedCFReplication then
340
+ const part = GetPart(self)
341
+ self._lockedCFReplication = false
342
+ UnlockCFReplication(part)
343
+ end
344
+ if not noDestroy then
345
+ SafeDestroy(self.model)
346
+ end
347
+ self.model = nil
348
+ elseif not IS_SERVER and wasCustom then
349
+ SafeDestroy(self.model)
350
+ self.model = nil
351
+ elseif not IS_SERVER and self._lockedCFReplication then
352
+ const part = GetPart(self)
353
+ self._lockedCFReplication = false
354
+ UnlockCFReplication(part)
355
+ end
356
+ local modelString
357
+ if type(model) == "string" then
358
+ modelString = model
359
+ model = Config._GetEntityModel(model :: string)
360
+ if model then
361
+ model = (model :: any):Clone()
362
+ end
363
+
364
+ if model then
365
+ (model :: any).Parent = workspace
366
+ end
367
+ end
368
+ const _model: Model? = model :: any
369
+ const broadPhase = Config._GetBroadPhase(modelString :: string)
370
+
371
+ const replicationMode: "NATIVE" | "CUSTOM" = CheckModelReplicationMode(self, modelReplicationMode)
372
+ self.modelString = modelString
373
+ self.model = _model
374
+
375
+ if IS_SERVER or not self.broadPhase then
376
+ self.broadPhase = broadPhase
377
+ end
378
+
379
+ if _model then
380
+ if replicationMode == "CUSTOM" then
381
+ _model.Parent = Holder.GetEntityStorageInstance()
382
+ end
383
+
384
+ const chronoPrimary = _model:GetAttribute(CHRONO_PRIMARY)
385
+ if chronoPrimary and type(chronoPrimary) == "string" then
386
+ self._chronoPrimary = chronoPrimary
387
+ end
388
+ end
389
+
390
+ self.modelReplicationMode = replicationMode
391
+
392
+ const primaryPart = GetPart(self)
393
+ if _model and not primaryPart then
394
+ const warn = IS_SERVER and Warn.high or Warn.low
395
+ warn(`{_model:GetFullName()} must have a PrimaryPart set for things like autoReplication and movement.`)
396
+ elseif _model and not _model.Archivable then
397
+ Warn.low(
398
+ `{_model:GetFullName()} is not Archivable. It is recommended to set Archivable to true for entity models to prevent potential issues when cloning. Archivable has been set to true automatically.`
399
+ )
400
+ _model.Archivable = true
401
+ end
402
+
403
+ if not primaryPart then
404
+ return
405
+ end
406
+
407
+ const initCFrame = primaryPart.CFrame
408
+
409
+ if not self.latestCFrame then
410
+ Entity.SetCFrame(self, initCFrame or primaryPart.CFrame)
411
+ end
412
+ if self.latestCFrame then
413
+ primaryPart.CFrame = self.latestCFrame
414
+ end
415
+
416
+ self.modelReplicationMode = Entity.GetModelReplicationType(self) :: any
417
+ if self.modelReplicationMode == "NATIVE_WITH_LOCK" then
418
+ self._lockedCFReplication = true
419
+ self.modelReplicationMode = "NATIVE"
420
+ end
421
+ if not IS_SERVER and not self.isContextOwner and (replicationMode == "CUSTOM" or self._lockedCFReplication) then
422
+ primaryPart.Anchored = true
423
+ end
424
+ end
425
+
426
+ function Entity._new(
427
+ entityConfig: string?,
428
+ model: Model | BasePart | string?,
429
+ modelReplicationMode: Types.MODEL_REPLICATION_MODE?,
430
+ initCFrame: CFrame?
431
+ ): Entity
432
+ local config = Config._GetEntityType(entityConfig)
433
+ if not config then
434
+ Warn.medium(`Entity config {entityConfig} not found. Using DEFAULT config.`)
435
+ config = Config._GetEntityType("DEFAULT")
436
+ end
437
+
438
+ -- If the model doesn't exist and there's no init cframe then it won't be able to find a starting cframe
439
+ if initCFrame == nil and typeof(model) == "string" then
440
+ const _model = Config._GetEntityModel(model :: string)
441
+ if _model == false then
442
+ Warn.medium(`Entity's model doesn't exist, initCFrame is required. DEFAULTING to CFrame.new(0, 0, 0)`)
443
+ initCFrame = CFrame.new(0, 0, 0)
444
+ end
445
+ end
446
+
447
+ const self: Entity = {
448
+ id = -1,
449
+
450
+ registered = false,
451
+ autoUpdatePosition = config.AUTO_UPDATE_POSITION ~= false,
452
+ isContextOwner = false,
453
+ networkOwner = nil,
454
+ latestCFrame = initCFrame,
455
+ paused = false,
456
+
457
+ entityConfig = config,
458
+ destroyed = false,
459
+
460
+ interpolation = not IS_SERVER and true,
461
+ }
462
+
463
+ if LOCAL_PLAYER then
464
+ self.snapshot = Snapshot(InterpolationMath.Hermite)
465
+ end
466
+ SetModel(self, model, modelReplicationMode)
467
+ CheckNetworkOwner(self, nil)
468
+
469
+ return self
470
+ end
471
+
472
+ --[=[
473
+ Creates a new Entity instance and registers.
474
+
475
+ @param entityConfig The entity configuration name to use. Defaults to "DEFAULT" if not provided or invalid.
476
+ @param model The model to use for the entity. Can be a Model, BasePart, or a string representing a registered model name.
477
+ @param modelReplicationMode The model replication mode to use. Will default of the entity config if not provided.
478
+ @param initCFrame The initial CFrame for the entity. Optional.
479
+
480
+ @return The newly created Entity instance.
481
+ ]=]
482
+ function Entity.new(
483
+ entityConfig: string?,
484
+ model: Model | BasePart | string?,
485
+ modelReplicationMode: Types.MODEL_REPLICATION_MODE?,
486
+ initCFrame: CFrame?
487
+ ): Entity
488
+ if not READY then
489
+ error("Entity.new cannot be called until Chrono.Start() is called.")
490
+ end
491
+ const self = Entity._new(entityConfig, model, modelReplicationMode, initCFrame)
492
+ Holder.RegisterEntity(self)
493
+ return self
494
+ end
495
+
496
+ --[=[
497
+ Sets the model for the entity.
498
+
499
+ @param model The model to set for the entity. Can be a Model, BasePart, or a string representing a registered model name.
500
+ @param modelReplicationMode The model replication mode to use. Will default to the last used mode or the entity config if not provided.
501
+ @param noDestroy If true, will not destroy the previous model. Defaults to false.
502
+ ]=]
503
+ function Entity.SetModel(
504
+ self: Entity,
505
+ model: Model | BasePart | string?,
506
+ modelReplicationMode: Types.MODEL_REPLICATION_MODE?,
507
+ noDestroy: boolean?
508
+ )
509
+ const old = self.model
510
+ SetModel(self, model, modelReplicationMode, noDestroy)
511
+ if IS_SERVER then
512
+ const toReplicate, metaData = ModelHelper.ReadyModelFromRep(self, nil)
513
+ SetValue(self, "model", self.model, true, toReplicate or false)
514
+ SetValue(self, "_modelMetaData", metaData, true, metaData)
515
+ CheckNetworkOwner(self, self.networkOwner)
516
+ end
517
+ FireEvent(self, "ModelChanged", self.model, old)
518
+ end
519
+
520
+ Entity._FireEvent = FireEvent
521
+
522
+ const function GetEvent(self: Entity, eventName: string): Types.Event<any>
523
+ if not self._events then
524
+ self._events = {}
525
+ end
526
+ const events = self._events :: { [string]: Types.Signal<any, any> }
527
+ if not events[eventName] then
528
+ events[eventName] = Signal.new()
529
+ end
530
+ return events[eventName].Event
531
+ end
532
+
533
+ --[=[
534
+ Sets the entity configuration for the entity.
535
+
536
+ @param entityConfig The entity configuration name to set.
537
+ ]=]
538
+ function Entity.SetConfig(self: Entity, entityConfig: string)
539
+ local config = Config._GetEntityType(entityConfig)
540
+ if not config then
541
+ Warn.medium(`Entity config {entityConfig} not found. Using Default config.`)
542
+ config = Config._GetEntityType("DEFAULT")
543
+ end
544
+ SetValue(self, "entityConfig", config, false, config.NAME)
545
+ if not IS_SERVER then
546
+ SetClock(self)
547
+ end
548
+ end
549
+
550
+ --[=[
551
+ Sets the client clock buffer for the entity.
552
+
553
+ @param buffer? The buffer to set for the client clock. If nil, will use the entity config's buffer.
554
+ ]=]
555
+ function Entity.SetClockBuffer(self: Entity, buffer: number?)
556
+ if IS_SERVER then
557
+ error("SetClockBuffer can only be called on the client")
558
+ end
559
+ SetClock(self, buffer ~= nil and buffer or false)
560
+ end
561
+
562
+ --[=[
563
+ Sets the broad phase vector for the entity.
564
+
565
+ @param broadPhase The broad phase vector to set.
566
+ ]=]
567
+ function Entity.SetBroadPhase(self: Entity, broadPhase: vector?)
568
+ SetValue(self, "broadPhase", broadPhase)
569
+ end
570
+
571
+ --[=[
572
+ Gets the user associated data with the entity.
573
+
574
+ @return The data associated with the entity.
575
+ ]=]
576
+ function Entity.GetData(self: Entity): any
577
+ return self._data
578
+ end
579
+
580
+ --[=[
581
+ Gets the model associated with the entity.
582
+
583
+ @return The model associated with the entity.
584
+ ]=]
585
+ function Entity.GetModel(self: Entity): Model | BasePart?
586
+ return self.model
587
+ end
588
+
589
+ --[=[
590
+ Sets the user associated data with the entity.
591
+
592
+ @param data The data to associate with the entity.
593
+ ]=]
594
+ function Entity.SetData(self: Entity, data: any)
595
+ SetValue(self, "_data", data, true)
596
+ FireEvent(self, "DataChanged", data)
597
+ end
598
+
599
+ function Entity._SetTickMode(self: Entity, isHalfTicked: boolean?)
600
+ if self.isHalfTicked == isHalfTicked then
601
+ return
602
+ end
603
+ if not self.isContextOwner then
604
+ SetValue(self, "isHalfTicked", isHalfTicked)
605
+ else
606
+ self.isHalfTicked = isHalfTicked
607
+ end
608
+ FireEvent(self, "TickChanged", isHalfTicked == nil and "NONE" or if isHalfTicked then "HALF" else "NORMAL")
609
+ end
610
+
611
+ --[=[
612
+ Clears the mount of the entity.
613
+ ]=]
614
+ function Entity.ClearMount(self: Entity)
615
+ if not IS_SERVER then
616
+ error("ClearMount can only be called on the server")
617
+ end
618
+ if not self.mountParentId then
619
+ return
620
+ end
621
+
622
+ SetValue(self, "mountParentId", nil)
623
+ SetValue(self, "mountOffset", nil)
624
+ Events._Signals.EntityMountChanged:Fire(self, nil)
625
+ end
626
+
627
+ --[=[
628
+ Sets the mount of the entity.
629
+
630
+ @param parent The parent entity to mount to. If nil, will clear the mount.
631
+ @param offset The CFrame offset from the parent entity.
632
+ ]=]
633
+ function Entity.SetMount(self: Entity, parent: Entity?, offset: CFrame?)
634
+ if not IS_SERVER then
635
+ error("SetMount can only be called on the server")
636
+ end
637
+
638
+ if parent == nil then
639
+ return Entity.ClearMount(self)
640
+ end
641
+
642
+ if self == parent then
643
+ Warn.medium("An entity cannot mount itself")
644
+ return
645
+ end
646
+
647
+ if not parent.id then
648
+ Warn.high("Parent entity must be registered before mounting")
649
+ return
650
+ end
651
+
652
+ SetValue(self, "mountParentId", parent.id)
653
+ SetValue(self, "mountOffset", offset)
654
+ Events._Signals.EntityMountChanged:Fire(self, parent.id)
655
+ end
656
+
657
+ Entity["设置网络主控玩家"] = function(self: Entity, player: Player?)
658
+ if player ~= self.networkOwner then
659
+ const prev = self.networkOwner
660
+ SetValue(self, "networkOwner", player)
661
+ CheckNetworkOwner(self, prev)
662
+ Entity.Clear(self)
663
+ end
664
+ self.lastCheckedCFrame = nil
665
+ if not IS_SERVER and self.modelReplicationMode == "CUSTOM" then
666
+ const primaryPart = Entity.GetPrimaryPart(self)
667
+ if primaryPart then
668
+ primaryPart.Anchored = not self.isContextOwner
669
+ end
670
+ end
671
+ end
672
+
673
+ --[=[
674
+ Sets the network owner of the entity. Does nothing if called on the client.
675
+
676
+ @param player The player to set as the network owner. If nil, will clear the network owner.
677
+ ]=]
678
+ function Entity.SetNetworkOwner(self: Entity, player: Player?)
679
+ if IS_SERVER and player ~= self.networkOwner then
680
+ Entity["设置网络主控玩家"](self, player)
681
+ SetValue(self, "isHalfTicked", self.isHalfTicked, true)
682
+ elseif not IS_SERVER then
683
+ error("SetNetworkOwner can only be called on the server")
684
+ end
685
+ end
686
+
687
+ --[=[
688
+ Clears the entity's snapshot and latest CFrame/time.
689
+ ]=]
690
+ function Entity.Clear(self: Entity)
691
+ const snapshot = self.snapshot
692
+ -- self.latestCFrame = nil --< this line
693
+ self.latestTime = nil
694
+ self.lastClientClock = nil
695
+ if snapshot then
696
+ snapshot:Clear()
697
+ end
698
+ end
699
+
700
+ --[=[
701
+ Pauses replication for the entity.
702
+ ]=]
703
+ function Entity.PauseReplication(self: Entity)
704
+ SetValue(self, "paused", true)
705
+ end
706
+
707
+ --[=[
708
+ Resumes replication for the entity.
709
+ ]=]
710
+ function Entity.ResumeReplication(self: Entity)
711
+ SetValue(self, "paused", false)
712
+ end
713
+
714
+ --[=[
715
+ Pushes a new CFrame value into the entity's snapshot.
716
+
717
+ @param time The time associated with the CFrame value.
718
+ @param value The CFrame value to push.
719
+ @param velocity Optional velocity to push with the snapshot. If not provided, will be calculated based on the latest snapshot value.
720
+
721
+ @return Whether the pushed value is the newest.
722
+ ]=]
723
+ function Entity.Push(self: Entity, time: number, value: CFrame, velocity: Vector3?): boolean
724
+ const snapshot = self.snapshot
725
+ const newer = not self.latestTime or time > self.latestTime
726
+ if newer then
727
+ self.latestTime = time
728
+ self.latestCFrame = value
729
+ end
730
+ if snapshot then
731
+ const latest = snapshot:GetLatest()
732
+ if not IS_SERVER and newer and latest and time - latest.t < 5 and not self.isContextOwner then
733
+ const targetTime = Entity.GetTargetRenderTime(self)
734
+ if math.abs(targetTime - latest.t) > 5 then
735
+ snapshot:Clear()
736
+ Warn.low(`Clearing Snapshot due to large time difference`)
737
+ end
738
+ end
739
+ local tickrate = self.entityConfig.TICK_RATE
740
+ if self.isHalfTicked then
741
+ tickrate = tickrate * 2
742
+ end
743
+ snapshot:PushWithCheck(
744
+ time,
745
+ value,
746
+ velocity or VelocityAt(snapshot:GetLatest(), time, value, tickrate),
747
+ tickrate
748
+ )
749
+ end
750
+ FireEvent(self, "PushedSnapShot", time, value, newer)
751
+ return newer
752
+ end
753
+
754
+ --[=[
755
+ Gets the CFrame value at a specific time from the entity's snapshot.
756
+
757
+ @param time The time to get the CFrame value for.
758
+
759
+ @return The CFrame value at the specified time, or the latest CFrame if no snapshot exists.
760
+ ]=]
761
+ function Entity.GetAt(self: Entity, time: number): CFrame?
762
+ const snapshot = self.snapshot
763
+ if snapshot then
764
+ return snapshot:GetAt(time)
765
+ else
766
+ return self.latestCFrame
767
+ end
768
+ end
769
+
770
+ --[=[
771
+ Gets the target render time from the entity's client clock.
772
+
773
+ @return The target render time.
774
+ ]=]
775
+ function Entity.GetTargetRenderTime(self: Entity): number
776
+ local renderCache = self._clientClock
777
+
778
+ if not renderCache then
779
+ const RenderCaches = self.entityConfig.CLIENT_CLOCK
780
+ if not RenderCaches then
781
+ return -1
782
+ end
783
+ renderCache = self.isHalfTicked and RenderCaches.HALF or RenderCaches.NORMAL
784
+ end
785
+ if not renderCache then
786
+ return -1
787
+ end
788
+ return renderCache:GetTargetRenderTime()
789
+ end
790
+
791
+ --[=[
792
+ Sets whether the entity should auto update its position to the model's primary part CFrame.
793
+
794
+ @param autoUpdate Whether to auto update the entity's position.
795
+ ]=]
796
+ function Entity.SetAutoUpdatePos(self: Entity, autoUpdate: boolean)
797
+ SetValue(self, "autoUpdatePos", autoUpdate)
798
+ end
799
+
800
+ --[=[
801
+ Gets the current CFrame of the entity.
802
+
803
+ @return The current CFrame of the entity.
804
+ ]=]
805
+ function Entity.GetCFrame(self: Entity): CFrame?
806
+ const part = GetPart(self)
807
+ return self.latestCFrame or (part and part.CFrame)
808
+ end
809
+
810
+ --[=[
811
+ Sets the current CFrame of the entity and locks the snapshot to the new time.
812
+
813
+ @param cframe The CFrame to set for the entity.
814
+ ]=]
815
+ function Entity.SetCFrame(self: Entity, cframe: CFrame)
816
+ const latestTime = (self.latestTime or 0) + 0.00002
817
+ if Config.FLAGS.SET_CFRAME_FIX then
818
+ if IS_SERVER or self.networkOwner then
819
+ self._teleport = os.clock()
820
+ end
821
+ if not IS_SERVER and not self.isContextOwner then
822
+ Entity.Clear(self)
823
+ end
824
+ end
825
+ if self.snapshot and Config.FLAGS.FIX_TELEPORT_JITTER then
826
+ self.snapshot.lockedTime = latestTime
827
+ end
828
+ Entity.Push(self, latestTime, cframe)
829
+ SetValue(self, "latestCFrame", cframe, true)
830
+
831
+ if self.isContextOwner or not IS_SERVER then
832
+ SetPartCFrame(self, cframe)
833
+ end
834
+ end
835
+
836
+ --[=[
837
+ Gets the primary part of the entity's model. If the model is a BasePart, returns the model itself.
838
+
839
+ @return The primary part of the entity's model, or nil if no model or primary part exists.
840
+ ]=]
841
+ function Entity.GetPrimaryPart(self: Entity): BasePart?
842
+ if self.model then
843
+ return GetPart(self)
844
+ end
845
+ return nil
846
+ end
847
+
848
+ --[=[
849
+ Locks the native server CFrame replication for the entity.
850
+
851
+ Only works if the entity's model replication mode is "NATIVE".
852
+
853
+ Throws an error if called on the client or if the model replication mode is not "NATIVE".
854
+ ]=]
855
+ function Entity.LockNativeServerCFrameReplication(self: Entity)
856
+ if IS_SERVER then
857
+ if self.modelReplicationMode ~= "NATIVE" then
858
+ error("LockNativeServerCFrameReplication can only be called on NATIVE model replication mode entities")
859
+ end
860
+ if self._lockedCFReplication then
861
+ return
862
+ end
863
+ SetValue(self, "_lockedCFReplication", true)
864
+
865
+ CheckNetworkOwner(self, self.networkOwner)
866
+
867
+ FireEvent(self, "LockChanged", true)
868
+ else
869
+ error("LockNativeServerCFrameReplication can only be called on the server")
870
+ end
871
+ end
872
+
873
+ --[=[
874
+ Unlocks the native server CFrame replication for the entity.
875
+
876
+ Only works if the entity's model replication mode is "NATIVE".
877
+
878
+ Throws an error if called on the client or if the model replication mode is not "NATIVE".
879
+ ]=]
880
+ function Entity.UnlockNativeServerCFrameReplication(self: Entity)
881
+ if IS_SERVER then
882
+ if self.modelReplicationMode ~= "NATIVE" then
883
+ error("LockNativeServerCFrameReplication can only be called on NATIVE model replication mode entities")
884
+ end
885
+ if not self._lockedCFReplication then
886
+ return
887
+ end
888
+ SetValue(self, "_lockedCFReplication", false)
889
+ const part = GetPart(self)
890
+ UnlockCFReplication(part)
891
+ CheckNetworkOwner(self, self.networkOwner)
892
+ FireEvent(self, "LockChanged", false)
893
+ else
894
+ error("LockNativeServerCFrameReplication can only be called on the server")
895
+ end
896
+ end
897
+
898
+ --[=[
899
+ Returns the current model replication type of the entity, which can be "NATIVE", "CUSTOM", or "NATIVE_WITH_LOCK".
900
+
901
+ ]=]
902
+ function Entity.GetModelReplicationType(self: Entity): "NATIVE" | "CUSTOM" | "NATIVE_WITH_LOCK"
903
+ local mode = self.modelReplicationMode
904
+
905
+ if not mode then
906
+ mode = self.entityConfig.MODEL_REPLICATION_MODE
907
+ end
908
+ if mode == "CUSTOM" then
909
+ return "CUSTOM"
910
+ end
911
+ if self._lockedCFReplication then
912
+ return "NATIVE_WITH_LOCK"
913
+ end
914
+ return "NATIVE"
915
+ end
916
+
917
+ --[=[
918
+ Destroys the entity, unregistering it and cleaning up resources.
919
+ ]=]
920
+ function Entity.Destroy(self: Entity)
921
+ self.destroyed = true
922
+ FireEvent(self, "Destroying")
923
+ Holder.UnregisterEntity(self)
924
+ if self._clientClock then
925
+ self._clientClock:Destroy()
926
+ end
927
+
928
+ if not IS_SERVER then
929
+ const modeType = self.modelReplicationMode
930
+ const primaryPat = GetPart(self)
931
+ if modeType == "CUSTOM" then
932
+ SafeDestroy(self.model)
933
+ elseif primaryPat then
934
+ if self._lockedCFReplication then
935
+ UnlockCFReplication(primaryPat)
936
+ end
937
+ primaryPat.CFrame = CFrame.new(0, 1000000, 0)
938
+ end
939
+ else
940
+ SafeDestroy(self.model)
941
+ end
942
+
943
+ for eventName, signal: Types.Signal<any> in (self._events or {}) :: any do
944
+ signal:DisconnectAll()
945
+ end
946
+ self.model = nil
947
+ --//TODO: add more
948
+ end
949
+
950
+ --[=[
951
+ Gets the event signal for the specified event name.
952
+
953
+ @param eventName The name of the event to get.
954
+
955
+ @return The event signal associated with the specified event name.
956
+ ]=]
957
+ Entity.GetEvent = (GetEvent :: any) :: ((
958
+ self: Entity,
959
+ eventName: "Destroying"
960
+ ) -> Types.Event<(entity: Entity) -> (), Entity>) & ((
961
+ self: Entity,
962
+ eventName: "NetworkOwnerChanged"
963
+ ) -> Types.Event<(entity: Entity, newOwner: Player?, prevOwner: Player?) -> (), Entity, Player?, Player?>) & ((
964
+ self: Entity,
965
+ eventName: "PushedSnapShot"
966
+ ) -> Types.Event<
967
+ (entity: Entity, time: number, value: CFrame, isNewest: boolean) -> (),
968
+ Entity,
969
+ number,
970
+ CFrame,
971
+ boolean
972
+ >) & ((
973
+ self: Entity,
974
+ eventName: "TickChanged"
975
+ ) -> Types.Event<(entity: Entity, newTickType: "NONE" | "HALF" | "NORMAL") -> (), Entity, string>) & ((
976
+ self: Entity,
977
+ eventName: "DataChanged"
978
+ ) -> Types.Event<(entity: Entity, data: any) -> (), Entity, any>) & ((
979
+ self: Entity,
980
+ eventName: "Ticked"
981
+ ) -> Types.Event<(entity: Entity, dt: number) -> (), Entity, number>) & ((
982
+ self: Entity,
983
+ eventName: "ModelChanged"
984
+ ) -> Types.Event<
985
+ (entity: Entity, newModel: Model | BasePart?, oldModel: Model | BasePart?) -> (),
986
+ Entity,
987
+ Model | BasePart?,
988
+ Model | BasePart?
989
+ >) & ((
990
+ self: Entity,
991
+ eventName: "LockChanged"
992
+ ) -> Types.Event<(entity: Entity, isLocked: boolean) -> (), Entity, boolean>)
993
+
994
+ Players.PlayerAdded:Connect(function(player)
995
+ clientOwned[player] = {}
996
+ end)
997
+
998
+ if Players.LocalPlayer then
999
+ clientOwned[Players.LocalPlayer] = {}
1000
+ end
1001
+
1002
+ Players.PlayerRemoving:Connect(function(player)
1003
+ clientOwned[player] = nil
1004
+ end)
1005
+
1006
+ Events._Signals["请不要使用_内部_设置值_拜托谢谢_嗨_这个名字有点长_好吧_再见_算了_这个确实被用了_因为递归错误_而我懒得去解决_所以这是一个能用的_创可贴式修复_好吧"].Event:Connect(
1007
+ SetValue
1008
+ )
1009
+ Entity._Changes = Changes
1010
+ Entity._GetPart = GetPart
1011
+ Entity._SetPartCFrame = SetPartCFrame
1012
+ Entity._GetRootPart = GetRootPart
1013
+ Entity._LockPartPhysicsReplication = LockCFReplication
1014
+ Entity._UnlockPartPhysicsReplication = UnlockCFReplication
1015
+ Entity._UpdateClockBuffer = SetClock
1016
+ return Entity