# data[].attributes.body
Damages the player when they touch it

# data[].attributes.attachment_link.readable_text
script.Parent.Touched:connect(function(hit)
  if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
    hit.Parent.Humanoid.Health -= 5 --Increase this number to damage the player more
  end
end) 

# data[].attributes.body
Gives whoever touches it extra speed for a time

# data[].attributes.attachment_link.readable_text


local speedBoost = script.Parent

local function steppedOn(part)  
  local parent = part.Parent   
  if game.Players:GetPlayerFromCharacter(parent)then 
    parent.Humanoid.WalkSpeed = 30 --Change this to determine how fast you can run
    wait(4) --Change this to determine how long you can run fast
    parent.Humanoid.WalkSpeed = 16 
  end 
end  

speedBoost.Touched:connect(steppedOn)

# data[].attributes.body
Gives the player super-jump for a time

# data[].attributes.attachment_link.readable_text
local jumpBoost = script.Parent
local function steppedOn(part) 
  local parent = part.Parent
  if game.Players:GetPlayerFromCharacter(parent) then
    parent.Humanoid.JumpPower = 150 --Change this to determine how high you can jump
    wait(2) --Change this to determine how long you can jump high
    parent.Humanoid.JumpPower = 50
  end 
end 

jumpBoost.Touched:connect(steppedOn)

# data[].attributes.body
Turns a part into a checkpoint

# data[].attributes.attachment_link.readable_text
-- i got no clue how this script works, just copy and paste it
local spawn = script.Parent 
spawn.Touched:connect(function(hit) 
  if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then 
    local player = game.Players:GetPlayerFromCharacter(hit.Parent) 
    local checkpointData = game.ServerStorage:FindFirstChild("CheckpointData")  
    if not checkpointData then 
      checkpointData = Instance.new("Model", game.ServerStorage) 
      checkpointData.Name = "CheckpointData" 
    end  
   
    local checkpoint = checkpointData:FindFirstChild(tostring(player.userId))  
    if not checkpoint then  
      checkpoint = Instance.new("ObjectValue", checkpointData)  
      checkpoint.Name = tostring(player.userId) 
  
      player.CharacterAdded:connect(function(character) 
        wait() 
        local newUser = tostring(player.userId)  
        local newData = game.ServerStorage.CheckpointData[newUser].Value.CFrame  
        local newCheckpoint = newData + Vector3.new(0, 4, 0) 
        character:WaitForChild("HumanoidRootPart").CFrame = newCheckpoint 
      end)
    end 
  
    checkpoint.Value = spawn 
  end
end)

# data[].attributes.body
Kills whoever touches it

# data[].attributes.attachment_link.readable_text
script.Parent.Touched:connect(function(hit)
  if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
    hit.Parent.Humanoid.Health = 0 --Increase this number to heal the player
  end
end) 

# data[].attributes.body
Makes a part move back and forth along an axis-- great for obbies!

# data[].attributes.attachment_link.readable_text

local axis = "x" -- Change to "x", "y", or "z" to determine direction it moves (y is vertical)
local distance = 50 -- Change how far the platform will move
local speed = 1 -- Change how fast the platform moves

local factor = 0 5 
local initialPosition = script.Parent.CFrame.Position
local moveDirection = Vector3.new(
  axis == "x" and distance or 0,
  axis == "y" and distance or 0,
  axis == "z" and distance or 0 
)
local destinationPosition = initialPosition + moveDirection
local RunService = game:GetService("RunService")
function movePlatform (time, step)
  factor = 0.5 * math.sin(time * speed) + 0.5
  local finalPosition = initialPosition:Lerp(destinationPosition, factor)
  script.Parent.CFrame = CFrame.new(finalPosition) 
end
RunService.Stepped:Connect(movePlatform)

# data[].attributes.body
Same Domino script we've made without the button. If you want the button, you can copy that from one of our other projects

# data[].attributes.attachment_link.readable_text
function generateDomino(position)
local domino = Instance.new("Part")
domino.Position=position
domino.Orientation = Vector3.new(0,0,90)
domino.Name = "domino"
domino.BrickColor = BrickColor.new("Really red")
domino.Parent = game.Workspace
end


for i =0, 20, 1 do
    generateDomino(Vector3.new(i,0,0))
    wait(.5)
end

# data[].attributes.headline
Remember you can rehash the Color Game as your capstone project too!

# data[].attributes.subject
Remember you can rehash the Color Game as your capstone project too!

# data[].attributes.body
Makes it so when you touch an object, it will remove another part. To do this add an object as your door (name it door), and add an object that acts as your secret switch with the script attached

# data[].attributes.attachment_link.readable_text
local function secretSwitchPressed(part)
    local parent = part.Parent
    if game.Players:GetPlayerFromCharacter(parent) then
        script.Parent.Parent.Parent.door:Destroy()
    end
end

script.Parent.Touched:Connect(secretSwitchPressed)

# data[].attributes.body
Add this script to the platform

# data[].attributes.attachment_link.readable_text
local axisMoves='x' --axis moves, either 'x', 'y' (vertical), or 'z'
local timeTakes=5 --reduce to make faster
local distance=10 --max distance moves


local part = script.Parent
local tweenService = game:GetService("TweenService")
local tweenInfo = TweenInfo.new(
	timeTakes, --Duration in seconds
	Enum.EasingStyle.Linear, --EasingStyle
	Enum.EasingDirection.Out, -- EasingDirection
	-1, -- RepeatCount (when less than zero the tween will loop indefinitely)
	true, -- Reverses (tween will reverse once reaching it's goal)
	0 -- DelayTime in seconds
)
local tweenGoal = {}
if axisMoves=='x' then
	tweenGoal = {Position = part.Position + Vector3.new(distance,0,0)}
elseif axisMoves=='y' then
	tweenGoal = {Position = part.Position + Vector3.new(0,distance,0)}
else
	tweenGoal = {Position = part.Position + Vector3.new(0,0,distance)}
end

local tween = tweenService:Create(part,tweenInfo,tweenGoal)
tween:Play()