This commit is contained in:
watrabi
2025-09-18 17:55:52 -04:00
commit 977f1ff4b8
15030 changed files with 17324420 additions and 0 deletions
+255
View File
@@ -0,0 +1,255 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>5</Y>
<Z>5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.89442724</R11>
<R12>0.44721362</R12>
<R20>0</R20>
<R21>-0.44721362</R21>
<R22>0.89442724</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>-5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">RBX_CHECK(true)</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+272
View File
@@ -0,0 +1,272 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>5</Y>
<Z>5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0, -112000000), Vector3.new(0, 20, 0))) -- used to be ok
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0, -114000000), Vector3.new(0, 20, 0))) -- barely overflows, so used to infinite loop and crash
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0, -1114000000), Vector3.new(0, 20, 0))) -- severely overflows
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0, 1114000000), Vector3.new(0, 20, 0))) -- not sure, but can&apos;t be good
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0, 1114000000), Vector3.new(0, 0, 20))) -- not sure, but can&apos;t be good
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0, -1114000000), Vector3.new(0, 0, 20))) -- not sure, but can&apos;t be good
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0/0, 0, 0), Vector3.new(0, 0, 20)))
-- below three are causing asserts to fail, so we&apos;re turning off these tests for now...
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0, 0), Vector3.new(0, math.sqrt(-1), 0)))
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0/0, 0), Vector3.new(0, math.sqrt(-1), 0)))
game.Workspace:FindPartOnRay(Ray.new(Vector3.new(0, 0/0, 0), Vector3.new(0, 0, math.sqrt(-1))))
script.Parent:Check(true, &quot;degenerate ray origin test&quot;)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
File diff suppressed because it is too large Load Diff
+508
View File
@@ -0,0 +1,508 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">18.166667614132166</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.300000012</float>
<float name="Friction">0.5</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">RBX3</Ref>
<token name="CameraType">5</token>
<CoordinateFrame name="CoordinateFrame">
<X>6.56191063</X>
<Y>367.263916</Y>
<Z>-22.5064411</Z>
<R00>-1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.974390864</R11>
<R12>0.224860832</R12>
<R20>0</R20>
<R21>0.224860832</R21>
<R22>-0.974390864</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>6.56191063</X>
<Y>364.453156</Y>
<Z>-10.3265553</Z>
<R00>0.167344213</R00>
<R01>-5.90978785e-021</R01>
<R02>-0.985898495</R02>
<R10>-3.22151548e-021</R10>
<R11>1</R11>
<R12>-6.54112941e-021</R12>
<R20>0.985898495</R20>
<R21>4.27070685e-021</R21>
<R22>0.167344213</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Part" referent="RBX4">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Baseplate</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>100</X>
<Y>1.20000005</Y>
<Z>100</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="LoadingGui" referent="RBX5">
<Properties>
<bool name="HideAutomatically">true</bool>
<string name="Name">LoadingGui</string>
</Properties>
</Item>
<Item class="StarterPack" referent="RBX6">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX7">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX8">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX9">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX10">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX11">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX12">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX13">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX14">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="GamePassService" referent="RBX15">
<Properties>
<string name="Name">GamePassService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX16">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX17">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX18">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX19">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX20">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX21">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="FWService" referent="RBX22">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="UserInputService" referent="RBX23">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptService" referent="RBX24">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX25">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX26">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX27">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX28">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX29">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">wait(3)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;Pizza&apos;
part.Parent = Workspace
Workspace:WaitForChild(&apos;p1&apos;)
Workspace:WaitForChild(&apos;p2&apos;)
Workspace:WaitForChild(&apos;p3&apos;)
Workspace:WaitForChild(&apos;p4&apos;)
Workspace:WaitForChild(&apos;p5&apos;)
Workspace:WaitForChild(&apos;p6&apos;)
Workspace:WaitForChild(&apos;p7&apos;)
Workspace:WaitForChild(&apos;p8&apos;)
Workspace:WaitForChild(&apos;p9&apos;)
Workspace:WaitForChild(&apos;p10&apos;)
Workspace:WaitForChild(&apos;p11&apos;)
print(&quot;All done.&quot;)</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX30">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript1</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p1&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX31">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript10</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p10&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX32">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript11</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p11&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX33">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript2</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p2&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX34">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript3</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p3&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX35">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript4</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p4&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX36">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript5</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p5&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX37">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript6</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p6&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX38">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript7</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p7&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX39">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript8</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p8&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX40">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitingScript9</string>
<ProtectedString name="Source">Workspace:WaitForChild(&apos;Pizza&apos;)
local part = Instance.new(&apos;Part&apos;)
part.Name = &apos;p9&apos;
part.Parent = Workspace
</ProtectedString>
</Properties>
</Item>
</Item>
<Item class="Teams" referent="RBX41">
<Properties>
<string name="Name">Teams</string>
</Properties>
</Item>
<Item class="TweenService" referent="RBX42">
<Properties>
<string name="Name">TweenService</string>
</Properties>
</Item>
</roblox>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+267
View File
@@ -0,0 +1,267 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">9.8000005111098289</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>4729.83447</Y>
<Z>4729.83447</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>4715.69238</Y>
<Z>4715.69238</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">
RBX_CHECK_EQUAL(1,1)
RBX_CHECK_NE(1,2)
RBX_CHECK_LE(1,1)
RBX_CHECK_GE(2,2)
RBX_CHECK_LE(1,2)
RBX_CHECK_GE(2,1)
RBX_CHECK_LT(1,2)
RBX_CHECK_GT(2,1)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+291
View File
@@ -0,0 +1,291 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">2.9666668213903904</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.300000012</float>
<float name="Friction">0.5</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>20</Y>
<Z>20</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Script" referent="RBX3">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">function f()
&#9;for i=1,10 do
&#9;&#9;print (&apos;f&apos; .. i)
&#9;&#9;workspace.Value.Value = i
&#9;&#9;wait(0.1)
&#9;end
end
delay(1, f)
print &apos;waiting&apos;
wait(0.5)
print &apos;end main&apos;</ProtectedString>
</Properties>
</Item>
<Item class="IntValue" referent="RBX4">
<Properties>
<string name="Name">Value</string>
<int name="Value">10</int>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX5">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX6">
<Properties>
<string name="Name">StarterGui</string>
<bool name="Preview">true</bool>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX7">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX8">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX9">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX10">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX11">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX12">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX13">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="GamePassService" referent="RBX14">
<Properties>
<string name="Name">GamePassService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX15">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX16">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX17">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX18">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX19">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX20">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX21">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX22">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX23">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX24">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX25">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">workspace.Value.Value = 0
wait(3)
RBX_CHECK_EQUAL(workspace.Value.Value, 10)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+332
View File
@@ -0,0 +1,332 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">93.33333820104599</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>20</Y>
<Z>20</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.300000012</float>
<float name="Friction">0.5</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="GamePassService" referent="RBX12">
<Properties>
<string name="Name">GamePassService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX13">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX15">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX16">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX17">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX18">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="FWService" referent="RBX19">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="UserInputService" referent="RBX20">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ContextActionService" referent="RBX21">
<Properties>
<string name="Name">ContextActionService</string>
</Properties>
</Item>
<Item class="ScriptService" referent="RBX22">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX23">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX24">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<bool name="GlobalShadows">false</bool>
<string name="Name">Lighting</string>
<Color3 name="OutdoorAmbient">4286611584</Color3>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX25">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX26">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<int name="NumberOfPlayers">0</int>
<double name="Timeout">60</double>
</Properties>
<Item class="Script" referent="RBX27">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">function recurse(w)
&#9;delay(w, function()
&#9;&#9;if tick() - s &gt;= 1 then
&#9;&#9;if w then
&#9;&#9;&#9;RBX_MESSAGE(&quot;testing delay &quot; .. w)
&#9;&#9;else
&#9;&#9;&#9;RBX_MESSAGE(&quot;testing delay nil&quot;)
&#9;&#9;end
&#9;&#9;&#9;RBX_CHECK_LE(count, 30)
&#9;&#9;else
&#9;&#9;&#9;count = count + 1
&#9;&#9;&#9;recurse(w)
&#9;&#9;end
&#9;end)
end
function testdelay(w)
&#9;s = tick()
&#9;count = 0
&#9;recurse(w)
&#9;wait(2)
end
function testwait(w)
&#9;if w then
&#9;&#9;RBX_MESSAGE(&quot;testing wait &quot; .. w)
&#9;else
&#9;&#9;RBX_MESSAGE(&quot;testing wait nil&quot;)
&#9;end
&#9;count = 0
&#9;s = tick()
&#9;while tick() - s &lt; 1 do
&#9;&#9;count = count + 1
&#9;&#9;wait(w)
&#9;end
&#9;RBX_CHECK_LE(count, 30)
end
function test(w)
&#9;testdelay(w)
&#9;testwait(w)
end
test(0.2)
test(0)
test()
test(0.00000000015)
test(0.01)
test(-20)</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
Binary file not shown.
@@ -0,0 +1,774 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>66.5552368</X>
<Y>28.3831482</Y>
<Z>10.512208</Z>
<R00>0.187403545</R00>
<R01>-0.102697119</R01>
<R02>0.976899803</R02>
<R10>-0</R10>
<R11>0.994519711</R11>
<R12>0.104549415</R12>
<R20>-0.982283056</R20>
<R21>-0.0195929315</R21>
<R22>0.186376512</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>47.0172424</X>
<Y>26.29216</Y>
<Z>6.78467798</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="Script" referent="RBX3">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">local testService = game.ManualJointHelperTest
local terrainCellSize = Vector3.new(4, 4, 4)
local part = Instance.new(&quot;Part&quot;)
local part2 = Instance.new(&quot;Part&quot;)
local part3 = Instance.new(&quot;WedgePart&quot;)
part.Anchored = true
part2.Anchored = true
part3.Anchored = true
local joinableSurfaceTypes = {&quot;Smooth&quot;, &quot;Glue&quot;, &quot;Weld&quot;, &quot;Inlet&quot;, &quot;Studs&quot;, &quot;Universal&quot;, &quot;Hinge&quot;, &quot;Motor&quot;, &quot;SteppingMotor&quot;, &quot;Unjoinable&quot;}
local surfaces = {&quot;BackSurface&quot;, &quot;BottomSurface&quot;, &quot;FrontSurface&quot;, &quot;LeftSurface&quot;, &quot;RightSurface&quot;, &quot;TopSurface&quot;}
local reverseFaceMapping = {3, 6, 1, 5, 4, 2}
local surfaceToWorldAxisMapping = {Vector3.new(0, 0, 1), Vector3.new(0, -1, 0), Vector3.new(0, 0, -1), Vector3.new(-1, 0, 0), Vector3.new(1, 0, 0), Vector3.new(0, 1, 0)}
function testJoin(partA, partB, whichAxis)
&#9;local madeJoint = false
&#9;-- position partA next to partB
&#9;partA.CFrame = partB.CFrame + partB.CFrame:vectorToWorldSpace(whichAxis * (partB.Size/2 + partA.Size/2))
&#9;-- and then join and see if welds are created
&#9;partA.Parent = game.Workspace
&#9;partB.Parent = game.Workspace
&#9;game.JointsService:SetJoinAfterMoveInstance(partA)
&#9;game.JointsService:CreateJoinAfterMoveJoints()
&#9;-- if there are any children, it&apos;s because a weld formed
&#9;madeJoint = ( #(partA:GetChildren()) &gt; 0 or #(partB:GetChildren()) &gt; 0 )
&#9;for a = 1, #partA:GetChildren() do partA:GetChildren()[a]:Remove() end
&#9;for b = 1, #partB:GetChildren() do partB:GetChildren()[b]:Remove() end
&#9;-- make them go away now
&#9;partA.Parent = nil
&#9;partB.Parent = nil
&#9;return madeJoint
end
function testTerrainJoin(partA, partB, whichAxis)
&#9;local madeJoint = false
&#9;-- position partA next to partB
&#9;partA.CFrame = partB.CFrame + partB.CFrame:vectorToWorldSpace(whichAxis * (partB.Size/2 + partA.Size/2))
&#9;-- and then join and see if welds are created
&#9;partA.Parent = game.Workspace
&#9;game.JointsService:SetJoinAfterMoveInstance(partA)
&#9;game.JointsService:CreateJoinAfterMoveJoints()
&#9;-- if there are any children, it&apos;s because a weld formed
&#9;madeJoint = #(partA:GetChildren()) &gt; 0
&#9;for a = 1, #partA:GetChildren() do partA:GetChildren()[a]:Remove() end
&#9;-- make them go away now
&#9;partA.Parent = nil
&#9;return madeJoint
end
function testJoinToAllSurfaces(partA, partB)
&#9;local numJoins = 0
&#9;for i = 1, 6 do
&#9;&#9;for j = 1, #joinableSurfaceTypes do
&#9;&#9;&#9;local oldSurfaceA = partA[surfaces[i]]
&#9;&#9;&#9;partA[surfaces[i]] = joinableSurfaceTypes[j]
&#9;&#9;&#9;for k = 1, #joinableSurfaceTypes do
&#9;&#9;&#9;&#9;local oldSurfaceB = partB[surfaces[reverseFaceMapping[i]]]
&#9;&#9;&#9;&#9;partB[surfaces[reverseFaceMapping[i]]] = joinableSurfaceTypes[k]
&#9;&#9;&#9;&#9;if testJoin(partA, partB, surfaceToWorldAxisMapping[reverseFaceMapping[i]]) then
&#9;&#9;&#9;&#9;&#9;--print(joinableSurfaceTypes[j], joinableSurfaceTypes[k])
&#9;&#9;&#9;&#9;&#9;numJoins = numJoins + 1
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;partB[surfaces[reverseFaceMapping[i]]] = oldSurfaceB
&#9;&#9;&#9;end
&#9;&#9;&#9;partA[surfaces[i]] = oldSurfaceA
&#9;&#9;end
&#9;&#9;--print(numJoins)
&#9;end
&#9;return numJoins
end
function testJoinToTerrainAllSurfaces(partA, partB)
&#9;local numJoins = 0
&#9;for i = 1, 6 do
&#9;&#9;for j = 1, #joinableSurfaceTypes do
&#9;&#9;&#9;local oldSurfaceA = partA[surfaces[i]]
&#9;&#9;&#9;partA[surfaces[i]] = joinableSurfaceTypes[j]
&#9;&#9;&#9;if testTerrainJoin(partA, partB, surfaceToWorldAxisMapping[reverseFaceMapping[i]]) then
&#9;&#9;&#9;&#9;--print(joinableSurfaceTypes[j])
&#9;&#9;&#9;&#9;numJoins = numJoins + 1
&#9;&#9;&#9;end
&#9;&#9;&#9;partA[surfaces[i]] = oldSurfaceA
&#9;&#9;end
&#9;&#9;--print(numJoins)
&#9;end
&#9;return numJoins
end
-- basic test suite
part2.CFrame = CFrame.new()
testService:Check( testJoinToAllSurfaces(part, part2) == 24, &quot;ManualJointHelper: Two blocks test&quot; ) -- only 4 combinations of surface types makes a weld * 6 faces
-- test with a ball
part2.Shape = &quot;Ball&quot;
testService:Check( testJoinToAllSurfaces(part, part2) == 0, &quot;ManualJointHelper: Block and ball test&quot; )
-- test with an off-axis brick
part2.Shape = &quot;Block&quot;
part2.CFrame = CFrame.Angles(.1, math.pi+.2, .7)
testService:Check( testJoinToAllSurfaces(part, part2) == 24, &quot;ManualJointHelper: Off-axis blocks test&quot; )
-- test with a default wedge
part3.CFrame = CFrame.new()
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Wedge-block test 1&quot; )
-- test with an off-axis wedge
part3.CFrame = CFrame.Angles(.1, math.pi+.2, .7)
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Off-axis wedge-block test 1&quot; )
-- test with a wedge whose default sides are all unjoinable
for i = 1, 6 do part3[surfaces[i]] = &quot;Unjoinable&quot; end
part3.CFrame = CFrame.new()
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Wedge-block test 2&quot; )
-- off-axis previous test
part3.CFrame = CFrame.Angles(.1, math.pi+.2, .7)
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Off-axis wedge-block test 2&quot; )
-- test with a terrain block
local oldValA, oldValB, oldValC = game.Workspace.Terrain:GetCell(0, 0, 0)
game.Workspace.Terrain:SetCell(0, 0, 0, 1, 0, 0)
local fakeTerrainPart = Instance.new(&quot;Part&quot;)
fakeTerrainPart.formFactor = &quot;Custom&quot;
fakeTerrainPart.Size = terrainCellSize
fakeTerrainPart.CFrame = CFrame.new(game.Workspace.Terrain:CellCenterToWorld(0, 0, 0))
testService:Check( testJoinToTerrainAllSurfaces(part, fakeTerrainPart) == 54, &quot;ManualJointHelper: Basic block-terrain test&quot; ) -- everything except Unjoinable makes a weld (9*6)
testService:Check( testJoinToTerrainAllSurfaces(part3, fakeTerrainPart) == 36, &quot;ManualJointHelper: Basic wedge-terrain test&quot; )
game.Workspace.Terrain:SetCell(0, 0, 0, oldValA, oldValB, oldValC)
--_G[&quot;testJoin&quot;] = testJoin -- for manual testing</ProtectedString>
</Properties>
</Item>
<Item class="Part" referent="RBX4">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>1</X>
<Y>10.2000008</Y>
<Z>-10</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<token name="Material">256</token>
<string name="Name">PartA</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>4</X>
<Y>1.20000005</Y>
<Z>2</Z>
</Vector3>
</Properties>
</Item>
<Item class="Part" referent="RBX5">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>9</Y>
<Z>-10</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<token name="Material">256</token>
<string name="Name">PartB</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>4</X>
<Y>1.20000005</Y>
<Z>2</Z>
</Vector3>
</Properties>
</Item>
<Item class="WedgePart" referent="RBX6">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-1</X>
<Y>21.2000008</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">false</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<token name="Material">256</token>
<string name="Name">Wedge</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">0</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<Vector3 name="size">
<X>4</X>
<Y>1.20000005</Y>
<Z>2</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX7">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX8">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX9">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX10">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX11">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX12">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX13">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX14">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX15">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX16">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX17">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX18">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX19">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX20">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX21">
<Properties>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX22">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX23">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<float name="SkyFogLower">1</float>
<float name="SkyFogUpper">0</float>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX24">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX25">
<Properties>
<string name="Description">Tests the &quot;Unjoinable&quot; SurfaceType</string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">ManualJointHelperTest</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX26">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">local testService = script.Parent
local terrainCellSize = Vector3.new(4, 4, 4)
local part = Instance.new(&quot;Part&quot;)
local part2 = Instance.new(&quot;Part&quot;)
local part3 = Instance.new(&quot;WedgePart&quot;)
part.Anchored = true
part2.Anchored = true
part3.Anchored = true
local joinableSurfaceTypes = {&quot;Smooth&quot;, &quot;Glue&quot;, &quot;Weld&quot;, &quot;Inlet&quot;, &quot;Studs&quot;, &quot;Universal&quot;, &quot;Hinge&quot;, &quot;Motor&quot;, &quot;SteppingMotor&quot;, &quot;Unjoinable&quot;}
local surfaces = {&quot;BackSurface&quot;, &quot;BottomSurface&quot;, &quot;FrontSurface&quot;, &quot;LeftSurface&quot;, &quot;RightSurface&quot;, &quot;TopSurface&quot;}
local reverseFaceMapping = {3, 6, 1, 5, 4, 2}
local surfaceToWorldAxisMapping = {Vector3.new(0, 0, 1), Vector3.new(0, -1, 0), Vector3.new(0, 0, -1), Vector3.new(-1, 0, 0), Vector3.new(1, 0, 0), Vector3.new(0, 1, 0)}
function testJoin(partA, partB, whichAxis)
&#9;local madeJoint = false
&#9;-- position partA next to partB
&#9;partA.CFrame = partB.CFrame + partB.CFrame:vectorToWorldSpace(whichAxis * (partB.Size/2 + partA.Size/2))
&#9;-- and then join and see if welds are created
&#9;partA.Parent = game.Workspace
&#9;partB.Parent = game.Workspace
&#9;game.JointsService:SetJoinAfterMoveInstance(partA)
&#9;game.JointsService:CreateJoinAfterMoveJoints()
&#9;-- if there are any children, it&apos;s because a weld formed
&#9;madeJoint = ( #(partA:GetChildren()) &gt; 0 or #(partB:GetChildren()) &gt; 0 )
&#9;for a = 1, #partA:GetChildren() do partA:GetChildren()[a]:Remove() end
&#9;for b = 1, #partB:GetChildren() do partB:GetChildren()[b]:Remove() end
&#9;-- make them go away now
&#9;partA.Parent = nil
&#9;partB.Parent = nil
&#9;return madeJoint
end
function testTerrainJoin(partA, partB, whichAxis)
&#9;local madeJoint = false
&#9;-- position partA next to partB
&#9;partA.CFrame = partB.CFrame + partB.CFrame:vectorToWorldSpace(whichAxis * (partB.Size/2 + partA.Size/2))
&#9;-- and then join and see if welds are created
&#9;partA.Parent = game.Workspace
&#9;game.JointsService:SetJoinAfterMoveInstance(partA)
&#9;game.JointsService:CreateJoinAfterMoveJoints()
&#9;-- if there are any children, it&apos;s because a weld formed
&#9;madeJoint = #(partA:GetChildren()) &gt; 0
&#9;for a = 1, #partA:GetChildren() do partA:GetChildren()[a]:Remove() end
&#9;-- make them go away now
&#9;partA.Parent = nil
&#9;return madeJoint
end
function testJoinToAllSurfaces(partA, partB)
&#9;local numJoins = 0
&#9;for i = 1, 6 do
&#9;&#9;for j = 1, #joinableSurfaceTypes do
&#9;&#9;&#9;local oldSurfaceA = partA[surfaces[i]]
&#9;&#9;&#9;partA[surfaces[i]] = joinableSurfaceTypes[j]
&#9;&#9;&#9;for k = 1, #joinableSurfaceTypes do
&#9;&#9;&#9;&#9;local oldSurfaceB = partB[surfaces[reverseFaceMapping[i]]]
&#9;&#9;&#9;&#9;partB[surfaces[reverseFaceMapping[i]]] = joinableSurfaceTypes[k]
&#9;&#9;&#9;&#9;if testJoin(partA, partB, surfaceToWorldAxisMapping[reverseFaceMapping[i]]) then
&#9;&#9;&#9;&#9;&#9;--print(joinableSurfaceTypes[j], joinableSurfaceTypes[k])
&#9;&#9;&#9;&#9;&#9;numJoins = numJoins + 1
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;partB[surfaces[reverseFaceMapping[i]]] = oldSurfaceB
&#9;&#9;&#9;end
&#9;&#9;&#9;partA[surfaces[i]] = oldSurfaceA
&#9;&#9;end
&#9;&#9;--print(numJoins)
&#9;end
&#9;return numJoins
end
function testJoinToTerrainAllSurfaces(partA, partB)
&#9;local numJoins = 0
&#9;for i = 1, 6 do
&#9;&#9;for j = 1, #joinableSurfaceTypes do
&#9;&#9;&#9;local oldSurfaceA = partA[surfaces[i]]
&#9;&#9;&#9;partA[surfaces[i]] = joinableSurfaceTypes[j]
&#9;&#9;&#9;if testTerrainJoin(partA, partB, surfaceToWorldAxisMapping[reverseFaceMapping[i]]) then
&#9;&#9;&#9;&#9;--print(joinableSurfaceTypes[j])
&#9;&#9;&#9;&#9;numJoins = numJoins + 1
&#9;&#9;&#9;end
&#9;&#9;&#9;partA[surfaces[i]] = oldSurfaceA
&#9;&#9;end
&#9;&#9;--print(numJoins)
&#9;end
&#9;return numJoins
end
-- basic test suite
part2.CFrame = CFrame.new()
testService:Check( testJoinToAllSurfaces(part, part2) == 24, &quot;ManualJointHelper: Two blocks test&quot; ) -- only 4 combinations of surface types makes a weld * 6 faces
-- test with a ball
part2.Shape = &quot;Ball&quot;
testService:Check( testJoinToAllSurfaces(part, part2) == 0, &quot;ManualJointHelper: Block and ball test&quot; )
-- test with an off-axis brick
part2.Shape = &quot;Block&quot;
part2.CFrame = CFrame.Angles(.1, math.pi+.2, .7)
testService:Check( testJoinToAllSurfaces(part, part2) == 24, &quot;ManualJointHelper: Off-axis blocks test&quot; )
-- test with a default wedge
part3.CFrame = CFrame.new()
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Wedge-block test 1&quot; )
-- test with an off-axis wedge
part3.CFrame = CFrame.Angles(.1, math.pi+.2, .7)
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Off-axis wedge-block test 1&quot; )
-- test with a wedge whose default sides are all unjoinable
for i = 1, 6 do part3[surfaces[i]] = &quot;Unjoinable&quot; end
part3.CFrame = CFrame.new()
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Wedge-block test 2&quot; )
-- off-axis previous test
part3.CFrame = CFrame.Angles(.1, math.pi+.2, .7)
testService:Check( testJoinToAllSurfaces(part, part3) == 16, &quot;ManualJointHelper: Off-axis wedge-block test 2&quot; )
-- test with a terrain block
local oldValA, oldValB, oldValC = game.Workspace.Terrain:GetCell(0, 0, 0)
game.Workspace.Terrain:SetCell(0, 0, 0, 1, 0, 0)
local fakeTerrainPart = Instance.new(&quot;Part&quot;)
fakeTerrainPart.formFactor = &quot;Custom&quot;
fakeTerrainPart.Size = terrainCellSize
fakeTerrainPart.CFrame = CFrame.new(game.Workspace.Terrain:CellCenterToWorld(0, 0, 0))
testService:Check( testJoinToTerrainAllSurfaces(part, fakeTerrainPart) == 54, &quot;ManualJointHelper: Basic block-terrain test&quot; ) -- everything except Unjoinable makes a weld (9*6)
testService:Check( testJoinToTerrainAllSurfaces(part3, fakeTerrainPart) == 36, &quot;ManualJointHelper: Basic wedge-terrain test&quot; )
game.Workspace.Terrain:SetCell(0, 0, 0, oldValA, oldValB, oldValC)
--_G[&quot;testJoin&quot;] = testJoin -- for manual testing</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
File diff suppressed because one or more lines are too long
@@ -0,0 +1,280 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">2.866666816174984</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>9.24264145</Y>
<Z>9.24264145</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>4.24264097</Y>
<Z>4.24264097</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="BindableEvent" referent="RBX3">
<Properties>
<string name="Name">Event</string>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX4">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX5">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX6">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX7">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX8">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX9">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX10">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX11">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX12">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX13">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX15">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX16">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX17">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX18">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX19">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX20">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX21">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX22">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">Test</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX23">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">local testTable = {c = 12, d = 14, e = 15}
Delay(1, function()
print(&apos;firing&apos;)
Workspace.Event:Fire(&apos;a&apos;, &apos;b&apos;, 12, testTable)
end)
a, b, c, d = Workspace.Event.Event:wait()
print(&apos;fire returned&apos;)
RBX_CHECK_EQUAL(a, &quot;a&quot;)
RBX_CHECK_EQUAL(b, &quot;b&quot;)
RBX_CHECK_EQUAL(c, 12)
for i, v in pairs(d) do
&#9;RBX_CHECK_EQUAL(v, testTable[i])
end
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
@@ -0,0 +1,289 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">2.0000001043081284</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>9.24264145</Y>
<Z>9.24264145</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>4.24264097</Y>
<Z>4.24264097</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="BindableFunction" referent="RBX3">
<Properties>
<string name="Name">Function</string>
</Properties>
</Item>
<Item class="BindableEvent" referent="RBX4">
<Properties>
<string name="Name">Event</string>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX5">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX6">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX7">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX8">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX9">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX10">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX11">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX12">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX13">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX14">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX15">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX16">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX17">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX18">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX19">
<Properties>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX20">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX21">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX22">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX23">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">Test</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX24">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">invoked = false
Workspace.Function.OnInvoke = nil
-- server
Delay(2, function()
&#9;Workspace.Function.OnInvoke = function()
&#9;&#9;invoked = true
&#9;end
end)
-- client. Test waiting for late binding
Workspace.Function:Invoke()
RBX_CHECK(invoked)
-- server
Workspace.Function.OnInvoke = function(message)
&#9;RBX_CHECK_EQUAL(message, &apos;world!&apos;)
&#9;return &quot;Hello &quot; .. message
end
-- client
result = Workspace.Function:Invoke(&quot;world!&quot;)
RBX_CHECK_EQUAL(result, &quot;Hello world!&quot;)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
@@ -0,0 +1,399 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<bool name="FilteringEnabled">false</bool>
<bool name="LoadStringEnabled">true</bool>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
<bool name="StreamingEnabled">false</bool>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0.105249323</X>
<Y>2.93674922</Y>
<Z>5.02452087</Z>
<R00>0.999780655</R00>
<R01>-0.0105661219</R01>
<R02>0.0180816781</R02>
<R10>-9.31322464e-10</R10>
<R11>0.863394618</R11>
<R12>0.504529178</R12>
<R20>-0.0209425408</R20>
<R21>-0.504418492</R21>
<R22>0.863205314</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<BinaryString name="ClusterGridV3"></BinaryString>
<float name="Elasticity">0.300000012</float>
<float name="Friction">0.5</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="LogService" referent="RBX3">
<Properties>
<string name="Name">LogService</string>
</Properties>
</Item>
<Item class="Players" referent="RBX4">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="PointsService" referent="RBX5">
<Properties>
<string name="Name">PointsService</string>
</Properties>
</Item>
<Item class="StarterPack" referent="RBX6">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX7">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX8">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX9">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX10">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX11">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX12">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX13">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX14">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="GamePassService" referent="RBX15">
<Properties>
<string name="Name">GamePassService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX16">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX17">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX18">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX19">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX20">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="FWService" referent="RBX21">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="UserInputService" referent="RBX22">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ContextActionService" referent="RBX23">
<Properties>
<string name="Name">ContextActionService</string>
</Properties>
</Item>
<Item class="ScriptService" referent="RBX24">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="AssetService" referent="RBX25">
<Properties>
<string name="Name">AssetService</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX26">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="ServerScriptService" referent="RBX27">
<Properties>
<bool name="LoadStringEnabled">false</bool>
<string name="Name">ServerScriptService</string>
</Properties>
</Item>
<Item class="ServerStorage" referent="RBX28">
<Properties>
<string name="Name">ServerStorage</string>
</Properties>
</Item>
<Item class="ReplicatedStorage" referent="RBX29">
<Properties>
<string name="Name">ReplicatedStorage</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX30">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX31">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<bool name="GlobalShadows">false</bool>
<string name="Name">Lighting</string>
<Color3 name="OutdoorAmbient">4286611584</Color3>
<bool name="Outlines">true</bool>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX32">
<Properties>
<bool name="AutoRuns">false</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<int name="NumberOfPlayers">0</int>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX33">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">local function modifyName(part, name)
&#9;part.Name = name
&#9;game:GetService(&quot;ChangeHistoryService&quot;):SetWaypoint(&quot;PropName&quot;)
end
local function createPart(name)
&#9;print(&quot;Creating part: &quot;..name);
&#9;-- create part and set workspace as parent
&#9;local part = Instance.new(&quot;Part&quot;)
&#9;part.Parent = game.Workspace
&#9;game:GetService(&quot;ChangeHistoryService&quot;):SetWaypoint(&quot;Create&quot;)
&#9;-- modify name and create another way point for property&#9;
&#9;modifyName(part, name)
end
local function deletePart(name)
&#9;print(&quot;Deleting part: &quot;..name);
&#9;local part = game.Workspace:FindFirstChild(name)
&#9;part.Parent = NULL
&#9;game:GetService(&quot;ChangeHistoryService&quot;):SetWaypoint(&quot;Delete&quot;)
end
local function executeVerb(verbName)
&#9;script.Parent:DoCommand(verbName)
end
local function checkCondition(stepName, expectedChildren)
&#9;local currentChldCount = #Workspace:GetChildren();
&#9;print(&quot;After &quot;..stepName..&quot; - child count: &quot;..currentChldCount..&quot; , expected: &quot;..expectedChildren)
&#9;RBX_CHECK_EQUAL(expectedChildren, currentChldCount)
end
local startCount = #Workspace:GetChildren()
local numChildren = 3
game:GetService(&quot;ChangeHistoryService&quot;):SetEnabled(1)
-- Create parts and modify name property (2 waypoints created per part)
for count = 1, numChildren, 1 do
&#9;createPart(&quot;Part&quot;..count)
&#9;checkCondition(&quot;Part&quot;..count..&quot; Create&quot;, startCount+count)
end
-- Undo parts creation: 1 undo for creation and 1 for property change
for count = 1, numChildren, 1 do
&#9;game:GetService(&quot;ChangeHistoryService&quot;):Undo()
&#9;game:GetService(&quot;ChangeHistoryService&quot;):Undo()
&#9;checkCondition(&quot;Undo Part&quot;..count..&quot; Create&quot;, startCount+numChildren-count)
end
-- Redo parts creation
for count = 1, numChildren, 1 do
&#9;game:GetService(&quot;ChangeHistoryService&quot;):Redo()
&#9;game:GetService(&quot;ChangeHistoryService&quot;):Redo()
&#9;checkCondition(&quot;Redo Part&quot;..count..&quot; Create&quot;, startCount+count)
end
-- Delete parts
for count = 1, numChildren, 1 do
&#9;deletePart(&quot;Part&quot;..count)
&#9;checkCondition(&quot;Part&quot;..count..&quot; Delete&quot;, startCount+numChildren-count)
end
-- Undo delete: parts should be added back
for count = 1, numChildren, 1 do
&#9;game:GetService(&quot;ChangeHistoryService&quot;):Undo()
&#9;checkCondition(&quot;Undo Part&quot;..count..&quot; Delete&quot;, startCount+count)
end
-- Redo delete: parts should again be removed
for count = 1, numChildren, 1 do
&#9;game:GetService(&quot;ChangeHistoryService&quot;):Redo()
&#9;checkCondition(&quot;Redo Part&quot;..count..&quot; Delete&quot;, startCount+numChildren-count)
end</ProtectedString>
</Properties>
</Item>
</Item>
<Item class="Teams" referent="RBX34">
<Properties>
<string name="Name">Teams</string>
</Properties>
</Item>
</roblox>
@@ -0,0 +1,369 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0.105249323</X>
<Y>2.93674922</Y>
<Z>5.02452087</Z>
<R00>0.999780655</R00>
<R01>-0.0105661219</R01>
<R02>0.0180816781</R02>
<R10>-9.31322464e-10</R10>
<R11>0.863394618</R11>
<R12>0.504529178</R12>
<R20>-0.0209425408</R20>
<R21>-0.504418492</R21>
<R22>0.863205314</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">false</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">test = game:GetService(&quot;TestService&quot;)
workspace = game.Workspace
terrain = game.Workspace.Terrain
history = game:GetService(&quot;ChangeHistoryService&quot;)
--explicitly enable history
history:SetEnabled(1)
XZ_CHUNK = 32
Y_CHUNK = 4
cellCountList = {}
materialList = {}
indexList = {}
wksChildList = {}
local function verifyPartUndo(index)
&#9;local part = workspace:findFirstChild(&quot;Part&quot;..(index-1))
&#9;test:Check(part ~= nil, &quot;Undo: Part not present&quot;)
&#9;
&#9;history:Undo()
&#9;history:Undo()
&#9;part = workspace:findFirstChild(&quot;Part&quot;..index)
&#9;test:Check(part == nil, &quot;Undo: Part still present&quot;)
&#9;test:Check(wksChildList[index-1] == #workspace:GetChildren(), &quot;Undo: Instances count mismatch&quot;)
end
local function verifyPartRedo(index)&#9;
&#9;history:Redo()
&#9;history:Redo()
&#9;test:Check(wksChildList[index] == #workspace:GetChildren(), &quot;Redo: Instances count mismatch&quot;)
end
local function modifyName(part, name)
&#9;part.Name = name
&#9;history:SetWaypoint(&quot;PropName&quot;)
end
local function createAndRenamePart(name)
&#9;-- create part and set workspace as parent
&#9;local part = Instance.new(&quot;Part&quot;)
&#9;part.Parent = game.Workspace
&#9;history:SetWaypoint(&quot;Create&quot;)
&#9;table.insert(wksChildList, #workspace:GetChildren())
&#9;-- modify name and create another way point for property&#9;
&#9;modifyName(part, name)
end
function checkLayerData(layerIndex)
&#9;local index = indexList[layerIndex]
&#9;local newM, newB, newO = terrain:GetCell(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
&#9;test:Check(materialList[layerIndex] == (newM.Value), &quot;Material mismatch&quot;)
&#9;test:Check(cellCountList[layerIndex] == terrain:CountCells(), &quot;Terrain cell count mismatch&quot;)
end
function verifyLayersUndo(index, numLayers)&#9;
&#9;for count = index, (index-numLayers+1), -1 do
&#9;&#9;--do an undo
&#9;&#9;history:Undo()
&#9;&#9;checkLayerData(count-1)
&#9;end
&#9;--this is last undo (after this there should not be any cells present in the terrain)
&#9;if ((index - numLayers) &lt;= 1) then
&#9;&#9;history:Undo()
&#9;&#9;test:Check(0 == terrain:CountCells(), &quot;Cell count&quot;)
&#9;end
end
function verifyLayersRedo(index, numLayers)
&#9;for count = index, (index+numLayers-1) do
&#9;&#9;--do a redo
&#9;&#9;history:Redo()
&#9;&#9;checkLayerData(count)
&#9;end
end
function generateLayers(numLayers, material)
&#9;for index=1, numLayers do
&#9;&#9;local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK*index, -XZ_CHUNK)
&#9;&#9;local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
&#9;&#9;terrain:SetCells(Region3int16.new(start,finish),material, 0, 0)
&#9;&#9;table.insert(cellCountList, terrain:CountCells())
&#9;&#9;table.insert(materialList, material)
&#9;&#9;table.insert(indexList, index)
&#9;&#9;
&#9;&#9;history:SetWaypoint(&quot;GenerateLayers&quot;)
&#9;end
end
table.insert(wksChildList, #workspace:GetChildren())
generateLayers(2, 1)
createAndRenamePart(&quot;Part1&quot;)
generateLayers(4, 7)
createAndRenamePart(&quot;Part2&quot;)
verifyPartUndo(3)
verifyLayersUndo(6, 4)
verifyPartUndo(2)
verifyLayersUndo(2, 1)
verifyLayersRedo(1, 2)
verifyPartRedo(2)
verifyLayersRedo(3, 4)
verifyPartRedo(3)</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
@@ -0,0 +1,387 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>11.5004616</X>
<Y>328.678162</Y>
<Z>549.033936</Z>
<R00>0.999780774</R00>
<R01>-0.0107550351</R01>
<R02>0.0179694742</R02>
<R10>9.31322686e-10</R10>
<R11>0.858053982</R11>
<R12>0.513559699</R12>
<R20>-0.0209421311</R20>
<R21>-0.513447106</R21>
<R22>0.857865691</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">false</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">test = game:GetService(&quot;TestService&quot;)
terrain = game.Workspace.Terrain
history = game:GetService(&quot;ChangeHistoryService&quot;)
--explicitly enable history
history:SetEnabled(1)
XZ_CHUNK = 32
Y_CHUNK = 4
cellCountList = {}
materialList = {}
indexList = {}
wedgeCountList = {}
function checkLayerData(layerIndex)
&#9;local index = indexList[layerIndex]
&#9;local newM, newB, newO = terrain:GetCell(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
&#9;test:Check(cellCountList[layerIndex] == terrain:CountCells(), &quot;Terrain cell count mismatch&quot;)
&#9;test:Check(materialList[layerIndex] == (newM.Value), &quot;Material mismatch&quot;)
end
function verifyLayersUndo(numLayers)
&#9;for count = numLayers, 2, -1 do
&#9;&#9;--do an undo
&#9;&#9;history:Undo()
&#9;&#9;checkLayerData(count-1)
&#9;end
&#9;--this is last undo (after this there should not be any cells present in the terrain)
&#9;history:Undo()
&#9;test:Check(0 == terrain:CountCells(), &quot;Cell count&quot;)
end
function verifyLayersRedo(numLayers)
&#9;for count = 1, numLayers do
&#9;&#9;--do an undo
&#9;&#9;history:Redo()
&#9;&#9;checkLayerData(count)
&#9;end
end
function generateLayers(numLayers, startMaterial, saveData)
&#9;for index=1, numLayers do
&#9;&#9;local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK*index, -XZ_CHUNK)
&#9;&#9;local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*index, XZ_CHUNK)
&#9;&#9;terrain:SetCells(Region3int16.new(start,finish),index+startMaterial, 0, 0)
&#9;&#9;if saveData then
&#9;&#9;&#9;table.insert(cellCountList, terrain:CountCells())
&#9;&#9;&#9;table.insert(materialList, index+startMaterial)
&#9;&#9;&#9;table.insert(indexList, index)
&#9;&#9;&#9;history:SetWaypoint(&quot;GenerateLayers&quot;)
&#9;&#9;end
&#9;end
end
function wedgeCount()
&#9;local count = 0
&#9;local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK, -XZ_CHUNK)
&#9;local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*5, XZ_CHUNK)
&#9;for y=start.Y, finish.Y do
&#9;&#9;for x=start.X, finish.X do
&#9;&#9;&#9;for z=start.X, finish.Z do
&#9;&#9;&#9;&#9;local newM, newB, newO = terrain:GetCell(x,y,z)
&#9;&#9;&#9;&#9;if newB ~= Enum.CellBlock.Solid then count = count + 1 end
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end
&#9;return count
end
function verifyAutoWedgeUndo(index)
&#9;history:Undo()
&#9;test:Check(wedgeCountList[index] == wedgeCount(), &quot;Undo: Wedge count mismatch&quot;)
end
function verifyAutoWedgeRedo(index)
&#9;history:Redo()
&#9;test:Check(wedgeCountList[index] == wedgeCount(), &quot;Redo: Wedge count mismatch&quot;)
end
function createAutoWedgeCells()
&#9;table.insert(wedgeCountList, wedgeCount())
&#9;local start = Vector3int16.new(-XZ_CHUNK, Y_CHUNK, -XZ_CHUNK)
&#9;local finish = Vector3int16.new(XZ_CHUNK, Y_CHUNK*5, XZ_CHUNK)
&#9;terrain:AutowedgeCells(Region3int16.new(start,finish))
&#9;history:SetWaypoint(&quot;CreateAutoWedgeCells&quot;)
&#9;table.insert(wedgeCountList, wedgeCount())
end
function verifyWayPointsAbsorb(layerIndex)
&#9;--first undo upto the last waypoint
&#9;while (history:GetCanUndo()) do
&#9;&#9;history:Undo()
&#9;end
&#9;-- specified layer must be present
&#9;checkLayerData(layerIndex)
end
-- create layers of different materials
generateLayers(5, 0, true)
&#9;-- modification without setting waypoint to verify that only the last modification is saved
generateLayers(1, 3, false)
generateLayers(5, 5, true)
-- verify undo/redo (10 states - max)
verifyLayersUndo(10)
verifyLayersRedo(10)
-- RWM - change history no longer merges at 11, it depends on memory usage.
--[[
-- add 11th entry in the change history to force an absorb
createAutoWedgeCells()
verifyAutoWedgeUndo(#wedgeCountList - 1)
verifyAutoWedgeRedo(#wedgeCountList)
-- first layer must be present as a result of absorb once the number of waypoints exceeds 10
verifyWayPointsAbsorb(1)
]]--
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
Binary file not shown.
@@ -0,0 +1,302 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>5</Y>
<Z>5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">-- print &apos;No Terrain&apos;
pt1 = Vector3.new(-1028,-4,-1028)
pt2 = Vector3.new(-1020,4,-1020)
-- print(Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit)))
testHit, testLocation = Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit))
RBX_CHECK_EQUAL(testHit, nil)
RBX_CHECK_EQUAL(testLocation, Vector3.new(-1027.42261, -3.42264986, -1027.42261))
-- print(Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit)))
testHit2, testLocation2 = Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit))
RBX_CHECK_EQUAL(testHit2, nil)
RBX_CHECK_EQUAL(testLocation2, Vector3.new(-1020.57733, 3.42264986, -1020.57733))
-- print &apos;Set Terrain&apos;
game.Workspace.Terrain:SetCell(1,0,1, 1,0,0)
testa, testb, testc = game.Workspace.Terrain:GetCell(1,0,1)
-- print(testa)
-- print(testb)
-- print(testc)
RBX_CHECK_EQUAL(testa, Enum.CellMaterial.Grass)
RBX_CHECK_EQUAL(testb, Enum.CellBlock.Solid)
RBX_CHECK_EQUAL(testc, Enum.CellOrientation.NegZ)
-- print(Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit)))
testHit3, testLocation3 = Workspace:FindPartOnRay(Ray.new(pt1, (pt2-pt1).unit))
RBX_CHECK_EQUAL(testHit3, nil)
RBX_CHECK_EQUAL(testLocation3, Vector3.new(-1027.42261, -3.42264986, -1027.42261))
-- print(Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit)))
testHit4, testLocation4 = Workspace:FindPartOnRay(Ray.new(pt2, (pt1-pt2).unit))
RBX_CHECK_EQUAL(testHit4, nil)
RBX_CHECK_EQUAL(testLocation4, Vector3.new(-1020.57733, 3.42264986, -1020.57733))
-- print &apos;Hit Terrain&apos;
-- print(Workspace:FindPartOnRay(Ray.new(Vector3.new(4,0,1), Vector3.new(4,1,4))))
testHit5, testLocation5 = Workspace:FindPartOnRay(Ray.new(Vector3.new(4,0,1), Vector3.new(4,1,4)))
RBX_CHECK_EQUAL(testHit5, Workspace.Terrain)
RBX_CHECK(testLocation5:isClose(Vector3.new(7, 0.75, 4)))</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
File diff suppressed because it is too large Load Diff
+270
View File
@@ -0,0 +1,270 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>430.67868</Y>
<Z>430.67868</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>416.53656</Y>
<Z>416.53656</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">false</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">t = tick()
wait(1)
wait(0.01)
wait(2)
RBX_CHECK_GE(tick(), t + 3)
wait(1)
wait(0.01)
wait(2)
RBX_CHECK_GE(tick(), t + 6)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+351
View File
@@ -0,0 +1,351 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">2.400000125169754</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>5</Y>
<Z>5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="SpawnLocation" referent="RBX3">
<Properties>
<bool name="AllowTeamChangeOnTouch">false</bool>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>0.600000024</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<int name="Duration">10</int>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<token name="Material">256</token>
<string name="Name">SpawnLocation</string>
<bool name="Neutral">true</bool>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<int name="TeamColor">194</int>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>4</X>
<Y>1.20000005</Y>
<Z>2</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX4">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX5">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX6">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX7">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX8">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX9">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX10">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX11">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX12">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX13">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX15">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX16">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX17">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX18">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX19">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX20">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX21">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX22">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX23">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">wait(2)
local bindFunction = Instance.new(&quot;BindableFunction&quot;)
bindFunction.OnInvoke = function(name, pointless)
&#9;return name .. &quot; sucess&quot;
end
bindFunction.Parent = script
RBX_CHECK_EQUAL(bindFunction:Invoke(&quot;test&quot;, 5), &quot;test sucess&quot;) --passes
RBX_CHECK_EQUAL(bindFunction:Invoke(&quot;test&quot;), &quot;test sucess&quot;) --passes
RBX_CHECK_EQUAL(bindFunction:Invoke(&quot;test&quot;, nil), &quot;test sucess&quot;) --crashes
--Might be a good idea to test bindable events as well
</ProtectedString>
</Properties>
<Item class="BindableFunction" referent="RBX24">
<Properties>
<string name="Name">Function</string>
</Properties>
</Item>
</Item>
</Item>
</roblox>
@@ -0,0 +1,344 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>5</Y>
<Z>5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">print &apos;Test Started!&apos;
light = game.Lighting
local defaultAmbient = Color3.new(0.5, 0.5, 0.5)
local defaultColorShift = Color3.new()
local defaultShadow = Color3.new(0.7, 0.7, 0.72)
local defaultFog = Color3.new(0.75, 0.75, 0.75)
local colorA = Color3.new(128/255, 128/255, 200/255)
local colorB = Color3.new(10/255,200/255,10/255)
local colorC = Color3.new(180/255, 30/255, 50/255)
function round(num, idp)
if idp and idp&gt;0 then
local mult = 10^idp
return math.floor(num * mult + 0.5) / mult
end
return math.floor(num + 0.5)
end
function roundColor(color)
&#9;return Color3.new(round(color.r, 2), round(color.g, 2), round(color.b, 2))
end
-----------------
--Lighting Test--
-----------------
-- time
RBX_CHECK_EQUAL(light.TimeOfDay, &quot;14:00:00&quot;)
RBX_CHECK_EQUAL(light:GetMinutesAfterMidnight(), 840)
light.TimeOfDay = &quot;02:45:00&quot;
RBX_CHECK_EQUAL(light.TimeOfDay, &quot;02:45:00&quot;)
RBX_CHECK_EQUAL(light:GetMinutesAfterMidnight(), 165)
light:SetMinutesAfterMidnight(600)
RBX_CHECK_EQUAL(light:GetMinutesAfterMidnight(), 600)
-- ambient color
RBX_CHECK_EQUAL(roundColor(light.Ambient), defaultAmbient)
light.Ambient = colorA
RBX_CHECK_EQUAL(light.Ambient, colorA)
-- brightness
RBX_CHECK_EQUAL(light.Brightness, 1)
light.Brightness = 2.5
RBX_CHECK_EQUAL(light.Brightness, 2.5)
-- color shifts
RBX_CHECK_EQUAL(light.ColorShift_Bottom, defaultColorShift)
RBX_CHECK_EQUAL(light.ColorShift_Top, defaultColorShift)
light.ColorShift_Bottom = colorB
RBX_CHECK_EQUAL(light.ColorShift_Bottom, colorB)
light.ColorShift_Top = colorC
RBX_CHECK_EQUAL(light.ColorShift_Top, colorC)
-- latitude
RBX_CHECK_EQUAL(round(light.GeographicLatitude, 5), 41.73330)
light.GeographicLatitude = -45
RBX_CHECK_EQUAL(light.GeographicLatitude, -45)
-- shadow color
RBX_CHECK_EQUAL(roundColor(light.ShadowColor), defaultShadow)
light.ShadowColor = colorA
RBX_CHECK_EQUAL(light.ShadowColor, colorA)
-- fog color
RBX_CHECK_EQUAL(roundColor(light.FogColor), defaultFog)
light.FogColor = colorB
RBX_CHECK_EQUAL(light.FogColor, colorB)
-- fog range
RBX_CHECK_EQUAL(light.FogEnd, 100000)
RBX_CHECK_EQUAL(light.FogStart, 0)
light.FogEnd = 50000
RBX_CHECK_EQUAL(light.FogEnd, 50000)
light.FogStart = 10
RBX_CHECK_EQUAL(light.FogStart, 10)
-- archivable
RBX_CHECK_EQUAL(light.Archivable, true)
light.Archivable = false
RBX_CHECK_EQUAL(light.Archivable, false)</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
@@ -0,0 +1,676 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">5.5333336219191551</double>
<bool name="FilteringEnabled">false</bool>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
<bool name="StreamingEnabled">false</bool>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>1.63866842</X>
<Y>18.2532272</Y>
<Z>22.6872654</Z>
<R00>0.381071687</R00>
<R01>-0.428337336</R01>
<R02>0.819335938</R02>
<R10>1.49011612e-008</R10>
<R11>0.886204123</R11>
<R12>0.463295013</R12>
<R20>-0.924545527</R20>
<R21>-0.1765486</R21>
<R22>0.337707281</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>17.3266392</Y>
<Z>22.0118523</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<BinaryString name="ClusterGridV3"></BinaryString>
<float name="Elasticity">0.300000012</float>
<float name="Friction">0.5</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="Part" referent="RBX3">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">199</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>-0.610000014</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">BasePlate</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>512</X>
<Y>1.20000005</Y>
<Z>512</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="NonReplicatedCSGDictionaryService" referent="RBX864D274EF3B243E490804D5A86EA89FC">
<Properties>
<string name="Name">NonReplicatedCSGDictionaryService</string>
</Properties>
</Item>
<Item class="CSGDictionaryService" referent="RBX7F7DF6135B5840B29EBA47C7153EAA8B">
<Properties>
<string name="Name">CSGDictionaryService</string>
</Properties>
</Item>
<Item class="LogService" referent="RBXCF803BA3091F467E87FB8C830E9BB1FE">
<Properties>
<string name="Name">LogService</string>
</Properties>
</Item>
<Item class="Players" referent="RBX20">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="PointsService" referent="RBXEE75879425DC420685016F2B2721197B">
<Properties>
<string name="Name">PointsService</string>
</Properties>
</Item>
<Item class="AdService" referent="RBX792F9C44DEBE460991EA5F388A25A9F0">
<Properties>
<string name="Name">AdService</string>
</Properties>
</Item>
<Item class="NotificationService" referent="RBXF8CCE586029B4308B7A9A8BE5244715F">
<Properties>
<string name="Name">NotificationService</string>
</Properties>
</Item>
<Item class="ReplicatedFirst" referent="RBXD981E8DFDFDE46E298E644E8ADBE6055">
<Properties>
<string name="Name">ReplicatedFirst</string>
</Properties>
</Item>
<Item class="StarterPlayer" referent="RBX3C7419342CC04527B18B00A3A8D925C7">
<Properties>
<float name="CameraMaxZoomDistance">400</float>
<float name="CameraMinZoomDistance">0.5</float>
<token name="CameraMode">0</token>
<token name="DevCameraOcclusionMode">0</token>
<token name="DevComputerCameraMovementMode">0</token>
<token name="DevComputerMovementMode">0</token>
<token name="DevTouchCameraMovementMode">0</token>
<token name="DevTouchMovementMode">0</token>
<bool name="EnableMouseLockOption">true</bool>
<float name="HealthDisplayDistance">100</float>
<string name="Name">StarterPlayer</string>
<float name="NameDisplayDistance">100</float>
</Properties>
</Item>
<Item class="StarterPack" referent="RBX5">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX6">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX7">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
<Item class="Sound" referent="RBX1C19A942E46D4A4CA26752A2A86941BC">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Boing</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/bass.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBXC56F11DFC54A40F38735C92C64EE4057">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Bomb</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/collide.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBXDFB37078C2FA4B288585C0CF2167C21D">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Break</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/glassbreak.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBX97A52E2BAAA24B85B025FA98D3DD9CF4">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Click</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/switch.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBX078DE981500942B999B998421D21B839">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Clock</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/clickfast.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBX763DB033187C43E281B555AD2E6A4F26">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Slingshot</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/Rubber band sling shot.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBXCC208B0621874A038118F1DA814240FE">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Page</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/pageturn.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBXB7F9C167526E4DB0ABF18F4220975B15">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Ping</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/electronicpingshort.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBX14044F0965A94294A1D1B9379C862666">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Snap</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/snap.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBXD8C0707FC3CF45BEBFA12CF3CA8E9A8F">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Splat</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/splat.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBXA8DBC755A0F94D63ACAAB6EDD269065C">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Step</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/SWITCH3.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBXF3CAB51F80B24288B53C8980E83994B7">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">StepOn</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/flashbulb.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBX67FF8CEF30834033B03A44B27BBD4BFC">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Swoosh</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/swoosh.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
<Item class="Sound" referent="RBX04CA255EDC9046B9A85E808708D6302F">
<Properties>
<bool name="Looped">false</bool>
<string name="Name">Victory</string>
<float name="Pitch">1</float>
<bool name="PlayOnRemove">false</bool>
<Content name="SoundId"><url>rbxasset://Sounds/victory.wav</url></Content>
<float name="Volume">0.5</float>
</Properties>
</Item>
</Item>
<Item class="CollectionService" referent="RBX8">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX9">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX10">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX11">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX12">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX13">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="GamePassService" referent="RBX14">
<Properties>
<string name="Name">GamePassService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX15">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX16">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX17">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX18">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX19">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="FWService" referent="RBX21">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="UserInputService" referent="RBX22">
<Properties>
<token name="MouseBehavior">0</token>
<bool name="MouseIconEnabled">true</bool>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ContextActionService" referent="RBX23">
<Properties>
<string name="Name">ContextActionService</string>
</Properties>
</Item>
<Item class="ScriptService" referent="RBX24">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="AssetService" referent="RBX54A4ED6CF85F4C00A53D0837A34D1D9A">
<Properties>
<string name="Name">AssetService</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX25">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="ServerScriptService" referent="RBX1D80419D7B784321AF59D95D2585ED79">
<Properties>
<bool name="LoadStringEnabled">false</bool>
<string name="Name">ServerScriptService</string>
</Properties>
</Item>
<Item class="ServerStorage" referent="RBXD70D4B4ED81745F1A227DB198ABCA46B">
<Properties>
<string name="Name">ServerStorage</string>
</Properties>
</Item>
<Item class="ReplicatedStorage" referent="RBXA2C2106E56C041C9A92E432C7AEFFBA1">
<Properties>
<string name="Name">ReplicatedStorage</string>
</Properties>
</Item>
<Item class="LuaWebService" referent="RBXAA99883FC5EC48F798208B546D2A72B0">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX26">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX27">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<bool name="GlobalShadows">false</bool>
<string name="Name">Lighting</string>
<Color3 name="OutdoorAmbient">4286611584</Color3>
<bool name="Outlines">true</bool>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX28">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<int name="NumberOfPlayers">1</int>
<double name="SimulateSecondsLag">0</double>
<double name="Timeout">20</double>
</Properties>
<Item class="LocalScript" referent="RBX29">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">LocalScript</string>
<ProtectedString name="Source">game:GetService(&quot;ContentProvider&quot;):SetBaseUrl(&quot;http://api.watrbx.wtf/&quot;)
local productTable = game:GetService(&quot;MarketplaceService&quot;):GetProductInfo(76063035)
RBX_CHECK_EQUAL(type(productTable),&quot;table&quot;)
local hasSomeChildren = false
for i,v in pairs(productTable) do
&#9;if i and v then
&#9;&#9;hasSomeChildren = true
&#9;&#9;break
&#9;end
end
RBX_CHECK_EQUAL(hasSomeChildren,true)</ProtectedString>
</Properties>
</Item>
<Item class="LocalScript" referent="RBX30">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">LocalScript</string>
<ProtectedString name="Source">game:GetService(&quot;ContentProvider&quot;):SetBaseUrl(&quot;http://api.watrbx.wtf/&quot;)
local productTable = game:GetService(&quot;MarketplaceService&quot;):GetProductInfo(77359753)
RBX_CHECK_EQUAL(type(productTable),&quot;table&quot;)
local hasSomeChildren = false
for i,v in pairs(productTable) do
&#9;if i and v then
&#9;&#9;hasSomeChildren = true
&#9;&#9;break
&#9;end
end
RBX_CHECK_EQUAL(hasSomeChildren,true)
</ProtectedString>
</Properties>
</Item>
<Item class="LocalScript" referent="RBX31">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">LocalScript</string>
<ProtectedString name="Source">game:GetService(&quot;ContentProvider&quot;):SetBaseUrl(&quot;http://api.watrbx.wtf/&quot;)
local productTable = game:GetService(&quot;MarketplaceService&quot;):GetProductInfo(25165538)
RBX_CHECK_EQUAL(type(productTable),&quot;table&quot;)
local hasSomeChildren = false
for i,v in pairs(productTable) do
&#9;if i and v then
&#9;&#9;hasSomeChildren = true
&#9;&#9;break
&#9;end
end
RBX_CHECK_EQUAL(hasSomeChildren,true)</ProtectedString>
</Properties>
</Item>
<Item class="LocalScript" referent="RBX32">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">LocalScript</string>
<ProtectedString name="Source">game:GetService(&quot;ContentProvider&quot;):SetBaseUrl(&quot;http://api.watrbx.wtf/&quot;)
local productTable = game:GetService(&quot;MarketplaceService&quot;):GetProductInfo(71037028)
RBX_CHECK_EQUAL(type(productTable),&quot;table&quot;)
local hasSomeChildren = false
for i,v in pairs(productTable) do
&#9;if i and v then
&#9;&#9;hasSomeChildren = true
&#9;&#9;break
&#9;end
end
RBX_CHECK_EQUAL(hasSomeChildren,true)</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX33">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">game:GetService(&quot;ContentProvider&quot;):SetBaseUrl(&quot;http://api.watrbx.wtf/&quot;)
local productTable = game:GetService(&quot;MarketplaceService&quot;):GetProductInfo(80922154)
RBX_CHECK_EQUAL(type(productTable),&quot;table&quot;)
local hasSomeChildren = false
for i,v in pairs(productTable) do
&#9;print(i,v)
&#9;if i and v then
&#9;&#9;hasSomeChildren = true
&#9;&#9;break
&#9;end
end
RBX_CHECK_EQUAL(hasSomeChildren,true)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
Binary file not shown.
@@ -0,0 +1,340 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0.3666666857898235321</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>-1.28055739</X>
<Y>2.85404038</Y>
<Z>4.71323586</Z>
<R00>0.965016544</R00>
<R01>0.13228178</R01>
<R02>-0.226372868</R02>
<R10>-7.4505806e-09</R10>
<R11>0.863395393</R11>
<R12>0.504528046</R12>
<R20>0.26218915</R20>
<R21>-0.486877918</R21>
<R22>0.833190739</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>2.34140849</X>
<Y>-5.21840858</Y>
<Z>-8.61781597</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX19">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX20">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">print &apos;Test Started!&apos;
Instance.new(&quot;Part&quot;, workspace)
TestPart = game.Workspace.Part
----------------------
--Part Appearance test
----------------------
--Materials test
TestPart.Material = &quot;Wood&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.Wood)
TestPart.Material = &quot;Slate&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.Slate)
TestPart.Material = &quot;Concrete&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.Concrete)
TestPart.Material = &quot;CorrodedMetal&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.CorrodedMetal)
TestPart.Material = &quot;DiamondPlate&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.DiamondPlate)
TestPart.Material = &quot;Foil&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.Foil)
TestPart.Material = &quot;Grass&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.Grass)
TestPart.Material = &quot;Ice&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.Ice)
TestPart.Material = &quot;Plastic&quot;
RBX_CHECK_EQUAL(TestPart.Material, Enum.Material.Plastic)
--Colors test
TestPart.BrickColor = BrickColor.new(&quot;White&quot;)
RBX_CHECK_EQUAL(TestPart.BrickColor.Name, &quot;White&quot;)
TestPart.BrickColor = BrickColor.new(&quot;Black&quot;)
RBX_CHECK_EQUAL(TestPart.BrickColor.Name,&quot;Black&quot;)
TestPart.BrickColor = BrickColor.new(&quot;Really red&quot;)
RBX_CHECK_EQUAL(TestPart.BrickColor.Name, &quot;Really red&quot;)
TestPart.BrickColor = BrickColor.new(&quot;Lime green&quot;)
RBX_CHECK_EQUAL(TestPart.BrickColor.Name, &quot;Lime green&quot;)
TestPart.BrickColor = BrickColor.new(&quot;Really blue&quot;)
RBX_CHECK_EQUAL(TestPart.BrickColor.Name, &quot;Really blue&quot;)
TestPart.BrickColor = BrickColor.new(&quot;Hot pink&quot;)
RBX_CHECK_EQUAL(TestPart.BrickColor.Name,&quot;Hot pink&quot;)
TestPart.BrickColor = BrickColor.new(&quot;New Yeller&quot;)
RBX_CHECK_EQUAL(TestPart.BrickColor.Name, &quot;New Yeller&quot;)
--Reflectance
TestPart.Reflectance = 1
RBX_CHECK_EQUAL(TestPart.Reflectance, 1)
TestPart.Reflectance = 0
RBX_CHECK_EQUAL(TestPart.Reflectance, 0)
--Transparency
TestPart.Transparency = 1
RBX_CHECK_EQUAL(TestPart.Transparency, 1)
TestPart.Transparency = 0
RBX_CHECK_EQUAL(TestPart.Transparency, 0)
</ProtectedString>
</Properties>
</Item>
</Item>
<Item class="Lighting" referent="RBX21">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX22">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
</roblox>
@@ -0,0 +1,357 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">10.533333882689476</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0.737178564</X>
<Y>12.1969004</Y>
<Z>21.4028587</Z>
<R00>0.971961021</R00>
<R01>-0.1111167</R01>
<R02>0.207231432</R02>
<R10>-7.45057971e-009</R10>
<R11>0.881303132</R11>
<R12>0.472551405</R12>
<R20>-0.235142052</R20>
<R21>-0.459301561</R21>
<R22>0.856592298</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0.322715759</X>
<Y>11.2517977</Y>
<Z>19.6896744</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.300000012</float>
<float name="Friction">0.5</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="GamePassService" referent="RBX12">
<Properties>
<string name="Name">GamePassService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX13">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX15">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX16">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX17">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX18">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="FWService" referent="RBX19">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="UserInputService" referent="RBX20">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ContextActionService" referent="RBX21">
<Properties>
<string name="Name">ContextActionService</string>
</Properties>
</Item>
<Item class="ScriptService" referent="RBX22">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX23">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX24">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX25">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">print &apos;Test Started!&apos;
Instance.new(&quot;Part&quot;, workspace)
TestPart = game.Workspace.Part
-----------------
--Part Data test
-----------------
RBX_CHECK_EQUAL(TestPart.ClassName, &quot;Part&quot;)
TestPart.Name = &quot;Isabella&quot;
RBX_CHECK_EQUAL(TestPart.Name, &quot;Isabella&quot;)
game.Workspace.Isabella.Name = &quot;Part&quot;
RBX_CHECK_EQUAL(TestPart.Name, &quot;Part&quot;)
RBX_CHECK_EQUAL(TestPart.Parent, game.Workspace)
Instance.new(&apos;Part&apos;, Workspace).Name = &quot;Brick&quot;
TestPart.Parent = game.Workspace.Brick
RBX_CHECK_EQUAL(TestPart.Parent, game.Workspace.Brick)
game.Workspace.Brick.Part.Parent = game.Workspace
game.Workspace.Brick:Destroy()
for index, child in pairs(Workspace:GetChildren()) do
RBX_CHECK_NE(child,&quot;Brick&quot;)
end
---------------
--Position test
---------------
TestPart.Position = Vector3.new(50, 5.5, 50)
RBX_CHECK_EQUAL(TestPart.Position, Vector3.new(50, 5.5, 50))
TestPart.Position = Vector3.new(0, 0, 0)
RBX_CHECK_EQUAL(TestPart.Position, Vector3.new(0, 0.0, 0))
---------------
--Ground Plane Position test
---------------
TestPart.Position = Vector3.new(0, -400, 0)
RBX_CHECK_EQUAL(TestPart.Position.x, 0)
RBX_CHECK_GT(TestPart.Position.y, -400) -- Should be -399.3 but we have floating point issues...
RBX_CHECK_LT(TestPart.Position.y, -399)
RBX_CHECK_EQUAL(TestPart.Position.z, 0)
--------------
--RotVelocity
--------------
TestPart.RotVelocity = Vector3.new(50, 5.5, 50)
RBX_CHECK_EQUAL(TestPart.RotVelocity, Vector3.new(50, 5.5, 50))
TestPart.RotVelocity = Vector3.new(0, 0, 0)
RBX_CHECK_EQUAL(TestPart.RotVelocity, Vector3.new(0, 0, 0))
---------------
--Velocity
---------------
TestPart.Velocity = Vector3.new(50, 5.5, 50)
RBX_CHECK_EQUAL(TestPart.Velocity, Vector3.new(50, 5.5, 50))
TestPart.Velocity = Vector3.new(0, 0, 0)
RBX_CHECK_EQUAL(TestPart.RotVelocity, Vector3.new(0, 0, 0))
</ProtectedString>
</Properties>
</Item>
</Item>
<Item class="Lighting" referent="RBX26">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX27">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
</roblox>
@@ -0,0 +1,337 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">9.9000005163252353668</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>23.7713146</X>
<Y>13.0315809</Y>
<Z>-43.4618149</Z>
<R00>-0.848045647</R00>
<R01>-0.174273074</R01>
<R02>0.500447392</R02>
<R10>-1.4901163e-08</R10>
<R11>0.944377184</R11>
<R12>0.328864664</R12>
<R20>-0.52992332</R20>
<R21>0.278892249</R21>
<R22>-0.800874829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>-0.664607048</X>
<Y>-3.02627182</Y>
<Z>-4.3565731</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX19">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX20">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">print &apos;Test Started!&apos;
Instance.new(&quot;Part&quot;, workspace)
TestPart = game.Workspace.Part
-----------------
--Part Part test
-----------------
TestPart.Elasticity = 1
RBX_CHECK_EQUAL(TestPart.Elasticity, 1)
TestPart.Elasticity = 0.5
RBX_CHECK_EQUAL(TestPart.Elasticity, 0.5)
TestPart.Elasticity = 0
RBX_CHECK_EQUAL(TestPart.Elasticity, 0)
TestPart.Friction = 1
RBX_CHECK_EQUAL(TestPart.Friction, 1)
TestPart.Friction = 0.5
RBX_CHECK_EQUAL(TestPart.Friction, 0.5)
TestPart.Friction = 0
RBX_CHECK_EQUAL(TestPart.Friction, 0)
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Brick)
TestPart.Size = Vector3.new(20, 6, 10)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(20, 6, 10))
TestPart.Size = Vector3.new(4, 1.2, 2)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(4, 1.2, 2))
TestPart.FormFactor = 2
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Plate)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(4, 0.400000006, 2))
TestPart.Size = Vector3.new(20, 2, 10)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(20, 2, 10))
TestPart.FormFactor = 3
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Custom)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(20, 2, 10))
TestPart.Size = Vector3.new(0.2, 0.2, 0.2)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(0.2, 0.2, 0.2))
TestPart.Size = Vector3.new(10, 1, 5)
TestPart.FormFactor = 0
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Symmetric)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(10, 1, 5))
TestPart.FormFactor = 1
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Brick)
TestPart.Size = Vector3.new(4, 1.2, 2)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(4, 1.2, 2))
RBX_CHECK_EQUAL(TestPart.Shape, Enum.PartType.Block)
TestPart.Shape = 0
RBX_CHECK_EQUAL(TestPart.Shape, Enum.PartType.Ball)
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Symmetric)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(4, 4, 4))
TestPart.Shape = 2
RBX_CHECK_EQUAL(TestPart.Shape, Enum.PartType.Cylinder)
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Symmetric)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(4, 4, 4))
TestPart.Shape = 1
RBX_CHECK_EQUAL(TestPart.Shape, Enum.PartType.Block)
TestPart.FormFactor = 1
RBX_CHECK_EQUAL(TestPart.FormFactor, Enum.FormFactor.Brick)
TestPart.Size = Vector3.new(4, 1.2, 2)
RBX_CHECK_EQUAL(TestPart.Size, Vector3.new(4, 1.2, 2))</ProtectedString>
</Properties>
</Item>
</Item>
<Item class="Lighting" referent="RBX21">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX22">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
</roblox>
@@ -0,0 +1,395 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">2.8000001460313797</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>1.45023704</X>
<Y>1.13287139</Y>
<Z>6.74033165</Z>
<R00>0.977627397</R00>
<R01>-0.034105055</R01>
<R02>0.20756115</R02>
<R10>-0</R10>
<R11>0.986767948</R11>
<R12>0.162139073</R12>
<R20>-0.210344464</R20>
<R21>-0.158511594</R21>
<R22>0.964691281</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX19">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX20">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">print &apos;Test Started!&apos;
Instance.new(&quot;Part&quot;, workspace)
TestPart = game.Workspace.Part
-------------------
--SurfaceInput test
-------------------
function SurfaceInputTest(arg)
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.NoInput)
TestPart[arg] = 1
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.LeftTread)
TestPart[arg] = 2
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.RightTread)
TestPart[arg] = 3
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Steer)
TestPart[arg] = 4
--There is a typo bug here in the Enum name
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Throtle)
TestPart[arg] = 6
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.UpDown)
TestPart[arg] = 7
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Action1)
TestPart[arg] = 8
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Action2)
TestPart[arg] = 9
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Action3)
TestPart[arg] = 10
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Action4)
TestPart[arg] = 11
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Action5)
TestPart[arg] = 12
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Constant)
TestPart[arg] = 13
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.Sin)
TestPart[arg] = 0
RBX_CHECK_EQUAL(TestPart[arg], Enum.InputType.NoInput)
end
--ParamTest
function ParamAParamBTest(arg1, arg2)
RBX_CHECK_EQUAL(TestPart[arg1], -0.5)
TestPart[arg1] = -1
RBX_CHECK_EQUAL(TestPart[arg1], -1)
TestPart[arg1] = 0.5
RBX_CHECK_EQUAL(TestPart[arg1], 0.5)
TestPart[arg1] = 2
RBX_CHECK_EQUAL(TestPart[arg1], 2)
TestPart[arg1] = -0.5
RBX_CHECK_EQUAL(TestPart[arg1], -0.5)
RBX_CHECK_EQUAL(TestPart[arg2], 0.5)
TestPart[arg2] = 1
RBX_CHECK_EQUAL(TestPart[arg2], 1)
TestPart[arg2] = -2
RBX_CHECK_EQUAL(TestPart[arg2], -2)
TestPart[arg2] = -0.5
RBX_CHECK_EQUAL(TestPart[arg2], -0.5)
TestPart[arg2] = 0.5
RBX_CHECK_EQUAL(TestPart[arg2], 0.5)
end
---BackSurfaceInput
SurfaceInputTest(&quot;BackSurfaceInput&quot;)
---BottomSurfaceInput
SurfaceInputTest(&quot;BottomSurfaceInput&quot;)
---FrontSurfaceInput
SurfaceInputTest(&quot;FrontSurfaceInput&quot;)
---LeftSurfaceInput
SurfaceInputTest(&quot;LeftSurfaceInput&quot;)
---RightSurfaceInput
SurfaceInputTest(&quot;RightSurfaceInput&quot;)
---TopSurfaceInput
SurfaceInputTest(&quot;TopSurfaceInput&quot;)
---BackParamA BackParamB
ParamAParamBTest(&quot;BackParamA&quot;, &quot;BackParamB&quot;)
---BottomParamA BottomParamB
ParamAParamBTest(&quot;BottomParamA&quot;, &quot;BottomParamB&quot;)
---FrontParamA FrontParamB
ParamAParamBTest(&quot;FrontParamA&quot;, &quot;FrontParamB&quot;)
---LeftParamA LeftParamB
ParamAParamBTest(&quot;LeftParamA&quot;, &quot;LeftParamB&quot;)
---RightParamA
ParamAParamBTest(&quot;RightParamA&quot;, &quot;RightParamB&quot;)
---TopParamA
ParamAParamBTest(&quot;TopParamA&quot;, &quot;TopParamB&quot;)
</ProtectedString>
</Properties>
</Item>
</Item>
<Item class="Lighting" referent="RBX21">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX22">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
</roblox>
@@ -0,0 +1,347 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">29.833334889262915</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>-1.82716751</X>
<Y>-3.38334775</Y>
<Z>-4.02585697</Z>
<R00>-0.889413834</R00>
<R01>-0.148065642</R01>
<R02>0.432457805</R02>
<R10>1.4901163e-008</R10>
<R11>0.946083963</R11>
<R12>0.3239218</R12>
<R20>-0.457103074</R20>
<R21>0.288100541</R21>
<R22>-0.84145999</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>-6.2555232</X>
<Y>-6.70029783</Y>
<Z>4.59066963</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX19">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX20">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">print &apos;Test Started!&apos;
Instance.new(&quot;Part&quot;, workspace)
TestPart = game.Workspace.Part
-----------------
--Part Surface test
-----------------
function SurfaceTypeTest(arg)
if (arg == &quot;BottomSurface&quot;) then
RBX_CHECK_EQUAL(TestPart.BottomSurface, Enum.SurfaceType.Inlet)
TestPart[arg] = 0
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Smooth)
elseif (arg == &quot;TopSurface&quot;) then
RBX_CHECK_EQUAL(TestPart.TopSurface, Enum.SurfaceType.Studs)
TestPart[arg] = 0
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Smooth)
end
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Smooth)
TestPart[arg] = 0
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Smooth)
TestPart[arg] = 1
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Glue)
TestPart[arg] = 2
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Weld)
TestPart[arg] = 3
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Studs)
TestPart[arg] = 4
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Inlet)
TestPart[arg] = 5
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Universal)
TestPart[arg] = 6
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Hinge)
TestPart[arg] = 7
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Motor)
TestPart[arg] = 8
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.SteppingMotor)
TestPart[arg] = 9
RBX_CHECK_EQUAL(TestPart[arg], Enum.SurfaceType.Unjoinable)
end
---BackSurface
SurfaceTypeTest(&quot;BackSurface&quot;)
---FrontSurface
SurfaceTypeTest(&quot;FrontSurface&quot;)
---LeftSurface
SurfaceTypeTest(&quot;LeftSurface&quot;)
---RightSurface
SurfaceTypeTest(&quot;RightSurface&quot;)
---BottomSurface
SurfaceTypeTest(&quot;BottomSurface&quot;)
TestPart.BottomSurface = 4
RBX_CHECK_EQUAL(TestPart.BottomSurface, Enum.SurfaceType.Inlet)
---TopSurface
SurfaceTypeTest(&quot;TopSurface&quot;)
TestPart.TopSurface = 3
RBX_CHECK_EQUAL(TestPart.TopSurface, Enum.SurfaceType.Studs)</ProtectedString>
</Properties>
</Item>
</Item>
<Item class="Lighting" referent="RBX21">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX22">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
</roblox>
+267
View File
@@ -0,0 +1,267 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">1.1000000573694706</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>4198.10107</Y>
<Z>4198.10107</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>4183.95898</Y>
<Z>4183.95898</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">RBX_CHECK_EQUAL(game.Lighting, game.lighting)
-- ensure that &quot;lighting&quot; is read-only
RBX_CHECK_THROW(game.lighting = nil)
p = Instance.new(&quot;Part&quot;)
RBX_CHECK_EQUAL(p.BrickColor, p.brickColor)
h = Instance.new(&quot;Humanoid&quot;)
RBX_CHECK_EQUAL(h.MaxHealth, h.maxHealth)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+260
View File
@@ -0,0 +1,260 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">21.800001136958599</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>5521.77783</Y>
<Z>5521.77783</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>5507.63574</Y>
<Z>5507.63574</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">RBX_CHECK_NO_THROW(a = 34)
RBX_CHECK_THROW(a.b = 34)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+378
View File
@@ -0,0 +1,378 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">10.766667228192091</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>-3.4744873</X>
<Y>13.5319033</Y>
<Z>-10.6933527</Z>
<R00>-0.951056361</R00>
<R01>0.233199432</R01>
<R02>-0.202755615</R02>
<R10>-0</R10>
<R11>0.656129837</R11>
<R12>0.75464797</R12>
<R20>0.309017509</R20>
<R21>0.71771276</R21>
<R22>-0.624016464</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0.600006104</Y>
<Z>0</Z>
<R00>-1</R00>
<R01>-3.93885757e-021</R01>
<R02>-6.24707407e-022</R02>
<R10>-3.93885757e-021</R10>
<R11>1</R11>
<R12>5.67670588e-021</R12>
<R20>6.24707407e-022</R20>
<R21>5.67670588e-021</R21>
<R22>-1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="Script" referent="RBX3">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">InstanceNew</string>
<ProtectedString name="Source">print(&apos;asdf&apos;)
if not pcall(function()
&#9;local _new = Instance.new
&#9;function Instance.new(...)
&#9;&#9;
&#9;&#9;if pcall(function() game:GetService(&quot;ScriptContext&quot;).Error:connect(function() end) end) then
&#9;&#9;&#9;Instance.new = _new
&#9;&#9;&#9;print(&quot;Corescript access given.&quot;)
&#9;&#9;&#9;script.Hacked:Fire(true)
&#9;&#9;else
&#9;&#9;&#9;print(&quot;Failed to get corescript access&quot;)
&#9;&#9;&#9;script.Hacked:Fire(false)
&#9;&#9;end
&#9;&#9;return _new(...)
&#9;end
end) then
&#9;print(&quot;Failed to overload Instance.new&quot;)
&#9;script.Hacked:Fire(false)
end
print(&apos;fdas&apos;)
</ProtectedString>
</Properties>
<Item class="BindableEvent" referent="RBX4">
<Properties>
<string name="Name">Hacked</string>
</Properties>
</Item>
</Item>
<Item class="Part" referent="RBX5">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>3</X>
<Y>0.600000024</Y>
<Z>8.5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<token name="Material">256</token>
<string name="Name">Part</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>20</X>
<Y>1.20000005</Y>
<Z>31</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX6">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX7">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX8">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX9">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX10">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX11">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX12">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX13">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX14">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX15">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX16">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX17">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX18">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX19">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX20">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX21">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX22">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX23">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="Teams" referent="RBX24">
<Properties>
<string name="Name">Teams</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX25">
<Properties>
<bool name="AutoRuns">false</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX26">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">delay(0, function()
&#9;game:GetService(&quot;RunService&quot;):Run()
&#9;wait(1)
&#9;Instance.new(&apos;Part&apos;)
end)
hacked = Workspace.InstanceNew.Hacked.Event:wait()
RBX_CHECK(not hacked)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+400
View File
@@ -0,0 +1,400 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>15.3125</Y>
<Z>7.81249952</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>7.50000095</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="Part" referent="RBX3">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>2.50000095</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<token name="Material">256</token>
<string name="Name">P1</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">0</token>
<token name="shape">2</token>
<Vector3 name="size">
<X>5</X>
<Y>5</Y>
<Z>5</Z>
</Vector3>
</Properties>
</Item>
<Item class="Part" referent="RBX4">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>7.50000095</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<token name="Material">256</token>
<string name="Name">P2</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">0</token>
<token name="shap">2</token>
<Vector3 name="siz">
<X>5</X>
<Y>5</Y>
<Z>5</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX5">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX6">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX7">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX8">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX9">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX10">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX11">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX12">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX13">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX14">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX15">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX16">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX17">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX18">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX19">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX20">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX21">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX22">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX23">
<Properties>
<bool name="AutoRuns">false</bool>
<string name="Description">Tests legacy file formats</string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX24">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">RBX_CHECK_EQUAL(Workspace.P1.Shape, Enum.PartType.Cylinder)
RBX_CHECK_EQUAL(Workspace.P1.Size, Vector3.new(5,5,5))
RBX_CHECK_EQUAL(Workspace.P2.Shape, Enum.PartType.Cylinder)
RBX_CHECK_EQUAL(Workspace.P2.Size, Vector3.new(5,5,5))
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
+322
View File
@@ -0,0 +1,322 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">0</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>24.2426395</Y>
<Z>24.2426395</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>22.8284264</Y>
<Z>22.8284264</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.300000012</float>
<float name="Friction">0.5</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="Model" referent="RBX3">
<Properties>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">iParent</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
</Item>
<Item class="Model" referent="RBX4">
<Properties>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">iChild</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX5">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX6">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX7">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX8">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX9">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX10">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX11">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX12">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX13">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="GamePassService" referent="RBX14">
<Properties>
<string name="Name">GamePassService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX15">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX16">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX17">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX18">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX19">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX20">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="FWService" referent="RBX21">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="UserInputService" referent="RBX22">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX23">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX24">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX25">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX26">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX27">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">WaitForChildScript</string>
<ProtectedString name="Source">game.Workspace.iParent:WaitForChild(&quot;iChild&quot;)
RBX_CHECK(true)
</ProtectedString>
</Properties>
</Item>
<Item class="Script" referent="RBX28">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">DelayedScript</string>
<ProtectedString name="Source">wait(2)
game.Workspace.iChild.Parent = game.Workspace.iParent</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+287
View File
@@ -0,0 +1,287 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">23.433334555476904</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>4533.26318</Y>
<Z>4533.26318</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>4519.12109</Y>
<Z>4519.12109</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
<Item class="BindableFunction" referent="RBX3">
<Properties>
<string name="Name">Function</string>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX4">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX5">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX6">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX7">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX8">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX9">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX10">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX11">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX12">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX13">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX15">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX16">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX17">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX18">
<Properties>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX19">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX20">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX21">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX22">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">5</double>
</Properties>
<Item class="Script" referent="RBX23">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">f = Instance.new(&quot;BindableFunction&quot;)
f.Parent = Workspace
invoked = false
Delay(2, function()
&#9;f.OnInvoke = function()
&#9;&#9;invoked = true
&#9;end
end)
s, m, n, z = ypcall(function ()
&#9;f:Invoke()
&#9;RBX_CHECK(invoked)
print(&apos;yp return&apos;)
&#9;return 0.5, 1, &apos;hello2&apos;
end)
print(&apos;yp returned&apos;)
f.Parent = nil
RBX_CHECK(s)
RBX_CHECK_EQUAL(m, 0.5)
RBX_CHECK_EQUAL(n, 1)
print(z)
RBX_CHECK_EQUAL(z, &apos;hello2&apos;)
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+280
View File
@@ -0,0 +1,280 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">6.8000003546476364</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>5</Y>
<Z>5</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106829</R11>
<R12>0.707106829</R12>
<R20>0</R20>
<R21>-0.707106829</R21>
<R22>0.707106829</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description"></string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">10</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">
toHight1 = 0
for i = 1, 10 do
&#9;delta = wait()
&#9;if delta &gt; 0.1 then
toHight1 = toHight1 + 1
&#9;end
&#9;RBX_WARN_LE(delta, 0.1)
&#9;RBX_CHECK_GE(delta, 0.03)
end
RBX_CHECK_LE(toHight1, 3) -- a few might take too long, but not all
toHight2 = 0
for i = 1, 5 do
&#9;delta = wait(0.5)
&#9;if delta &gt; 0.7 then
toHight2 = toHight2 + 1
&#9;end
&#9;RBX_WARN_LE(delta, 0.7)
&#9;RBX_CHECK_GE(delta, 0.3)
end
RBX_CHECK_LE(toHight2, 3) -- a few might take too long, but not all
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
+307
View File
@@ -0,0 +1,307 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.watrbx.wtf/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Workspace" referent="RBX0">
<Properties>
<Ref name="CurrentCamera">RBX1</Ref>
<double name="DistributedGameTime">8.9666671343147755</double>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Workspace</string>
<Ref name="PrimaryPart">null</Ref>
</Properties>
<Item class="Camera" referent="RBX1">
<Properties>
<Ref name="CameraSubject">null</Ref>
<token name="CameraType">0</token>
<CoordinateFrame name="CoordinateFrame">
<X>0</X>
<Y>2693.40869</Y>
<Z>2693.40869</Z>
<R00>1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>0.707106769</R11>
<R12>0.707106769</R12>
<R20>0</R20>
<R21>-0.707106769</R21>
<R22>0.707106769</R22>
</CoordinateFrame>
<float name="FieldOfView">70</float>
<CoordinateFrame name="Focus">
<X>0</X>
<Y>2679.2666</Y>
<Z>2679.2666</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">Camera</string>
</Properties>
</Item>
<Item class="Terrain" referent="RBX2">
<Properties>
<bool name="Anchored">true</bool>
<bool name="Archivable">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">194</int>
<CoordinateFrame name="CFrame">
<X>-2</X>
<Y>126</Y>
<Z>-2</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<string name="ClusterGridV2"></string>
<float name="Elasticity">0.5</float>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<token name="Material">256</token>
<string name="Name">Terrain</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="size">
<X>2044</X>
<Y>252</Y>
<Z>2044</Z>
</Vector3>
</Properties>
</Item>
</Item>
<Item class="StarterPack" referent="RBX3">
<Properties>
<string name="Name">StarterPack</string>
</Properties>
</Item>
<Item class="StarterGui" referent="RBX4">
<Properties>
<string name="Name">StarterGui</string>
<bool name="ShowDevelopmentGui">true</bool>
</Properties>
</Item>
<Item class="SoundService" referent="RBX5">
<Properties>
<token name="AmbientReverb">0</token>
<float name="DistanceFactor">10</float>
<float name="DopplerScale">1</float>
<string name="Name">Soundscape</string>
<float name="RolloffScale">1</float>
</Properties>
</Item>
<Item class="CollectionService" referent="RBX6">
<Properties>
<string name="Name">CollectionService</string>
</Properties>
</Item>
<Item class="PhysicsService" referent="RBX7">
<Properties>
<string name="Name">PhysicsService</string>
</Properties>
</Item>
<Item class="BadgeService" referent="RBX8">
<Properties>
<string name="Name">BadgeService</string>
</Properties>
</Item>
<Item class="Geometry" referent="RBX9">
<Properties>
<string name="Name">Geometry</string>
</Properties>
</Item>
<Item class="RenderHooksService" referent="RBX10">
<Properties>
<string name="Name">RenderHooksService</string>
</Properties>
</Item>
<Item class="SocialService" referent="RBX11">
<Properties>
<string name="Name">SocialService</string>
</Properties>
</Item>
<Item class="Debris" referent="RBX12">
<Properties>
<int name="MaxItems">1000</int>
<string name="Name">Debris</string>
</Properties>
</Item>
<Item class="TimerService" referent="RBX13">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="ScriptInformationProvider" referent="RBX14">
<Properties>
<string name="Name">Instance</string>
</Properties>
</Item>
<Item class="CookiesService" referent="RBX15">
<Properties>
<string name="Name">CookiesService</string>
</Properties>
</Item>
<Item class="TeleportService" referent="RBX16">
<Properties>
<string name="Name">Teleport Service</string>
</Properties>
</Item>
<Item class="Players" referent="RBX17">
<Properties>
<bool name="CharacterAutoLoads">true</bool>
<string name="Name">Players</string>
</Properties>
</Item>
<Item class="Selection" referent="RBX18">
<Properties>
<string name="Name">Selection</string>
</Properties>
</Item>
<Item class="Lighting" referent="RBX19">
<Properties>
<Color3 name="Ambient">4286611584</Color3>
<float name="Brightness">1</float>
<Color3 name="ColorShift_Bottom">4278190080</Color3>
<Color3 name="ColorShift_Top">4278190080</Color3>
<Color3 name="FogColor">4290822336</Color3>
<float name="FogEnd">100000</float>
<float name="FogStart">0</float>
<float name="GeographicLatitude">41.7332993</float>
<string name="Name">Lighting</string>
<Color3 name="ShadowColor">4289967032</Color3>
<string name="TimeOfDay">14:00:00</string>
</Properties>
</Item>
<Item class="ChangeHistoryService" referent="RBX20">
<Properties>
<string name="Name">ChangeHistoryService</string>
</Properties>
</Item>
<Item class="TestService" referent="RBX21">
<Properties>
<bool name="AutoRuns">true</bool>
<string name="Description">A tricky timing test. Sensitive to CPU power</string>
<bool name="Is30FpsThrottleEnabled">true</bool>
<bool name="IsPhysicsEnvironmentalThrottled">true</bool>
<bool name="IsSleepAllowed">true</bool>
<string name="Name">TestService</string>
<double name="Timeout">60</double>
</Properties>
<Item class="Script" referent="RBX22">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<ProtectedString name="Source">-- test scheduling when too many scripts are running
-- A tricky timing test. Sensitive to CPU power
was = settings().Lua.WaitingThreadsBudget
settings().Lua.WaitingThreadsBudget = 0.1
function addWork(n)
&#9;for i = 1, n do
&#9;&#9;delay(0, function()
&#9;&#9;&#9;while true do
&#9;&#9;&#9;&#9;local t = tick() + 0.00025
&#9;&#9;&#9;&#9;while tick() &lt; t do
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;end
&#9;&#9;end)
&#9;end
end
maxWait = 0
t = tick()
while tick() - t &lt; 30 do
&#9;local w, time = wait(0.5)
&#9;print(w, time)
&#9;RBX_CHECK_GE(w, 0.5)
&#9;if w &gt; maxWait then
&#9;&#9;maxWait = w
&#9;end
&#9;if w &lt; 2 then
&#9;&#9;addWork(20)
&#9;end
&#9;if tick() - t &gt; 5 then
&#9;&#9;RBX_CHECK_GT(stats().Lua.ThreadsThrottled:GetValue(),0.1)
&#9;&#9;if maxWait &gt; 1 then
&#9;&#9;&#9;break
&#9;&#9;end
&#9;end
end
-- confirm that at least one wait was deferred
RBX_CHECK_GT(maxWait, 1)
settings().Lua.WaitingThreadsBudget = was
</ProtectedString>
</Properties>
</Item>
</Item>
</roblox>
File diff suppressed because one or more lines are too long