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.

Topics - Altamurenza

Pages: [1]
1
Mod Releases / Chaos Wand
« on: May 31, 2022, 06:20:04 AM »
CHAOS WAND 2.0
BY: ALTAMURENZA


"The original Chaos Wand is back!"

Chaos Wand is a mod where you can conquer Bullworth with only one weapon. The wand has two elemental spells to cast, namely Fire Storm and Lightning Storm. The magical effects will also increase by completing more chapter in the game that makes this weapon to be more dangerous over the time. The second version of this mod is about fixing the weirdness & overpowered wand in the previous version.


- DOWNLOAD -

(For Scholarship Edition & Anniversary Edition)

Click here for version 1.0.


- INSTALLATION -

The manual installation require IMG Tool 2.0, make sure you grab one from some GTA modding sites out there or playstore if you're running on Android device. Other tools such as IMG Factory and G-IMG are not officially supported, but probably work as well.

MANUAL
   1) PC
      - Open "../Bully - Scholarship Edition/Scripts/Scripts.img" via IMGTool 2.0
      - Edit > Find > Type Garages.lur > Enter > Delete
      - Commands > Add > Find this mod Garages.lur > Open
      - Commands > Rebuild Archive
      - Exit
   2) ANDROID
      - Make sure you have GTA IMG Tool installed on your phone
      - Open GTA IMG Tool
      - Tap on open img and go to "../Android/data/com.rockstargames.bully/files/BullyOrig/Scripts"
      - Tap on Scripts.img and select
      - Tap on three white dots on your top right of your screen
      - Choose "Add File(s) with replace"
      - Go back by tapping on "../" to where you extract the mod
      - Select this mod Garages.lur
      - Tap again on the three white dots
      - Choose rebuild
      - Exit app

SCRIPTS.IMG (PACKED)
   1) PC
      - Copy Scripts.img and Scripts.dir from this mod
      - Paste it into "../Bully - Scholarship Edition/Scripts/" folder and replace everything
      - Done!
   2) ANDROID
      - Copy Scripts.img and Scripts.dir from this mod
      - Paste it into "../Android/data/com.rockstargames.bully/files/BullyOrig/Scripts/" folder and select replace if you asked
      - Done!


- CLOSING STATEMENT -

Thank you for downloading this mod, I hope you enjoy it.
Support me by not reuploading or redistributing this mod to somewhere else.



CHANGELOG


VERSION 2.0:
- Switched from STimeCycle.lur to Garages.lur script replacement.
- Adjusted magical effect improvements to be more optimal:
   - Chapter 1   :
      - Range         : Reduced from 5 to 3 meters.
      - Speed         : 1x (still).
      - Delay         : Reduced from 100/sec to 0/sec.
      - Effect Timer (Min)   : Reduced from 1 sec to 0.5 sec.
      - Effect Timer (Max)   : Reduced from 3 secs to 1 sec.
   - Chapter 2   :
      - Range         : Reduced from 8 to 6 meters.
      - Speed         : 1x (still).
      - Delay         : 0/sec (still).
      - Effect Timer (Min)   : Reduced from 2 secs to 1 sec.
      - Effect Timer (Max)   : Reduced from 4 secs to 2 secs.
   - Chapter 3   :
      - Range         : Reduced from 12 to 9 meters.
      - Speed         : Reduced from 2x to 1x.
      - Delay         : 0/sec (still).
      - Effect Timer (Min)   : Reduced from 3 secs to 1 sec.
      - Effect Timer (Max)   : Reduced from 5 secs to 3 secs.
   - Chapter 4   :
      - Range         : Reduced from 15 to 12 meters.
      - Speed         : Reduced from 3x to 1x.
      - Delay         : 0/sec (still).
      - Effect Timer (Min)   : Reduced from 4 secs to 2 secs.
      - Effect Timer (Max)   : Reduced from 6 secs to 4 secs.
   - Chapter 5   :
      - Range         : Reduced from 20 to 15 meters.
      - Speed         : Reduced from 4x to 1x.
      - Delay         : 0/sec (still).
      - Effect Timer (Min)   : Reduced from 5 secs to 2 secs.
      - Effect Timer (Max)   : Reduced from 7 secs to 5 secs.
   - Chapter 6   :
      - Range         : Reduced from 30 to 15 meters.
      - Speed         : Reduced from 5x to 2x.
      - Delay         : 0/sec (still).
      - Effect Timer (Min)   : Reduced from 5 secs to 4 secs.
      - Effect Timer (Max)   : Reduced from 9 secs to 6 secs.
- Adjusted spell cast mechanism:
   - Cast spell no longer be able to hit other people behind the first target. (NERF)
   - Cast spell no longer be able to hit a person in car and the spell will be neutralized if you do so. (NERF)
   - Cast spell can hit a person which have been affected by the spell before. (BUFF)
- Fixed effect glitches to a bike rider.
- Added rear hit reaction for the Fire Storm projectile.

VERSION 1.0:
- Initial release.



2
Mod Releases / Open Auditorium Mod
« on: May 19, 2022, 08:43:18 AM »
OPEN AUDITORIUM MOD
BY: ALTAMURENZA


"How long will the auditorium be closed? Yes."
- R*

This is not only about unlocking the auditorium door, it's about how useful is the auditorium for events like The Candidate or Nutrackin' in the game. Those events are just happen without any backstory and story development line on them. This mod adds some details about those events in a certain point of time (based on completed missions).

EVENT DETAILS
- Earnest's Speech Practice
  The Candidate mission details, take place after This is Your School until The Candidate mission has completed, 12 PM - 06 PM.
- Christmas Pageant Rehearsal (Without Outfit)
  Nutcrackin' mission details, take place after Chapter III until Rudy The Red Nosed Santa mission has completed, 12 PM - 06 PM.
- Christmas Pageant Rehearsal (With Outfit)
  Nutcrackin' mission details, take place after Rudy The Red Nosed Santa until Nutcrackin' mission has completed, 12 PM - 06 PM.


- PREVIEW -

EARNEST FORGOT HIS NEXT SENTENCE
EARLY PAGEANT REHEARSAL & THE MISSING GUY

These two spoilers are enough.
The full immersive experience awaits you, check out the mod now :happy:.


- DOWNLOAD -

(For Scholarship Edition & Anniversary Edition)


- INSTALLATION -

The installation require IMG Tool 2.0, make sure you grab one from some GTA modding sites out there or playstore if you're running on Android device. Other tools such as IMG Factory and G-IMG are not officially supported, but probably work as well.

