
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Super Spawner Script
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Version 1.4
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Created by: CoMPuTer MAsSteR [.:AKA:.] CoMPMStR

 Special Thanks to topeira for helping with the
 bug fixes, new suggestions, and the awesome poster.

 Special Thanks to HazardX for the easy-to-use
 object mouse placement ScriptHook sample.



Here it is, yet another spawner script.. or is it? This script allows you to spawn vehicles and peds alike. Not only can you spawn vehicles, and peds, you can also spawn various objects and also alter them in different ways upon spawning them. Now you can also spawn pickups!

Some of the ways you can alter peds is by giving them different tasks. Those tasks include:

 - Stand Still: Spawns the ped and they won't move, maybe a little.
 - Hands Up: Spawns a ped who's always raising their hands up.
 - Flee Player: Spawns a ped who's scared of you and runs away.
 - Flee Player Then Fall: Spawns a ped who's scared of you and runs away, but then trips and falls some time later.
 - Defend Player: Spawns a ped that will defend you to the death. You can only have 7 that will defend you.
 - Fight Player: Spawns a ped that will fight you to the death.
 - Follow Player: Spawns a ped that will always try to get close to you. They may stop following if you're too far away.
 - Wander Around: Spawns a ped that just walks around the city.
 - On Fire: Spawns a ped on fire. If you spawn more than 3 or 4 peds before they die, the subsequent peds may run away on fire.
 - Dance: Spawns a ped that that dances randomly.
 - Riot: Spawns a ped that will start fighting with the closest ped. They won't bother you, the player, unless you bother them.

Some of the ways you can alter vehicles is by giving them different characteristics. Those include:

 - Normal: Spawns a normal vehicle with no special attributes.
 - Invincible: Spawns a vehicle with all proofs enabled (bullet, fire, explosion, damage, melee). You may or may not receive visual damage.
 - Hazard Lights: Spawns a vehicle with it's hazard lights constantly blinking.
 - With Passengers: Spawns a vehicle with random passengers sitting in the vehicle.
 - Explode: Spawns a vehicle that will explode within a certain amount a time.

Some of the ways you can alter objects is by attaching them to different existing objects. When an attached object is spawned, you are allowed to modify it's position and rotation. After you've completely modified the object's attachment properties simply press the spawn key again to confirm the changes. Those attachment areas include:

 - Normal: Spawns a normal object in the world.
 - Frozen: Spawns an object that's position is frozen.
 - Back Attach: Spawns an object and attaches it to Niko's back.
 - Body Attach: Spawns an object and attaches it to Niko's body.
 - Head Attach: Spawns an object and attaches it to Niko's head.
 - Left Arm Attach: Spawns an object and attaches it to Niko's left arm.
 - Left Body Attach: Spawns an object and attaches it to Niko's left body.
 - Left Ear Attach: Spawns an object and attaches it to Niko's left ear.
 - Left Hand Attach: Spawns an object and attaches it to Niko's left hand.
 - Left Hip Attach: Spawns an object and attaches it to Niko's left hip.
 - Left Shoulder Attach: Spawns an object and attaches it to Niko's left shoulder.
 - Neck Attach: Spawns an object and attaches it to Niko's neck.
 - Right Arm Attach: Spawns an object and attaches it to Niko's right arm.
 - Right Foot Attach: Spawns an object and attaches it to Niko's right foot.
 - Right Hand Attach: Spawns an object and attaches it to Niko's right hand.
 - Right Shoulder Attach: Spawns an object and attaches it to Niko's right shoulder.
 - Vehicle Attach: Spawns an object and attaches it to Niko's current vehicle, if available.

Some of the different types of pickups you can spawn include:

 - Weapon: Spawns a weapon pickup of any available with any amount of ammo.
 - Money: Spawns a money pickup with as much money as you want.


NEW in v1.1:

 - Now works for game version v1.0.2.0.
 - Fixed the issue with some peds not performing their tasks after spawning lots of peds.
 - Stand still-task peds will now stand still, even when you drop a grenade.
 - Fight player-task peds will now stay focused on fighting the player.

NEW in v1.2:

 - Major improvements to the overall script.
 - Modified the key layout to add new features.
 - Added a master key combination to turn the script on or off.
 - Added lots of new configurable options.
 - Added blips for some spawned peds.
 - Added some object spawning support, complete with attachments.

