Initialize

This is still a WIP!
This commit is contained in:
CloneTrooper1019 2019-11-04 18:39:59 -06:00
parent 75798b1038
commit 582df460ea
225 changed files with 37667 additions and 0 deletions

View File

@ -0,0 +1,26 @@
local Players = game:GetService("Players")
local character = script.Parent
local player = Players:GetPlayerFromCharacter(character)
local climbing = Instance.new("BoolValue")
climbing.Name = "Climbing"
climbing.Parent = character
local setValue = Instance.new("RemoteEvent")
setValue.Name = "SetValue"
setValue.Parent = climbing
local function onSetValue(requester, value)
if requester ~= player then
return
end
if typeof(value) ~= "boolean" then
return
end
climbing.Value = value
end
setValue.OnServerEvent:Connect(onSetValue)

View File

@ -0,0 +1,21 @@
local Debris = game:GetService("Debris")
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
local head = char:WaitForChild("Head")
local function onStateChanged(old,new)
if new.Name == "Landed" then
local velocity = humanoid.Torso.Velocity
local power = (-velocity.Y * workspace.Gravity) / 2
local force = Instance.new("BodyForce")
force.Name = "Bounce"
force.Force = Vector3.new(0,power,0)
force.Parent = head
Debris:AddItem(force, 1/30)
end
end
humanoid.StateChanged:connect(onStateChanged)

View File

@ -0,0 +1,34 @@
local handle = script.Parent
local hat = handle:FindFirstChildWhichIsA("Accoutrement")
local equipSignal
local function onTouched(hit)
local char = hit:FindFirstAncestorWhichIsA("Model")
if char then
local hitHum = char:FindFirstChild("Humanoid")
if hitHum then
local existingHat = char:FindFirstChildWhichIsA("Accoutrement")
if existingHat == nil or existingHat == hat then
if equipSignal then
equipSignal:Disconnect()
equipSignal = nil
end
hat.Parent = workspace
handle.Parent = hat
handle:SetNetworkOwnershipAuto()
hitHum:AddAccessory(hat)
script:Destroy()
else
hat.Parent = workspace
end
end
end
end
equipSignal = handle.Touched:Connect(onTouched)

View File

@ -0,0 +1,15 @@
local UserInputService = game:GetService("UserInputService")
local server = script.Parent
local dropHat = server:WaitForChild("DropHat")
local function onInputBegan(input, gameProcessed)
if not gameProcessed then
local keyCode = input.KeyCode.Name
if keyCode == "Equals" or keyCode == "DPadDown" then
dropHat:FireServer()
end
end
end
UserInputService.InputBegan:Connect(onInputBegan)

View File

@ -0,0 +1,50 @@
local Players = game:GetService("Players")
local char = script.Parent
local torso = char:WaitForChild("HumanoidRootPart")
local humanoid = char:WaitForChild("Humanoid")
local hatPickup = script:WaitForChild("HatPickup")
local dropHat = Instance.new("RemoteEvent")
dropHat.Name = "DropHat"
dropHat.Parent = script
local function onDropHat(player)
local myPlayer = Players:GetPlayerFromCharacter(char)
assert(player == myPlayer, "Cannot drop hats unless it is your character.")
local dropPos = torso.CFrame * CFrame.new(0, 5.4, -8)
for _,hat in pairs(humanoid:GetAccessories()) do
local handle = hat:FindFirstChild("Handle")
if handle then
local newHandle = handle:Clone()
for _,joint in pairs(newHandle:GetJoints()) do
joint:Destroy()
end
newHandle.CFrame = dropPos
newHandle.Anchored = true
newHandle.CanCollide = false
newHandle.Parent = workspace
handle:Destroy()
hat.Parent = newHandle
wait(.1)
newHandle.Anchored = false
newHandle.CanCollide = true
newHandle:SetNetworkOwner(nil)
local pickup = hatPickup:Clone()
pickup.Parent = newHandle
pickup.Disabled = false
end
end
end
dropHat.OnServerEvent:Connect(onDropHat)

View File

@ -0,0 +1,45 @@
local RunService = game:GetService("RunService")
local char = script.Parent
local rootPart = char:WaitForChild("HumanoidRootPart")
local platform = Instance.new("Part")
platform.Name = "NoForceField"
platform.TopSurface = 0
platform.BottomSurface = 0
platform.BrickColor = BrickColor.new("Bright orange")
platform.Size = Vector3.new(5, 1, 2)
platform.Anchored = true
platform.Transparency = 1
local down = Vector3.new(0, -100, 0)
local platformOffset = Vector3.new(0, -.5, 0)
while wait() do
local start = rootPart.CFrame
local startPos = start.p
local startRay = Ray.new(startPos, start.lookVector * 5)
local hit, pos, norm = workspace:FindPartOnRay(startRay, char)
local floorCheckRay
local pass = false
if hit and hit.CanCollide and hit:IsGrounded() then
if hit:IsA("UnionOperation") or (not hit:IsA("Part") or hit.Shape.Name == "Block") then
local floorCheckRay = Ray.new(pos - (norm / 5), down)
local floor, floorPos = workspace:FindPartOnRayWithIgnoreList(floorCheckRay, {char, hit})
if floor and floor.CanCollide and startPos.Y - 2 > floorPos.Y then
floorPos = floorPos + platformOffset
platform.Parent = char
platform.CFrame = CFrame.new(Vector3.new(pos.X + norm.X, floorPos.Y, pos.Z + norm.Z),floorPos)
pass = true
end
end
end
if not pass then
platform.Parent = nil
end
end

View File

@ -0,0 +1,58 @@
local RunService = game:GetService("RunService")
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
local rootPart = char:WaitForChild("HumanoidRootPart")
local climbForce = rootPart:WaitForChild("ClimbForce")
local rayDown = Vector3.new(0, -5000, 0)
local function moveTowards(value, goal, rate)
if value < goal then
return math.min(goal, value + rate)
elseif value > goal then
return math.max(goal, value - rate)
else
return goal
end
end
local lastFloorLevel = 0
local function getFloorLevel()
local origin = rootPart.Position
local ray = Ray.new(origin, rayDown)
local hit, pos = workspace:FindPartOnRay(ray, char)
return pos.Y, math.clamp(math.abs(pos.Y - origin.Y), -1, 1)
end
local lastLevel = getFloorLevel()
local updateCon
local function update()
if humanoid.Health == 0 then
updateCon:Disconnect()
return
end
local level, dist = getFloorLevel()
if humanoid.SeatPart then
humanoid.HipHeight = 0
lastLevel = level
return
end
local yVel = rootPart.Velocity.Y
if math.abs(yVel) > 8 then
local goal = math.sign(yVel)
humanoid.HipHeight = moveTowards(humanoid.HipHeight, goal, 0.1)
elseif lastLevel ~= level then
humanoid.HipHeight = math.sign(lastLevel - level) * math.clamp(dist - 3, 0, 1)
lastLevel = level
else
humanoid.HipHeight = humanoid.HipHeight * 0.925
end
end
updateCon = RunService.RenderStepped:Connect(update)

View File

@ -0,0 +1,26 @@
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
local function onStateChanged(old,new)
if new == Enum.HumanoidStateType.RunningNoPhysics then
humanoid:ChangeState(Enum.HumanoidStateType.Running)
elseif new == Enum.HumanoidStateType.FallingDown then
humanoid:ChangeState("Ragdoll")
while wait(0.5) do
if humanoid.RootPart then
local velocity = humanoid.RootPart.Velocity
if velocity.Magnitude < 0.1 then
wait(2)
humanoid:ChangeState("GettingUp")
break
end
else
break
end
end
end
end
humanoid.StateChanged:Connect(onStateChanged)

View File

@ -0,0 +1,60 @@
local RunService = game:GetService("RunService")
local GameSettings = UserSettings():GetService("UserGameSettings")
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
local climbing = char:WaitForChild("Climbing")
local rootPart = humanoid.RootPart
local c = workspace.CurrentCamera
local blankV3 = Vector3.new()
local xz = Vector3.new(1,0,1)
local bg = rootPart:FindFirstChild("FirstPersonGyro")
local runState = Enum.HumanoidStateType.Running
if not bg then
bg = Instance.new("BodyGyro")
bg.Name = "FirstPersonGyro"
bg.MaxTorque = Vector3.new(0,10e6,0)
bg.D = 100
end
local function toRotation(dir)
return CFrame.new(blankV3,dir)
end
local velocityThreshold = 200
spawn(function ()
local threshold = char:WaitForChild("VelocityThreshold",5)
if threshold then
velocityThreshold = threshold.Value
end
end)
local function update()
local rotationType = GameSettings.RotationType
local seatPart = humanoid.SeatPart
if rotationType.Name == "CameraRelative" and not seatPart then
local dir = c.CFrame.lookVector * xz
bg.CFrame = toRotation(dir)
bg.Parent = rootPart
humanoid.AutoRotate = false
else
local state = humanoid:GetState()
local isRunning = (state == runState)
local isClimbing = climbing.Value
humanoid.AutoRotate = (isRunning or isClimbing)
bg.Parent = nil
end
if rootPart.Velocity.Magnitude > velocityThreshold and not seatPart then
humanoid:ChangeState("FallingDown")
end
end
humanoid.AutoRotate = false
humanoid:SetStateEnabled("Climbing",false)
RunService.RenderStepped:connect(update)
c.FieldOfView = 65

View File

@ -0,0 +1,18 @@
local ServerStorage = game:GetService("ServerStorage")
local inputGateway = ServerStorage:WaitForChild("InputGateway")
local char = script.Parent
local function onChildAdded(child)
if child:IsA("Tool") and not child:FindFirstChild("InputGateway") then
wait(.1)
local gateway = inputGateway:Clone()
gateway.Parent = child
end
end
local tool = char:FindFirstChildWhichIsA("Tool")
if tool then
onChildAdded(tool)
end
char.ChildAdded:Connect(onChildAdded)

View File

@ -0,0 +1,12 @@
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
local function onStateChanged(old,new)
if old == Enum.HumanoidStateType.Freefall and new == Enum.HumanoidStateType.Landed then
humanoid:SetStateEnabled("Jumping",false)
wait(0.5)
humanoid:SetStateEnabled("Jumping",true)
end
end
humanoid.StateChanged:Connect(onStateChanged)

View File