1) PC VERSION
   - Open "../Bully - Scholarship Edition/Scripts/Scripts.img" via IMGTool 2.0
   - Edit > Find > Type Auditorium.lur > Enter > Delete
   - Edit > Find > Type SchoolHallways.lur > Enter > Delete
   - Commands > Add > Find this mod files and select Auditorium.lur, SchoolHallways.lur, and SchoolHallways_data.lur > Open
   - Commands > Rebuild Archive
   - Exit
2) ANDROID VERSION
   - Open GTA IMG Tool
   - Tap on open img and go to "../Android/data/com.rockstargames.bully/files/BullyOrig/Scripts"
   - Tap on Scripts.img and select
   - Tap on three white dots on your top right of your screen
   - Choose "Add File(s) with replace"
   - Go back by tapping on "../" to where you extract the mod
   - Select Auditorium.lur, SchoolHallways.lur, and SchoolHallways_data.lur
   - Tap again on the three white dots
   - Choose rebuild
   - Exit app


- COMPATIBILITY -

Any modification that replace Auditorium.lur or SchoolHallways.lur is obviously not compatible. Also, anything that modify the auditorium stage or put something on it may not be compatible. The only known modification that modify the auditorium stage is Oscar Slap by Ming, make sure to avoid such a mod.


- FREQUENTLY ASKED QUESTION -

Does this work in AE?
Yes, i tested it myself.

Do you have any future plan for this?
Yeah, i got some on my mind, like:
- Music performance by Jimmy himself
- Dr. Crabblesnitch speech in front of many student parents

Is this mod open source?
Yes, for educational & inspirational purpose only.


- CLOSING STATEMENT -

The auditorium in Bullworth Academy is real useless aside from mission. This mod hopefully change that perspective by enhancing some mission details in free roam mode. Also, support me by not reuploading or redistributing this mod to somewhere else. Thank you.

- Altamurenza

3
Mod Releases / Detachable Weapon
« on: April 17, 2022, 07:44:09 AM »
DETACHABLE WEAPON MOD
BY: ALTAMURENZA


"The game did not provide us an ability to detach all weapons in our inventory, so we do it ourselves!"
- modder

How can we detach a baton by pressing R button, but we cannot detach Spud Gun or Stink Bombs at all? That's because R* locked those weapons to prevent them being stolen, so we can only lose them once we got busted. It is clearly not immersive according to the freedom of choice. This 'Detachable Weapon' mod is the solution for that matter, enhance your playing experience and make it more immersive.

Features:
- Player can detach the undetachable weapons like Fire Cracker, Slingshot, Spud Gun, Rocket Launcher, etc.
- Player & NPC can disarm any undetachable weapon from others with a grapple or shoot.
- Player & NPC can loot from knocked out characters.
- Brand new fireworks stores & camera stores across the map. (4 new stores added in total)


- PREVIEW -

DETACH WEAPON MANUALLY
DISARM ENEMY
LOOT FROM PEOPLE
BUYING WEAPON AT STORE

Check out my full review of this mod on my YouTube channel


- DOWNLOAD -


WARNING!
(Do not use SE version on AE or vice versa)
(They are not interchangeable)


- INSTALLATION -

This mod is not STimeCycle script replacement, so manual installation is highly recommended to run along with your favorite mods.

1) MANUAL
    - Open your Scripts.img with IMG Tool 2.0
    - Edit > Find > type SLvesEff.lur > Hit Enter
    - Right click on SLvesEff.lur > Delete
    - Command > Add
    - Find this mod SLvesEff.lur and double click on it
    - Command > Rebuild Archive
    - Close
2) SCRIPTS.IMG
    - Copy Scripts.img and Scripts.dir from this mod
    - Paste it into your Scripts folder and replace everything


- COMPATIBILITY -

This mod replaces SLvesEff.lur, any mod replacing the same script will not be compatible.

Incompatible mods:
   [-] Console Commands 1.0 by Altamurenza (replace the same script)
   [-] Weather & Time Synchronizer by Altamurenza (replace the same script)
   [-] More Scripts to Replace (MSR) SE by Altamurenza (replace the same script)
   [-] More Scripts to Replace (MSR) AE by Altamurenza (replace the same script)
   [-] Beta Firework Store Recreation by deadpoolXYZ (modify the same assets)
   [-] Advanced Trainer by Altamurenza (button conflicts, but patch is available)

Any 'STimeCycle' based mod should be compatible other than the mods listed above, it is even recommended to install this mod manually to get along with your favorite script modification. Patch for Advanced Trainer is included within the AE archive, read "../_PATCH/PATCH INFORMATION.txt" for more information about the patch & the installation.


- FREQUENTLY ASKED QUESTIONS -

How to detach weapon manually?
- SE: Hold R button for two seconds or.. until the weapon is detached from player.
- AE: Hold [JUMP] button for two seconds or.. until the weapon is detached from player.
- Approach the weapon to get it back or leave it to be picked up by NPC.
NOTE: Skateboard cannot be detached due to hard-coded script.

Is it possible that NPC will detach their weapon randomly?
No, but this mod has a support to it. If you're mod developer, you can make NPC to detach their weapon by putting this code into your script. shared.gDetachableWeapon.Framework.Detach[PED] = {nil, {PedGetWeapon(PED), PedGetAmmoCount(PED, PedGetWeapon(PED))}, nil, nil}

How to disarm NPC?
- Close combat in SE:
  - Approach the NPC and press R button while the NPC is holding a weapon.
  - Rapidly smash your R button until it's destroyed you get the weapon.
- Close combat in AE:
  - Approach the NPC and press [GRAB] button while the NPC is holding a weapon.
  - Tap your screen rapidly until the phone broke into pieces you get the weapon.
- Range combat: Throw rubber band ball or.. shoot them with a spud gun.
NOTE: The more bigger NPCs are the more arduous to disarm.

Is it possible that NPC will disarm the player?
Yes, more bigger the NPC is, more faster to disarm you.

How to loot?
- Loot in SE:
  - Approach any dead NPC until '[R] Look' text appears on the left-bottom of your screen.
  - Press R to play the animation.
- Loot in AE:
  - Approach any dead NPC until '[Crouch] Look' text appears on the left-top of your screen.
  - Crouch (swipe down) to play the animation.
NOTE: The loot-able items are depend on the NPC's faction.

Is player can be looted by NPC?
Yes, there is a chance that you will lose some weapons or ammunitions once you are knocked out. Also, the Authorities will take your Slingshot and Super Slingshot if you are getting busted. I was wondering why the developer did not implement this feature in the first place.

