pyloader (Python scripts for GTA V) [Enhanced and Legacy] 0.9
6.074
41
-
9 de junio de 2026
PyloaderV allows you to run Python scripts in GTA V Enhanced and Legacy. Just put a .py file, a folder or a .pyv file in the scripts folder named pyscript, write your code, and launch the game.
Modify your scripts whenever you want and reload them in-game with F9 (configurable in PyloaderV.ini).
The pyscript folder includes several examples. You can delete all examples if you don't need them.
Requirements :
- GTA V (Legacy or Enhanced)
- ScriptHookV
- Python: NO install needed — the embedded Python 3.12 runtime is already bundled in the zip (shvpy_runtime/ folder)
Installation :
Copy into your GTA V root (the folder containing GTA5.exe) ONLY these:
- PyloaderV.asi
- PyloaderV.ini
- pyscript/ (drop your Python scripts here)
- shvpy_runtime/ (embedded Python 3.12, do not rename)
Changelog :
0.9
- .pyv single-file mods: a whole mod in one file, drop it into pyscript/ (F9 reload and AutoReload supported). Mods get private module namespaces with relative imports, so two mods can ship modules with the same name.
- Natives with out-params fixed (GET_SHAPE_TEST_RESULT, GET_GROUND_Z_FOR_3D_COORD, GET_CURRENT_PED_WEAPON... ~175 natives): they now return the values the game writes, e.g. status, hit, pos, normal, ent = GET_SHAPE_TEST_RESULT(handle). Thanks for the report!
- New raycast helpers: world.raycast(start, end) and world.raycast_from_camera() (what the camera looks at, no aiming needed).
- Fixed Entity/Ped/Vehicle .delete() and .dismiss().
- gta.Vector3 is now available to scripts.
- For mod authors: pip install pyloaderv gives autocomplete for the gta module and the pyloaderv command (new, pack, install, pip).
v0.8:
- Performance improvements, averaging 1.4x and up to 2.4x in some cases
v0.7:
- Performance improvements, averaging 2.5x and up to 3.3x in some cases
- blueprint editor added and updated for 0.7 (for devs)
v0.6:
- Major change: The mod is now standalone. The use of ScriptHookVDotNet is no longer required.
- Experimental status: This is an experimental version. If you find any bugs, please don't hesitate to report them.
v0.5.1:
- Bug fix
v0.5:
- Blueprint editor (for dev, in beta) added
- For devs folder upgrade
v0.4.1:
- Bugfix for tutorialV0.4.html
v0.4:
- Added PyloaderV.log
- Script Priority: Control loading order with __priority__
- Lib Fix: Files in Lib/ are now detected during reload
- New Options: LogEnabled and LogMaxSizeKB in the .ini file
- Bug fixes and memory optimizations
v0.3.2:
- Added "for devs" folder and modification of the py_scripts folder
v0.3.1:
- Added Syntax_Guide.html file
Want to support the project?
If you like PyloaderV and want to support the project, you can do so via my BuyMeACoffee
Thank you all for your support!
Subido por primera vez: 4 de noviembre de 2025
Última actualización: hace 6 horas
Descarga más reciente: hace 27 minutos
43 Comentarios
PyloaderV allows you to run Python scripts in GTA V Enhanced and Legacy. Just put a .py file, a folder or a .pyv file in the scripts folder named pyscript, write your code, and launch the game.
Modify your scripts whenever you want and reload them in-game with F9 (configurable in PyloaderV.ini).
The pyscript folder includes several examples. You can delete all examples if you don't need them.
Requirements :
- GTA V (Legacy or Enhanced)
- ScriptHookV
- Python: NO install needed — the embedded Python 3.12 runtime is already bundled in the zip (shvpy_runtime/ folder)
Installation :
Copy into your GTA V root (the folder containing GTA5.exe) ONLY these:
- PyloaderV.asi
- PyloaderV.ini
- pyscript/ (drop your Python scripts here)
- shvpy_runtime/ (embedded Python 3.12, do not rename)
Changelog :
0.9
- .pyv single-file mods: a whole mod in one file, drop it into pyscript/ (F9 reload and AutoReload supported). Mods get private module namespaces with relative imports, so two mods can ship modules with the same name.
- Natives with out-params fixed (GET_SHAPE_TEST_RESULT, GET_GROUND_Z_FOR_3D_COORD, GET_CURRENT_PED_WEAPON... ~175 natives): they now return the values the game writes, e.g. status, hit, pos, normal, ent = GET_SHAPE_TEST_RESULT(handle). Thanks for the report!
- New raycast helpers: world.raycast(start, end) and world.raycast_from_camera() (what the camera looks at, no aiming needed).
- Fixed Entity/Ped/Vehicle .delete() and .dismiss().
- gta.Vector3 is now available to scripts.
- For mod authors: pip install pyloaderv gives autocomplete for the gta module and the pyloaderv command (new, pack, install, pip).
v0.8:
- Performance improvements, averaging 1.4x and up to 2.4x in some cases
v0.7:
- Performance improvements, averaging 2.5x and up to 3.3x in some cases
- blueprint editor added and updated for 0.7 (for devs)
v0.6:
- Major change: The mod is now standalone. The use of ScriptHookVDotNet is no longer required.
- Experimental status: This is an experimental version. If you find any bugs, please don't hesitate to report them.
v0.5.1:
- Bug fix
v0.5:
- Blueprint editor (for dev, in beta) added
- For devs folder upgrade
v0.4.1:
- Bugfix for tutorialV0.4.html
v0.4:
- Added PyloaderV.log
- Script Priority: Control loading order with __priority__
- Lib Fix: Files in Lib/ are now detected during reload
- New Options: LogEnabled and LogMaxSizeKB in the .ini file
- Bug fixes and memory optimizations
v0.3.2:
- Added "for devs" folder and modification of the py_scripts folder
v0.3.1:
- Added Syntax_Guide.html file
Want to support the project?
If you like PyloaderV and want to support the project, you can do so via my BuyMeACoffee
Thank you all for your support!
Subido por primera vez: 4 de noviembre de 2025
Última actualización: hace 6 horas
Descarga más reciente: hace 27 minutos
-
-
-
-
@meumeuh007 First off, thanks a lot for this!
I'm using the latest version of this mod but I'm still having issues with the example kill counter script you provided with the download.First, I'm getting:
'[2026-01-03 12:51:12] [ERROR] Load KillCounter.py: No module named 'Lib.utils''So I move the notify method to the main file but it's still not working with
'[2026-01-03 12:52:15] [ERROR] Tick KillCounter.py: expected Array[Model], got list'I don't have any other mods installed in my game other than this mod. Do you know what the problem could be?
I'm on GTA 5 Enhanced and version is: VER_EN_1_0_1013_17
3 de enero de 2026 -
-
Nvm, I figured it out. The Lib folder needs to be in the root scripts_py folder and not in any nested folder. As for the error, I just removed the list [] from the line "nearby_peds = World.GetNearbyPeds(player.Position, 250.0, [])"
7 de enero de 2026 -
-
-
0.6 update:
Complete rewrite of the mod; it no longer requires ScripthookVDotNet to run. Basically, we now have:
- ScripthookV: for C++
-scripthookvdotnet: for C#
-PyloaderV: for PythonThis is a test version; it should work fine, but if you encounter any issues, you can revert to version 0.5.1.
13 de mayo de 2026 -
-
Hey brother, but I can't figure out how to create Python scripts with AI, and also, after creating them, where to put them in which directory.
16 de junio de 2026 -
@Jhoson12 hi, For the AI, you can provide it with the syntax_guide.html file so it can understand it. As for the folder, you need to create a folder named "pyscript" in the root directory (where the GTA .exe file is located) and place it there. If you need more details, don't hesitate to ask
16 de junio de 2026 -
I'm getting back into scripting GTA5 and this is what I want to use. However I think it might be missing some of the stuff I need for my scripts like adding in companions using the mp freemode models. It looks pretty sraight forward how to add the code in your includes but I was wondering if you had already planned on adding more to this in the future, or I could just share what I come up with. Thanks for this!
15 de julio de 2026 -
Expandir para leer el comentario completo
@keyofrassilon13
Hey, thanks a lot — glad it's what you're looking for!Good news: nothing's really missing for that. MP freemode models work like any other model name. One gotcha: freemode
peds spawn with empty components, so call SET_PED_DEFAULT_COMPONENT_VARIATION right after spawning to clothe them. For
companions, set the ped's relationship group to the player's group and add it as a group member — it'll follow and defend
you.Here's a complete working example — drop it in pyscript/, press F5 in game to spawn a freemode companion:
import gta
from gta import player, world, ui
from gta.natives.ped import (
SET_PED_DEFAULT_COMPONENT_VARIATION,
SET_PED_RELATIONSHIP_GROUP_HASH,
SET_PED_AS_GROUP_MEMBER,
SET_PED_NEVER_LEAVES_GROUP,
SET_PED_COMBAT_ATTRIBUTES,
)
from gta.natives.player import PLAYER_ID, GET_PLAYER_GROUP
from gta.natives.entity import GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS
from gta.natives.misc import GET_HASH_KEY
from gta.natives.weapon import GIVE_WEAPON_TO_PED_spawn = False
def make_companion():
me = player.current().ped
# spawn just in front of the player
pos = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(me.handle, 0.0, 2.0, 0.0)
comp = world.create_ped("mp_m_freemode_01", pos, heading=0.0, ped_type=26)
if comp is None:
ui.notify("~r~model failed to load")
return# freemode peds spawn empty — give them the default outfit
SET_PED_DEFAULT_COMPONENT_VARIATION(comp.handle)# join the player's group so it follows and fights for you
SET_PED_RELATIONSHIP_GROUP_HASH(comp.handle, GET_HASH_KEY("PLAYER"))
SET_PED_AS_GROUP_MEMBER(comp.handle, GET_PLAYER_GROUP(PLAYER_ID()))
SET_PED_NEVER_LEAVES_GROUP(comp.handle, True)
SET_PED_COMBAT_ATTRIBUTES(comp.handle, 46, True) # can use cover/fightGIVE_WEAPON_TO_PED(comp.handle, GET_HASH_KEY("WEAPON_CARBINERIFLE"),
999, False, True)
ui.notify("~g~Companion spawned")def on_key_down(vk, down, shift, ctrl, alt):
global _spawn
if down and vk == 0x74: # F5
_spawn = Truedef on_tick():
# heavy work (model streaming) must run here, not in on_key_down
global _spawn
if _spawn:
_spawn = False
make_companion()The one thing to watch: model streaming needs a script fiber, so spawn from on_tick (or on_start), not directly inside
on_key_down — that's why the example uses a pending flag.15 de julio de 2026 -
-
Hi, can you update this ? it wont work with the current latest ScriptVHook. It just got updated Last July 15
16 de julio de 2026 -
Hi @meumeuh007
Thanks a lot for this amazing addition to the scripting plattforms for gta5 :) I already wrote a few smaller mods, which mostly work like a charm. However, I struggle to get any raycasting results. The wrapper of GET_SHAPE_TEST_RESULT (gta.natives.shapetest) requires to give the pointers of the return variables as argument. Naturally, this shouldn't be the case for the wrapped python function. I tried to write a workaround by handing over actual pointer addresses (pointing to writeable cbuffers created using ctypes). Although, now I don't get SEH exceptions anymore, but the values/buffer stay/contain zeros only. I guess this has to be fixed within the .asi :/
(I try to get a location of the world the player currently is looking at, without the necessity to aim with a weapon; just by moving the camera)Nevertheless, this is an exceptionally well made mod. It doesn't seem to crash GTA, it supports hot-reload, and script exceptions only halt the offending script without affecting other scripts or the game world :) Highly recommended to check out!!!!
15 de septiembre de 2026 -
@Flaming_Skull Thanks a lot for the detailed report! You were right: natives with pointer arguments (BOOL, Vector3, Entity*...) were not wrapped properly. Fixed in 0.9: they now return the values directly, e.g. status, hit, pos, normal, ent = shapetest.GET_SHAPE_TEST_RESULT(handle) (trailing out-params can be omitted). For your use case there is also a new helper: world.raycast_from_camera() returns what the camera is looking at (hit, position, normal, entity), no aiming needed. Note that START_SHAPE_TEST_LOS_PROBE is asynchronous: GET_SHAPE_TEST_RESULT returns 1 (pending) with zeros until it returns 2, which is probably why your ctypes buffers stayed empty. The helper uses the synchronous probe so you get the result immediately.
hace 6 horas -


0.7 update:
Huge performance and stability boost, with execution speeds averaged at 2.5x and up to 3.3x faster in some cases. Also features the introduction and full update of the brand-new blueprint editor (for devs).