콘텐츠로 이동

러스트 플러그인 설치 방법: Oxide와 Carbon 기초

한 줄 답: 서버에 Oxide나 Carbon을 설치한 다음, 플러그인의 .cs 파일을 oxide/plugins/나 carbon/plugins/에 넣으세요. 재시작 없이 저절로 불러와지고, 처음 불러올 때 설정 파일이 config 폴더에 생깁니다.

러스트 플러그인은 모딩 프레임워크가 컴파일해서 데디케이티드 서버 안에서 실행하는 C# 파일(.cs) 하나입니다. 플러그인은 서버에서만 돌아가므로 플레이어가 설치할 것은 없습니다. 바닐라 서버는 실행할 수 없습니다. 서버에 먼저 Oxide나 Carbon이 있어야 합니다.

둘 다 같은 종류의 플러그인을 불러오며, 같은 게임 파일을 패치하므로 서버에는 한 번에 하나만 둘 수 있습니다.

  • Oxide (uMod라고도 부름)는 오랫동안 쓰여 온 쪽입니다. 파일은 서버의 oxide/ 폴더에 있습니다.
  • Carbon은 더 새롭고 Oxide용으로 쓴 플러그인도 불러옵니다. 파일은 carbon/ 폴더에 있습니다.

Crucible Local Server는 서버를 만들 때 둘 중 어느 쪽이든 대신 설치하고, 모드 탭에서 플러그인을 관리합니다. 러스트 서버에 Carbon이나 Oxide 설치하는 방법을 보세요.

대상OxideCarbon
플러그인 (.cs)oxide/plugins/carbon/plugins/
각 플러그인의 설정 (.json)oxide/config/carbon/configs/
플러그인이 저장하는 데이터oxide/data/carbon/data/
플러그인의 메시지, 언어별oxide/lang/carbon/lang/
로그oxide/logs/carbon/logs/

폴더는 RustDedicated.exe 옆에 있고, 프레임워크가 설치된 채 서버가 처음 시작할 때 생깁니다. 플러그인은 처음 불러올 때 config 파일을 쓰니, 그것을 편집한 다음 플러그인을 다시 불러오세요.

불러오기, 다시 불러오기, 내리기

섹션 제목: “불러오기, 다시 불러오기, 내리기”

.cs 파일을 플러그인 폴더에 넣으면 프레임워크가 재시작 없이 알아서 컴파일하고 불러옵니다. 파일을 바꾸면 다시 불러오고, 지우면 내려갑니다. 그러면 서버 콘솔에 Loaded plugin Hello World v1.0.0 by YourName 같은 줄이 나오고, 코드가 틀렸다면 컴파일 오류가 나옵니다.

서버 콘솔이나 RCON에서 직접 할 수도 있습니다.

  • Oxide: oxide.load Name, oxide.reload Name, oxide.unload Name, oxide.plugins (각각 o.load, o.reload 등으로도 작동합니다).
  • Carbon: c.load Name, c.reload Name, c.unload Name, c.plugins.

Name은 .cs를 뺀 파일 이름입니다. Oxide를 쓰는 서버는 스스로를 모드 서버로 표시합니다.

대부분의 플러그인은 명령어를 플러그인 이름을 딴 권한(hello.use, kits.admin) 뒤에 둡니다. Oxide는 모든 플레이어가 속한 default와 서버 관리자용 admin, 두 그룹으로 시작합니다.

  • oxide.grant user <name or SteamID> <permission>은 한 플레이어에게 권한을 줍니다.
  • oxide.grant group default <permission>은 모두에게 줍니다.
  • oxide.revoke는 같은 형태로 되돌립니다.
  • oxide.usergroup add <name or SteamID> <group>은 플레이어를 그룹에 넣고, oxide.group add <group>은 새 그룹을 만듭니다.

모든 Oxide 명령어와 하는 일은 러스트 콘솔 명령어 끝에 있습니다.

이것을 플러그인 폴더에 HelloWorld.cs로 저장하세요. 불러올 때 콘솔에 한 줄을 쓰고, 플레이어가 접속할 때마다 한 줄을 쓰고, 채팅의 /hello에 답합니다.

namespace Oxide.Plugins
{
[Info("Hello World", "YourName", "1.0.0")]
[Description("Says hello when a player types /hello in chat.")]
public class HelloWorld : RustPlugin
{
private void OnServerInitialized()
{
Puts("Hello World is running.");
}
private void OnPlayerConnected(BasePlayer player)
{
Puts($"{player.displayName} joined.");
}
[ChatCommand("hello")]
private void HelloCommand(BasePlayer player, string command, string[] args)
{
SendReply(player, $"Hello, {player.displayName}!");
}
}
}

각 부분이 하는 일:

  • 파일 이름과 클래스 이름이 일치해야 합니다(HelloWorld.cs, class HelloWorld).
  • [Info]는 플러그인의 제목, 제작자, 버전을 정하며 불러올 때 콘솔에 표시됩니다.
  • 훅 이름을 딴 메서드는 게임에서 그 일이 일어날 때 실행됩니다. OnServerInitialized는 서버가 시작을 마쳤을 때(이미 실행 중이면 바로), OnPlayerConnected는 플레이어가 접속할 때입니다. 프레임워크가 이름으로 찾으므로 오타가 있으면 오류 없이 메서드가 실행되지 않습니다.
  • [ChatCommand("hello")]는 메서드를 채팅 명령어로 만듭니다. Puts는 서버 콘솔에 쓰고, SendReply는 한 플레이어에게 채팅 메시지를 보냅니다.

같은 파일이 Carbon에서도 실행됩니다. 훅의 전체 목록과 각각이 받는 것은 docs.oxidemod.com의 Oxide 문서에 있습니다.

플러그인은 게임 속 이름으로 게임의 대상을 가리키며, 이 사이트가 게임에서 곧바로 나열합니다.

라이브로 올리기 전에 플러그인 테스트하기

섹션 제목: “라이브로 올리기 전에 플러그인 테스트하기”

같은 프레임워크와 같은 맵으로 서버의 로컬 사본에서 먼저 돌려 보세요. 고장 난 플러그인이 플레이어를 만나지 않게 됩니다. Crucible Local Server는 내 PC에서 Oxide나 Carbon을 클릭 한 번으로 설치한 서버를 돌려 줍니다.