How to get some unobtainable weapons like Camera or Slingshot?
You can loot it from any dead NPC randomly or.. buy it from several stores. There are four new stores location added and some weapons added to Dragon Wing's Comic Store.
- There are two Firework Stores added, they sell Fire Cracker, Rocket Ammo, Fountain, and Rigged Rugby Ball.
- There are two Camera Stores added, they sell Camera, Digital Camera, and Skateboard.
- There are 4 new items added to Dragon Wing's Comic Store, they are Slingshot, Super Slingshot, Spud Ammo, and Kick Me Sign In.

Where are the Firework Stores located on?
- Bullworth Town, next to Shiny Bikes store.
- New Coventry, northeast of Yum Yum Market.

Where are the Camera Stores located on?
- Bullworth Town, right corner of Worn In shop line, near police station.
- Old Bullworth Vale, behind of Shiny Bikes store.

4
TUTORIALS / Lua Tutorial: Check If a File Exists in Directory
« on: April 07, 2022, 03:25:42 PM »
- INTRODUCTION -

Hey, back with me again in another thread of my Lua tutorial.
As you expect from the title. On this occasion, i will tell you about how can we check if a file exists or not in our beloved game Bully.

If you guys are familiar with Lua scripting, checking a file existence is probably easy with io.open function provided by Lua standard library. But, since Bully use a modified-standard library of Lua where I/O facilities do not exists, so we cannot access all I/O functions such as io.open, io.read, io.write, and many more io. So.. we're going to use loadfile function in order to check if a file exists or not.

This tutorial may become obsolete for PC version in the future because some people are going to reimplement the Lua 5.0.2 standard library into Bully. However, this method maybe useful for those who want to mod in traditional way without mod dependencies or additional tools to check a file.

- CHECK IF A FILE EXISTS -

Let's be honest here, this is not really tutorial lol. I think, it's more like resource or function library.
I made a custom function based on loadfile and i will demonstrate how to use it.

1) 'FILE_EXISTS' FUNCTION
Code: [Select]
FILE_EXISTS = function(PATH, NAME, LUA)
local FILE, INFO = loadfile(PATH..NAME)
local MESSAGE = "'"..NAME.."'"

if FILE then
MESSAGE = MESSAGE.." exists!"
else
MESSAGE = MESSAGE.." "..(string.find(INFO, "parser", 1) and "exists"..(LUA and ", but not compiled!" or "!") or "does not exist!")
end

return MESSAGE
end

Function arguments:
    PATH = string, file directory (e.g. "Scripts/")
    NAME = string, file name (e.g. "Scripts.img" or "RESOURCE.lur")
    LUA = boolean, the file you want to check is Lua script or not (e.g. true or false)

2) EXAMPLE OF USE
Check if Lua script exists:
Code: [Select]
local MSG = FILE_EXISTS("Scripts/", "RESOURCE.lur", true)
TextPrintString(MSG, 4, 1)
Check if Scripts.img exists:
Code: [Select]
local MSG = FILE_EXISTS("Scripts/", "Scripts.img", false)
TextPrintString(MSG, 4, 1)
Check if Trigger.img exists:
Code: [Select]
local MSG = FILE_EXISTS("DAT/", "Trigger.img", false)
TextPrintString(MSG, 4, 1)
Check if Music.bin exists:
Code: [Select]
local MSG = FILE_EXISTS("audio/PLAYLIST/", "Music.bin", false)
TextPrintString(MSG, 4, 1)
Check if PropHXDs.dat exists:
Code: [Select]
local MSG = FILE_EXISTS("Config/dat/", "PropHXDs.dat", false)
TextPrintString(MSG, 4, 1)
Check if Bully.exe exists:
Code: [Select]
local MSG = FILE_EXISTS("", "Bully.exe", false)
TextPrintString(MSG, 4, 1)

- CLOSING STATEMENT -

This is my third tutorial in Bully-Board, i hope i'll be able to share some more experiences soon.
Make sure you read all the explanations carefully to avoid any confusion.

Check out my other tutorials:
- Lua Tutorial: Exceeding 112KB Script Limit
- Lua Tutorial: Non-STimeCycle Freeroam Mods

5
TUTORIALS / Lua Tutorial: Non-STimeCycle Freeroam Mods
« on: April 06, 2022, 02:34:33 AM »
- INTRODUCTION -

We're more than a decade in Bully modding scene, but we still relying ourselves on STimeCycle scripts. We managed to crawl out from ArcRace1 to STimeCycle based script, from arcade mods to freeroam mods. Now, the question is: Why are we stopped here?

That's because we're obviously lack of modding complexity, at least in Lua modding. I think we should start to implement a concept that i would like to call 'Mod's Interdependence' where mod developer should cooperate & add compatibility features for other mods too (if possbile). We know that people demand for having multiple mods at once, so the main obstacle that we should tackle is the variety of script's template.

Need a prove on people demand? Well, i have some.
Prove: 1, 2, 3, 4, and 5

There are many ways to make freeroam mods that are not based on STimeCycle. I differentiate it into three levels, so i hope this tutorial can reach everyone with the least knowledge barrier possible. Let's begin.

- LEVEL 1 (EASY) -

First of all, the easiest way to make Non-STimeCycle Freeroam Mod is using Garages.lua or SLvesEff.lua scripts. Both scripts have very short length of code and they are called in 'main.lua' once the game has started. But, they are different from STimeCycle because both scripts were 'called' rather than 'launched' like STimeCycle. That means the script should not have 'main function' and it would not run independently, so there will be some potential conflicts if you are not careful with variables.

To solve the 'main function' problem, use CreateThread function to create our own 'main function'. But, the fundamental aspect that you should give more attention is variable. 'main.lua' is the central of scripts which has many variables in there, so i will strongly advise you to use 'shared' variable instead of global. It's more flexible compared to global and effective to avoid variable conflicts between your mods and 'main.lua', you can also modify it from your other scripts.

Without further ado, here are the templates that you can use to make freeroam mods.

1) Garages.lua
Code: [Select]
if type(F_InitGarages) ~= 'function' then
F_InitGarages = function()
DATLoad('Garages.DAT', 1)
GarageClearAll()
GarageAdd(TRIGGER._Garage_SchoolGrounds, POINTLIST._Garage_SchoolGrounds)
GarageAdd(TRIGGER._Garage_RichArea, POINTLIST._Garage_RichArea)
GarageAdd(TRIGGER._Garage_BusinessArea, POINTLIST._Garage_BusinessArea)
GarageAdd(TRIGGER._Garage_PoorArea, POINTLIST._Garage_PoorArea)
end
end

