This is going to be your go-to resource for installing modifications for San Andreas Multiplayer. It is lucrative that you follow these guidelines to achieve a nearly bug free and great looking SAMP.

I'll be trying to walk you through a standard Steam Installation and we'll move on to modding from there.

Also here's some old files I used to host here: Link


Crash Document

The guy who runs ModMixSets documented a ton of errors. Check it out here: Link


Building for SAMP

Install GTA:SA from STEAM.

You're going to grab the following program from GTAForums. Link

Hit downgrade and choose a new location for your SAMP version of GTA San Andreas. We'll be using this directory for the rest of this document.

Done. Move on to the next step.


SAMP Addon

This modification is not optional. I 100% recommend that everyone has this mod if they play SAMP. It fixes a lot of bullshit crashes that should not be happening.

Grab it here: Link

You're going to overwrite anything and everything your new GTA SA installation.

STEPS TO STAY ORGANIZED:

  • Take all .asi files in the main directory of your installation.
  • You're going to move those into the folder called 'scripts'.
  • Take both 'disablefpslimit.txt' and 'checkdff.txt' and place them into 'scripts'.

Done, you've just kept your entire main directory relatively clean.

Run your game and ensure that SAMP is loading properly.


ENB or ReShade Graphics Plugins

Let's face it, ENB is pretty shit these days. You've probably crashed after installing an ENB based modification. I've got a solution for you. I call it the SAMP_UnFucker script. This is going to let you load ENBs. However, I prefer ReShade these days due to the active development and amount of shaders available.

Mileage may vary.

Create a file called 'SAMP_UnFucker.bat' and insert the following code:

@echo off
color 0

TITLE Ivy's SAMP UnFucker

:::  _____           
::: |_   _|          
:::   | |_   ___   _ 
:::   | \ \ / / | | |
:::  _| |\ V /| |_| | UNFUCK YOUR SAMP INSTALLATION
::: |_____\_/  \__, | Let's fix that ENB bruh.
:::             __/ |
:::            |___/ 
:::

for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A

for /f "delims=" %%i in ('wmic useraccount where "name='%UserName%'" get sid /value') do (
  for /f "delims=" %%j in ("%%i") do set "%%j"
)

pushd %~dp0 >nul 2>&1

echo GETTING OLD .EXE NAME FROM SAMP_UnFucker.txt

if exist SAMP_UnFucker.txt (
	echo.
	echo FOUND OLD EXE NAME
) else (
	echo.
	echo USING 'gta_sa.exe' AS DEFAULT .EXE
	@echo gta_sa.exe > SAMP_UnFucker.txt
	pause
)

set /p old_exe=<SAMP_UnFucker.txt

echo.
echo RENAMING OLD .EXE

set new_exe=%RANDOM%
set new_path=%~dp0%new_exe%.exe
set /p old_exe=<SAMP_UnFucker.txt

if exist %~dp0%old_exe% (
	echo.
	echo UPDATED FILE NAME
	ren "%~dp0%old_exe%" "%new_exe%.exe"
) else (
	echo FILE WAS NOT FOUND. RENAME GTA .EXE TO %old_exe%
	pause
	exit
)

echo.


echo UPDATING REGISTRY ENTRY FOR SAMP
echo.

REG Query "HKEY_CURRENT_USER\Software\SAMP" >nul 2>&1
if %errorlevel%==0 ( 
	REG add "HKEY_CURRENT_USER\Software\SAMP" /v gta_sa_exe /d %new_path%
) else (
	echo KEY WAS NOT FOUND. GIVING UP. REINSTALL SAMP. /me kills himself.
	pause
	exit
) 

echo.
echo WRITING NEW .EXE FILE TO HISTORY
echo.
@echo %new_exe%.exe > SAMP_UnFucker.txt
echo.
echo DONE! STARTING SAMP.
echo.

start samp.exe
pause
exit

Create another file called 'SAMP_UnFucker.txt' and put the following inside:

gta_sa.exe

Great, what this script will do is completely change your 'exe' name each time you run the batch script. If you want to play SAMP, launch this batch script and let it work its magic. It will update a registry value and fix a really annoying d3d9 loading issue.

Speaking of d3d9...


ReShade

I've been using ReShade these days. Grab the latest version from here: Link

Run the .exe file, locate your newly renamed 'gta_sa.exe' and install ReShade in your main directory.

Here's my 'DefaultPreset.ini': Link

TEST YOUR GAME AFTER INSTALLING THIS.


MoonLoader

God damn do I fucking hate .lua script but anyway here's a way to load .lua files.

Windows Defender is going to see this as a virus. Tell Windows Defender to shove it.

DOWNLOAD THE ARCHIVE VERSION

Link

Installation Guide:

  1. Unzip.
  2. Install bass.dll in your main directory.
  3. Install lua51.dll, moonloader folder, and MoonLoader.asi in your scripts folder.
  4. Place any new .lua plugins into the moonloader folder.
  5. Done.

TEST YOUR GAME AFTER INSTALLING THIS.


CLEO 4 and ModMixSets

Can't have a GTA:SA game without CLEO!

Cleo: Link

ModMixSets: Link

Cleo is going to install in your main directory. Keep the CLEO.asi file there. All of your .cs scripts are going to go inside of the 'cleo' folder.

ModMixSets is probably the ONLY cleo script you will ever need. Open up the .ini file sometime and mess with it. There's a lot to change, edit, and use.


Modloader

Because this is already installed by default let me give you the run down on how this works. You have a folder called 'modloader'. The way you organize your stuff doesn't matter.

Create individual folders for each thing you want to use:

  • Textures
  • Vehicles
  • Vegetation
  • etc.

You put the files extracted from mods into those folders.

In-game you can refresh your modifications on the fly as well as CHANGE THE PRIORITY OF A FOLDER. If a mod pack is half complete but you really like it, you can raise the priority so that it over-writes another mod pack. THIS IS REALLY USEFUL. USE IT.

As a general rule of thumb, vegetation should overwrite everything else.


TIMECYC.DAT

Didn't install SAMP ADDON? Too bad you will never utilize a TimeCyc from this point forward.

Create a folder in modloader and place a 'Timecyc.dat' inside of it. You now have a working Timecyc for SAMP.

Here's the one I use: Link


SA LOD LIGHTS

Inside of your scripts folder you should already have this modification.

Replace the following inside of SALodLights.ini

[DrawDistanceChanger]
Enable = 1
MinDrawDistanceOnTheGround = 10000.0
Factor1 = 8.0
Factor2 = 3.0
StaticSunSize = 20.0
[IDETweaker]
TimedObjectsDrawDistance = 0.0   // All values below 10.0 will be used as a multiplier, otherwise as a draw distance.
NeonsDrawDistance = 2000.0
LODObjectsDrawDistance = 2000.0
GenericObjectsDrawDistance = 2000.0
AllNormalObjectsDrawDistance = 0.0
VegetationDrawDistance = 2000.0
LoadAllBinaryIPLs = 1
PreloadLODs = 1

Enjoy your ridiculous draw distance.


Ambient Occlusion without ENB for NVIDIA

(Terrible Music Edition)
Nvidia Inspector Download: Link


If anything else needs to be added or changed I'll update this post. Enjoy.

Key things after the above steps:

  • You are now responsible for getting textures, shadows, etc.
  • The point of this post was to give you a foundation to build upon.

Good luck.