NEW in v1.3:

 - Improved the Defend and Fight-task peds some more.
 - Added console commands that allow easier script actions.
 - Added some more configurable options and modified the ped tasks.
 - Added a preview function to view the selected entity.
 - Added the ability to place entities while aiming with the mouse.
 - Added save and load functions for spawned entities. Console commands only.
 - Modified some other minor details.

NEW in v1.4:

 - Updated to work with new game version and scripthook.
 - Added pickup spawning support, for both weapons and money.
 - Added multiple new object attachment locations; back, body, left arm, etc. just to name a few.
 - Added the ability to remove any entity after placement, without clearing the entire list.
 - Improved entity positioning with the mouse, now allowing rotation of objects.
 - Improved the dance-task peds, now they will actually dance instead of kick and fall.


This script allows you to configure the hotkeys and options to your liking. The keys are assigned the numerical representation of the respective VK enum. I've included a text file with a listing of all available keys, incase some of you don't know the numerical value of the key you'd like to use.

NOTE: You can change the options during gameplay without exiting the game. After you've saved any changes, simply reload the game and the changes will take effect. Alternately, you can toggle the scripthook console and type the command 'reloadscripts' to reload them without reloading the game.



-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Default Hotkeys:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

ControlKey+AltKey+Numpad0 (17+18+96): Master ON/OFF Keys
Numpad0 (96): Change Task Type
Numpad1 (97): Spawn Model Index
Numpad2 (98): Spawn Entity Count
Numpad3 (99): Change Spawner Type/Status Display
Numpad Decimal (110): Spawn Entity
OemSemicolon (186): Attach Specify
OemQuotes (222): Attach Modify
ControlKey (17): Modifier Key
AltKey (18): Modifier Key2


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Options Information:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

Master ON/OFF Keys: Switches the script on and off, allowing you to free up the used hotkeys. You can choose any number of keys to use, just make sure your keyboard allows pressing them all simultaneously. Seperate each with a plus sign.
Change Task Type: Changes the current task/attribute type by 1. Hold the modifier key to decrease, press alone to increase.
Spawn Model Index: Changes the current model index by 1. Hold the modifier key to decrease, press alone to increase.
Spawn Entity Count: Changes the number of entities to spawn with one keypress. Hold the modifier key to decresae the count, press alone to increase.
Change Spawner Type/Status Display: Changes the current spawner type, allowing you to spawn different types of entities. Hold the modifier key to display the total number of entities in use for the current task/attribute type.
Spawn Entity: Spawns the currently selected entity. Hold the modifier key to remove spawned entities. After the confirmation message, hold the modifier key to clear all entities or press alone to clear only the selected task/attribute type entities. Hold the 2nd modifier key to view a preview of the selected entity, press again to rotate the preview 90 degrees clockwise.
Attach Specify: Cycles through which property to edit on the newly attached or frozen object (position offset x, y, z and rotation x, y, z or heading). Hold the modifier key to cycle in reverse.
Attach Modify: Increases the selected property of the newly attached or frozen object. Hold the modifier key to decrease. Hold the 2nd modifier key to modify the object a little faster.
Modifier Key: This is the modifier key used along with the other hotkeys to add more functions.
Modifier Key2: This is another modifier key to be used along with some other hotkeys.


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Settings Information:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

[KEYS]
MASTERONOFF = Master ON/OFF Keys
INDEXMOVE = Spawn Model Index
SPAWN = Spawn Entity
TASKTYPE = Change Task Type
SPAWNCOUNT = Spawn Entity Count
SPAWNERTYPESTATS = Change Spawner Type/Status Display
ATTACHPOINT = Attach Specify
ATTACHPOSROT = Attach Modify
MODIFIER = Modifier Key
MODIFIER2 = Modifier Key2

