Difference Between Script Runner and Plugins

Within REFramework, Script Runner and Plugins represent two separate extension layers. Both allow additional functionality, but they operate at different levels of the engine and serve different purposes.

Understanding this distinction is important for stability, performance management, and troubleshooting after game updates.


Script Runner

Script Runner is responsible for executing Lua-based scripts. This is the most commonly used system for gameplay modifications and overlays.

File location:
reframework/autorun

File type:
.lua

How it works:
Scripts are written in Lua and executed through REFramework’s scripting interface. The framework reads and interprets these scripts during runtime and applies their logic continuously while the game is running.

Key characteristics:

Hot reload support
Scripts can be edited while the game is active. Changes can be applied instantly by resetting scripts from the menu without restarting the game

High compatibility
Scripts rely on the REFramework API, which helps maintain compatibility across minor game updates

Performance impact
Since scripts are interpreted in real time, running multiple complex scripts can increase CPU usage and reduce frame rate

Typical use cases:
User interface overlays, gameplay adjustments, automation systems, and visual tweaks


Plugins

Plugins operate at a lower level and provide deeper access to the game engine and system resources.

File location:
reframework/plugins

File type:
.dll

How it works:
Plugins are compiled modules written in native code. They are loaded into the game process during startup and interact directly with memory and engine systems.

Key characteristics:

Static loading
Plugins cannot be reloaded during runtime. Any change requires restarting the game

High performance
Since they are compiled, plugins run with minimal overhead compared to scripts

Lower stability across updates
Plugins often depend on specific memory structures. Game updates can change these structures, causing plugins to stop working or crash the game

Typical use cases:
Virtual reality integration, rendering modifications, advanced performance tools, and engine-level adjustments


Key Differences

Script Runner

Location: reframework/autorun
Format: .lua
Reloading: Supported during runtime
Complexity: Easier to create and modify
Stability: Generally stable across updates
Access level: Limited to framework API

Plugins

Location: reframework/plugins
Format: .dll
Reloading: Requires restart
Complexity: Requires native programming
Stability: Sensitive to game updates
Access level: Direct interaction with game memory


Recommended Usage

Script Runner is suitable for most modifications, especially those involving gameplay logic, user interface changes, or features that benefit from quick adjustments.

Plugins are intended for advanced functionality that requires deeper integration with the engine, such as rendering changes, VR systems, or low-level performance enhancements.


Troubleshooting Guidance

If the game crashes after an update, isolate the issue by testing each layer separately.

First, remove all files from the plugins folder and launch the game.
If the game runs correctly, the issue is likely caused by a plugin.

If the problem persists, remove scripts from the autorun folder and test again.

This method helps identify whether the issue originates from compiled modules or runtime scripts.

Official Download: REFramework Download
Comprehensive Guide and Documentation: REFramework Documentation

GitHub page for REFramework