Roblox/luau_corpus huggingface dataset:
--Made by Luckymaxer

Tool = script.Parent
Handle = Tool:WaitForChild("Handle")

Players = game:GetService("Players")
RunService = game:GetService("RunService")
UserInputService = game:GetService("UserInputService")

Animations = {}

ServerControl = Tool:WaitForChild("ServerControl")
ClientControl = Tool:WaitForChild("ClientControl")

Rate = (1 / 60)

ToolEquipped = false

function SetAnimation(mode, value)
	if mode == "PlayAnimation" and value and ToolEquipped and Humanoid then
		for i, v in pairs(Animations) do
			if v.Animation == value.Animation then
				v.AnimationTrack:Stop()
				table.remove(Animations, i)
			end
		end
		local AnimationTrack = Humanoid:LoadAnimation(value.Animation)
		table.insert(Animations, {Animation = value.Animation, AnimationTrack = AnimationTrack})
		AnimationTrack:Play(value.FadeTime, value.Weight, value.Speed)
	elseif mode == "StopAnimation" and value then
		for i, v in pairs(Animations) do
			if v.Animation == value.Animation then
				v.AnimationTrack:Stop(value.FadeTime)
				table.remove(Animations, i)
			end
		end
	end
end

function CheckIfAlive()
	return (((Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0 and Player and Player.Parent) and true) or false)
end

function Equipped(Mouse)
	Character = Tool.Parent
	Player = Players:GetPlayerFromCharacter(Character)
	Humanoid = Character:FindFirstChild("Humanoid")
	ToolEquipped = true
	if not CheckIfAlive() then
		return
	end
	PlayerMouse = Player:GetMouse()
end

function Unequipped()
	for i, v in pairs(Animations) do
		if v and v.AnimationTrack then
			v.AnimationTrack:Stop()
		end
	end
	Animations = {}
	ToolEquipped = false
end

function InvokeServer(mode, value)
	local ServerReturn
	pcall(function()
		ServerReturn = ServerControl:InvokeServer(mode, value)
	end)
	return ServerReturn
end

function OnClientInvoke(mode, value)
	if mode == "PlayAnimation" and value and ToolEquipped and Humanoid then
		SetAnimation("PlayAnimation", value)
	elseif mode == "StopAnimation" and value then
		SetAnimation("StopAnimation", value)
	elseif mode == "PlaySound" and value then
		value:Play()
	elseif mode == "StopSound" and value then
		value:Stop()
	elseif mode == "MousePosition" then
		return ((PlayerMouse and {Position = PlayerMouse.Hit.p, Target = PlayerMouse.Target}) or nil)
	end
end

ClientControl.OnClientInvoke = OnClientInvoke
Tool.Equipped:connect(Equipped)
Tool.Unequipped:connect(Unequipped)
--[[
	
	local keyboard = require(this)
	
	METHODS:
		
		(IsDown)
		
		Boolean isDown:  keyboard:IsDown(KeyCode key)
		
	
	EVENTS:
	
		(KeyDown, KeyUp)
		
		keyboard.KeyDown(KeyCode key)
		keyboard.KeyUp(KeyCode key)
	
--]]


assert(game:GetService("RunService"):IsClient(), "Keyboard can only be used from client")


local Keyboard = {}

local userInput = game:GetService("UserInputService")

local isDown = {}

local keyboardInput = Enum.UserInputType.Keyboard

local onKeyDown  = Instance.new("BindableEvent")
local onKeyUp    = Instance.new("BindableEvent")

Keyboard.KeyDown  = onKeyDown.Event
Keyboard.KeyUp    = onKeyUp.Event


function Keyboard:IsDown(keyCode)
	return (isDown[keyCode] == true)
end


local function InputBegan(input, processed)
	if (processed) then return end
	if (input.UserInputType == keyboardInput) then
		local key = input.KeyCode
		isDown[key] = true
		onKeyDown:Fire(key)
	end
end

local function InputEnded(input, processed)
	if (processed) then return end
	if (input.UserInputType == keyboardInput) then
		local key = input.KeyCode
		isDown[key] = false
		onKeyUp:Fire(key)
	end