_G.MOD_NAME = function()
while not SystemIsReady() or AreaIsLoading() do
Wait(0)
end

while true do
Wait(0)
end
end

shared.gModName_MainThread = CreateThread('MOD_NAME')
2) SLvesEff.lua
Code: [Select]
if not SystemIsReady() then
EffectAddLeavesInArea(POINTLIST._LEAVESMAIN, 0)
EffectAddLeavesInArea(POINTLIST._LEAVESBUSINESS, 0)
EffectAddLeavesInArea(POINTLIST._LEAVESRICHAREA, 0)
end

_G.MOD_NAME = function()
while not SystemIsReady() or AreaIsLoading() do
Wait(0)
end

while true do
Wait(0)
end
end

shared.gModName_MainThread = CreateThread('MOD_NAME')

You can also theoretically implement this activation method in SWinEff.lua, SRoomEff.lua, SLightEff.lua, and Bike_gen.lua. These scripts are just a bit larger compared to Garages.lua and SLvesEff.lua, but it is not a big deal since they already got fully decompiled before.

- LEVEL 2 (MEDIUM) -

Warning: If you have not completely understand the level 1, please master it first!

In level two, we are going to use globally imported scripts such as SInitGl.lua, SGlFunc.lua, SMStat.lua, SScriptTracks.lua, SFaction.lua, SCutscenes.lua, and SMissPass.lua. These scripts do not possess the same activation method as level one, we do our mod activation through function hooking. The requirement of function we need is pretty much simple, it must be used once the game has started.

These are my most preferred functions to activate our mod through 'function hooking':
- HasStoryModeBeenSelected()
- ClothingBuildPlayer()
- PlayerCreateXYZ(X, Y, Z)
NOTE: There are many references from other scripts too, but 'main.lua' is the most likely place where functions are called upon start. You can start there if you are looking for function to hook.

Before we start, there is one big problem that you should expect from the beginning. We only have one fully decompiled script of seven globally imported scripts, and that was SMStat.lua. The other scripts are not suitable for direct edit due to some missing parts, so we will need some extra steps in order to use them as our templates. I will use SInitGl.lua to demonstrate that matter, but i will show you the SMStat.lua first before that.

1) SMStat.lua
Code: [Select]
if type(F_VendettaGreasers) ~= 'function' then
F_VendettaGreasers = function()
return g_3RM01_GreaserLevel > 3 and 0 or 1
end

F_VendettaPreppies = function()
return g_3RM01_PreppyLevel > 3 and 0 or 1
end
end

_G.HSMBS = _G.HasStoryModeBeenSelected
_G.HasStoryModeBeenSelected = function()
-- Make sure our script isn't active yet, it's important step to avoid multiple activation!
if not shared.gModName_MainThread then

_G.MOD_NAME = function()
while true do
Wait(0)
end
end

shared.gModName_MainThread = CreateThread('MOD_NAME')
end

-- Execute function.
return _G.HSMBS()
end

2) THE REST OF THEM (Demonstrated with SInitGl.lua)
In this matter, we need the original compiled script in order to be the same as original source code. Why we need the compiled one? That is because we are not sure about things going on there, the source codes are missing some parts due to limitation of the tool. There is a high risk when we use that half-finished source code, it leads us to instability or crash.

Script template:
Code: [Select]
ImportScript("SInitGl_data.lua") -- It depends on script you want to replace and its name, in this demonstration i want to replace SInitGl.lur.

_G.CBP = _G.ClothingBuildPlayer
_G.ClothingBuildPlayer = function()
-- Make sure our script isn't active yet, it's important step to avoid multiple activation!
if not shared.gModName_MainThread then

_G.MOD_NAME = function()
while true do
Wait(0)
end
end

shared.gModName_MainThread = CreateThread('MOD_NAME')
end

-- Execute function.
return _G.CBP()
end

Now, we need to compiled script (SInitGl.lur) and rename it according to our script (SInitGl_data.lur).
Here's the tutorial:
- Open Scripts.img with IMG Tool 2.0
- Find the name of compiled script we need (SInitGl.lur) and enter
  * NOTE: I use SInitGl.lua in this demonstration, so i should find SInitGl.lur
- Right click on SInitGl.lur and extract to a folder where your SInitGl.lua is there
- Close IMG Tool 2.0
- Open folder where you extracted SInitGl.lur
- Rename SInitGl.lur to SInitGl_data.lur
  * NOTE: You can rename it to anything you want, but i highly recommend a name that close to its original name.

- CLOSING STATEMENT -

This is my second tutorial in Bully-Board, i hope i'll be able to share some more experiences soon.
Make sure you read all the explanations carefully to avoid any confusion.

Check out my other tutorials:
- Lua Tutorial: Exceeding 112KB Script Limit
- Lua Tutorial: Check If a File Exists in Directory

6
Bully Modding / Game Limitation: Quantity of Items in Wardrobe/Closet
« on: March 25, 2022, 06:18:26 AM »
I was told by an old friend a few years ago that our wardrobe/closet have a number limitation in Bully SE, like how much you can store your clothes to your wardrobe/closet. I was unaware before until i decided to test it myself days ago. I tried to store 364 piece of clothes one by one via ClothingGivePlayer(MODEL, BODY_PART_ID) and it stopped at 347 items, the game did not store any further.

So.. it seems like the wardrobe/closet have maximum capacity at 347 items and it doesn't seem like we can adjust it via Lua scripts (like some functions or variables related to this). This has not come to a conclusion yet, still merely assumptions or hypothesis from my experiment.

Credit: ProgrammerGaming/Neo (old friend who told me about this limitation)

7
TUTORIALS / Lua Tutorial: Exceeding 112KB Script Limit
« on: February 24, 2022, 12:03:43 PM »
- INTRODUCTION -

I'm quite sure you guys already know this limitation in Bully. But.. if you haven't notice it yet, let me explain it to you briefly.

So.. Bully has some kind of limitation on their engine i suppose, which is not allowing you to put any of compiled script beyond 112kb. It will crash the game upon starts if doing so. We used to solve this problem by code-splitting, we certainly use ImportScript function in the main script in order to retrieve the shards of code from another script. That's what we keep doing over the years in order to avoid 112kb limit.

Well, actually.. there is another way better than ImportScript.
You can even load 1.8mb of compiled script (tested by me so far) without splitting it.

- DISCLAIMER -

Based on the introduction above, i have no single intention to call code-splitting in negative connotation.

