Pinkstack/roblox-luau-corpus-text huggingface dataset:
--!strict
-- upstream: https://github.com/facebook/react/blob/60ba723bf78b9a28f60dce854e88e206fab52301/packages/react-is/src/ReactIs.js
--[[*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 *
 ]]



local Packages = script.Parent
--Zombie artificial stupidity script




sp=script.Parent
lastattack=0
nextrandom=0
nextsound=0
nextjump=0
chasing=false

variance=4

damage=50
attackrange=4.5
sightrange=999--60
runspeed=40
wonderspeed=8
healthregen=false
colors={"Sand red","Dusty Rose","Medium blue","Sand blue","Lavender","Earth green","Brown","Medium stone grey","Brick yellow"}

function raycast(spos,vec,currentdist)
	local hit2,pos2=game.Workspace:FindPartOnRay(Ray.new(spos+(vec*.01),vec*currentdist),script.Parent)
	if hit2~=nil and pos2 then
		if hit2.Parent==script.Parent and hit2.Transparency>=.8 or hit2.Name=="Handle" or string.sub(hit2.Name,1,6)=="Effect" or hit2.Parent:IsA("Hat") or hit2.Parent:IsA("Tool") or (hit2.Parent:FindFirstChild("Humanoid") and hit2.Parent:FindFirstChild("TEAM") and hit2.Parent:FindFirstChild("TEAM").Value == script.Parent.TEAM.Value) or (not hit2.Parent:FindFirstChild("Humanoid") and hit2.CanCollide==false) then
			local currentdist=currentdist-(pos2-spos).magnitude
			return raycast(pos2,vec,currentdist)
		end
	end
	return hit2,pos2
end

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
--[=[
	Returns whether the datastore failed.
	@return boolean
]=]


function DataStore:DidLoadFail()
	if not self._loadPromise then
		return false
	end

	if self._loadPromise:IsRejected() then
		return true
	end

	return false
end

function DataStore:PromiseLoadSuccessful()
	return self._maid:GivePromise(self:_promiseLoad()):Then(function()
		return true
	end, function()
		return false
	end)
end
-- Note: DotProduct check in CoordinateFrame::lookAt() prevents using values within about
-- 8.11 degrees of the +/- Y axis, that's why these limits are currently 80 degrees


local MIN_Y = math.rad(-80)
local MAX_Y = math.rad(80)

local VR_ANGLE = math.rad(15)
local VR_LOW_INTENSITY_ROTATION = Vector2.new(math.rad(15), 0)
local VR_HIGH_INTENSITY_ROTATION = Vector2.new(math.rad(45), 0)
local VR_LOW_INTENSITY_REPEAT = 0.1
local VR_HIGH_INTENSITY_REPEAT = 0.4

local ZERO_VECTOR2 = Vector2.new(0,0)
local ZERO_VECTOR3 = Vector3.new(0,0,0)

local SEAT_OFFSET = Vector3.new(0,5,0)
local VR_SEAT_OFFSET = Vector3.new(0,4,0)
local HEAD_OFFSET = Vector3.new(0,1.5,0)
local R15_HEAD_OFFSET = Vector3.new(0, 1.5, 0)
local R15_HEAD_OFFSET_NO_SCALING = Vector3.new(0, 2, 0)
local DEAD_OFFSET = Vector3.new(0,1.5,0)
local HUMANOID_ROOT_PART_SIZE = Vector3.new(2, 2, 1)

local GAMEPAD_ZOOM_STEP_1 = 0
local GAMEPAD_ZOOM_STEP_2 = 10
local GAMEPAD_ZOOM_STEP_3 = 20

local ZOOM_SENSITIVITY_CURVATURE = 0.5
local FIRST_PERSON_DISTANCE_MIN = 0.5

local HUMANOID_STATES = {
	[Enum.HumanoidStateType.Dead] = true;
	[Enum.HumanoidStateType.Physics] = true;
}

local CameraUtils = require(script.Parent:WaitForChild("CameraUtils"))
local ZoomController = require(script.Parent:WaitForChild("ZoomController"))
local CameraToggleStateController = require(script.Parent:WaitForChild("CameraToggleStateController"))
local CameraInput = require(script.Parent:WaitForChild("CameraInput"))
local CameraUI = require(script.Parent:WaitForChild("CameraUI"))
---