end


userInput.InputBegan:Connect(InputBegan)
userInput.InputEnded:Connect(InputEnded)


return Keyboard
--Tune
OverheatSpeed = .05 --How fast the car will overheat
CoolingEfficiency = .01 --How fast the car will cool down
RunningTemp = 50 --In degrees

Fan = true --Cooling fan
FanTemp = 90 --At what temperature the cooling fan will activate
FanTempAlpha = 80 --At what temperature the cooling fan will deactivate
FanSpeed = .02 --How fast the car will cool down
FanVolume = .5 --Sound volume

BlowupTemp = 130 --At what temperature the engine will blow up

GUI = true --GUI temperature gauge
--		print(animName .. " " .. idx .. " [" .. origRoll .. "]")
		local anim = animTable[animName][idx].anim

		-- load it to the humanoid; get AnimationTrack
		currentAnimTrack = Zombie:LoadAnimation(anim)
		 
		-- play the animation
		currentAnimTrack:Play(transitionTime)
		currentAnim = animName

		-- set up keyframe name triggers
		if (currentAnimKeyframeHandler ~= nil) then
			currentAnimKeyframeHandler:disconnect()
		end
		currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
	end
end
--Offset For Each New Ray For The Bullet's Trajectory
local offset			= (parts.Parent.Gun.Muzzle.CFrame*CFrame.new(math.random(-5,5)/5,100,math.random(-5,5)/5).p
							- parts.Parent.Gun.Muzzle.Position).unit
							*script.Parent.Stats.GunVelocity.Value
local point1			= parts.Parent.Gun.Muzzle.Position
--[[
	Useful for hovering over ui elements
--]]

local UserInputService = game:GetService("UserInputService")
local GuiService = game:GetService("GuiService")

local Hover = {}
Hover.__index = Hover

	-- pass the element, and two functions (1=enter, 2=leave)
	function Hover.Connect(element,enter,leave, call_leave_on_selection_lost)
		local self = {}
		setmetatable(self,Hover)
		self.Connections = {}
		self.Active = false;
		if element and (enter or leave) then -- support both, or just one function (maybe we just want a sound to play on leave, etc)
			if call_leave_on_selection_lost then
				table.insert(self.Connections,
					element.SelectionGained:Connect(function()
						self.Active = true
						if enter then enter() end
					end)
				)
				table.insert(self.Connections,
					element.SelectionLost:Connect(function()
						self.Active = true
						if leave then leave() end
					end)
				)
			end
			table.insert(self.Connections,
				element.InputBegan:Connect(function(input)
					if input.UserInputType == Enum.UserInputType.MouseMovement then
						self.Active = true
						if enter then enter() end
					end
				end)
			)
			table.insert(self.Connections, 
				element.InputEnded:Connect(function(input)
					if input.UserInputType == Enum.UserInputType.MouseMovement then
						self.Active = false
						if leave then leave() end
					end
				end)
			)
		end
				
		return self
	end
		
	-- disconnects the events.
	function Hover:Disconnect()
		if self and self.Connections then
			for i=1,#self.Connections do
				local connection = self.Connections[i]
				if connection then connection:Disconnect() end
			end
		end
		self = nil
	end
	
	

return Hover
--여기까지

local ser = game:GetService("Debris")
local skill = game.ReplicatedStorage.Skill:FindFirstChild(skillName) --스킬 찾기
local Cooldown = true
local DamageCool = false

