1. 개요
Starblast.io 의 모드에디터에 대하여 설명하는 문서이다.쉽 에디터와 마찬가지로 ECP를 구매한 유저만 사용 가능하다.
모드 에디터는 JavaScript를 기반으로 동작한다.
2. 모딩할 때 유용한 사이트들
https://bhpsngum.github.io/starblast/sscv/ (쉽 에디터 코드를 모드 에디터의 코드로, 또는 그 반대로 변환해준다)https://starblast.fandom.com/wiki/Modding_Tutorial (공식 위키 튜토리얼)
3. 모드 에디터
쉽 에디터의 스샷이다
오른쪽 위에있는 Mod Editor 라고 써있는 버튼을 누르면 모드 에디터를 열수 있다.
3.1. 모딩
모드 에디터를 처음 열었을 때 나오는 화면.
3.1.1. 콘솔창/터미널
모드 에디터의 오른쪽에 있는 이렇게 생긴게 콘솔창이다.[1]
아곳에서 게임을 실행하고, 여러 가지 명령어를 입력할 수 있으며, 게임을 멈출 수 있습니다.
3.1.1.1. 알아야 할 기본 명령어
터미널에서 입력 가능한 명령어는 스블 자체에서 지원하는 기본 명령어와 코딩을 통해 만들 수 있는 커스텀 명령어가 있습니다.region <region name>[2] 명령어로 게임 서버를 열 지역을 설정 할 수 있습니다.[3]
모딩은 아시아, 유럽, 아메리카 이렇게 3개의 지역에서만 가능함.
이미 지역이 아시아 인데 지역을 아시아로 바꿀려고 한다면 에러가 뜬다.
서버를 열 지역을 설정한 다음 모드를 실행 시키려면 터미널에 start 라고 입력하면 서버가 열리면서 게임이 실행됩니다.
약간의 기다림 후에 서버가 열리면, 파란색 글씨로 링크가 뜨는데 거기로 들어가면 모드를 플레이 해볼 수 있습니다. [4]
모드를 실행 시킨 다음 그 링크로 직접 들어가는 방법 외에 터미널에 test 라고 입력하면 모드 에디터 하단의 공백 부분에 게임 창이 작게 열리고 거기서 모드를 플레이 해볼 수 있습니다. 렉도 많이 걸리고 화면 크기도 작아서 간단히 테스트 해볼게 있을 때만 쓰는걸 추천합니다.
게임 서버를 닫고 싶다면, 터미널창에 stop 이라고 입력하면 서버가 닫히고 해당 서버에서 플레이 하던 모든 유저들이[5] 튕깁니다.
터미널에 무언가를 입력하고 싶다면 echo 명령어를 사용하면 됩니다.[6]
echo 명령어는 터미널에 문자를 출력하는거지, 인게임에 출력 하는게 아니기 때문에 헷갈리지 말아야 합니다.
echo 명령어는 보통 터미널에서 단독으로 쓰이지 않고 코드와 함께 게임에서 특정 상황이나 플레이어 리스트를 확인 할 때 쓰입니다.
clear 명령어를 터미널에 입력하면, clear 명령어 포함 터미널에 있던 모든 글씨들이 지워집니다.
이전에 입력했던 명령어를 다시 입력하고 싶은데 귀찮다면 키보드의 오른쪽 하단에 있는 화살표를 눌러서 이전에 입력했던 명령어들을 가져올 수 있습니다.[7]
마지막으로 터미널에 help 라고 입력하면 약간의 도움을 받을 수 있습니다.[8]
3.1.2. 코딩하기
터미널 왼쪽에 있음
상단의 Mod Code 오른쪽에 있는 것들을 맨 왼쪽부터 설명하면, 모드 저장, 모드 불러오기, 모드 실행 이다.[9]
3.1.2.1. this.options = { };
서버를 열때 서버의 이름, 기지의 스탯, 팀의 개수, 운석의 강도, 운석이 드랍하는 보석량 등을 설정하는 곳이다.
추가 가능한 옵션들
옵션 | 데이터 타입 | 설명 | 기본값 |
root_mode | string | 게임모드를 설정함 | X |
reset_tree | boolean | 기본 트리[10] 삭제 여부[11] | false |
map_size | integer | 맵 크기를 설정함[12] | 30[13] |
soundtrack | string | 게임 브금을 설정함[14] | X |
max_players | integer | 플레이어 숫자 설정[15] | X |
crystal_value | float | 운석을 부쉈을 때 드랍하는 보석량[16] | 1 |
lives | integer | 플레이어 목숨 개수[17] | 3 |
maxtierlives | integer | 최고티어 목숨 개수 | 0 |
max_level | integer | 쉽트리의 최고 레벨[18][19] | 7 |
friendly_colors | integer | 팀의 개수[20] | 0 |
map_name | string | 맵 이름 설정 | X[21] |
survival_level | integer | 서바이벌을 할 때 자기장이 생성되는 티어[22] | 7[23] |
starting_ship | integer | 처음 시작할 때 타고있을 우주선 | 101 |
starting_ship_maxed | boolean | 시작 우주선의 스탯을 풀업으로 할지 말지 설정 | false[24] |
asteroids_strength | float | 운석의 강도[25] | 1 |
strafe | float | strafe[26] 속도 설정[27] | 0 |
speed_mod | float | 게임이 진행되는 속도[28] | 1.25 |
rcs_toggle | boolean | RCS 활성화 비활성화 설정[29] | 1 |
map_id | integer | 맵 시드[30] | Game ID |
map_density | float | 맵 밀도[31][32] | X |
weapon_drop | float | 운석을 부쉈을 때 무기가 나올 확률[33] | 0 |
crystal_drop | float | 우주선의 쉴드가 다 까였을 때 드랍하는 보석량[34] | 1 |
release_crystal | boolean | V 키를 눌러서 보석을 뿌릴 수 있게 함[35] | true |
mines_self_destroy | boolean | 지뢰를 설치하고 시간이 났을 때 자폭하는지[36] | true |
mines_destroy_delay | integer | 위의 설정을 true 로 했을 때 지롸가 자폭하는 시간[37] | 18000 |
3.1.3. 쉽 추가하기
var shiptree = []; shiptree 라는 우주선 코드를 저장할 Array 생성
쉽 에디터의 상단에 있는 Mod Export 라는 버튼을 누르면 쉽 에디터 코드를 자동으로 모드 에디터 코드로 변환 해서 다운로드 받는데, 다운받은 텍스트 파일을 열고 Ctrl + A[38], Ctrl + C[39] 한다음 모드 에디터에 Ctrl + V[40] 해주면 된다.
shiptree.push(ship name_<ship code>); shiptree 라는 배열에 쉽 에디터에서 가져온 우주선의 코드를 넣음.[41]
이름 앞에 붙어있는 101은 쉽의 레벨과 모델을 의미하는 숫자로 레벨1 모델2의 쉽은 102가 될꺼다.
2티어를 만들고싶으면 shiptree.push(_101);을 201로 바꾸면 된다. (
한 티어에 쉽은 최대 99개까지 넣을수 있으며 레벨 1 모델 100이 된다면 쉽이 2티어로 올라간다.
1티어의 모델 1이 없다면 2티어의 모델 1을 가지 못하고 2티어의 모델 1이 없다면 3티어의 모델 1을 못간다.
3.1.3.1. 추가할 수 있는 코드들
모드 에디터로 커스텀 모드를 열었을 때 무기들을 드랍하고싶다면 game.addCollectible({code:10});를 콘솔창에 입력하면 된다. code:위 숫자를 바꾸면 다른 무기 드랍가능.[42] 100개쯤 드랍 가능하며 너무 많이 드랍하면 콘솔창에 보조무기가 너무 많이 드랍됐다는 문구와 함께 렉이 엄청나게 걸린다.보조 무기 | 코드 |
로켓 | 10 |
우주 지뢰 | 20 |
채광 포드 | 40 |
공격 포드 | 41 |
방어 포드 | 42 |
대형 지뢰 | 21 |
미사일 | 11 |
어뢰 | 12 |
또 모드 에디터로 모드를 열었는데 그린 치킨을 스폰하고 싶다면 game.addAlien({code:10,x:0,y:0,level:0});를 콘솔창에 입력하면 된다. 다른 에일리언을 스폰하고 싶다면 code: 부분의 숫자를 바꿔주면 된다. level을 바꿔서 에일리언의 색깔(레벨)을 변경할 수 있다. 또한 level 뒤에 points:를 붙임으로서 죽이면 스코어가 올라가게 할 수 있다.[43] 에일리언은 최대 300마리까지 드랍 할 수 있다.
에일리언 | 코드 |
Chicken (치킨) | 10 |
Crab (크랩) | 11 |
Fortress (포트리스) | 12 |
??? | 13 |
Candlestick (캔들스틱) | 14 |
Hirsute (허슛) | 15 |
Piranha (피라냐) | 16 |
Pointu (포인투) | 17 |
Fork (포크) | 18 |
Saucer (사우써) | 19 |
FInal Boss (최종보스) | 20 |
3.1.4. 채팅
모딩으로 자신만의 채팅을 만들수 있다.var vocabulary = [
{ text: "Hello", icon:"\u0045", key:"O" },
{ text: "Bye", icon:"\u0046", key:"B" },
{ text: "Yes", icon:"\u004c", key:"Y" },
{ text: "No", icon:"\u004d", key:"N" },
{ text: "Bye", icon:"\u0046", key:"B" },
{ text: "Yes", icon:"\u004c", key:"Y" },
{ text: "No", icon:"\u004d", key:"N" },
{ text: "Flower", icon:"\u{1F33B}", key:"F" },
{ text: "Snowman", icon:"\u26c4", key:"M" },
{ text: "Shark", icon:"\u{1F988}", key:"S" },
{ text: "Ghost", icon:"\u{1F47B}", key:"G" }] ;
{ text: "Snowman", icon:"\u26c4", key:"M" },
{ text: "Shark", icon:"\u{1F988}", key:"S" },
{ text: "Ghost", icon:"\u{1F47B}", key:"G" }] ;
해당 코드를 빈칸에 붙혀넣고
this.options = {
};
함수 안에 vocabulary: vocabulary, 코드를 쳐준다.
text부분은 글짜가 들어갈 부분이고[44] icon은 그 채팅의 아이콘이 표시되는 부분으로 스블공식 아이콘을 쓰거나 유니코드를 복사해다가 쓸수 있다.
[1] 콘솔(Console) 이라고 부르는 사람도 있고 터미널(Terminal) 이라고 부르는 사람도 있다.[2] 예 : region Asia[3] Asia, Europe, America[4] 잘못된 링크라면 일반 서바이벌로 들어가짐[5] 서버를 닫는거기 때문에 호스트(서버 연사람) 포함[6] 예 : echo("Hello Starblast!!");[7] 위 아래[8] game.addAlien()은 게임에 에일리언을 스폰할 때 쓰는 명령어[9] 모드를 저장하면 .js 파일이 아닌 .txt 파일로 저장되는데 이유는 모드 에디터에서는 .js 코드를 불러올 수 없어서다. 망겜[10] 바닐라[11] 삭제 하고싶으면 true, 아니면 false[12] 2 ~ 200[13] 20 : 데스매치, 30 : 인베이젼, 80 : 팀모드, 100 : 서바이벌[14] crystals.mp3 https://www.youtube.com/watch?v=y_Q-pqTrcII, argon.mp3 https://www.youtube.com/watch?v=d5zcsgyZ2Z0, procedurality.mp3 https://www.youtube.com/watch?v=aalP94dxavE[15] 1 ~ 240[16] 0 ~ 5[17] 0 ~ 5[18] 1 ~ 7[19] 자신이 만든 쉽트리의 최고티어가 8티어 이상이라면 7 이상도 설정 가능[20] 0 ~ 5[21] 아무것도 입력하지 않으면 랜덤으로 생성됨, 임의의 이름 설정 가능[22] 2 ~ 8[23] 서바이벌이 시작되게 하고싶지 않다면 8[24] ECP 유저들의 경우엔 이 설정에 관계없이 풀업[25] 0 ~ 1000000[26] 인게임 에서 A 나 D 키를 눌러서 좌우로 움직이는것[27] 0 ~ 1[28] 운석 리젠 등[29] false, true[30] 0 ~ 9999[31] 운석, 기지 간 간격 등[32] 0 ~ 2[33] 0 ~ 10[34] 0 ~ 1[35] false, true[36] false, true[37] tick[45] 으로 카운트, 제한 없음[38] 전제 선택[39] 복사[40] 붙여넣기[41] .push()는 자바스크립트 에서 배열에 뭔가를 추가할 때 쓰는 함수[42] 태양쪽에 드랍됨[43] 스코어 최대치 9999999[44] 한국어로 해도 된다.