if 	script.Parent.Parent.Parent.IsOn.Value then
	script.Parent.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
end

script.Parent.Parent.Parent.IsOn.Changed:connect(function()
	if script.Parent.Parent.Parent.IsOn.Value then
		script.Parent.Parent:TweenPosition(UDim2.new(0, 0, 0, 0),Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,1,true)
	end
end)

	local handler = car.Fogs
			
	script.Parent.MouseButton1Click:connect(function()
		if car.Body.Fogs.F.L.L.Enabled == false then
			handler:FireServer("Lights",1)
			script.Parent.BackgroundColor3 = Color3.new(0,255/255,0)
			script.Parent.TextStrokeColor3 = Color3.new(0,255/255,0)
			for index, child in pairs(car.Body.Fogs.F:GetChildren()) do
			child.Material = Enum.Material.Neon
			child.L.Enabled = true
			end
		elseif car.Body.Fogs.F.L.L.Enabled == true then
			handler:FireServer("Lights",0)
			script.Parent.BackgroundColor3 = Color3.new(0,0,0)
			script.Parent.TextStrokeColor3 = Color3.new(0,0,0)
			for index, child in pairs(car.Body.Fogs.F:GetChildren()) do
			child.Material = Enum.Material.SmoothPlastic
			child.L.Enabled = false
			end
		end
	end)
-- Do not edit the below.



script.Parent.Changed:connect(function(child)
SingleDriverMode = script.Parent.SingleMode.Value
 if SingleDriverMode == true then
     if script.Parent.Occupant ~= nil then
         if script.Parent.Occupant.Parent.Name ~= AllowedDriver then
         script.Parent.Occupant.Jump = true
         script.Parent.Occupant.Health = 0
         script.Parent.Fail:Play()
     else end
 end
 else
  for i,v in pairs(Blacklist) do
   if script.Parent.Occupant ~= nil then
          if script.Parent.Occupant.Parent.Name == Blacklist[i] then
           if script.Parent.Occupant.Parent.Name ~= AllowedDriver then
     script.Parent.Occupant.Jump = true
           script.Parent.Occupant.Health = 0
           script.Parent.Fail:Play()
     end
      else end
   end
  end
 end
end)
-- tu dois assigner la bonne couleur



local plr = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Name
local normalBorderColor = script.Parent.TextLabel.TextColor.Color

function Click(mouse) 
	if game.Players[plr].TeamColor ~= game.Teams:FindFirstChild(script.Parent.Name).TeamColor then
		game.Players[plr].TeamColor = game.Teams:FindFirstChild(script.Parent.Name).TeamColor

		script.Parent.Border.ImageColor3 = Color3.new(0.333333, 1, 0)
		wait(.25)
		script.Parent.Border.ImageColor3 = normalBorderColor
		wait(.1)
		script.Parent.Parent.Parent.Parent.Parent.Parent.Parent.Character.Humanoid.Health = 0
	else
		script.Parent.Border.ImageColor3 = Color3.new(1, 0, 0)
		wait(.25)
		script.Parent.Border.ImageColor3 = normalBorderColor
		wait(.1)
	end
	
end 

script.Parent.MouseButton1Click:connect(Click)
--Atomic Bomb


game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local Humanoid = character:WaitForChild("Humanoid")
		Humanoid.Died:connect(function()
			if player.AtomicBomb.Value == 2 then
				player.AtomicBomb.Value = 1
			end
		end)
	end)
end)
game.Players.PlayerRemoving:Connect(function(player)
	if player.AtomicBomb.Value == 2 then
		player.AtomicBomb.Value = 1
	end
end)
--[=[
	Converts an item
	http://reactivex.io/documentation/operators/from.html

	@param item Promise | table
	@return Observable
]=]


function Rx.from(item)
	if Promise.isPromise(item) then
		return Rx.fromPromise(item)
	elseif type(item) == "table" then
		return Rx.of(unpack(item))
	else
		-- TODO: Iterator?
		error("[Rx.from] - cannot convert")
	end
end
--- Add a line to the command bar


