Dear everyone:
I begin this thread in the hopes of compiling a comprehensive list of the oddities, limitations, and fantastic effects of Starcraft modding, to better our combined skills as modders. Share your knowledge, and forever preserve the work you invested learning it.
__________________________________________________________
LimitationsTry as we might, it is like hitting a brick wall. Starcraft was never intended to be modded, after all.Buildings on CreepBy HercanicTest: I wanted to find out what limited placement on creep, as there was no apparent flag in units.dat. I compared the Hatchery, since it did not require creep yet could still be built upon it, and found no difference between it and other buildings. I deduced that the cause must be in the race flag, so I set the Terran Barracks to Zerg.
Outcome: Mixed. A building that does not require Creep cannot be built on creep unless set as Zerg. However, Zerg buildings will not construct units internally. The queue will appear along with the unit icon(s), but its construction bar will not progress and above the bar it will read: "Morphing".
Hypothesis: Unit building and morphing use the same offset.
Subunit SupplyBy HercanicTest: I was curious whether turret subunits could give or take supply, and whether that supply could be of different races. I gave the Terran Goliath's turret a cost of 1 Terran supply. I gave the Terran Tank turret +1 protoss supply. I also made the Siege Mode turret take 1 protoss supply. I did that to test what happens during the tank transition.
Outcome: Failure. Turret supply does not affect TBL readout. Goliath test failed. Tank/Siege test failed. No effect.
Hypothesis: Game does not recognize supply from turrets.
Resource Depot vs Requires Creep flagsBy HercanicTest: My initial test was to see whether it was possible to combine Resource Depot and Resource Container flags in Units.dat and prevent a building from being placed nearby the same building using the "red zone" effect. My first test was on the Creep Colony. The result of this caused me to test the same effect on the Protoss Photon Cannon, Pylon, Zerg Hatchery, and Spawning Pool.
Outcome: Mixed. The Creep Colony test failed. Drones could bring resources to them, showing that Resource Depot was functioning, but there was no "red zone". I could place the Creep Colonies as close to minerals and other Creep Colonies as I wanted. The Photon Cannon test succeeded. Photon Cannons could not be placed nearby one another, even while warping. The Pylon test also succeeded. The Hatchery test succeeded, but the Spawning Pool test failed.
Hypothesis: The Creep Colony test caused me to believe that either creep generation or creep dependency caused a conflict with the Resource Depot flag. The Hatchery showed that it was not creep generation, while the Spawning Pool showed that it was in fact the Requires Creep flag. The Pylon test showed that PSI ring generation was not affected, and the Photon Cannon showed that the Requires PSI flag is also not affected. It seems weird that Requires Creep does not work, while Requires PSI does. My guess is that Requires Creep uses the same offset as Resource Depot, but Requires Creep takes precedence.
Zerg Building MorphBy HercanicTest: In STF, I wanted to give the Sentrygun the ability to upgrade through three levels. The logical choice was to use Zerg Building Morph, such as that used by the Hatchery and Creep Colony. My first test involved the Terran Missile Turret morphing into the Protoss Photon Cannon, modified to be Terran and not require PSI. My next test involved the Missile Turret morphing into the Zerg Spore Colony, modified to be Terran and not to produce creep. My third test involved the Missile Turret still morphing into the Spore Colony, but rechecking the Zerg race flag.
Outcome: Mixed. The first test failed. I suspected it had to do with missing iscript animations, so my second test was to determine that possibility. However, the second test failed as well. On the third test, it succeeded. The morphing animation used the initial Terran construction graphic.
Hypothesis: The building that is to be the result of a Building Morph appears to require the Zerg race flag. The race of the parent unit does not seem to matter, as evident by the Missile Turret, but it does draw the morphing animation from the parent.
Example: Starcraft Team Fortress v2.4.4 (Requires Starcraft: Brood War v1.14). Begin a game as Human, select an Engineer, and build a Sentrygun Lvl1. Select the Sentrygun and press the Upgrade to Sentrygun Lvl2 button.
Micro AIBy HercanicTest: Outcome: [COLOR=][/COLOR]
Hypothesis:Example: [URL=][/URL]
Rally PointsBy HercanicTest: Outcome: [COLOR=][/COLOR]
Hypothesis:Example: [URL=][/URL]
__________________________________________________________
OdditiesThey work, but not always as expected, revealing hidden connections and quirks within Starcraft's processes.Secondary Resource DepotsBy HercanicTest: In my mod STF, I set the Resource Depot flag in Units.dat on the Floating Fortress building (Science Facility). In later versions, this was changed to a Floating Fortress add-on called the Processing Plant (Physics Lab).
Outcome: Success. Workers would mine and automatically bring their load to the Processing Plant. The oddity came when all Hubs (Command Center) were destroyed. Even if you had a Processing Plant, the workers ceased mining as if there were no Resource Depots. You could manually instruct them to return their cargo, but they would not auto-mine until another Hub was created.
Hypothesis: The micro AI must not recognize anything beyond the original Resource Depots as valid when it initializes its return trip and searches for the closest Resource Depot. I would imagine the code is broken into two parts, one that checks whether the player has certain building IDs, and a second that searches for the closest building marked with the Resource Depot flag. If the player does have those building IDs, the second step is initiated, but if not it ends up ignoring those buildings marked as Resource Depots.
Example: Starcraft Team Fortress v2.4.4 (Requires Starcraft: Brood War v1.14). Start up a game as Human and build a Floating Fortress using an Engineer. Construct the Processing Plant add-on near a mineral field. Engineers will automatically bring resources to it. Now destroy your Hub. The Engineers will cease auto-mining and must be manually instructed to return to the Processing Plant every trip.
Shield Battery TrainingBy HercanicTest: In STF, a race known as the Observers could capture a severly damaged Hub and build through the Human tech tree as a result. An additional bonus of the captured Hub was a new add-on called the Leyline. I had wanted an add-on that could both produce units and cast a spell, so I made the base unit of the Leyline the Protoss Shield Battery, and enabled it to construct Enslavers (Protoss Dragoon).
Outcome: Mixed. The Enslavers constructed fine, and Recharge Shields still worked as well. The problem arose when you tried to do both at the same time. If you recharged a unit's shields while an Enslaver was building, the construction bar halted indefinately until you cancelled the unit and began again.
Hypothesis: Unit construction and recharging shields are both prolonged processes, and the two seem to conflict.
Example: Starcraft Team Fortress v2.4.4 (Requires Starcraft: Brood War v1.14). Begin a game as Observer with at least two Human AI opposed to one another. Build a Gray from the Mothership. You can either wait for one of the AI to kill the other and begin damaging their Hub, or use cheat codes to get the resources to morph the Gray into an Uber-Gray. If you wait, use the Gray to commandeer the Hub and build a Leyline. If you use cheats, use the Uber-Gray's mind control on one of the AI's Engineers and use the Mothership's Slipstream ability (Recall) to grab the Engineer quickly. (It is worthwhile to note that the use of Slipstream does not halt the construction of a Gray) Order the Engineer to construct a Hub. Once complete, damage the Hub until a Gray can commandeer it. Once you have a Commandeered Hub using either approach, build a Leyline on it. Now begin building an Enslaver and while that's working have a damaged unit attempt to recharge its shields. Then look at the Enslaver's construction bar.
Area Cloak (Arbiter) RangeBy HercanicTest: Outcome: [COLOR=][/COLOR]
Hypothesis:Example: [URL=][/URL]
Permanent Add-onsBy HercanicTest: Outcome: [COLOR=][/COLOR]
Hypothesis:Example: [URL=][/URL]
Nuclear Silo UnitsBy HercanicTest: Outcome: [COLOR=][/COLOR]
Hypothesis:Example: [URL=][/URL]
__________________________________________________________
EffectsAny limitation can become a feature with enough creativity. These quirks scream to be taken advantage of.Terran Speed-BuildingBy Hercanic and Lord_Agamemnon(MM)Test: Hercanic - Discovered by accident in STF, it was found that while the Sentrygun Lvl1 (Terran Missile Turret) upgraded (Zerg Building Morph) to a Sentrygun Lvl2 (Zerg Spore Colony), you could assign an Engineer (Terran SCV) to it.
Lord_Agamemnon(MM) - Can Protoss building warps be sped up by assigning SCVs to work on them? Actually, this was an accident, but hey, it's pretty neat.
Outcome: Success. Hercanic - Ordering an Engineer to work on an upgrading Sentrygun Lvl1 caused its upgrade speed to double. However, if the Engineer was left to work on it until completed, the Sentrygun upgraded back into a Lvl1 and you essentially lost the resources it had cost to upgrade. If you tell the Engineer to halt, the upgrading will continue on its own and it will successfully become a Sentrygun Lvl2.
Lord_Agamemnon(MM) - If a building has "Terran" selected as its race and the order to build it is "Build building (Protoss)", the building will warp in normally. However, if an SCV is assigned to work on it, the building will warp faster. If it finishes while the SCV is working on it, it will skip the warp-in animation. This only works if the building race is Terran.
Hypothesis: Hercanic - The "Terran" race flag allows an Engineer to work on a building's construction animation, while the Zerg Building Morph automates its construction. The two effects are cumulative.
Lord_Agamemnon(MM) - Terran buildings ca be constructed by SCVs, and the "build Protoss" order makes a building build itself. The effects do stack.
Example: Hercanic -
Starcraft Team Fortress v2.4.4 (Requires Starcraft: Brood War v1.14). Start a game as Human and order an Engineer to construct a Sentrygun. Once complete, upgrade the Sentrygun and watch the progress bar's speed. Now select an Engineer and right-click on the upgrading Sentrygun. Observe the speed increase with the upgrade. This does not work on the upgrade of a Sentrygun Lvl2 to a Lvl3, as both buildings are marked as Zerg.
Lord_Agamemnon(MM) -
Ex Machina. Build any building as Beta Vector, watch it start building, and then assign an SCV to it.
__________________________________________________________
LayoutFollow this for the sake of consistency.CODE
[u]Brief Name[/u]
[I]By Discoverer[/I]
[B]Test:[/B] What you where trying to achieve, and what exactly you did to set up the experiment.
[B]Outcome:[/B] [COLOR=green]Result. Red for failure (nothing worked), yellow for mixed (some aspects of your test succeeded while others did not), and green for success.[/COLOR] Follow up on what didn't work in more detail.
[b]Hypothesis:[/b] If a failure or mixed result, this is a place to write down why you think it didn't work.
[b]Example:[/b] [URL=]Link to file that shows the outcome in action[/URL] (What version of Starcraft or Starcraft: Brood War the test requires and any additional programs needed to use the example). Follow up with a description of what to do in order to see the effect.
[B]Screenshots:[/B]
[IMG][/IMG] Any screen captures of the effect in action or important subjects to note.
[u][/u]
[I]By [/I]
[B]Test:[/B]
[B]Outcome:[/B] [COLOR=][/COLOR]
[b]Hypothesis:[/b]
[b]Example:[/b] [URL=][/URL] (Requires ).
[B]Screenshots:[/B]
[IMG][/IMG]