MEGA Tutorial
Here is a MEGA Tutorial for spawning custom item pickups, peds, vehicles and custom doors within Bully.
First step:
Open Pickups.dat - This file is located inside your ide.img file so it is best to extract the entire ide.img to a directory, desktop is fine for this since you will be editing this file and simply making a brand new ide.img from all the extracted files including the one you are editing here is actually a cleaner way to rebuild the .img files for bully.
Next what we will do is change the spawned items in one of the areas of the world map. The school football field is what we will edit in this example.
So without further ado, search for
POINTNAME "SCH_Pickups"This section is the school pickups. You can change any of these pickups to weapons, props etc and even change the coords where they spawn.
The first pickup is a baseball bat as shown here:
POINTPICKUPNAME "bat"only thing you need to change is the name of the pickup if you just want to change the pickup itself and not the location it spawns at. This is good for beginning modders that just want somthing simple they can learn to edit without fear of messing their game up.
For our example we will change this to Norton's sledgehammer. So change "bat" to say "sledgehammer" and save it. As you go down the list you will see other pickups which always are listed in the POINTPICKUPNAME " " parts of the file and if the POINTPICKUPNAME doesnt have anything between the "" then don't bother editing it since it will not be a prop or weapon you can change the spawn of.
Here is the areas in pickups.dat and their names:
POINTNAME "SCH_Pickups"
POINTNAME "RCH_Pickups"
POINTNAME "PR_Pickups"
POINTNAME "IND_Pickups"
POINTNAME "SCH_FRISBEE_PICKUPS"
POINTNAME "RCH_FRISBEE_PICKUPS"
POINTNAME "SCH_Weapon_Pickups"
POINTNAME "BDIST_WEAPONS"
POINTNAME "RCH_Weapon_Pickups"
POINTNAME "PR_Weapon_Pickups"
POINTNAME "IND_Weapon_Pickups"
POINTNAME "BIKEPARK_Pickups"
POINTNAME "Floating_Carnival"
POINTNAME "POOL_GYM_PICKUPS"
POINTNAME "Jock_Hideout_Pickups"
To add Custom spawns for weapons you need to do the following:
open pickups.dat and look at the beginning of the file. It will look like this:
- NPATHS 0
- NPOINTS 16
- NPERIMETERS 0
- NTRIGGERS 0
- NPOIS 0
Every .dat file in the trigger.img has this in the beginning. This just tells bully how to read the files in order to spawn objects in the world map file. For editing custom props...etc you only need to know what one line in the header does and this line is the NPOINTS line. The number is the total NPOINTS that are in this file and the NPOINTS this refers to is each section's name which I have listed above this section of the tutorial. Anytime you add a brand new section to the file you need to increase this number by 1 or you most likely will end up with bully crashing or not loading your custom areas. Due to how the file is laid out you won't need to change this setting at all...instead you will need to change the NPOINTPOINTS each section has. For the NPOINTPOINTS the number needs to be the total number of prop spawn points that are listed for that section. Here is how each section is laid out:
For this example we will use the school pickups section which is the following code:
POINT
BEGIN
POINTNAME "SCH_Pickups"
AREACODE 0
NPOINTPOINTS 15
POINTPOINT 45.924999, -83.224503, 5.116360
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "bat"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT 205.477997, -140.712006, 7.618010
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "yardstick"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT 232.481995, -25.061600, 8.106600
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -12.486000, -26.265200, 1.815360
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -9.021850, -28.041800, 1.658470
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -42.474300, -30.025200, 1.695000
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -44.658100, -29.855400, 1.714030
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -35.291199, -118.501999, 1.378120
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -32.799702, -117.856003, 1.397500
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -2.951950, -114.064003, 1.451190
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT 6.109730, -104.480003, 0.944090
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "bat"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -0.900707, -110.898003, 1.331540
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT 159.404999, -150.720993, 7.605920
POINTYAWPITCHROLL 12.831600, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "yardstick"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT 230.054993, -29.134701, 7.977550
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "apple"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
POINTPOINT -52.535801, -79.860497, 1.561080
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "bat"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
END
Each item spawn for the sections is defined with this syntax:
POINTPOINT 45.924999, -83.224503, 5.116360
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000
POINTLABEL ""
POINTPICKUPNAME "bat"
POINTSFXID ""
POINTSOUNDBANKID ""
POINTSFXVOLUME 1.000000
STREAMFADEINTIME 0
STREAMFADEOUTTIME 0
POINTSML 0
STARTHOUR 0
ENDHOUR 0
WEATHERMASK ""
USEOCCLUSION FALSE
POINTMISSIONSPEC FALSE
MISSIONNAME ""
POINTPERMANENT FALSE
POINTTAG 0
PICKUPBUTES "Permanent2MinRespawn"
To add a new spawn for a weapon or other prop use the following template and just fill in the values that I specify keeping the rest as its shown.
POINTPOINT 45.924999, -83.224503, 5.116360 - Change this to the coordinates you want this to spawn at.
POINTYAWPITCHROLL 0.000000, 0.000000, 0.000000 - do not change.
POINTLABEL "" - do not change.
POINTPICKUPNAME "bat" - change this to the prop or weapon you want to spawn
POINTSFXID "" - do not change.
POINTSOUNDBANKID "" - do not change.
POINTSFXVOLUME 1.000000 - do not change.
STREAMFADEINTIME 0 - do not change.
STREAMFADEOUTTIME 0 - do not change.
POINTSML 0 - do not change.
STARTHOUR 0 - do not change.
ENDHOUR 0 - do not change.
WEATHERMASK "" - do not change.
USEOCCLUSION FALSE - do not change.
POINTMISSIONSPEC FALSE - do not change.
MISSIONNAME "" - do not change.
POINTPERMANENT FALSE - do not change.
POINTTAG 0 - do not change.
PICKUPBUTES "Permanent2MinRespawn" - do not change.
To add your new custom weapon spawn to the file you need to add this to the section and best place is to add it at the end of the section. Look for this at the end of the section and add your new spawn points between the PICKUPBUTES "Permanent2MinRespawn" line and the END line and for each new spawn you add ..don't forget to change the NPOINTPOINTS number to include your new section, for example if NPOINTPOINTS is 15 then change it to 16 if you just added one weapon/prop spawn to that particular section.
NOTE: Failure to do this will result in the modification not working.
The following is a listing of all the props/weapons that I have found to work and this list may not be complete:
Sports Props- Wfrisbee
- Wtennis
- WBball
- Wftball
- anifooty
- SocBall
- anibball
Misc Props- DeadRat - same as w_deadrat
- WCamera - camera
- kickme - a kickme sign that you can plant on a person's back for a laugh
- pvase_proj - I think this is one of the larger vases you can pickup and smash over someone's head
- w_deadrat - a dead rat...just a dead rat
- Wbrush - not sure what this is
- W_Candy - this is one of the candy boxes you can give as a gift to a girl
Food Items (can be eaten or used as a weapon)- Banana - a bananna that you can either eat, throw or eat and drop the peel to trip someone up for a laugh
- apple - a apple that you can throw at someone or eat for to gain health
Weapons- WPCannon - Don't remember what this is
- RBandBall - The rubberband ball that you normally have to collect all the hidden rubberbands to get
- NerdBooksE -books
- NerdBooks - books
- NerdBooksB - books
- NerdBooksC - books
- NerdBooksD - books
- leadpipe - one of the many lead pipes you can use as a weapon
- supersling - super slingshot that you win after completing the candidate
- slingshot - normal slingshot
- cherryb - this is the firecrackers Jimmy can make in his room on his chemistry set
- spudg - normal spud gun
- SuperSpudG - super spud gun which is buggy when spawning it as a pickup
- brocketlauncher - nerd bottle rocket launcher
- eggproj - eggs that you can throw
- stinkbomb - stinkbomb used by the nerds
- spraycan - paint spray can
- W_PGun - I think this is the poison gun used for killing the giant flytrap plant in the one mission
- bat - baseball bat
- cricket - a cricket bat used by the preppies and found laying around in the preppies hangout and the harrington house
- Polo - polo stick found in the hangouts the preppies use
- twobyfour - two by four
- Wmallet - mallet
- Billyclb - billy club (not sure if this works actually)
- W_Crutch - a crutch (I think this is the one used by one of the students dressed up as a pirate during halloween)
- poolcue - pool cue stick
- JBroom - janitor's broom
- brick - a brick
- chshielda - one of the many scrap iron shields you can use
- chshieldb - one of the many scrap iron shields you can use
- chshieldc - one of the many scrap iron shields you can use
- lid - trashcan lid
- Wtray - lunch tray
- Psheild - one of the many scrap iron shields you can use
- newsroll - newspaper
- snowball - a snowball
- monkeywrench - not sure if this works
- yardstick - yardstick commonly carried by the nerds
- 2handstick - two handed stick (similar to the two by four i think)
- fireexting - fire extinguisher
- sledgehammer - self explanatory
- Wdish - dish
- bagmrbls - bag of marbles
- dec_plate - deck plate
- plantpot - generic plant pot
- snowshwl - snow shovel
- wftbomb - exploding football bomb
- wtrpipe - one of the many leadpipes laying around that can be used as a weapon
- wtrpipeB - one of the many leadpipes laying around that can be used as a weapon
- wtrpipeC - one of the many leadpipes laying around that can be used as a weapon
- wtrpipeD - one of the many leadpipes laying around that can be used as a weapon
- W_Itch - itching powder
- WBALLOON - water balloon
- W_Fountain - Volcano 4000 firecracker
In this section I will show you how to spawn peds in any location around bully. You will need coordinate lists to do most of this and some patience to try other coordinates to figure out which coord is best for your mod. First off...open population.dat which is located inside trigger.img and open it with notepad++ or whatever notepad app you prefer.
First step is to look at the beginning of population.dat and you should see the following:
- NPATHS 0
- NPOINTS 0
- NPERIMETERS 37
- NTRIGGERS 34
- NPOIS 0
This part of population.dat is very very important unlike what is in the pickups.dat file we did in the section above this. NPERIMETERS and NTRIGGERS are the two parts of the beginning you need to be very careful on because like the other dat files in trigger.img...the beginning is crucial to getting any modifications to these files to work. I will explain what both these lines do in population.dat and what areas they refer to so you can make a note of this when you start modding this file.
NPERIMETERS is the total count of PERIMETERS that are listed in this file. Each PEREMETER begins with the following code:
PERIMETER
BEGIN
NTRIGGERS is the total spawn triggers that is in this file. Each NTRIGGERS section starts with the following code:
TRIGGER
BEGIN
What we are going to do is just add more peds to the world map so we will not be changing any of the trigger or perimeter codes for this. For each section you will see the following:
POPULATIONDATA
BEGIN
POPULATION_DAY
BEGIN
TOTAL 6
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 1
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 5
SHOPKEEP 0
BULLY 0
END
POPULATION_CLASS
BEGIN
TOTAL 6
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 0
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 6
SHOPKEEP 0
BULLY 0
END
POPULATION_NIGHT
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 1
STUDENT 0
COP 1
TEACHER 0
TOWNPERSON 3
SHOPKEEP 0
BULLY 0
END
POPULATION_CURFEW
BEGIN
TOTAL 3
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 0
STUDENT 0
COP 1
TEACHER 0
TOWNPERSON 2
SHOPKEEP 0
BULLY 0
END
END
Changing the ped spawns is easy. To edit them change the values in the following:
- TOTAL 60
- PREFECT 5
- NERD 5
- JOCK 5
- DROPOUT 5
- GREASER 5
- PREPPY 5
- STUDENT 5
- COP 5
- TEACHER 5
- TOWNPERSON 5
- SHOPKEEP 5
- BULLY 5
In the example I provided above I edited it so there is 5 of every ped which is a total of 60 peds for that area. You can use any number you want for each ped but remember to add them up and put the total you get in the total line or you will experience a crash or other unstable behavior. Some of the areas in bully have ped information thats listed elsewhere and not in the population.dat. I will list every file you need to edit for peds in every available area in bully a bit lower down in this section of the tutorial. The following areas are available in
population.dat for changing ped spawns:
- RichArea
- DownTown
- PoorArea
- IndustrialArea_DropOutEnclave
- DT_GASSTATION
- POOR_TENEMENTS
- Rich_Area_Corner_Courtyard
- Industrial_Sawmill
- Carnival
- Industrial_Docks
- SchoolArea
- RichArea_DownTown
- DT_ComicShop
- DT_DropOutAlley
- DT_GreaserAlley
- Rich_GreaserAlley
- Poor_DropTurf1
- GraveYard
- Jocks
- Nerds
- Preps
- Greasers
- FieldOverride
- Jocks_FootballField
- PopRoads1
- BullyTurf
- BadPlaceTrigger
- OutsideSchool1
- SchoolBikeTrig - This doesn't control ped population data. This controls how many bikes spawn and where around the school
The following files have population spawn data that can be changed in the same exact way as I have shown you in this tutorial:
They are in this format: filename - sections in that file- 1_03.dat - 1_03_AutoShopArea
- 1_04.dat - 1_04_SuppressFieldPop, 1_04_SuppressParkingPop
- 2_S04.dat - 2_S04_AutoShopArea
- 3_06.dat - 3_08_SchoolPop
- 3_S03T.dat - 3_S03T_Test_1, 3_S03T_Test_3, 3_S03T_Test_4, 3_S03T_Test_5, 3_S03T_Test_6
- 4_02.dat - 4_02_NERDS, 4_02_PREFECT1, 4_02_PREFECT2
- 5_02.dat - 5_02_DepopulateDocks, 5_02_DepopRichArea
- 6_02.dat - SchoolTrig, 6_03_GymPop
- Chapt5Trans.dat - C5T_POP
- eventsSchoolHalls.dat - CafTrigger
- GarbPickDowntown.dat - gd_GameArea
- GarbPickPoor.dat - pa_GameArea
- GarbPickSchool.dat - gs_GameArea
- Gdorm.dat - GDorm_GirlsOnly, GDorm_PopOverride
- GoKart_Outdoor.dat - DePopBeachAreaRace, DePopRichAreaRace, DePopIndustrialAreaRace
- GraffitiPunishment.dat - SchoolDepop, dowtownDepop, PoorDepop, GC1A_GameArea
- isc_pool.dat - GymPool_PopOverride
- LawnMowing.dat - LM3_Depop
- P_Snow1.dat - ST1_dePopSnowArea
- P_Snow2.dat - ST2_dePopSnowArea
- P_Snow3.dat - ST3_dePopSnowArea
- P_Snow4.dat - ST4_dePopSnowArea
- P_Snow5.dat - ST5_dePopSnowArea
- P_Snow6.dat - ST6_dePopSnowArea
- Store.dat - ComicPopTrig
To create a custom spawn point for peds you will have to do a bit of coding. For some ppl this should be pretty easy but for those not used to coding and proper syntax this will be hard to grasp but I will try to explain as best as I can.
To add a custom spawn point to a file that has no ped spawn points, for example you want to add preps to harrington house...you will have to do the following:
In this example I will edit harrington house and add preps there.Open
SP_Prep_House.dat in notepad++ or similar and look for the following code:
TRIGGER
BEGIN
TRIGGERNAME "PrepHouse_MainRoom"
AREACODE 32
POSITION -540.947998, 132.498001, 46.199902
YAWPITCHROLL 0.000000, 0.000000, 0.000000
YAW 0.000000
ZHEIGHT 1.000000
ISMISSIONSPECIFIC FALSE
ISLOCKED FALSE
AMBIENT 0, 0, 0
USETIMECYCLE FALSE
HASPOPULATIONDATA 0
FORCEPOPREAD FALSE
HASAMBIENTVEHICLEDATA 0
FORCEVEHREAD FALSE
END
In this example we will be editing the main room in harrington house. To add the rest of the code you need to spawn preps or any other ped add the following code under USETIMECYCLE FALSE :
FORCEPOPREAD FALSE
POPULATIONDATA
BEGIN
POPULATION_DAY
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
POPULATION_CLASS
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
POPULATION_NIGHT
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
POPULATION_CURFEW
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
END
The fully modified code should look like this:
TRIGGER
BEGIN
TRIGGERNAME "PrepHouse_MainRoom"
AREACODE 32
POSITION -540.947998, 132.498001, 46.199902
YAWPITCHROLL 0.000000, 0.000000, 0.000000
YAW 0.000000
ZHEIGHT 1.000000
ISMISSIONSPECIFIC FALSE
ISLOCKED FALSE
AMBIENT 0, 0, 0
USETIMECYCLE FALSE
HASPOPULATIONDATA 1
FORCEPOPREAD FALSE
POPULATIONDATA
BEGIN
POPULATION_DAY
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
POPULATION_CLASS
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
POPULATION_NIGHT
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
POPULATION_CURFEW
BEGIN
TOTAL 5
PREFECT 0
NERD 0
JOCK 0
DROPOUT 0
GREASER 0
PREPPY 5
STUDENT 0
COP 0
TEACHER 0
TOWNPERSON 0
SHOPKEEP 0
BULLY 0
END
END
HASAMBIENTVEHICLEDATA 0
FORCEVEHREAD FALSE
END
NOTE: Don't forget to change HASPOPULATIONDATA so it has 1 instead of 0 if it had that. Failure to do this will result in a crash.
Congragulations! you now have preps spawning in the prep house in its main room. This is a simple example that you can learn from and apply to almost any area in the game providing you read this tutorial completely and apply what you have learned here. Some files however may not be able to be modified like this but I have changed several files in my testing and can confirm that this indeed works quite well.
Now we will be changing the spawning of the vehicles you see in the game from the cop cars...normal cars to the bikes. This area will not spawn the lawnmower nor will it spawn the gokarts. Those I will explain how to spawn in my next mega tutorial.
First look for the following in population.dat:
AMBIENTVEHICLEDATA
BEGIN
AMBIENTVEHICLES_DAY
This will show up several times in this file and also in some other files in trigger.img. I will list the proper files that have vehicle data a bit later on due to this mega tutorial being possibly too mega...lol
to change the vehicles just simply edit the vehicle data in the same way you edited the data for the ped spawning. You should see vehicle data similar to this scattered throughout this file and others:
AMBIENTVEHICLEDATA
BEGIN
AMBIENTVEHICLES_DAY
BEGIN
TOTAL 30
CAR 10
BIKE 20
POLICECAR 0
END
AMBIENTVEHICLES_CLASS
BEGIN
TOTAL 30
CAR 10
BIKE 20
POLICECAR 0
END
AMBIENTVEHICLES_NIGHT
BEGIN
TOTAL 30
CAR 10
BIKE 20
POLICECAR 0
END
AMBIENTVEHICLES_CURFEW
BEGIN
TOTAL 30
CAR 10
BIKE 20
POLICECAR 0
END
END
Simply put the number for each vehicle type you want and add all those up for your total for each time of the day and night just like with the ped population modding and you are good to go. I wouldn't put more then 5 to 10 for each vehicle since otherwise you would likely experience game lag so only put large amounts if your pc can handle it.
Ok, here we will cover doors and markers which is the last section of this massive tutorial. Please note that while you can spawn custom doors and markers, I have not yet managed to get existing locked doors to unlock and show their respective marker allowing you to interact with them. I can show you how to remove the doors however or change them around so this section will be considered under construction for the time being.
First you need to open a .dat file from trigger.img in notepad++ that has door relevent data. In this case we will use the school and I will in this example remove all of the doors so you can explore what is behind them. Due to most of the interiors being in a unfinished state in the school part of the map, the only way to make them work proper is to delete the existing door and put a new one in its place with a marker that teleports you to the proper interior for exploration such as a classroom or the auditorium...etc you get the idea. I will complete this section fully once I finish my rounds of testing and update everything here regarding doors and interiors as it happens. For now we will proceed with my demonstration so that some of you can at least play around with this and see more of the game that you were not meant to see...lol
in our example we will use ischool_doors.dat so open that up in notepad++.
When editing the doors it will require a lot more coding then the mods listed above this in the tutorial and this requires a lot of patience and the need to be very exact in what you type and where. I will try to explain this in a easy way.
Please understand that when editing doors...you have door trigger spawns which spawn the door type and then you have the actual spawnpoints the doors spawn at complete with their markers which are built into the door depending on what type of door you spawn.
So that said...take your ischool_doors.dat that you just opened and look at the beginning. You should see the following:
NPATHS 0
NPOINTS 53
NPERIMETERS 10
NTRIGGERS 36
NPOIS 0
I will explain these when I update this tutorial later in the week. So watch this space for updates.
For now ignore the small part above since it will not apply to the edits we will do here.
Look for the following in the school_doors.dat file:
PERIMETER
BEGIN
PLACEMENT "HallWind"
ISDOOR FALSE
HEIGHT 1.000000
DEPTH 0.000000
NPERIMETERPOINTS 0
END
What this is is a door type that is spawned for a section in this file. There is one door type that is spawned for certain sections of a interior or exterior and the door type can be changed to any other door type that is in the game. Each door type does different things.
What tells us wether this is a door is ISDOOR which in this example is set to FALSE. If it is changed to say TRUE then that will tell bully to make this a door and every section under this door spawn will have this spawn in their relevent spots in the game. In order for said door type to spawn as a door the sections listed under each door spawn will have to be edited in a certain way.
This particular spawn is a window which is usually set in a hallway in the building itself so naturally it is set to FALSE on the ISDOOR part. So for this spawn do not change that or you will be surprised on the problems that can happen in the game by doing so.
Instead we will change another part of the ischool_doors.dat file. So search for the following code:
PERIMETER
BEGIN
PLACEMENT "SCDoor"
ISDOOR TRUE
HEIGHT 1.000000
DEPTH 0.000000
NPERIMETERPOINTS 4
PERIMETERPOINTX 0.000000
PERIMETERPOINTY 2.500000
PERIMETERPOINTX 1.500000
PERIMETERPOINTY 2.500000
PERIMETERPOINTX 1.500000
PERIMETERPOINTY -1.500000
PERIMETERPOINTX 0.000000
PERIMETERPOINTY -1.500000
END
This is the first door spawn type that we will look at in this example. If you look at PLACEMENT you will see that is is SCDOOR which is a school door and a rather common one used in many areas in the world map not just in the school itself and you will notice this a lot with the other door types. The door types that you can change PLACEMENT to in this file are as follows:
- BdrDoorL
- ESCDoorL
- ESCDoorR
- BRDOOR
- NLock01A
- NLock01B
- NLock02A
- NLock02B
- NLock03B
- NLockR
- LckrGymA
- LckrGymB
- LckrGymM
- FDOORB
- SCGRDOOR
- BUSDOORS
- ASYDOORS
- EXTWIND
- SCOBSDR
- CellDoor
- OBSDR
- StalDoor
- PrepDoor
- DoorStr1
- RSGrDoor
- IndDoor
- SecDoorL
- SecDoorR
- GrDoorR
- FMDoor
- TadDoorL
- TadDoorR
- DRPDoor
- TadGates
- RideGate
- MotelDor
Feel free to experiment on the door spawn types and see what all happens. There is a possability some of these doors may crash your game but its a slim chance.
Now that we have the door spawn types out of the way, Lets get to changing some things around. In this case we will be removing some door in the school. To do this you simply look at each door type spawn and look for ISDOOR TRUE and if you see that then that means it is a door. To remove the door so you can walk through just change PLACEMENT "SCDoor" to PLACEMENT "" and save. Test out your edit and if you were successful you will see some doors were removed in the school. Try this out in different areas and see what you get. If you remove the doors in the boys dorm...please note that while you can see what is in the rooms which is quite a lot...you will not be able to explore them because you simply teleport to your room when you walk into a dorm room. I am working on a way to circumvent this and will post that info here as soon as I get it figured out. In the meantime this will conclude our tutorial session and I will expand the door tut here with more info in the comming days as I get some time to rest due to how exhausting this tutorial was to type up.
I wll also add screenshots of the examples in this tutorial sometime during the week if I get some time to make them but for now the screenshots graphic in this post will serve as a placeholder.
TO BE ADDED SOON!