콘텐츠로 이동

devplorer란

devplorer는 실행 중인 Roblox 서버에서 Explorer, Properties, Output을 보여 주는 개발자용 도구입니다. 서버와 클라이언트를 모두 확인할 수 있습니다.

프로덕션에서 에러가 났는데 그 순간의 상태를 알 수 없어 재현하지 못하는 일이 반복되었습니다. 서버의 Explorer와 Properties를 확인해야 했지만 볼 방법이 없었습니다.

특히 StreamingEnabled가 켜진 게임에서는 인스턴스가 클라이언트에 오지 않아서 문제가 생겼는지 확인해야 할 때가 많습니다. devplorer는 서버 트리를 보여 주면서, 클라이언트에 아직 오지 않은 인스턴스를 구분해서 표시합니다.

이 도구의 사용자는 두 부류입니다.

  • 이미 서버에서 코드를 실행할 수 있는 개발자: 게임에 devplorer를 설치하고 권한을 나눠 줍니다.
  • 개발자에게 권한을 받은 QA 담당자 분과 플레이 테스터 분: 개발자가 부탁한 확인 코드를 F9 패널 없이 실행하고 출력을 확인할 수 있습니다.

권한은 세 단계 레벨(Tester, MainTester, Developer)로 나뉩니다. 자세한 내용은 권한과 레벨에서 다룹니다.

기능 설명 페이지
Explorer 클라이언트 트리와 서버 트리를 전환해서 볼 수 있습니다. 서버 트리에서는 클라이언트에 없는 인스턴스가 따로 표시됩니다. Explorer
Properties 선택한 인스턴스의 속성, 특성, 태그를 확인하고, 권한이 있으면 수정할 수 있습니다. Properties
Output 서버와 클라이언트의 출력을 한 창에서 필터링해 볼 수 있습니다. Output
Inspect 서버 수치의 기록, Remote와 Bindable 호출 확인 등을 모은 창입니다. Inspect
명령 팔레트 게임에 등록된 디버그 액션을 양식을 채워 실행할 수 있습니다. 명령 팔레트
Interpreter 게임에서 켠 경우에 한해, 서버나 클라이언트에서 짧은 코드를 실행할 수 있습니다. Interpreter

북마크와 리포트 같은 보조 기능은 처음 열었을 때에서 소개합니다.

devplorer는 익스플로잇 도구로 작동하지 않도록 만들어졌습니다.

  • 권한은 서버에서만 부여합니다. 클라이언트가 스스로 권한을 얻거나 창을 여는 경로는 없습니다.
  • 권한이 없는 클라이언트에는 도구 코드도, 도구가 쓰는 원격 객체도 없습니다. 서버가 창을 열어 줄 때만 해당 플레이어의 PlayerGui에 복제됩니다.
  • 서버가 요청마다 권한을 다시 검사합니다.
  • 실행기 전용 API를 쓰지 않고, 외부 HTTP도 호출하지 않습니다.
  • loadstring을 켜지 않습니다. 인터프리터는 게임이 컴파일러를 직접 넘긴 경우에만 켜집니다.

자세한 내용은 보안 모델에 정리되어 있습니다.

  1. 설치: 게임에 devplorer를 설치합니다.
  2. 권한과 레벨: 누구에게 어떤 레벨을 줄지 정합니다.
  3. 처음 열었을 때: 화면 구성을 둘러봅니다.