Skip to content

Harrison Basil - Consultant

Harrison Picture Harrison Picture Funny

I learn a lot from working at Systems


About Me

  • I am Computer Science major.
  • I longboard often.
  • You may see me around campus with an abnormally long board that looks like a giant skateboard.
  • I edit videos as a hobby and try to make fun stuff for my friends and I.
  • I am a Roblox developer in my free time.
  • I have contributed to a few games and only released 2-ish myself.
  • If you have never played Roblox or have never played the game "DOORS" go check it out.

Interests

  • I am a big fan of anything declarative, I'm spending time learning Nix(OS) and I love seeing everything turn green on Ansible.
  • I am a Vim (NeoVim) user, first out of necessity, then out of fun.
  • I sometimes forget the Vim motions.
  • Reading Manga and watching Anime (read The Promised Neverland)

Fun Facts

  • I am not the first in my family to work at Systems
  • I am a fan of the Drakengard/NieR series

Contact

creating a door in Roblox

local PlayerService = game:GetService("Players")
local PlayerConnections = {}

PlayerService.PlayerAdded:Connect(function(player: Player)
    if PlayerConnections[player] then
        return
    end

    PlayerConnections[player] = {}
    PlayerConnections[player]["DoorList"] = {}
    PlayerConnections[player]["Chatted"] = player.Chatted:Connect(function(message: string)
        local primaryPart = player.Character and player.Character.PrimaryPart
        if not primaryPart or not primaryPart.Parent then
            return
        end
        local lower = message:lower()
        if not lower:find("door") then
            return
        end

        local newDoor = Instance.new("Part")
        newDoor.Size = Vector3.new(10, 15, 3)
        newDoor.CFrame = primaryPart.CFrame * CFrame.new(0,newDoor.Size.Y/2,-5)
        newDoor.Anchored = true
        newDoor.Color = Color3.fromRGB(61, 27, 6)

        local clickDetect = Instance.new("ClickDetector")
        local debounce = false
        clickDetect.MouseClick:Connect(function(clickedPlayer: Player)
            if debounce then
                return
            end
            if clickedPlayer ~= player then
                return
            end

            debounce = true

            newDoor.CanCollide = false
            newDoor.Transparency = 0.75
            warn("PLAY DOORS")

            task.delay(1.5, function()
                newDoor.CanCollide = true
                newDoor.Transparency = 0
                debounce = false
            end)
        end)

        clickDetect.Parent = newDoor
        newDoor.Parent = workspace
        table.insert(PlayerConnections[player]["DoorList"], newDoor)
    end)

end)

PlayerService.PlayerRemoving:Connect(function(player: Player)
    if PlayerConnections[player] then
        for i, door in PlayerConnections[player]["DoorList"] do 
            if door and door.Parent then
                door:Destroy()
            end
        end
        table.clear(PlayerConnections[player]["DoorList"])

        PlayerConnections[player]["Chatted"]:Disconnect()

        table.clear(PlayerConnections[player])
        PlayerConnections[player] = nil
    end
end)