script.Parent.SkillEvent.OnServerEvent:Connect(function(plr, X, Y, Z) --플레이어가 스킬을 클릭하면
	if Cooldown == true then
		Cooldown = false

		local clone = skill:Clone() --스킬 복사
		clone.Parent = game.Workspace.SkillPart --스킬 적용
		clone.Position = Vector3.new(X, (Y + 0.01), Z) --스킬 위치를 플레이어가 터치한 자리에
		
		local clone2 = game.ReplicatedStorage.Skill.Part1:Clone()
		clone2.Transparency = 1
		clone2.Parent = game.Workspace.SkillPart
		clone2.Position = Vector3.new(X, Y, Z)
		
		clone.Touched:Connect(function(hit) --다른 플레이어가 스킬에 닿이면
			local human = hit.Parent:FindFirstChild("Humanoid") --휴머노이드 찾기
			local human2 = hit.Parent.Parent:FindFirstChild("Humanoid") --휴머노이드 찾기

			if human ~= nil and hit.Parent then
				if hit.Parent.Name == script.Parent.Parent.Name and DamageCool == false then return	end

				if human and DamageCool == false then --해당 조건이 맞으면

					DamageCool = true
					human:TakeDamage(Damage) --데미지 입히기
					wait(DamageCoolTime) --스킬 데미지 쿨타임 기다리기
					DamageCool = false

				elseif human2 and DamageCool == false then

					DamageCool = true
					human2:TakeDamage(Damage) --데미지 입히기
					wait(DamageCoolTime) --스킬 데미지 쿨타임 기다리기
					DamageCool = false
				end
			end 
		end) --끝
		
		script.Parent.Handle:FindFirstChild(Sound):Play() --오디오 틀기
		script.Parent.SkillEvent:FireClient(plr)

		while clone2.Transparency >= 0 do --서서히 나타나는
			clone2.Transparency = clone2.Transparency - 0.1
			wait()
		end
		
		wait(2)
		
		while clone2.Transparency <= 1 do --서서히 사라지는
			clone2.Transparency = clone2.Transparency + 0.1
			wait()
		end

		ser:AddItem(clone2, 3)
		
		while clone.Transparency <= 1 do --서서히 사라지는
			clone.Transparency = clone.Transparency + 0.1
			wait()
		end
		
		ser:AddItem(clone, Delete) --초뒤 스킬 삭제

		wait(CoolTime) --스킬 쿨타임 기다리기
		Cooldown = true
	end
end) --끝
--!GENERATED
local Rain = require(script.Rain)

Rain:SetColor(Color3.fromRGB(script.Color.Value.x, script.Color.Value.y, script.Color.Value.z))
Rain:SetDirection(script.Direction.Value)

Rain:SetTransparency(script.Transparency.Value)
Rain:SetSpeedRatio(script.SpeedRatio.Value)
Rain:SetIntensityRatio(script.IntensityRatio.Value)
Rain:SetLightInfluence(script.LightInfluence.Value)
Rain:SetLightEmission(script.LightEmission.Value)

Rain:SetVolume(script.Volume.Value)

Rain:SetSoundId(script.SoundId.Value)
Rain:SetStraightTexture(script.StraightTexture.Value)
Rain:SetTopDownTexture(script.TopDownTexture.Value)
Rain:SetSplashTexture(script.SplashTexture.Value)

local threshold = script.TransparencyThreshold.Value
if script.TransparencyConstraint.Value and script.CanCollideConstraint.Value then
	Rain:SetCollisionMode(
		Rain.CollisionMode.Function,
		function(p)
			return p.Transparency <= threshold and p.CanCollide
		end
	)
elseif script.TransparencyConstraint.Value then
	Rain:SetCollisionMode(
		Rain.CollisionMode.Function,
		function(p)
			return p.Transparency <= threshold
		end
	)
elseif script.CanCollideConstraint.Value then
	Rain:SetCollisionMode(
		Rain.CollisionMode.Function,
		function(p)
			return p.CanCollide
		end
	)
end
--[=[
	@interface ComponentConfig
	@within Component
	.Tag string -- CollectionService tag to use
	.Ancestors {Instance}? -- Optional array of ancestors in which components will be started
	.Extensions {Extension}? -- Optional array of extension objects

	Component configuration passed to `Component.new`.

	- If no Ancestors option is included, it defaults to `{workspace, game.Players}`.
	- If no Extensions option is included, it defaults to a blank table `{}`.
]=]
type ComponentConfig = {
	Tag: string,
	Ancestors: AncestorList?,
	Extensions: { Extension }?,
}
-- TUNE
SpeedType = "MPH"	-- MPH or KPH



























