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

What I learned from making SVG animations with After Effects and Bodymovin of all my colleagues

Syntropy in February: Official Elrond Integration, DARP Community Access, Oracle Partner, and more

Dirty Old Code — Part 3

Ruby on Rails Project — My Workout Tracker

home page of my workout-tracker app where you can log in or sign up

Playing with the Fn project

Scheduling BigQuery Slots

Introduction to Unity’s Animator

My Review of the Google Cloud Professional Cloud Architect BETA Exam

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

#2 Fullstack Micro frontends with angular & Golang

How to create your first project in Rust

Functional programming in JS: Functors

There’s no call by reference in C or Go