Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Forum Support

    3. Suggestions

[Tutorial] Developing mods with Script Hook V .NET using Xamarin Studi


Foxtrot64
 Share

Recommended Posts

If you're anything like me you probably hate using Visual Studio. I absolutely hate it. Only Microsoft could make a text editor that uses so much memory and CPU.

I'm not going to explain too much what Xamarin Studio is, but basically it uses Mono C# and uses all your .NET packages.

 

I've managed to get the Community Script Hook V .NET to work and I'm going to show you how to setup your first project using Xamarin Studio.

 

WHY?

Reason 1: I hate Visual Studio.

Reason 2: The Xamarin Studio uses less memory and is faster. I like that.

 

Installation

Firstly, You're going to need to download the Xamarin Studio from here: http://www.monodevelop.com/download/- You'll of course need the .NET Framework 4.5 for things to work. Links to which are on the download. You'll also need the GTK# for .NET 2.12.25 - again, links on the monodevelop download page.

 

Once installed, go ahead and open Xamarin Studio.

You may get a few warnings regarding subversion and other stuff, but unless you're into that sorta stuff don't worry about it, it's not important.

 

Welcome to Xamarin

 

VXzCuyZ.jpg

 

You should get a landing screen similar to the one above. Xamarin does lots of things, not just C#. We're only interested in creating a blank C# project. Click "New Solution" from the left hand sidebar.

 

Set up a new solution

 

Make a new project, selecting .NET from the left, and choosing an Empty Project from the middle. Click Next.

 

oNHyfkK.jpg

 

 

Name your project and solution name to something relevant. You can also choose which directory to store everything. There's no need to make this your GTA V Installation directory just yet, as we'll create a post-build to copy over the DLL to where it needs to be later.

 

oLtMjrb.jpg

 

 

After you hit Create, you'll now be presented with your empty project.

 

uhjpmPh.jpg

 

 

Time to add your first .cs script to the project. Right click on your project > Add > New File...

 

U3YW9Au.jpg

 

 

This will open the new file dialog. Make an Empty Class from the General tab. I like to name my first script the same as my namespace / project name.

 

RCzS705.jpg

 

 

Here is your first cs file with some sample code.

 

N3fRZht.jpg

 

 

We don't need to any code yet as we still need to add our references to our project. We need to be using some of the .NET references as well as the all mighty ScriptHookVDotNet stuff.

We'll add the System references first.

Expand the files of your project and right click on References. Then Click Edit References.

crFMEPv.png

 

 

For the purpose of this tutorial, we're only going to add System.Drawing and System.Windows.Forms - You may want add more references in the future depending on what you want to code.

Simply search and check the assemblies you want to add. Then click OK.

zE24Im0.png

 

 

You'll now need to add ScriptHookVDotNet.dll to the project. I like to paste a copy of this into the debug directory for the project.

Go back to Edit References and choose the .Net Assembly tab. Then click browse and select the ScriptHookVDotNet.dll

 

b5XJjk3.jpg

 

 

You now need to make sure your project compiles as a Library and not an Executable. To do this, right click on your project and click Options.

You then want to change the Compile Target to a Library.

YIGRh65.jpg

 

 

In the same Options window you now need to go to Build > Compiler and change the Platform Target to x64 instead of x86.

EqsvtCt.jpg

 

 

Finally, we need to add a post-build event to copy over the compiled DLL into the scripts directory in the GTA V Installation.

Build > Custom Commands > After Build

 

Add the following line into command box: xcopy "${TargetPath}" "T:\YOUR_TO_GTA\Grand Theft Auto V\scripts" /Y

Adding the correct path to your installation. Remember, a "scripts" folder must exist and this is where your dotnet .dll mods shall live.

0rSKZ9U.jpg

 

Adding this post-build event means that not only do we compile our DLL to its debug directory, but upon a successful compile we overwrite the DLL in the scripts folder. You can then use the Insert key to reload the dot net mods in your game.

 

With all references and build configurations set, we can now go ahead and start scripting. Compiling our code will result in the DLL being placed where it needs to be. You also need to have the ScriptHookVDotNet.dll and ScriptHookVDotNet.asi files in the root of your GTA V directory. Not forgetting ScriptHookV.dll and dinput8.dll

 

Below is a sample script:

using System;using System.Drawing;using System.Windows.Forms;using GTA;using GTA.Math;using GTA.Native;namespace basicGTAmod{	public class basicGTAmod : Script	{		public basicGTAmod ()		{			this.KeyUp += onKeyUp;			}		private void onKeyUp(object sender, KeyEventArgs e)		{			if (e.KeyCode == Keys.NumPad0) 			{				Vehicle vehicle = World.CreateVehicle (VehicleHash.Adder, Game.Player.Character.Position + Game.Player.Character.ForwardVector * 5);				vehicle.CanTiresBurst = false;				vehicle.PrimaryColor = VehicleColor.MatteBlack;				vehicle.SecondaryColor = VehicleColor.MetallicSilver;				vehicle.PlaceOnGround ();				vehicle.NumberPlate = "IH8VS";			}		}	}}
Link to comment
Share on other sites

  • 2 weeks later...

If you're anything like me you probably hate using Visual Studio. I absolutely hate it. Only Microsoft could make a text editor that uses so much memory and CPU.

 

The fact that you think Visual Studio is simply a text editor tells us a lot.

  • Like 3
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.