최근 수정 시각 : 2024-04-21 11:11:28

Roblox Studio/스크립트


파일:상위 문서 아이콘.svg   상위 문서: Roblox Studio
파일:Roblox 로고.svg 파일:Roblox 로고 화이트.svg
게임 목록 | 이벤트 | 2차 창작 | 유료 서비스
Roblox Corporation
평가 (긍정적) | 문제점 및 비판 | 논란 및 사건 사고 | Roblox Studio 스크립트

1. 개요2. 스크립트
2.1. 스크립트 종류
2.1.1. 로컬 스크립트2.1.2. 서버 스크립트2.1.3. 모듈 스크립트
2.2. 반복문과 조건문 관련2.3. 자료형
2.3.1. BrickColor2.3.2. CFrame
2.3.2.1. 속성2.3.2.2. 메서드
2.3.3. Vector32.3.4. UDim2
2.3.4.1. 메서드2.3.4.2. 속성
2.3.5. TweenInfo
2.3.5.1. 속성
2.4. 라이브러리
2.4.1. bit322.4.2. buffer2.4.3. coroutine2.4.4. debug2.4.5. math
2.4.5.1. 함수2.4.5.2. 속성
2.4.6. os2.4.7. string
2.4.7.1. 함수
2.4.8. table
2.4.8.1. 함수2.4.8.2. 속성
2.4.9. task
2.4.9.1. 함수
2.4.10. utf8
2.5. 글로벌
2.5.1. 함수2.5.2. 속성
2.6. 이벤트
2.6.1. BasePart 관련2.6.2. Players 관련2.6.3. ProximityPrompt 관련2.6.4. Gui 관련2.6.5. RemoteEvent2.6.6. ClickDetector2.6.7. Instance2.6.8. 서비스들 관련
2.6.8.1. RunService 서비스2.6.8.2. UserInputService 서비스
2.7. 메서드
2.7.1. Instance(개체)2.7.2. Humanoid 개체2.7.3. Players2.7.4. BindableEvent2.7.5. BindableFunction2.7.6. RemoteEvent2.7.7. RemoteFunction2.7.8. Seat2.7.9. DataModel(game)2.7.10. PVInstance2.7.11. 서비스
2.7.11.1. Debris 서비스2.7.11.2. MarketplaceService 서비스2.7.11.3. TweenService 서비스2.7.11.4. BadgeService 서비스2.7.11.5. workspace 서비스
2.8. 클래스 목록

1. 개요

로블록스 스튜디오의 스크립트에 대해 설명하는 문서다.

2. 스크립트

2.1. 스크립트 종류

로블록스에는 총 3개의 스크립트 종류들이 있다.

2.1.1. 로컬 스크립트

파일:Roblox/로컬스크립트.png
로컬 스크립트 [Local Script]

서버가 아닌 로컬[1]에서 구동 되는 스크립트다.[2] 로컬 스크립트에서 변동 된 항목들을 개인에게만 적용 되며, 모든 물리 연산은 개인 컴퓨터에서 계산 된다. [3]
로컬 스크립트는 당연히도 클라이언트 측에서 작동되는 스크립트 이므로 클라이언트와 관련된 개체 밑에서만 작동을 한다. [4]

또한 로컬스크립트에서만 작동되는 서비스나 이벤트들이 있는데, 플레이어의 입력을 감지하는 UserInputService 와 함수가 프레임 마다 실행될수 있게 하는 RenderStepped 이벤트, 등이 있다.

2.1.2. 서버 스크립트

파일:Roblox/서버스크립트.png
서버 스크립트 [Server Script]

거의 스크립트들의 기본값이라 봐도 무방. 서버에서 연동 되는 스크립트다. 로컬이 아닌 서버에서 모든 연산 및 물리 계산을 하기 때문에 개인 컴퓨터의 사양에 영향을 안받는다. 서버 스크립트에서 변동 된 항목들을 모든 플레이어에게 적용이 된다. 서버 스크립트는 로컬 스크립트와는 다르게 모든곳에서 작동 된다.[5]

2.1.3. 모듈 스크립트

파일:Roblox/모듈스크립트.png
모듈 스크립트 [Module Script]

반복적인 코드들을 정리하고 재사용 할수 있게 하는 특별한 류의 스크립트이다.
모듈 스크립트는 기본적으로 테이블 형태로 되어있어 자동적으로 실행되지 않는다.
또한 서버와 로컬 공용으로 쓰이며 호환되지는 않는다.
모듈 스크립트 자체가 정적이라 특별한 이유없이는 잘 쓰이지 않았지만, 메타테이블 이라는 테이블을 클래스화 시켜주는 방법이 등장함으로써 모듈 스크립트도 동적으로 사용이 가능해졌고 사용률도 훨씬 올랐다.

다음은 모듈 스크립트의 기본 사용예제이다.

[ 모듈 스크립트 사용 예시 ]
#!syntax lua
--모듈 스크립트
local module = {}

module.a = 1

function module.b()
    print("b")
end

function module:c()
    print("c")
end

return module -- 모듈 스크립트는 값을 반환해야함.

--서버 or 로컬 스크립트

local module = require(모듈_경로) -- 모듈 볼러오기

print(module.a) -- 1 출력
module.b() -- b 출력
module:c() -- c 출력

