J4cobLIVEmain
Members-
Posts
80 -
Joined
-
Last visited
-
Days Won
2
J4cobLIVEmain last won the day on July 24 2024
J4cobLIVEmain had the most liked content!
Details
-
Gang
uDka Racing
-
Location
Poland
-
Occupation
Los Santos, Ganton
-
Interests
Gaming, Music
Recent Profile Visitors
8,313 profile views
J4cobLIVEmain's Achievements
Transformer (11/54)
19
Reputation
-
A Ready Race Server Repository Contains various scripts that Classic Racing (checkpoint racing) servers use and some new scripts too with maps. Ready for casual racing or pro racing. It has around 800-900 vanilla RACE maps, and 100-200 casual maps. It has most important scripts for pro racing, like Pole Remover that's required in some maps, offroad wheels and much more. There is also well known RACE clanwar script by Vally, that has been redesigned to new standards Changes for some classic scripts Map Ratings - Now correctly working, with its own F4 gui where you can sort best rated / worst rated maps. It also notifies you to rate a map from 1-10. Map ratings save if you turn off the script VallyCW - Race League (clanwar) script by Vally. Completely overhauled, added bunch of new things - including ability to set captains, new point system more used in FFA games, /tech pause (it locks after 10 seconds) and much more. One of the most amazing implementations is the ability to export stats now - it should export the match stats to the VallyCW folder to stats.txt, which will give you full score and player scores. cw_script - Edited by BurN, now edited by Mateoryt. Also added new points system, and overhauled the script with new features. Toptimes - Retained more classic look, but edited few things like colors (1st, 2nd, 3rd toptimes), similar to SiK server back in the day. Only bad thing about it is spacing between the country flag. I'll probably upload robson race_toptimes2 there too, but if country flags will not work there for you, then use this one or remix the Robson script. It uses the flags from the scoreboard resource Carhide - the classic carhide from servers like GTA.RU back in the day. Fixed and working on newer servers Delay Indicator - smaller delay indicator, with an new command /clearsplits to clear splits when you delete a toptime. They will not show up anymore if you do that Installation: First off, do not wipe everything from resources. Only wipe the [addons] and [maps] folder from [gamemodes] / [race] folder. You can also keep voicepack or whatever I don't use it, but if you delete it it might cause you some warnings Put everything (or replace some stuff) to your server resources folder. Replacing i mean one thing in gamemodes / race / race client and server.lua to support onSpectateRequest so it warps people to spectator mode if clanwar script is running and they are in the spectators team Important thing: First off, type in the server console aclrequest list and check if any of the resources need acl requests, if they do - type aclrequest allow all or aclrequest allow (resource name) or all. Then you'll give all the scripts that need this acl rights so they can function properly. If any of the scripts will not work, try extracting that script from .zip maybe it will work better If you'd like to play on a server of mine I don't run 24/h servers I run a server whenever I can, and whenever I play - check out mtasa://51.75.58.35:10899 - I have most of these scripts in-place Feel free to contribute to anything, i'm looking for a working racing carfade that other servers have (I don't know if the mta community version works fine, or that one that is in the base server). Some scripts there are WIP but playable and you can test them out too like the ELO script (or modify it if you want)
-
Thanks, will share to my mates and we'll test it out.
-
Hey there folks! I have a question for very good scripters, is it possible to disable those "streaming issues" when you are for example: going too fast with a car, the whole texture switches to a LOD and looks broken (it mostly happens on spectate during race). A solution to this would be a lot helpful when recording racing and stuff.
-
gl bro but i dont think anybody cares these days on this forum, you might get few ppl. It is really better to just buy google ads or smth lol
-
[Race Tournament]The End of The Battle
J4cobLIVEmain replied to GARIK08's topic in Leagues and events
Add the image with imgur or something, and make sure it has .png or any other image format at the end of the link. -
Hey there! I told you before in some other post that I used Grok for scripting. He nearly pulled off a very nice Racing map panel. However there is a slight problem - when you buy the map, money goes away (money is inside the script too I think when you win a race it gives you certain amount) and map doesn't play or its not set. If you guys have any idea how can it be fixed, lmk. By the way, to get this kinda script you need around 2 hours on Grok for him to properly understand MTA scripting Codes: server.lua local moneyFile = "money.xml" local nextMapQueue = nil -- Store the next map if race resource isn't running -- Load player's money from XML function loadPlayerMoney(player) local serial = getPlayerSerial(player) local xml = xmlLoadFile(moneyFile) or xmlCreateFile(moneyFile, "money") if not xml then outputDebugString("Failed to load or create money.xml", 1) return end local node = xmlFindChild(xml, serial, 0) or xmlCreateChild(xml, serial) local money = tonumber(xmlNodeGetValue(node)) or 0 setElementData(player, "money", money) xmlSaveFile(xml) xmlUnloadFile(xml) end -- Save player's money to XML function savePlayerMoney(player) local serial = getPlayerSerial(player) local money = getElementData(player, "money") or 0 local xml = xmlLoadFile(moneyFile) or xmlCreateFile(moneyFile, "money") if not xml then outputDebugString("Failed to load or create money.xml", 1) return end local node = xmlFindChild(xml, serial, 0) or xmlCreateChild(xml, serial) xmlNodeSetValue(node, tostring(money)) xmlSaveFile(xml) xmlUnloadFile(xml) end -- Handle player join addEventHandler("onPlayerJoin", root, function() loadPlayerMoney(source) end) -- Handle player quit addEventHandler("onPlayerQuit", root, function() savePlayerMoney(source) end) -- Fetch all race map resources function getMapList() local mapList = {} local resources = getResources() if not resources then outputDebugString("Failed to get resources - check ACL permissions for 'function.getResources'!", 1) return mapList end local includedCount = 0 local excludedCount = 0 for i, resource in ipairs(resources) do local resName = getResourceName(resource) -- Skip system resources, our own resource, and known gamemodes if resName ~= "race_map_panel" and not resName:find("^%[") and resName ~= "csrw" and resName ~= "race" and resName ~= "play" and resName ~= "assault" and resName ~= "destructionderby" and resName ~= "ctf" and resName ~= "as-cliff" and resName ~= "ctf-goldcove" then local metaPath = ":" .. resName .. "/meta.xml" local metaFile = xmlLoadFile(metaPath) if metaFile then -- Check if the resource is a gamemode local infoNode = xmlFindChild(metaFile, "info", 0) local isGamemode = false if infoNode then local resType = xmlNodeGetAttribute(infoNode, "type") if resType and resType:lower() == "gamemode" then isGamemode = true excludedCount = excludedCount + 1 end end if not isGamemode then local isRaceMap = false local hasMapFile = false local gamemodesValue = nil -- Check for <map> element with a .map file local mapNode = xmlFindChild(metaFile, "map", 0) if mapNode then local mapSrc = xmlNodeGetAttribute(mapNode, "src") if mapSrc and mapSrc:find("%.map$") then hasMapFile = true end end -- Check for #gamemodes setting local settingsNode = xmlFindChild(metaFile, "settings", 0) if settingsNode then local settingNodes = xmlNodeGetChildren(settingsNode) for j, setting in ipairs(settingNodes) do local settingName = xmlNodeGetAttribute(setting, "name") local settingValue = xmlNodeGetAttribute(setting, "value") if settingName == "#gamemodes" then gamemodesValue = settingValue -- Parse the gamemodes value (e.g., '[ "race" ]' or '[ "race", "assault" ]') local gamemodes = settingValue:gsub("%[", ""):gsub("%]", ""):gsub('"', ""):gsub(" ", "") local gamemodeList = split(gamemodes, ",") if #gamemodeList == 1 and gamemodeList[1]:lower() == "race" then isRaceMap = true end break end end end -- If no #gamemodes setting, assume it's a race map if the name suggests it if hasMapFile and not gamemodesValue then if resName:find("^%[race%]") or resName:find("race-") then isRaceMap = true end end -- Include or exclude the map if hasMapFile and isRaceMap then includedCount = includedCount + 1 local mapInfo = { resourceName = resName, -- Store the actual resource name name = resName, -- Default to resource name author = "Unknown", cost = math.random(300, 1000) -- Random cost } if infoNode then local author = xmlNodeGetAttribute(infoNode, "author") local name = xmlNodeGetAttribute(infoNode, "name") if author then mapInfo.author = author end if name then mapInfo.name = name end end table.insert(mapList, mapInfo) else excludedCount = excludedCount + 1 end end xmlUnloadFile(metaFile) else excludedCount = excludedCount + 1 end else excludedCount = excludedCount + 1 end end outputDebugString("INFO: Total race maps found: " .. #mapList .. " (Included: " .. includedCount .. ", Excluded: " .. excludedCount .. ")", 3) return mapList end -- Send map list and player money to client addEvent("requestMapList", true) addEventHandler("requestMapList", root, function() local mapList = getMapList() local player = source local money = getElementData(player, "money") or 0 triggerClientEvent(player, "receiveMapList", player, mapList) triggerClientEvent(player, "receivePlayerMoney", player, money) end) -- Send player money to client addEvent("requestPlayerMoney", true) addEventHandler("requestPlayerMoney", root, function() local player = source local money = getElementData(player, "money") or 0 triggerClientEvent(player, "receivePlayerMoney", player, money) end) -- Function to set the next map function setNextMapIfPossible(mapResource, mapDisplayName, player) local raceResource = getResourceFromName("race") outputDebugString("DEBUG: Attempting to set next map to " .. getResourceName(mapResource) .. " for player " .. getPlayerName(player), 3) if raceResource and getResourceState(raceResource) == "running" then outputDebugString("DEBUG: Race resource is running, calling queueNextMap", 3) local success, errorMsg = pcall(function() return exports.race:queueNextMap(mapResource) -- Updated to queueNextMap end) if success and errorMsg then outputDebugString("DEBUG: Successfully queued next map to " .. getResourceName(mapResource) .. " for player " .. getPlayerName(player), 3) outputChatBox(getPlayerName(player) .. " has queued the next map to '" .. mapDisplayName .. "'!", root, 255, 255, 0) nextMapQueue = nil -- Clear the queue since the map was set return true else outputDebugString("DEBUG: Failed to queue next map to " .. getResourceName(mapResource) .. " - queueNextMap failed: " .. (errorMsg or "unknown error"), 1) outputChatBox("Failed to queue the next map (queueNextMap failed). Please try again.", player, 255, 0, 0) return false end else outputDebugString("DEBUG: Race resource not running (state: " .. (raceResource and getResourceState(raceResource) or "not found") .. "). Queuing map " .. getResourceName(mapResource), 1) nextMapQueue = { resource = mapResource, displayName = mapDisplayName, player = player } outputChatBox("Race gamemode not running. Your map '" .. mapDisplayName .. "' will be set as the next map when the gamemode starts.", player, 255, 255, 0) return false end end -- Handle map purchase and set as next map addEvent("onPlayerBuyMap", true) addEventHandler("onPlayerBuyMap", root, function(mapResourceName, mapDisplayName, cost) local player = source local money = getElementData(player, "money") or 0 if money >= cost then setElementData(player, "money", money - cost) savePlayerMoney(player) -- Set the purchased map as the next map local mapResource = getResourceFromName(mapResourceName) if mapResource then setNextMapIfPossible(mapResource, mapDisplayName, player) else outputDebugString("DEBUG: Map resource " .. mapResourceName .. " not found for player " .. getPlayerName(player), 1) outputChatBox("Map resource not found. Please try again.", player, 255, 0, 0) end triggerClientEvent(player, "onMapPurchaseSuccess", player, mapDisplayName) outputChatBox("You now have $" .. (money - cost), player, 0, 255, 0) else triggerClientEvent(player, "onMapPurchaseFail", player) end end) -- Try to set the queued map when the race gamemode starts addEventHandler("onResourceStart", root, function(startedResource) local resourceName = getResourceName(startedResource) if resourceName == "race" and nextMapQueue then outputDebugString("DEBUG: Race resource started. Attempting to set queued map " .. getResourceName(nextMapQueue.resource), 3) setNextMapIfPossible(nextMapQueue.resource, nextMapQueue.displayName, nextMapQueue.player) end end) -- Try to set the queued map when the current map ends addEvent("onRaceEnd", true) addEventHandler("onRaceEnd", root, function(winner) outputDebugString("DEBUG: onRaceEnd triggered with winner " .. getPlayerName(winner), 3) local player = winner local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) -- Try to set the queued map if it exists if nextMapQueue then outputDebugString("DEBUG: Race ended. Attempting to set queued map " .. getResourceName(nextMapQueue.resource), 3) setNextMapIfPossible(nextMapQueue.resource, nextMapQueue.displayName, nextMapQueue.player) end end) -- Handle race win detected by client addEvent("onClientPlayerRaceWin", true) addEventHandler("onClientPlayerRaceWin", root, function() outputDebugString("DEBUG: onClientPlayerRaceWin triggered for " .. getPlayerName(source), 3) local player = source local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) end) -- Hook into possible race gamemode events (for debugging) addEvent("onPlayerFinish", true) addEventHandler("onPlayerFinish", root, function(rank) outputDebugString("DEBUG: onPlayerFinish triggered for " .. getPlayerName(source) .. " with rank " .. rank, 3) if rank == 1 then local player = source local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) end end) addEvent("onPlayerWin", true) addEventHandler("onPlayerWin", root, function() outputDebugString("DEBUG: onPlayerWin triggered for " .. getPlayerName(source), 3) local player = source local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) end) addEvent("onPlayerRaceFinish", true) addEventHandler("onPlayerRaceFinish", root, function(rank) outputDebugString("DEBUG: onPlayerRaceFinish triggered for " .. getPlayerName(source) .. " with rank " .. rank, 3) if rank == 1 then local player = source local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) end end) addEvent("onPlayerVictory", true) addEventHandler("onPlayerVictory", root, function() outputDebugString("DEBUG: onPlayerVictory triggered for " .. getPlayerName(source), 3) local player = source local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) end) addEvent("onPlayerWinDD", true) addEventHandler("onPlayerWinDD", root, function() outputDebugString("DEBUG: onPlayerWinDD triggered for " .. getPlayerName(source), 3) local player = source local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) end) -- Debug command to simulate a race win (admin only) addCommandHandler("winrace", function(player) if not hasObjectPermissionTo(player, "general.adminpanel") then outputChatBox("You do not have permission to use this command!", player, 255, 0, 0) return end outputDebugString("DEBUG: Simulating race win for " .. getPlayerName(player), 3) local money = getElementData(player, "money") or 0 local reward = 1000 setElementData(player, "money", money + reward) savePlayerMoney(player) outputChatBox("You won the race and earned $" .. reward .. "! Total: $" .. (money + reward), player, 0, 255, 0) triggerClientEvent(player, "receivePlayerMoney", player, money + reward) end) -- Debug command to check money addCommandHandler("money", function(player) local money = getElementData(player, "money") or 0 outputChatBox("Your money: $" .. money, player, 255, 255, 0) end) client.lua local screenW, screenH = guiGetScreenSize() local mapPanelVisible = false local selectedMap = nil local maps = {} local playerMoney = 0 -- Create the map panel GUI function createMapPanel() if mapPanelVisible then return end mapPanelWindow = guiCreateWindow((screenW - 400) / 2, (screenH - 300) / 2, 400, 300, "Map Panel", false) guiWindowSetSizable(mapPanelWindow, false) mapGrid = guiCreateGridList(10, 30, 380, 150, false, mapPanelWindow) guiGridListAddColumn(mapGrid, "Map Name", 0.5) guiGridListAddColumn(mapGrid, "Author", 0.3) guiGridListAddColumn(mapGrid, "Cost", 0.2) for i, map in ipairs(maps) do local row = guiGridListAddRow(mapGrid) guiGridListSetItemText(mapGrid, row, 1, map.name, false, false) guiGridListSetItemText(mapGrid, row, 2, map.author or "Unknown", false, false) guiGridListSetItemText(mapGrid, row, 3, tostring(map.cost), false, false) end moneyLabel = guiCreateLabel(10, 190, 380, 20, "Your Money: $" .. playerMoney, false, mapPanelWindow) infoLabel = guiCreateLabel(10, 210, 380, 20, "Select a map to see details.", false, mapPanelWindow) buyButton = guiCreateButton(10, 230, 180, 30, "Buy Map", false, mapPanelWindow) quitButton = guiCreateButton(200, 230, 180, 30, "Quit", false, mapPanelWindow) addEventHandler("onClientGUIClick", mapGrid, onMapSelect, false) addEventHandler("onClientGUIClick", buyButton, buyMap, false) addEventHandler("onClientGUIClick", quitButton, closeMapPanel, false) mapPanelVisible = true showCursor(true) -- Show the cursor when the panel opens if #maps == 0 then outputChatBox("No maps found on the server!", 255, 0, 0) end end -- Handle map selection function onMapSelect() local row = guiGridListGetSelectedItem(mapGrid) if row ~= -1 then selectedMap = maps[row + 1] guiSetText(infoLabel, "Name: " .. selectedMap.name .. " | Author: " .. (selectedMap.author or "Unknown") .. " | Cost: $" .. selectedMap.cost) end end -- Buy the selected map function buyMap() if not selectedMap then outputChatBox("Please select a map first!", 255, 0, 0) return end triggerServerEvent("onPlayerBuyMap", localPlayer, selectedMap.resourceName, selectedMap.name, selectedMap.cost) end -- Close the panel function closeMapPanel() if mapPanelWindow then destroyElement(mapPanelWindow) mapPanelVisible = false selectedMap = nil showCursor(false) -- Hide the cursor when the panel closes end end -- Toggle the map panel with F3 addEventHandler("onClientResourceStart", resourceRoot, function() bindKey("f3", "down", function() if mapPanelVisible then closeMapPanel() else triggerServerEvent("requestMapList", localPlayer) end end) setTimer(function() outputChatBox("Press F3 to open the Map Panel!", 255, 255, 0) end, 5000, 1) end) -- Receive map list from server addEvent("receiveMapList", true) addEventHandler("receiveMapList", root, function(mapList) maps = mapList outputChatBox("Received " .. #maps .. " maps from server.", 0, 255, 0) createMapPanel() end) -- Receive player money from server addEvent("receivePlayerMoney", true) addEventHandler("receivePlayerMoney", root, function(money) playerMoney = money if moneyLabel and isElement(moneyLabel) then guiSetText(moneyLabel, "Your Money: $" .. playerMoney) end end) -- Handle successful purchase response from server addEvent("onMapPurchaseSuccess", true) addEventHandler("onMapPurchaseSuccess", root, function(mapDisplayName) outputChatBox("Map '" .. mapDisplayName .. "' purchased successfully and set as the next map!", 0, 255, 0) triggerServerEvent("requestPlayerMoney", localPlayer) closeMapPanel() end) -- Handle insufficient funds addEvent("onMapPurchaseFail", true) addEventHandler("onMapPurchaseFail", root, function() outputChatBox("Not enough money to buy this map!", 255, 0, 0) end) -- Detect "You have won the race!" message addEventHandler("onClientChatMessage", root, function(message) if message == "You have won the race!" then triggerServerEvent("onClientPlayerRaceWin", localPlayer) end end) It also creates money.xml which stores money, and I tried AI to understand that I wanted to pick up the money from the users account (when you add it via admin panel for example) but I couldn't. I'm also wondering if you guys could make this script better anyhow? I recommend debugscript 3 too Thanks for any help.
-
Very good idea. I'll check it out as soon as I'll start doing the map idea.
-
Hey! Is it possible to disable a racing checkpoint via a lua script, and then re-enable it? I tried with Grok, and grok can't seem to script it properly (can't disable the checkpoint). I think the race client itself need to be modified for it. Example map that I wanted to test such a script: Racing map, where you need to clear the path (rocks) by moving them with Dozer to the marker (sphere, cylinder) and if you will clear all of the rocks on the way, then checkpoint will enable. Or 2nd example: A Forklift map, where you would need to deliver a crate with forklift, to a specific place (drop the object on the marker) - and after delivering it would re-enable the checkpoint Grok did a better job (but still failed) at putting laps, he somehow duplicated checkpoints (he added them via a script somehow) and they were glitched out on the radar, but he never made them hidden. Do you guys have any suggestion, how it could be done?
-
Hey there, guys I recently messed with Grok a little bit, when it comes to MTA:SA scripts - and oh boy, he can make scripts. If you gonna tell Grok a detailed description of what you want, he will give it to you, but 90% of the times it will be broken, so you need to actively send him debug problems and stuff. Here are the list of the scripts that I edited succesfully / or made using grok: Soundboard script (creates a F3 GUI menu and you can play different meme sounds when clicking on the sound buttons) Force 30 fps script on a RACE map (creates a script, that enables 30 fps only on the map you plug the script into, after the map is switched - FPS change back to normal that you have set in your server settings) - and to make it work, edit the map name (map name from meta.xml) to your own local: targetMapName = "[30FPS] Driveable Yosemite" -- The map to force 30 FPS on Reduce bumps - Reduces bumps on race maps, by changing velocity of the vehicle in real time (there are some small problems with it too, i think you need to configure the script for different vehicles, tweak the values so it fits, example: Bandito is too fast on the bumpy terrain, when going down slope) Edited race ghost resource - so it now has a "carhide" function, that hides ghost (if players are distracted by it, they can simply turn it off via F3 if i remember correctly) Race-Driftking - made its very own drift table to my race map. I struggled with this alot and gave him many LUA examples and he finally made it work. It even has flags, and saves the stats on the map (idk if they save if you leave the server tho) Download them here: https://limewire.com/d/pXuGF#q0p5r0BMwg However... Grok is not perfect. Here are the attempts that I tried to make, but it didn't succeed (maybe you'll have knowledge what to fix in those) Paintjob script: Does not show the paintjob. The 1st version of the script works fine, but I wanted the paintjob to also change the color and he said it is possible, and now this version has bunch of problems in debug. This script was meant to give you an ui activated with /paintjob command, and you coul choose a paintjob, and a color and apply it. It would also save if you would quit the server and come back, and it will come back if you are logged in and logged out (i struggled 1.5 hours with this, he finally made it work after 1.5 hours) Very own clanwar script - I managed to get around some problems, that if map would redo the round would go from 1 to 2. The problems here, is he struggles to fix the point system from the previous script, and also sometimes GUI does not open. Grok forgets earlier attachements so maybe that's the reason that he sometimes :O up those scripts, but if anyone would be helpful I'd like this one fixed - can explain after what I wanted in there Map Panel script - I don't have it here, but it had a functional map panel, and it correctly listed the maps only from RACE gamemode. I also made him include the cash reward after race completion, and he also did it perfectly, however problems were with buying the maps - when you bought the map, money went away but map didn't play when script appearantly said "that the correct map was set" after buying it. Login Panel - he can do the login panel UI perfectly, but sometimes struggle with saving the accounts (or creating databases), he prefers to save account info in .xml file. Also if you would login or register from the login panel, it wouldn't let you log in (even if you typed the correct credentials it just didn't work and nothing happened) Some other screenshots I made when I tested Grok (this is all Grok's work): (i fixed this pesky text bug after like 3 times asking him to resize the table or move the text lol) (color didn't go as planned, but alpha was working fine, but eventually scrapped it) I'm inclined to say, that Grok is very helpful, and you should use it. You can also download some of the scripts that Grok did in the hyperlinks. What do you think guys? He made me come back to this game, only to mess with some scripting
-
Hey there, I'm not currently playing MTA, but I decided to launch a server with all of the singleplayer GTA:SA Race maps (that are available on the Race Tournaments). You can check it out, and drive those also with original FPS enabled, that also means with the original car handling! So whoever wants to try the SP maps out without traffic and for toptime battles, you are here in the right place! Shout out to the user robot123 (admin of Joshimuz's speedrun server) for providing me with these amazing 1-to-1 recreations! FPS server: 30 Slots: 100 It will be running for some time. Add the IP to the bookmarks and check in from time to time if you want to. I might turn it off sometimes just because it's running on lemmehost. If you'll like it, thank you! And hey, you can write here under comments at which time you can join in so I can keep the server running! mtasa://144.76.57.59:33874
-
Same script, but for example gangwar servers would be pretty popular and highly downloaded. Looks neat.
-
Updates causing some weird things rn. Report it on GitHub better. I did managed to report a Map Editor problem that caused total corruption of the editor and it got fixed. I think this forum is largely inactive, only players from time to time come here to solve some script solutions but other than that, nobody cares (when it comes to server advertisements, etc)
-
I got a msg. Try updating MTA:SA to nightly build. One admin from a server told me.
-
I did report it on GitHub and even Dutchman responded. Hope there will be an update.
-
UPDATE: Again, out of nowhere it shows this: [17:23:18] WARNING: editor_main\server\mapsettingssync.lua:158: The resource isn't active [17:23:18] ERROR: editor_main\server\mapsettingssync.lua:159: bad argument #1 to 'lower' (string expected, got boolean) [17:23:24] WARNING: editor_main\server\mapsettingssync.lua:158: The resource isn't active ?????????????????????