local Smoothness = 0.8
local TurboSmoothness = 0.9
local autoscaling	= true					--Estimates top speed
local UNITS	= {								--Click on speed to change units
											--First unit is default	
	{
		units			= "MPH"				,
		scaling			= (10/12) * (60/88)	, -- 1 stud : 10 inches | ft/s to MPH
		maxSpeed		= 230				,
		spInc			= 20				, -- Increment between labelled notches
	},
	
	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 370				,
		spInc			= 40				, -- Increment between labelled notches
	},
	
	{
		units			= "SPS"				,
		scaling			= 1					, -- Roblox standard
		maxSpeed		= 400				,
		spInc			= 40				, -- Increment between labelled notches
	}
}
-- setup emote chat hook
script.msg.Changed:connect(function(msg)
	script.msg.Value = ""
	local emote = ""
	if (string.sub(msg, 1, 3) == "/e ") then
		emote = string.sub(msg, 4)
	elseif (string.sub(msg, 1, 7) == "/emote ") then
		emote = string.sub(msg, 8)
	end
	
	if (pose == "Standing" and emoteNames[emote] ~= nil) then
		playAnimation(emote, 0.1, Enemy)
	end
--------------------------------------------------- Mobile Button

local function handleContext(name, state, input)
	if state == Enum.UserInputState.Begin then
		Humanoid.WalkSpeed = CrouchSpeed
		CAnim:Play()
	else
		Humanoid.WalkSpeed = NormalWalkSpeed
		CAnim:Stop()
	end
end

cas:BindAction("Crouch", handleContext, true, Leftc, RightC)
cas:SetPosition("Crouch", UDim2.new(.2, 0, .5, 0))
cas:SetTitle("Crouch", "Crouch")
cas:GetButton("Crouch").Size = UDim2.new(.3, 0, .3, 0)
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------


function onRunning(speed)
	if speed>0.01 then
		playAnimation("walk", 0.1, Humanoid)
		if currentAnimInstance and currentAnimInstance.AnimationId == "http://www.roblox.com/asset/?id=180426354" then
			setAnimationSpeed(speed / 14.5)
		end
		pose = "Running"
	else
		playAnimation("idle", 0.1, Humanoid)
		pose = "Standing"
	end
end

function onDied()
	pose = "Dead"
end

function onJumping()
	playAnimation("jump", 0.1, Humanoid)
	jumpAnimTime = jumpAnimDuration
	pose = "Jumping"
end

function onClimbing(speed)
	playAnimation("climb", 0.1, Humanoid)
	setAnimationSpeed(speed / 12.0)
	pose = "Climbing"
end

function onGettingUp()
	pose = "GettingUp"
end

function onFreeFall()
	if (jumpAnimTime <= 0) then
		playAnimation("fall", fallTransitionTime, Humanoid)
	end
	pose = "FreeFall"
end

function onFallingDown()
	pose = "FallingDown"
end

function onSeated()
	pose = "Seated"
end

function onPlatformStanding()
	pose = "PlatformStanding"
end

function onSwimming(speed)
	if speed>0 then
		pose = "Running"
	else
		pose = "Standing"
	end
end

function getTool()	
	for _, kid in ipairs(Figure:GetChildren()) do
		if kid.className == "Tool" then return kid end
	end
	return nil
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

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

	if (toolAnim == "Slash") then
		playToolAnimation("toolslash", 0, Humanoid)
		return
	end

	if (toolAnim == "Lunge") then
		playToolAnimation("toollunge", 0, Humanoid)
		return
	end
end

function moveSit()
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder:SetDesiredAngle(3.14 /2)
	LeftShoulder:SetDesiredAngle(-3.14 /2)
	RightHip:SetDesiredAngle(3.14 /2)
	LeftHip:SetDesiredAngle(-3.14 /2)
end

local lastTick = 0

function move(time)
	local amplitude = 1
	local frequency = 1
  	local deltaTime = time - lastTick
  	lastTick = time

	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.1, Humanoid)
	elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then
-------- OMG HAX

r = game:service("RunService")


local damage = 0


local slash_damage = 3
local lunge_damage = 5

sword = script.Parent.Center
Tool = script.Parent


