Skip to content

brendeni1/LSPDFR-Checker-V2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome To v2!

This is the less scuffed, scuffed version of LSPDFR Update Checker v1! I've mostly changed the structure of the code.

TLDR:

v2 works on the same principles as v1; following the same usage process will net you the expected outcomes. Not a crazy amount has changed in terms of end-user expierience/setup & use.

Setting It Up

This program is relatively easy to set up. I personally just use it inside an IDE. If you don't know what an IDE is/how to use one, that is on you to figure out. Once you have it opened in your IDE, install the required PIP modules: pip install -r requirements.txt.

If you have any further questions, make an issue here, or DM me on my LSPDFR profile. I will be adding to this readme with any steps that I forgot to state on setting this program up.

Updating This Script

As I add new things, and develop new features to this program, you should naturally update it. Ironically, this update checker doesn't have an update checker, so you may need to check here periodically. I may eventually impliment some sort of version checker for this script; For now, it's just Coming Soon™...

Checking a Log

To use this, all you have to do is place a RagePluginHook.log file in the root folder where the .py script file is. It uses logs to detect plugins[, and this is because it is meant to be mainly used on other's games. (LSPDFR support and yada-yada...)

Configuration

In config.json, there are a few arrays which will affect how the program checks.

Main

The "main" array is used to specify some of the essential versions. These have to be manually updated each time their respective program is updated.

Blacklist

The "blacklist" array is used to blacklist a plugin which is either weirdly displayed (ie: "APIExample" and such...), or improperly versioned. For some reason, many plugin devs forget to update their assembly versions which causes the script to think that the plugin is outdated, when in reality it might be fine.

Here is an example:

CodeRedCallouts' Bad Assembly Version CodeRedCallouts' Version

If you come across a plugin that is weird, just blacklist it.

Hardcoded

The "hardcoded" array is used for plugins that aren't on LCPDFR.com, and are widely used. An example of this is all of Bejoijo's plugins. It can also be used with plugins that use build numbers, Section136Callouts as an example.

Deprecated

The "deprecated" array is used for plugins that cause issues, are outdated and no longer supported, or have better alternatives. You can specify the reason for deprecation by adding a string to the JSON. If you would like no text, just put null. The text will show up right next to the plugin, example:

Removal Example

Flags

The "flags" array is used to check the log for common issues. As you can see, in the JSON there are 2 properties. "r" is a shorthand for RegExp, and it's purpose is simple. Any expression that is put in this field will be tested against the user's log. If there is a match, this means that a common error was found, and the program will display this at runtime. Whatever is in the "desc" field will be displayed. Example:

Flag Example

I have also added a new field to the flags parameter. The "smart" tag is useful when you have a RegExp that could match a broad term of issues. For example, in some logs, there will be a "file not found" issue. This is a bit vauge, and this feature is present to help. If you put a RegExp in the smart field, te script will check each inital match for that RegExp. It's hard to explain, and pictures speak 1000 words:

Smart Flag Example

Hope you can understand it better with that... 🤒

Incorrect Installs

Finally the "incorrect" array is used to check the log for plugins that aren't in the right folders. Some people mistakenly put RAGENativeUI among others into the plugins/LSPDFR folder. As we know, this is incorrect.

The "name" key is used for the plugin/dll name. It will be the trigger. If a plugin is found with this string, the user will be notified. The "path" key is used for the correct path that the plugin/script should be installed in. This is useful because some plugins are handled by RAGE, not LSPDFR, hence the plugins/LSPDFR directory being incorrect. Example:

Incorrect Example

Adding an ID

In the ids.json file, the numbers next to all of the plugins correspond to the LCPDFR.com ID. The ID can be found here:

LSPDFR ID location

Adding an ID is pretty self explanitory, just make sure that the plugin name is the same as the .dll name.

Hash Converting

There is an included hashConvert.py file which pulls all its hashes from hashes.json. It's pretty basic, but quicker than googling I guess. This is useful when you get this error, or you find a GTAV hash in a log. Note: not all hashes for vehicles will be in here-only about 90%

Hash Error Example

RAGENativeUI Versions

This script will also attempt to find the version of RNUI installed. It kind of works?... It requires a plugin to send the version inside of the log however. Popular callouts like Section136 and etc do this so it works 60% of the time.

Results

Here is one of the various outputs you will see when checking a log:

Example Check

You can run your own test log by using this file. It will produce the same results as above:

https://raw.githubusercontent.com/DarkVyprFiles/darkvyprfiles.github.io/main/RagePluginHook-TestFile.log

Just save it as a .log file.