News: Welcome back to Bullworth! If you haven't already, you will need to reset your password..

Show Posts

* Messages | Topics | Attachments

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Altamurenza

Pages: [1] 2 3 ... 9
Mod Releases / Re: Wheel Menu (PC)
« on: June 20, 2023, 05:08:09 AM »
Has the issue been resolved?

Yes, it was fixed in DSL 4.

Mod Releases / Re: Wheel Menu (PC)
« on: May 10, 2023, 02:00:22 AM »
Thanks for the report, to be honest, I rarely use a gamepad in my gameplay because for some reason my condition makes me easier to use keyboard and mouse instead of controller. So, I'm sorry if I didn't pay much attention to gamepad users like you, I'll update the mod to be more friendly for gamepad users.

  • Super Spud Gun is transparent and has a white square as icon image.
Sometimes I experienced the transparent super spud gun too even without any mod installed, I'll trace it further later. But, the white square icon is pure R* fault because there's no icon file for the super spud gun in "../Bully - Scholarship Edition/TXD/HUDElems.nft" and the game will show a temporary icon (white square).

To remove the modded weapons:
1. Open "../_derpy_script_loader_/scripts/Wheel Menu/item.lua" with Notepad.
2. Delete GROUP_01_REGISTER('GUN', 396, nil, nil, 'SSG', true).
3. Delete GROUP_01_REGISTER('OTHER', 420, nil, nil, 'FL', true).
4. Save and close the file.

  • Trying to take one hand accessory off will take the other hand accessory off instead. Trying to put it back on or take it off again has no effect. If a hand accessory is already off and you try to take it off, it will take the other accessory off instead. Trying to put it back on will work only the first time.
  • Sometimes, when selecting a Hand accessory option, the Wheel Menu closes and then it never opens again and it also disables the standard way of selecting weapons ingame (previous weapon and next weapon buttons).
It seems like I made a mistake by setting 'none' to the other hand slot which cause a conflict between functions in the script. Does DSL console tell you anything about an error? The error notification would be really helpful to track the issue.

