Garry's Mod
74 lượt đánh giá
게리모드 서버 만들기 (2019/10/26-2025/4/21)
Bởi 달러보다 싼 경유로 집 욕조를 가득채운 엔냥이
이 가이드는 게리모드 서버를 처음 열거나 숙달되지 않아 서툰 서버 개발자들을 위해 게리모드 서버 구축법 및 서버 내부 설정 방법을 작성해두었습니다.
작성자는 디시인사이드 게리모드 마이너 갤러리 매니저이며, 2017년(규모 안 따지면 2014년)부터 지금까지 다양한 서버를 운영중입니다.
또한 2018년부터 지금까지 해머 에디터를 통해 맵을 직접 만들어 서버에 제공하고 있습니다

가이드 상에서 추천드리는 애드온은 ULX 어드민 모드를 제외하고는 따로 없습니다. 좋은 애드온이라는 기준은(버그가 적다는 걸 빼면) 특별히 존재하지 않기 때문에 애드온을 직접 적용해보고, 탐색하여 자신의 서버에 맞는 애드온을 하나씩 넣어보시기 바랍니다.

좀 더 본격적이고 심화된 서버 개발에 관한 정보를 얻고싶다면 이 가이드에서 확인해보세요.

참고로 이 가이드에선 인터넷 설정법, 네트워크 연결 문제에 대해 다루지 않습니다. 해당 문제는 외적인 요인으로 공유기 및 모뎀 불량 뿐 아니라 방화벽 등 자잘하고 사소한 이유로 문제가 발생하기도 하며 이걸 따로 정리하기엔 끝이없습니다. 공유기가 뭐 한두대도 아니고 그러므로 이 문제는 직접 네이버 지식iN 등에 질문하여 주시기 바랍니다.

이 가이드에서 서버 및 대상을 특정할 수 있는 댓글을 작성하지 말아주시기 바랍니다. 이 가이드에선 서버의 "개발 및 운영"에 대해서만 다룹니다.

본인이 서버 개발에 관심이 있고, 이러한 주제의 대화를 "말이 통하는 사람들" 끼리 주고받고 싶나요?
게리모드는 침체기지만 게리모드 서버는 끝없는 컨텐츠들이 생겨나고 있습니다.
https://discord.gg/rbsPXvqN24
위 링크를 통해 게리모드 지박령들의 모임에 참여하세요
   
Giải thưởng
Yêu thích
Đã yêu thích
Bỏ thích
개요
일단 진지하게 개발할 생각이 없는 상태로 방문하셨다면 간단하게 설명드리겠습니다.
본인이 서버를 만드는 입장에서, 상대방과 같거나 상대방이 더 많은 애드온이 구독되있는 상태로 서버를 만드셔야 하며, 메인 화면에서 새로운 게임 시작을 누른 뒤 우측에 싱글 플레이어를 누르시면 2플레이어, 4플레이어 등 선택 메뉴가 확장되는데 이중 원하는 플레이어 수를 정한 뒤 비번을 걸건 뭘 하건 미리 최소한의 보안정도는 설정해둔 다음에 게임 만들기를 선택하시면 됩니다. 모드를 변경하고픈 경우에는 우측 하단에 Sandbox로 지정되어 있는 버튼을 눌러 다른 모드로 변경한 다음 해당 모드와 호환되는 맵을(예를들어, Trouble in Terrorist Town 모드와 호환되는 맵의 이름은 TTT_ 로 시작됩니다) 고르셔서 서버를 열으시면 모드 적용이 될 것입니다. 만약 서버를 파기 전 서버를 방문한 상태라면 게리모드를 재접속 해야 정상적으로 모드 충돌 없이 서버를 여실 수 있을 것입니다.

또한 메인 메뉴에서 서버를 만들 때, 피어 투 피어 혹은 피어 투 피어(친구만) 기능을 이용하면 외부에 서버가 노출되지 않고 지인들끼리 서버를 이용할 수도 있습니다.
다만 접속은 오직 스팀 초대로만 가능합니다.

이 상태에서 애드온 자동 다운로드는 관련 애드온을 설치하거나 애드온 모음집을 만들어 호스트의 구독 목록과 똑같은 애드온을 설치하게끔 해야합니다.

필자는 게리모드 서버/맵/게임모드 등을 개발하는 현역 개발자입니다. 기존 한국 게리모드 서버들의 고질적 문제들을 파악하여 게리모드의 가능성을 일깨워주기 위해 다양한 모드들을 연구하여 유저들에게 제공하고 있습니다.

본격적인 설치에 앞서 게리모드를 구동할 수 있는 PC의 요구사양은 다음과 같습니다.

동작 주파수 2.00GHz 이상의 싱글코어 프로세서(CPU) 용량 4GB 이상의 RAM 메모리 4.5GB 이상의 디스크 여유 공간

하지만 평균적으로 원할한 서버를 위한 최소사양은 아래와 같습니다.
위 사양으로도 서버를 구동할 수 있으나, 메모리 용량에 의해 일부 프로그램이 강제 종료될 수 있습니다.

동적 주파수 3.00GHz 이상의 듀얼코어 프로세서(CPU) 용량 6GB 이상의 RAM 메모리 외장 그래픽 카드 8GB 이상의 디스크 여유 공간

본인 PC사양은 "내 컴퓨터"에 우클릭 > 속성에서 디스크/그래픽 카드를 제외하고 확인하실 수 있습니다.

또한 미리 인터넷 포트포워딩 및 DMZ 설정이 이루어져있어야 합니다.
그렇지 않을경우 공유기/모뎀상으로 연결된 기기만 접속할 수 있습니다.

포트포워딩 및 DMZ 설정은 통신사 기기 및 세대별로 다 틀려서 일일이 설명하기에 너무 길어지므로 아래에 링크를 남겨두겠습니다.

DMZ 설정 해시태그에 따른 네이버 지식iN 질문들[kin.naver.com]
iptime 기준 공유기 설정방법[m.blog.naver.com]
STEAMCMD | 본격적인 설치
우선 STEAMCMD를 다운받습니다.
다운로드 링크(자동 다운로드이므로 주의)
(스팀 공식사이트라 url 뒤에 닷컴표시가 나오지 않습니다)

압축파일 내용물을 실행하기 위해 압축을 해제할 위치에 파일을 만들어둡니다. 아무곳에나 해제해도 되는데 업데이트하려면 알기쉽게 한곳에 있어야하니 되도록 바탕화면을 제외한 눈에 띄는곳에 해제하시기 바랍니다

압축 해제 후 steamcmd.exe를 실행하면 뭔가 받아지기 시작하면서 steamcmd 외 여러 파일들이 생겨나기 시작할 것입니다.
조금 기다리시면 done! 하고 뭐시기 뜨면서 그 이후로부터 명령어를 입력할 수 있습니다. steamcmd를 종료했다 재실행 해도 똑같이 입력하실 수 있으니 아래절차를 바로 따르실 필요는 없습니다.

그 다음에는 "force_install_dir 파일경로(예를들어 D:\gmodserver. 그냥 파일 탐색기에 경로 복붙해도 될겁니다 아마)" 를 입력하고 엔터(" " 부분 빼시는거 잊지 마시고 한글은 나중에 경로 인식 문제가 생길 수 있으니 영어로 작성하세요)

위는 파일 경로 지정 명령어이며 위 절차를 생략시 steamcmd.exe가 위치한 파일에 폴더 중 steamapps 폴더 안에 설치가 진행됩니다.

위에 파일경로대로 본인이 직접 파일을 만들어두지 않아도 알아서 파일을 만들고 설치준비를 합니다.

여기서 "login anonymous"를 입력하고 엔터를 누릅니다. 이 절차는 익명 계정으로 로그인하는 절차이며 본인 계정으로 로그인해봤자 시간만 더쳐먹는 짓이므로 그냥 익명로그인 기능을 사용하시기 바랍니다.

그다음엔 "app_update 4020"을 입력합니다.

참고로 "게리 모드"와 "게리 모드 서버"의 코드가 다릅니다. 다른 숫자를 입력하진 마세요 다른 게임 서버 만드시는게 아니라면

아무튼 위 명령어를 입력한 뒤엔 차분히 기다려주세요. 이 이후는 인터넷 속도에게 맡기셔야 합니다

다운이 완료되어 app 4020 successfully updated 라고 뜨면 exit 혹은 quit를 입력하거나 그냥 닫기 버튼을 누르시면 됩니다.

그러고 난 후 force_install_dir 에 입력했던 파일경로를 따라 가면 짜잔! 서버파일이 완성되었어요!

이 이후로 서버파일을 많이 건드려야 하므로 전문 텍스트 에디터(개인적으로 Notepad ++[notepad-plus-plus.org]를 추천드립니다) 를 설치해주시기 바랍니다.