function Window:AddLine(text, options)
	options = options or {}
	text = tostring(text)

	if typeof(options) == "Color3" then
		options = { Color = options }
	end

	if #text == 0 then
		Window:UpdateWindowHeight()
		return
	end

	local str = self.Cmdr.Util.EmulateTabstops(text or "nil", 8)
	local line = Line:Clone()
	line.Size =
		UDim2.new(
		line.Size.X.Scale,
		line.Size.X.Offset,
		0,
		TextService:GetTextSize(
			str,
			line.TextSize,
			line.Font,
			Vector2.new(Gui.UIListLayout.AbsoluteContentSize.X, math.huge)
		).Y + (LINE_HEIGHT - line.TextSize)
	)
	line.Text = str
	line.TextColor3 = options.Color or line.TextColor3
	line.RichText = options.RichText or false
	line.Parent = Gui
end
-- declarations



local sDied = newSound("rbxasset://sounds/uuhhh.wav")
local sOuch = newSound("rbxasset://sounds/splat.wav")
local sFallingDown = newSound("rbxasset://sounds/splat.wav")
local sFreeFalling = newSound("rbxasset://sounds/button.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")
--[=[
	@within TableUtil
	@function Sample
	@param tbl table
	@param sampleSize number
	@param rngOverride Random?
	@return table

	Returns a random sample of the table.

	```lua
	local t = {1, 2, 3, 4, 5, 6, 7, 8, 9}
	local sample = TableUtil.Sample(t, 3)
	print(sample) --> e.g. {6, 2, 5}
	```

	:::note Arrays only
	This function works on arrays, but not dictionaries.
]=]


local function Sample(tbl: Table, size: number, rngOverride: Random?): Table
	assert(type(tbl) == "table", "First argument must be a table")
	assert(type(size) == "number", "Second argument must be a number")
	local shuffled = Copy(tbl)
	local sample = table.create(size)
	local random = if typeof(rngOverride) == "Random" then rngOverride else rng
	local len = #tbl
	size = math.clamp(size, 1, len)
	for i = 1,size do
		local j = random:NextInteger(i, len)
		shuffled[i], shuffled[j] = shuffled[j], shuffled[i]
	end
	table.move(shuffled, 1, size, 1, sample)
	return sample
end
--local humanoid = hit.Parent:findFirstChild("Humanoid")
--	if math.random(1,100)==1 and humanoid==nil then
--		hit:BreakJoints()
--	end



	if hit.Name~=ball.Name and exploded==false then
		exploded=true
		local ballp=ball.Position
		explode()
		ball.Anchored=true
		ball.Transparency=1
		ball.CanCollide=false
		wait(0.01)
		ball:Destroy()
		if hit.Parent and hit.Parent:FindFirstChildWhichIsA("Humanoid") then
			hit.Parent.Humanoid:TakeDamage(math.random(60,80))
		end
		--else
		--	local ricochetpart = Instance.new("Part")
		--	ricochetpart.Position = ballp
		--	ricochetpart.Anchored = true
		--	ricochetpart.CanCollide = false
		--	ricochetpart.Transparency = 1
		--	ricochetpart.Size = Vector3.new(0.1,0.1,0.1)
		--	ricochetpart.Parent = workspace
		--	ricochetpart.Name = "ricochetpart"
			
		--	--local ricochetpartsound = ricochetsound:Clone()
		--	local ricochetpartsound = Instance.new("Sound")
		--	ricochetpartsound.SoundId = ("rbxassetid://3727467442")
		--	ricochetpartsound.Parent = ricochetpart
		--	ricochetpartsound:Play()
		--	game.Debris:AddItem(ricochetpart, 1)
		--end
		--explodebutdontdestroy()
		--explode()
--[=[
	Fires the equivalent server-side signal with the given arguments.

	:::note Outbound Middleware
	All arguments pass through any outbound middleware before being
	sent to the server.
	:::
]=]


function ClientRemoteSignal:Fire(...: any)
	if self._hasOutbound then
		self._re:FireServer(self:_processOutboundMiddleware(...))
	else
		self._re:FireServer(...)
	end
