Jump to content

GTA: Underground - Compatible Modifications thread


Recommended Posts

skatefilter5
19 hours ago, STAY AT HOME said:

Is first person mod,sa directX and timecyc work for gta underground

SA Direct actually works ! but timecyc is combined with LC,VC so i dont recommend using timecyc 

idefixhalle

Hi I used "b1.0-SNAPSHOT3_3_10_Standalone_Installer" to install.
Since then my tool "Time Sync v 1.81" doesn't work anymore.

Is there a way to sync the game time back in real time?

 

Update: I find the answer byself in this thread: 

 

Edited by idefixhalle

Does this work for Underground?

https://www.gtainside.com/en/sanandreas/mods/105653-super-myths-v2-0-0/

I could not get it to work, it crashes with a fastman92 limit adjuster error, something about collision on model 16619

  • Like 1
  • 4 weeks later...

For some reason the Smooth camera mod doesn't work with Gta Underground,I've put every file into the CLEO folder but when i run the game and type in "SMCM" nothing happens,Is this cause of Gta Underground not supporting the Smooth Camera mod or is it something else?

  • 2 weeks later...
  • 4 weeks later...
  • 1 month later...
  • 2 weeks later...
On 9/22/2020 at 11:16 PM, GJGamingBro said:

We don't plan on making them compatible.

  

On 7/21/2020 at 6:41 PM, shabold said:

ImVehFt worked perfectly fine before it was patched. I hope it gets fixed soon.

This is known and we plan to fix this soon.

Edited by dkluin
  • 1 month later...
  • 1 month later...
TarRebririon

Mods that are compatible with UG(4.1.1):

 

https://www.gtaall.com/gta-san-andreas/mods/74933-vegetation-ultra-hd.html

(Can replace file)

 

https://www.gtainside.com/en/sanandreas/mods/104485-enbseries-for-low-pc/

(There is an error at startup, just ignore it)

 

https://www.gtainside.com/en/sanandreas/mods/69832-gta-v-tuning-parts/

(Compatible, you just need CFG Editor to edit the veh_mods.ide to avoid the white texture)

  • 2 weeks later...
BitingBugle2941

Podrias hacer compatible este mod en la snapshot 3.3.11.2 me servia paro al instalar la snapshot 4.0 y sus parches subo a un vehiculo y da crash

https://gamemodding.com/es/gta-san-andreas/others/66938-forza-horizon-3-speedometer.html

Edited by BitingBugle2941
Error de ortografia
  • Like 1
  • 2 weeks later...

question does the custom_mods.img really works as a gta3.img? and if i wanted to use the gta_INT for installing the tuning mod? 

i mean do those files really need to be locked? people already know who made the mod is not like people wants to steal it, we just want to use some other mods in conjunction.

  • Like 2
6 hours ago, delroku said:

question does the custom_mods.img really works as a gta3.img? and if i wanted to use the gta_INT for installing the tuning mod? 

i mean do those files really need to be locked? people already know who made the mod is not like people wants to steal it, we just want to use some other mods in conjunction.

Yes, it can be used to replace pretty much anything.

  • Like 3
On 12/26/2020 at 11:53 PM, McFadden0 said:

Is UG-MP compatible with any ENB?

 

Actually yes. 

 

Good news for those who want to play with ENB Series on GTA: Underground - it appears the latest ASI version is supported! All you have to do is edit skygfx1.ini and change buildingPipe=PS2 to buildingPipe=.

Uncommenting the line out entirely also works. This has been added to our FAQ as well.

  • 1 month later...

 

Spoiler

#include <a_samp>
#include <djson>
#include <foreach>
#include <ZCMD>
#include <sscanf2>
#include <streamer>

#define DOORS_FILE              "Doors.ini"
#define MAX_DOORS               100
#define COLOR_WHITE             0xFFFFFFFF


forward LoadDoor(id);
forward DeleteDoor(id);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);