위 절차를 따라서 설치가 진행되었다면 본격적으로 서버 개발을 시작할 준비가 끝난것입니다.

서버 업데이트를 바로 할 수 있는 바로가기를 만들고싶은 경우 steamcmd.exe 바로가기를 생성한 뒤
STEAMCMD경로\steamcmd.exe +force_install_dir C:\GmodServer +login anonymous +app_update 4020 validate -beta x86-64
이런 형식으로 속성의 대상 라인에 입력할 경우 해당 바로가기 실행시 업데이트가 바로 실행 될 것입니다.
서버 열기 전 주의사항
서버 내에 성적 수치심을 주는 컨텐츠, 서버 정보 위조 등 비허가된 기술로 서버를 변조하는 행위, 플레이어에게 지나치게 악의적인 행위를 하는 시스템 애드온 등 일반적인 유저들에게 유의미한 신체, 정신적 피해를 노골적으로 주는 행위를 하는 서버가 존재할 경우 해당 서버는 블랙리스트 처리되어 해당 서버에 등록된 계정을 통한 서버 운영이 정지될 수 있습니다.

소규모로 친구들끼리 노는거면 별일 없는데 공개 서버 목록에 등록된 서버일 경우 서버 이용에 불이익 혹은 정지를 당할 수 있습니다.

또한 sv_location의 국기와 아이피상의 국가가 다를 경우에도 불이익을 얻을 수 있습니다.

그냥 setsteamaccount 쓰지 않는 선에서 이 문제를 해결할 수 있습니다.
서버를 열 준비 - CFG | 서버 기본 설정
우선 다른 서버들처럼 서버에다 이름도 짓고 서버에 필요한 애드온도 추가해야 할 것입니다.

일단 서버파일에서 garrysmod 파일에 들어간 다음 cfg 폴더에 들어가면 용량이 0KB인 server.cfg가 보이실겁니다. Notepad++로 실행해줍시다.

만약 server.cfg가 없거나 실수로 지웠을 경우에는 cfg 폴더에 새 텍스트 문서 만들기 해서 이름을 server.cfg로 바꿔주고 적용시켜주세요. 그전에 폴더명에 확장자(.exe, .txt 등 뒤에 붙는 알파벳)이 표시되게끔 설정하셔야합니다. 하는 방법을 모르실 경우 웹서핑을 추천드립니다.

만약 편집하려면 프로그램을 탐색해야 하는 백지 아이콘으로만 보이신다면 server.cfg에 우클릭 > 속성 > 연결 프로그램에서 Notepad ++를 선택해주고 적용시켜 두세요.

열면 진짜 그냥 아무 내용도 없을겁니다. 있을 수도 있으나 어차피 아래 텍스트로 덮어씌울 것입니다.

해당 cfg 파일에 아래 내용을 복붙해주세요
// 서버 기본설정 "sv_location" "kr" // 국가를 나타냅니다. 이를 변경하지 마세요. 제발 "hostname" "서버이름" "rcon_password" "" // 꽤 심오한 기능을 하므로 전문가가 아닐경우 비워두세요. 내용이 있을 경우 활성화 되는 기능입니다 "sv_password" "" // " "안에 내용을 입력할 경우 내용대로 비밀번호가 적용됩니다. "sv_region" "4" // 지역 번호이며, 서버를 검색하고자 하는 지역에 따라 목록이 필터링됩니다(0-미국 동부 1-미국 서부 2-남미 3-유럽 4-아시아 5-호주 6-중동 7-아프리카 255-기본값) "sv_lan" "0" // 1로 하여 LAN 서버로 열 경우 유선상 연결된 PC만 접속 할 수 있습니다 "sv_downloadurl" "" // 애드온으로 올릴 수 없는 재질/맵/모델/음성 파일들을 웹쉐어 등을 통해서 다운받을 수 있게 합니다. 형식은 ???.???.??.???(포트는 웹쉐어 설정에 따라 유무 다름)/파일명(maps,models,materials가 포함된 상위 문서) "sv_loadingurl" "" // 로딩화면 주소. 아무 사이트 다 작동됨 "sv_contact" "" // 서버 개발자의 이메일 주소. 개발자 한명이 종일 부대끼는 국내서버 특성상 잘 사용되지 않는 기능이므로 비워두세요 "sv_steamgroup" "" // 위와 비슷한 기능인데, 스팀 그룹입니다. 해당 그룹 관리자로서 그룹 설정 최상단을 보면 ID가 뜨는데, 이를 입력하면 됩니다(예: 28610072) "p2p_enabled" "0" // 서버에 P2P 기능을 활성화합니다. "p2p_friendsonly" "0" // 서버에 P2P가 켜져있을 경우 P2P에 친구 전용으로 활성화합니다. "hide_server" "0" // 서버를 목록에 표시하지 않습니다. 0은 비활성화(서버 목록에 정상 표시) 입니다. // 모드 기본설정 "sv_cheats" "0" // 1로 하면 서버 내 치트가 허용되는데 게임자체가 치트니 안 하는거 추천 "sv_allowcslua" "0" // 1로할 시 클라이언트에서 lua 기능을 사용하게 하는데, 게리 핵은 대부분 이게 켜진상태여야 작동하므로 꺼두셈. "sv_kickerrornum" "0" // 바로 위 allowcslua 에서 클라이언트 에러시 플레이어를 강퇴시키는 기능. 애드온 충돌시에 대규모 탈주현상이 발생할 수 있으므로 순정모드 돌리는거 아닌이상 놔두는거 추천 "" "sbox_godmode" "0" // 플레이어 피해 여부. 0은 끄는거 1은 켜는거 "sbox_playershurtplayers" "1" // 플레이어 간 데미지를 입힐 수 있는지에 대한 여부. 0은 끄는거 1은 켜는거 "sbox_noclip" "1" // 노클립 설정. 0은 끄는거 1은 켜는거 "sbox_weapons" "0" // 스폰할 때 하프2 모든무기로 스폰하려면 1, 게리건, 카메라, 툴건만 갖고 스폰하려면 0 "sbox_persist" "" // 영구 유지 설정. 입력값은 영문 파일명임(예: sbox_persist "toybox"). 비어있을 경우 영구 유지 적용 및 설정 안 됨. "mp_falldamage" "0" // 속도에 기반한 현실적인 낙하 데미지 활성화 여부. 0일 경우 10 고정 "mp_flashlight" "1" // 손전등 기능 활성화 여부. 0일 경우 사용 불가 단 무기에 장착된 손전등과 같은 스크립트 형식의 손전등은 자체적으로 계속 활성화 상태 "sv_noclipspeed" "5" // 노클립 속도. 5가 기본값 "sv_pure_consensus" "5" // 서버 플레이어의 클라이언트 리소스를 제한. 값이 낮을 수록 더 많은 양이 제한되며 sv_pure 명령어로 자세한 내용을 확인할 수 있음 // 모드 제한 설정 "sbox_maxprops" "200" // 사물 최대 수 "sbox_maxragdolls" "8" // 레그돌 최대 수 "sbox_maxeffects" "10" // 이펙트(모델인데 초록 동그라미 붙어있는거) 최대 수 "sbox_maxsents" "24" // 엔티티 최대 수 "sbox_maxnpcs" "32" // NPC 최대 수 "sbox_maxvehicles" "18" // 탈것 최대 수 "sbox_maxcameras" "4" // 카메라 최대 수 "sbox_maxdynamite" "6" // 다이너마이트 최대 수 "sbox_maxbuttons" "12" // 버튼 최대 수 "sbox_maxlamps" "8" // 전등 최대 수 "sbox_maxlights" "8" // 불빛 최대 수 "sbox_maxthrusters" "16" // 추진기 최대 수 "sbox_maxwheels" "16" // 바퀴 최대 수 "sbox_maxballoons" "16" // 풍선 최대 수 "sbox_maxemitters" "6" // 이미터 최대 수 "sbox_maxhoverballs" "12" // 호버볼 최대 수 "gmod_maxammo" "9999" // 무기별 최대 탄약량 "sbox_bonemanip_player" "0" // 플레이어의 뼈 조정 활성화 여부 "sbox_bonemanip_npc" "0" // NPC의 뼈 조정 활성화 여부 "sbox_bonemanip_misc" "0" // 레그돌 등의 모델에 뼈 조정 활성화 여부 // NPC 설정 "ai_disabled" "0" // AI 비활성화 "ai_ignoreplayers" "1" // 플레이어 무시 "ai_force_serverside_ragdoll" "0" // 시체 유지 // 서버 커뮤니케이션 설정 "sv_allow_voice_from_file" "1" // 히스 활성화 여부임 "sv_use_steam_voice" "0" // 스팀 음성채팅 코덱 활성화 여부인데, 켜거나 끄거나 본인마음 "net_maxfilesize" "64" // 클라이언트가 받을 수 있는 파일 하나당 최대 MB 크기 수치입니다. // 애드온 cvar 명령어(이곳에는 특정 애드온들이 설명 상으로 요구하는 cvar 명령어를 입력하세요) "sv_tfa_cmenu" "1" // TFA 베이스 무기들 C메뉴 사용 여부 "pac_sv_projectiles" "1" // PAC3 발사체 사용 가능 여부