end
-- DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING!!! --






 function onClicked()

 	script.Parent.Parent.A.D1.Transparency = 1
	script.Parent.Parent.A.D2.Transparency = 1
	script.Parent.Parent.A.D3.Transparency = 1
	script.Parent.Parent.A.D4.Transparency = 1
	script.Parent.Parent.A.D1.CanCollide = false
	script.Parent.Parent.A.D2.CanCollide = false
	script.Parent.Parent.A.D3.CanCollide = false
	script.Parent.Parent.A.D4.CanCollide = false
	script.Parent.Parent.B.D1.Transparency = 0
	script.Parent.Parent.B.D2.Transparency = 0
	script.Parent.Parent.B.D3.Transparency = 0.7
	script.Parent.Parent.B.D4.Transparency = 0.7
	script.Parent.Parent.B.D1.CanCollide = true
	script.Parent.Parent.B.D2.CanCollide = true
	script.Parent.Parent.B.D3.CanCollide = true
	script.Parent.Parent.B.D4.CanCollide = true
	wait(0.1)
	script.Parent.Parent.B.D1.Transparency = 1
	script.Parent.Parent.B.D2.Transparency = 1
	script.Parent.Parent.B.D3.Transparency = 1
	script.Parent.Parent.B.D4.Transparency = 1
	script.Parent.Parent.B.D1.CanCollide = false
	script.Parent.Parent.B.D2.CanCollide = false
	script.Parent.Parent.B.D3.CanCollide = false
	script.Parent.Parent.B.D4.CanCollide = false
	script.Parent.Parent.C.D1.Transparency = 0
	script.Parent.Parent.C.D2.Transparency = 0
	script.Parent.Parent.C.D3.Transparency = 0.7
	script.Parent.Parent.C.D4.Transparency = 0.7
	script.Parent.Parent.C.D1.CanCollide = true
	script.Parent.Parent.C.D2.CanCollide = true
	script.Parent.Parent.C.D3.CanCollide = true
	script.Parent.Parent.C.D4.CanCollide = true
	wait(0.1)
	script.Parent.Parent.C.D1.Transparency = 1
	script.Parent.Parent.C.D2.Transparency = 1
	script.Parent.Parent.C.D3.Transparency = 1
	script.Parent.Parent.C.D4.Transparency = 1
	script.Parent.Parent.C.D1.CanCollide = false
	script.Parent.Parent.C.D2.CanCollide = false
	script.Parent.Parent.C.D3.CanCollide = false
	script.Parent.Parent.C.D4.CanCollide = false
	script.Parent.Parent.D.D1.Transparency = 0
	script.Parent.Parent.D.D2.Transparency = 0
	script.Parent.Parent.D.D3.Transparency = 0.7
	script.Parent.Parent.D.D4.Transparency = 0.7
	script.Parent.Parent.D.D1.CanCollide = true
	script.Parent.Parent.D.D2.CanCollide = true
	script.Parent.Parent.D.D3.CanCollide = true
	script.Parent.Parent.D.D4.CanCollide = true
	wait(0.1)
	script.Parent.Parent.D.D1.Transparency = 1
	script.Parent.Parent.D.D2.Transparency = 1
	script.Parent.Parent.D.D3.Transparency = 1
	script.Parent.Parent.D.D4.Transparency = 1
	script.Parent.Parent.D.D1.CanCollide = false
	script.Parent.Parent.D.D2.CanCollide = false
	script.Parent.Parent.D.D3.CanCollide = false
	script.Parent.Parent.D.D4.CanCollide = false
	script.Parent.Parent.E.D1.Transparency = 0
	script.Parent.Parent.E.D2.Transparency = 0
	script.Parent.Parent.E.D3.Transparency = 0.7
	script.Parent.Parent.E.D4.Transparency = 0.7
	script.Parent.Parent.E.D1.CanCollide = true
	script.Parent.Parent.E.D2.CanCollide = true
	script.Parent.Parent.E.D3.CanCollide = true
	script.Parent.Parent.E.D4.CanCollide = true

	

end
 
 script.Parent.ClickDetector.MouseClick:connect(onClicked)
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------



function onSwimming()
	local speed = script.speed.Value
	if userAnimateScaleRun then
		speed /= getHeightScale()
	end
	if speed > 1.00 then
		local scale = 10.0
		playAnimation("swim", 0.4, Humanoid)
		setAnimationSpeed(speed / scale)
		pose = "Swimming"
	else
		playAnimation("swimidle", 0.4, Humanoid)
		pose = "Standing"
	end
end

function animateTool()
	if (toolAnim == "None") then
		playToolAnimation("toolnone", toolTransitionTime, Humanoid, Enum.AnimationPriority.Idle)
		return
	end

	if (toolAnim == "Slash") then
		playToolAnimation("toolslash", 0, Humanoid, Enum.AnimationPriority.Action)
		return
	end

	if (toolAnim == "Lunge") then
		playToolAnimation("toollunge", 0, Humanoid, Enum.AnimationPriority.Action)
		return
	end