local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
SlashSound.Parent = sword
SlashSound.Volume = .7

local LungeSound = Instance.new("Sound")
LungeSound.SoundId = "rbxasset://sounds\\swordlunge.wav"
LungeSound.Parent = sword
LungeSound.Volume = .6

local UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "rbxasset://sounds\\unsheath.wav"
UnsheathSound.Parent = sword
UnsheathSound.Volume = 1



function blow(hit)
	local humanoid = hit.Parent:findFirstChild("Humanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
		print("SWORD HIT")
		tagHumanoid(humanoid, vPlayer)
		humanoid:TakeDamage(damage)
		wait(1)
		untagHumanoid(humanoid)
	end
end


function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end


function attack()
	damage = slash_damage
	SlashSound:play()
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end

function lunge()
	damage = lunge_damage

	LungeSound:play()

	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Lunge"
	anim.Parent = Tool
	
	
	force = Instance.new("BodyVelocity")
	force.velocity = Vector3.new(0,10,0) --Tool.Parent.Torso.CFrame.lookVector * 80
	force.Parent = Tool.Parent.Torso
	wait(.25)
	swordOut()
	wait(.25)
	force.Parent = nil
	wait(.5)
	swordUp()

	damage = slash_damage
end

function swordUp()
	Tool.GripForward = Vector3.new(0,-1,0)
	Tool.GripRight = Vector3.new(-1,0,0)
	Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(-1,0,0)
	Tool.GripUp = Vector3.new(0,1,0)
end

function swordAcross()
	-- parry
end


Tool.Enabled = true
local last_attack = 0
function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return 
	end

	t = r.Stepped:wait()

	if (t - last_attack < 0) then
		lunge()
	else
		attack()
	end

	last_attack = t

	wait(.75)

	Tool.Enabled = true
end


function onEquipped()
	UnsheathSound:play()
end


script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)


connection = sword.Touched:connect(blow)
--[=[
	Observes an instance's ancestry

	@param instance Instance
	@return Observable<Instance>
]=]
function RxInstanceUtils.observeAncestry(instance)
	local startWithParent = Rx.start(function()
		return instance, instance.Parent
	end)

	return startWithParent(Rx.fromSignal(instance.AncestryChanged))
end
--Feel free to poke around and see how this works.  It's not very complex

local car = script.Parent.Car.Value
local Values = script.Parent:WaitForChild("Values") --This bit of code is still in 90% of A-Chassis plugins lol
local _Tune = require(car["A-Chassis Tune"])
local Handler = car:WaitForChild("ExhaustHandler")
local IsFlaming = false --Exhaust flame debounce.  Debounces are important so code block doesn't run too quickly

Values.Throttle.Changed:Connect(function() -- This is where all the magic happens.  Flames are determined by when you release the throttle
	
	local RPMRatio = Values.RPM.Value / _Tune.Redline
	
	print(RPMRatio)
	
	if RPMRatio > 0.8 and not IsFlaming and car.DriveSeat.Throttle < 1 then
		
		IsFlaming = true
		Handler:FireServer("Flames",true)
		wait(0.1)
		Handler:FireServer("Flames",false)
		Handler:FireServer("FlamesSmall",true)
		wait(1)
		Handler:FireServer("FlamesSmall",false)
		IsFlaming = false
	elseif Values.Throttle.Value < 0.5 then
		
		Handler:FireServer("FlamesSmall",false)
		
		
	end
	
end)
--	dButton:TweenPosition(DpositionNormal, "InOut", "Sine", 0.1)
end)
--updated 10/09/2022

npc= nil
hum= nil
health_gui= script.Parent
health_text= script.Parent:WaitForChild("TextLabel")


if (health_gui.Parent~= nil and health_gui.Parent.ClassName== "Model" and health_gui.Parent:FindFirstChildOfClass("Humanoid")) then
	npc= health_gui.Parent
	hum= health_gui.Parent:FindFirstChildOfClass("Humanoid")
	