만약 한글이 정상적으로 출력되지 않고 특수 문자로 보이실 경우 Notepad++ 상단의 인코딩 > UTF-8(BOM 없음)로 표시 를 선택해주세요

// 애드온 cvar 명령어 아래에는 말 그대로 애드온에서 기본적으로 설정해야 하는 명령어를 입력하는 것입니다. 와이어 갯수 제한 및, pac 발사체 활성화 여부 등을 입력하시면 됩니다

위 내용을 복붙하시고 원하시는 대로 설정하셨다면? 짜잔! 서버 내부의 기본 설정이 끝났습니다!

DarkRP 혹은 기타 다른 모드를 진행하거나, 서버의 컨텐츠 혹은 본인이 원하여 서버에 카솟 혹은 팀포2등 다양한 게임의 패치를 원할 때가 있습니다.
그럴 때에 게임 마운트 기능을 이용하여 다른 게임들의 컨텐츠를 마운트할 수 있습니다.
서버 파일의 cfg로 이동하여 mount.cfg에서 이러한 마운트 경로를 지정할 수 있습니다.
"mountcfg" { "tf" "K:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2\tf" "cstrike" "K:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Source\cstrike" "infra" "E:\SteamLibrary\steamapps\common\infra\infra" "csgo" "K:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo" "left4dead2" "K:\Program Files (x86)\Steam\steamapps\common\Left 4 Dead 2\left4dead2" "left4dead" "K:\Program Files (x86)\Steam\steamapps\common\left 4 dead\left4dead" "ageofchivalry" "K:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2007\ageofchivalry" "swarm" "E:\SteamLibrary\steamapps\common\Alien Swarm\swarm" "berimbau" "K:\Program Files (x86)\Steam\steamapps\common\Blade Symphony\berimbau" "dod" "K:\Program Files (x86)\Steam\steamapps\common\Day of Defeat Source\dod" "dinodday" "K:\Program Files (x86)\Steam\steamapps\common\Dino D-Day\dinodday" "diprip" "K:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2007\diprip" "dystopia" "K:\Program Files (x86)\Steam\steamapps\common\Dystopia\dystopia" "fof" "K:\Program Files (x86)\Steam\steamapps\common\Fistful of Frags\fof" "hl2mp" "K:\Program Files (x86)\Steam\steamapps\common\Half-Life 2 Deathmatch\hl2mp" "episodic" "K:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\episodic" "ep2" "K:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\ep2" "lostcoast" "K:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\lostcoast" "hl1" "K:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\hl1" "hl1_hd" "K:\Program Files (x86)\Steam\steamapps\common\Half-Life 2\hl1_hd" "insurgency" "K:\Program Files (x86)\Steam\steamapps\common\Source SDK Base\insurgency" "nucleardawn" "E:\SteamLibrary\steamapps\common\Nuclear Dawn\nucleardawn" "portal" "K:\Program Files (x86)\Steam\steamapps\common\Portal\portal" "portal2" "K:\Program Files (x86)\Steam\steamapps\common\Portal 2\portal2" "thestanleyparable" "K:\Program Files (x86)\Steam\steamapps\common\The Stanley Parable\thestanleyparable" "Zeno_Clash" "K:\Program Files (x86)\Steam\steamapps\common\Zeno Clash Models\Zeno_Clash" "pvkii" "K:\Program Files (x86)\Steam\steamapps\common\pirates, vikings and knights ii\pvkii" }
위 mount.cfg파일 경로는 게임의 컨텐츠 파일 경로이며 모두 실제로 제가 서버에 사용하는 경로입니다.
G Strings 제외하고 모든 게임이 마운트 되어 있으니 이를 참고하시면 됩니다.
참고로 일부 게임 파일은 직접 구매하여 설치할 필요 없이 데디케이트 서버 열듯 서버 파일을 통해서 적용할 수도 있습니다. 또는 패치파일을 경로로 지정하여 마운트할 수 있습니다. 파일 자체만 필요할 뿐 해당 파일의 순정 여부는 필요 없습니다.

또한 마운트 여부를 mountdepots.txt를 통해 제어할 수 있습니다. 참고로 두 파일이 없을 경우 그냥 새로 생성하면 됩니다.

"gamedepotsystem" { "hl2" "1" "cstrike" "1" "tf" "1" "dod" "1" "ep2" "1" "episodic" "1" "hl2mp" "1" "lostcoast" "1" "hl1" "1" "hl1mp" "1" "zeno_clash" "1" "portal" "1" "diprip" "1" "zps" "1" "pvkii" "1" "dystopia" "1" "insurgency" "1" "ageofchivalry" "1" "left4dead2" "1" "left4dead" "1" "portal2" "1" "swarm" "1" "nucleardawn" "1" "dinodday" "1" "csgo" "1" "berimbau" "1" "infra" "1" "fof" "1" "thestanleyparable" "1" }
해당 기능을 이용하여 서버에 다른 게임을 마운트할 수 있습니다. 만약 마운트 활성화 여부를 요구하는 애드온을 사용한다면 필수적으로 거쳐야 합니다.
서버를 열 준비 - 애드온 추가/변환/자동다운
애드온을 넣는 방법은 2가지 정도가 있습니다. +host_workshop_collection을 사용하는 것과, 그냥 설치한 애드온을 변환해서 서버에 넣는것입니다.

+host_workshop_collection 기능은 호스트 서버에 창작마당 모음집 내에 아이템을 서버가 실행될 때에 자동으로 최신 버전으로 업데이트하고, 서버에 적용시키는 것입니다.

항상 최신 버전으로 업데이트 된다는 편리함이 있으나 파일을 편집할 수 없고, 해당 애드온이 삭제되면 그냥 애드온 이용을 못 하게 되니 어지간해선 사용되지 않는 기능입니다. 병용해도 되지만 애드온이 많을수록 관리가 까다로워질 것입니다.

+host_workshop_collection 기능을 사용하시려면 아래에 후술되어 있는 서버 실행기인 server.bat 파일에 시작 설정에서 -console 다음에 +host_workshop_collection @모음집 번호@ 를 넣으시면 됩니다. @ 부분은 빼세요. (예: ...-console +host_workshop_collection 1898501326 +map gm_...)

다음은 그냥 설치한 애드온을 변환해서 서버에 넣는 것입니다.
파일을 직접 편집할 수 있고, 애드온이 삭제되어도 서버에선 (온라인 DB를 사용하는게 아닌이상 대부분의 애드온은)정상적으로 작동하여 추천드리는 방법입니다. 다만 애드온이 업데이트 되었을 시 매번 새로 적용시켜줘야 한다는 번거로움이 있습니다.

우선 바탕화면 등 눈에 띄는곳에 폴더를 하나 만듭니다. 다만 저장공간에 여유가 있는 드라이브여야 합니다.

그곳에 압축을 풀어주고 본인 게리모드(서버말고 게임. 속성에서 로컬콘텐츠 폴더보기 통해 바로 이동가능) 파일로 이동합니다.

거기서 bin 파일에 들어가면 gmad.exe 라고 있습니다. 그걸 아까 만든 폴더에 복사 붙여넣기 해줍시다.

그러면 이제 애드온 변환할 준비가 된겁니다! 애드온을 받고 본인 게리모드 파일에서 garrysmod 파일로 들어간 다음 cache 파일로 들어간 뒤 workshop 에 들어가서 날짜순으로 정렬하게 되면 최근 구독하거나 업데이트된 애드온이 우선적으로 올라오게 됩니다. 만약 안 보일 경우 게리모드를 실행해두세요. 실행중에만 애드온이 설치되어 workshop에 표시됩니다. 확인은 스팀 창작마당 애드온 주소의 우측 끝 고유 숫자를 통해 검색하여 찾으면 됩니다.

위 cache 파일에 뜨지 않는 gma 파일이 있는데 걔네들은 ~ steamapps\workshop\content\4000 쪽에서 찾으실 수 있을겁니다. bin으로 뜨는 애드온은 addons 파일에 이미 gma상태로 있다는 뜻이므로 굳이 까볼필요 없습니다. 만약 bin 으로는 설치가 되었다 하는데 gma 파일이 존재하지 않을 경우, 설치 오류이므로 해당 애드온을 인게임 메뉴에서 삭제 후 재설치해보시기 바랍니다.