Being able to change between an inner shirt (such as a T-shirt, long sleeved shirt) and outer clothing (such as a hoodie), instead of just the tank-top, would be great.
You can change the Tank Top to any clothing you want by editing the item.lua. Find GROUP_02_REGISTER('TORSO', nil, 'P_SSleeves11') and replace 'P_SSleeves11' to 'P_SSleeves3' (White T-Shirt) or 'R_Jacket1' (Tuxedo Jacket perhaps if you're psychopath wearing Tuxedo under your School Uniform).

Or.. if you want to add a new clothing layer to the Wheel Menu, you can just add GROUP_02_REGISTER('TORSO', nil, 'P_SSleeves3') below GROUP_02_REGISTER('TORSO', nil, 'P_SSleeves11') so you can switch between layers easily.

NOTE: "P_SSleeves11", "P_SSleeves3", and "R_Jacket1" are the model name of clothing which can be found in World.img.

« on: February 10, 2023, 04:48:23 AM »
Whoaa.. an old member still on the board, really cool.  ;D

BTW.. I think someone has reported it to me before, but I just forgot to put it on my note. Thanks for reminding me about that, this thread is surely created for criticism and feedback from users, it's just no one had been commenting here before, most people just make a comment on my YouTube channel or DM me on the Discord.

Anyway, thank you for using my mod.

Modding Questions/Help / Re: Manual Installation for 'IMG' Mods
« on: February 10, 2023, 04:20:58 AM »
Since there's no such manual installation in Selector Mod 7.0.1, I'll be glad to help you install the mod and I'll also consider to put manual installation in 7.0.2 update. Here's what to do:
1. Download IMG Tool 2.0 from this link
2. Extract the ZIP and run the executable file with Run As Administrator.
3. Open the Scripts.img of Selector Mod.
4. Find and extract these following files to any folder that easy to remember:
   [-] ClassBiology.lur
   [-] ClassGeography.lur
   [-] ClassMath.lur
   [-] FirstPerson.lur
   [-] MGArcade.lur
   [-] STimeCycle.lur
   [-] Tattoos.lur
5. Close IMG Tool 2.0
6. Go to '../Bully - Scholarship Edition/Scripts/' folder
7. Open your current Scripts.img
8. Click Commands > Add
9. Add every single file that you just extracted from Selector Mod's Scripts.img
10. Click Commands > Rebuild Archive
11. Close IMG Tool 2.0
12. Copy SelectorMod folder from Selector Mod's archive to your Scripts folder
13. Done

Since you said you have a lot of mods inside Scripts.img, it's worth to point out that Selector Mod might replace your current STimeCycle mod since this mod still relying on it. The other files that come from Selector Mod such as ClassBiology, ClassGeography, ClassMath, FirstPerson, MGArcade, and Tattoos would not likely to clash with any other mod except Math BOT which replaces ClassMath file.

Also, thank you for using Selector Mod 7.0.1, I really appreciate it.

Modding Questions/Help / Re: Save Data
« on: October 16, 2022, 11:53:20 AM »
PlayerSetScriptSavedData(ID, VALUE)
PlayerGetScriptSavedData(ID) --> returns save data id's value

Be very careful! Messing with save data will probably cause negative impacts to the gameplay.
See derpy54320 thread and the documentation about them in here.

Modding Questions/Help / Re: Question / how to add npc fighting style
« on: October 14, 2022, 06:56:41 AM »
You cannot just translate them and put them on your script, that is not how it works. It will be BEST if you make a simple mod to begin with because I can clearly see that you just tried it blindly. I think, this topic is over, the answer is in front of your face and the rest is up to you. I hope you read some Lua documentations and manage to solve it.

Modding Questions/Help / Re: Question / how to add npc fighting style
« on: October 14, 2022, 03:19:36 AM »
First of all, I'm sorry, but your question was quite ambiguous to me.
There are three things came on top of my mind when I first saw your question:
1. You want to add another NPC's fighting style for NPC.
2. You want to add NPC's fighting style for Player.
3. You want to change Player and NPCs fighting style.

I looked at your latest reply and felt like none of them are seem to match your purpose here :hmm:.
From what I see, you're looking to add specific fighting animations to certain NPCs.

Anyway, I will not look over the mistakes of your script that you're just took it from Reath, because it takes time more for me to explain snowballing method than to answer your question. Besides, what I want to explain on this reply will have a strong correlation to my previous reply about PedGetTargetPed and PedFindInAreaXYZ.

To be simple, if you add these following lines to my previous example script (under "-- (4) main loop, ..."), it will do the same results as Reath's script.
Code: [Select]
-- get player coordinates.
local X, Y, Z = PlayerGetPosXYZ()

-- for loop and PedFindInAreaXYZ in a table.
for INDEX, PED in ({PedFindInAreaXYZ(X, Y, Z, 999999)}) do
    -- check the existence of pedestrian and exclude player from the list.
    if PedIsValid(PED) and PED ~= gPlayer then
        -- check if pedestrian is in combat and stands still.
        if PedIsInCombat(PED) and PedMePlaying(PED, 'DEFAULT_KEY') then
            -- check if pedestrian is Peanut and his target is pretty close to him.
            if PedGetName(PED) == 'N_Peanut' and DistanceBetweenPeds2D(PED, PedGetTargetPed(PED)) <= 1.5 then
                -- add Throat Grab for Peanut with 5% chance.
                if math.random(1, 100) <= 5 then
                    PedSetActionNode(PED, '/Global/G_Johnny/Offense/Special/SpecialActions/Grapples/Dash', 'Act/Anim/G_Johnny.act')
                -- add Jackie Kick for Peanut with 10% chance.
                if math.random(1, 100) <= 10 then
                    PedSetActionNode(PED, '/Global/Nemesis/Offense/Medium/Strikes/HeavyAttacks/JackieKick', 'Act/Anim/Nemesis.act')
                -- add Super Uppercut for Peanut with 3% chance.
                if math.random(1, 100) <= 3 then
                    PedSetActionNode(PED, '/Global/Nemesis/Offense/Short/Strikes/LightAttacks/JAB/HeavyAttacks/SuperUppercut', 'Act/Anim/Nemesis.act')
            -- if you want to add some more NPCs other than Peanut, it depends on your will to learn
            -- otherwise, it won't help :(

I tested the script myself and it worked. If it did not work for you, you probably made a mistake in compiling the script or the placement (remember to paste those lines under "-- (4) main loop, ..."). I only added some specific fighting animations to Peanut, but you can try to add another fighting animations to another NPCs.

Also, I'm sorry for making you put some efforts to do this. I don't believe in instant way, it won't last, the process will shape you out.

Stay curious, keep trying, and good luck.

Modding Questions/Help / Re: Question / how to add npc fighting style
« on: October 13, 2022, 07:41:02 AM »

The mod used an ancient method to get every NPC's pedestrian number, but I must admit that it was very creative way to retrieve pedestrian numbers by snowballing one NPC to another with interactions. Nowadays, we can simply use PedFindInAreaXYZ to get them all as I explained before.

Modding Questions/Help / Re: Question / how to add npc fighting style
« on: October 12, 2022, 11:48:20 PM »
Welcome to the board, there are not much activities here tbh.

If you are new, you may want to learn how to compile Lua script first before jump to anything else. Make a simple new 'Text Document' and name the file as STimeCycle.lua, copy everything from the given example below and try to compile it with LuaC.
Code: [Select]
-- the double hyphen ('--') is a comment section used by developer to explain something without interfering the actual script.
main = function()
    -- (1) wait for the game loading.
    while not SystemIsReady() or AreaIsLoading() do
    -- (2) load a light setup of animation groups, this is required because we involved in animation modding.
    local GROUP = {
    for _, ANIM in ipairs(GROUP) do
        if not HasAnimGroupLoaded(ANIM) then
    -- (3) modders usually make their own setup in here, after the game has loaded and before the main loop running.
    -- loop.
    while true do
        -- (4) main loop, this will run forever till you quit the game or crash.
        -- print a text, so you know that your script is actually working.
        TextPrintString('It works!', 1, 1)

Once you succeed and your brain has stimulated a little bit of dopamine, I would simply recommend you to read these following documentations if you had considerable amount of time to spend 'cause they are simply useful for your further career in our Bully modding scene. Just skip them already if you don't want to or don't have time to read. (comeback later)
- Lua 5.0 Reference Manual
- Doc's Bully LUA wiki (a bit outdated)
- Function's / Mission scripting tutorial

Now, we have skipped dozens of Lua introductions, the function you were looking for is PedSetActionTree. The function itself has three arguments which are Ped (number), Animation Node (string), and Animation File (string). PedSetActionTree(Ped, Animation Node, Animation File).

Code: [Select]
PedSetActionTree(gPlayer, '/Global/Nemesis', 'Act/Anim/Nemesis.act')

Ped in the most cases are referring to variable that has pedestrian number, gPlayer is a variable that refers to our playable character which is actually equal to 0 (fixed number). Unlike the player, NPC has randomly generated number by the game and they don't have variables like gPlayer by default. The Animation Node and Animation File are codes, they are quite specific, so you can literally copy those from any other source code.

Since NPC's variable is not defined in the first place, you can either define them by targeting with a function called PedGetTargetPed or define all of them with PedFindInAreaXYZ. Both functions have some sort of differences one to another, PedGetTargetPed will return a pedestrian number based on your lock-on target, instead PedFindInAreaXYZ will return every single pedestrian number in certain distances.

1) Using PedGetTargetPed

This function only has one argument which is Ped, as mentioned before, we technically don't even know any NPC's pedestrian number, so we used this function in the ancient days to get pedestrian number with player targeting mechanism. In other words, gPlayer is the only option to use if you want to get NPC's pedestrian number.

Remember the given example script above? Yes. Copy these following lines and paste it below "-- (4) main loop, ..." because the code needs to be executed continuously without a hitch. Any "hitch" will prevent us from achieving our purpose here. Anyway, we'll talk about hitch later (perhaps, in another topic).

Code: [Select]
-- get target pedestrian number.
local TARGET = PedGetTargetPed(gPlayer)

-- check if pedestrian number is a valid ped.
if PedIsValid(TARGET) then
    -- press Zoom Out to change NPC fighting style.
    if IsButtonBeingPressed(3, 0) then
        PedSetActionTree(TARGET, '/Global/Nemesis', 'Act/Anim/Nemesis.act')

Approach any NPC, lock-on them, and press Zoom Out to change their fighting style.

2) Using PedFindInAreaXYZ

