Rust mod local development with Oxide

Rust game mod development

Integrated Development Environment

Installing an IDE

Rider environment

Creating a Project

Solution

Creating a new Solution in Rider

Project

Adding a new Project to a Rider Solution
Selecting a Project template
Desired folder structure

Getting that IntelliSense to work

Oxide NuGet package source

https://www.myget.org/f/oxide/api/v3/index.json
Adding Oxide source URL for NuGet package

Necessary packages

Oxide package library
Installing Rust mod package to Projects

Verification

namespace Oxide.Plugins
{
[Info(“Epic Stuff”, “Unknown Author”, “0.1.0”)]
[Description(“Makes epic stuff happen”)]
class EpicStuff : CovalencePlugin
{
private void Init()
{
Puts(“A baby plugin is born!”);
}
// The rest of the code magic // TODO (you): Make more epic stuff
}
}
IntelliSense

Local Rust server

Docker

Installing the server

Configuration

RUST_SERVER_IDENTITY=my_awesome_server
RUST_SERVER_SEED=12345
RUST_SERVER_NAME=My Awesome Server
RUST_SERVER_DESCRIPTION=This is my awesome server
RUST_RCON_PASSWORD=SuperSecurePassword
RUST_OXIDE_ENABLED=1

Running the image

docker run — name rust-server -d -p 28015:28015 -p 28015:28015/udp -p 28016:28016 -p 8080:8080 -v your/path/to/OxideMods/rust:/steamcmd/rust — env-file rust.env didstopia/rust-server

Verifying

docker logs -f rust-serverEventually, you’ll see something like this, in the logs:SteamServer Initialized
IP address from Steam query: 0.0.0.0
Server startup complete
SteamServer Connected
BradleyAPC Spawned at :(600.6, 32.2, -606.9)
Checking for new Steam Item Definitions…

Testing the connection

WebRCON environment
client.connect 127.0.0.1:28015
WebRCON Chat window
Welcome to your local Rust development server

One last step

docker run — name rust-server -d -p 28015:28015 -p 28015:28015/udp -p 28016:28016 -p 8080:8080 -v your/path/to/OxideMods/rust:/steamcmd/rust -v your/path/to/OxideMods/src:/steamcmd/rust/oxide/plugins — env-file rust.env didstopia/rust-server

Advanced stuff

Memory issues

Oracle VM VirtualBox Manager
export SWAPFILE=/mnt/sda1/swapfile
sudo dd if=/dev/zero of=$SWAPFILE bs=1024 count=4194304
sudo mkswap $SWAPFILE
sudo chmod 600 $SWAPFILE
sudo swapon $SWAPFILE
exit

Docker Compose

version: ‘3.6’services: rust-server:
image: didstopia/rust-server
environment:
RUST_SERVER_IDENTITY: my_awesome_server
RUST_SERVER_SEED: 12345
RUST_SERVER_NAME: My Awesome Server
RUST_SERVER_DESCRIPTION: This is my awesome server
RUST_RCON_PASSWORD: SuperSecurePassword
RUST_OXIDE_ENABLED: 1
ports:
— “28015:28015”
— “28015:28015/udp”
— “28016:28016”
— “8080:8080”
volumes:
— ./rust:/steamcmd/rust
— ./src:/steamcmd/rust/oxide/plugins
networks:
— default

Happy Coding!

--

--

--

Extreme RUST survival · Solo only · Custom map · Leaderboard · Full Wiped every ~10 days · client.connect 208.103.169.240:28015 · discord.gg/NBDHFdK9j6

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Best Python IDEs and Code Editors

Benchmarking in Computer

This article talks about implementation of the processor of the Image Processing parallel…

Should you Create a Subreddit for your Server?

Controlling Light from Telegram-Bot

Python3: Mutable, Immutable… everything is object!

To choose a language- 3

Tiny Car Controller: Add Speed Boost Pickups With C# Events In Unity

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
SOLO ISLAND

SOLO ISLAND

Extreme RUST survival · Solo only · Custom map · Leaderboard · Full Wiped every ~10 days · client.connect 208.103.169.240:28015 · discord.gg/NBDHFdK9j6

More from Medium

WebApps: A Simple Windowed Application

Rust Async Actix-Web Middleware

Adding an executable target to a Rust library

The ultimate guide to ENARX