또한 +host_workshop_collection 을 통해 받아진 애드온을 변환시키는 방법을 사용할 수 있는데, 서버\steam_cache\workshop\4000 과 2018년 이전 애드온들은 서버\garrysmod\cache\srcds 경로에 받아져 있을 것입니다

아무튼 어느 경로로든 받은 gma를 복사해서 GMAD.exe 파일에 집어넣습니다. 그냥 폴더에 넣듯이요!

그러면 바로 압축해제가 진행되면서 gmad.exe 파일이 있는곳에 애드온 압축해제된 파일이 생길겁니다.

다른 방법중 하나가 애드온을 대량으로 한번에 변환하는 방법입니다.

이 압축파일을 다운로드 받으시고

gmad.exe가 있는 파일에 사이좋게 내용물중 하나인 Gmad - Easy Addon Extractor.exe를 넣어줍니다

준비는 이제 끝입니다! 서버에 넣고싶은 .gma 상태의 애드온 파일들을 모두 두 gmad 가 있는곳에 넣어주고 Gmad - EAE(줄여서 칭하겠습니다)를 실행해줍니다.

cmd 파일이 실행되면서 뭔가 쭉 뜨는데 좀 기다리면 press any key! 이렇게 뜨거나 y/n으로 승낙 거절 여부를 묻는데 여기서 y가 승낙이고 n이 거절입니다.

y/n의 질문내용은 압축 풀었던 애드온의 내용물을 따로 한 파일에 몰아넣기 하는지에 대한 여부입니다. 몰아넣기시 서버 여는 속도가 빨라지지만 애드온이 뭉쳐지므로 나중에 애드온을 따로 업데이트하거나 파일을 나누게 될 때에 꽤나 힘들어집니다.

아무튼 이후 애드온 압축해제가 끝났다면 서버파일 내에 garrysmod/addons(애드온폴더는 addons 라는 이름으로 새로 만들어야 할 수 있습니다)로 이동시켜주세요

참고로 애드온 경로는 "server/garrysmod/addons/애드온 이름" 형식이여야 하며 애드온 이름 안에는 lua&materials&models&plugin 과 같은 이름의 폴더가 있어야합니다. .git&bin 이런 파일은 작동하지 않을 것입니다.

애드온 넣는법은 이게 전부입니다. 애드온마다 필요한 요구사항이 다르거나 제3자 프로그램이 필요한 경우도 있으므로 넣기전에 반드시 애드온의 설명을 확인해주시기 바랍니다.

이제 유저들이 접속할 때 서버 애드온을 자동으로 받게 만드는 방법입니다.

이는 거의 필수적이며 이 절차를 밟지 않으면 접속하는 유저가 사전에 구독한 애드온이 아닐 경우 에러가 발생할 수 있습니다

서버파일의 garrysmod/lua/autorun/server에 들어가서 텍스트파일 하나를 생성. 이름을 영문 아무이름으로 짓고 확장자를 .lua로 지정해주세요. 또한 .lua 확장자 연결프로그램을 노트패드++로 지정해두세요

그 파일을 연 다음
resource.AddWorkshop("애드온 고유번호") 를 입력해야 합니다

근데 여기서 고유번호가 뭔지 모르는분들이 있을텐데, 애드온 파일이 .gma 상태일때 그 애드온 이름 뒤 혹은, 창작마당에서 해당 애드온의 링크 뒤에 쓰여있는 일련의 숫자가 고유번호입니다

아무튼 위 내용 입력한 다음에 복사해서 서버 애드온 수만큼 붙여넣어서 고유번호를 하나씩 입력하셔야 합니다.
resource.AddWorkshop 하나당 한 애드온만 넣어야하며 겹쳐서 작성할 시 인식하지 않습니다.
만약 서버 애드온 모음집을 먼저 만들어두었다면 해당 링크[www.yourdevtools.com]에서 Collection ID 란에다가 모음집 끝자리 숫자만 넣고 우측 하단의 Generate Code 를 누르면 아래에 자동으로 모음집 코드가 작성됩니다. 코드가 생성되면 초록색 Copy Code 라는 버튼을 누르면 내용이 복사됩니다.
이 내용을 앞서 생성한 lua 파일 안에 붙여넣으면 됩니다.

참고로 말씀드리지만 애드온 파일 열었을때 lua, scripts 얘네만 껴있는 툴, 스크립트 애드온은 자동다운 굳이 시킬필요가 없습니다. lua, script 파일 내부에 있는 요소들은 서버에서 처리하는 것이기 때문에 maps, models, materials, sounds, particles 이런 파일들을 포함하는 애드온만 자동다운을 시키시면 됩니다.

lua, script 만 있는애들은 대부분 도구랑 체력바가 해당한다 볼 수 있으며 무기, 차량, 플레이어모델, 맵일 경우에는 반드시 자동지정 하셔야 합니다. 이중 일부 예외의 경우가 있긴 하므로 주의하셔야합니다.

이걸 처음 넣는것이 지나친 반복 작업을 요구하지만 이후 업데이트할때는 업데이트된 애드온들만 손보면 되므로 장기적으로 보았을때는 현명할 수 "도" 있습니다.
서버를 열 준비 - SRCDS | 서버실행기
우선 srcds.exe가 있는 서버파일로 이동한 상태에서 새 텍스트 문서를 만들고 이름을 "새 텍스트 문서.txt"에서 "server.bat" 으로 바꾸세요

그러고나면 뭔가 아이콘이 바뀌는데 그거 그대로 클릭하지 말고 우클해서 노트패드로 수정하기를 눌러주세요. 이는 서버 실행기이므로 시작 프로그램 지정을 노트패드로 하진 마세요.

파일 내용은 아래 양식을 따르세요
@echo off cls echo Protecting srcds from crashes... echo If you want to close srcds and this script, close the srcds window and type Y depending on your language followed by Enter. title srcds.com WatchDog :srcds echo (%time%) srcds started. start /wait /@@아래 설명@@ srcds.exe -console +map @@@@@맵이름@@@@@ -maxplayers @최대 플레이어수@ -port 27015 +gamemode @게임모드@ -tickrate 60 +r_hunkalloclightmaps 0 +sv_pure 0 +sv_setsteamaccount "서버 토큰" +host_thread_mode 2 +mat_queue_mode 2 echo (%time%) WARNING: srcds closed or crashed, restarting. goto srcds
@내용@ 이 형식에서 @부분은 빼시기 바랍니다. 저 부분만 반드시 설정해야 하기에 따로 표시해 둔 것입니다

/@@아래 설명@@ 으로 된 부분은 srcds.exe 프로그램을 실행할 때에 우선 순위를 미리 정해두는 것입니다.
순위는 높은 순서대로 /realtime /high /abovenormal /normal /belownormal /low 이며, 이중 하나만 지정해주세요.
또한 @@아래 설명@@ 바로 옆 srcds.exe에서 x86-64같은 64비트 환경에서 서버를 구동하려 할 경우 srcds_win64.exe로 내용을 변경하셔야 정상적으로 64비트 환경에서 서버가 구동될 것입니다.

여기서 @@@@@맵이름@@@@@은 gm_bigcity같은 말그대로 맵 이름을 말하는 것이며 비워두거나 해당 이름의 맵이 없을 경우 서버가 열리지 않습니다
@최대 플레이어수@는 최소 2명에서 128명까지 지원합니다. 1명으로 지정시 서버가 노출되지 않습니다.

@게임모드@는 gamemodes 파일에서 찾을 수 있는 모드의 영문명을 입력해야합니다. 파일명으로 입력하십시오. 샌드박스로 여실 경우 sandbox 를 입력하고 trouble in terrorist town은 terrortown을 입력하면 됩니다.

-tickrate 60은 틱레이트로, 서버 초당 연산 횟수인데, 30으로 하면 저사양 설정이며 67 이상 128 이하(128 이상으로는 체감이 안감)는 고사양 설정입니다. 이 부분은 빼도 상관 없습니다.

sv_pure 의 경우에는 클라이언트에서 갖고오는 커스텀 스킨 등을 서버에서도 적용할지 여부인데, 그냥 빼도 되고 뭐 순정 게리를 원하면 1이나 2로 지정해도 됩니다.

그리고 +sv_setsteamaccount "서버 토큰" 은 어찌 하는거냐면,이 링크를 들어가시면 서버 토큰을 만들 수 있는데, 하단에 새로운 게임 서버 계정 만들기 에서 기본 게임의 앱 ID 에 우선 4000(게리모드 스팀 ID)을 입력하시고
메모에는 여실 서버 이름이나 뭐시기 아무거나 써주신 다음 아래 만들기를 누르셔서 서버 토큰을 만들어주시고 생성된 로그인 토큰을 복사하여 위 "서버 토큰" 란에 따옴표(" ")를 지우시고 넣어주시기 바랍니다.