enum dInfo
{
    Float:dExteriorX,
    Float:dExteriorY,
    Float:dExteriorZ,
    dExteriorInt,
    dExteriorVir,
    Float:dInteriorX,
    Float:dInteriorY,
    Float:dInteriorZ,
    dInteriorInt,
    dInteriorVir,
    dName[128],
    dPp
}
new DoorInfo[MAX_DOORS][dInfo];

new Iterator:Doors<MAX_DOORS>, dCount;

public OnFilterScriptInit()
{
    djson_GameModeInit();
    djAutocommit(true);
    djStyled(true);
    if(!fexist(DOORS_FILE))
    {
        print("CANNOT FIND 'Doors.ini' file. Creating new one.");
        fcreate(DOORS_FILE);
        return 1;
    }
    for(new d=0;d<MAX_DOORS;d++)
    {
        new string[128];
         format(string, sizeof(string),"Door_%d",d);
        if(djIsSet(DOORS_FILE, string)) LoadDoor(d);
    }
    return 1;
}

public OnFilterScriptExit()
{
    djson_GameModeExit();
    return 1;
}

 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new inter = GetPlayerInterior(playerid);
    new vir = GetPlayerVirtualWorld(playerid);
    foreach(Doors, i)
    {
        if((newkeys & KEY_SPRINT) && !(oldkeys & KEY_SPRINT))
        {
            if(PlayerToPoint(2.0, playerid, DoorInfo[i][dExteriorX], DoorInfo[i][dExteriorY], DoorInfo[i][dExteriorZ]) && inter == DoorInfo[i][dExteriorInt] && vir == DoorInfo[i][dExteriorVir])
             {
                SetPlayerPos(playerid, DoorInfo[i][dInteriorX], DoorInfo[i][dInteriorY], DoorInfo[i][dInteriorZ]);
                   SetPlayerInterior(playerid, DoorInfo[i][dInteriorInt]);
                SetPlayerVirtualWorld(playerid, DoorInfo[i][dInteriorVir]);
                  return 1;
            }
        }
        if((newkeys & KEY_SPRINT) && !(oldkeys & KEY_SPRINT))
        {
            if(PlayerToPoint(2.0, playerid, DoorInfo[i][dInteriorX], DoorInfo[i][dInteriorY], DoorInfo[i][dInteriorZ]) && inter == DoorInfo[i][dInteriorInt] && vir == DoorInfo[i][dInteriorVir])
            {
                SetPlayerPos(playerid, DoorInfo[i][dExteriorX], DoorInfo[i][dExteriorY], DoorInfo[i][dExteriorZ]);
                SetPlayerInterior(playerid, DoorInfo[i][dExteriorInt]);
                SetPlayerVirtualWorld(playerid, DoorInfo[i][dExteriorVir]);
                return 1;
            }
        }
    }
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    new inter = GetPlayerInterior(playerid);
    new vir = GetPlayerVirtualWorld(playerid);
    foreach(Doors, d)
    if(PlayerToPoint(2.0, playerid, DoorInfo[d][dExteriorX], DoorInfo[d][dExteriorY], DoorInfo[d][dExteriorZ]) && inter == DoorInfo[d][dExteriorInt] && vir == DoorInfo[d][dExteriorVir])
    {
        new string[128];
        format(string, sizeof(string), "%s %d", DoorInfo[d][dName], d);
        GameTextForPlayer(playerid, string, 5000, 3);
    }
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
COMMAND:aentrance(playerid, params[])
{
    new cmd[128], file[128], string2[128];
    if(IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "s[128]", cmd) != 0)
        {
               return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /aentrance [create | interior | name | delete]");
        }
         if(strcmp("create", cmd, true, 6) == 0)
         {
             new name[128];
             if(!sscanf(params, "s[128]s[128]", cmd, name))
             {
                new Float:x, Float:y, Float:z, interior, vir;
                GetPlayerPos(playerid, x, y, z);
                interior = GetPlayerInterior(playerid);
                vir = GetPlayerVirtualWorld(playerid);
                AddDoor(x, y, z, interior, vir, name);
                SendClientMessage(playerid, COLOR_WHITE, "You've created a new door.");
                return 1;
            }
            else SendClientMessage(playerid, COLOR_WHITE, "USAGE: /aentrance create [name]");
        }
        if(strcmp("interior", cmd, true, 😎 == 0)
         {
             new id;
             if(!sscanf(params, "s[128]id", cmd, id))
             {
                 format(file, sizeof(file), "Door_%d", id);
                 if(djIsSet(DOORS_FILE, file))
                {
                    new Float:x, Float:y, Float:z, interior;
                    GetPlayerPos(playerid, x, y, z);
                    interior = GetPlayerInterior(playerid);
                    format(string2, sizeof(string2), "Door_%d/InteriorX", id); djSetFloat(DOORS_FILE, string2, x);
                    format(string2, sizeof(string2), "Door_%d/InteriorY", id); djSetFloat(DOORS_FILE, string2, y);
                    format(string2, sizeof(string2), "Door_%d/InteriorZ", id); djSetFloat(DOORS_FILE, string2, z);
                    format(string2, sizeof(string2), "Door_%d/InteriorInt", id); djSetInt(DOORS_FILE, string2, interior);
                    SendClientMessage(playerid, COLOR_WHITE, "You've changed door's interior.");
                    LoadDoor(id);
                    return 1;
                }
                else SendClientMessage(playerid, COLOR_WHITE, "ERROR: There's no entrance with that ID.");
            }
            else SendClientMessage(playerid, COLOR_WHITE, "USAGE: /aentrance interior [id]");
        }
        if(strcmp("name", cmd, true, 4) == 0)
         {
             new id, name[128];
             if(!sscanf(params, "s[128]ds[128]", cmd, id, name))
             {
                 format(file, sizeof(file), "Door_%d", id);
                 if(djIsSet(DOORS_FILE, file))
                {
                    format(string2, sizeof(string2), "Door_%d/Name", id); djSet(DOORS_FILE, string2, name);
                    LoadDoor(id);
                    SendClientMessage(playerid, COLOR_WHITE, "You've changed entrance's name.");
                    return 1;
                }
                else SendClientMessage(playerid, COLOR_WHITE, "ERROR: There's no entrance with that ID.");
            }
            else SendClientMessage(playerid, COLOR_WHITE, "USAGE: /aentrance name [id] [new name]");
        }
        if(strcmp("delete", cmd, true, 6) == 0)
        {
            new id;
            if(!sscanf(params, "s[128]d", cmd, id))
            {
                   format(file, sizeof(file), "Door_%d", id);
                 if(djIsSet(DOORS_FILE, file))
                {
                    DeleteDoor(id);
                    SendClientMessage(playerid, COLOR_WHITE, "You've deleted an entrance.");
                    return 1;
                }
                else SendClientMessage(playerid, COLOR_WHITE, "ERROR: There's no entrance with that ID.");
            }
            else SendClientMessage(playerid, COLOR_WHITE, "USAGE: /aentrance usun [id]");
        }
    }
    else SendClientMessage(playerid, COLOR_WHITE, "ERROR: You aren't allowed to use this command!");
    return 1;
}
public LoadDoor(id)
{
    new string2[128], name[128];
    DestroyDynamicPickup(DoorInfo[id][dPp]);
    format(string2, sizeof(string2),"Door_%d/ExteriorX", id); DoorInfo[id][dExteriorX] = djFloat(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/ExteriorY", id); DoorInfo[id][dExteriorY] = djFloat(DOORS_FILE, string2);
      format(string2, sizeof(string2),"Door_%d/ExteriorZ", id); DoorInfo[id][dExteriorZ] = djFloat(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/ExteriorInt", id); DoorInfo[id][dExteriorInt] = djInt(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/ExteriorVir", id); DoorInfo[id][dExteriorVir] = djInt(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/InteriorX", id); DoorInfo[id][dInteriorX] = djFloat(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/InteriorY", id); DoorInfo[id][dInteriorY] = djFloat(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/InteriorZ", id); DoorInfo[id][dInteriorZ] = djFloat(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/InteriorInt", id); DoorInfo[id][dInteriorInt] = djInt(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/InteriorVir", id); DoorInfo[id][dInteriorVir] = djInt(DOORS_FILE, string2);
     format(string2, sizeof(string2),"Door_%d/Name", id); format(name, sizeof(name), "%s", dj(DOORS_FILE, string2)); DoorInfo[id][dName] = name;
     Itter_Add(Doors, Iter_Count(Doors) + 1);
     DoorInfo[id][dPp] = CreateDynamicPickup(1239, 2, DoorInfo[id][dExteriorX], DoorInfo[id][dExteriorY], DoorInfo[id][dExteriorZ], DoorInfo[id][dExteriorVir], DoorInfo[id][dExteriorInt], -1, 50.0);
    return 1;
}
public DeleteDoor(id)
{
    new string2[128], name[128];
    DoorInfo[id][dExteriorX] = 0;
    DoorInfo[id][dExteriorY] = 0;
    DoorInfo[id][dExteriorZ] =  0;
    DoorInfo[id][dExteriorInt] = 0;
    DoorInfo[id][dExteriorVir] = 0;
    DoorInfo[id][dInteriorX] = 0;
    DoorInfo[id][dInteriorY] =  0;
    DoorInfo[id][dInteriorZ] = 0;
    DoorInfo[id][dInteriorInt] = 0;
    DoorInfo[id][dInteriorVir] = 0;
    format(name, sizeof(name), "Brak"); DoorInfo[id][dName] = name;
    format(string2, sizeof(string2), "Door_%d", id); djUnset(DOORS_FILE, string2);
    DestroyDynamicPickup(DoorInfo[id][dPp]);
    Iter_Remove(Doors, id);
    return 1;
}
stock AddDoor(Float:x, Float:y, Float:z, interior, vir, name[])
{
    new string2[128], namestring[128];
    Iter_Add(Doors, Iter_Count(Doors)+1);
    dCount = Iter_Count(Doors);
    format(string2, sizeof(string2), "Door_%d/ExteriorX", dCount); djSetFloat(DOORS_FILE, string2, x);
    format(string2, sizeof(string2), "Door_%d/ExteriorY", dCount); djSetFloat(DOORS_FILE, string2, y);
    format(string2, sizeof(string2), "Door_%d/ExteriorZ", dCount); djSetFloat(DOORS_FILE, string2, z);
    format(string2, sizeof(string2), "Door_%d/ExteriorInt", dCount); djSetInt(DOORS_FILE, string2, interior);
    format(string2, sizeof(string2), "Door_%d/ExteriorVir", dCount); djSetInt(DOORS_FILE, string2, vir);
    format(string2, sizeof(string2), "Door_%d/InteriorX", dCount); djSetFloat(DOORS_FILE, string2, 0);
    format(string2, sizeof(string2), "Door_%d/InteriorY", dCount); djSetFloat(DOORS_FILE, string2, 0);
    format(string2, sizeof(string2), "Door_%d/InteriorZ", dCount); djSetFloat(DOORS_FILE, string2, 0);
    format(string2, sizeof(string2), "Door_%d/InteriorInt", dCount); djSetInt(DOORS_FILE, string2, 0);
    format(string2, sizeof(string2), "Door_%d/InteriorVir", dCount); djSetInt(DOORS_FILE, string2, dCount);
    format(string2, sizeof(string2), "Door_%d/Name", dCount); djSet(DOORS_FILE, string2, name);
    DoorInfo[dCount][dExteriorX] = x;
    DoorInfo[dCount][dExteriorY] = y;
    DoorInfo[dCount][dExteriorZ] =  z;
    DoorInfo[dCount][dExteriorInt] = interior;
    DoorInfo[dCount][dExteriorVir] = vir;
    DoorInfo[dCount][dInteriorX] = 0;
    DoorInfo[dCount][dInteriorY] =  0;
    DoorInfo[dCount][dInteriorZ] = 0;
    DoorInfo[dCount][dInteriorInt] = 0;
    DoorInfo[dCount][dInteriorVir] = dCount;
    format(namestring, sizeof(namestring), "%s", name);
    DoorInfo[dCount][dName] = namestring;
    DoorInfo[dCount][dPp] = CreateDynamicPickup(1239, 2, DoorInfo[dCount][dExteriorX], DoorInfo[dCount][dExteriorY], DoorInfo[dCount][dExteriorZ], DoorInfo[dCount][dExteriorVir], DoorInfo[dCount][dExteriorInt], -1, 50.0);
    return 1;
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
        return 1;
    }
    return 0;
}
stock fcreate(filename[]) {
    if (fexist(filename)) return false;
    new File:fhnd;
    fhnd=fopen(filename,io_write);
    if (fhnd) {
        fclose(fhnd);
        return true;
    }
    return false;
}

In the spoiler is the .pwn code.

Hello, This probably isn't the place for this, but I used a filterscript called Dynamic Entrances that made all doors work like in the base game. You'd just walk into the yellow arrow and then the door animation played. Then you were inside and could exit the same way with no stopping and typing required. It made the server awesome, because no-one had to stop and type at all. (This would make every server better) But anyway, When I used this script (copied my already working compiled one from my SAMP server) in UGMP it just removed the ability to enter doors at all.

I didn't make this script. I found it a long time ago and now can't seem to find it anywhere online. I guess I'm just hoping one of you guys can do a simple fix to the code or point out what was done wrong since (I assume) you are geniuses with this stuff.

Thanks for reading and for your time.

Edited by cwcfix
Misplaced Words
  • 4 weeks later...
On 4/10/2021 at 6:52 PM, nogueira2222 said:

access violation at address 00460026 in module imgtool.exe

 

 

Try a different img tool. 

Edited by DoomReaper
Mistyped IMG as OMG :D
  • 2 weeks later...
1 hour ago, Adel mena said:

I really wish gta v hud works with added maps.

This is my dream

We have it working, but we haven't quite nailed the pathfinding patches needed to make the GPS work with UG. Furthermore, the plugin isn't really designed to support a variable number of weapons. Back when we were working on it we made HD-era styled icons for V HUD, but by now they are outdated.

No idea if we will ever pick up work on this again.

  • Like 2
22 hours ago, dkluin said:

We have it working, but we haven't quite nailed the pathfinding patches needed to make the GPS work with UG. Furthermore, the plugin isn't really designed to support a variable number of weapons. Back when we were working on it we made HD-era styled icons for V HUD, but by now they are outdated.

No idea if we will ever pick up work on this again.

May this edit to that golden mod work with the rest of the Total Conversation (Global) mods.(like saxvcxlc, Vxiv2sa) also i am using the last version of gta underground

I mean how you ran it in this video. anyways I don't want to gps or added radios-weapons support. Just want it run with my gta. BEST WISHES FOR YOU (THE BEST TC MODS AUTHOR EVER)

 

Edited by Adel mena
  • Like 1
33 minutes ago, Adel mena said:

If you can share the edited v hud script or the idea to make it compatible, Please reply on that comment above. (DKLUIN) 

Unfortunately not. It's pretty broken as said.

  • Realistic Steak! 1
  • 4 weeks later...
  • 0 User Currently Viewing
    0 members, 0 Anonymous, 0 Guests

×
×
  • Create New...

Important Information

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