Script Viewer 1.3
2.703
71
2.703
71
Script Viewer lets you easily view, pause and kill game scripts through an user interface (powered by ImGui) along with offering you the ability to start new scripts.
Mainly intended for toying around but it can also be used for debugging and educational purposes. :p
Might get extended to do more neat stuff in the future.
Installation:
Make sure you have ScriptHookV installed!
After that it's as simple as dragging the ScriptViewer.asi into your GTA directory.
Usage:
Simply press CTRL + O once you are in-game to toggle the overlay.
The game will stop running and all mouse and keyboard inputs will be redirected to the mod while the overlay is open (as long as the corresponding options are turned on).
Known issues:
Potential future additions:
Changelog:
1.3
1.2.1
1.2
1.1.1
1.1
The mod is open-source and licensed with the MIT license.
Github
Feel free to do whatever you want with it (and definitely don't hesitate to contact me for any remarks / questions / whatever you have about the mod!)
Mainly intended for toying around but it can also be used for debugging and educational purposes. :p
Might get extended to do more neat stuff in the future.
Installation:
Make sure you have ScriptHookV installed!
After that it's as simple as dragging the ScriptViewer.asi into your GTA directory.
Usage:
Simply press CTRL + O once you are in-game to toggle the overlay.
The game will stop running and all mouse and keyboard inputs will be redirected to the mod while the overlay is open (as long as the corresponding options are turned on).
Known issues:
- Script reloading is borked for now, unloading the mod WILL cause a crash
Potential future additions:
- Ability to view and edit global / local values
Changelog:
1.3
- Added the ability to record execution times of each script (along with the ability to see the instruction pointer's state for each trace for every non-asi script as a bonus)
- Moved to table items (from the previously used list item) for a cleaner presentation
- Added a component view and splitted mod options to their own component
1.2.1
- Updated WndProc hook to improve compatibility with specific platforms (hopefully fixes the mod for "Rage Plugin Hook" users)
- Added option to see stack size of each (non-asi) script
- Added option to toggle visibility of execution times, off by default
1.2
- Added pausing and profiling support for asi scripts
- Added option to switch between highest and average execution time profiling
- Fixed pausing / killing of script threads also affecting other threads with the same name
1.1.1
- Fixed a crash when minimizing the game with the overlay open
- Fixed scripts marked as "killed" not actually getting killed until the overlay was closed
- Fixed script execution times being displayed in "ns" (when they're actually measured in "ms")
- Fixed more race conditions which could occur when pausing a script
1.1
- Added simple profiling! It'll show you the highest execution time of a script within a specific timeframe (and regularly refresh it), doesn't work for asi scripts (yet)
- Added options to not block the game / keyboard inputs while the overlay is open
- Fixed resizing of the main window not working
- Fixed a potential crash when trying to kill an asi script
- Fixed a race condition when pausing / unpausing a script
The mod is open-source and licensed with the MIT license.
Github
Feel free to do whatever you want with it (and definitely don't hesitate to contact me for any remarks / questions / whatever you have about the mod!)
First Uploaded: Xoves 29 de Abril de 2021
Last Updated: Sábado 22 de Maio de 2021
Last Downloaded: 6 horas
All Versions
40 Comments
More mods by pongo1231:
Script Viewer lets you easily view, pause and kill game scripts through an user interface (powered by ImGui) along with offering you the ability to start new scripts.
Mainly intended for toying around but it can also be used for debugging and educational purposes. :p
Might get extended to do more neat stuff in the future.
Installation:
Make sure you have ScriptHookV installed!
After that it's as simple as dragging the ScriptViewer.asi into your GTA directory.
Usage:
Simply press CTRL + O once you are in-game to toggle the overlay.
The game will stop running and all mouse and keyboard inputs will be redirected to the mod while the overlay is open (as long as the corresponding options are turned on).
Known issues:
Potential future additions:
Changelog:
1.3
1.2.1
1.2
1.1.1
1.1
The mod is open-source and licensed with the MIT license.
Github
Feel free to do whatever you want with it (and definitely don't hesitate to contact me for any remarks / questions / whatever you have about the mod!)
Mainly intended for toying around but it can also be used for debugging and educational purposes. :p
Might get extended to do more neat stuff in the future.
Installation:
Make sure you have ScriptHookV installed!
After that it's as simple as dragging the ScriptViewer.asi into your GTA directory.
Usage:
Simply press CTRL + O once you are in-game to toggle the overlay.
The game will stop running and all mouse and keyboard inputs will be redirected to the mod while the overlay is open (as long as the corresponding options are turned on).
Known issues:
- Script reloading is borked for now, unloading the mod WILL cause a crash
Potential future additions:
- Ability to view and edit global / local values
Changelog:
1.3
- Added the ability to record execution times of each script (along with the ability to see the instruction pointer's state for each trace for every non-asi script as a bonus)
- Moved to table items (from the previously used list item) for a cleaner presentation
- Added a component view and splitted mod options to their own component
1.2.1
- Updated WndProc hook to improve compatibility with specific platforms (hopefully fixes the mod for "Rage Plugin Hook" users)
- Added option to see stack size of each (non-asi) script
- Added option to toggle visibility of execution times, off by default
1.2
- Added pausing and profiling support for asi scripts
- Added option to switch between highest and average execution time profiling
- Fixed pausing / killing of script threads also affecting other threads with the same name
1.1.1
- Fixed a crash when minimizing the game with the overlay open
- Fixed scripts marked as "killed" not actually getting killed until the overlay was closed
- Fixed script execution times being displayed in "ns" (when they're actually measured in "ms")
- Fixed more race conditions which could occur when pausing a script
1.1
- Added simple profiling! It'll show you the highest execution time of a script within a specific timeframe (and regularly refresh it), doesn't work for asi scripts (yet)
- Added options to not block the game / keyboard inputs while the overlay is open
- Fixed resizing of the main window not working
- Fixed a potential crash when trying to kill an asi script
- Fixed a race condition when pausing / unpausing a script
The mod is open-source and licensed with the MIT license.
Github
Feel free to do whatever you want with it (and definitely don't hesitate to contact me for any remarks / questions / whatever you have about the mod!)
First Uploaded: Xoves 29 de Abril de 2021
Last Updated: Sábado 22 de Maio de 2021
Last Downloaded: 6 horas
Outstanding!!
Can you write a script within this mod of yours to terminate a certain script whenever video memory exceeds e.g. 3800mb?
And that it could do that successfully again after each time reloading the.net scripthook?
Wow nice
@Ramtin_ace_thm You surely mean RAM right?🤔 Since there's no correlation between game scripts and video memory.
I don't have any plans on adding support for SHVDN scripts, however adding memory usage monitoring for game scripts might be doable as a potential feature in the future.
@pongo1231
I mean the vram or the memory of the video card, maybe there is a way to do that with .Net scripts, cause what I need is some command that stops certain. Net scripts from working
> doesn't work for asi scripts (yet)
> yet
👀
Thank you so much for this plugin, it works fine :-). But if you use this plugin with RAGE Plugin Hook to play with the LSPDFR mod it doesn't work :-(. It would be useful to use it with this mod as well. Could you implement this possibility in the future? Thank you
@CopGrinta Could you post your scriptviewerlog.txt file? Would help me investigate what the issue is (especially since I don't use RPH myself).
@pongo1231 Hello. Your plugin is great! I have read CopGrinta comment and I too have the same problem. I created two scriptviewerlog.txt files one with RPH and the other without. I hope it will help you because I also care that it works with RPH.
Thank you so much for your work
with RPH:
[Memory.cpp] Couldn't find pattern "48 8B C4 48 89 58 08 4C 89 48 20 55 56 57 41 54 41 55 41 56 41 57 48 8D 68 A1 48 81 EC F0 00 00 00"
[Main.cpp] Found rage::fwTimer::sm_bUserPause
[Main.cpp] Found rage::scrThread::sm_Threads
[Main.cpp] Found rage::scrThread::_sm_cwThreads
[Main.cpp] Hooked rage::scrThread::Update
[Main.cpp] Completed Init!
[Main.cpp] First IDXGISwapChain::Present cb call, initializing Dear ImGui
[Main.cpp] Hooked IDXGISwapChain::Present through vftable injection
[Main.cpp] Hooked IDXGISwapChain::ResizeBuffers through vftable injection
[Main.cpp] Not saving Dear ImGui settings
[Main.cpp] Dear ImGui initialized!
without RPH:
[Main.cpp] Hooked WndProc
[Main.cpp] Found rage::fwTimer::sm_bUserPause
[Main.cpp] Found rage::scrThread::sm_Threads
[Main.cpp] Found rage::scrThread::_sm_cwThreads
[Main.cpp] Hooked rage::scrThread::Update
[Main.cpp] Completed Init!
[Main.cpp] First IDXGISwapChain::Present cb call, initializing Dear ImGui
[Main.cpp] Hooked IDXGISwapChain::Present through vftable injection
[Main.cpp] Hooked IDXGISwapChain::ResizeBuffers through vftable injection
[Main.cpp] Not saving Dear ImGui settings
[Main.cpp] Dear ImGui initialized!
@TG743 Ah as I suspected the WndProc hook is broken. I assume the mod runs fine (as in doesn't cause crashes) other than not being able to open the overlay? I'll see what I can do, thanks for reporting the issue!
@pongo1231 Yes the mod works fine without RPH and is fantastic, the problem occurs only if you use RPH :-( . Thanks to you for your amazing work!
@pongo1231 Hello. Thank you very much, now the plugin works !!! If there are problems I'll let you know immediately. You're very kind to fix it in such a short time. Post the scriptviewerlog.txt file if you want to check it:
[Main.cpp] Hooked WndProc
[Main.cpp] Found rage::fwTimer::sm_bUserPause
[Main.cpp] Found rage::scrThread::sm_Threads
[Main.cpp] Found rage::scrThread::_sm_cwThreads
[Main.cpp] Found rage::scrThread::sm_Stacks
[Main.cpp] Found rage::scrThread::_sm_cwStacks
[Main.cpp] Hooked rage::scrThread::Update
[Main.cpp] Completed Init!
[Main.cpp] First IDXGISwapChain::Present cb call, initializing Dear ImGui
[Main.cpp] Hooked IDXGISwapChain::Present through vftable injection
[Main.cpp] Hooked IDXGISwapChain::ResizeBuffers through vftable injection
[Main.cpp] Not saving Dear ImGui settings
[Main.cpp] Dear ImGui initialized!
i thougt it was osiris on this site lmao
Hey, thanks for this usefull tool, also i have a question why can i see twice my ressource on the script viewer ?
@SuperCoolNinja If your script has multiple threads they'll show up separately in the list (at least with Scripthook as it creates a separate scrThread for each one).
@pongo1231 it is, all clear nown thanks again for this tool !
Great Mod! heres an idea
the effect is called "all of dat ass"
it would a group of clones of franklins aumt with a clone of lamar in the middle and the lamar clone will just keep saying lines that talk about aunt Denise
@pongo1231 Sadly does not appears to work with 2699
[fwTimer.cpp] Found rage::fwTimer::sm_bUserPause
[Memory.cpp] Couldn't find pattern "48 8B 05 ? ? ? ? 48 89 0C 06"
[Memory.cpp] Couldn't find pattern "66 89 3D ? ? ? ? 85 F6"
[Memory.cpp] Couldn't find pattern "48 89 05 ? ? ? ? EB 07 48 89 1D ? ? ? ? 66 89 35 ? ? ? ? 85 FF"
[Memory.cpp] Couldn't find pattern "66 89 35 ? ? ? ? 85 FF"
[Hwnd.cpp] Found hWnd
[Memory.cpp] Couldn't find pattern "48 8D 05 ? ? ? ? 33 C9 44 89 75 20"
[Memory.cpp] Couldn't find pattern "80 3D ? ? ? ? ? F3 0F 10 0D ? ? ? ? F3 0F 59 0D"
[Main.cpp] Hooked IDXGISwapChain::Present through vftable injection
[Main.cpp] Hooked IDXGISwapChain::ResizeBuffers through vftable injection
[Main.cpp] Not saving Dear ImGui settings
[Main.cpp] Dear ImGui initialized!
@justalemon I think I updated the source code in the Github repo to support b2545 without creating another release here. Does that version work? Otherwise I'll take a look again.
@pongo1231 Compiling from source does indeed works in 2699
[fwTimer.cpp] Found rage::fwTimer::sm_bUserPause
[scrThread.cpp] Found rage::scrThread::sm_Threads
[scrThread.cpp] Found rage::scrThread::_sm_cwThreads
[scrThread.cpp] Found rage::scrThread::sm_Stacks
[Memory.cpp] Couldn't find pattern "66 89 35 ? ? ? ? 85 FF"
[ScriptRoutineTracer.cpp] Hooked rage::scrThread::_RunInstr
[ScriptRoutineTracer.cpp] Found ENTER instruction byte to trap in rage::scrThread::_RunInstr
[ScriptRoutineTracer.cpp] Found LEAVE instruction byte to trap in rage::scrThread::_RunInstr
[Hwnd.cpp] Found hWnd
[Main.cpp] Hooked WndProc
[Memory.cpp] Couldn't find pattern "48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 80 B9 46 01 00 00 00"
[Main.cpp] Hooked IDXGISwapChain::Present through vftable injection
[Main.cpp] Hooked IDXGISwapChain::ResizeBuffers through vftable injection
[Main.cpp] Not saving Dear ImGui settings
[Main.cpp] Dear ImGui initialized!
[Main.cpp] Completed Init!
The problem now is that the mouse cursor gets stuck in the center of the screen, preventing you from using the ImGui interface.
@pongo1231 I tried compiling from source in b2824 and it got stuck here:
[fwTimer.cpp] Found rage::fwTimer::sm_bUserPause
[scrThread.cpp] Found rage::scrThread::sm_Threads
[scrThread.cpp] Found rage::scrThread::_sm_cwThreads
[scrThread.cpp] Found rage::scrThread::sm_Stacks
[Memory.cpp] Couldn't find pattern "66 89 35 ? ? ? ? 85 FF"
[ScriptRoutineTracer.cpp] Hooked rage::scrThread::_RunInstr
[ScriptRoutineTracer.cpp] Found ENTER instruction byte to trap in rage::scrThread::_RunInstr
[ScriptRoutineTracer.cpp] Found LEAVE instruction byte to trap in rage::scrThread::_RunInstr
[Hwnd.cpp] Found hWnd
[Main.cpp] Hooked WndProc
[Memory.cpp] Couldn't find pattern "48 89 5C 24 08 48 89 74 24 10 57 48 83 EC 20 80 B9 46 01 00 00 00"