+host_thread_mode 2 +mat_queue_mode 2 는 서버 스레드 설정 여부인데, 호스트 스레드 모드는 0,1,2 로 설정이 나눠지며 0은 비활성화고, 1은 활성화이며 2는 강제 활성화입니다.
바로 옆 큐 모드에서 -1은 기본값 설정이며 0은 단일 비 동기 스레드로만 연산, 1은 동기 스레드로 연산, 2는 다중 스레드 연산입니다. 평균적인 사양이라면 둘 다 2 그대로 놔두면 됩니다.

-p2p 기능은, 위 예제가 공개 서버 기준이기에 별도로 기재되진 않았으나, -console 란 뒤쪽에 배치할 경우 sv_setsteamaccount 에 입력된 토큰 계정을 기반으로 구동하는 P2P 모드로 변환합니다. 이는 서버가 정상적으로 열렸을 경우 서버 콘솔에 접속 가능한 공용 P2P 주소를 부여합니다. 다만 SRCDS의 특성상 네트워크 트레픽 자체는 그대로 가동되므로, P2P 기능은 가급적 소규모 서버를 구동할 때에만 사용하는 것을 추천드립니다.

앞서 설명한 +host_workshop_collection은 이곳에 추가하는 것입니다

나머진 특별히 건드릴 것이 없습니다. 그렇게 세팅하고 난 뒤에 "server.bat" 파일을 실행하면 짜잔! 이전에 얘기한걸 제대로 따르셨다면 서버가 문제없이 구동 될 것입니다.

server.bat 코드 출처
http://blog.naver.com/zetasys01/70178018814

일부 PC는 해당 기능을 지원하지 않아 .NET Framework 4.8 버전이 설치된 PC의 경우 아래 주소에서 설명하는 프로그램을 이용하시기 바랍니다. 이에 대한 내용은 조만간 가이드에 적어두도록 하겠습니다.
https://github.com/LambdaGaming/GMod-Server-Launcher-Console/releases
서버를 열은 후 - ULX | 관리자 추가하기
서버를 운영하려면 관리자가 필수적으로 있어야 합니다.
단순이 없다 수준으로 해선 안 되는 것이, 관리자만을 위한 특수한 기능들이 있기 때문입니다.
관리자를 추가하는 방법은 아래와 같습니다.

ULX 사용시

서버 srcds 콘솔에 ulx adduser 본인닉네임일부(한글안되면영문이나숫자로지정) superadmin

ULX 없이 순정상태에서