@ -0,0 +1,235 @@
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Setup
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local char = script.Parent
local humanoid = char:WaitForChild("Humanoid")
humanoid:SetStateEnabled("Climbing", false)
local rootPart = humanoid.RootPart
local bv = rootPart:FindFirstChild("ClimbForce")
if not bv then
bv = Instance.new("BodyVelocity")
bv.Name = "ClimbForce"
bv.Parent = humanoid.RootPart
end
bv.MaxForce = Vector3.new()
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Climbing State
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local climbing = char:WaitForChild("Climbing")
local setValue = climbing:WaitForChild("SetValue")
local function onClimbing(value)
setValue:FireServer(value)
end
climbing.Changed:Connect(onClimbing)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Debug Visuals
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local Debris = game:GetService("Debris")
local isDevTest = false
local DEBUG_COLOR_RED = Color3.new(1, 0, 0)
local DEBUG_COLOR_YLW = Color3.new(1, 1, 0)
local DEBUG_COLOR_GRN = Color3.new(0, 1, 0)
local debugBox = Instance.new("BoxHandleAdornment")
debugBox.Adornee = workspace.Terrain
debugBox.Color3 = DEBUG_COLOR_RED
debugBox.Visible = false
debugBox.Parent = script
local debugCylinder = Instance.new("CylinderHandleAdornment")
debugCylinder.Color = BrickColor.new("Bright violet")
debugCylinder.Adornee = workspace.Terrain
debugCylinder.Height = 0.2
debugCylinder.Radius = 1.0
debugCylinder.Visible = false
debugCylinder.Parent = script
local debugSBox = Instance.new("SelectionBox")
debugSBox.Color3 = DEBUG_COLOR_RED
debugSBox.Parent = script
local function drawRayIfDebugging(rayStart, look, length, color)
if isDevTest then
local line = Instance.new("LineHandleAdornment")
line.CFrame = CFrame.new(rayStart, rayStart + (look.Unit * length))
line.Adornee = workspace.Terrain
line.Length = length
line.Color3 = color
line.Thickness = 4
line.Parent = script
local cone = Instance.new("ConeHandleAdornment")
cone.CFrame = CFrame.new(rayStart + (look.Unit * (length - 0.32)), rayStart + (look.Unit * length))
cone.Adornee = workspace.Terrain
cone.Color3 = color
cone.Radius = 1 / 10
cone.Height = 1 / 3
cone.Parent = script
Debris:AddItem(line, .5)
Debris:AddItem(cone, .5)
end
end
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Main Climbing Logic
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local searchDepth = 0.7
local maxClimbDist = 2.45
local sampleSpacing = 1 / 7
local lowLadderSearch = 2.7
local stepForwardFrames = 0
local ladderSearchDist = 2.0
local running = Enum.HumanoidStateType.Running
local freefall = Enum.HumanoidStateType.Freefall
local function findPartInLadderZone()
debug.profilebegin("FastClimbCheck")
--
local cf = rootPart.CFrame
local top = -humanoid.HipHeight
local bottom = -lowLadderSearch + top
local radius = 0.5 * ladderSearchDist
local center = cf.Position + (cf.LookVector * ladderSearchDist * 0.5)
local min = Vector3.new(-radius, bottom, -radius)
local max = Vector3.new(radius, top, radius)
local extents = Region3.new(center + min, center + max)
local parts = workspace:FindPartsInRegion3(extents, char)
if isDevTest then
if #parts > 0 then
debugBox.Visible = false
debugSBox.Visible = true
debugSBox.Adornee = parts[1]
else
debugBox.Visible = true
debugSBox.Visible = false
debugBox.Size = extents.Size
debugBox.CFrame = extents.CFrame
debugCylinder.Visible = false
end
end
--
debug.profileend()
return #parts > 0
end
local function findLadder()
if not findPartInLadderZone() then
return false
end
debug.profilebegin("ExpensiveClimbCheck")
local torsoCoord = rootPart.CFrame
local torsoLook = torsoCoord.LookVector
local firstSpace = 0
local firstStep = 0
local lookForSpace = true
local lookForStep = false
local debugColor = DEBUG_COLOR_YLW
local topRay = math.floor(lowLadderSearch / sampleSpacing)
for i = 1, topRay do
local distFromBottom = i * sampleSpacing
local originOnTorso = Vector3.new(0, -lowLadderSearch + distFromBottom, 0)
local casterOrigin = torsoCoord.Position + originOnTorso
local casterDirection = torsoLook * ladderSearchDist
local ray = Ray.new(casterOrigin, casterDirection)
local hitPrim, hitLoc = workspace:FindPartOnRay(ray, char)
-- make trusses climbable.
if hitPrim and hitPrim:IsA("TrussPart") then
return true
end
local mag = (hitLoc - casterOrigin).Magnitude
if mag < searchDepth then
if lookForSpace then
debugColor = DEBUG_COLOR_GRN
firstSpace = distFromBottom
lookForSpace = false
lookForStep = true
end
elseif lookForStep then
firstStep = distFromBottom - firstSpace
debugColor = DEBUG_COLOR_RED
lookForStep = false
end
drawRayIfDebugging(casterOrigin, casterDirection, mag, debugColor)
end
local found = (firstSpace < maxClimbDist and firstStep > 0 and firstStep < maxClimbDist)
debugCylinder.Visible = isDevTest and found
if debugCylinder.Visible then
local y = Vector3.FromAxis('Y')
local pos = torsoCoord.Position + Vector3.new(0, 5, 0)
debugCylinder.CFrame = CFrame.new(pos, pos + y)
end
debug.profileend()
return found
end
while wait() do
local canClimb = false
local state = humanoid:GetState()
local speed = humanoid.WalkSpeed
if state == freefall or state == running then
canClimb = findLadder()
end
if canClimb then
local climbSpeed = speed * 0.7
bv.Velocity = Vector3.new(0, climbSpeed, 0)
bv.MaxForce = Vector3.new(climbSpeed * 100, 10e6, climbSpeed * 100)
else
if climbing.Value then
stepForwardFrames = 2
end
bv.MaxForce = Vector3.new()
end
if stepForwardFrames > 0 then
local cf = rootPart.CFrame
humanoid:Move(cf.LookVector)
stepForwardFrames = stepForwardFrames - 1
end
climbing.Value = canClimb
end
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

View File

@ -0,0 +1,68 @@
-- util
function waitForChild(parent, childName)
local child = parent:findFirstChild(childName)
if child then return child end
while true do
child = parent.ChildAdded:wait()
if child.Name==childName then return child end
end
end
function newSound(id)
local sound = Instance.new("Sound")
sound.SoundId = id
sound.archivable = false
sound.Parent = script.Parent.Head
return sound
end
-- declarations
local sDied = newSound("rbxasset://sounds/uuhhh.wav")
local sFallingDown = newSound("rbxasset://sounds/splat.wav")
local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
local sGettingUp = newSound("rbxasset://sounds/hit.wav")
local sJumping = newSound("rbxasset://sounds/button.wav")
local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
sRunning.Looped = true
local Figure = script.Parent
local Head = waitForChild(Figure, "Head")
local Humanoid = waitForChild(Figure, "Humanoid")
--local Climbing = Figure:WaitForChild("Climbing")
-- functions
function onDied()
sDied:Play()
end
function onJumping()
sJumping:Play()
wait(0.2)
sJumping:Stop()
end
function onState(state, sound)
sound.TimePosition = 0
sound.Playing = state
end
function onRunning(speed)
sRunning.Playing = (speed>0.1)
end
-- connect up
Humanoid.Died:connect(onDied)
Humanoid.Running:connect(onRunning)
Humanoid.Jumping:connect(onJumping)
Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
Humanoid.FreeFalling:connect(function(state)
--if not Climbing.Value then
onState(state, sFreeFalling)
--end
end)
Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)

View File

@ -0,0 +1,35 @@
local CollectionService = game:GetService("CollectionService")
local Players = game:GetService("Players")
local char = script.Parent
local player = Players:GetPlayerFromCharacter(char)
local teamListener = player:GetPropertyChangedSignal("TeamColor")
local bodyColors = char:WaitForChild("BodyColors")
local teamColors = Instance.new("BodyColors")
teamColors.Name = "TeamColors"
teamColors.HeadColor = BrickColor.new("Bright yellow")
teamColors.LeftArmColor = BrickColor.Black()
teamColors.LeftLegColor = BrickColor.Black()
teamColors.RightArmColor = BrickColor.Black()
teamColors.RightLegColor = BrickColor.Black()
CollectionService:AddTag(teamColors, "RespectCharacterAsset")
local function onTeamChanged()
local team = player.Team
if team then
teamColors.TorsoColor = player.TeamColor
bodyColors.Parent = nil
if not CollectionService:HasTag(team, "NoAutoColor") then
teamColors.Parent = char
end
else
teamColors.Parent = nil
bodyColors.Parent = char
end
end
onTeamChanged()
teamListener:Connect(onTeamChanged)

View File

@ -0,0 +1,43 @@
-- This replicates an old sound bug that used to occur with tools back then.
local CollectionService = game:GetService("CollectionService")
local Debris = game:GetService("Debris")
local char = script.Parent
local torso = char:WaitForChild("Torso")
local marked = {}
local function processHandle(handle)
for _,child in pairs(handle:GetChildren()) do
if child:IsA("Sound") then
if not marked[child.SoundId] then
marked[child.SoundId] = true
else
local replica = child:Clone()
replica.Name = "ToolSoundGlitch"
replica.MaxDistance = 0
replica.Parent = torso
CollectionService:AddTag(replica, "ToolSoundGlitch")
replica:Play()
replica.Ended:connect(function ()
Debris:AddItem(replica, 1)
end)
end
end
end
end
local function onChild(child)
if child:IsA("Tool") then
local handle = child:FindFirstChild("Handle")
if handle then
processHandle(handle)
end
end
end
char.ChildAdded:connect(onChild)
char.ChildRemoved:connect(onChild)

262
Client/Animator.client.lua Normal file
View File

