Quick Reply
Search this Thread
Lab Assistant
Original Poster
#1 Old 19th Jul 2025 at 1:47 AM Last edited by Destrospean : 19th Jul 2025 at 4:29 PM.
Default How to develop script mods on non-Windows platforms (+ things that might also be useful for SharpDevelop)
This guide currently only has instructions for flavors of Linux; this may be doable on macOS as well using Docker and X11 forwarding.

With Valve's advancements with the Steam Deck and Proton, and Apple's advancements with Apple Silicon hardware and the Game Porting Toolkit, gaming on non-Windows platforms has become quite viable.

Developing mods for Windows games on another platform, however, is a lot trickier. Many build tools do not work in a compatibility layer, and so oftentimes a virtual machine or dual booting is required to compile DLLs for those games.

Because The Sims 3 actually uses Mono, a cross-platform implementation of the .NET Framework, it is actually possible to develop mods for The Sims 3 and test them on other operating systems without the use of a virtual machine. There is a catch though—MonoDevelop 5.7 is the last version to support building for .NET 2.0, which is the version The Sims 3 uses, and only the latest versions of Mono and MonoDevelop are included in repositories for various package managers. Even if you add the repositories for older versions of Mono on a modern Linux install, the dependencies for those old versions will still not be available, and those dependencies will conflict with existing dependencies your system already has installed.

There is a way, however, to isolate a part of your system from your system's libraries to set up older software using Docker/Podman containers. I have succeeded in getting a working version of MonoDevelop 5.7 on my modern system using this method. Below I have compiled a list of instructions that have worked for me when setting this up.

Setting up MonoDevelop 5.7

  1. Install Distrobox—different Linux distributions have different ways of installing it, but here is a generic way of installing it if it is not in your distribution's repositories:
    Code:
    curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
    
  2. Enter in the following in your terminal to create and enter into the container:
    Code:
    distrobox create -i ubuntu:xenial && distrobox enter ubuntu-xenial
    
  3. You will need to install the dependencies for MonoDevelop 5.7 and mark them as held so that the container does not update them by mistake. I have included a single, giant command here that does all of what is needed to set up MonoDevelop in the container and create a shortcut for it:
    Code:
    sudo apt install -y apt-transport-https \
    && sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \
    && echo "deb https://download.mono-project.com/repo/debian wheezy/snapshots/3.12.0 main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list \
    && sudo apt update \
    && sudo apt install -y build-essential cli-common libgtk2.0-cil-dev libglade2.0-cil-dev libgnome2.0-cil-dev libgconf2.0-cil-dev \
    && sudo apt remove -y mono-complete mono-devel libmono* \
    && sudo apt install -y -t wheezy/snapshots/3.12.0 mono-complete \
    && sudo apt-mark hold mono-complete && sudo apt-mark hold mono-devel && sudo apt-mark hold libmono* \
    && sudo apt install -y -t wheezy/snapshots/3.12.0 monodevelop && sudo apt-mark hold monodevelop \
    && distrobox-export --app monodevelop
    
Setting up a project for The Sims 3 in MonoDevelop

There is already a guide for doing this made by someone else, though its source is no longer reachable. Here is an archived version of it though.

Using Mono Patcher with MonoDevelop (also works with SharpDevelop on Windows)

To develop using Mono Patcher, a patch needs to be applied, since MonoDevelop 5.7 does not support versions of C# newer than 5.0. I have attached a Git patch for it below. Apply it to the MonoPatcher project folder by copying/moving the file there and entering in the following at the project folder's root directory in the terminal:
Code:
git apply MonoPatcher-CS5.0-Patch.txt
Attached files:
File Type: txt  MonoPatcher-CS5.0-Patch.txt (3.1 KB, 6 downloads)
Lab Assistant
Original Poster
#2 Old 19th Jul 2025 at 2:10 AM Last edited by Destrospean : 19th Jul 2025 at 2:26 AM.
Forgot to mention things regarding other tools. I will list them here:
  • To decompile DLLs, a cross-platform version of ILSpy exists.
  • S3PE and other tools that modify packages will run just fine via Wine or Proton. So will other popular tools like TSRW, Milkshape 3D, any of Tashiketh's and CmarNYC's tools, etc.
  • Blender and GIMP are cross-platform and thus have native Mac and Linux versions.
Back to top