[VALUES]
MINPEDDIST = Minimum distance, in meters, to spawn peds from Niko. (DEFAULT=3.0)
MAXPEDDIST = Maximum distance, in meters, to spawn peds from Niko. (DEFAULT=6.0)
MINCARDIST = Minimum distance, in meters, to spawn vehicles from Niko. (DEFAULT=4.0)
MAXCARDIST = Maximum distance, in meters, to spawn vehicles from Niko. (DEFAULT=8.0)
MINDEFENDPEDDIST = Minimum distance, in meters, to spawn defend-task peds from Niko. (DEFAULT=2.0)
MAXDEFENDPEDDIST = Maximum distance, in meters, to spawn defend-task peds from Niko. (DEFAULT=6.0)
MINFIGHTPEDDIST = Minimum distance, in meters, to spawn fight-task peds from Niko. (DEFAULT=40.0)
MAXFIGHTPEDDIST = Maximum distance, in meters, to spawn fight-task peds from Niko. (DEFAULT=80.0)
MINOBJECTDIST = Minimum distance, in meters, to spawn objects from Niko. (DEFAULT=1.0)
MAXOBJECTDIST = Maximum distance, in meters, to spawn objects from Niko. (DEFAULT=2.0)
FLEEFALLTIME = Amount of time, in seconds, it takes for the ped to trip and fall when fleeing. (DEFAULT=5)
FLEEFALLFORCE = Amount of force applied when the ped trips and falls. (DEFAULT=2.0)
PEDINITHEALTH = Amount of health spawned peds have initially. (DEFAULT=1)
DEFENDPEDHEALTH = Amount of health defend-task peds have when spawned. (DEFAULT=200)
DEFENDPEDARMOR = Amount of armor defend-task peds have when spawned. (DEFAULT=200)
DEFENDPEDWEAPON = The weapon(s) that defend-task peds have when spawned. Seperate the weapons with a comma to randomize between them. (DEFAULT=4, 5, 12, 13, 14, 15)
DEFENDPEDACCURACY = Amount of accuracy the defend-task peds will have. (DEFAULT=200)
DEFENDPEDSENSERANGE = Range, in meters, in which the defend-task peds will locate potential threats. (DEFAULT=50.0)
DEFENDPEDDEFENSEAREA = Area, in meters, in which the defend-task peds will use defensive cover around themselves. (DEFAULT=50.0)
DEFENDPEDMODELS* = Ped models to spawn for defend-task peds when ALWAYSRANDOMPEDS is enabled. (DEFAULT=104-117, 225, 226, 228, 229, 232, 235, 236-239, 242, 243, 244, 246-255)
FIGHTPEDHEALTH = Amount of health fight-task peds have when spawned. (DEFAULT=200)
FIGHTPEDARMOR = Amount of armor fight-task peds have when spawned. (DEFAULT=200)
FIGHTPEDWEAPON = The weapon(s) that fight-task peds have when spawned. Seperate the weapons with a comma to randomize between them. (DEFAULT=7, 10, 11)
FIGHTPEDACCURACY = Amount of accuracy the defend-task peds will have. (DEFAULT=100)
FIGHTPEDSENSERANGE = Range, in meters, in which the fight-task peds will locate potential threats. (DEFAULT=25.0)
FIGHTPEDDEFENSEAREA = Area, in meters, in which the fight-task peds will use defensive cover around themselves. (DEFAULT=25.0)
FIGHTPEDMODELS* = Ped models to spawn for fight-task peds when ALWAYSRANDOMPEDS is enabled. (DEFAULT=294-341)
FOLLOWPEDHEALTH = Amount of health follow-task spawned peds have when spawned. (DEFAULT=10)
FIREPEDHEALTH = Amount of health onfire-task spawned peds have when spawned. (DEFAULT=2000)
EXPLODECARTIME = Amount of time, in seconds, it takes for explode-task spawned vehicles to explode. (DEFAULT=10)
RAGDOLLFORCE = Amount of force that slings the ragdoll ped to the ground. (DEFAULT=10.0)
RICHPEDS = Determines whether the spawned peds will have lots of money or not. (DEFAULT=false)
PEDFRIENDLYFIRE = Determines whether you will be allowed to shoot your defend-task peds and if they can shoot you. True means you can shoot each other. Also works for fight-task peds. (DEFAULT=false)
OBJECTCOUNT = Default amount of objects to spawn with one keypress. Can be changed ingame. (DEFAULT=1)
STANDSTILLPEDCOUNT = Default amount of stand still-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=10)
FLEEPEDCOUNT = Default amount of flee-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=1)
FLEEFALLPEDCOUNT = Default amount of flee then fall-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=4)
DEFENDPEDCOUNT = Default amount of defend-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=3)
FIGHTPEDCOUNT = Default amount of fight-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=5)
FOLLOWPEDCOUNT = Default amount of follow-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=2)
FIREPEDCOUNT = Default amount of onfire-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=3)
WANDERPEDCOUNT = Default amount of wander-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=1)
EXPLODECARCOUNT = Default amount of explode-task vehicles to spawn with one keypress. Can be changed ingame. (DEFAULT=3)
STANDSTILLPEDDIST = Total distance, in meters, between Niko and stand still-task peds before they're no longer needed. (DEFAULT=200.0)
FLEEPEDDIST = Total distance, in meters, between Niko and flee-task peds before they're no longer needed. (DEFAULT=100.0)
DEFENDPEDDIST = Total distance, in meters, between Niko and defend-task peds before they're no longer needed. (DEFAULT=300.0)
FIGHTPEDDIST = Total distance, in meters, between Niko and fight-task peds before they're no longer needed. (DEFAULT=300.0)
FOLLOWPEDDIST = Total distance, in meters, between Niko and follow-task peds before they're no longer needed. (DEFAULT=250.0)
FIREPEDDIST = Total distance, in meters, between Niko and onfire-task peds before they're no longer needed. (DEFAULT=200.0)
WANDERPEDDIST = Total distance, in meters, between Niko and wander-task peds before they're no longer needed. (DEFAULT=250.0)
PASSENGERPEDDIST = Total distance, in meters, between Niko and passenger-task peds before they're no longer needed. (DEFAULT=200.0)
PASSENGERCARDIST = Total distance, in meters, between Niko and passenger-attribute vehicles before they're no longer needed. (DEFAULT=200.0)
INVINCIBLECARDIST = Total distance, in meters, between Niko and invincible-attribute vehicles before they're no longer needed. (DEFAULT=200.0)
OBJECTDIST = Total distance, in meters, between Niko and spawned objects before they're no longer needed. (DEFAULT=350.0)
ALWAYSRANDOMPEDS = This determines whether the multiple peds spawned will be a random model or if they will all the the selected model. (DEFAULT=true)
ALWAYSRANDOMCARS = This determines whether the multiple vehicles spawned will be a random model or if they will all the the selected model. (DEFAULT=true)
SHOWFLEEPEDBLIPS = This determines whether blips will appear for all flee-task peds. (DEFAULT=true)
SHOWDEFENDPEDBLIPS = This determines whether blips will appear for all defend-task peds. (DEFAULT=true)
SHOWFIGHTPEDBLIPS = This determines whether blips will appear for all fight-task peds. (DEFAULT=true)
SHOWFOLLOWPEDBLIPS = This determines whether blips will appear for all follow-task peds. (DEFAULT=true)
SHOWWANDERPEDBLIPS = This determines whether blips will appear for all wander-task peds. (DEFAULT=true)
ALWAYSPLACEPEDSONSTREET = This determines whether all peds will be placed on the street closest to their spawn position. (DEFAULT=true)
ALWAYSPLACECARSONSTREET = This determines whether all vehicles will be placed on the street closest to their spawn position. (DEFAULT=false)
ALWAYSPLACEOBJSONSTREET = This determines whether all objects will be placed on the street closest to their spawn position. (DEFAULT=false)
FORMATIONSPACING = The maximum space between Niko and the spawned defend-task peds. (DEFAULT=3.0)
FIGHTPEDRESPAWNINTERVAL = The interval, in seconds, in which to respawn more fight-task peds. Will activate once you defeat all spawned fight-task peds. Set to 0 to disable automatic respawn. (DEFAULT=0)
PLAYFIGHTPEDSOUNDS = When enabled, you will hear a sound when you defeat all fight-task peds that were spawned. (DEFAULT=true)
FLEEPEDBLIPMINDIST = Minimum distance, from Niko, in which the flee-task ped blips will be visible. (DEFAULT=0.0)
FLEEPEDBLIPMAXDIST = Maximum distance, from Niko, in which the flee-task ped blips will be visible. (DEFAULT=150.0)
DEFENDPEDBLIPMINDIST = Minimum distance, from Niko, in which the defend-task ped blips will be visible. (DEFAULT=10.0)
DEFENDPEDBLIPMAXDIST = Maximum distance, from Niko, in which the defend-task ped blips will be visible. (DEFAULT=350.0)
FIGHTPEDBLIPMINDIST = Minimum distance, from Niko, in which the fight-task ped blips will be visible. (DEFAULT=20.0)
FIGHTPEDBLIPMAXDIST = Maximum distance, from Niko, in which the fight-task ped blips will be visible. (DEFAULT=350.0)
FOLLOWPEDBLIPMINDIST = Minimum distance, from Niko, in which the follow-task ped blips will be visible. (DEFAULT=15.0)
FOLLOWPEDBLIPMAXDIST = Maximum distance, from Niko, in which the follow-task ped blips will be visible. (DEFAULT=300.0)
WANDERPEDBLIPMINDIST = Minimum distance, from Niko, in which the wander-task ped blips will be visible. (DEFAULT=15.0)
WANDERPEDBLIPMAXDIST = Maximum distance, from Niko, in which the wander-task ped blips will be visible. (DEFAULT=300.0)
ALWAYSDISPLAYSTATSWHENENABLED = When enabled, the display status text will NOT disappear after being show when cycling tasks/spawners. (DEFAULT=false)
OBJECTPOSROTCHANGE = Amount to change the spawned object's position when attached to something or frozen. Rotation only when attached. (DEFAULT=0.05)
OBJECTHEADCHANGE = Amount to change the spawned frozen object's heading. (DEFAULT=0.5)
HANDSUPPEDSREPEAT = Determines whether hands up-task peds will constantly be raising their hands up and down. If disabled, these peds will lower their hands after a short while. (DEFAULT=true)
DANCEPEDCOUNT = Default amount of dance-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=4)
DANCEPEDDIST = Total distance, in meters, between Niko and dance-task peds before they're no longer needed. (DEFAULT=200.0)
PREVIEWTIME = Amount of time, in seconds, it takes for the preview entity to be shown. (DEFAULT=10)
ALWAYSPLACEPEDSINFRONT = Determines whether the spawned peds will be placed in front of Niko. Overrides ALWAYSPLACEPEDSONSTREET if enabled. (DEFAULT=false)
ALWAYSPLACECARSINFRONT = Determines whether the spawned vehicles will be placed in front of Niko. Overrides ALWAYSPLACECARSONSTREET if enabled. (DEFAULT=true)
ALWAYSPLACEOBJSINFRONT = Determines whether the spawned objects will be placed in front of Niko. Overrides ALWAYSPLACEOBJSONSTREET if enabled. (DEFAULT=true)
RIOTPEDHEALTH = Amount of health fightself-task spawned peds have when spawned. (DEFAULT=100)
RIOTPEDCOUNT = Default amount of fightself-task peds to spawn with one keypress. Can be changed ingame. (DEFAULT=2)
RIOTPEDWEAPON = The weapon(s) that fightself-task peds have when spawned. Seperate the weapons with a comma to randomize between them. (DEFAULT=0, 1, 3)
RIOTPEDDIST = Total distance, in meters, between Niko and fightself-task peds before they're no longer needed. (DEFAULT=200.0)
SHOWRIOTPEDBLIPS = This determines whether blips will appear for all riot-task peds. (DEFAULT=true)
RIOTPEDBLIPMINDIST = Minimum distance, from Niko, in which the riot-task ped blips will be visible.(DEFAULT=20.0)
RIOTPEDBLIPMAXDIST = Maximum distance, from Niko, in which the riot-task ped blips will be visible.(DEFAULT=350.0)
USELARGEBLIPICONS = Determines whether the blips shown will be large squares, or small circles. (DEFAULT=false)
USEAIMTOPLACEPEDS = Determines whether you can use the mouse to place a newly spawned ped. (DEFAULT=false)
USEAIMTOPLACECARS = Determines whether you can use the mouse to place a newly spawned vehicle. (DEFAULT=true)
USEAIMTOPLACEOBJS = Determines whether you can use the mouse to place a newly spawned object. (DEFAULT=true)
CLEAROBJSUPONDIE = Determines whether all spawned entities will be cleared when Niko dies or gets busted. (DEFAULT=true)
ALWAYSPLACEPEDSAROUNDPLAYER = Determines whether the spawned peds will be placed around Niko, or directly at Niko's exact position. (DEFAULT=true)
ALWAYSPLACECARSAROUNDPLAYER = Determines whether the spawned vehicles will be placed around Niko, or directly at Niko's exact position. (DEFAULT=true)
ALWAYSPLACEOBJSAROUNDPLAYER = Determines whether the spawned objects will be placed around Niko, or directly at Niko's exact position. (DEFAULT=false)
MINPICKUPSPAWNDIST = Minimum distance, in meters, to spawn pickups from Niko. (DEFAULT=2.0)
MAXPICKUPSPAWNDIST = Maximum distance, in meters, to spawn pickups from Niko. (DEFAULT=4.0)
PICKUPDIST = Total distance, in meters, between Niko and pickups before they're removed. (DEFAULT=150.0)
ALWAYSPLACEPICKUPSINFRONT = Determines whether the spawned pickups will be placed in front of Niko. (DEFAULT=false)
ALWAYSPLACEPICKUPSAROUNDPLAYER = Determines whether the spawned pickups will be placed around Niko, or directly at Niko's exact position. (DEFAULT=true)
PICKUPWEAPONAMMO = Amount of ammo each weapon pickup is spawned with. (DEFAULT=420)
PICKUPMONEYAMOUNT = Amount of money each money pickup is spawned with. (DEFAULT=2021)
RIOTPEDRESPAWNINTERVAL = The interval, in seconds, in which to respawn more riot-task peds. Will activate once you defeat all spawned riot-task peds. Set to 0 to disable automatic respawn. (DEFAULT=0)
PLAYRIOTPEDSOUNDS = When enabled, you will hear a sound when you defeat all riot-task peds that were spawned. (DEFAULT=true)
RIOTPEDSATTACKPLAYER = Determines whether or not riot-task peds will attack Niko when within a certain distance. (DEFAULT=true)
RIOTPEDPLAYERDIST = This is the distance from the riot-task ped when they will attack Niko. (DEFAULT=2.0)


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Console Commands:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

