헤드리스 클라이언트/서버
Jump to navigation
Jump to search
헤드리스 클라이언트/서버는 NEOS의 커맨드 라인(Console) 버전으로, 서버 등과 같은 그래픽이 배제된 환경하에서 동작합니다.
이 기능에 접근하기 위한 조건으로 사용자의 페트레온에서의 등급이 Gunter 이상거나 Neos Pro 를 사용하고 있어야 합니다. 우리의 디스코드 체널 리스트에서 #headless-client에 접속하거나 또는 관리자를 통하여 이 기능에 접근하기 위한 코드를 발급받을 수 있습니다.
설치
방법 1
스팀으로 설치하는 경우:
- 스팀 내 라이브러리에서 Neos VR을 찾아 마우스 우클릭을 합니다.
- "속성"을 선택하고, 표시되는 속성 창에서 "BETAs" 탭을 클릭합니다.
- 디스코드 체널에서 발급받은 코드를 베타코드 입력창에 입력합니다.
- "headless-client"를 선택합니다.
방법 2
SteamCMD를 사용하는 경우
- SteamCMD 로그인 후, 아래의 명령을 복사하여 붙여 넣습니다.
app_update 740250 -beta headless-client -betapassword 디스코드에서_발급받은_코드
설정
- 스팀에서 Neos VR의 업데이트가 끝나면, 로컬저장소 열기를 이용하여 게임이 설치된 폴더로 이동합니다.
- 새로 "Headless Client" 폴더가 생성되었음을 확인할 수 있으며, 설정 파일은 그 아래 Config폴더에 있는 DefaultConfig.json 입니다.
- Config/DefaultConfig.json 파일을 열어 설정을 수행하세요. (단, 로그인 설정에서는 Neos VR 메인 계정을 이용하지 말아 주세요.)
{ "comment": "", "tickRate": 60.0, "maxConcurrentAssetTransfers": 4, "usernameOverride": null, "loginCredential": "부계정 ID", "loginPassword": "부계정 암호", "startWorlds": [ { "isEnabled": true, "sessionName": "", "customSessionId": null, "description": null, "maxUsers": 12, "accessLevel": "Anyone", "hideFromPublicListing": false, "tags": [ "test1", ], "mobileFriendly": false, "loadWorldURL": "", "saveAsOwner": null, "loadWorldPresetName": null, "forcePort": null, "keepOriginalRoles": false, "defaultUserRoles": { "User": "Admin" }, "autoInviteUsernames": null, "autoInviteMessage": null, "autoRecover": true, "idleRestartInterval": -1.0, "forcedRestartInterval": -1.0, "saveOnExit": false, "autosaveInterval": -1.0, "awayKickMinutes": -1.0, "autoSleep": true } ], "dataFolder": null, "cacheFolder": null, "allowedUrlHosts": null, "autoSpawnItems": null, "metamovieRoles": null }
loadWorldPresetName
: 월드의 기본형을 선택합니다. 사용할 수 있는 유형은 "SpaceWorld", "Basic Empty", "GridSpace", "Microworld", "Testing Scaling", "ScratchSpace", "ScratchSpace (mobile)", "Instancing Test", "Physical Locomotion Test" 그리고 "UIX Test". 입니다.accessLevel
항목은 헤드리스에 접근 가능한 유형을 정의하며, 아래의 값중 하나를 설정하시면 됩니다.- "Private": 비공개 (초대로만 참여가 가능)
- "LAN": LAN(같은 네트워크 망) 사용자만 참여 가능
- "Friends": 헤드리스 계정의 연락처에 있는 사람만 참여가능
- "FriendsOfFriends": 헤드리스 계정의 연락처에 있는 사람의 친구까지만 허용
- "RegisteredUsers": 네오스 계정으로 로그인 한 사용자만 허용
- "Anyone": 참여에 제한이 없음
"defaultUserRoles"
는 월드에 참여하는 사람들에게 부여할 기본 권한을 지정하는 옵션입니다. 값은 "사용자명": "권한" 형식으로 작성하시면 되고, "권한"에 입력 가능한 값은 "Admin", "Builder", "Moderator", "Guest", "Spectator" 중 한가지를 넣으시면 됩니다.
- The
"loginCredential"
attribute defines the Neos account to run the server with. It is recommended to create a separate account to run the server as if you wish to join your own server - it is not possible to join a server running with the same account on the client and server.
- Run the executable to start the client.
로컬 및 클라우드 월드의 저장 설정
월드 정보를 로컬 컴퓨터에 저장하실때는 "saveAsOwner" : "LocalMachine"
로 설정해 주세요.(클라이언트 실행 후, 고유한 startWorldURL
로 자동변경 됩니다). 또한, "saveOnExit" : true
와 autoSaveInterval
도 원하는대로 설정하여 주세요.
만약, 월드를 클라우드에 저장하고 싶으실때는 아래의 옵션을 설정하세요.(네오스 계정이 있어야 합니다.)
"saveAsOwner" : "CloudUser"
.
세부 설정에 따라 다르지만, 일반적으로 shutdown
명령을 통해 저장 및 종료를 수행할 수 있습니다.
환경설정 샘플파일 {
"tickRate": 60.0, "usernameOverride": null, "loginCredential": null, "loginPassword": null, "startWorlds": [ { "sessionName": "My World 1", "description": null, "maxUsers": 32, "accessLevel": "LAN", "tags": null, "mobileFriendly": false, "loadWorldPresetName": "BasicEmpty", "saveAsOwner" : "LocalMachine", "autoRecover": true, "saveOnExit" : true, "autoSaveInterval" : 240, "forcedRestartInterval": -1.0 } ], "dataFolder": null, "cacheFolder": null }
Configration using Cloud Variables
For more details for Cloud Variables, see Cloud Variables.
- The
roleCloudVariable
allows auto-assigning a role based on a cloud variable.- This lets you define a cloud variable and assign value to users to determine their role in given world.
- The variable needs to be of type string. The value you assign equals the name of the role you want to grant to given user.
- It is STRONGLY recommended to make sure you're using cloud variable that you can write into on behalf of other users (
definition_owner
), otherwise users might be able to assign themselves a high permission role. - If no value is set for given user, the usual method to determine default role is used
- The
allowUserCloudVariable
allows using cloud variable to always allow user into a session.- The cloud variable needs to be of type bool and set to true for given user.
- This is equivalent of the user being sent an invite - they can join regardless of MaxUsers limit and even if the session is set to Private (they need to obtain).
- Same recommendations as above apply, please make sure you use the right cloud variables that you have proper control over.
- The
denyUserCloudVariable
allows denying join access to users via a cloud variable.- This functions similarly to
allowUserCloudVariable
, except when the value for given user is true, they will be denied access - This always takes precedence over other variables
- This functions similarly to
- The
requiredUserJoinCloudVariable
to world startup configuration, which requires a cloud variable to be set to true for given user so they can join- You can set a custom deny message via requiredUserJoinCloudVariableDenyMessage
- If the variable isn't set to true for given user, they won't be allowed access
- Setting the variable to true won't automatically grant access (unlike
allowUserCloudVariable
) and will still need to pass other rules - public access, session user limit and so on allowUserCloudVariable
takes precedence over this one, allowing to always allow given user access- This variable is useful for controlling access to a session, without bypassing the session max user limit and providing a custom message
명령어
헤드리스 클라이언트의 명령어 문서에서 명령어 목록을 확인하실 수 있습니다.