I mean, i have no problem with code-spiltting anyway, it's a good thing, easy to understand, and clear about their scopes. I often do that to my mods because i like well-structured scripts.. (maybe). Even most people often do that too, also in some cases, they MUST do it for whatever reasons they have.

- LOADFILE -

I assume you already heard about loadfile, yes.. this function is available in Lua modified-standard library 5.0.2 used by Bully. Its job is pretty much similar to ImportScript as they do call upon another script into the main one. But.. there are few difference between them, one of the most noticeable is the ImportScript call scripts from Scripts.img and loadfile call scripts from directory.

* if you have no idea what directory is, you may read this wikipedia page before continuing *

1) DEFAULT PATH

Based on Lua 5.0.2 documentation, loadfile function requires a specific file path as its main argument.
But as far as observed it myself, some versions of Bully may have different default directory.

I only know the default directory of loadfile on SE (PC) and AE (Android) since i don't play any other version except both.
    PC default directory = where Bully.exe is located
    Android default directory =  where storage folder is located (3 folders before "../Android/")

However, i would STRONGLY advise you to place your script in Scripts folder as they're related.
    PC = "../Bully - Scholarship Edition/Scripts" (Bully folder > Scripts folder)
    Android = "../Android/data/com.rockstargames.bully/files/BullyOrig/Scripts"
    * if BullyOrig or Scripts folder doesn't exist, create new one *

2) FILE REQUIREMENT

In the modified version of Lua standard library we have, loadfile function cannot read anything but compiled Lua 5.0.2.
That means, it cannot read Lua source code directly or any Lua 5.1 (and beyond) compiled script.

Otherwise, it will show you an error message. --> "parser not loaded"

If your file is already compiled by LuaC, you can rename it and its extension to anything you want.
The extension of file does not really necessary as the game also recognize it, as long as it's compiled by LuaC.

3) OTHER

loadfile mechanism is quite similar to dofile, make sure you don't confuse with both.
I would not explain dofile here, it's quite same already.

- EXCEEDING 112KB TUTORIAL -

1. Create new Lua script and name it RESOURCE.lua
2. Fill the RESOURCE.lua with some gigantic-size contents, you can copy this for example:
Code: [Select]
-- this is all .NIF files available in World.img
-- EDIT: Table is too long to be here, i uploaded it on the link below

https://pastebin.com/jXUUYbcG
3. Compile RESOURCE.lua with LuaC and name it to RESOURCE.lur
    * you can clearly see RESOURCE.lur size is bigger than 112kb *
4. Create new Lua script and name it STimeCycle.lua
5. Fill the STimeCycle.lua with this hybrid script:
Code: [Select]
function main()
while SystemIsReady() or AreaIsLoading() do
Wait(0)
end

local PC = type(_G.ClassMusicSetPlayers) == "function" and true or false

local DIR = PC and "Scripts" or "storage/emulated/0/Android/data/com.rockstargames.bully/files/BullyOrig/Scripts"
local FILE_NAME = "RESOURCE.lur" -- replace this with your file name!

local FILE, ERROR = loadfile(DIR.."/"..FILE_NAME)
if FILE then
FILE()

if not PC then
Wait(1500)
end

local OPTION, X, Y, Z = 1
while true do
Wait(0)

X, Y, Z = PlayerGetPosXYZ()

OPTION = IsButtonBeingPressed(PC and 0 or 8, 0) and (OPTION - 1 < 1 and table.getn(TABLE) or OPTION - 1) or (IsButtonBeingPressed(PC and 1 or 11, 0) and (OPTION + 1 > table.getn(TABLE) and 1 or OPTION + 1) or OPTION)
if IsButtonBeingPressed(PC and 3 or 6, 0) then
CreatePersistentEntity(TABLE[OPTION].Name, X + 2, Y + 2, Z, 0, AreaGetVisible())
end

if not PC then
if ItemGetCurrentNum(420) then
GiveWeaponToPlayer(420, false)
end
PlayerLockButtonInputsExcept(true, 2, 3, 4, 5, 7, 9, 14, 15, 16, 17, 18, 19)
end

_G[PC and "TextPrintString" or "MinigameSetAnnouncement"]((PC and "- EXCEED 112KB DEMO -\n\n" or "")..""..OPTION..") "..TABLE[OPTION].Name, PC and 0 or true, PC and 1 or nil)
end
else
while true do
Wait(0)

TextPrintString(tostring(ERROR), 0, 2)
end
end
end
6. Compile STimeCycle.lua with LuaC and name it to STimeCycle.lur
7. Copy RESOURCE.lur and paste it into your Scripts folder
    * SE (PC) = "../Bully - Scholarship Edition/Scripts"
    * AE (Android) = "../Android/data/com.rockstargames.bully/files/BullyOrig/Scripts"
8. Insert STimeCycle.lur into your Scripts.img and don't forget to rebuild
9. Go play Bully and see the results

- CLOSING STATEMENT -

This is my first tutorial in Bully-Board, i hope i'll be able to share some more experiences soon.
Make sure you read all the explanations carefully to avoid any confusion.

External links:
- Compilation, Execution, and Errors via lua.org
- Loads a Lua file and parses it via gammon.com

Check out my other tutorials:
- Lua Tutorial: Non-STimeCycle Freeroam Mods
- Lua Tutorial: Check If a File Exists in Directory

8
Mod Releases / Chalkboard - UI Framework (CUIF)
« on: December 18, 2021, 10:58:30 AM »
CHALKBOARD - UI FRAMEWORK (CUIF)


This just a small extension to enable UI customization based on math minigame, you can create some stupid quizzes, collect user preferences, or make some in-game trainer. To be honest, it was actually for my Advanced Trainer Mod, but it also might be useful to Anniversary Edition modders as an alternative way to print something like coordinates or action nodes. So.. i decided to develop some features along with the framework of in-game trainer mod.



(Bully: Scholarship Edition)

(Bully: Anniversary Edition)



HONEST PRINT COMPARISON

(Tested on Bully: Anniversary Edition)



For anyone who have interest using this framework, you have to read a small documentation first!
or see SInitGl.lur source code.

Print something:
Code: [Select]
CB_Print(text, timer)
        Print any information you may want user to see, can be skipped by clicking the timer or ended once the timer goes off
        arguments :
                - 1st : string, put any information (ex: "Unfortunately, you suck!")
                - 2nd : number, set the timer (ex: 4)
        results : none

Example of use:

if IsButtonBeingPressed(2, 0) then
        CB_Print("Hello world!", 5)
end