end

function getToolAnim(tool)
	for _, c in ipairs(tool:GetChildren()) do
		if c.Name == "toolanim" and c.className == "StringValue" then
			return c
		end
	end
	return nil
end

local lastTick = 0

function stepAnimate(currentTime)
	if script.Parent.Humanoid:GetState() == Enum.HumanoidStateType.Climbing then
		onClimbing()
	end
	local amplitude = 1
	local frequency = 1
	local deltaTime = currentTime - lastTick
	lastTick = currentTime

	local climbFudge = 0
	local setAngles = false

	if (jumpAnimTime > 0) then
		jumpAnimTime = jumpAnimTime - deltaTime
	end

	if (pose == "FreeFall" and jumpAnimTime <= 0) then
		playAnimation("fall", fallTransitionTime, Humanoid)
	elseif (pose == "Seated") then
		playAnimation("sit", 0.5, Humanoid)
		return
	elseif (pose == "Running") then
		playAnimation("walk", 0.2, Humanoid)
		if math.round(script.speed.Value) == 0 then
			playAnimation("idle", 0.1, Humanoid)
			pose = "Standing"
		end
	elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then
		stopAllAnimations()
		amplitude = 0.1
		frequency = 1
		setAngles = true
	end

	-- Tool Animation handling
	local tool = Character:FindFirstChildOfClass("Tool")
	if tool and tool:FindFirstChild("Handle") then
		local animStringValueObject = getToolAnim(tool)

		if animStringValueObject then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = currentTime + .3
		end

		if currentTime > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end

		animateTool()		
	else
		stopToolAnimations()
		toolAnim = "None"
		toolAnimInstance = nil
		toolAnimTime = 0
	end
end
--[[Weight and CG]]


	Tune.Weight			= 2050		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		14		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]
	
	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
-- A variant of the function above that returns the velocity at a given point in time.


local function GetVelocityAtTime(time: number, initialVelocity: Vector3, acceleration: Vector3): Vector3
	return initialVelocity + acceleration * time
end