2.2. 반복문과 조건문 관련

  • while 조건 do ~ end : 조건이 계속 충족되는 한 계속 실행한다. 조건에 true를 넣을시 이를 실행하는 스크립트가 삭제되거나 오류가 나서 정지할때 까지 계속 반복한다. 단 이러한 무한 반복문에 지연시키는 코드, task.wait()과 같은 걸 넣지 않으면 게임 또는 스튜디오를 크래쉬 시키니 꼭 task.wait() 등을 넣어두자. 또, 조건에 task.wait(숫자)를 넣으면 while true do task.wait(숫자) ~~ end 와 같은 기능을 한다.
  • for index = val1, val2, val3 do ~~ end : 조금 복잡하다. 간단히 요약하면, i가 처음 시작하는 수가 val1이고, 한번 반복하면 i가 val3씩 늘어난다. for 반복문은 i가 val2보다 큰지 계속 검사하여, 만약 i가 val2보다 크면 반복문을 빠져나간다.
    • for index, value in ipairs(배열) do (함수) end : for i = val의 상위버전, 배열의 index 번째 개체를 자동으로 변수 value로 치환해주는거다. 이거를 이용하여 모델에 스크립트 하나만 넣어 모델의 어느 파트에만 닿아도 죽게 만들 수 있다. {{{#!folding [ 스크립트 예시 펼치기 · 접기 ]
  • 아무 파트나 닿으면 죽는 모델 스크립트
#!syntax lua
local Cooldown = false --쿨다운 변수 만드는 부분
local Model = script.Parent:GetDescendants() -- 모델 지정후 모델의 모든 개체 지정
local parts = {} -- 빈 배열 생성(파트들을 담기위한 배열)

for a=1, #Model do
    if Model[a]:IsA("BasePart") then
        table.insert(Model[a], parts)
    end
end

for i, v in ipairs(parts) do
    v.Touched:Connect(function(part)
        if part.Parent:FindFirstChild("Humanoid") and Cooldown == false then
            Cooldown = true
            local humanoid = part.Parent:FindFirstChild("Humanoid")
            humanoid.Health = 0
            task.wait(1)
            Cooldown = false
        end
    end
end

}}}
  • repeat (함수) until (조건) : 조건일 때 까지 계속 반복한다. 조건에 false를 넣으면 while true do end와 같은 효과를 낸다. 마찬가지로 지연시키는 코드를 넣지 않으면 크래쉬 난다. while문과 차이점은, while은 밑의 코드를 실행 전에 조건을 검사한다면, repeat는 코드를 실행후 조건을 검사한다.
  • if (조건) then (함수) end : 만약 조건이 충족되면 안에 있는걸 실행한다.

    • - (숫자) = (숫자) 로 조건을 쓰면 오류 난다.[6] 같은지 비교할 땐 (숫자) == (숫자) 를 쓰도록 하자.
  • else : if 조건문에서 여사건에 해당한다.
  • elseif 조건 then : 만약 위에 있는 조건문이 맞지 않다면 이 조건문을 실행시킨다.

2.3. 자료형

로블록스에는 수많은 자료형들이 있지만 그 많은 자료형중 몇몇만 자주 사용된다.
  • Axes : 개체의 아크핸들(스튜디오에서 BasePart를 클릭했을때 나오는 회전축)의 회전축을 제어한다.
  • BrickColor : 로블록스에서 기본으로주는 색깔들
  • boolean : 참/거짓
  • CatalogSearchParams
  • CFrame : Vector3 처럼 위치를 나타내는 스크립트지만 CFrame은 개체의 피벗을 기준으로 한다.
  • Color3 : RGB
  • ColorSequence
  • ColorSequenceKeypoint
  • Content
  • DateTime
  • DockWidgetPluginGuiInfo
  • Enum : 거의 모든 자료형의 담고있는 자료
  • EnumItem
  • Enums : Enum과 같음
  • Faces
  • FloatCurveKey
  • Font : 글꼴
  • Instance : 개체 [7]
  • nil : 아무것도 없는 값 [8]
  • number : 숫자
  • NumberRange
  • NumberSequence
  • NumberSequenceKeypoint
  • OverlapParams
  • PathWaypoint
  • PhysicalProperties
  • Random : 무작위 난수나 방향
  • Ray : 한 방향으로는 유한하지만 다른 방향으로는 무한한 반직선 백터
  • RaycastParams
  • RaycastResult
  • RBXScriptConnection
  • RBXScriptSignal : 주로 Event로 알려져있고, 리스너[9]에게 함수를 호출하라고 한다.
  • Rect
  • Region3 : 직육면체 지역 공간의 볼륨
  • Region3int16
  • SharedTable
  • TweenInfo : TweenService를 이용한 동작을 지정한 개체
  • UDim
  • UDim2 : 2차원 위치 단위 [10]
  • Vector2
  • Vector2int16
  • Vector3 : 3차원 위치 단위 [11]
  • Vector3int16 : Vector3와 유사하나 이건 각각의 좌표들을 16진법으로 나타낸다.

2.3.1. BrickColor

로블록스에서 기본으로 제공하는 색깔은 다음과 같다.
[ 펼치기 · 접기 ]
* White 흰색
  • Grey 회색
  • Light yellow : 연노랑
  • Brick yellow : 브릭 옐로우
  • Light green(Mint) : 연초록(민트)
  • Light reddish violet : 연붉은 보라색
  • Pastel bule : 파스텔 블루
  • Light orange brown : 밝은 브라운 오랜지
  • Nougat : 누가(견과류)
  • Bright red : 밝은 빨강
  • Med. reddish violet : 중간정도로 붉은 보라색
  • Bright bule : 밝은 파랑
  • Bright yellow : 밝은 노랑
  • Earth orange : 지구 오랜지
  • Black : 검정
  • Dark grey : 짙은 회색
  • Dark green : 짙은 초록
  • Medium green : 중간 초록
  • Lig. Yellowich orange : 밝은 노랏빛 오랜지
  • Brignt green : 밝은 초록
  • Dark orange : 짙은 주황
  • Light bluish violet : 밝은 청자색
이외 여러 색이 있다.

2.3.2. CFrame

2.3.2.1. 속성
  • Position : CFrame의 좌표
  • Rotation : CFrame 복사본을 정리 없이 복사한 것
  • X : CFrame의 x좌표
  • Y : CFrame의 y좌표
  • Z : CFrame의 z좌표
  • RightVector : CFrame의 오른쪽 방향 구성
  • UpVector : CFrame의 위쪽 방향 구성
  • LookVector : CFrame의 정면 방향 구성
2.3.2.2. 메서드
  • Lerp(CFrame, 비율) : CFrame의 Position과 Angle을 두 CFrame의 사이로 간다. 비율에 클수록 괄호안에 넣은 CFrame에 가까워진다.[12]

2.3.3. Vector3

  • 속성들
    • X : X축의 값
    • Y : Y축의 값
    • Z : Z축의 값
    • Magnitude : 원점과 주어진 Vector3 사이의 직선 거리
    • Unit : 크기는 1인 닮음 크기의 Vector3

2.3.4. UDim2

2.3.4.1. 메서드
  • Lerp(UDim2, 비율) : 위에 서술한 Vector3:Lerp와 같은 메서드
2.3.4.2. 속성
  • X : UDim2의 x축 속성
  • Y : UDim2의 y축 속성

2.3.5. TweenInfo

2.3.5.1. 속성
  • EasingDirection : EasingStyle이 실행되는 방향
  • Time : 에니메이션의 지속시간
  • DelayTime : 에니메이션이 시작하기 까지 걸리는 딜레이
  • RepeatCount : 반복 횟수(정수)[13]
  • EasingStyle : 에니메이션의 스타일
  • Reverses : 돌아가는 에니메이션 사용 여부

2.4. 라이브러리

  • bit32
  • buffer
  • coroutine
  • debug
  • math (여러가지 연산이나 숫자)
  • os (시간 관련 라이브러리)
  • string (문자열)
  • table (테이블)[14][주의할점]
  • task
  • utf8

2.4.1. bit32

2.4.2. buffer

2.4.3. coroutine

  • coroutine 개체:Create(함수) : 괄호 안에 넣은 함수를 코루틴으로 만들어 준다.
    • coroutine 개체:resume(코루틴, 메게변수...) : 괄호 안에 넣은 코루틴을 실행한다.
      • coroutine.yield() : coroutine 개체:resume()으로 만든 코루틴을 일시정지 시켜준다.
  • coroutine 개체:wrap(함수) : 괄호 안에 넣은 함수를 함수처럼 쓸수 있는 코루틴으로 만들어 실행시켜준다.

2.4.4. debug

2.4.5. math

2.4.5.1. 함수
  • math.abs(값) : 값의 절댓값을 반환한다.
  • math.ceil(값) : 천장함수. 값을 올림한 값을 반환한다.
  • clamp(값, 최솟값, 최댓값) : 최솟값과 최댓값 사이 정수의 개수를 반환한다.
  • floor(값) : 바닥함수. 값을 내림한 값을 반환한다.
  • max(값1, 값2... , 값n) : 여러개의 값중 가장 큰 값을 반환한다.
  • min(값, 값2... , 값n) : 여러개의 값중 가장 작은 값을 반환한다.
  • random(최솟값, 최댓값) : 최솟값과 최댓값사이의 값중 아무거나를 반환한다.
  • round(값) : 반올림. 값을 반올림한 값을 반환한다.
2.4.5.2. 속성
  • math.huge : 로블록스에서 쓸 수 있는 가장 큰 수를 반환해준다. (약 2¹⁰²⁴) 그냥 무한이라 생각해도 된다.
  • math.pi : 원주율

2.4.6. os

2.4.7. string

2.4.7.1. 함수[16]
  • string.len(문자열) : 문자열의 길이를 반환해준다. 문자열 앞에 #을 붙히는 것으로도 대체 가능하다.
  • string.upper(문자열) : 문자열의 모든 글자를 대문자로 만들어준다.
  • string.lower(문자열) : 문자열의 모든 글자를 소문자로 만들어준다.
  • string.reverse(문자열) : 문자열의 배치를 뒤집어준다.
  • string.split(문자열, 기준글자) : 문자열을 기준글자를 기점으로 나누어 테이블에 담아 반환해준다. 이걸 이용해서 string.split(문자열, "")으로 글자 하나하나를 쪼개 테이블에 담을수 있다.
  • string.find(문자열, 찾는글자) : 문자열에서 찾는 글자를 찾은다음 몇번째 글자인지 반환해준다. 만약 찾는글자가 문자열에 아예 없다면 nil을 출력해준다.[17]
  • string.match(문자열, 찾는글자) : 문자열에서 찾는글자를 찾아 string으로 반환해준다.
  • string.sub(문자열, 시작번호, 끝번호) : 문자열에서 시작번호 부터 끝번호 까지를 string으로 반환해준다.[18][19]
  • string.gsub(문자열,찾는글자,바꿀글자) : 문자열에서 찾는글자를 모두 바꿀글자로 바꿔서 string 으로 반환해준다.

2.4.8. table

2.4.8.1. 함수
  • table.insert(테이블, 자료, 순서) : 지정한 테이블에다가 자료의 순서를 정해서 넣는다. 순서를 안 써놓으면 자동으로 마지막 순서로 넣어진다.
  • table.remove(테이블, n번째) : 지정한 테이블에서 n전째 항목을 없엔다.
  • table.maxn(테이블) : 테이블중에서 가장 큰 숫자를 반환한다. 테이블 안에 숫자가 아예 없을땐 nil을 반환한다.
2.4.8.2. 속성
  • #(테이블) : 테이블 안에 들어있는 자료 개수
  • 테이블[n] : 테이블의 n번째 자료

2.4.9. task

2.4.9.1. 함수
  • task.cancel(스레드) : 스레드를 작동하지 않게 만든다.
  • task.delay(시간초, 함수) : 괄호에 넣은 시간이 다 지난 직후의 프레임에서 함수가 실행된다.
  • task.spawn(함수) : spawn() 함수와 같음
  • task.wait(시간초) : 괄호에 넣은 시간동안 기다린다. wait과 같아 보이지만 이게 더욱 정밀하다.

2.4.10. utf8

2.5. 글로벌

로블록스 내 어느 코드에서나 쓸수 있는 함수 또는 속성들로, 로블록스 스튜디오의 코드는 Lua 기반이기에 Lua 내 글로벌 또한 들어간다.

2.5.1. 함수

  • error(튜플) = print와 비슷하지만 이것은 문자열을 error 형태로 내보낸다.
  • elapsedTime()
  • gcinfo()
  • pcall(함수) : 괄호안에 넣은 함수가 에러가 나도 아랫줄이 실행될수 있도록 하는 함수다.[최적화별로]
  • PluginManager()
  • print(문자열) = 문자열을 Console에 출력한다.[21]
  • require(모듈스크립트)
  • settings()
  • spawn(함수)[최적화별로] : 괄호 안에 넣은 함수를 스레드로 만들어 실행한다.
  • tick()
  • time()
  • typeof(개체)
  • UserSettings()
  • version()
  • warn(튜플)
  • wait(숫자) = (숫자)초만큼 기다린다. 수십 밀리초 정도 딜레이가 있다.[23] 현재는 거의 사용되지 않는 항목으로, 더 정밀한 task.wait()으로 대체되었다.

2.5.2. 속성

  • Enum : true, false, nil을 재외한 모든 속성
  • game
  • plugin
  • shared
  • script
  • workspace
  • _G : 기본 모듈 스크립트다. 이 뒤에 다른 속성을 붙여 모듈스크립트처럼 쓸수 있다.
  • _VERSION : 로블록스 스튜디오 루아의 버젼

2.6. 이벤트

2.6.1. BasePart[24] 관련

  • BasePart 개체.Touched : CanTouch가 켜져있는 다른 BasePart 개체가 닿았을때 상호작용하는 이벤트. 닿는 두 BasePart중 어느 하나라도 CanTocuh가 꺼져있으면 호출되지 않는다. 쿨다운을 설정 안하면 한번에 여러번 호출되니 조심. 인자엔 닿은 개체가 들어온다.[25]
[ 스크립트 예시 펼치기 · 접기 ]
* 닿으면 죽는 KillPart 스크립트
#!syntax lua
local Cooldown = false --쿨다운 변수 만드는 부분

script.Parent.Touched:Connect(function(hit)
    local Humanoid = hit.Parent:FindFirstChild("Humanoid") -- 변수 만드는 부분
    if Humanoid and not Cooldown then --휴머노이드 개체가 있는지 확인하는 부분 + 쿨다운이 아닌지 확인하는 부분
        Cooldown = true
        Humanoid.Health = 0 --닿은 플레이어의 체력
        task.wait(1) --1초 기다림
        Cooldown = false
    end
end)

  • BasePart 개체.TouchEnded : Touched의 반대로 CanTouch가 켜진 BasePart 개체가 더이상 닿지 않을 때 상호작용하는 이벤트. 마찬가지로 닿는 두 BasePart중 어느 하나라도 CanTouch가 켜져있지 않으면 호출되지 않는다. 이것도 쿨다운을 설정 안하면 한번에 여러번 호출되니 조심. 인자엔 더이상 닿지 않는 개체가 들어온다.
[ 스크립트 예시 펼치기 · 접기 ]
* 더이상 닿지 않을 때 죽는 스크립트(Touched 예시 스크립트에서 이벤트만 바꾼 버전이다)
#!syntax lua
local Cooldown = false --쿨다운 변수 만드는 부분

script.Parent.TouchEnded:Connect(function(hit)
    local Humanoid = hit.Parent:FindFirstChild("Humanoid") --변수 만드는 부분
    if Humanoid and not Cooldown then --휴머노이드 개체가 있는지 확인하는 부분 + 쿨다운이 아닌지 확인하는 부분
        Cooldown = true
        Humanoid.Health = 0 --닿은 플레이어의 체력
        task.wait(1) --1초 기다림
        Cooldown = false
    end
end)

2.6.2. Players 관련

  • Players 개체.PlayerAdded : 플레이어가 들어왔을때 호출되는 이벤트. 인트로나 로딩 화면에 이용된다. 인자엔 들어온 플레이어 개체가 들어온다. {{{#!folding [ 스크립트 예시 펼치기 · 접기 ]
  • 플레이어가 게임을 들어왔을때 플레이어 ID를 출력하는 스크립트
    {{{#!syntax lua
    game.Players.PlayerAdded:Connect(function(plr)

    • print(plr.."님이 게임에 참여했습니다.")

    end)
    }}}}}}
  • Players 개체.PlayerRemoved : 플레이어가 나갔을때 호출된다. 인자엔 나간 플레이어 이름이 들어온다. {{{#!folding [ 스크립트 예시 펼치기 · 접기 ]
  • 플레이어가 나갔을때 플레이어 ID를 출력하는 스크립트
    {{{#!syntax lua
    game.Players.PlayerRemoved:Connect(function(plr)

    • print(plr.."님이 게임을 나갔습니다.")

    end)
    }}}}}}

2.6.3. ProximityPrompt 관련

  • ProximityPrompt 개체.Triggered : ProximityPrompt 개체가 있고, 그 개체를 상호작용 했을 때 호출되는 이벤트, 인자에는 플레이어가 들어온다. {{{#!folding [ 스크립트 예시 펼치기 · 접기 ]
  • 상호작용 키를 눌러서 상호작용이 되었을 때 문구 출력
    {{{#!syntax lua
    script.Parent.Triggered:Connect(function(plr) --plr에는 해당 ProximityPrompt를 상호작용을 한 플레이어가 들어온다

    • print(plr.." Triggered ProximityPrompt!") --상호작용한 플레이어의 이름과 함께 상호작용했다는 문구 출력

    end)
    }}}}}}
  • ProximityPrompt 개체.PromptButtonHoldBegan : 상호작용 키가 눌리기 시작했을때 호출 되는 이벤트. {{{#!folding [ 스크립트 예시 펼치기 · 접기]
    {{{#!syntax lua
    ProximityPrompt.PromptButtonHoldBegan:Connect(function() --괄호 안에는 상호작용하기 시작한 플레이어가 들어온다

    • print("Proximity Input has been began") --상호작용 키가 눌리기 시작했다는 문구 출력

    end)
    }}}}}}

2.6.4. Gui 관련

  • GuiButton 개체.MouseButton1Click : 모바일에서 Gui버튼을 누르거나 마우스로[26] Gui버튼을 누를때 호출 되는 이벤트. {{{#!folding [ 스크립트 예시 펼치기 · 접기]
#!syntax lua
GuiButton 개체.MouseButton1Click:Connect(function()
    print("좌클릭이 감지 됐습니다!") --버튼을 좌클릭했다는 문구 출력
end)
}}}
  • GuiButton 개체.MouseButton2Click : 유저의 마우스가 버튼 위에서 우클릭을 했을때 호출 되는 이벤트. {{{#!folding [ 스크립트 예시 펼치기 · 접기]
    {{{#!syntax lua
GuiButton 개체.MouseButton2Click:Connect(function()
print("우클릭이 감지 됐습니다!") --버튼을 우클릭했다는 문구 출력
end)
}}}}}}

2.6.5. RemoteEvent

  • RemoteEvent 개체.OnClientEvent[서버] : 서버가 클라이언트에서 보낸 리모트 이벤트를 감지한다.
  • RemoteEvent 개체.OnServerEvent[클라이언트] : 클라이언트가 서버에서 보낸 리모트 이벤트를 감지한다.

2.6.6. ClickDetector

  • ClickDetector 개체.MouseClick : ClickDetector 개체가 있는 파트를 클릭했을때 호출하는 이벤트. 버튼을 만들때 활용한다. 인자엔 누른 플레이어가 들어온다.

2.6.7. Instance

  • Instance.AttributeChanged : 개체의 속성이 변경되었을 때 작동되는 이벤트. 인자엔 바뀐 속성이 들어온다.
  • Instance.Changed : AttributeChanged와 비슷한 개체의 속성이 변경되었을 때 작동되는 이벤트. 하지만 몇몇 속성에는 작동되지 않고 Value 개체는 무조건 Value의 값만 바뀌었을때 작동된다. 인자엔 바뀐 속성이 들어온다.
  • Instance.AncestryChanged : 개체의 Parent가 변경되었을 때 작동되는 이벤트. 인자엔 개체와 바뀐 Parent가 들어온다.
[ 스크립트 예시 펼치기 · 접기 ]
* 스크립트의 Parent가 바뀌면 출력에 프린트하는 스크립트
#!syntax lua
script.AncestryChanged:Connect(function(Child, Parent)
    print(Child.Name .. "의 Parent는 이제" .. Parent.Name .. "입니다.")
end)

2.6.8. 서비스들 관련

2.6.8.1. RunService 서비스
  • Stepped : 프레임마다 로블록스 물리 시뮬레이션이 되기 전에 실행된다.
  • RenderStepped[로컬] : 프레임이 랜더링 되기 전에 실행된다.
  • Heartbeat : 프레임마다 물리 연산이 끝난뒤에 실행된다.
2.6.8.2. UserInputService 서비스
  • InputBegan : 클라이언트의 기기(키보드, 마우스 등)의 입력이 시작됐을때를 감지한다.
  • InputEnded : 클라이언트의 기기의 입력이 끝났을때를 감지한다.

2.7. 메서드

2.7.1. Instance(개체)

  • 개체:Destroy() : 개체를 삭제시킨다.[30]
  • 개체:Clone() : 개체를 복사한다.
  • 개체:ClearAllChildren() : 개체의 모든 Children을 삭제시킨다.
  • 개체:GetChildren() : 개체의 모든 Child를 테이블에 담아 반환한다.
  • 개체:GetDescendants() : 개체 안에 있는 모든 개체를 선택해 테이블에 담아 반환해준다.[31]
  • 개체:FindFirstAncestor(찾을 개체명) : 개체의 Parent중 찾을 개체명이랑 똑같은 이름을 가진 Parent를 반환한다.
  • 개체:FindFirstChild(찾을 개체명) : 개체의 Child중 찾을 개체명이랑 똑같은 이름을 가진 Child가 있을 경우 Child를, 없을 경우 nil을 반환한다.
  • 개체:FindFirstChildOfClass(찾을 개체의 ClassName) : 찾을 개체를 각 개체만의 고유의 ClassName으로 찾는다.
  • 개체:WaitForChild(찾을 개체명) : FindFirstChild와 비슷하지만 Child가 없으면 있을때까지 기다린다.

2.7.2. Humanoid 개체

  • Humanoid 개체:MoveTo(Vetoor3) : 휴머노이드가 들어간 캐릭터가 지정된 좌표로 걸어가게 한다.
  • Humanoid 개체:TakeDamage(대미지) : 휴머노이드의 체력을 깎지만 포스필드(캐릭터가 스폰되었을때 생기는 파란색 구형 보호막)가 있을때는 대미지를 받지 않는다.

2.7.3. Players

  • Players 서비스:GetPlayerFromCharacter(개체) : 괄호 안에 다가 넣은 개체가 어느 플레이어의 캐릭터라면 그 플레이어 개체를 반환해준다. 혹시 괄호 안 개체가 플레이어의 캐릭터가 아니라면 nil을 반환한다.

2.7.4. BindableEvent

  • BindableEvent 개체:Fire(자료) : 바인다블 이벤트를 자료들을 담아 보낸다.

2.7.5. BindableFunction

  • BindableFunction:Invoke():BindableFunction을 읽을때 사용된다.

2.7.6. RemoteEvent

  • RemoteEvent 개체:FireClient(플레이어, 자료)[서버] : 괄호에 넣은 플레이어에게 자료들을 담아 리모트 이벤트를 보낸다.
  • RemoteEvent 개체:FireAllClients(자료)[서버] : 모든 플레이어들에게 리모트 이벤트를 보낸다.
  • RemoteEvent 개체:FireServer(자료)[클라이언트] : FireClient와 반대로 클라이언트가 아닌 서버로 리모트 이벤트를 보낸다. 주의할 점은 클라이언트가 이걸 매우 빠른 속도로 호출하면 서버에 부하가 걸려 핑이 매우 높아진다. 그러니 쿨타임 같은걸 설정해서 일정 속도 이상으로 호출되면 해당 플레이어를 추방하는 식의 어느정도 제한을 걸어둬야 한다.

2.7.7. RemoteFunction

  • RemoteFunction:InvokeServer() : 서버에서 정한 RemoteFunction을 읽능데 사용된다.

2.7.8. Seat

일단 Seat도 BasePart이기 때문에 BasePart의 명령어가 모두 적용 된다.
  • Sit(휴머노이드) : 괄호 안에 넣은 휴머노이드의 캐릭터를 의자에 앉힌다.

2.7.9. DataModel(game)

  • game:GetService("서비스 이름") : 괄호안의 서비스 이름에 따라 서비스를 찾아 반환, 없다면 생성해서 반환하는 명령어다. 그냥 game.서비스 이름으로 쓸수 있지 않나 싶을수도 있지만, 실제 게임내의 이름과 코드내 이름이 다를수도 있기에[35] 서비스를 쓸땐 꼭 GetService를 써야한다. {{{#!folding [ 서비스 목록 펼치기 · 접기 ]
  • Debris 서비스 개체 : 개체를 시간차를 주고 삭제시키는 서비스다. 그냥 wait을 한 다음 destroy를 하는것도 있지 않나 생각 할 수 있지만, 이 서비스는 스레드를 기다리게 만들지 않는다.
  • MarketplaceService 서비스 : 마켓플레이스 관련 서비스
  • TweenService 서비스 : 파트, Gui, 카메라등을 부드럽게 움직이거나, 값에 숫자가 필요한 속성(Position, Orientation, Color, Size 등)을 자연스럽게 변경 할 수 있게 해주는 서비스다.
  • BadgeService 서비스 : 베지 관련 서비스다.
  • UserInputService 서비스 : 클라이언트의 기기에서 키보드를 누르거나 마우스를 클릭하는등 클라이언트의 기기에서 할 수 있는 것을 가져와주는 서비스다.[클라이언트]
  • RunService 서비스 : 플레이어가 스튜디오에서 플레이하는지 아니면 로블록스 게임으로 플레이 하는지와 프레임마다 이벤트를 보내는 서비스다.
  • TeleportService 서비스 : 유저를 다른 게임으로 텔레포트 시켜주는 서비스
  • CollectionService 서비스 : 여러가지 개체를 선택해주는 서비스이다. 이 서비스를 이용해 킬블럭마다 들어있는 스크립트를 줄여 랙을 줄일수 있다.
  • VRService 서비스 : 게임과 VR간의 상호작용을 처리하는 서비스다
  • ContextActionService 서비스 : UserInputService 서비스와 유사한 서비스다. 그치만 이 서비스가 UserInputService 서비스보다 신식이여 클라이언트의 더욱 많은 입력을 감지 할 수 있다.[클라이언트]
  • DataStoreService 서비스 : 데이터를 저장 할 수 있는 서비스이다.
  • MemoryStoreService 서비스 : 이 서비스도 DataStoreService처럼 데이터를 저장하지만 이 서비스는 일정 기간동안 보관이 가능하다. 아예 영구 보관을 하고 싶으면 DataStoreService 서비스를 쓰는 것이 더욱 안전하다.
이 외에도 여러 가지 서비스가 존재한다.
}}}

2.7.10. PVInstance

  • PVInstance 개체:MoveTo(Vector3) : BasePart 개체 또는 모델을 저 괄호 안에다가 적은 포지션으로 이동시켜주는 코드다. 하지만 이동시킬 위치에 이미 무언가 있다면 이미 있는 개체 위로 이동된다.
  • PVInstance 개체:PivotTo(CFrame) : BasePart 개체 또는 모델을 저 괄호 안에다가 적은 CFrame으로 이동시켜주는 코드다. MoveTo와 다르게 이동시킬 위치에 이미 무언가 있어도 그냥 이미 있는 개체를 무시하고 적은 CFrame으로 이동하는 코드다. CFrame으로 개체를 이동시킬때는 CFrame을 곱해서 그 개체의 피펏을 기준으로 움직이게 할 수 있다.
  • PVInstance 개체:Lerp(CFrame1, CFrame2) : PVInstance 개체를 CFrame1과 CFrame2 사이로 이동해준다.

2.7.11. 서비스

2.7.11.1. Debris 서비스
  • Debris:AddItem(Instance, number) : Instance 개체를 number 초 뒤에 삭제한다.
2.7.11.2. MarketplaceService 서비스
2.7.11.3. TweenService 서비스
  • TweenService 서비스:Create(개체, TweenInfo, 테이블) : Tween을 생성한다. 개체엔 Tween할 대상을, TweenInfo엔 어떻게 Tween할지 지정하는 TweenInfo를, 테이블엔 Tween할 개체의 속성과 속성의 값이 들어간다.
    {{{#!folding [ 예제 펼치기 · 접기 ]

    • {{{#!syntax lua
      local Part = workspace.Part
      local TweenService = game:GetService("TweenService")
      local GOAL = {Position = Vector3.new(0, 50, 0)}
      local TWEEN_INFO = TweenInfo.new(3, Enum.EasingStyle.Linear, Enum.EasingDirection.In, 0, false, 0)
      local Tween = TweenService:Create(Part, TWEEN_INFO, GOAL)
Tween:Play()
}}}}}}* Tween 개체:Play()* Tween 개체:Cancel()* Tween 개체:Pause()
2.7.11.4. BadgeService 서비스
  • BadgeService 서비스:AwardBadge(유저 ID, 배지 ID) : 유저에게 배지를 수령하는 메서드다.
2.7.11.5. workspace 서비스
서비스이긴 하지만 이건 코드 내에서 game:GetService("workspace")로 쓰지 않아도 쓸수 있는 서비스다.
  • workspace:Blockcast()
  • workspace:Raycast()
  • workspace:Spherecast()
  • workspace:GetPartsBoundInBox()
  • workspace:GetPartsBoundInRadius()
  • workspace:GetPartsBoundInPart()

2.8. 클래스 목록

  • Accessory : 플레이어의 장신구
  • AccessoryDescription
  • Accoutrement
  • Actor
  • AdGui
  • AdPortal
  • AdService
  • AdvancedDragger
  • AirController
  • AlignOrientation
  • AlignPosition
  • AnalyticsService
  • AngularVelocity
  • Animation : 에니메이션
  • AnimationClip
  • AnimationClipProvider
  • AnimationController
  • AnimationFromVideoCreatorService
  • AnimationRigData
  • AnimationTrack
  • Animator : 에니메이션을 재생시키는 개체
  • ArcHandles
  • AssetDeliveryProxy
  • AssetPatchSettings
  • AssetService
  • Atmosphere
  • Attachment
  • AudioAnalyzer
  • AudioChorus
  • AudioCompressor
  • AudioDeviceInput
  • AudioDeviceOutput
  • AudioDistortion
  • AudioEcho
  • AudioEmitter
  • AudioEqualizer
  • AudioFader
  • AudioFlanger
  • AudioListener
  • AudioPages
  • AudioPitchShifter
  • AudioPlayer
  • AudioReverb
  • AudioSearchParams
  • AvatarCreationService
  • AvatarEditorService
  • Backpack : 플레이어 인밴토리
  • BackpackItem
  • BadgeService
  • BallSocketConstraint
  • BasePart
  • BasePlayerGui
  • BaseRemoteEvent
  • BaseScript
  • BaseWrap
  • Beam
  • BevelMesh
  • BillboardGui
  • BinaryStringValue
  • BindableEvent
  • BindableFunction[최적화별로]
  • BlockMesh
  • BloomEffect
  • BlurEffect
  • BodyAngularVelocity
  • BodyColors : 플레이어의 몸 색깔
  • BodyForce : 개체를 workspace를 기준으로 움직이는 힘[구버전]
  • BodyGyro : 개체를 돌리는 돌림힘[구버전]
  • BodyMover : BodyForce, BodyGyro 등의 상위 개체[구버전]
  • BodyPartDescription
  • BodyPosition : 개체를 어디를 기준으로 힘을 가할지 정할수 있는 힘
  • BodyThrust
  • BodyVelocity : 개체에 일정한 속도로 가하는 힘
  • Bone
  • BoolValue
  • BoxHandleAdornment
  • BrickColorValue
  • BrowserService
  • BubbleChatConfiguration
  • BubbleChatMessageProperties
  • BuoyancySensor
  • CacheableContentProvider
  • Camera
  • CanvasGroup
  • CaptureService
  • CatalogPages
  • CFrameValue
  • ChangeHistoryService
  • CharacterAppearance
  • CharacterMesh
  • Chat
  • ChatInputBarConfiguration
  • ChatWindowConfiguration
  • ChorusSoundEffect
  • ClickDetector
  • ClientReplicator
  • ClimbController
  • Clothing
  • Clouds
  • ClusterPacketCache
  • CollectionService
  • Color3Value
  • ColorCorrectionEffect
  • CommandService
  • CompressorSoundEffect
  • ConeHandleAdornment
  • Configuration
  • ConfigureServerService
  • Constraint
  • ContentProvider
  • ContextActionService
  • Controller
  • ControllerBase
  • ControllerManager
  • ControllerPartSensor
  • ControllerSensor
  • ControllerService
  • CookiesService
  • CoreGui
  • CoreScriptDebuggingManagerHelper
  • CornerWedgePart
  • CurveAnimation
  • CustomEvent
  • CustomEventReceiver
  • CylinderHandleAdornment
  • CylinderMesh
  • CylindricalConstraint
  • DataModel
  • DataModelMesh
  • DataModelSession
  • DataStore
  • DataStoreGetOptions
  • DataStoreIncrementOptions
  • DataStoreInfo
  • DataStoreKey
  • DataStoreKeyInfo
  • DataStoreKeyPages
  • DataStoreListingPages
  • DataStoreObjectVersionInfo
  • DataStoreOptions
  • DataStorePages
  • DataStoreService
  • DataStoreSetOptions
  • DataStoreVersionPages
  • Debris
  • DebugSettings
  • Decal
  • DepthOfFieldEffect
  • Dialog
  • DialogChoice
  • DistortionSoundEffect
  • DockWidgetPluginGui
  • DoubleConstrainedValue
  • DraftsService
  • DragDetector
  • Dragger
  • DraggerService
  • DynamicRotate
  • EchoSoundEffect
  • EditableImage
  • EditableMesh
  • EmotesPages
  • EqualizerSoundEffect
  • EulerRotationCurve
  • ExperienceInviteOptions
  • ExperienceNotificationService
  • Explosion : 폭발
  • FaceControls
  • FaceInstance
  • Feature
  • File
  • FileMesh
  • Fire : 불
  • Flag
  • FlagStand
  • FlagStandService
  • FlangeSoundEffect
  • FloatCurve
  • FloorWire
  • Folder : 폴더
  • ForceField
  • FormFactorPart
  • Frame
  • FriendPages
  • FriendService
  • FunctionalTest
  • GamepadService
  • GamePassService
  • GameSettings
  • GenericSettings
  • Geometry
  • GeometryService
  • GetTextBoundsParams
  • GlobalDataStore
  • GlobalSettings
  • Glue
  • GoogleAnalyticsConfiguration
  • GroundController
  • GroupService
  • GuiBase
  • GuiBase2d
  • GuiBase3d
  • GuiButton
  • GuidRegistryService
  • GuiLabel
  • GuiMain
  • GuiObject
  • GuiService
  • HandleAdornment
  • Handles
  • HandlesBase
  • HapticService
  • Hat
  • HeightmapImporterService
  • HiddenSurfaceRemovalAsset
  • Highlight
  • HingeConstraint
  • Hint
  • Hole
  • Hopper
  • HopperBin
  • HSRDataContentProvider
  • HttpRbxApiService
  • HttpService
  • Humanoid
  • HumanoidController
  • HumanoidDescription
  • IKControl
  • ILegacyStudioBridge
  • ImageButton
  • ImageHandleAdornment
  • ImageLabel
  • IncrementalPatchBuilder
  • InputObject
  • InsertService
  • Instance
  • InstanceAdornment
  • IntConstrainedValue
  • IntersectOperation
  • IntValue : 정수값
  • InventoryPages
  • JointInstance
  • JointsService
  • KeyboardService
  • Keyframe
  • KeyframeMarker
  • KeyframeSequence
  • KeyframeSequenceProvider
  • LanguageService
  • LayerCollector
  • Light
  • Lighting : 일반 빛
  • LinearVelocity
  • LineForce
  • LineHandleAdornment
  • LocalizationService
  • LocalizationTable
  • LocalScript
  • LoginService
  • LogService
  • LuaSettings
  • LuaSourceContainer
  • LuaWebService
  • ManualGlue
  • ManualSurfaceJointInstance
  • ManualWeld
  • MarkerCurve
  • MarketplaceService
  • MaterialService
  • MaterialVariant
  • MemoryStoreHashMap
  • MemoryStoreHashMapPages
  • MemoryStoreQueue
  • MemoryStoreService
  • MemoryStoreSortedMap
  • MemStorageConnection
  • MemStorageService
  • MeshContentProvider
  • MeshPart
  • Message
  • MessagingService
  • Model
  • ModuleScript
  • Motor
  • Motor6D
  • MotorFeature
  • Mouse
  • MouseService
  • MultipleDocumentInterfaceInstance
  • NegateOperation
  • NetworkClient
  • NetworkMarker
  • NetworkPeer
  • NetworkReplicator
  • NetworkServer
  • NetworkSettings
  • NoCollisionConstraint
  • NotificationService
  • NumberPose
  • NumberValue : 실수값
  • ObjectValue
  • OpenCloudApiV1
  • OpenCloudService
  • OrderedDataStore
  • OutfitPages
  • PackageLink
  • PackageService
  • Pages
  • Pants
  • Part
  • PartAdornment
  • ParticleEmitter
  • PartOperation
  • PartOperationAsset
  • PatchBundlerFileWatch
  • PatchMapping
  • Path
  • PathfindingLink
  • PathfindingModifier
  • PathfindingService
  • PermissionsService
  • PhysicsService
  • PhysicsSettings
  • PitchShiftSoundEffect
  • PlacesService
  • Plane
  • PlaneConstraint
  • Platform
  • Player
  • PlayerGui
  • PlayerMouse
  • Players
  • PlayerScripts
  • PlayerViewService
  • Plugin
  • PluginAction
  • PluginCapabilities
  • PluginDebugService
  • PluginDragEvent
  • PluginGui
  • PluginGuiService
  • PluginManagementService
  • PluginManager
  • PluginManagerInterface
  • PluginMenu
  • PluginMouse
  • PluginToolbar
  • PluginToolbarButton
  • PointLight
  • PointsService
  • PolicyService
  • Pose
  • PoseBase
  • PostEffect
  • PrismaticConstraint
  • ProcessInstancePhysicsService
  • ProximityPrompt
  • ProximityPromptService
  • PublishService
  • PVAdornment
  • PVInstance
  • QWidgetPluginGui
  • RayValue
  • ReflectionMetadata
  • ReflectionMetadataCallbacks
  • ReflectionMetadataClass
  • ReflectionMetadataClasses
  • ReflectionMetadataEnum
  • ReflectionMetadataEnumItem
  • ReflectionMetadataEnums
  • ReflectionMetadataEvents
  • ReflectionMetadataFunctions
  • ReflectionMetadataItem
  • ReflectionMetadataMember
  • ReflectionMetadataProperties
  • ReflectionMetadataYieldFunctions
  • RemoteDebuggerServer
  • RemoteEvent : 리모트 이벤트
  • RemoteFunction[최적화별로] : 리모트 함수
  • RenderingTest
  • RenderSettings
  • ReplicatedFirst
  • ReplicatedStorage
  • ReverbSoundEffect
  • RigidConstraint
  • RocketPropulsion
  • RodConstraint
  • RopeConstraint
  • Rotate
  • RotateP
  • RotateV
  • RotationCurve
  • RunningAverageItemDouble
  • RunningAverageItemInt
  • RunningAverageTimeIntervalItem
  • RunService
  • ScreenGui
  • ScreenshotHud
  • Script
  • ScriptBuilder
  • ScriptContext
  • ScriptDocument
  • ScriptEditorService
  • ScriptService
  • ScrollingFrame
  • Seat : 의자 파트
  • Selection
  • SelectionBox
  • SelectionHighlightManager
  • SelectionLasso
  • SelectionPartLasso
  • SelectionPointLasso
  • SelectionSphere
  • SensorBase
  • ServerReplicator
  • ServerScriptService
  • ServerStorage
  • ServiceProvider
  • ServiceVisibilityService
  • SharedTableRegistry
  • Shirt
  • ShirtGraphic
  • ShorelineUpgraderService
  • SkateboardController
  • SkateboardPlatform
  • Skin
  • Sky : 하늘
  • SlidingBallConstraint
  • Smoke : 연기
  • SmoothVoxelsUpgraderService
  • Snap
  • SocialService
  • SolidModelContentProvider
  • Sound : 소리
  • SoundEffect
  • SoundGroup
  • SoundService
  • Sparkles
  • SpawnerService
  • SpawnLocation
  • SpecialMesh
  • SphereHandleAdornment
  • SpotLight : 원뿔형 빛
  • SpringConstraint
  • StandalonePluginScripts
  • StandardPages
  • StarterCharacterScripts
  • StarterGear
  • StarterGui
  • StarterPack
  • StarterPlayer
  • StarterPlayerScripts
  • StartupMessageService
  • Stats
  • StatsItem
  • Status
  • StopWatchReporter
  • StringValue : 문자열
  • Studio
  • StudioService
  • StudioTheme
  • StyleBase
  • StyleDerive
  • StyleLink
  • StyleRule
  • StyleSheet
  • StylingService
  • SunRaysEffect
  • SurfaceAppearance
  • SurfaceGui
  • SurfaceGuiBase
  • SurfaceLight : 사각뿔형 빛
  • SurfaceSelection
  • SwimController
  • SyncScriptBuilder
  • TaskScheduler
  • Team
  • TeamCreateData
  • TeamCreateService
  • Teams
  • TeleportAsyncResult
  • TeleportOptions
  • TeleportService
  • Terrain
  • TerrainDetail
  • TerrainRegion
  • TestService
  • TextBox
  • TextBoxService
  • TextButton
  • TextChannel
  • TextChatCommand
  • TextChatConfigurations
  • TextChatMessage
  • TextChatMessageProperties
  • TextChatService
  • TextFilterResult
  • TextFilterTranslatedResult
  • TextLabel
  • TextService
  • TextSource
  • Texture
  • TimerService
  • Tool : 툴
  • Torque : 토크
  • TorsionSpringConstraint
  • TotalCountTimeIntervalItem
  • TouchInputService
  • TouchTransmitter
  • Trail
  • Translator
  • TremoloSoundEffect
  • TriangleMeshPart
  • TrussPart
  • Tween
  • TweenBase
  • TweenService
  • UGCValidationService
  • UIAspectRatioConstraint
  • UIBase
  • UIComponent
  • UIConstraint
  • UICorner
  • UIFlexItem
  • UIGradient
  • UIGridLayout
  • UIGridStyleLayout
  • UILayout
  • UIListLayout
  • UIPadding
  • UIPageLayout
  • UIScale
  • UISizeConstraint
  • UIStroke
  • UITableLayout
  • UITextSizeConstraint
  • UnionOperation
  • UniversalConstraint
  • UnreliableRemoteEvent
  • UserGameSettings
  • UserInputService
  • UserNotification
  • UserNotificationPayload
  • UserNotificationPayloadAnalyticsData
  • UserNotificationPayloadJoinExperience
  • UserNotificationPayloadParameterValue
  • UserService
  • UserSettings
  • ValueBase
  • Vector3Curve
  • Vector3Value
  • VectorForce
  • VehicleController
  • VehicleSeat
  • VelocityMotor
  • VideoCaptureService
  • VideoFrame
  • VideoService
  • ViewportFrame
  • VirtualInputManager
  • VirtualUser
  • VisibilityCheckDispatcher
  • VisibilityService
  • Visit
  • VoiceChatService
  • VRService
  • VRStatusService
  • WedgePart
  • Weld : 용접(구버전)
  • WeldConstraint
  • Wire
  • WireframeHandleAdornment
  • Workspace
  • WorldModel
  • WorldRoot
  • WrapLayer
  • WrapTarget

[1] 개인 컴퓨터 [2] 그렇기에 game.Players.LocalPlayer를 통해서 해당 로컬 스크립트가 구동중인 플레이어 값을 구할 수 있다 [3] 그러므로 대부분의 서버 측 처리가 불필요한 상황에서는 서버 렉 감소를 위해 로컬스크립트를 사용하는게 효율적이다. [4] 예로 gui, player, character 안에서 작동이 된다. [5] 하지만 특정 플레이어에게만 적용을 원할 경우 로컬 스크립트를 쓰는게 사실상 필수다 [6] 등호 하나는 앞의 값에 뒤의 값을 덮어쓰겠다는 뜻이다. [7] 서비스 및 BasePart와 같은 추상 클래스를 제외한 모든 클래스의 상위 클래스인 Instance 클래스의 생성자를 보유하고 있는 자료형이다. [8] 타 언어의 null 과 같다. [9] 예시로 game.Players.PlayerAdded:Connect(function(plr))의 plr [10] gui 상에서 많이 사용된다. [11] CFrame과 함께 위치를 나타내는 단위이다. [12] 예시) script.Parent.CFrame = script.Parent:Lerp(CFrame1, 0.7) --> script.Parent.CFrame과 CFrame1의 Position 간격이 1(100%)이라하면 Position이 0.7(70%) 되는 지점에 온다. [13] 반복 횟수를 0으로 설정하면 1번 움직이고, 음수로 설정하면 무한 반복한다. [14] 다차원 테이블(테이블 안에 있는 테이블)도 가능하며 key-value 형의 딕셔너리(for i, v in ipairs(테이블) do)도 가능하다. [주의할점] 루아 스크립트에서는 테이블의 번호를 1번 부터 센다. [16] 한글은 한글자가 깨진글자 3개로 이루어져 있어 한글로 하면 버그가 생길수도 있다. 예) string.len("안녕하세요") -> ��������������� -> 15출력 [17] 찾는글자가 두글자라면 시작지점을 반환해준다. 예) string.find("11223344", "22") -> 3출력 [18] 예) string.sub("12345678", 4, 8) -> " "45678" [19] 시작번호나 끝번호에 음수를 넣으면 글자 끝에서 뒤로간다. -1이면 마지막 글자, -2면 마지막 2번째 글자 이런식이다. [최적화별로] 최적화는 별로니 많이 사용하지는 않기 바람. [21] 디버깅할때 말고는 별로 쓸모가 없다. [최적화별로] [23] 괄호 안에 아무것도 안넣으면 기본값으로 0.03초를 기다린다. [24] 파트, 웨지, 메시 등 로블록스의 모든 밟을수 있는 것들을 포함한 넓은 개념이다. [25] Touched 이벤트는 뭔가가 닿여을때 한번만 작동하고 만약 어떤 파트가 Touched 를 감지하는 파트 안으로 들어오면 Touched 를 감지 하지 못한다. 예를 들어 Touched 가 감지될때마다 플레이어의 채력을 5씩 깎는 파트가 있다고 하면, 플레이어가 처음 파트에 닿였을때는 채력이 깎이지만 데미지 파트 안에서는 아무리 움직여도 데미지를 받지 않는다. 만약 데미지 파트 안에서도 데미지를 받게 만들고 싶다면 무한 반복문을 통해 플레이어의 위치가 파트 안인지 감지해주는 스크립트를 만들어준다. [26] 좌클릭만 해당 [서버] [클라이언트] 클라이언트의 기기라고 하였으므로 로컬스크립트에만 넣어야 한다. 서버는 마우스를 누르거나 키보드를 누를수 없다. [로컬] [30] 사실상 삭제가 아닌 개체의 Parent를 nil 값으로 변경해서 못찾게하는거지만, 그냥 편하게 삭제 시킨다고 보면 된다 [31] GetChildren의 상위호환이라고 보면 된다 [서버] 서버측 스크립트에서만 사용 가능. [서버] [클라이언트] [35] 예제: RunService(실제 게임내 이름은 Run Service이다.) [클라이언트] 클라이언트의 기기라고 하였으므로 로컬스크립트에만 넣어야 한다. 서버는 마우스를 누르거나 키보드를 누를수 없다. [클라이언트] [최적화별로] [구버전] 현재에는 다른것으로 대체되었다. [구버전] [구버전] [최적화별로]

분류