@ -0,0 +1,262 @@
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Services
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local CollectionService = game:GetService("CollectionService")
local RunService = game:GetService("RunService")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Animator Data
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local Animators = {}
local function createAnimator(humanoid)
local Figure = humanoid.Parent
local Torso = Figure:WaitForChild("Torso")
local Climbing = Figure:WaitForChild("Climbing")
local animator = {}
animator.Joints = {}
do
local joints =
{
RightShoulder = Torso:WaitForChild("Right Shoulder", 5);
LeftShoulder = Torso:WaitForChild("Left Shoulder", 5);
RightHip = Torso:WaitForChild("Right Hip", 5);
LeftHip = Torso:WaitForChild("Left Hip", 5);
}
if not (joints.RightShoulder and joints.LeftShoulder) then
return
end
if not (joints.RightHip and joints.LeftHip) then
return
end
for name, joint in pairs(joints) do
local object =
{
JointObject = joint;
MaxVelocity = joint.MaxVelocity;
DesiredAngle = joint.DesiredAngle;
CurrentAngle = joint.CurrentAngle;
}
animator.Joints[name] = object
end
end
local joints = animator.Joints
local pi = math.pi
local sin = math.sin
local pose = "Standing"
local toolAnim = "None"
local toolAnimTime = 0
local RightShoulder = joints.RightShoulder
local LeftShoulder = joints.LeftShoulder
local RightHip = joints.RightHip
local LeftHip = joints.LeftHip
function animator:SetMaxVelocities(value)
RightShoulder.MaxVelocity = value
LeftShoulder.MaxVelocity = value
RightHip.MaxVelocity = value
LeftHip.MaxVelocity = value
end
function animator:Update()
local now = tick()
if Climbing.Value then
pose = "Climbing"
else
local stateType = humanoid:GetState()
pose = stateType.Name
if pose == "Running" then
local speed = humanoid.WalkSpeed
local movement = (Torso.Velocity * Vector3.new(1, 0, 1)).Magnitude
if (speed * movement) < 1 then
pose = "Standing"
end
end
end
if pose == "Jumping" then
self:SetMaxVelocities(.5)
RightShoulder.DesiredAngle = 1
LeftShoulder.DesiredAngle = -1
RightHip.DesiredAngle = 0
LeftHip.DesiredAngle = 0
elseif pose == "Freefall" then
self:SetMaxVelocities(.5)
RightShoulder.DesiredAngle = pi
LeftShoulder.DesiredAngle = -pi
RightHip.DesiredAngle = 0
LeftHip.DesiredAngle = 0
elseif pose == "Seated" then
self:SetMaxVelocities(.15)
RightShoulder.DesiredAngle = pi / 2
LeftShoulder.DesiredAngle = -pi / 2
RightHip.DesiredAngle = pi / 2
LeftHip.DesiredAngle = -pi / 2
else
local climbFudge = 0
local amplitude = .1
local frequency = 1
if pose == "Running" then
self:SetMaxVelocities(0.15)
amplitude = 1
frequency = 9
elseif pose == "Climbing" then
self:SetMaxVelocities(0.5)
climbFudge = pi
amplitude = 1
frequency = 9
end
local desiredAngle = amplitude * sin(now * frequency)
RightShoulder.DesiredAngle = desiredAngle + climbFudge
LeftShoulder.DesiredAngle = desiredAngle - climbFudge
RightHip.DesiredAngle = -desiredAngle
LeftHip.DesiredAngle = -desiredAngle
local tool = Figure:FindFirstChildWhichIsA("Tool")
if tool and tool.RequiresHandle and not CollectionService:HasTag(tool, "Flag") then
local animString = tool:FindFirstChild("toolanim")
if animString and animString:IsA("StringValue") then
-- apply tool animation
toolAnim = animString.Value
toolAnimTime = now + .3
-- delete event sender
animString:Destroy()
end
if now > toolAnimTime then
toolAnimTime = 0
toolAnim = "None"
end
if toolAnim == "None" then
RightShoulder.DesiredAngle = pi / 2
elseif toolAnim == "Slash" then
RightShoulder.MaxVelocity = 0.5
RightShoulder.DesiredAngle = 0
elseif toolAnim == "Lunge" then
self:SetMaxVelocities(0.5)
RightShoulder.DesiredAngle = pi / 2
RightHip.DesiredAngle = pi / 2
LeftShoulder.DesiredAngle = 1
LeftHip.DesiredAngle = 1
end
else
toolAnim = "None"
toolAnimTime = 0
end
end
end
return animator
end
local function onAnimatorAdded(humanoid)
if humanoid:IsA("Humanoid") then
local animator = createAnimator(humanoid)
Animators[humanoid] = animator
end
end
local function onAnimatorRemoved(humanoid)
if Animators[humanoid] then
Animators[humanoid] = nil
end
end
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Collection Handler
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local animTag = "Animator"
local animAdded = CollectionService:GetInstanceAddedSignal(animTag)
local animRemoved = CollectionService:GetInstanceRemovedSignal(animTag)
for _,humanoid in pairs(CollectionService:GetTagged(animTag)) do
spawn(function ()
onAnimatorAdded(humanoid)
end)
end
animAdded:Connect(onAnimatorAdded)
animRemoved:Connect(onAnimatorRemoved)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Motor Angle Updater
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local desiredFPS = 1 / 30 -- The framerate that would be expected given the MaxVelocity in use.
local lastUpdate = tick()
local function updateAnimations(deltaTime)
local velocityAdjust = (1 / desiredFPS) * deltaTime
for humanoid, animator in pairs(Animators) do
-- Update the motor states
animator:Update()
-- Step the motor angles
for name, jointData in pairs(animator.Joints) do
local joint = jointData.JointObject
local maxVelocity = jointData.MaxVelocity
local desiredAngle = jointData.DesiredAngle
local currentAngle = jointData.CurrentAngle
-- Adjust the MaxVelocity based on the current framerate
maxVelocity = math.abs(maxVelocity * velocityAdjust)
-- Update the CurrentAngle
local delta = (desiredAngle - currentAngle)
if math.abs(delta) < maxVelocity then
currentAngle = desiredAngle
elseif delta > 0 then
currentAngle = currentAngle + maxVelocity
else
currentAngle = currentAngle - maxVelocity
end
-- Apply the motor transform
joint.Transform = CFrame.Angles(0, 0, currentAngle)
jointData.CurrentAngle = currentAngle
end
end
end
RunService:BindToRenderStep("UpdateAnimations", 301, updateAnimations)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1042
Client/Camera/Main.lua Normal file

File diff suppressed because it is too large Load Diff

176
Client/Camera/Opacity.lua Normal file
View File

@ -0,0 +1,176 @@
-- SolarCrane
local module = {}
local LastUpdate = tick()
local TransparencyDirty = false
local Enabled = false
local LastTransparency = nil
local DescendantAddedConn, DescendantRemovingConn = nil, nil
local ToolDescendantAddedConns = {}
local ToolDescendantRemovingConns = {}
local CachedParts = {}
local function HasToolAncestor(object)
return (object:FindFirstAncestorWhichIsA("Tool")) ~= nil
end
local function IsValidPartToModify(part)
if part:IsA('BasePart') or part:IsA('Decal') then
return not HasToolAncestor(part)
end
return false
end
local function TeardownTransparency()
for child, _ in pairs(CachedParts) do
child.LocalTransparencyModifier = 0
end
CachedParts = {}
TransparencyDirty = true
LastTransparency = nil
if DescendantAddedConn then
DescendantAddedConn:disconnect()
DescendantAddedConn = nil
end
if DescendantRemovingConn then
DescendantRemovingConn:disconnect()
DescendantRemovingConn = nil
end
for object, conn in pairs(ToolDescendantAddedConns) do
conn:disconnect()
ToolDescendantAddedConns[object] = nil
end
for object, conn in pairs(ToolDescendantRemovingConns) do
conn:disconnect()
ToolDescendantRemovingConns[object] = nil
end
end
local function SetupTransparency(character)
TeardownTransparency()
if DescendantAddedConn then
DescendantAddedConn:Disconnect()
end
DescendantAddedConn = character.DescendantAdded:connect(function (object)
-- This is a part we want to invisify
if IsValidPartToModify(object) then
CachedParts[object] = true
TransparencyDirty = true
-- There is now a tool under the character
elseif object:IsA('Tool') then
if ToolDescendantAddedConns[object] then
ToolDescendantAddedConns[object]:Disconnect()
end
ToolDescendantAddedConns[object] = object.DescendantAdded:connect(function (toolChild)
CachedParts[toolChild] = nil
if toolChild:IsA('BasePart') or toolChild:IsA('Decal') then
-- Reset the transparency
toolChild.LocalTransparencyModifier = 0
end
end)
if ToolDescendantRemovingConns[object] then
ToolDescendantRemovingConns[object]:Disconnect()
end
ToolDescendantRemovingConns[object] = object.DescendantRemoving:connect(function (formerToolChild)
wait() -- wait for new parent
if character and formerToolChild and formerToolChild:IsDescendantOf(character) then
if IsValidPartToModify(formerToolChild) then
CachedParts[formerToolChild] = true
TransparencyDirty = true
end
end
end)
end
end)
if DescendantRemovingConn then
DescendantRemovingConn:Disconnect()
end
DescendantRemovingConn = character.DescendantRemoving:connect(function (object)
if CachedParts[object] then
CachedParts[object] = nil
-- Reset the transparency
object.LocalTransparencyModifier = 0
end
end)
for _,desc in pairs(character:GetDescendants()) do
if IsValidPartToModify(desc) then
CachedParts[desc] = true
TransparencyDirty = true
end
end
end
function module:SetEnabled(newState)
if Enabled ~= newState then
Enabled = newState
self:Update()
end
end
function module:SetSubject(subject)
local character = nil
if subject and subject:IsA("Humanoid") then
character = subject.Parent
end
if subject and subject:IsA("VehicleSeat") and subject.Occupant then
character = subject.Occupant.Parent
end
if character then
SetupTransparency(character)
else
TeardownTransparency()
end
end
function module:Update()
local instant = false
local now = tick()
local currentCamera = workspace.CurrentCamera
if currentCamera then
local transparency = 0
if not Enabled then
instant = true
else
local distance = (currentCamera.Focus.p - currentCamera.CFrame.p).magnitude
if distance < 2 then
transparency = 1
elseif distance < 6 then
transparency = 0.5
else
transparency = 0
end
end
if TransparencyDirty or LastTransparency ~= transparency then
for child in pairs(CachedParts) do
if child.ClassName == "Decal" then
child.LocalTransparencyModifier = math.floor(transparency)
else
child.LocalTransparencyModifier = transparency
end
end
TransparencyDirty = false
LastTransparency = transparency
end
end
LastUpdate = now
end
return module

129
Client/Camera/Popper.lua Normal file
View File