Create Quiz:
Code: [Select]
CB_Quiz(question table, start from, randomize question)
        Create multiple question, up to 4 answer, but only 1 answer can be the true one
        arguments :
                - 1st : table, must be filled precisely according to the following format
                                local TABLE = {
                                        {Question = "What year was USA founded?", Answer = 2, Choice = {"1745", "1776", "1811"}},
                                        {Question = "Who is President of USA in 2021?", Answer = 1, Choice = {"Joe Biden", "A. Lincoln", "D. Trump"}},
                                }
                                * Answer variable is the right index of answer among others in Choice's table
                                * The choice table is up to 4 option of answer
                - 2nd : number, where the quiz starts from
                - 3rd : boolean, set to true if you want to randomize your question table
        results : number, quiz's score

Example of use:

-- the table must be filled precisely according to the following format
local TABLE = {
        {Question = "What year was USA founded?", Answer = 2, Choice = {"1745", "1776", "1811"}}, --> the right answer is the second one which is 1776
        {Question = "Who is President of USA in 2021?", Answer = 1, Choice = {"Joe Biden", "A. Lincoln", "D. Trump"}}, --> the right answer is the first one which is Joe Biden
}

-- execute
local SCORE = CB_Quiz(TABLE, 1, true) --> returns a number

One touch setting mod menu:
Code: [Select]
CB_Register(trigger button, button option 1, button option 2, menu table, option)
        Create a selective menu user interface automatically based on your choice
        arguments :
                - 1st : number, 0-15 button id on Bully SE/AE
                - 2nd : number, go see "../_RESOURCE/Single Auto Mod Menu + Detailed Comments.lua" or simply put 0
                - 3rd : number, go see "../_RESOURCE/Single Auto Mod Menu + Detailed Comments.lua" or simply put 0
                - 4th : table, input your table here and there must be a Name variable and Func variable. Ex:
                                local TABLE = {
                                        {Name = "BRocket", ID = 307, Func = ProceedRequest},
                                        {Name = "Spud Gun", ID = 305, Func = ProceedRequest},
                                }
                - 5th : number, where the mod menu starts from
        results : none

Example of use:

-- create function to proceed your choice
ProceedRequest = function(TABLE, OPTION)
        PedSetWeapon(gPlayer, TABLE[OPTION].ID, 50, false)
end

-- the table must have "Name" variable and "Func" variable in order to work
local TABLE = {
        {Name = "BRocket", ID = 307, Func = ProceedRequest},
        {Name = "Spud Gun", ID = 305, Func = ProceedRequest},
}

-- execute
CB_Register(2, 0, 0, TABLE, 1) --> that's all, just press zoom in button to open the mod menu

Customized mod menu:
Code: [Select]
CBUI_Show(select timer)
        Show UI only, must be used after CBUI_SetText and CBUI_SetOption or it will be empty
        arguments : number, how many secs to menu get selected if CBUI_Select function used in the loop, if not then it's not neccessary
        results : none

CBUI_Close()
        Hide UI, can be used in any kind of situation
        arguments : none
        results : none

CBUI_Select()
        Selecting menu mechanism with timer, according to CBUI_Show(timer)
        arguments : none
        results : boolean, true if after the timer goes off, otherwise it false

CBUI_0()
        Set menu to the previous option
        arguments : none
        results : boolean, false if not pressed

CBUI_1()
        Set menu to the previous option
        arguments : none
        results : boolean, false if not pressed

CBUI_SetText(text)
        Setup text on Chalkboard UI, and the UI will be updated right after
        arguments : string, put any information there (ex: "1. Apple")
        results : none

CBUI_GetText()
        Get a text from Chalkboard UI
        arguments : none
        results : string, current Chalkboard UI text

CBUI_SetOption(table option, true index)
        Setup option on Chalkboard UI, and the UI will be updated right after
        arguments :
                - 1st : table, selectable options (ex: {"PREV", "", "NEXT"} or {"PREV", "", "", "NEXT"})
                - 2nd : number, the index of right option (ex: 3)
        results : none

CBUI_GetOption()
        Get an option from Chalkboard UI
        arguments : none
        results : table options, true index

CBUI_IsActive()
        Checking Chalkboard UI (manual) is active or not
        arguments : none
        results : boolean, true if Chalkboard UI (manual) is active

CBUI_ExitViaSpace()
        Checking Chalkboard UI is exiting via space
        arguments : none
        results : boolean, true if Chalkboard UI is exiting via space


Example of use:

local ACTIVE_UI = false
local CUTSCENE = {
        {Name = "Original Intro", Code = "1-01"},
        {Name = "Welcome To The Bullworth", Code = "1-1-1"},
        {Name = "Principal Intro", Code = "1-1-2"},
        {Name = "Meet Gary", Code = "1-02B"},
        {Name = "Meet Peter", Code = "1-02E"},
        {Name = "This Is Your School", Code = "1-02D"},
        {Name = "The Setup", Code = "1-03"},
}
local OPTION = 1

while true do
        Wait(0)

        -- ui
        if CBUI_IsActive() and ACTIVE_UI then
                -- prev
                if CBUI_0() then
                        OPTION = OPTION - 1 < 1 and table.getn(CUTSCENE) or OPTION - 1

                        CBUI_SetText(OPTION..") "..CUTSCENE[OPTION].Name)
                        CBUI_SetOption({"PREV", "", "", "NEXT"}, 4)
                end

                -- next
                if CBUI_1() then
                        OPTION = OPTION + 1 > table.getn(CUTSCENE) and 1 or OPTION + 1

                        CBUI_SetText(OPTION..") "..CUTSCENE[OPTION].Name)
                        CBUI_SetOption({"PREV", "", "", "NEXT"}, 4)
                end

                -- select
                if CBUI_Select() then
                        CBUI_SetText("# EXIT OR PLAY #")
                        CBUI_SetOption({"EXIT", "", "PLAY"}, 3)

                        local PLAY = nil

                        while PLAY == nil do
                                Wait(0)

                                if CBUI_0() then PLAY = false end

                                if CBUI_1() then PLAY = true end
                        end

                        if CBUI_IsActive() then
                                CBUI_Close()

                                if PLAY then
                                        PlayCutsceneWithLoad(CUTSCENE[OPTION].Code)
                                end
                        end
                end
        else
                if ACTIVE_UI then
                        ACTIVE_UI = false
                end
        end

        -- activate
        if IsButtonBeingPressed(2, 0) and not PlayerIsInAnyVehicle() then
                if not CBUI_IsActive() and CB_IsSafe() and not ACTIVE_UI then
                        CBUI_SetText(OPTION..") "..CUTSCENE[OPTION].Name)
                        CBUI_SetOption({"PREV", "", "", "NEXT"}, 4)
                        CBUI_Show(3)

                        ACTIVE_UI = true
                end
        end