This function has four arguments in total, they are X, Y, Z, and Distance. X, Y, and Z are simply coordinates that you probably had learn it in school and Distance is a certain range of area that you want to cover with. In most cases, modders were likely to ignore the XYZ part by filling the arguments with 0, 0, 0 because they knew that the most important part of this function is the Distance. They usually put 999999 values which means every pedestrian is covered by that wide range.

However, as I have explained the differences before, this function returns every single pedestrian number, so we have to put them on a table and use "for loop" in order to retrieve every single NPC's pedestrian number in there. In simple term, "for loop" will automatically do 'task' of the organized structures (ex: alphabetical order which is A - Z) without having to do the tasks one by one.

Same as the previous function, copy these following lines and paste it below "-- (4) main loop, ...".

Code: [Select]
-- get player coordinates
local X, Y, Z = PlayerGetPosXYZ()

-- for loop and PedFindInAreaXYZ in a table.
for INDEX, PED in ({PedFindInAreaXYZ(X, Y, Z, 999999)}) do
    if PedIsValid(PED) then
        -- press Zoom Out to change every pedestrian fighting style (including the player).
        if IsButtonBeingPressed(3, 0) then
            PedSetActionTree(PED, '/Global/Nemesis', 'Act/Anim/Nemesis.act')

You just have to press Zoom Out to change fighting styles of every single spawned living creature.

