Description
Introduction
I recently uploaded a LemonUI script that captures nearly 100 different locations, each with its own x, y, z coordinates and heading. Manually doing this would have been cumbersome. Instead, I saved the coordinates for each teleport using Menyoo XML, then wrote a program to parse everything and create functional code. While this method worked well, my curiosity drove me to find an even better solution. The answer was simple: generate the code in-game, without needing Menyoo.
For all the items listed below, you would substitute your own code, but the process remains largely the same. As mentioned, this was designed for LemonUI-based mods, specifically for the GTA V Tourist. However, with a bit of creativity, you’ll see that this approach can be applied to any script or mod requiring location coordinate capture. It could easily be adapted for tasks like capturing ped components (drawables, textures) or vehicle attributes (models, colors, extras, modkits, etc.).
Features
The code provided in this download will generate three essential components for LemonUI-based applications:
- Menu Item Definition (for new menu entries)
In This Script Template’s Context:
new NativeItem(“Tahir Javan House”, “”); // Spaces allowed, generated from a single entry - Event Handler/Subscriber (for item activation)
Menu10_Items[6].Activated += (sender, e) => Menu10_6_TahirJavanHouse(); // Spaces replaced by underscores; item numbers are incremented by the script. Same single entry as above. - Teleport Method (for handling teleportation and effects)
private void Menu10_6_TahirJavanHouse() {- FadeInOutEffects(() =>
{
- Vector3 position = new Vector3(-3086.868f, 341.6472f, 7.375443f);
- float heading = 27.75087f;
- TeleportWithCam(position, heading, -15f, 4f, CameraFxMs, false);
})
} // The method is created from a single entry, with the number (10_6) incremented by the script.
Usage
This process is not intended for LemonUI beginners, but I encourage you to give it a try if you’re feeling adventurous. The .cs extension is from Visual Studio, and renaming it to .3.cs will not eliminate the need for compilation.
- Upon pressing a key (F5 in this case), the developer will receive a prompt for the location name.
- The script captures the player’s coordinates and concatenates them into working code using some predefined logic.
- This generated code will then be utilized in Visual Studio to complete your script.
- As a side note, the generated code’s three sections must be placed in specific locations (methods, handlers, items). I used AI to sort the code numerically into those categories, which took less than two seconds. By “numerically,” I mean item1, item2, item3, item4, etc.
Overall, this approach is extremely efficient and helps eliminate errors typically associated with manual entries. For instance, at one point, I mistakenly entered the coordinates for Trevor’s Trailer location using a manual process. This type of error is avoided by using the script.
Other Considerations
Location names, as displayed in the menu and to users, can include spaces. Since methods cannot contain spaces (though this doesn’t concern users), the spaces will be substituted with underscores.
Advanced users may have noticed a missing element: the need to add items to the menu. This is not included in the script because you’ll use a generic solution that applies to all your items, like this:
private void AddItemsToMenu(NativeMenu menu, List items) {   foreach (var item in items)   {     menu.Add(item);     item.TitleFont = GTA.UI.Font.ChaletComprimeCologneNotGamerName; // optional   } }
Author: JohnFromGWN
Share Your Gameplay!
Submit a screenshot of this mod!
Submit a YouTube video.