end



9
Mod Releases / Anniversary Cinema
« on: February 10, 2021, 06:41:44 AM »
Simple mod to play all available cutscenes (inc. unused cuts), specifically made for AE.

# CONTROLS #
   Open Menu       : Zoom In
   Previous            : Select "PREV"
   Next                   : Select "NEXT"
   Select                : Just wait 3 secs in menu selection
   Play Cutscene  : Select "PLAY" after menu being selected
   Exit Menu          : Select "EXIT" after menu being selected

# INSTALL #
   Copy Scripts.img and Scripts.dir and paste it into "../Android/data/com.rockstargames.bully/files/BullyOrig/",
   if BullyOrig folder does not exist, just make a new one.

# DOWNLOAD #
   http://www.mediafire.com/file/e3pqeanrmwiaolc/Bully_AE_-_Anniversary_Cinema.zip/file

10
Script Modding / Attempting to make in-game trainer for AE
« on: February 03, 2021, 01:15:46 PM »
Hello, it's been a long time since my last post yo. Recently i found out that we can create a custom UI based on math minigame and i got some ideas to port my previous trainer into the AE system, my expectation with the UI and the function are fully compatible with anniversary edition. So if you're running on android device, please share your thought about this mod, i'd be very appreciate it.

Name : Advanced Trainer
Ver : work in progress..

First look of the UI (credits to Potato Player)



Controls (based on Read Me.txt):

- Look Back to activate the menu
- Wait 3 seconds to confirm selected menu
- Select 'RETURN' to back to menu selection (keep selecting < SCROLL > until you find this option)
- Select 'EXIT' to exit sub menu or the main menu (keep selecting < SCROLL > until you find this option)
- Crouch to enter car or police bike
- Special control to select NPC (like set model to npc or set weapon to npc):
   - Jump to prev
   - Weapon button to next
   - Zoom in to select
   - Crouch to cancel
- Special control to set style customization:
   1) Bind to key, you have to press any button to bind the animation into that key
   2) Replace Anim, do your animation first and then press zoom in to confirm
   3) After Anim, do your animation first and then press zoom in to confirm

The file is on the attachment, you'll need to login first before downloading it.

11
Mod Releases / ALTAMURENZA MODS
« on: June 16, 2019, 04:11:20 AM »
ALTAMURENZA
* RELEASED MODS TOPIC *


All my upcoming mod releases will be merged into this thread, so i hope this forum will long lasting till Bully III came out. Thank you to the owner and staff for keeping this lovely forum alive.

TS NOTE:  Any criticism, suggestions and feedback are welcome except requests, they have their own section here.








- SELECTOR MOD -

The most complete in-game trainer for Bully Scholarship Edition has ever made. The largest compilation of the greatest knowledges from Bully Modding Community that possible to do through Lua script and it was designed as simple as it can be to make it more user-friendly.

- VIDEO -

- DOWNLOAD -

- SOURCE -

( PC EXCLUSIVE )





- ADVANCED TRAINER -

The Advanced Trainer is one of the biggest in-game trainer for Bully Anniversary Edition which based on Chalkboard UI - Framework 1.1 (CUIF). Support for fighting styles, style customizations, play animations, & more.

- VIDEO -

- DOWNLOAD -

( ANDROID EXCLUSIVE )




- UNTITLED MOD -

One of the biggest mod compilation on Bully Anniversary Edition, packed up in basic user-interface & adapted touch-screen controls to make it compatible with AE version of the game. There are a lot of cheating features that you may want to try with.

- VIDEO -

- DOWNLOAD -

- SOURCE -

( ANDROID EXCLUSIVE )





- CONSOLE COMMANDS -

A Console Command that based on Lua. Run function, change global environment, change local variable, check type and value, load script, saving progress, custom math and arithmetic operation, and many more ways to do scripting through out the game.

- VIDEO -

- DOWNLOAD -

- SOURCE -

( PC EXCLUSIVE )





- WEATHER & TIME SYNCHRONIZER -

The first mod in Bully use external resources which script was adapted from Dolores Portalatin and based on OpenWeatherMap api, feel the actual sensation of your local weather & time on your game.

- VIDEO -

- DOWNLOAD -

( PC EXCLUSIVE )





- STORY MODE AS IT SHOULD BE -

Bring back some mission contents that don't occur in the final version of the game, they're Welcome to Bullworth, Miracle on Bullworth St., Fighting With Johnny Vincent, The Gym is Burning, and Showdown at the Plant.

- VIDEO -

- DOWNLOAD AIO -

- SEPARATED DOWNLOAD -

( PC & ANDROID )





- DON'T JUST STAND THERE -

Your current idle animation is boring? This mod may solve your problem with seven different animations to choose, there are athletic, berserker, beta idle, collapse, dance, levitate, and smoking playable animations while not doing anything.

- VIDEO -

- DOWNLOAD -

( PC & ANDROID )





- LOCK-ON OVERHAUL -

Stay focus on your target is very important! with this mod you can determine your targets based on their health or distances from you, easy to use and modify, and the script is pretty lightweight for the system.

- VIDEO -

- DOWNLOAD -

- SOURCE -

( PC EXCLUSIVE )





- CHAOS WAND -

The lore behind this wand is unknown, and let it remains unknown. elemental magics from the wand may help you to conquer the city at once, each chapter will make it stronger and stronger. the wand will replace your Flashlight weapon's slot.

- VIDEO -
VERSION 1.0 | VERSION 2.0

- DOWNLOAD -

- SOURCE -

( PC & ANDROID )





- MP-360 FLAMETHROWER -

A custom made flamethrower script to replace the mechanism of super spud gun weapon, now it's completely different, very useful, and can be bought exclusively at Dragon Wings Comic store.

- VIDEO -
VERSION 1.0 | VERSION 2.0

- DOWNLOAD -
VERSION 1.0 | VERSION 2.0

- SOURCE -

( PC & ANDROID )





- MATH BOT -

A simple mod to automatically answer your math question, don't worry if you're stupid at math, each person have their own talents tho.

- VIDEO -

- DOWNLOAD -

( PC & ANDROID )





- CONSUME, NOT CONSUMO -

Congratulations, you don't have to skip the Nerd Challenge anymore! With this mod you can actually beat ConSumo by just eat everything and die afterward. No more rotten foods, pufferfish, and sumo that pushed you out.

