Premium Spawner project was born as a "mod" of "Ultimate Spawner" script created by a brazilian scripter called Atomic, who had a SHARD called AtomicShard. It was based on a script that reads the spawns information from a bunch of "map" files and then place it in the world. The original script was modified by Nerun (myself) and when the number of changes to the original script became great, i changed the name of my version. The Premium is the successor of the Ultimate Spawner v4.0 R5 (until then, the simple addition of "R", followed by a number differentiated my version from original script designed by Atomic). The fundamental differences between the default RunUO Spawner system are: - "Premium" has new properties: 1. SpawnID - Spawners IDentity: used to unload or save spawns 2. OverrideMap - automatically change all map files from the spawners entries bellow it 3. OverrideID - works as OverrideMap, but for SpawnID 4. OverrideMinTime - works as OverrideMap, but for MinDelay 5. OverrideMaxTime - works as OverrideMap, but for MaxDelay - "Premium" has it own engine, not using the default "Spawner" that comes with RunUO, instead it uses the "PremiumSpawner". You can use both systems simultaneously. - "Premium" has map files (pre-spawned world). - "Premium" is user friendly. The basics of basics that you need to know is that this system is useful to remain "safe" (in a ".map" file) the spawners that you created with so much effort. Well, suppose you have to erase everything and start the world from scratch. You will have to place more than ten thousand spawns, by hand, again? NO! You just use a command prompt, everything will be generated again, and without effort. All effort is done in the process of map file creation (that you can do in-game). The current release is considered very mature (in terms of stability, reliability, features and ease of use) and complete (in terms of world spawns). INDEX: 1. PREMIUM SPAWNER INSTALATION 2. PART I - Main Menu 3. PART II - Writing a Map File (Basics) 4. PART III - Using Maps "In-Game" (B�sics) 5. PART IV - Writing a Map File (Advanced) 6. PART V - Using Maps "In-Game" (Advanced) 7. PART VI - Edition Options 8. PART VII - Spawns' Overseer >>>>>>>>>>>>>>>>>>>>>>>>>>> PREMIUM SPAWNER INSTALATION <<<<<<<<<<<<<<<<<<<<<<<<<<< Spawner creation system, Premium "Spawner" consists in a collection of scripts. As I added many scripts, I will not list them here. Today this system is distributed in a package called "Nerun's Distro". There were several packages in the beginning, but for convenience I have grouped in a single distribution. This package also includes other resources, such as spawns maps for use with this system, as gumps (menus) easy to use to further facilitate the settlement of your world. This distro can be found in the RunUO forum at http://www.runuo.com/. To install the distro open READ-ME FIRST.txt and follow its instructions. >>>>>>>>>>>>>>>>>> PART I - Main Menu <<<<<<<<<<<<<<<<<< To access the Main Menu wrote "[spawner" (without quotes) in the command prompt. There are a lot of options in the menu, in two pages. These options are self-explained: GUMP NAME COMMAND PROMPT =========================================================== WORLD CREATION: Let there be light (Create world) -- [createworld Apocalypse now (Clear all facets) -- [clearall SELECT SPAWNS BY EXPANSION: UO Classic Spawns (pre-T2A) -------- [spawngen uoclassic/UOClassic.map UO Mondain's Legacy Spawns --------- [SpawnUOML UO KR, SA and HS Spawns ------------ [SpawnCurrent REMOVE SPAWNS BY EXPANSION: UO Classic Spawns (pre-T2A) -------- [spawngen unload 1000 UO Mondain's Legacy Spawns --------- [UnloadUOML UO KR, SA and HS Spawns ------------ [UnloadCurrent SMART PLAYER RANGE SENSITIVE: Generate Spawns' Overseer ---------- [GenSeers Remove Spawns' Overseer ------------ [RemSeers SAVE SPAWNERS: All spawns (spawns.map) ------------ [spawngen save 'By Hand' spawns (byhand.map) ------ [spawngen savebyhand Spawns inside region (region.map) -- [spawngen save RegionName Spawns inside coordinates ---------- [spawngen save x1 y1 x2 y2 REMOVE SPAWNERS: All spawner in ALL facets ---------- [spawngen remove All spawners in THIS facet --------- [spawngen cleanfacet Remove spawners by SpawnID --------- [spawngen unload SpawnID Remove inside Coordinates ---------- [spawngen remove x1 y1 x2 y2 Remove spawners inside Region ------ [spawngen remove RegionName EDITOR: Spawn Editor ----------------------- [editor CONVERSION UTILITY: RunUO Spawners to Premium ---------- [rse CUSTOM REGIONS IN A BOX: Add a Region Controller ------------ [Add RegionControl As you can see, it centered on a single menu all the system commands, you do not know how to write each line to use them, simply click, follow the instructions and it is done. The following sections will describe how to create a map file, and how to use the command line instead of the Menu. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PART II - Writing a Map File (Basics) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Notepad can be used to create map files. You will see the following basic information on a map: ## Britain Graveyard: *|Spectre:Wraith|Skeleton|Zombie||||1369|1475|10|2|5|10|30|20|1|2|3|4|0|0|0 This map above provides information from all spawns of the Britain Graveyard. Let's analyze it: - 1st Line: Starts with "##", this double "sharp" marks the beginning of a comment. In other words, what comes after him will not be read by the script. It is usually used to provide information about the script: Dungeon map name, actual review and so on. - 2nd Line: The spawner itself. Each line is a spawner, but the advantage of PremiumSpawner is that it contains up to 6 FakeSpawners within themselves, which are nothing more than spawners with the same attributes of distance, time etc, but with different creatures and amounts: *|Spectre:Wraith|Skeleton|Zombie||||1369|1475|10|2|5|10|30|20|1|2|3| 4|0|0|0 - All Spawners starts with "*" followed by "|". This "|" separates the information into the line. The first 6 spaces are the names of the creatures, which in this case are: Spawner 1: Spectre OR Wraith (the ":" serves to add several creatures in a random list) Spawner 2: Skeleton Spawner 3: Zombie Spawner 4: Empty (none) Spawner 5: Empty (none) Spawner 6: Empty (none) Each of them are called "Fake Spawner": are 6 spawners inside only one spawner. - The three numbers that come after the creatures lists define the place where the spawner will be created. Following the "XYZ" format (all details of Spawners are separated by a "|"). In this case, the spawner will appear at coordinates "1369 | 1475 | 10", in other words, X = 1369, Y = 1475 and Z = 10. If you type "[go 1369 1475 10" you will go to the place where this Spawner will appear. - The fourth number says in wich facet the Spawner will be placed. Note that this number is 2. The definition of the maps follow this pattern: 0 = Felucca AND Trammel 1 = Felucca 2 = Trammel 3 = Ilshenar 4 = Malas 5 = Tokuno So deduct that the spawner will be placed in Trammel, because the room number (the map) is the number 2. - Next 2 numbers after facet number: defines respectively the minimum and the maximum respawn time. That is, the creatures that spawn will respawn in a randomly chosen interval between the minimum and maximum time. In the example We have "5 | 10 |" (always a "|"). Time is in minutes, so creatures will respawn between 5 and 10 min after being killed by players. But you could write otherwise, time in seconds, minutes or hours: |10s| = ten seconds; |10m| (or just |10|, the default) = ten minutes; |10h| = ten hours. - Next 2 numbers after respawn time: defines WalkingRange and HomeRange. In this case, 30 WalkingRange and 20 HomeRange. The creatures will walk for up to 30 "boxes" (those who we see in a maximum zoom in game) away from the spawner. But they will "respawn" randomly within a radius of up to 20 "boxes" from the spawner. Note that the HomeRange is always less than or equal to WalkingRange, NEVER MORE. - Next number after Ranges: identifies the spawn, is a "SpawnID", it tell us to which "spawn group" it belongs. By default, it is always 1. If you create any spawner in game using the "[add premiumspawner" command, the SpawnID will be the number 1. This identifies the spawners created "by hand". But the maps can have any number of SpawnID. It is advisable that all spawners of the same map, have the same SpawnID. We will see why bellow. - The last 6 numbers, also important, say how many monsters defined at the beginning of the spawner (the first 6 spaces) will be generated by that spawner. If the numbers are "2 | 3 | 4 | 0 | 0 | 0" will be generated 2 Specters OR Wraiths (or 1 of each), 3 skeletons and 4 Zombies. The latest figures are 0: nothing is created in the past 3 spawners, even if you define a value, nothing could be generated, because no creature was listed there (as we saw). As observation, note that most of spawner's properties, as described above, can be defined without the need to "see" where the spawner will appear, but the coordinates will need to "see". Because if you choose coordinates randomly, risks creating a spawner in an inaccessible place, for example, in the middle of the ocean! So you must go to the place where you would like spawner appear and use the command "[get location" or "[where" in that place. Then write down the details that will appear on the screen. Made the map, just save it in the folder Data / Monsters (if there isn't a folder Date/Monsters, it's time to create one. Click "Save As", select the Save as Type "All Files" and then type a name for the map, not forgetting to set ".map" at the end of the name. In the above example, if we had made that map, we could give him the name "graveyard.map". SUMMARIZING Default spawner format: *|List1|List2|List3|List4|List5|List6|X|Y|Z|facet|MinTime|MaxTime| WalkingRange|HomeRange|SpawnID|Count1|Count2|Count3|Count4|Count5|Count6 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PART III - Using Maps "In-Game" (B�sics) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< This is simple, are just a commands list to be used in game for the PremiumSpawner's engine generates spawners from the maps created. On the assumption that you already installed the required scripts in RunUO folder, you can use the following commands: - [spawngen MapName.map Read maps and create spawners. In the example you should use "[spawngen graveyard.map" (no quotes). - [spawngen remove Dungerous command! It will DELETE all PremiumSpawners of ALL facets of UO, done "by hand" or "by map"! - [spawngen save Usefull command: saves in a file called "Spawns.map" ALL the PremiumSpawners in ALL UO facets, done "by hand" or "by map"! Usefull if tou did a lot of custom maps and use this distro too. After this, a simple "[spawngen spawns.map" will spawn everything again. - [spawnrem It will DELETE all PremiumSpawners of actual facet (that one where your character is standing). Other facets will remain spawned. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PART IV - Writing a Map File (Advanced) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Multiple Creatures and Randomness --------------------------------- You have learned to create maps using the class method, in other words, you type the name of the creature and then the statistics (count, delay, range etc). But what if you want more than one type of creature in the same spawner? Use the method of two dots (":"). In this case, simply separate the creatures that you want with a ":" as in the example below: *|Spectre:Wraith||||||1369|1475|10|2|5|10|30|20|1|10|0|0|0|0|0 As a result, the spawner randomly selecs within the amount indicated, among the creatures on the list, separated by two dots. Remembering that you can put as many creatures you like, all separated by ":". In the example, we could have 7 Wraith and 3 Specter, or 5 of each, this number will vary, but the tendency is to remain in the ratio of count / creatures. In the example: count = 10, creatures = 2. Ratio 5. So the spawns will tend to 5 Wraith and 5 Specter. Now let's play with statistics. And if we want to have a greater chance of appearing more Spectres than Wraiths? So we can write in this way: *|Spectre:Spectre:Wraith||||||1369|1475|10|2|5|10|30|20|1|10|0|0|0|0|0 The ratio now is 3.3 for creature, so the chances will be now: 66.6% Spectres and 33.3% Wraiths. As an advise, never place inside the same Spawner (FakeSpawner), "target" creatures with "non-target" creatures or items. What i want to say is: don't place a Spectre, a Wraith and a dog or a bottle to spawn together: *|Spectre:Wraith:Dog||||||1369|1475|10|2|5|10|30|20|1|10|0|0|0|0|0 If you do it, sometime the players will kill all monsters, but will not kill the dogs, and all the 10 creatures of that spawner will be just dogs! It happens because the Spawner spawn just the remaning amount (amount not spawned). If it spawn 10 creatures: 5 Spectres, 3 Wraiths and 2 Dog, and if players kill all monsters except the dogs, next time the spawner will spawn 8 creatures (cause Dogs are alive) and it can spawn a few Spectres and Wraiths and a lot of Dogs again! And so on... I dit it in past releases, already fixed. Override Maps ------------- And if you want to do a map that works both in Trammel and Felucca? Instead of edit the facet number in each line (spawner) of your map, you can superscribe the facet number with a simple, only, command line. In our example above, that generates spawns only in Trammel, to generates spawns in Trammel AND Felucca, we adds an "overridemap": overridemap 0 ## Britain Graveyard: *|Spectre:Wraith|Skeleton|Zombie||||1369|1475|10|2|5|10|30|20|1|2|3|4|0|0|0 Here, the number "2" of that spawner (the facet), will be read as "0" by the spawn generator engine. Facet numbers are the same as described in "PART II - Writing a Map File (Basics)". Override SpawnID ---------------- Do the same as OverrideMap, but for SpawnIDs. SpawnID "1" will be read as "14", as bellow: overrideid 14 overridemap 0 ## Britain Graveyard: *|Spectre:Wraith|Skeleton|Zombie||||1369|1475|10|2|5|10|30|20|1|2|3|4|0|0|0 Override DelayTime ------------------ Do the same as OverrideMap and OverrideID, but for delay time. overridemintime and or overridemaxtime Exemple: overridemintime 10 overridemaxtime 20 overrideid 14 overridemap 0 ## Britain Graveyard: *|Spectre:Wraith|Skeleton|Zombie||||1369|1475|10|2|5|10|30|20|1|2|3|4|0|0|0 The delays (min 5 and max 10 minutes) will be read as 10 and 20 minutes. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PART V - Using Maps "In-Game" (Advanced) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Settlement In-Game ------------------ Another way to settlement your world (place spawns) is to go "in-game" and adds spawners by hand, with command [add premiumspawner CreatureName. And "set" the attributes (x = number): [set count x homerange x spawnrange x maxdelay x mindelay x Commands to Save and to Remove Spawns ------------------------------------- After spawn the desired area, you need to save yours spawns either with [spawngen save or with some advanced options. Just type [spawner and look under SAVE/REMOVE OPTIONS. There is a GUMP for each command. But you can use the command prompt instead: [spawngen savebyhand To save spawns done "by hand" ([add premiumspawner... all by hand premium spawners has SpawnID = 1). Spawns will be saved in "byhand.map" file in Data/Monsters folder. [spawngen save x1 y1 x2 y2 To save all premium spawners in a spawns.map file. All premium spawners inside the rectangle area (x1 y1 x2 y2) will be saved. X and Y are coordinates: (x1,y1)------+ All premium spawners between coordinates (x1,y1) | | and coordinates (x2,y2) will be saved. | | | | +---------(x2,y2) [spawngen save Save premium spawners inside a region defined by RunUO to a spawns.map file, in Data/Monsters. Complete list of regions are in c:/RunUO/Data/Regions.xml. Use [where to see the region where you are. Open Regions.xml to understand regions: As you see, a Region is a lot of rectangles. NOTE: "[spawngen remove" can be used with the same options as for "[spawngen save" above, but will remove spawns instead of save. NOTE: Go to Data/Monsters and rename spawns.map or byhand.map to another name, because each time you save with those options, the old file will be deleted and a new one will be saved over it. EXAMPLE: "[spawngen save minoc" (save spawns inside Minoc region) We can rename the spawns.map to Minoc.map. Unloading Maps (recommended) ---------------------------- The better way to remove spawns instead of using "[spawngen remove" and other Spartan options is the "Unload" method: [spawngen unload SpawnID If you define a SpawnID to each custom map you has you can unload or remove the entire map easier. Example: Graveyards.map saw above. All the premium spawners inside that map has SpawnID = 1. Lets see: ## Britain Graveyard: *|Spectre:Wraith|Skeleton|Zombie||||1369|1475|10|2|5|10|30|20|1|2|3|4|0|0|0 The problem is that 1 is the default number to "by hand" maps. Lets change the ID of this map. In the example above we just need to change one number (that between numbers 20 and 2). But if the map had 100, maybe 1000 premium spawners? hard work uh? Because of it there is the "overrideid" option. It set all the SpawnIDs bellow it to the desired ID. So lets do it: overrideid 14 ## Britain Graveyard: *|Spectre:Wraith|Skeleton|Zombie||||1369|1475|10|2|5|10|30|20|1|2|3|4|0|0|0 Although each spawner still have 1 as ID on each line, the "overrideid 14" will force the spawn generator engine to read that "1" as if "14". Later in the game, if I want to remove this map is just type "[spawngen unload 14" and ready. None of my other spawns will be changed or removed. >>>>>>>>>>>>>>>>>>>>>>>>> PART VI - Edition Options <<<<<<<<<<<<<<<<<<<<<<<<< [editor Opens the spawn editor of course. This will list all the PremiumSpawners in the left side. In the right column you can see a bunch of options to select only the desired spawners, go to it, see it properties, and see it creatures. [clearall Works as [Clearfacet but for ALL facets. Caution here. [GMbody Will set some common attributes to GMs. Target yourself. A lot of items, skills, stats, robes, full spellbooks etc, will appear in your backpack. You always set your body to human body. You add titles to [GM], [Admin], etc. >>>>>>>>>>>>>>>>>>>>>>>>>>> PART VII - SPAWNS' OVERSEER <<<<<<<<<<<<<<<<<<<<<<<<<<< Revision 22 has added Spawners' Overseer engine, the new incarnation of Smart Player Range Sensitive. How it works: It has a range, that can be set by a GM or higher. It checks players in range every time the clock time ticks. If there is a player in range (or a non-hidden Staff Member) it will check players again only after 30 min (this time can be changed). If there is no players in range (or if Staff Members are hidden, but in range) it will disable all PremiumSpawners in range, deleting mobiles and items in range, and it will check for players every 5 seconds. [GenSeers - generates Overseers crystal by reading configuration files at Data\Monsters\Overseers. There is no OverSeers configuration files yet. So it generates no OverSeers. The engine is done, it is working, but you need a config file to tells the engine where to place OverSeers. [RemSeers - removes all Overseers. >>>>>> ADDING >>>>>> One option it to add OverSeers yourself, by hand. [add SpawnsOverseer - this will add an OverSeer with range 20 (square of 40 x 40). [add SpawnsOverseer 50 - this will add an OverSeer with range 50 (square of 100 x 100). >>>>>> CONFIG FILES >>>>>> And look at: ...\Data\Nerun's Distro\Spawns\overseers\trammel\Overseers.cfg It is an example of OverSeer config file: SpawnsOverseer 7966 5433 1102 0 It is simple: bellow "SpawnsOverseer 7966" write coordinates (x,y,z) where you want to put them. >>>>>> RANGES >>>>>> I thin you can write different ranges too, something like this: SpawnsOverseer 7966 (Range=50) 5433 1102 0 Remember that default range is 20 if none specified. Range is the seer's "watching range". PremiumSpawners inside it range will be watched by that seer. There is no limit to the range. You can place many seers with different ranges: SpawnsOverseer 7966 5433 1102 0 1234 970 0 3456 456 0 SpawnsOverseer 7966 (Range=50) 5433 1102 0 You can change other parameters: SpawnsOverseer 7966 (InRangeDelay=30; OutRangeDelay=5) 5433 1102 0 And use all the together: SpawnsOverseer 7966 (Range=50; InRangeDelay=30; OutRangeDelay=5) 5433 1102 0 InRangeDelay = time in minutes to next check if players are in range OutRangeDelay = time in seconds to next check if there is no players in range >>>>>> ITEMID >>>>>> Always use "SpawnsOverseer 7966", the number is the ItemID of SpawnsOverseer item. >>>>>> COMMENTS >>>>>> Use # to add comments that will not be read by [GenSeers: # This is a comment line SpawnsOverseer 7966 (Range=50) 5433 1102 0 >>>>>> FOLDERS >>>>>> Place the CFG file in the right folder. Trammel: ...\Data\Nerun's Distro\Spawns\overseers\trammel\Overseers.cfg Felucca: ...\Data\Nerun's Distro\Spawns\overseers\felucca\Overseers.cfg etc >>>>>> .CFG FILE NAME >>>>>> You can place more then one cfg inside the same folder, and don't need to have the name Overseers.cfg. Files can have any name. You can do a file "Graveyards.cfg" for all graveyards in a facet. Plus another called "Florests.cfg" for florests and open areas etc.