npcDevlog - September 2024

-

September has been a very productive month at Jump On Studios. Between fixing bugs and making important updates to our scripts, we have made great progress in optimizing the experience for both FiveM and RedM server owners and players. This month, we focused on fixing bugs, improving performance, and simplifying the development process with jo_libs. Here’s what we worked on.

Major Updates to Jo Libs

This month, I worked on a major module for jo_libs called gameEvents. The goal of this module is to make handling game events easier and more efficient to use in your scripts. This feature relies on the global files introduced in the August devlog, which help centralize event management and reduce server load.

For example, here’s how the whistle event code looked before the update:

-- Initialize values
local eventDataSize = 2
local eventDataStruct = DataView.ArrayBuffer(8 * eventDataSize)
for a = 0, eventDataSize - 1 do
    eventDataStruct:SetInt32(8 * a, 0)
end
-- Get the event data
local is_data_exists = GetEventData(groupEvent, i, eventDataStruct:Buffer(), eventDataSize)
if is_data_exists then
    -- Filter results
    if eventDataStruct:GetInt32(0) == jo.me then
        local whistleType = eventDataStruct:GetInt32(8)
        if whistleType == shortWhistle then
            WhistleHorse()
        elseif whistleType == longWhistle then
            WhistleFollowHorse()
        end
    end
end

And now, here’s how it looks after the update with jo_libs and global files:

jo.gameEvents.listen('EVENT_PED_WHISTLE', function(data)
    if data.initiator_entity ~= jo.me then return end

    if data.whistleType == joaat('WHISTLEHORSESHORT') then
        WhistleHorse()
    elseif data.whistleType == joaat('WHISTLEHORSELONG') then
        WhistleFollowHorse()
    end
end)

This change not only makes the code simpler but also improves performance by centralizing event handling with global files.

Bug Fixes and Improvements

This month, I spent a lot of time fixing known bugs in some of our most popular scripts:

  • Clothing Store Script: Several bugs were fixed, improving stability.
  • Stable Script: I cleaned up unused functions and optimized memory usage thanks to better integration with jo_libs. I also fixed a bug with the taming process that wasn’t working correctly. In addition, a bug affecting horse tails and manes was also fixed.
  • jo_libs: Many optimizations were made, and the library continues to evolve with new features.

After dealing with these bugs, I was finally able to catch up on all support tickets. The only script left to fix is the Hairdresser Script.

Website Overhaul and Article Release

September also marked the completion of a major overhaul of the Jump On Studios website. The goal was to improve stability and speed, as well as fix the auto-refreshing issue that was hurting the site’s SEO. With these improvements, the site should now load much faster, improving both the user experience and search engine rankings.

Additionally, I published an article called "Which framework should I use on RedM server?" to help server creators choose the best framework for RedM. This is the first in a series of articles that I plan to publish regularly to contribute to the dev community. Stay tuned for more!

Hairdresser Script: Stability Issues

We know that the stability of the latest Hairdresser Script update is not great. We are already working on the next patch to fix all the bugs reported. Rest assured that improvements are on the way, and we’re doing everything we can to solve these issues quickly.

RSG Inventory Update

This month, RSG released version 2 of their inventory system, which came with changes to the API. We are planning to update jo_libs in the coming days to support this migration, while still keeping compatibility with version 1 of the API.

Conclusion and October Goals

Overall, September was a very productive month. We fixed many bugs, and I’m happy with the progress made on the gameEvents module in jo_libs. While I had hoped to do more, especially with the Character Creator, bug fixing remains my top priority. As I release more scripts, the demand for support grows, and balancing development and support is always a challenge.

For October, my main goals are:

  • Finalize and release the Character Creator (I hope this time is the right one).
  • Update the jo_libs documentation with the new modules.
  • Fix any remaining bugs, especially in the Hairdresser Script.

Thank you to everyone who continues to support Jump On Studios and read these devlogs. As a token of appreciation, here’s a 48-hour discount code: devlog.