- VIDEO -
VERSION 1.0 (SE) | VERSION 1.0 (AE)

- DOWNLOAD -

( PC & ANDROID )




- FIGHTER MOD -

The first custom minigame mod for Bully Anniversary Edition. Mr. Burton and Karl make a challenge to fight one by one with a random person in Bullworth Town. There are three options to complete this challenge, you kill your enemy, you're being killed, or you against the rules.

- VIDEO -

- DOWNLOAD -

( ANDROID EXCLUSIVE )




12
Bully 1 Discussion / Beside driver
« on: August 16, 2016, 06:09:49 AM »
Is this possible to sitting beside the driver's seat? or it just a bug?






13
Mod Releases / Selector Mod
« on: February 25, 2016, 02:13:04 AM »
SELECTOR MOD 7.0
BY ALTAMURENZA


"The original Selector Mod is back!"

Selector Mod is an in-game trainer with numerous options to choose from, there are 13 menus, 21 sub-menus, and 48.000+ selectable options in total. One of the most ambitious in-game trainer mod has ever made with 59.000 lines of script made from the scratch. Try some cool features of this mod like playing multiplayer minigame in single player, mixing up some action from NPC styles, and saving your current progress anywhere. The mod is also optimized to support long playing time, three hours of normal gameplay without a crash. It's designed for those people who seek quality, quantity, and stability as there is no meaningless feature included within the mod.

If you are looking for legacy versions, you can find them in here.


- PREVIEW -

SELECTING MENU
SPAWNING NPC
TORTURING NPC

Check out my full review of this mod without commentary


- INTEGRATED FEATURES -

SOCIAL INTERACTIONS
- You can greet & insult someone using your character voice.
- You can humiliate your enemies when their health are low.

SAVED CONFIGURATIONS
All the toggles in "SYSTEM > INTERNAL" are stored to your save data, so you don't have to worry about reloading and lost your configurations. Just make sure you use "Save Progress" feature in there ..or.. save your game in HQ to actually save it.

STYLE CUSTOMIZATIONS
- Support to bind multiple animations in one button. The bound to key animations will play randomly once you press the button.
- Support to add grapple & mount moves. These animations are marked with (F) and (M) code on their name to differentiate them from normal moves, so you can only play grapple or mount moves when you are in that condition (not in the free stance). (F) means Front Grapple / Standing Grapple and (M) means Mount Grapple.
- Support to add blocking animations. Block animations are marked with (B) code on their name, that means you can only use the animation while blocking an incoming attack.

ENGINE FIXES
- Fixed [Alt] + [Tab] crash when you are using NPC model.
- No more broken NPC models caused by clothing function bug.
- Fixed lost two ammunition when smashing stink bomb to someone.
- Fixed color inconsistency between Digital Camera & Used Camera.


- DOWNLOAD -

(see changelog below for more information)


- OPTIONAL FILE -

DERPY'S SCRIPT ADDONS V3
(it's required to search, use console command, play speech addons, etc.)

SPEECH ADDON (3GB)
(it's required to play sound files in AUDIO > PLAYLIST > - SPEECH.BIN -)
(requirement: Derpy's Script Addons V3)


- INSTALLATION -

The installation is pretty quick and simple, but unusual.. it's because the most files are loaded from the outside of Scripts.img (directory based). They are located in "../Bully - Scholarship Edition/Scripts/SelectorMod" folder. I also did not include the extracted Speech.bin because the file is kinda big (3 GB), so i made it as optional files to download if you are up to that.

1) SELECTOR MOD
- Download Selector Mod update 7.0.0 (or beyond)
- Extract the archive
- Open the extracted folder
- Copy everything inside of "_MOD" folder
- Paste on "../Bully - Scholarship Edition/Scripts"
- Done

NOTE:
Make sure you also moved the SelectorMod folder to your Scripts folder.
Otherwise, it won't work.


2) SPEECH ADDON
- Download the Speech Addons from link above (currently not available)
- Extract the archive
- Open the extracted folder
- Copy the "SOUND" folder
- Paste on "../Bully - Scholarship Edition/Scripts/SelectorMod/LOCAL"
- Done

NOTE:
You need to have Derpy's Script Addons V3 installed on your PC.
Otherwise, it won't work.



- TROUBLESHOOTING -

Some users reported an error message says that the game could not read SM_INIT. There are two reasons for that, either you forgot to move the SelectorMod folder to your "../Bully - Scholarship Edition/Scripts" folder or it was a permission problem from your windows. If you sure that you installed it correctly, then follow the provided solutions one by one.

1) RUN AS ADMINISTRATOR
- Right click on Bully.exe
- Select Properties
- Move to Compatibility Tab
- Click on "change settings for all users" box
- Checklist the "run this program as administrator" box
- Click on Apply
- Close

2) SET FOLDER SECURITY TO FULLY CONTROL
- Right click on your Bully - Scholarship Edition folder
- Select Properties
- Move to Security Tab
- Click on Edit
- There are few user names in there, click on the first one and tick the fully control box.
- Do the same thing to every user names available.
- Click on Apply once you finish
- Close


- CREDITS -

This mod contributors are credited in the game as a token of appreciation, you can see it in SYSTEM > INTERNAL > - CREDITS - > SELECTOR MOD. However, the game is not suitable to describe something long enough, so i simplified it and decided to post the full description on this thread.

- Derpy54320 for many cool open source mods by her.
  some features of this mod are modified / inspired from her mods such as:
  NPC Mod 0.1 | Fly Mod | Node-o-Matic 3000 | First Person Shooter (FPS)
- SWEGTA as one of the author of First Person Shooter (FPS) mod.




INFORMATION FOR ADVANCED USER

CHANGELOG:
* 7.0.1:
   - named every single menu of fashion > clothing
   - added toggle arcade font in system > internal > - interface -
   - added toggle plug in feature in system > internal > - interface -
   - added save progress feature in system > internal > - save -
   - added free camera for launching projectile from object > projectiles
   - renamed game breaker to adjust value in system > internal > - save -
   - moved - import - from system > external to system > internal
* BETA 2:
   - fixed missing space between categories in storyline > cutscene
   - a little optimization in SM_GLOBAL and SM_THREAD
* BETA 1:
   - initial release

NOTE:
-  some features may require Derpy's Script Addons V3, but it's no longer available.
   this mod was 95% completed when DSA was removed, so i will release a new
   patch when there is something i can do about it.
-  this mod is PC exclusive, there are no other ports.

Pages: [1]