Good luck with that.

Mod Releases / Re: Wheel Menu (PC)
« on: September 24, 2022, 01:47:50 AM »
Great mod, although it will crash if you start a dodgeball game with this mod installed, mine does when I start GYM 2  :(

I tested it myself and I found out that DSL caused a crash in dodgeball minigame.
In other words, it has nothing to do with the wheel menu mod.

Thanks for the report, I already forwarded the issue to the mod author.

Mod Releases / Wheel Menu (PC)
« on: August 31, 2022, 11:45:42 AM »

"It's time to modernize this game mechanics."

Wheel Menu is a mechanism to 'do' something by selecting an option from the menu which looks like a wheel. There are many triple-A games who implemented this feature like GTA V, RDR 2, Mafia III, Watch Dogs: Legion, Far Cry 6, etc. This modification will allows you to use the wheel menu mechanics in Bully: Scholarship Edition (PC).

This modification is designed to be a mixture of newest game mechanics and classic game designs. I used the iconic yellow color, arial font, and rectangular texture to make this mod looks fit with the base game design. It also provides you many customizable and configurable things just in case we don't have the same preferences here.


Looking for gameplay footage?






Does it have controller support? (V1.4 or lower version)
Yes! Change 'use_controller false' to 'use_controller true' in the configuration.ini provided by the mod.
Instead of using custom activation key, controller users have to use Look Back (L3) to show/hide the wheel.

What kind of things are customizable and configurable?
You definitely can edit all texture components and icons used by the mod.
Also, there are many options in 'configuration.ini' to adjust like keys, colors, transparencies, etc.

Why do we need Derpy's Script Loader to be installed?
DSL is providing many cool features, drawing texture on the screen is one of them.
This mod Graphical User Interface (GUI) cannot be done without that.


Shout out to derpy54320 for her amazing Derpy's Script Loader mod! Without it, this mod is nothing more than a daydream. Also, maybe this mod is the first one released to public which requires DSL, so i hope people can help her to complete the DSL as soon as possible by cheering her up in anyway.

Support me to keep making mods by not reuploading or redistributing this mod to somewhere else.

Check out my other released mods: ALTAMURENZA MODS
Subscribe my YouTube channel: Altamurenza



* 1.5:
   - Fixed incorrect left hand and right hand indexes
   - Fixed a bit of inconsistency in animation stuff
   - Removed 'use_controller' setting from 'configuration.ini'
   - Changed key input from in-game button format to Direct Input Keyboard (DIK) codes
   - Changed mouse input from in-game button format to custom mouse codes
   - Added joystick key mapping using in-game button format
   - Added real time switching between joystick and mouse & keyboard key mapping
   - Added quick swap weapon using hotkey (123456) based on wheel menu weapon categories
   - Added 'toggle_activation' setting for togglable GUI under [KEYMAP] in 'configuration.ini'
   - Added 5 new configuration keys for joystick key mapping under [KEYMAP] in 'configuration.ini'
   - Added 8 new configuration keys for hotkey under [KEYMAP] in 'configuration.ini'
* 1.4:
   - Added compatibility patch for Derpy's Script Loader 4
   - Renamed 'config.ini' to 'configuration.ini' to be not confused by DSL default config for collection
* 1.3:
   - Fixed a slight yellow line at the edge of statistic bar
   - Fixed item change sound played even though there is only one item in the category
   - Added support for Tab↹ to be the activation key
   - Added support for stopping wheel menu script in the game
   - Added 6 new icons for apparel tab
   - Added new texture for statistic bar
   - Improved static texture design by adding gradient between the true color and black
   - Improved interactive UI design by adding animation for visual illustrations
   - Added toggle 'animated_icon' setting to 'config.ini'
   - Added toggle 'animated_stat' setting to 'config.ini'
   - Adjusted height position of tab information to be more higher
   - Adjusted yellow color to be more brighter
   - Removed rectangle texture behind tab information
   - Removed many unused "SetTextureBounds" in the internal code
   - Enabled 'game_motion' and 'game_sound' by default
   - Disabled 'game_filter_show' and 'game_filter_fade' by default
* 1.2:
   - Initial release

-  In DSL 4, Derpy has made some changes in key input functions which make
   the Wheel Menu 1.2 and 1.3 unable to 'do' something based on your
   selected option. The bug is already patched in Wheel Menu 1.4 or greater.

Modding Questions/Help / Re: How to get the area in front of a ped?
« on: August 25, 2022, 06:02:49 AM »
So, how can I do that? how to detect a small area in front of a ped?

You can use PedGetOffsetInWorldCoords function to do that.

The function has four arguments:
1. Ped (ex: gPlayer)
2. Left (> 0, greater than zero) or Right (< 0, lesser than zero)
3. Front (> 0, greater than zero) or Back (< 0, lesser than zero)
4. Up (> 0, greater than zero) or Down (< 0, lesser than zero)

It returns the desired position in coordinates (X, Y, Z).

Test the function by adding a yellow-ground-blip in front of the player:
Code: [Select]
if IsButtonBeingPressed(3, 0) then
  local FRONT_X, FRONT_Y, FRONT_Z = PedGetOffsetInWorldCoords(gPlayer, 0, 1, 0)
  if BLIP then BlipRemove(BLIP) end
  BLIP = BlipAddXYZ(FRONT_X, FRONT_Y, FRONT_Z, 0, 0, 7)

Mod Showroom / Re: CLEORedux for Bully
« on: August 25, 2022, 03:18:21 AM »
It's nice to see CLEO Redux also available for Bully Scholarship Edition.

I personally not that familiar with JavaScript, but I can learn it by the time.
I wonder, does CLEO Redux have networking support?
I know that you are not the author, but you seem to be familiar with the tool.

PS: I've never been modding GTA in my life..

POI stands for Point Of Interest.

Oh, I see. Thanks.

I know pedstats determines what weapon a ped spawns with its just that I've seen nerds spawn with squd guns and fire crackers in fight events when pedstats only spawns Bucky and Donald with those weapons normally (the only other times a ped seems to spawn with a unique weapon not determined by pedstats is missions which is set by the lua file for the mission and in certain locations when they use it for a prank.

True, certain mission like Stronghold Assault is also contribute to NPC's change of behavior for weapons. But.. most missions in Bully only change NPC's behavior for that moment like the Wrong Part of Town where the Greasers are showering you with Fire Crackers.

For some random event in free roam, their weapons are controlled by Events.lur in order to achieve their specific purpose. It's like the one you mentioned above (prank), NPCs don't actually spawn with a dead rat in their hands, but the game give it away for the prank events.

1. Where is the game stored its event locations in?
    Trigger.img > events(AreaName).dat
2. How the game setup weapon for NPCs when they spawn?
3. How the game manage events like random fights out there?
    Scripts.img > Events.lur

You must be referring to POIs.

Anyway.. I curious about what POI actually stands for?
Years of modding, but still I don't get what POI means lol.

Pages: [1] 2 3 ... 9