@ -0,0 +1,129 @@
-- PopperCam Version 16
-- OnlyTwentyCharacters
local PopperCam = {} -- Guarantees your players won't see outside the bounds of your map!
-----------------
--| Constants |--
-----------------
local POP_RESTORE_RATE = 0.3
local MIN_CAMERA_ZOOM = 0.5
local VALID_SUBJECTS = {
'Humanoid',
'VehicleSeat',
'SkateboardPlatform',
}
-----------------
--| Variables |--
-----------------
local Players = game:GetService('Players')
local Camera = nil
local CameraSubjectChangeConn = nil
local SubjectPart = nil
local PlayerCharacters = {} -- For ignoring in raycasts
local VehicleParts = {} -- Also just for ignoring
local LastPopAmount = 0
local LastZoomLevel = 0
local PopperEnabled = true
local CFrame_new = CFrame.new
-----------------------
--| Local Functions |--
-----------------------
local math_abs = math.abs
local function OnCharacterAdded(player, character)
PlayerCharacters[player] = character
end
local function OnPlayersChildAdded(child)
if child:IsA('Player') then
child.CharacterAdded:connect(function(character)
OnCharacterAdded(child, character)
end)
if child.Character then
OnCharacterAdded(child, child.Character)
end
end
end
local function OnPlayersChildRemoved(child)
if child:IsA('Player') then
PlayerCharacters[child] = nil
end
end
-------------------------
--| Exposed Functions |--
-------------------------
function PopperCam:Update()
if PopperEnabled then
-- First, prep some intermediate vars
local Camera = workspace.CurrentCamera
local cameraCFrame = Camera.CFrame
local focusPoint = Camera.Focus.p
if SubjectPart then
focusPoint = SubjectPart.CFrame.p
end
local ignoreList = {}
for _, character in pairs(PlayerCharacters) do
ignoreList[#ignoreList + 1] = character
end
for i = 1, #VehicleParts do
ignoreList[#ignoreList + 1] = VehicleParts[i]
end
-- Get largest cutoff distance
local largest = Camera:GetLargestCutoffDistance(ignoreList)
-- Then check if the player zoomed since the last frame,
-- and if so, reset our pop history so we stop tweening
local zoomLevel = (cameraCFrame.p - focusPoint).Magnitude
if math_abs(zoomLevel - LastZoomLevel) > 0.001 then
LastPopAmount = 0
end
-- Finally, zoom the camera in (pop) by that most-cut-off amount, or the last pop amount if that's more
local popAmount = largest
if LastPopAmount > popAmount then
popAmount = LastPopAmount
end
if popAmount > 0 then
Camera.CFrame = cameraCFrame + (cameraCFrame.lookVector * popAmount)
LastPopAmount = popAmount - POP_RESTORE_RATE -- Shrink it for the next frame
if LastPopAmount < 0 then
LastPopAmount = 0
end
end
LastZoomLevel = zoomLevel
end
end
--------------------
--| Script Logic |--
--------------------
-- Connect to all Players so we can ignore their Characters
Players.ChildRemoved:connect(OnPlayersChildRemoved)
Players.ChildAdded:connect(OnPlayersChildAdded)
for _, player in pairs(Players:GetPlayers()) do
OnPlayersChildAdded(player)
end
return PopperCam

View File

@ -0,0 +1,60 @@
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local playerScripts = script.Parent
local playerModule = require(playerScripts:WaitForChild("PlayerModule"))
local cameraSystem = playerModule:GetCameras()
local main = require(script:WaitForChild("Main"))
local popper = require(script:WaitForChild("Popper"))
local opacity = require(script:WaitForChild("Opacity"))
local cameraSubjectChangedConn = nil
local renderSteppedConn = nil
local function onCameraSubjectChanged()
local currentCamera = workspace.CurrentCamera
if currentCamera then
local newSubject = currentCamera.CameraSubject
opacity:SetSubject(newSubject)
end
end
local function onNewCamera()
local currentCamera = workspace.CurrentCamera
if currentCamera then
if cameraSubjectChangedConn then
cameraSubjectChangedConn:Disconnect()
end
local cameraSubjectChanged = currentCamera:GetPropertyChangedSignal("CameraSubject")
cameraSubjectChangedConn = cameraSubjectChanged:Connect(onCameraSubjectChanged)
onCameraSubjectChanged()
end
end
-- Initialize cameras.
local cameraUpdated = workspace:GetPropertyChangedSignal("CurrentCamera")
cameraUpdated:Connect(onNewCamera)
onNewCamera()
main:SetEnabled(true)
opacity:SetEnabled(true)
-- Overload the camera update function.
function cameraSystem:Update()
if cameraSystem.activeCameraController then
cameraSystem.activeCameraController:Enable(false)
cameraSystem.activeCameraController = nil
end
main:Update()
popper:Update()
opacity:Update()
end
playerScripts:RegisterTouchCameraMovementMode(Enum.TouchCameraMovementMode.Default)
playerScripts:RegisterComputerCameraMovementMode(Enum.ComputerCameraMovementMode.Default)

View File

@ -0,0 +1,25 @@
local CollectionService = game:GetService("CollectionService")
local TeleportService = game:GetService("TeleportService")
local noBevelsTag = "NoCharacterBevels"
local bevelTracker = CollectionService:GetInstanceAddedSignal(noBevelsTag)
local function safeDestroy(obj)
spawn(function ()
obj:Destroy()
end)
end
local function onInstanceAdded(inst)
if TeleportService:GetTeleportSetting("CharacterBevels") then
safeDestroy(inst)
end
end
for _,inst in pairs(CollectionService:GetTagged(noBevelsTag)) do
onInstanceAdded(inst)
end
bevelTracker:Connect(onInstanceAdded)

View File

@ -0,0 +1,301 @@
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- @CloneTrooper1019, 2018
-- ClickToMove
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Constants
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local ContextActionService = game:GetService("ContextActionService")
local GuiService = game:GetService("GuiService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TeleportService = game:GetService("TeleportService")
local UserInputService = game:GetService("UserInputService")
local IS_TOUCH = UserInputService.TouchEnabled
local ICON_IDLE = "rbxassetid://334630296"
local ICON_HOVER = "rbxassetid://1000000"
local ICON_CLICK = "rbxasset://textures/DragCursor.png"
local DISK_OFFSET = CFrame.Angles(math.pi / 2,0,0)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Character Listener
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local player = game.Players.LocalPlayer
local character,humanoid
local function onCharacterAdded(char)
humanoid = char:WaitForChild("Humanoid")
character = char
end
if player.Character then
onCharacterAdded(player.Character)
end
player.CharacterAdded:Connect(onCharacterAdded)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Gui Focus
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local isMouseHoveringUi = false
local function onInputChanged(input, gameProcessed)
local inputType = input.UserInputType.Name
if inputType == "MouseMovement" then
isMouseHoveringUi = gameProcessed
end
end
local function isGuiFocused()
return isMouseHoveringUi or GuiService.SelectedObject ~= nil
end
UserInputService.InputChanged:Connect(onInputChanged)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Movement Goal
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local currentGoal, moveSignal
local function findAngleBetweenXZVectors(vec2, vec1)
return math.atan2(vec1.X*vec2.Z-vec1.Z*vec2.X, vec1.X*vec2.X + vec1.Z*vec2.Z)
end
local function isFinite(num)
return num == num and num ~= 1/0 and num ~= -1/0
end
local function rotateCameraTowardsGoal()
local c = workspace.CurrentCamera
if c then
local cf = c.CFrame
local focus = c.Focus
local desiredAngle = CFrame.new(cf.p,currentGoal).lookVector
local currentAngle = cf.lookVector
local angleBetween = findAngleBetweenXZVectors(desiredAngle,currentAngle)
if isFinite(angleBetween) then
local abs = math.abs(angleBetween)
local sign = math.sign(angleBetween)
local rotation = math.min(0.01,abs)
local cfLocal = focus:toObjectSpace(cf)
c.CFrame = focus * CFrame.Angles(0,-rotation*sign,0) * cfLocal
end
end
end
local function finishGoal()
if currentGoal then
currentGoal = nil
end
if moveSignal then
moveSignal:Disconnect()
moveSignal = nil
end
end
local function clickToMove(goal)
finishGoal()
currentGoal = goal
moveSignal = humanoid.MoveToFinished:Connect(finishGoal)
humanoid:Move(Vector3.new(1,1,1))
humanoid:MoveTo(currentGoal)
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Green Disk
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local mouse = player:GetMouse()
local mouseIcon = script.Parent
mouse.TargetFilter = workspace.CurrentCamera
local lastTarget
local lastTargetCanClick = false
local disk = Instance.new("CylinderHandleAdornment")
disk.Name = "Disk"
disk.Color3 = Color3.new(0,1,0)
disk.Radius = 1
disk.Height = 0.2
disk.Visible = false
disk.Adornee = workspace.Terrain
disk.Parent = script
local goalDisk = disk:Clone()
goalDisk.Name = "Goal"
goalDisk.Parent = script
local function hasTool()
if character then
return character:FindFirstChildOfClass("Tool") ~= nil
end
return false
end
local function isFirstPerson()
if character then
local head = character:FindFirstChild("Head")
if head then
return head.LocalTransparencyModifier == 1
end
end
return false
end
local function canClickTarget()
local target = mouse.Target
if target then
if target ~= lastTarget then
local canClick = false
local clickDetector = target:FindFirstChildOfClass("ClickDetector")
if clickDetector then
local dist = player:DistanceFromCharacter(target.Position)
if dist <= clickDetector.MaxActivationDistance then
canClick = true
end
end
lastTarget = target
lastTargetCanClick = canClick
end
return lastTargetCanClick
end
end
local function canRenderDisk(rendering)
if not TeleportService:GetTeleportSetting("ClickToMove") then
return false
end
if rendering and IS_TOUCH then
return false
end
if humanoid then
local movement = humanoid.MoveDirection
if movement.Magnitude == 0 then
local pos = mouse.Hit.p
local dist = player:DistanceFromCharacter(pos)
if dist < 32 then
local blockers = {hasTool, isFirstPerson, canClickTarget, isGuiFocused}
for _,blocker in pairs(blockers) do
if blocker() then
return false
end
end
return true
end
else
finishGoal()
end
end
return false
end
local function render3dAdorn()
disk.Visible = canRenderDisk(true)
if disk.Visible then
disk.CFrame = CFrame.new(mouse.Hit.p) * DISK_OFFSET
mouseIcon.Image = ICON_HOVER
elseif canClickTarget() then
mouseIcon.Image = ICON_CLICK
elseif not hasTool() then
mouseIcon.Image = ICON_IDLE
end
if currentGoal then
goalDisk.Visible = true
goalDisk.CFrame = CFrame.new(currentGoal) * DISK_OFFSET
rotateCameraTowardsGoal()
else
goalDisk.Visible = false
end
end
RunService.Heartbeat:Connect(render3dAdorn)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Click Action
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local function onInputBegan(input,gameProcessed)
local goal = mouse.Hit.p
if not gameProcessed and canRenderDisk() and humanoid then
local name = input.UserInputType.Name
if name == "MouseButton1" then
clickToMove(goal)
elseif name == "Touch" then
wait(.1)
if input.UserInputState == Enum.UserInputState.End then
clickToMove(goal)
end
elseif name == "Gamepad1" then
if input.KeyCode == Enum.KeyCode.ButtonR2 then
clickToMove(goal)
end
end
end
end
UserInputService.InputBegan:Connect(onInputBegan)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- OBLITERATE the invasive click to move mode that Roblox provides
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pcall(function ()
if IS_TOUCH then
local playerScripts = player:WaitForChild("PlayerScripts")
local no = function () end
spawn(function ()
local controlScript = playerScripts:WaitForChild("ControlScript", 86400)
if controlScript then
local masterControl = controlScript:WaitForChild("MasterControl")
local clickToMove = masterControl:WaitForChild("ClickToMoveController")
clickToMove = require(clickToMove)
clickToMove:Disable()
clickToMove.Enable = no
end
end)
spawn(function ()
local playerModule = playerScripts:WaitForChild("PlayerModule", 86400)
if playerModule then
local controlModule = playerModule:WaitForChild("ControlModule")
local clickToMove = controlModule:WaitForChild("ClickToMoveController")
clickToMove = require(clickToMove)
clickToMove:Stop()
clickToMove.Enable = no
end
end)
end
end)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

View File

@ -0,0 +1,34 @@
local UserInputService = game:GetService("UserInputService")
local GuiService = game:GetService("GuiService")
local function addUIScale(obj,scale)
local uiScale = Instance.new("UIScale")
uiScale.Scale = scale
uiScale.Parent = obj
end
if GuiService:IsTenFootInterface() then
local gui = script.Parent
local zoomControls = gui:WaitForChild("ZoomControls")
zoomControls.Visible = false
local backpack = gui:WaitForChild("Backpack")
backpack.Position = UDim2.new(0, 0, 1, 0)
local chat = gui:WaitForChild("Chat")
addUIScale(chat, 1.5)
local chatPadding = gui:WaitForChild("ChatPadding", 1)
if chatPadding then
chatPadding:Destroy()
end
local safeChat = gui:WaitForChild("SafeChat")
addUIScale(safeChat, 1.5)
local health = gui:WaitForChild("Health")
addUIScale(health, 1.5)
end
wait()
script:Destroy()

View File

@ -0,0 +1,38 @@
<roblox version="4">
<Item class="ParticleEmitter" referent="RBXC90F783B636444DEB505CF11032972AF">
<Properties>
<Vector3 name="Acceleration">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="AttributesSerialize"></BinaryString>
<ColorSequence name="Color">0 1 1 1 0 1 0.498039 0.498039 0.498039 0 </ColorSequence>
<float name="Drag">0</float>
<token name="EmissionDirection">1</token>
<bool name="Enabled">false</bool>
<NumberRange name="Lifetime">0.3 0.5 </NumberRange>
<float name="LightEmission">1</float>
<float name="LightInfluence">0</float>
<bool name="LockedToPart">false</bool>
<string name="Name">ClassicExp</string>
<float name="Rate">500</float>
<NumberRange name="RotSpeed">0 0 </NumberRange>
<NumberRange name="Rotation">0 0 </NumberRange>
<NumberSequence name="Size">0 3 1.1875 0.75 2.62 0 1 0 0 </NumberSequence>
<NumberRange name="Speed">20 25 </NumberRange>
<Vector2 name="SpreadAngle">
<X>360</X>
<Y>360</Y>
</Vector2>
<BinaryString name="Tags"></BinaryString>
<Content name="Texture">
<url>rbxassetid://334788053</url>
</Content>
<NumberSequence name="Transparency">0 0 0 0.993111 0.1625 0 1 1 0 </NumberSequence>
<float name="VelocityInheritance">0</float>
<float name="ZOffset">3</float>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -0,0 +1,50 @@
local TeleportService = game:GetService("TeleportService")
local classicExp = script:WaitForChild("ClassicExp")
local c = workspace.CurrentCamera
local baseExpAdorn = Instance.new("UnionOperation")
baseExpAdorn.Name = "ExplosionAdorn"
baseExpAdorn.Anchored = true
baseExpAdorn.CanCollide = false
baseExpAdorn.Locked = true
baseExpAdorn.Transparency = 1
baseExpAdorn.Size = Vector3.new()
local function onDescendantAdded(exp)
if exp:IsA("Explosion") then
local cf = CFrame.new(exp.Position)
local expAdorn = baseExpAdorn:Clone()
local lifeTime = 1.5
exp.Visible = false
if TeleportService:GetTeleportSetting("RetroExplosions") then
local expObj = Instance.new("SphereHandleAdornment")
expObj.Adornee = expAdorn
expObj.Radius = exp.BlastRadius
expObj.Color3 = Color3.new(1,0,0)
expObj.CFrame = cf
expObj.Parent = expAdorn
lifeTime = 1
if exp.BlastRadius > 1 then
lifeTime = lifeTime - (1/exp.BlastRadius)
end
else
spawn(function ()
local e = classicExp:Clone()
e.Parent = expAdorn
expAdorn.CFrame = cf
local lessParticles = TeleportService:GetTeleportSetting("ReducedParticles")
local count = lessParticles and 25 or 100
for i = 1,8 do
e:Emit(count)
wait(0.125)
end
end)
end
expAdorn.Parent = c
wait(lifeTime)
expAdorn:Destroy()
end
end
workspace.DescendantAdded:Connect(onDescendantAdded)

View File

@ -0,0 +1,55 @@
local RunService = game:GetService("RunService")
local ffAdorns = workspace:WaitForChild("_ForceFieldAdorns")
local registry = {}
local cycleStates = {}
local cycles = 60
local function onChildAdded(child)
if child:IsA("SelectionBox") then
spawn(function ()
while not child.Adornee do
child.Changed:Wait()
end
registry[child] = child.Adornee
end)
end
end
local function onChildRemoved(child)
if registry[child] then
registry[child] = nil
end
end
local function update()
local now = tick()
for adorn,adornee in pairs(registry) do
local model = adornee:FindFirstAncestorWhichIsA("Model")
local key
if model then
local key = model:GetFullName()
local startTime = cycleStates[key]
if not startTime then
startTime = tick()
cycleStates[key] = startTime
end
local cycle = math.floor(((now-startTime)*2) * cycles) % (cycles*2)
if cycle > cycles then
cycle = cycles - (cycle - cycles)
end
local invertCycle = cycles - cycle
adorn.Color3 = Color3.new(cycle/cycles, 0, invertCycle/cycles)
adorn.Transparency = 0
end
adorn.Visible = adornee:IsDescendantOf(workspace) and adornee.LocalTransparencyModifier < 1
end
end
for _,v in pairs(ffAdorns:GetChildren()) do
onChildAdded(v)
end
RunService.Heartbeat:Connect(update)
ffAdorns.ChildAdded:Connect(onChildAdded)
ffAdorns.ChildRemoved:Connect(onChildRemoved)

View File

@ -0,0 +1,29 @@
-- Seriously Roblox?
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerScripts = player:WaitForChild("PlayerScripts")
local playerModule = playerScripts:WaitForChild("PlayerModule")
local controlModule = playerModule:WaitForChild("ControlModule")
local gamepad = require(controlModule:WaitForChild("Gamepad"))
playerModule = require(playerModule)
controlModule = playerModule:GetControls()
local function fixGamepad()
local lastInputType = UserInputService:GetLastInputType()
if lastInputType.Name == "Gamepad1" then
local controllers = controlModule.controllers
if controlModule.activeController ~= controllers[gamepad] then
controlModule:SwitchToController(gamepad)
end
end
end
RunService:BindToRenderStep("GamepadPatch", 0, fixGamepad)

View File

@ -0,0 +1,237 @@
<roblox version="4">
<Item class="BillboardGui" referent="RBX285AF39E6F624CF0917C07089C9C838A">
<Properties>
<bool name="Active">false</bool>
<Ref name="Adornee">null</Ref>
<bool name="AlwaysOnTop">true</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<bool name="ClipsDescendants">false</bool>
<float name="DistanceLowerLimit">0</float>
<float name="DistanceStep">0</float>
<float name="DistanceUpperLimit">-1</float>
<bool name="Enabled">true</bool>
<Vector3 name="ExtentsOffset">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="ExtentsOffsetWorldSpace">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="LightInfluence">0</float>
<float name="MaxDistance">INF</float>
<string name="Name">Health</string>
<Ref name="PlayerToHideFrom">null</Ref>
<bool name="ResetOnSpawn">true</bool>
<Ref name="RootLocalizationTable">null</Ref>
<UDim2 name="Size">
<XS>0</XS>
<XO>96</XO>
<YS>0</YS>
<YO>24</YO>
</UDim2>
<Vector2 name="SizeOffset">
<X>0</X>
<Y>0</Y>
</Vector2>
<Vector3 name="StudsOffset">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="StudsOffsetWorldSpace">
<X>0</X>
<Y>1.5</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"></BinaryString>
<token name="ZIndexBehavior">0</token>
<bool name="Archivable">true</bool>
</Properties>
<Item class="TextLabel" referent="RBX69042A4E12214255B323916F4F4CFB9C">
<Properties>
<bool name="Active">false</bool>
<Vector2 name="AnchorPoint">
<X>0.5</X>
<Y>0.75</Y>
</Vector2>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Color3 name="BackgroundColor3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<float name="BackgroundTransparency">1</float>
<Color3 name="BorderColor3">
<R>0.1058824</R>
<G>0.1647059</G>
<B>0.2078432</B>
</Color3>
<token name="BorderMode">0</token>
<int name="BorderSizePixel">1</int>
<bool name="ClipsDescendants">false</bool>
<bool name="Draggable">false</bool>
<token name="Font">9</token>
<int name="LayoutOrder">0</int>
<float name="LineHeight">1</float>
<string name="Name">PlayerName</string>
<Ref name="NextSelectionDown">null</Ref>
<Ref name="NextSelectionLeft">null</Ref>
<Ref name="NextSelectionRight">null</Ref>
<Ref name="NextSelectionUp">null</Ref>
<UDim2 name="Position">
<XS>0.5</XS>
<XO>0</XO>
<YS>0</YS>
<YO>0</YO>
</UDim2>
<Ref name="RootLocalizationTable">null</Ref>
<float name="Rotation">0</float>
<bool name="Selectable">false</bool>
<Ref name="SelectionImageObject">null</Ref>
<UDim2 name="Size">
<XS>10</XS>
<XO>0</XO>
<YS>1</YS>
<YO>0</YO>
</UDim2>
<token name="SizeConstraint">0</token>
<BinaryString name="Tags"></BinaryString>
<string name="Text">CloneTrooper1019</string>
<Color3 name="TextColor3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<bool name="TextScaled">true</bool>
<float name="TextSize">24</float>
<Color3 name="TextStrokeColor3">
<R>0</R>
<G>0</G>
<B>0</B>
</Color3>
<float name="TextStrokeTransparency">0</float>
<float name="TextTransparency">0</float>
<token name="TextTruncate">0</token>
<bool name="TextWrapped">true</bool>
<token name="TextXAlignment">2</token>
<token name="TextYAlignment">1</token>
<bool name="Visible">true</bool>
<int name="ZIndex">1</int>
<bool name="Archivable">true</bool>
</Properties>
</Item>
<Item class="Frame" referent="RBX32E2F9B55F8D4A0D861563FBE870D467">
<Properties>
<bool name="Active">false</bool>
<Vector2 name="AnchorPoint">
<X>0.5</X>
<Y>0.5</Y>
</Vector2>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Color3 name="BackgroundColor3">
<R>1</R>
<G>0</G>
<B>0</B>
</Color3>
<float name="BackgroundTransparency">0</float>
<Color3 name="BorderColor3">
<R>0.1058824</R>
<G>0.1647059</G>
<B>0.2078432</B>
</Color3>
<token name="BorderMode">0</token>
<int name="BorderSizePixel">0</int>
<bool name="ClipsDescendants">false</bool>
<bool name="Draggable">false</bool>
<int name="LayoutOrder">0</int>
<string name="Name">RedBar</string>
<Ref name="NextSelectionDown">null</Ref>
<Ref name="NextSelectionLeft">null</Ref>
<Ref name="NextSelectionRight">null</Ref>
<Ref name="NextSelectionUp">null</Ref>
<UDim2 name="Position">
<XS>0.5</XS>
<XO>0</XO>
<YS>0.5</YS>
<YO>0</YO>
</UDim2>
<Ref name="RootLocalizationTable">null</Ref>
<float name="Rotation">0</float>
<bool name="Selectable">false</bool>
<Ref name="SelectionImageObject">null</Ref>
<UDim2 name="Size">
<XS>0.6</XS>
<XO>0</XO>
<YS>0.3</YS>
<YO>0</YO>
</UDim2>
<token name="SizeConstraint">0</token>
<token name="Style">0</token>
<BinaryString name="Tags"></BinaryString>
<bool name="Visible">true</bool>
<int name="ZIndex">1</int>
<bool name="Archivable">true</bool>
</Properties>
<Item class="Frame" referent="RBXC3055B01C9B546139D22C75F5548AEDA">
<Properties>
<bool name="Active">false</bool>
<Vector2 name="AnchorPoint">
<X>0</X>
<Y>0</Y>
</Vector2>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Color3 name="BackgroundColor3">
<R>0.5058824</R>
<G>0.7725491</G>
<B>0.08627451</B>
</Color3>
<float name="BackgroundTransparency">0</float>
<Color3 name="BorderColor3">
<R>0.1058824</R>
<G>0.1647059</G>
<B>0.2078432</B>
</Color3>
<token name="BorderMode">0</token>
<int name="BorderSizePixel">0</int>
<bool name="ClipsDescendants">false</bool>
<bool name="Draggable">false</bool>
<int name="LayoutOrder">0</int>
<string name="Name">GreenBar</string>
<Ref name="NextSelectionDown">null</Ref>
<Ref name="NextSelectionLeft">null</Ref>
<Ref name="NextSelectionRight">null</Ref>
<Ref name="NextSelectionUp">null</Ref>
<UDim2 name="Position">
<XS>0</XS>
<XO>0</XO>
<YS>0</YS>
<YO>0</YO>
</UDim2>
<Ref name="RootLocalizationTable">null</Ref>
<float name="Rotation">0</float>
<bool name="Selectable">false</bool>
<Ref name="SelectionImageObject">null</Ref>
<UDim2 name="Size">
<XS>1</XS>
<XO>0</XO>
<YS>1</YS>
<YO>0</YO>
</UDim2>
<token name="SizeConstraint">0</token>
<token name="Style">0</token>
<BinaryString name="Tags"></BinaryString>
<bool name="Visible">true</bool>
<int name="ZIndex">1</int>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</Item>
</Item>
</roblox>

View File

@ -0,0 +1,139 @@
local humanoids = {}
local player = game.Players.LocalPlayer
local pgui = player:WaitForChild("PlayerGui")
local healthBase = script:WaitForChild("Health")
local rs = game:GetService("RunService")
local farStudsOffset = Vector3.new(0,2,0)
local closeStudsOffset = Vector3.new(0,1,0)
local farSize = UDim2.new(0,50,0,20)
local closeSize = UDim2.new(0,100,0,30)
local function isFinite(num)
return num == num and num ~= -1/0 and num ~= 1/0
end
local function setupHumanoid(h)
local updateCon = nil
local currentHealth = nil
local function onAncestryChanged()
if updateCon then
updateCon:disconnect()
updateCon = nil
end
if currentHealth then
currentHealth:Destroy()
currentHealth = nil
end
local char = h.Parent
if char then
while not char:FindFirstChild("Head") do
if h.Parent ~= char then break end
char.ChildAdded:wait()
end
local head = char:FindFirstChild("Head")
if head then
local health = healthBase:Clone()
local playerName = health:WaitForChild("PlayerName")
local redBar = health:WaitForChild("RedBar")
local greenBar = redBar:WaitForChild("GreenBar")
local inOverWrite = false
local overWriter = nil
local hPlayer = game.Players:GetPlayerFromCharacter(char)
playerName.Text = char.Name
health.Adornee = head
health.PlayerToHideFrom = hPlayer
health.Parent = head
local c = workspace.CurrentCamera
local function update()
local dist = (c.CFrame.p - head.Position).magnitude
local fontSize = 12
if dist < 20 then
fontSize = 24
elseif dist < 50 then
fontSize = 18
end
local ratio = h.Health / h.MaxHealth
redBar.Visible = isFinite(ratio)
redBar.BackgroundTransparency = math.floor(ratio)
redBar.Size = UDim2.new(0, fontSize * 4, 0, fontSize / 2)
greenBar.Size = UDim2.new(ratio, 0, 1, 0)
local width = fontSize * 4
health.Size = UDim2.new(0, width, 0, fontSize)
health.Enabled = (dist <= 100 and head.Transparency < 1)
health.StudsOffsetWorldSpace = Vector3.new(0, 1.5, 0)
if hPlayer and game:FindService("Teams") then
playerName.TextColor = hPlayer.TeamColor
else
playerName.TextColor3 = Color3.new(1, 1, 1)
end
local overWriter = char:FindFirstChild("NameOverwrite")
if overWriter and overWriter:IsA("StringValue") then
playerName.Text = overWriter.Value
else
playerName.Text = char.Name
end
end
updateCon = rs.RenderStepped:Connect(update)
currentHealth = health
h.DisplayDistanceType = "None"
end
end
end
onAncestryChanged()
h.AncestryChanged:Connect(onAncestryChanged)
end
local function recurse(obj)
for _,v in pairs(obj:GetChildren()) do
if v:IsA("Humanoid") then
humanoids[v] = true
else
recurse(v)
end
end
end
recurse(workspace)
for h in pairs(humanoids) do
humanoids[h] = true
spawn(function ()
setupHumanoid(h)
end)
end
local function onDescendantAdded(child)
if child:IsA("Humanoid") then
humanoids[child] = true
setupHumanoid(child)
end
end
local function onDescendantRemoved(child)
if humanoids[child] then
humanoids[child] = nil
end
end
recurse(workspace)
workspace.DescendantAdded:connect(onDescendantAdded)
workspace.DescendantRemoving:connect(onDescendantRemoved)

View File

@ -0,0 +1,185 @@
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local Debris = game:GetService("Debris")
local gateway = script.Parent
local tool = gateway.Parent
local remote = gateway:WaitForChild("Gateway")
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local isActive = false
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Standard Input
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local function activate(active,cf)
isActive = active
remote:FireServer("SetActive",active,cf)
while isActive do
wait(.1)
remote:FireServer("SetTarget",mouse.Hit)
end
end
local function onKey(input)
local keyCode = input.KeyCode.Name
local down = (input.UserInputState.Name == "Begin")
remote:FireServer("KeyEvent",keyCode,down)
end
local function onInputBegan(input,gameProcessed)
if not gameProcessed then
local name = input.UserInputType.Name
if name == "MouseButton1" then
activate(true,mouse.Hit)
elseif name == "Touch" then
wait(.1)
local state = input.UserInputState.Name
if state == "End" or state == "Cancel" then
activate(true,mouse.Hit)
end
elseif name == "Gamepad1" then
local keyCode = input.KeyCode.Name
if keyCode == "ButtonR2" then
activate(true,mouse.Hit)
end
elseif name == "Keyboard" then
onKey(input)
end
end
end
local function onInputEnded(input,gameProcessed)
if not gameProcessed and isActive then
local name = input.UserInputType.Name
if name == "MouseButton1" or name == "Touch" or name == "Gamepad1" then
activate(false,mouse.Hit)
elseif name == "Keyboard" then
onKey(input)
end
end
end
UserInputService.InputBegan:Connect(onInputBegan)
UserInputService.InputEnded:Connect(onInputEnded)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Special case Input
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local mControlScheme = tool:WaitForChild("ControlScheme",5)
if mControlScheme then
local controlSchemeData = require(mControlScheme)
local controlScheme = controlSchemeData.Buttons
local activateContext = controlSchemeData.ActivateContext
local keyEvent = tool:WaitForChild("KeyEvent")
local callbacks = {}
local hands = { L = "Left", R = "Right" }
local handTypes = {"Bumper","Trigger","Joystick (Press)"}
local schemeDocs =
{
Keyboard = {"Hold Left Mouse Button - " .. activateContext};
Gamepad = {"Hold Right Trigger - " .. activateContext};
}
for key,data in pairs(controlScheme) do
local down = false
callbacks[key] = function (actionName,inputState,inputObject)
if (inputState.Name == "Begin") and not down then
down = true
if data.Client then
keyEvent:Fire(key,true)
else
remote:FireServer("KeyEvent",key,true)
end
elseif (inputState.Name == "End") and down then
down = false
if data.Client then
keyEvent:Fire(key,false)
else
remote:FireServer("KeyEvent",key,false)
end
end
end
local xBtn = data.XboxButton:gsub("Button","")
if #xBtn == 2 then
local handId,hTypeId = xBtn:match("(%u)(%d)")
local hand = hands[handId]
local hType = handTypes[tonumber(hTypeId)]
xBtn = hand .. " " .. hType
else
xBtn = "(" .. xBtn .. ")"
end
table.insert(schemeDocs.Keyboard,key .. " - " .. data.Label)
table.insert(schemeDocs.Gamepad,xBtn .. " - " .. data.Label)
end
local currentSchemeDocMsg
local function onLastInputTypeChanged(inputType)
if currentSchemeDocMsg and not UserInputService.TouchEnabled and not controlSchemeData.HideControls then
local schemeDoc
if inputType.Name:find("Gamepad") then
schemeDoc = "Gamepad"
else
schemeDoc = "Keyboard"
end
currentSchemeDocMsg.Text = schemeDoc .. " Controls:\n\n" .. table.concat(schemeDocs[schemeDoc],"\n")
end
end
local diedCon
local equipped = false
local function onUnequipped()
if equipped then
equipped = false
for key,data in pairs(controlScheme) do
ContextActionService:UnbindAction(data.Label)
end
currentSchemeDocMsg:Destroy()
currentSchemeDocMsg = nil
end
end
local function onEquipped()
if not equipped then
equipped = true
for key,data in pairs(controlScheme) do
ContextActionService:BindAction(data.Label,callbacks[key],true,Enum.KeyCode[data.XboxButton])
ContextActionService:SetTitle(data.Label,data.Label)
end
if UserInputService.TouchEnabled then
spawn(function ()
local playerGui = player:WaitForChild("PlayerGui")
local contextActionGui = playerGui:WaitForChild("ContextActionGui")
local contextButtonFrame = contextActionGui:WaitForChild("ContextButtonFrame")
contextButtonFrame.Size = UDim2.new(3/8,0,3/8,0)
contextButtonFrame.AnchorPoint = Vector2.new(1,1)
contextButtonFrame.Position = UDim2.new(1,0,1,0)
end)
end
currentSchemeDocMsg = Instance.new("Message")
currentSchemeDocMsg.Parent = player
onLastInputTypeChanged(UserInputService:GetLastInputType())
if not diedCon then
local char = tool.Parent
if char then
local humanoid = char:FindFirstChildWhichIsA("Humanoid")
if humanoid then
diedCon = humanoid.Died:Connect(onUnequipped)
end
end
end
end
end
tool.Equipped:Connect(onEquipped)
tool.Unequipped:Connect(onUnequipped)
UserInputService.LastInputTypeChanged:Connect(onLastInputTypeChanged)
end

5
Client/Music.client.lua Normal file
View File

@ -0,0 +1,5 @@
local TeleportService = game:GetService("TeleportService")
local gameMusic = workspace:WaitForChild("GameMusic",10)
if gameMusic and TeleportService:GetTeleportSetting("AllowMusic") then
gameMusic:Play()
end

9
Client/Shared.client.lua Normal file
View File

@ -0,0 +1,9 @@
local TARGET = script.Name
do
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local client = ReplicatedStorage:WaitForChild("Client")
local targetScript = client:WaitForChild(TARGET)
local activation = require(targetScript)
activation(script)
end

View File

@ -0,0 +1,12 @@
local CollectionService = game:GetService("CollectionService")
local TeleportService = game:GetService("TeleportService")
local function onGlitchSoundAdded(glitchSound)
if TeleportService:GetTeleportSetting("SoundEquipBug") then
glitchSound.MaxDistance = 10000
glitchSound:Play()
end
end
local addSignal = CollectionService:GetInstanceAddedSignal("ToolSoundGlitch")
addSignal:Connect(onGlitchSoundAdded)

View File

@ -0,0 +1,10 @@
<roblox version="4">
<Item class="RemoteEvent" referent="RBXEC158FB6465D4F58B4EB58B92272E9AF">
<Properties>
<BinaryString name="AttributesSerialize"></BinaryString>
<string name="Name">ChatRemote</string>
<BinaryString name="Tags"></BinaryString>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -0,0 +1,10 @@
<roblox version="4">
<Item class="RemoteEvent" referent="RBX0D1AE774974B43A6AAF746E2EE819A42">
<Properties>
<BinaryString name="AttributesSerialize"></BinaryString>
<string name="Name">RequestCharacter</string>
<BinaryString name="Tags"></BinaryString>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -0,0 +1 @@
Shared/Safechat

View File

@ -0,0 +1 @@
Server/Badges

View File

@ -0,0 +1 @@
Server/Bevels

View File

@ -0,0 +1 @@
Server/BuildTools

View File

@ -0,0 +1 @@
Server/CaptureTheFlag

View File

@ -0,0 +1 @@
Server/Characters

View File

@ -0,0 +1 @@
Server/Chat

View File

@ -0,0 +1 @@
Server/Cylinders

View File

@ -0,0 +1 @@
Server/Explosions

View File

@ -0,0 +1 @@
Server/ForceFields

View File

@ -0,0 +1 @@
Server/HatGranter

View File

@ -0,0 +1 @@
Server/Heads

View File

@ -0,0 +1 @@
Server/Leaderboard

View File

@ -0,0 +1 @@
Server/LoadTools

View File

@ -0,0 +1 @@
Server/Parts

View File

@ -0,0 +1 @@
Server/Regeneration

View File

@ -0,0 +1 @@
Server/SessionTracker

View File

@ -0,0 +1 @@
Server/Time

View File

@ -0,0 +1,99 @@
<roblox version="4">
<Item class="MeshPart" referent="RBXDB19E5E4E6164EBB8D41D1FFEE0AA2C9">
<Properties>
<bool name="Anchored">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<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">0</token>
<token name="BottomSurfaceInput">0</token>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>1.800009</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>
<bool name="CastShadow">true</bool>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<Vector3 name="InitialSize">
<X>1</X>
<Y>0.4</Y>
<Z>1</Z>
</Vector3>
<BinaryString name="LODData"></BinaryString>
<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>
<bool name="Massless">false</bool>
<token name="Material">272</token>
<Content name="MeshID">
<url>rbxassetid://3188648073</url>
</Content>
<Content name="MeshId">
<url>rbxassetid://3188648073</url>
</Content>
<string name="Name">1.00 ~ 0.40 ~ 1.00</string>
<SharedString name="PhysicalConfigData">+KXn2PVkmG8K5+S8Au8qxA==</SharedString>
<BinaryString name="PhysicsData"></BinaryString>
<float name="Reflectance">0</float>
<token name="RenderFidelity">0</token>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"><![CDATA[SGFzQmV2ZWxz]]></BinaryString>
<Content name="TextureID">
<null></null>
</Content>
<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>
<Vector3 name="size">
<X>1</X>
<Y>0.4</Y>
<Z>1</Z>
</Vector3>
<token name="CollisionFidelity">0</token>
<bool name="Archivable">true</bool>
</Properties>
</Item>
<SharedStrings>
<SharedString md5="+KXn2PVkmG8K5+S8Au8qxA=="><![CDATA[Q1NHUEhTAAAAAEJMT0NL]]></SharedString>
</SharedStrings>
</roblox>

View File

@ -0,0 +1,99 @@
<roblox version="4">
<Item class="MeshPart" referent="RBX21778373B6E0466D9B566E868BB1203B">
<Properties>
<bool name="Anchored">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">3</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">3</token>
<token name="BottomSurfaceInput">0</token>
<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>
<bool name="CastShadow">true</bool>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">3</token>
<token name="FrontSurfaceInput">0</token>
<Vector3 name="InitialSize">
<X>1</X>
<Y>1</Y>
<Z>4</Z>
</Vector3>
<BinaryString name="LODData"></BinaryString>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">3</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<bool name="Massless">false</bool>
<token name="Material">272</token>
<Content name="MeshID">
<url>rbxassetid://3188498185</url>
</Content>
<Content name="MeshId">
<url>rbxassetid://3188498185</url>
</Content>
<string name="Name">1.00 ~ 1.00 ~ 4.00</string>
<SharedString name="PhysicalConfigData">+KXn2PVkmG8K5+S8Au8qxA==</SharedString>
<BinaryString name="PhysicsData"></BinaryString>
<float name="Reflectance">0</float>
<token name="RenderFidelity">0</token>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">3</token>
<token name="RightSurfaceInput">0</token>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"><![CDATA[SGFzQmV2ZWxz]]></BinaryString>
<Content name="TextureID">
<null></null>
</Content>
<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>1</X>
<Y>1</Y>
<Z>4</Z>
</Vector3>
<token name="CollisionFidelity">0</token>
<bool name="Archivable">true</bool>
</Properties>
</Item>
<SharedStrings>
<SharedString md5="+KXn2PVkmG8K5+S8Au8qxA=="><![CDATA[Q1NHUEhTAAAAAEJMT0NL]]></SharedString>
</SharedStrings>
</roblox>

View File

@ -0,0 +1,99 @@
<roblox version="4">
<Item class="MeshPart" referent="RBX98D9341F0F524E6ABBBD3254DFBFADAD">
<Properties>
<bool name="Anchored">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<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">0</token>
<token name="BottomSurfaceInput">0</token>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>11.80001</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>
<bool name="CastShadow">true</bool>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<Vector3 name="InitialSize">
<X>2</X>
<Y>1.2</Y>
<Z>4</Z>
</Vector3>
<BinaryString name="LODData"></BinaryString>
<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>
<bool name="Massless">false</bool>
<token name="Material">272</token>
<Content name="MeshID">
<url>rbxassetid://3188159241</url>
</Content>
<Content name="MeshId">
<url>rbxassetid://3188159241</url>
</Content>
<string name="Name">2.00 ~ 1.20 ~ 4.00</string>
<SharedString name="PhysicalConfigData">+KXn2PVkmG8K5+S8Au8qxA==</SharedString>
<BinaryString name="PhysicsData"></BinaryString>
<float name="Reflectance">0</float>
<token name="RenderFidelity">0</token>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"><![CDATA[SGFzQmV2ZWxz]]></BinaryString>
<Content name="TextureID">
<null></null>
</Content>
<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>
<Vector3 name="size">
<X>2</X>
<Y>1.2</Y>
<Z>4</Z>
</Vector3>
<token name="CollisionFidelity">0</token>
<bool name="Archivable">true</bool>
</Properties>
</Item>
<SharedStrings>
<SharedString md5="+KXn2PVkmG8K5+S8Au8qxA=="><![CDATA[Q1NHUEhTAAAAAEJMT0NL]]></SharedString>
</SharedStrings>
</roblox>

View File

@ -0,0 +1,10 @@
<roblox version="4">
<Item class="BindableEvent" referent="RBXA6ACA15CEB984C049B873C7C5B3255E0">
<Properties>
<BinaryString name="AttributesSerialize"></BinaryString>
<string name="Name">GrantHatToUser</string>
<BinaryString name="Tags"></BinaryString>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -0,0 +1,10 @@
<roblox version="4">
<Item class="RemoteEvent" referent="RBX35D3FDA6FD7F4E948C4620D48F40D896">
<Properties>
<BinaryString name="AttributesSerialize"></BinaryString>
<string name="Name">Gateway</string>
<BinaryString name="Tags"></BinaryString>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -0,0 +1 @@
Client/InputGateway

View File

@ -0,0 +1 @@
Server/InputGateway

View File

@ -0,0 +1 @@
Character/Animate

View File

@ -0,0 +1 @@
Character/Bounciness

View File

@ -0,0 +1 @@
Character/DropHats

View File

@ -0,0 +1 @@
Character/EdgeWalking

View File

@ -0,0 +1 @@
Character/FloorDrag

View File

@ -0,0 +1 @@
Character/GoofyBalance

View File

@ -0,0 +1 @@
Character/GoofyMotion

View File

@ -0,0 +1 @@
Character/InputGateway

View File

@ -0,0 +1 @@
Character/JumpLimiter

View File

@ -0,0 +1 @@
Character/RetroClimbing

View File

@ -0,0 +1 @@
Character/Sound

View File

@ -0,0 +1 @@
Character/TeamColors

View File

@ -0,0 +1 @@
Character/ToolSoundGlitch

View File

@ -0,0 +1 @@
Client/Backpack

View File

@ -0,0 +1 @@
Client/ChatScript

View File

@ -0,0 +1 @@
Client/ClickToMove

View File

@ -0,0 +1 @@
Client/UnivShared

View File

@ -0,0 +1 @@
Client/Health

View File

@ -0,0 +1 @@
Client/PlayerList

View File

@ -0,0 +1 @@
Client/Safechat

View File

@ -0,0 +1 @@
Client/ConsoleTweaks

View File

@ -0,0 +1 @@
Client/Messages

View File

@ -0,0 +1 @@
Client/ZoomControls

View File

@ -0,0 +1,10 @@
<roblox version="4">
<Item class="BindableEvent" referent="RBX683013E92D5E4F5C9C0CC64C96398A95">
<Properties>
<BinaryString name="AttributesSerialize"></BinaryString>
<string name="Name">PassCameraEvent</string>
<BinaryString name="Tags"></BinaryString>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</roblox>

View File

@ -0,0 +1 @@
Client/Animator

View File

@ -0,0 +1 @@
Client/CharacterBevels

View File

@ -0,0 +1 @@
Client/Explosions

View File

@ -0,0 +1 @@
Client/ForceFields

View File

@ -0,0 +1 @@
Client/UnivShared

View File

@ -0,0 +1 @@
Client/GamepadPatch

View File

@ -0,0 +1 @@
Client/HumanoidLabels

View File

@ -0,0 +1 @@
Client/UnivShared

View File

@ -0,0 +1,194 @@
<roblox version="4">
<Item class="Part" referent="RBX91B619449DA640BA9B61309FB2B292A2">
<Properties>
<bool name="Anchored">true</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<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>
<CoordinateFrame name="CFrame">
<X>511.7728</X>
<Y>175.8011</Y>
<Z>482.2249</Z>
<R00>0.74845</R00>
<R01>-0.2371427</R01>
<R02>0.6193432</R02>
<R10>1.490116E-08</R10>
<R11>0.9338833</R11>
<R12>0.3575782</R12>
<R20>-0.6631912</R20>
<R21>-0.2676294</R21>
<R22>0.698965</R22>
</CoordinateFrame>
<bool name="CanCollide">false</bool>
<bool name="CastShadow">true</bool>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<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>
<bool name="Massless">false</bool>
<token name="Material">256</token>
<string name="Name">Moon</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>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"></BinaryString>
<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">1</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>100</Y>
<Z>1</Z>
</Vector3>
<bool name="Archivable">true</bool>
</Properties>
<Item class="SurfaceGui" referent="RBX8158805B659F432E9E3A225CDFB22E81">
<Properties>
<bool name="Active">true</bool>
<Ref name="Adornee">null</Ref>
<bool name="AlwaysOnTop">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Vector2 name="CanvasSize">
<X>800</X>
<Y>800</Y>
</Vector2>
<bool name="ClipsDescendants">false</bool>
<bool name="Enabled">true</bool>
<token name="Face">5</token>
<float name="LightInfluence">0</float>
<string name="Name">MoonGui</string>
<float name="PixelsPerStud">50</float>
<bool name="ResetOnSpawn">true</bool>
<Ref name="RootLocalizationTable">null</Ref>
<token name="SizingMode">0</token>
<BinaryString name="Tags"></BinaryString>
<float name="ToolPunchThroughDistance">0</float>
<token name="ZIndexBehavior">0</token>
<float name="ZOffset">0</float>
<bool name="Archivable">true</bool>
</Properties>
<Item class="ImageLabel" referent="RBXF40781F1E29D44E788986602C7689180">
<Properties>
<bool name="Active">false</bool>
<Vector2 name="AnchorPoint">
<X>0</X>
<Y>0</Y>
</Vector2>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Color3 name="BackgroundColor3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<float name="BackgroundTransparency">1</float>
<Color3 name="BorderColor3">
<R>0.1058824</R>
<G>0.1647059</G>
<B>0.2078432</B>
</Color3>
<token name="BorderMode">0</token>
<int name="BorderSizePixel">0</int>
<bool name="ClipsDescendants">false</bool>
<bool name="Draggable">false</bool>
<Content name="Image">
<url>rbxassetid://599112257</url>
</Content>
<Color3 name="ImageColor3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<Vector2 name="ImageRectOffset">
<X>0</X>
<Y>0</Y>
</Vector2>
<Vector2 name="ImageRectSize">
<X>0</X>
<Y>0</Y>
</Vector2>
<float name="ImageTransparency">0</float>
<int name="LayoutOrder">0</int>
<string name="Name">MoonImage</string>
<Ref name="NextSelectionDown">null</Ref>
<Ref name="NextSelectionLeft">null</Ref>
<Ref name="NextSelectionRight">null</Ref>
<Ref name="NextSelectionUp">null</Ref>
<UDim2 name="Position">
<XS>-0.5</XS>
<XO>0</XO>
<YS>-0.5</YS>
<YO>0</YO>
</UDim2>
<Ref name="RootLocalizationTable">null</Ref>
<float name="Rotation">0</float>
<token name="ScaleType">0</token>
<bool name="Selectable">false</bool>
<Ref name="SelectionImageObject">null</Ref>
<UDim2 name="Size">
<XS>2</XS>
<XO>0</XO>
<YS>2</YS>
<YO>0</YO>
</UDim2>
<token name="SizeConstraint">0</token>
<Rect2D name="SliceCenter">
<min>
<X>0</X>
<Y>0</Y>
</min>
<max>
<X>0</X>
<Y>0</Y>
</max>
</Rect2D>
<float name="SliceScale">1</float>
<BinaryString name="Tags"></BinaryString>
<UDim2 name="TileSize">
<XS>1</XS>
<XO>0</XO>
<YS>1</YS>
<YO>0</YO>
</UDim2>
<bool name="Visible">true</bool>
<int name="ZIndex">1</int>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</Item>
</Item>
</roblox>

View File

@ -0,0 +1 @@
Client/UnivShared

View File

@ -0,0 +1,194 @@
<roblox version="4">
<Item class="Part" referent="RBX0ABD723CA5544C42A21A528B06CB9CA6">
<Properties>
<bool name="Anchored">true</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<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>
<CoordinateFrame name="CFrame">
<X>511.7728</X>
<Y>175.8011</Y>
<Z>482.2249</Z>
<R00>0.74845</R00>
<R01>-0.2371427</R01>
<R02>0.6193432</R02>
<R10>1.490116E-08</R10>
<R11>0.9338833</R11>
<R12>0.3575782</R12>
<R20>-0.6631912</R20>
<R21>-0.2676294</R21>
<R22>0.698965</R22>
</CoordinateFrame>
<bool name="CanCollide">false</bool>
<bool name="CastShadow">true</bool>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<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>
<bool name="Massless">false</bool>
<token name="Material">256</token>
<string name="Name">Moon</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>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"></BinaryString>
<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">1</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>80</X>
<Y>80</Y>
<Z>1</Z>
</Vector3>
<bool name="Archivable">true</bool>
</Properties>
<Item class="SurfaceGui" referent="RBXD056A1B3FD7E4281AE37FB174B6F092C">
<Properties>
<bool name="Active">true</bool>
<Ref name="Adornee">null</Ref>
<bool name="AlwaysOnTop">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Vector2 name="CanvasSize">
<X>800</X>
<Y>800</Y>
</Vector2>
<bool name="ClipsDescendants">false</bool>
<bool name="Enabled">true</bool>
<token name="Face">5</token>
<float name="LightInfluence">0</float>
<string name="Name">MoonGui</string>
<float name="PixelsPerStud">50</float>
<bool name="ResetOnSpawn">true</bool>
<Ref name="RootLocalizationTable">null</Ref>
<token name="SizingMode">0</token>
<BinaryString name="Tags"></BinaryString>
<float name="ToolPunchThroughDistance">0</float>
<token name="ZIndexBehavior">0</token>
<float name="ZOffset">0</float>
<bool name="Archivable">true</bool>
</Properties>
<Item class="ImageLabel" referent="RBXAC7B455F3FA240F589767BE98B788572">
<Properties>
<bool name="Active">false</bool>
<Vector2 name="AnchorPoint">
<X>0</X>
<Y>0</Y>
</Vector2>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Color3 name="BackgroundColor3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<float name="BackgroundTransparency">1</float>
<Color3 name="BorderColor3">
<R>0.1058824</R>
<G>0.1647059</G>
<B>0.2078432</B>
</Color3>
<token name="BorderMode">0</token>
<int name="BorderSizePixel">0</int>
<bool name="ClipsDescendants">false</bool>
<bool name="Draggable">false</bool>
<Content name="Image">
<url>rbxassetid://599112257</url>
</Content>
<Color3 name="ImageColor3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<Vector2 name="ImageRectOffset">
<X>0</X>
<Y>0</Y>
</Vector2>
<Vector2 name="ImageRectSize">
<X>0</X>
<Y>0</Y>
</Vector2>
<float name="ImageTransparency">0</float>
<int name="LayoutOrder">0</int>
<string name="Name">MoonImage</string>
<Ref name="NextSelectionDown">null</Ref>
<Ref name="NextSelectionLeft">null</Ref>
<Ref name="NextSelectionRight">null</Ref>
<Ref name="NextSelectionUp">null</Ref>
<UDim2 name="Position">
<XS>-0.5</XS>
<XO>0</XO>
<YS>-0.5</YS>
<YO>0</YO>
</UDim2>
<Ref name="RootLocalizationTable">null</Ref>
<float name="Rotation">0</float>
<token name="ScaleType">0</token>
<bool name="Selectable">false</bool>
<Ref name="SelectionImageObject">null</Ref>
<UDim2 name="Size">
<XS>2</XS>
<XO>0</XO>
<YS>2</YS>
<YO>0</YO>
</UDim2>
<token name="SizeConstraint">0</token>
<Rect2D name="SliceCenter">
<min>
<X>0</X>
<Y>0</Y>
</min>
<max>
<X>0</X>
<Y>0</Y>
</max>
</Rect2D>
<float name="SliceScale">1</float>
<BinaryString name="Tags"></BinaryString>
<UDim2 name="TileSize">
<XS>1</XS>
<XO>0</XO>
<YS>1</YS>
<YO>0</YO>
</UDim2>
<bool name="Visible">true</bool>
<int name="ZIndex">1</int>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</Item>
</Item>
</roblox>

View File

@ -0,0 +1 @@
Client/Music

View File

@ -0,0 +1 @@
Client/Camera

View File

@ -0,0 +1 @@
Client/UnivShared

View File

@ -0,0 +1,186 @@
<roblox version="4">
<Item class="Part" referent="RBX90A12E9BCE9B488D974B3D4B61CA545F">
<Properties>
<bool name="Anchored">true</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<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>
<CoordinateFrame name="CFrame">
<X>491.4301</X>
<Y>0.025031</Y>
<Z>324.0601</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>
<bool name="CastShadow">true</bool>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<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>
<bool name="Massless">false</bool>
<token name="Material">256</token>
<string name="Name">SkyAdorn</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>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"></BinaryString>
<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">1</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>0.05</X>
<Y>0.05</Y>
<Z>0.05</Z>
</Vector3>
<bool name="Archivable">true</bool>
</Properties>
<Item class="BillboardGui" referent="RBXBA2BBD0E503E43FA8B8A728726D169B1">
<Properties>
<bool name="Active">false</bool>
<Ref name="Adornee">null</Ref>
<bool name="AlwaysOnTop">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<bool name="ClipsDescendants">false</bool>
<float name="DistanceLowerLimit">0</float>
<float name="DistanceStep">0</float>
<float name="DistanceUpperLimit">-1</float>
<bool name="Enabled">true</bool>
<Vector3 name="ExtentsOffset">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="ExtentsOffsetWorldSpace">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="LightInfluence">1</float>
<float name="MaxDistance">INF</float>
<string name="Name">Night</string>
<Ref name="PlayerToHideFrom">null</Ref>
<bool name="ResetOnSpawn">true</bool>
<Ref name="RootLocalizationTable">null</Ref>
<UDim2 name="Size">
<XS>0</XS>
<XO>3000</XO>
<YS>0</YS>
<YO>3000</YO>
</UDim2>
<Vector2 name="SizeOffset">
<X>0</X>
<Y>0</Y>
</Vector2>
<Vector3 name="StudsOffset">
<X>0</X>
<Y>0</Y>
<Z>-3000</Z>
</Vector3>
<Vector3 name="StudsOffsetWorldSpace">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"></BinaryString>
<token name="ZIndexBehavior">0</token>
<bool name="Archivable">true</bool>
</Properties>
<Item class="Frame" referent="RBX6EB115050DCA4007AE67D2E5ED3C9014">
<Properties>
<bool name="Active">false</bool>
<Vector2 name="AnchorPoint">
<X>0</X>
<Y>0</Y>
</Vector2>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Color3 name="BackgroundColor3">
<R>0</R>
<G>0</G>
<B>0</B>
</Color3>
<float name="BackgroundTransparency">1</float>
<Color3 name="BorderColor3">
<R>0.1058824</R>
<G>0.1647059</G>
<B>0.2078432</B>
</Color3>
<token name="BorderMode">0</token>
<int name="BorderSizePixel">0</int>
<bool name="ClipsDescendants">false</bool>
<bool name="Draggable">false</bool>
<int name="LayoutOrder">0</int>
<string name="Name">NightFrame</string>
<Ref name="NextSelectionDown">null</Ref>
<Ref name="NextSelectionLeft">null</Ref>
<Ref name="NextSelectionRight">null</Ref>
<Ref name="NextSelectionUp">null</Ref>
<UDim2 name="Position">
<XS>0</XS>
<XO>0</XO>
<YS>0</YS>
<YO>0</YO>
</UDim2>
<Ref name="RootLocalizationTable">null</Ref>
<float name="Rotation">0</float>
<bool name="Selectable">false</bool>
<Ref name="SelectionImageObject">null</Ref>
<UDim2 name="Size">
<XS>1</XS>
<XO>0</XO>
<YS>1</YS>
<YO>0</YO>
</UDim2>
<token name="SizeConstraint">0</token>
<token name="Style">0</token>
<BinaryString name="Tags"></BinaryString>
<bool name="Visible">true</bool>
<int name="ZIndex">1</int>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</Item>
</Item>
</roblox>

View File

@ -0,0 +1,109 @@
<roblox version="4">
<Item class="BillboardGui" referent="RBX1DD3652FB86B475D98746E861F4C4D30">
<Properties>
<bool name="Active">false</bool>
<Ref name="Adornee">null</Ref>
<bool name="AlwaysOnTop">false</bool>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<bool name="ClipsDescendants">false</bool>
<float name="DistanceLowerLimit">0</float>
<float name="DistanceStep">0</float>
<float name="DistanceUpperLimit">-1</float>
<bool name="Enabled">true</bool>
<Vector3 name="ExtentsOffset">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="ExtentsOffsetWorldSpace">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="LightInfluence">0</float>
<float name="MaxDistance">INF</float>
<string name="Name">Star</string>
<Ref name="PlayerToHideFrom">null</Ref>
<bool name="ResetOnSpawn">true</bool>
<Ref name="RootLocalizationTable">null</Ref>
<UDim2 name="Size">
<XS>0</XS>
<XO>3</XO>
<YS>0</YS>
<YO>3</YO>
</UDim2>
<Vector2 name="SizeOffset">
<X>0</X>
<Y>0</Y>
</Vector2>
<Vector3 name="StudsOffset">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="StudsOffsetWorldSpace">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"></BinaryString>
<token name="ZIndexBehavior">0</token>
<bool name="Archivable">true</bool>
</Properties>
<Item class="Frame" referent="RBX2017E07EA1A6463D980A73D05E39BA0C">
<Properties>
<bool name="Active">false</bool>
<Vector2 name="AnchorPoint">
<X>0</X>
<Y>0</Y>
</Vector2>
<BinaryString name="AttributesSerialize"></BinaryString>
<bool name="AutoLocalize">true</bool>
<Color3 name="BackgroundColor3">
<R>1</R>
<G>1</G>
<B>1</B>
</Color3>
<float name="BackgroundTransparency">0</float>
<Color3 name="BorderColor3">
<R>0.1058824</R>
<G>0.1647059</G>
<B>0.2078432</B>
</Color3>
<token name="BorderMode">0</token>
<int name="BorderSizePixel">0</int>
<bool name="ClipsDescendants">false</bool>
<bool name="Draggable">false</bool>
<int name="LayoutOrder">0</int>
<string name="Name">Frame</string>
<Ref name="NextSelectionDown">null</Ref>
<Ref name="NextSelectionLeft">null</Ref>
<Ref name="NextSelectionRight">null</Ref>
<Ref name="NextSelectionUp">null</Ref>
<UDim2 name="Position">
<XS>0</XS>
<XO>0</XO>
<YS>0</YS>
<YO>0</YO>
</UDim2>
<Ref name="RootLocalizationTable">null</Ref>
<float name="Rotation">0</float>
<bool name="Selectable">false</bool>
<Ref name="SelectionImageObject">null</Ref>
<UDim2 name="Size">
<XS>1</XS>
<XO>0</XO>
<YS>1</YS>
<YO>0</YO>
</UDim2>
<token name="SizeConstraint">0</token>
<token name="Style">0</token>
<BinaryString name="Tags"></BinaryString>
<bool name="Visible">true</bool>
<int name="ZIndex">1</int>
<bool name="Archivable">true</bool>
</Properties>
</Item>
</Item>
</roblox>

Some files were not shown because too many files have changed in this diff Show More