garrysmod\settings\users.txt 를 들어가 보면
"Users" { // // This is your users file // // You can use this file to add people as admins on your server // Add them to the relevant section // // If you're a Lua coder you can add your own sections and use them // in your script by doing pl:IsUserGroup( "admin" ) etc // "superadmin" { //"garry" "STEAM_0:1:7099" } "admin" { //"garry" "STEAM_0:1:7099" } }

대략 이렇게 적혀 있는데

여기서
"superadmin" { "닉네임" "스팀 고유번호" } 형식으로 입력하면 됩니다.
서버를 열은 후 - 서버에 접속하기
ULX 어드민 모드를 사용하는 공개서버를 기준으로 작성하므로 이점 참고바랍니다.

우선 본인의 서버가 있는지를 확인하려면 서버 실행기 bat 파일을 실행하셔서 cmd가 VAC secure mod is activated 라고 출력될때까지 기다리시다 이 메세지가 출력될 경우 게리모드 실행 후 멀티플레이어 게임 찾기에 들어가셔서 로컬 네트워크를 들어가시면 본인의 서버가 있을겁니다(없을경우 새로고침).

하지만 타인에게 자신의 서버가 보이지 않을 수 있으므로 인터넷 목록에서 본인의 서버가 있는지 새로고침을 해본 다음 bat 에 입력해둔 게임모드 이름을 통해 서버를 탐색해보세요. 비밀번호가 걸려있지 않는 이상 우선순위 상위권에 있을겁니다.

서버가 보일 경우 서버 제목을 더블클릭 하여 접속하고, 정상적인 접속이 이루어질 경우 서버를 운영할 준비가 된겁니다
서버를 열은 후 - 유저 유입 및 관리
혼자할거면 싱글파고 말지, 서버를 열었으면 유저가 따라와야겠죠?

주변 서버 운영자들에게 친구추가를 보내 서버 운영법 등을 직접 채팅으로 물어보시면 저를 포함한 대부분의 관리자들이 존나 귀찮아서 대부분 건성으로 대답할겁니다.

그런 일을 방지하기 위해 미리 운영에 관하여 몇가지 알아둬야할 사항을 알려드리겠습니다.

최대한 유저 중심적으로 가치관을 두고 작성하였습니다.

1. 서버 운영 기간
서버의 명성과 인지도가 높기를 원한다면 장기적으로 운영되어야 합니다. 다만, 그냥 서버하나 띡 열고 방치해두어선 안 됩니다. 꾸준한 관리 및 피드백 반영 및 문제에 대한 빠른 개선 방안이 유저들에게 좋은 인상을 남길 수 있습니다.
그저 친한 사람들끼리 모여 노는 목적으로 만드는 단기간 서버라면 얘기가 좀 다른데, 허가된 유저만 입장할 수 있는 소규모 서버를 굳이 "관리"하거나 "운영"할 필요가 없기 때문입니다.
운영 기간이 짧더라도 서버를 열기 전 게리모드 업데이트 여부를 확인하면서 기초적인 기반을 튼튼히 다져둬야 합니다.

2. 현명한 관리자 선발
당신이 아무리 날고 기어도 사람 한 명 그 이상이 될 수는 없습니다. 결국 서버에서 잠시 손을 떼고 가정 혹은 사회의 일을 해결해야 하는 순간은 오게 될 것이고, 이를 미리 알아채거나 피하진 못합니다.
당신이 화장실 다녀오는동안 서버에서 아무 일도 일어나지 않는다고 이세상 그 누가 보장해 줄까요?
악의를 품은 누군가는 당신의 서버 맵 구석에서 툴건으로 서버테러를 준비하고 있을 것이고 또 다른 누군가는 왼손을 든 체 입에 담을 수 없어 손가락으로 입력하는 욕을 써내려가고 있을 것입니다. 그것들 혼자서 처리하기엔 정신적, 육체적인 피로가 상당합니다. 이러한 피로를 해소하진 못하더라도 최소한 그 작업을 다른 이와 분할해서 맡을 수는있죠. 그게 바로 관리자입니다!
일반적인 서버에서는 관리자 시험을 통해 관리자를 선발하는데, 대부분 미리 호스트나 운영자 간에 관계적으로 빌드업을 해둔 상태로 시험을 치기에 내부적으로 부패 문제가 있으며 이는 예전부터 지적되어온 사항입니다.
이러한 부패를 자각하긴 힘들긴 하지만 예방하는 것이 바로 구글 닥스 등의 기능을 통해 익명으로 시험을 치게 함으로서 능력있는 유저를 선발하는 것입니다.
32인 서버 기준 평균적으로 3-5명 정도의 관리자를 두는것이 매우 이상적입니다. 그런데, 만약 관리자가 문제를 일으킨다면?
여름이 있고 겨울이 있듯 사람이 아무리 온화하더라도 냉정해야할 순간이 있기는 마련입니다. 당신에겐 운영 권한이라는 최강의 무기가 있습니다. 절대 봐주지 마십시오. 사람이 선을 한번 넘었을 때 별거 아니란 것을 알게되면 더한 짓도 하게 됩니다.

3. 조리있는 유저 통솔과 문제 해결
당신의 서버에 들어오는 유저들은 당신의 친구가 될 수도, 적이 될 수도 있습니다. 이는 게임이라는 가상 세계의 특성상 매우 빠르게 진행됩니다. 하지만 유저들도 결국에는 개인입니다. 당신의 운영 방식을 보고 당신의 성격, 성향, 인격을 판단할 것입니다.
만약 서버 맵에 치명적 문제가 발생하였는데 당신을 제외한 모두가 그 문제를 신경쓰지 않고 맵을 마음에 들어한다면, 어떻게 해야 할까요?
갑작스레 맵을 바꾸면, 유저들은 적응하지 못 하고 떠날 것이고, 그렇다고 그냥 놔두면, 치명적 문제가 발생할 때 마다 스트레스가 쌓일 것입니다.
해답은 간단합니다. 맵의 문제가 서버의 장기적 운영에 발목을 잡을 것이고, 더 멋진 새 맵을 찾아나서겠다고 주변 유저들에게 알리는 것이 서버의 유저들을 유지시키는 매우 이상적인 방법입니다.
그러고 난 후, 맵을 여러개 가져와서 유저들에게 이중 어떤 맵이 좋겠느냐 물어보세요. 서버의 성격과 맞는 맵을 유저들이 골라 서버의 발전을 이끌어나갈 수 있으니까요!

4. 지속적인 업데이트를 통한 컨텐츠 공급
서버가 엄청 재밌습니다. 들어오는 유저들이 날리는 드립도 개 꿀잼입니다. 하지만 뭐가 문제일까요? 유저들이 점점 빠져나갑니다! 왜일까요?!
누군가는 피자를 좋아합니다. 그렇다면 평생 피자만 먹을 수 있을까요? 할 수는 있겠지만 그 사람의 건강은 그럴 수 없다고 말할 것입니다.
마약이 아닌 이상 매일 같은것만을 접한다면 싫증이 나기 마련입니다. 결국 매일 접하던 것을 끊게 될 것이고, 그 후로는 아주 가끔씩만 접하게 되거나, 아예 안 하기 마련입니다.
서버가 마약이였으면 좋겠지만, 안타깝게도 그건 매우 힘들 것 같네요
이러한 상황이 벌어지기 전, 서버에 지속적 컨텐츠 공급을 위한 업데이트가 이루어져야 합니다.
무기/차량을 최우선 맵/툴은 그 다음, UI, HUD 시스템 같은것들은 매우 가끔씩 변경해줌으로써 서버에 변화가 생김을 유저들이 체감하게 하는것이 유저들을 지속적으로 유입시키고, 서버의 장기적 운영을 더욱 순탄하게 해줄 것입니다.

5. 갑작스러운 상황에 대처하는 능력
갑자기 하늘에서 운석이 떨어져 하필 당신의 서버 컴퓨터만 박살내거나, 집에 도둑이 들었는데 도둑이 서버의 랜선을 모두 가져갔다면, 서버를 기다리는 유저들에게 어떻게 설명할 수 있을까요?
우선 그런 일이 발생하기 전 미리 유저들과 소통할 수 있는 공간을 마련해두어야 합니다. 대표적으로 게리모드를 제공하는 스팀의 그룹 기능이 그 일을 매우 훌륭히 수행해내고 있습니다.
그룹과 같은 유저간의 소통 공간을 마련해 둔 후, 서버에 접속하는 유저들에게 가입을 권유하거나 서버 내 시스템으로 광고를 해 두면, 서버에 관심이 있고, 서버가 언제 열리는지 혹은 서버의 업데이트 일자가 궁금한 유저들은 스스로 가입할 것입니다.
이러한 방식으로 유저들이 모인다면, 위와 같은 갑작스러운 상황에서도 유저들에게 상황을 설명해줄 수단이 생김으로서 서버가 다시 열렸을 때 들어오는 유저 수가 줄어드는 상황을 면할 수 있을 것입니다.

위와 같은 방법을 통해 서버를 장기적으로 운영할 수 있으며, 단기적인 서버(일명 하루살이 서버. 공포탈출맵 같은 곳)들은 해당하지 않음을 미리 알아두시기 바랍니다
서버를 열은 후 - APP_UPDATE | 서버 업데이트
안타깝지만 게리모드는 마인크래프트가 아닙니다. 그래서 게리모드에서 대형 업데이트가 이루어지면 이에 따라 서버도 업데이트를 시켜줘야 합니다.

서버를 어떻게 업데이트 하냐구요? 간단합니다. 본격적인 설치 란의 절차와 비슷하거든요. 한번 해보신다면 잊는편이 더 힘들겁니다.

이전에 steamcmd를 설치해두었던 파일로 이동해서 steamcmd.exe를 실행합니다.

그러고난 후 "force_install_dir 파일경로"를 입력해줍니다. 여기서 파일경로는 업데이트하고자 하는 서버파일의 로컬 콘텐츠 경로입니다. C:\myserver\gmodsv 식으로 지정되어야 합니다.

경로까지 입력 되었다면 "login anonymous"(익명 계정으로 로그인)을 입력하셔서 익명으로 로그인합니다. 그런 뒤에 "app_update 4020" 또는 "app_update 4020 validate"를 입력해줍시다. 두개의 차이점을 따지자면 전자는 그냥 게임 업뎃처럼 단순 업데이트고 후자는 업데이트와 동시에 게임 파일 무결성 검사인데
본인이 서버 lua나 스크립트 까서 개조시키는 하드코어식이 아닌 단순히 애드온 넣고 야 신난다 식으로 돌리는 서버를 운영하신다면 애드온 충돌이나 보안프로그램 오진으로 인한 서버파일 일부 증발현상이 생기기 전까진 굳이 validate 기능을 사용하실 필요가 없습니다.

아무튼 위의 방식중 하나를 선택하고 나서 엔터를 누르면 업데이트가 진행되고, 설치가 끝났다면 그후로 최신 게리모드에서 서버를 접속할 수 있게 됩니다.

추가로 공식 베타에 참여할 수 있는데, app_update 4020과 선택사항이지만 validate 사이에
-beta 를 입력하고 그 뒤에 dev, prerelease, x86-64중 하나를 입력하면 명칭에 해당하는 베타가 적용이 되어있는 상태로 업데이트할 수 있습니다.
예시: app_update 4020 -beta x86-64 validate

이를 바로 가기 링크를 지정하는 기능을 통해 바로 업데이트하는 기능을 만들 수도 있습니다.
예시: E:\steamcmd\steamcmd.exe +force_install_dir X:\nogari +login anonymous +app_update 4020 -beta x86-64 -quit
서버를 열은 후 - 서버 백업
시도해보지 않은 서버 개발 도중 서버 애드온 및 루아, 데이터베이스 충돌로 인해 서버가 작동하지 않는 경우 수정을 가해도 서버가 복구되지 않는 경우가 있습니다.
이러한 상황이 발생하지 않도록 사전에 서버 파일을 백업하는 것이 좋습니다.
garrysmod 내에서 고장 확률이 적은 순으로 cfg, lua, data, addons, server.db 파일을 백업해두고 문제가 발생했을 경우 데디케이트 서버를 새로 설치하여 앞서 설명한 파일들을 그대로 옮겨주면 대개 서버가 고장나기 전 상태로 돌아가므로 이 상태에서 서버에 생긴 문제의 원인을 다시 파악하는데에 도움을 줄 것입니다.
서버 애드온 - 그냥 둘러보는 곳
맵 애드온 전체 인기순

한 주간 핫한 애드온

유료 애드온 판매 사이트[www.gmodstore.com]

일일이 클릭하기 귀찮으실테니 이렇게 따로 모아두었습니다.
서버 애드온 - 애드온을 넣기 전 주의사항
게리모드 서버 애드온의 최대 용량 제한은 대략 480MB이였는데, 2020년 초쯤 게리모드의 창작마당 API 업데이트로 더이상 용량 제한이 없어졌습니다. 용량 제한이 없어져 개적화로 만들어진 애드온을 여러개 받아서 서버 하나에 잔뜩 쑤셔넣어버릴 경우 유저들은 당연히 들어오는 로딩시간에 지쳐 다른곳으로 떠나버릴 것입니다.

애드온들을 선발할 때에 우선적으로 봐야하는것이 먼저 용량입니다. 서버의 주력 컨텐츠가 아닌 애드온(플레이어 모델, 단순 모델팩 등)이 2-300MB씩 쳐먹는다면 서버에서 퇴출시키는것을 고려해봐야 할 것입니다.

지나치게 용량이 높아지면 들어오는 유저들의 로딩시간도 길어지고 그 애드온이 쌓는 캐시파일의 용량또한 매우 높아질 것입니다.

진짜 서버 주력 콘텐츠가 한쪽으로 치우쳐져있는게 아닌 이상 서버 애드온의 컨텐츠 용량은 1-2GB 이내로 잡고 애드온들을 골라야 할 것입니다. 애드온 용량을 측정하는것은 간단한데 그냥 서버에 addons 폴더를 우클릭해 속성을 눌러보시면 용량이 뜰겁니다.

만약 용량은 크지만 수요는 낮은 특정 콘텐츠를 원하는 소수 유저의 의견이 존재하고 이를 수용하길 원한다면, DLC 형식으로 따로 모음집을 만들어 이를 원하는 유저들에게만 따로 제공해줄 수도 있습니다

그 다음으로 봐야할 것은 애드온의 가성비입니다. 100MB 크기의 권총 하나가 포함된 애드온과 120MB 크기의 32종 각종 화기들이 포함된 애드온 중 선택하는것은 본인의 몫이겠지만 120MB 크기의 32종 각종 화기들이 포함된 애드온을 서버에 추가하는것이 장기적으로 보았을 때에 서버 운영에 이로울 것입니다.

그 외에도 따져야 할 사항이 많으나 너무 많이 파고 들어가면 남는게 없으므로 어느정도의 융통성을 가지고 애드온을 넣길 바랍니다

또한 애드온을 서버에 추가하기 전 애드온의 작동여부를 미리 확인해보는것이 매우 중요합니다. 게리모드 애드온들 중 일부는 백도어를 심어놓아 유저들을 다른 서버로 이동시키거나 들어오는 모든 유저들을 밴시켜버리는 등 악의적 요소들을 품고있기도 합니다.
물론 이런 경우는 극히 드물은 경우이므로 따지진 말고 지금 추가하고자 하는 애드온이 똥인지 된장인지 구분은 해야하니 이전에 사용했던 애드온이거나 본인이 코드를 직접 짠 것이 아닌 이상 따로 비밀번호를 걸어 추가하여 테스트해보고, 문제가 없을 경우 추가하는것이 안정적이고 현명한 방법입니다.

물론 애드온 작동이 안 된다는 유저도 나올텐데 클라이언트 문제이므로 저 대신 유감이라고 전해주세요
서버 애드온 - 애드온 편집하기
서버 애드온을 그대로 사용하는 것도 좋지만 본인이 코딩에 대해 조금 관심이 있거나, 애드온이 언어 장벽을 크게 만들었을 때는 애드온 편집이 필요할 것입니다. 게리 모드에 배포되는 애드온들은 편집을 자유롭게 할 수 있습니다.

서버 애드온을 2가지 방법 중 하나로 설치하였을 경우 각각 다르지만 특정 저장 위치에 파일이 존재할 것입니다.
일반적인 애드온 변환을 통해 파일 상태로 저장했다면 서버/garrysmod/addons 에 위치해 있을 것이며
+host_workshop_collection 으로 자동 다운이 되었을 경우
2018년 이후 애드온들은 서버/steam_cache/content/4000 으로 앞서 말한 steamapps/workshop 형식으로 저장되며
2018년 이전 애드온들은 서버/garrysmod/cache/srcds 로 파일명이 애드온 ID 인 상태로 저장됩니다.
.gma 형식 파일 변환 후 일반 addons로 설치시 해당 파일이 자동으로 받아지는 파일의 내용을 덮어씌웁니다.
순정 < garrysmod 파일에 바로 저장 < 자동다운 < addons 순으로 적용될 것입니다.

일반적인 애드온 파일의 경우 lua 혹은 gamemode 파일만 수정을 가하면 되므로 GLua 에 대한 지식을 어느 정도 갖춘 상태에서 애드온 편집을 진행하시기 바랍니다.
서버 애드온 - 컨텐츠 모음집 만들기
스팀 커뮤니티의 게리모드 창작마당에서 홈 / 검색 / 토론 / 정보 중 검색에 마우스를 드래그하면 Addons 아래에 모음집이 있습니다

모음집에 들어가시면 모음집 만들기가 있습니다. 누르셔서 간단하게 모음집 관련 설명 작성 후 (나중에 수정가능) 다음으로 넘어가시면 하위 항목 추가/편집 란에 내가 게시한 아이템 / 즐겨찾기에 있는 아이템 / 구독한 항목으로 나뉘어져 있는데, 그게 어떤것이던 서버를 이용하는데에 필요한 애드온일 경우 모음집에 추가하신 뒤 저장하고 계속하기를 누른 뒤 위에 하얀 공개버튼을 누르시면 모음집이 업로드 됩니다. 해당 모음집 URL을 복사 후 공유하거나 서버에서 바로 들어갈 수 있는 수단을 만들어두시면 유저들은 에러없이 쾌적하게 서버를 즐길 수 있습니다.

참고로 애드온 모음집에 추가시킬 필요가 없는 애드온들이 존재하는데, ULX나 툴 애드온들과 같이 컨텐츠가 lua 만 있는 애들은 서버에서 처리하니 유저가 따로 받기 위해 모음집에 추가할 필요가 없습니다. 특수한 경우를 제외하면요
서버 버그 - 접속 중 문제
서버가 목록에 뜨고 멀쩡히 로딩 중 특정 메세지를 뱉어내면서 입장할 수는 없는 버그를 정리해두었습니다.
아래 메세지가 아닌 그냥 특정 서버에서 접속 자체만으로도 로딩화면 배경에 메세지가 뜨고 한글로 뭐라 써져있을 경우 해당 서버 운영자에 의해 서버이용이 정지당한 것일 수 있습니다.

Missing Map 맵이름 - 맵파일 누락. 일부 맵 애드온들은 자동 다운로드 설정을 해놓아도 gma 특성상 업데이트 인식을 못하고 해당 메세지가 출력되기도 함. 대표적으로 Branch 게임모드에서 SCP 연구소 맵이 자동다운을 켜도 미싱맵이 출력됩니다.

Your Map 맵이름 Differ from Server - 접속하는 플레이어가 이전에 받아두었던 맵과 현재 서버의 맵이 이름만 같고 맵 내용이 약간이라도 틀릴 시 이 메세지를 뱉어내는데, 서버에 도입한 맵이 업데이트되었으나 서버가 갱신시키지 않았을 때에 주로 출력됩니다. 아니면 멀쩡한데 한두놈만 그러는 경우가 있는데 이는 맵파일이나 맵 애드온을 삭제했다가 재설치시켜야 해결됩니다.

서버에서 놀다가 VAC 뭐시기 뜨면서 그후로는 어떠한 서버도 안 들어가짐 - 대부분의 경우 본인 프로필에 가 보면 VAC 차단기록이 생기지 않을텐데, 이건 클라이언트 VAC 오작동으로, 대부분의 소스 엔진 + VAC 적용 게임에서 발생하는 충돌 문제로 원인이 여러가지라 인터넷에서 다루는 방법들을 다 시도해봐야 합니다

닉네임 timed out - 로딩이 너무 오래걸릴 경우 타임아웃 메세지가 출력되는데, 바로 다시 접속을 시도할 경우 정상적으로 접속이 될 것입니다. 만약 계속 timed out이 뜰 경우 해당 서버에서 요구하는 애드온 등의 용량이 지나치게 크다는 의미이므로, 본인의 PC 사양을 올리기 전까진 미리 컨텐츠 파일을 받아놓고 서버 접속할 때 컨텐츠 받는 기능을 꺼놓고 접속해보거나, 최적화된 다른 서버를 방문하는것을 추천드립니다.

Connection failed after 숫자 retries - 서버가 sv_lan 1 으로 설정된 채로 구동중이거나 네트워크 DMZ 설정이 되있지 않은것. 아니면 호스트나 클라이언트 인터넷 연결 및 설정 문제일 수도 있습니다. 호스트PC 그대로 접속할 때 이러한 현상이 발생된다면 공개 목록에서 접속하는것이 아닌 로컬/LAN 서버 목록을 통해서 접속해야 할 것입니다.

'gamemode' table is not a table - 서버측에서 서버파일 무결성 검사를 해야합니다. 일부 핵심파일 누락으로 인해 서버가 정상적으로 작동되지 않는 경우가 간혹 있습니다.
서버 버그 - 호스트 연결 문제
로컬을 통한 멀티플레이 서버는 열리는데 멀티 서버는 안 파짐 - 방화벽 가서 인바운드 설정에 srcds가 금지되고 있는지 확인하세요
유저들은 들어가지는데 나는 접속이 안 됨 - 로컬 네트워크를 통해 접속하세요, 공유기 자체 특성에 의해 자신의 외부IP로 접속되지 않는 경우가 있습니다
설정을 초기화하거나 DMZ를 뚫어도 LAN 서버 탈출이 안됨 - 공유기, 모뎀 연결 방식을 확인하시고 만약 문제가 없을 경우 통신사측에서 DMZ를 차단했거나 제공하지 않는 것이므로 통신사에 문의하세요. 주로 네트워크 > 모뎀(DMZ 차단상태) > 공유기(DMZ 설정상태) > PC 로 연결시 DMZ를 설정해도 제 기능을 하지 않는 경우가 있습니다. 간혹 DMZ의 IP주소를 외부 IP 주소로 입력하는 등의 실수로 DMZ가 적용은 되도 정상작동 하지 않는 경우 또한 있습니다.
서버 자체가 안 뜸 - 서버의 +setsteamaccount의 서버 토큰이 삭제/만료되지 않았는지 확인해보세요. 장기간 토큰을 사용하지 않을 경우 만료되어 해당 서버가 호스트로 드러나지 않는 경우가 있습니다. 혹은 두 서버가 하나의 토큰을 공유할 경우에도 한쪽이 차단될 수 있습니다. 이는 서버 토큰을 하나 더 생성하여 각각 다른 토큰으로 할당해야 함을 의미합니다.
포트 정상/서버 열리나 본인만 접속 됨 - 현재 조사 중
서버 특수기능 - 설명
이 기능들은 매우 위험합니다. 서버 운영이 숙달된 상태로 신중히 결정하고 사용하여야 합니다.
이로 인해 발생하는 피해 또한 온전히 본인의 몫이 될 수 있습니다.
경고입니다. 제 Garry's mod 플레이 시간이 매우 길지만 이러한 기능들을 다루는 것은 항상 주의해야 합니다.
서버 특수기능 - rcon 이용하기
위 cfg 작성 란에서 rcon_password 에 해당하는 란을 비워두라고 얘기했었죠? rcon_password는 제3자가 서버 콘솔에 접속할 때 입력해야 하는 비밀번호 입니다. 비워두면 소스 코드 혹은 PC의 직접적인 해킹이 아닌 이상 어떤 방식으로도 들어올 수 없습니다.
rcon의 기능은 단순합니다. 들어오면 서버 주도권을 갖고, 못 들어오면 서버 콘솔상에 메세지로 이 아이피로 서버 콘솔에 접속을 시도했다고 박제합니다. 물론 해당 아이피는 rcon상 밴이 해제되기 전까진 접속이 영구히 정지됩니다.
이를 지정해둔 상태에서 만약 rcon 해킹이 발생할 경우 일반적으로 서버만 뚫는 것 뿐 아니라 자칫하면 서버 전체에 큰 피해를 입힐 수 있습니다. 단순히 서버를 터뜨리는 것을 넘어 서버의 정보 및 다른 여러 정보들이 해킹당하거나 대규모 아이피밴을 자행할 수도 있습니다. 이는 신중하게 결정해야 하는 사항입니다.

어디서 어떻게 쓰이는지 궁금하시다면 모바일로 Game Server Control Panel 을 설치해보세요. 아이폰은 아마 없을거고 저기서 rcon 명령어 통해 접속할 수 있습니다.
서버 특수기능 - 로딩화면 만들기
서버에 개성있는 로딩화면을 넣으면 유저들에게 기대감을 안겨줍니다. 적어도 흰 바탕에 게리모드 로고 하나 딱 떠있는 것 보다는요.

서버 cfg에 sv_loadingurl이 있을텐데(없으면 추가) 여기에 사이트 링크를 걸면 로딩중에 해당 사이트가 나오게 됩니다.
sv_loadingurl "링크" 이런식으로 입력하면 되는데 링크는 뭐 아무거나 걸어도 들어가집니다. 유튜브 걸면 유튜브영상 틀어지고 로딩화면 따로 html 코드짜서 걸면 거기 들어가지고 웹쉐어로 링크걸면 웹쉐어 들어가지고

로딩화면 기능은 매우 단순하나 잘 쓸 경우 유저들이 잔뜩 유입되며 그렇지 않을 경우엔.. 유저가 들어오다 나가는 이유중 하나를 달고있어야 할 것입니다.

다만 이는 양날의 검입니다. 로딩 화면 또한 외부 사이트로 지정되면 해당 주소를 콘솔 상에 드러냅니다. 웹쉐어 등 개인 P2P를 이용할 경우 보안을 철저히 해 두시기 바랍니다.
수정내역
오타나 문법 수정은 작성되지 않습니다 2020 2월 5일 최근수정 추가 + 애드온 업로드 방식 변경으로 다운로드 방식도 변경되어 애드온 변환할때 gma 구하는 방법 하나 새로 추가함 2월 7일 설명에 서버특정 금지문 추가 + 애드온 자동다운 설명 수정 3월 3일 설명문 수정 + 애드온 자동다운에 정보 추가 4월 15일 설명문 수정 5월 13일 설명문 수정 + 로그인 토큰 미입력시 서버에 불이익이 들어가므로 srcds에 토큰 넣는법 추가. 6월 5일 설명문 수정 + 애드온 용량 풀렸으므로 해당 내용 수정 7월 14일 설명문 수정 7월 29일 설명문 수정 9월 3일 애드온 추가/서버실행기에 애드온 모음집 연결 방법 추가 9월 4일 설명문 수정 10월 15일 설명문 수정 10월 27일 서버 실행기, server cfg 에서 서버 최적화 셋업 명령어 설정 추가 10월 29일 가이드 제목에서 업데이트 단어 제거 server.cfg, 애드온 넣기 전 주의사항, 관리자 선발, 접속 문제의 설명문 문법 수정 및 정보 추가 11월 11일 개요에 빠른 서버 열기 가이드 추가 2021 2월 1일 호스트 연결 문제 가이드 추가 2월 13일 호스트 연결 문제, 서버 실행기에 애드온 모음집 자동다운 내용 추가 3월 24일 서버 설치할 때 베타기능 사용법 추가 4월 13일 국기 추가 등 새로운 서버 명령어 기능 추가 + 서버 열 때 주의할 사항 7월 4일 개발자 디스코드 링크 공유 + 바로 가기 기능을 통해 빠른 업데이트가 되는 기능 만드는 법 추가 10월 19일 개요 내용 중 피어 투 피어 기능 설명 추가 + PC사양 수정 11월 26일 게임 마운트하는 방법 추가 11월 29일 스팀 CMD 업데이트로 인해 서버 설치 명령어 순서 변경 12월 2일 csite.io의 운영중단으로 인한 애드온 자동다운 사이트 및 해당 사이트에 따른 설명 변경 및 수정내역 이전 12월 3일 이미지 전면 교체 및 서버 특수기능 추가(기존 심화 가이드 내용 병합) 2022 1월 29일 가독성 향상을 위한 코드 형식의 내용 분리 3월 9일 cfg sbox 소환개체 갯수 순서 선호별로 정렬 및 애드온 명령어 예제 추가 4월 3일 서버 열기 전 주의사항 내용문 수정 6월 1일 서버 cfg에서 AI 관련 설정 추가 6월 2일 애드온 편집 추가 6월 27일 서버 .gma 애드온 받아지는 경로 변환 섹션에 추가 8월 25일 자동실행기 작동되지 않는 PC들 확인. 원인은 찾는 중이나 우선 다른 서버 실행기 사용 방법 안내 9월 29일 서버 자동실행기 및 cfg 명령어 추가. cfg 서버설정과 모드설정 정리. tickrate 중복줄 제거. 10월 4일 최적화 설정 제거. 클라이언트 렌더 명령어로 서버 커맨드에선 작동하지 않음 10월 7일 sbox_persist 명령어 cfg에 추가 10월 26일 cfg 각주 수정, 관리자 추가하기 섹션 추가 12월 6일 조정 가능한 cfg 명령어 추가 2023 1월 22일 로컬 호스트 서버 애드온 공유방법 추가 2월 9일 gamemode library is not a table 버그 추가 4월 9일 SteamCMD 프로그램 바로가기 대상 설명 추가 7월 16일 서버실행기에 실행기 프로그램 추가 및 호스트 연결 문제에 원인 중 토큰 만료와 충돌이 있어 해당 내용 추가 2024 7월 16일 서버 백업 방법 설명 추가 11월 13일 섹션 이름 변경 및 CFG 등 내용 수정 2025 3월 18일 서버 CFG 내용 수정 4월 13일 P2P 기능 사용법과 CFG상 서버 리스트에서 서버 숨기기 명령어 사용법 추가 4월 21일 P2P 기능 사용법 추가
52 bình luận
Allofit_Blue 29 Thg08, 2024 @ 10:46am 
모든 것을 정상적으로 했음에도 서버가 lan에서만 열리는 경우:

모뎀의 전송 방식을 NAT에서 브릿지로 변경하면 된다
PJO2369 27 Thg04, 2023 @ 4:40am 
아주 유용하군요!:steamthumbsup::steamthumbsup::steamthumbsup:
VECTOR 26 Thg10, 2022 @ 1:27am 
입력하는데 autokick is disabled for 유저이름 이런식으로 뜨는데 어떻게 하죠?
게임 내 ` 콘솔 입니다
VECTOR 25 Thg10, 2022 @ 4:34am 
콘솔은 게임 내 ` 를 누르면 나오는 콘솔이 아니라 서버 콘솔에 입력해야 하죠?
cfg상으로 rcon_password 가 지정된 경우 본인의 콘솔에 해당 rcon_password 비밀번호 명령어를 그대로 입력한 후 rcon sv_cheats 1 을 입력하면 됩니다
VECTOR 25 Thg10, 2022 @ 3:41am 
치트 허용해서 슈퍼어드민을 설정해도 sv_cheats를 킬려 하면 매번 only server operator can change its value 이렇게 뜨는데 어떻게 하나요?
얼탱이 19 Thg10, 2022 @ 1:06am 
원래 있던 무기 애드온에 있는 무기를 원하는 모양으로 어떤 방식으로 바꾸는 건가요?
네 그게 서버 콘솔창입니다
얼탱이 18 Thg10, 2022 @ 3:30am 
콘솔이 어디있나요? ` 키를 눌렀을 때 나오는 그 콘솔이 아닌걸로 아는데;; scrds로 실행시켰을 때 그 콘솔말하시는 건가요