local function GetTrajectoryInfo(cast: ActiveCast, index: number): {[number]: Vector3}
	assert(cast.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	local trajectories = cast.StateInfo.Trajectories
	local trajectory = trajectories[index]
	local duration = trajectory.EndTime - trajectory.StartTime

	local origin = trajectory.Origin
	local vel = trajectory.InitialVelocity
	local accel = trajectory.Acceleration

	return {GetPositionAtTime(duration, origin, vel, accel), GetVelocityAtTime(duration, vel, accel)}
end

local function GetLatestTrajectoryEndInfo(cast: ActiveCast): {[number]: Vector3}
	assert(cast.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	return GetTrajectoryInfo(cast, #cast.StateInfo.Trajectories)
end

local function CloneCastParams(params: RaycastParams): RaycastParams
	local clone = RaycastParams.new()
	clone.CollisionGroup = params.CollisionGroup
	clone.FilterType = params.FilterType
	clone.FilterDescendantsInstances = params.FilterDescendantsInstances
	clone.IgnoreWater = params.IgnoreWater
	return clone
end

local function SendRayHit(cast: ActiveCast, resultOfCast: RaycastResult, segmentVelocity: Vector3, cosmeticBulletObject: Instance?)
	cast.Caster.RayHit:Fire(cast, resultOfCast, segmentVelocity, cosmeticBulletObject)
end

local function SendRayPierced(cast: ActiveCast, resultOfCast: RaycastResult, segmentVelocity: Vector3, cosmeticBulletObject: Instance?)
	cast.Caster.RayPierced:Fire(cast, resultOfCast, segmentVelocity, cosmeticBulletObject)
end

local function SendLengthChanged(cast: ActiveCast, lastPoint: Vector3, rayDir: Vector3, rayDisplacement: number, segmentVelocity: Vector3, cosmeticBulletObject: Instance?)
	cast.Caster.LengthChanged:Fire(cast, lastPoint, rayDir, rayDisplacement, segmentVelocity, cosmeticBulletObject)
end
-- functions



function onDied()
	sDied:Play()
	sOuch:Play()
end

function onState(state, sound)
	if state then
		sound:Play()
	else
		sound:Pause()
	end
end

function onRunning(speed)
	if speed>0 then
		sRunning:Play()
	else
		sRunning:Pause()
	end
end
--- Handles initial preparation of the game server-side.


return function (cmdr)
	local ReplicatedRoot, RemoteFunction, RemoteEvent

	local function Create (class, name, parent)
		local object = Instance.new(class)
		object.Name = name
		object.Parent = parent or ReplicatedRoot

		return object
	end

	ReplicatedRoot = script.Parent.CmdrClient
	ReplicatedRoot.Parent = ReplicatedStorage

	RemoteFunction = Create("RemoteFunction", "CmdrFunction")
	RemoteEvent = Create("RemoteEvent", "CmdrEvent")

	Create("Folder", "Commands")
	Create("Folder", "Types")

	script.Parent.Shared.Parent = ReplicatedRoot

	cmdr.ReplicatedRoot = ReplicatedRoot
	cmdr.RemoteFunction = RemoteFunction
	cmdr.RemoteEvent = RemoteEvent

	cmdr:RegisterTypesIn(script.Parent.BuiltInTypes)

	script.Parent.BuiltInTypes:Destroy()

	if StarterGui:FindFirstChild("Cmdr") == nil then
		CreateGui()
	end
end
--[[Steering]]


	Tune.SteeringType	= 'New'		-- New = Precise steering calculations based on real life steering assembly (LuaInt)
									-- Old = Previous steering calculations
	-- New Options
	Tune.SteerRatio		= 15/1		-- Steering ratio of your steering rack, google it for your car
	Tune.LockToLock		= 2.6		-- Number of turns of the steering wheel lock to lock, google it for your car
	Tune.Ackerman		= .9		-- If you don't know what it is don't touch it, ranges from .7 to 1.2

	-- Old Options
	Tune.SteerInner		= 45		-- Inner wheel steering angle (in degrees)
	Tune.SteerOuter		= 38		-- Outer wheel steering angle (in degrees)
	
	--Four Wheel Steering (LuaInt)
	Tune.FWSteer			= 'Both'	-- Static, Speed, Both, or None
	Tune.RSteerOuter		= 0		-- Outer rear wheel steering angle (in degrees)
	Tune.RSteerInner		= 0		-- Inner rear wheel steering angle (in degrees)
	Tune.RSteerSpeed		= 60		-- Speed at which 4WS fully activates (Speed), deactivates (Static), or transition begins (Both) (SPS)
	Tune.RSteerDecay		= 440		-- Speed of gradient cutoff (in SPS)
	Tune.RSteerD			= 1000		-- Steering Dampening
	Tune.RSteerMaxTorque	= 50000		-- Steering Force
	Tune.RSteerP			= 100000	-- Steering Aggressiveness
	
	-- General Steering
	Tune.SteerSpeed		= .07		-- Steering increment per tick (in degrees)
	Tune.ReturnSpeed	= .1		-- Steering increment per tick (in degrees)
	Tune.SteerDecay		= 330		-- Speed of gradient cutoff (in SPS)
	Tune.MinSteer		= 10		-- Minimum steering at max steer decay (in percent)
	Tune.MSteerExp		= 1			-- Mouse steering exponential degree
	
	--Steer Gyro Tuning
	Tune.SteerD			= 1000		-- Steering Dampening
	Tune.SteerMaxTorque	= 50000		-- Steering Force
	Tune.SteerP			= 100000	-- Steering Aggressiveness
--function roamSelect()
--	if roaming == false then
--		roaming = true
--		Roam()
--	else
--		roaming = false
--	end
--end
--script.Parent.Roam.MouseButton1Click:connect(roamSelect)



function Jump()
	bd = Instance.new("BodyForce")
	bd.Parent = K9.Dog
	bd.force = Vector3.new(0,10500,0)
	wait(.1)
	bd:remove()
end

script.Parent.Jump.MouseButton1Click:connect(Jump)

function car()
	Stay()
	K9.Parent = game.Lighting
	adminchar[adminchar.Name.."'s Car"].lightbar.K9.Transparency=0
end

script.Parent.Hide.MouseButton1Click:connect(car)

function out()
	K9.Parent = game.Workspace
	K9:MoveTo((adminchar.Torso.CFrame * CFrame.new(0,0,5)).p, adminchar.Torso)
	adminchar[adminchar.Name.."'s Car"].lightbar.K9.Transparency=1
end

script.Parent.Unhide.MouseButton1Click:connect(out)