ssp_spawn_ped
ssp_spawn_car
ssp_spawn_obj
ssp_spawn_pick
ssp_clear_ped
ssp_clear_car
ssp_clear_obj
ssp_clear_pick
ssp_change_key
ssp_change_option
ssp_change_index
ssp_load_exmodels
ssp_save_settings
ssp_load_construct
ssp_save_construct
ssp -OR- ssp_help



-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Defend/Fight Ped Models Info:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

This is a list of model indexes in which to randomize from if the ALWAYSRANDOMPEDS option is enabled. You can specify indexes for ped models in two different ways, individually or within a range. To specify indexes individually, simply list them with a comma (,) as a seperator (ex: 2, 5,24 ,83). To specify a range of indexes, simply list the lowest and highest numbers with a dash (-) in between (ex: 23, 43-64 ,110-131). You can identify the indexes to the defined model by cycling through them ingame. The index number will be displayed along with the model name. NOTE: Adding indexes to the list that aren't available will cause crashes when attempting to spawn the ped.



-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Object Attachment Info:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

This will "attempt to" help you all, when spawning an object that's attached to something else. First, I hope you know, you need to cycle through until you've chosen which place you'd like to attach the object. You also need to cycle though and choose which object you're going to spawn. After you have those two selections made, you can spawn the object and begin positioning it. The default hotkeys are OemSemicolon ( ; ), OemQuotes ( " ), and the CTRL modifier key; which will be used in the example.

Immediately after you spawn the object, it will appear attached to the center of the object. From here you would use the OemQuotes key to increase it's position and rotation, and the OemSemicolon key to cycle forward through which aspect of the positioning to modify; x, y, and z position and rotation. Holding the CTRL modifier key while using these two hotkeys will decrease the attached object's position and rotation, and cycle in reverse between position and rotation; respectively of course. Once you've completely positioned the object, simply press the Spawn Entity key to finalize the process. The same rules apply to spawned frozen objects.



-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Mouse Placement Info:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

You can use the mouse to place objects anywhere you like, much easier than by using the hotkeys. This can be done after spawning an entity, while holding the Aim button. When moving the entity, you can also bring it closer, move it further away, or rotate it. These can be done with the Enter Vehicle button to bring it closer, the Reload button moves it further away, and the Action button rotates it. You can even hold the Sprint button to move it's distance a bit faster. If you have an object selected, you can rotate the object with the mouse by holding the Action button. With the SeekCover button, you can modify different axis thus allowing full rotations for each object. Once you're done using the mouse to place the entity, simply press the Spawn Entity key to finalize the process. There are a few exceptions to the entities that can be moved with the mouse. The fleefall-task peds, normal-attribute vehicles, hazardlights-attribute vehicles, and any attach-attribute objects can NOT be placed with the mouse. Those are the only exceptions, all other spawned entities can be placed with the mouse. Also, only one entity will be spawned if mouse placement is enabled.

NOTE: Now you are allowed to pickup and place any entity that has already been finalized. While aiming at the entity, hold the Modifier Key2 (ALT by default) to place the entity at another location. While in this mode, you can choose to remove the selected entity by pressing the X key. This will display a confirmation message, which then you can press the X key once again to remove the object from the list collection.



-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Construction Info:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

Now there's the ability to save almost any spawned entity that has been spawned with this script. Now when I say almost, there are only a few that won't be saved. Basically it's the same exceptions as the mouse placement, fleefall-task peds, normal-attribute vehicles, hazardlights-attribute vehicles, and carattach-attribute objects will NOT be saved in the construction data. The reason for this is these entities are marked no longer needed as soon as they're spawned or need some special requirement, and the rest are stored away in a collection list until they're cleared. Now, with that aside; you can also load these saved files for later use, instead of spawning and positioning them all again. When they load, they will be placed in the exact same position facing the same way as before, and it works for them all! The files are stored in the <GTA4ROOT>\scripts\ssp_construct folder.

Also, if you open any of the construction data files in Notepad or similar, you will notice the [POSITION] section at the top of the file. This is because, when you load a construction file, all entities will be spawned exactly where they were when the file was saved. If you reload the game, you may not be around the area where you were when you saved the file, thus would result in the objects not being spawned properly. This section specifies the player position, and the script will warp you to that location prior to spawning the entities when loading a construction file. However, if you saved a file consisting of only attached objects, you may not want to be warped which could cause quite an inconvience. If that is the case, you can simply remove the [POSITION] section completely and when the construction file is loaded, you won't be warped. Simple as that!



-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 To Install:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

First you will need to obtain a copy of HazardX's .NET ScriptHook. After you've installed the .NET ScriptHook simply copy the /scripts folder to the GTAIV root folder.

Optional: If you choose to use the default values, you don't need to copy the "sspsettings.ini" file. However, if you do intend to change some things, you need to copy the "sspsettings.ini" file to the same location as the script, in the <GTAIVROOT>/scripts folder.

Optional2: Also included in the /scripts folder is a file "spawnexm.ini". This file contains all the DLC content vehicles and peds to spawn. The file initially contains the bikes from Lost and Damned DLC and can be modified for any future DLC releases or even custom models. All you do is open the file in notepad or similar and enter the vehicle and ped model names in the respective locations, and they will be loaded with the rest. If you don't have any DLC content you can simply ignore/delete/remove this file because spawning any invalid models will crash the game. If you do intend to use this file just copy it to the same location as the script, in the <GTAIVROOT>/scripts folder.

Optional3: I've added support in the "spawnexm.ini" file for DLC and custom objects. It's including a list of nearly 20000 objects used ingame, which were gathered from the various map *.ide files. If you would like to use these models but do NOT have any other DLC content installed, remove all the model names under the [CARS] category. As stated previously, spawning any model that isn't used ingame will result in crashes.


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Minimum Requirements:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

.NET Framework v2.0
GTAIV PC Installation
Any ASI Loader
HazardX's .NET ScriptHook


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Recommended Requirements:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

.NET Framework v3.5
GTAIV PC Installation
Any ASI Loader
HazardX's .NET ScriptHook


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
 Links:
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

.NET Framework v3.5:
 - http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6
ASI Loader by Alexander Blade:
 - http://www.gtaforums.com/index.php?showtopic=380830
Xliveless by listener:
 - http://www.gtaforums.com/index.php?showtopic=388658
YAASIL - Yet Another ASI Loader by HaxardX:
 - http://www.gtaforums.com/index.php?showtopic=394806
.NET ScriptHook by HazardX:
 - http://www.gtaforums.com/index.php?showtopic=392325



-+-+-+-+-
 Contact
-+-+-+-+-

If you have any comments, questions, problems or anything else regarding this software:
 - Email: computermasster[at]gmail[dot]com
								~EOF~