elseif (health_gui.Parent.Parent~= nil and health_gui.Parent.Parent.ClassName== "Model" and health_gui.Parent.Parent:FindFirstChildOfClass("Humanoid")) then
	npc= health_gui.Parent.Parent
	hum= health_gui.Parent.Parent:FindFirstChildOfClass("Humanoid")
	
elseif (health_gui.Parent.Parent.Parent~= nil and health_gui.Parent.Parent.Parent.ClassName== "Model" and health_gui.Parent.Parent.Parent:FindFirstChildOfClass("Humanoid")) then
	npc= health_gui.Parent.Parent.Parent
	hum= health_gui.Parent.Parent.Parent:FindFirstChildOfClass("Humanoid")
end


if not npc then
	health_gui:Remove()
end

if not hum then
	health_text.Text= "humanoid not found"
	health_text.TextColor3= Color3.fromRGB(255, 255, 127)
end

hum.DisplayDistanceType= Enum.HumanoidDisplayDistanceType.None
hum.HealthDisplayType= Enum.HumanoidHealthDisplayType.AlwaysOff


game["Run Service"].Heartbeat:Connect(function()
	
	--for text health
	health_text.Text= npc.Name.. " | ".. hum.Health.. " / ".. hum.MaxHealth
	
	--for color
	local GoodColor= Color3.fromRGB(85, 255, 127)
	local MediumColor= Color3.fromRGB(255, 255, 127)
	local BadColor= Color3.fromRGB(255, 140, 142)

	if hum.Health >= hum.MaxHealth * 0.6 then
		health_text.TextColor3= GoodColor
	end
	
	if hum.Health <= hum.MaxHealth * 0.6 then
		health_text.TextColor3= MediumColor
	end
	
	if hum.Health <= hum.MaxHealth * 0.25 then
		health_text.TextColor3= BadColor
	end
	
end)
--cyan 4
if k == "c" and ibo.Value==true then
	bin.Blade.BrickColor = BrickColor.new("Cyan")
	bin.Blade2.BrickColor = BrickColor.new("Institutional white")
	bin.Blade.White.Enabled=false colorbin.white.Value = false
	bin.Blade.Blue.Enabled=false colorbin.blue.Value = false
	bin.Blade.Green.Enabled=false colorbin.green.Value = false
	bin.Blade.Magenta.Enabled=false colorbin.magenta.Value = false
	bin.Blade.Orange.Enabled=false colorbin.orange.Value = false
	bin.Blade.Viridian.Enabled=false colorbin.viridian.Value = false
	bin.Blade.Violet.Enabled=false colorbin.violet.Value = false
	bin.Blade.Red.Enabled=false colorbin.red.Value = false
	bin.Blade.Silver.Enabled=false colorbin.silver.Value = false
	bin.Blade.Black.Enabled=false colorbin.black.Value = false
	bin.Blade.NavyBlue.Enabled=false colorbin.navyblue.Value = false
	bin.Blade.Yellow.Enabled=false colorbin.yellow.Value = false
	bin.Blade.Cyan.Enabled=true colorbin.cyan.Value = true
    end
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 175		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6200		--		Use sliders to manipulate values
	Tune.Redline		= 7600		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 1		-- Clutch engagement threshold (higher = faster response)
-- Hide command bar when Enter key is pressed
input.FocusLost:Connect(function(enterPressed)
	if enterPressed then
		toggleCommandBar()
	end
end)
--[[Transmission]]
	Tune.TransModes		= {"Auto","Manual"}												--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch
		
		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}								
		>First mode is default mode													]]
	
	--Automatic Settings
	Tune.AutoShiftMode	= "RPM"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]	
	Tune.AutoUpThresh	= 480		-- Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 50		-- Automatic downshift point (relative to peak RPM, positive = Under-rev)
	
	--Gear Ratios
	
	--Gear Ratios
	Tune.FinalDrive		= 3.65			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	3.45			,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		4.40			,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.75			,
		--[[ 3 ]]		1.85			,
		--[[ 4 ]]		1.40			,
		--[[ 5 ]]		1.00 ,
		--[[ 6 ]]		0.75	,
	}
	Tune.FDMult			= 1.1			-- Ratio multiplier (keep this at 1 if car is not struggling with torque)