User Tools

Site Tools


missiles

Introduction To Missiles

Hello, this is my first contribution to the Skill Walkthroughs that OedipusTex has spearheaded. I don't claim to know everything about making Skills in GUTS, but I'm willing to share what I've learned so far and hope it can help others. Feel free to correct anything you believe I have wrong. I don't know everything about missile skills. If there's a field or element I've left off, it's because I don't know what it does. Some minor experimentation can probably get you the information you want about them. If you do figure them out, please feel free to share the information in the comments below. I'll add your findings and credit you in this walkthrough.

If you haven't, check out OedipusTex's other Walkthroughs first. They contain some excellent introductory info that I'm not going to repeat here. Normal skills Passive skills Wand Chaos

Now, time for

Introduction to Missiles

By: Gytfunke

Warning: this is a fairly long walkthrough. If you want a simple breakdown of the steps to make a missile, you'll find it in the Checklist for making a missile skill section. Everyone else, make sure you have some noms because this could take a while.

Introduction


For missiles, we're going to look at the Outlander skill Glaive Throw. It's one of the simpler missile skills in the game, which is good, because missiles can be kinda involved. It launches a glaive that can hit a single target and bounce to hit a second target if one is within range. It applies its effects to enemies and grants the player 2% charge per enemy struck.

I. Essentials of a Missile Skill

Now let's figure out the essential elements that we need for a missile skill. First is, of course, the skill.

1.The Skill

Glaive Throw is easy enough to find. Just open up the Skills Editor and type media/skills/wanderer in the filter. Sort by Display Name and you'll find it under Glaive Throw. You might see some other skills that look related to Glaive Throw that have no display name but are titled 'Glaive Throw 1' and so forth. Only the one file, 'Glaive Throw', is used in the final version of this skill. The other files are leftovers from previous versions of the skill.


2.The Layout

Head straight to the Level data for Glaive Throw and find the layout file. It should look like this:

<STRING>FILE:media/skills/wanderer/glaivethrow/glaivethrow.layout

Click 'open layout' and change your view to the GUTS layout window.


3. The Unit Spawner

On the left-hand side of the window you'll see a few elements of the skill layout. One of them will be the Unit Spawner. This is the third essential element. The fourth is right next to it; the Timeline.

4. The Timeline

Select the timeline and open it with the toolkit icon above the elements list.


See how the Unit Spawner is included in the Timeline and has a green dot on its line? That's essential. I call that green dot essential number 4.a.

5. The Missile

Next we need to find the fifth peice of our puzzle; our missile. Select the Unit Spawner and scroll down until you see the field for Resource. It should look like: RESOURCE: GLAIVE. This is a reference for the missile's file. The missile happens to be a layout, so we can open it by clicking File, Open in the Layout window which we're already on. We're going to look for that file in the MEDIA/MISSILES folder (base files, not your mod). Thankfully, Glaive's file has practically the same name as its defined resource name; Glaive.layout. Open that.


Select the missile in the left pane and scroll down the properties in the right pane until you find MISSILE NAME. That's the name you look for when you add a missile to your layout. Your missile must have a MISSILE NAME.

Scroll back up the properties pane until you see the fields ACTIVE, DIE, HIT, etc. These are the associated particle effects that give your missile its appearance. Obviously, without these no one will ever see your missile. Great for stealth attacks, but not as pretty as you might like. Plus, you can't tell what your missile is doing if you can't see it. These particles are the sixth and final peice of our missile skill.

Okay, now lets put those steps back in the right order so you have a list you can follow to go about making your missile skill.

Checklist for Making a Missile Skill

1. Create/choose your particle effects.

2. Create/choose your missile layout.

   a. Remember to give it a unique name if you're creating a new misile!

3. Create/choose your skill layout.

   a. Add a unit spawner.

   b. Add a timeline.

   c. Your unit spawner needs to be added to the timeline and given at least 1 green point!

4. Create/choose your missile skill.

5. Add the layout to your skill.  Usually in the EVENT_TRIGGER.

Okay, that's the basic outline of missile skills. Following is a more in-depth look at the properties and items you'll encounter as you wade through the process of modifying a missile skill.

II. The Skill Globals


[SKILL]
	<STRING>NAME:Glaive Throw
	<TRANSLATE>DISPLAYNAME:Glaive Throw
	<TRANSLATE>BASE_DESCRIPTION:You hurl a throwing glaive, slicing through your target, rebounding once to strike additional foes, and generating extra |c00ff9933Charge|u.
	<TRANSLATE>TIER1_DESCRIPTION:The Glaive rebounds 2 times
	<TRANSLATE>TIER2_DESCRIPTION:The Glaive rebounds 3 times
	<TRANSLATE>TIER3_DESCRIPTION:The Glaive rebounds 4 times
	<STRING>SKILL_ICON:skillicon_throwing_glaive
	<STRING>SKILL_ICON_INACTIVE:skillicon_throwing_glaive_gray
	<STRING>ACTIVATION_TYPE:NORMAL
	<STRING>TARGET_ALIGNMENT:EVIL
	<STRING>ANIMATION:Special_Glaive_Throw
	<FLOAT>RANDOMRANGE:0
	<FLOAT>RANGE:12
	<STRING>MANA_COST_GRAPH:MANACOST_NORMAL
	<FLOAT>SPEED:1.5
	<FLOAT>FINDTARGETANGLE:30
	<FLOAT>TURNRATEOVERRIDE:-1
	<STRING>REQUIREMENT_GRAPH:SKILLTIER1
	<BOOL>CAN_BE_SILENCED:0
	<INTEGER>LEVEL_REQUIRED:0
	<BOOL>CAN_ATTACK_FALLBACK:1
	<INTEGER>MAX_INVEST_LEVEL:15
	<BOOL>CAN_LEFT_MAP:true
	<INTEGER64>UNIQUE_GUID:-7519018519606783521

Most of these entries have already been covered in the walkthrough of Elemental Boon, but I'd like to talk about a couple that are of interest in missile skills.

<STRING>SKILL_ICON

  • As an offensive ability that applies an affix to enemies, the chosen icon here will be displayed above the enemy's health bar while any applied affixes are in effect. One icon will be displayed for all the affixes currently affecting the target and the tooltip will include all their information, even if there are 50 affixes going on.

<STRING>TARGET_ALIGNMENT

  • This is a touch weird. Target_Alignment dictates what units a missile will collide with and apply effects/affixes to. However, it doesn't affect missile targeting. Honestly, I don't know how to change missile targeting to be anything but all enemies.
  • Anyways, if we change this to GOOD and go test it in game, the glaive will seek out enemies, but not hit them. If it happens to swing through one of your pets, it will show a strike animation above them. It won't actually apply the effects to your pet, though. I'm not sure why, but it doesn't seem you can affect allies with your missiles.

<STRING>TARGET_TYPE

  • Not used in Glaive Throw, but very similar to TARGET_ALIGNMENT in that it will affect which of the units that the missile crosses paths with will be hit. Still doesn't affect missile targeting, no matter how many times I set this to SELF.

<STRING>ANIMATION

  • Amazingly important to active, offensive skills. The animation you pick has to have a trigger associated with it. If it doesn't, your skill won't fire. For now, your best bet is to stick to animations that are used in skills already included in the vanilla game. Most animations that work with skills are named 'special_name_of_skill' but I've found that even some of those don't work properly.

<FLOAT>FINDTARGETANGLE

  • Again, doesn't affect the missile's targeting. What this does is affect the arc in front of your character in which you can click an enemy/location with this skill and have it fire without your character turning first.

III. Level Data

 	[LEVEL1]
		<FLOAT>RANDOMRANGE:0
		[EVENT_TRIGGER]
			<STRING>FILE:media/skills/wanderer/glaivethrow/glaivethrow.layout
			<BOOL>CAN_CLONE:0
			[AFFIXES]
				<INTEGER>AFFIXLEVEL:1
				<STRING>AFFIX:WANDERER_GLAIVE_THROW
			[/AFFIXES]
		[/EVENT_TRIGGER]
		[EVENT_UNITHIT]
			<BOOL>NOSTEALEFFECTS:0
			[EFFECTS]
				<STRING>TARGET:SELF
				[EFFECT]
					<STRING>ACTIVATION:DYNAMIC
					<STRING>DURATION:INSTANT
					<STRING>TYPE:ADD CHARGE PERCENT
					<FLOAT>MIN:2
					<FLOAT>MAX:2
				[/EFFECT]
			[/EFFECTS]
		[/EVENT_UNITHIT]
	[/LEVEL1]

[EVENT_TRIGGER]

  • The code within an EVENT_TRIGGER's brackets will fire when the skill's animation reaches the 'Hit' point on its timeline. Whoa, gobbledegook? More simply, when you click to activate this skill, your character will start an animation. That animation will have a trigger that fires the contents of EVENT_TRIGGER. This is good. It makes the skill look smooth. This is what we were talking about earlier with the <STRING>ANIMATION field in the skill globals. EVENT_TRIGGERs do not work with PROC activated skills.

<STRING>FILE

  • This is where we're going to dig to find the meat of this missile skill. We'll open it when we're done talking about the rest of the Level code.

<BOOL>CAN_CLONE

  • No idea what this does. It doesn't actually seem to be important to any of the player skills I've ever seen.

[AFFIXES]

  • Here's the code for the effects to apply to those unfortunate enough to get a glaive to the face. It applies the affix WANDERER_GLAIVE_THROW.

[EVENT_UNITHIT]

  • The code contained here will activate when and only when a unit is hit. Can be used for missiles or other active skills. The difference between this and EVENT_MISSILEHIT is that UNITHIT specifies that a targeted unit (one specified in TARGET_ALIGNMENT and TARGET_UNITTYPE) must be hit by the missile before the effects will fire. MISSILEHIT could just be the missile hitting a wall. Interestingly, pots and other breakables seem to count as units. EVENT_MISSILEDIE, on the other hand, fires if the missile reaches its maximum distance (as set in the missile, not the skill) without expiring.

[EFFECTS]

  • Here, the effects that occur when a unit is hit instantly add 2 percent charge to the target specified, which is the caster (SELF).

IV. Layout

Select EVENT_TRIGGER in the middle pane then click Open Layout just above the yellow bar on the right. Go to the layout window.


Note: Make sure 'Properties' is selected in the lower-right corner.

BEFORE WE BEGIN, go up to File and select Save then save the layout in your mod folder under the same name. We're going to mess with it a bit.

LAYOUT LINK PARTICLE

  • These are good for pretty casting fx that happen when you trigger the skill. These are usually centered on the character and show some sort of burst or flash effect. You can select the particle effect you want in the LAYOUT field in the properties window on the right.

SOUND

  • This is obvious. In properties, you'll need to select the category (usually SKILLS) and sound group.

IV. a. UNIT SPAWNER

This is where we set what missile we want to cast and how to launch them. Look at the Properties window.

ANGLE

  • will set how wide of an arc the missile will be launched from. Glaive Throw leaves this value at 0 so that the missile will spawn in front of the player and shoot straight ahead.

ANGLE OFFSET

  • sets how far from 0 the angle is centered. So, if you set ANGLE to 90 and ANGLE OFFSET to 90, you'd have a missile that fires somewhere in a 90 degree cone emanating from your right(?) side.

BOX SIZE

  • is only used for box-shaped unit spawners. Useful if you wanted to spawn multiple missiles from a rectangular area, but not what most people are typically looking for with missile skills.

ORIENTATION

  • I don't mess with this so much, but if you were to set the Z axis of FORWARD to -1 it would shoot missiles straight behind you, I would suppose.

POSITION

  • is the place, relative to your layout, where the unit spawner shape is created. Layouts are usually centered on the caster, but can be centered elsewhere. You'll notice that Glaive Throw has this set to a Y of 1.4. This should be useful in keeping your missiles from running into low-standing walls, which can be very frustrating, unless its intended like in the case of Flame Hammer.

PROPERTIES

  • are where the fun stuff lies. But realize that Unit Spawners are also used to spawn loot and mobs, so there is a bunch of junk here you won't be interested in.

DIRECTION

  • dictates what direction the missiles are fired. If set to Forward, the missile will fly forward relative to the caster's facing. Not useful for missiles we want to shoot out at an angle. Outward from Center will allow us to modify the angle of the missile's initial path and will fire from the center of the spawner's shape. Inward from Center will supposedly spawn units at the maximum radius of the shape and aim them towards the center (kinda like that annoyingly powerful ice spell cast by the shamans in the second half of Act 1). I think you can guess from the info provided what Down, Backwards and Up do.

DURATION

  • we usually want to set to 0. What it means is what the delay between the spawner's trigger and when the missiles appear.

From OedipusTex:

If the Unit Spawner summons multiple missiles, Duration actually creates a period over time over which each missile will appear. For example, if set to 2, if the missile count is say, 12, then 12 missiles will appear over 2 seconds. The Outlander skill that throws knives (can't think of the name right now) I believe uses this. The Theolentist skill Litany of Quills also use it, along with two different layouts, one that sprays from left to right, the other that sprays right to left. That is why the Theo skill Litany of Quills appears to fire back and forth, machine gun style.

PULSE RATE

  • Don't use this thinking that it's an easy way to spawn multiple missiles machine-gun style. It won't. It will %*#%&$* the *%#% out of your skill and you'll wonder what went wrong. Inexplicable strangeness will befall your skill and your tears will nourish the parasitic grass of despair. Leave this at 0. Not even Shocking Orb uses this field. Missile pulses are set in the EVENT section of your skill. Take a look at Shocking Orb for an example.

SHAPE

  • is that of the unit spawner, which defines where missiles can start their journey. I usually like Point or Angle if I want the missile to originate from the caster or his/her weapon.

RADIUS

  • sets the distance from the center on an Angle-shaped spawner.

RESOURCES GROUP

  • sets what kind of item to spawn. We want Missiles. Monsters is for summon spells.

RESOURCE

  • is the defined name of the missile that we want. In this case it's Glaive. We're going to use that to find the Missile file in just a bit.

Whew, Unit Spawners are intense. Now, on to the last asset in our layout.

IV. b. TIMELINE

This is an essential piece of our missile skill. Heck, it's essential to any active skill. Click on it and then click on the toolkit button at the top of the layout pane. You should see this:


The elements in the left pane should look familiar. They're the same ones that are in our layout. Important: EVERY layout element that you want to include in your layout NEEDS to be included in this list on the lift AND needs to have a timeline with a GREEN POINT on it in order to function. If any of these things are missing, that element will be ignored. No green point on the Unit Spawner timeline and no missile.

Now, that said, I hope you're not worried. Timelines are fun, unlike at work. You can do some nifty stuff in them. The timeline represents the schedule for the elements to happen. In Glaive Throw they all happen at once. However, here we can make TONS of interesting changes to the way our missile fires.

Just for funsies, lets modify the timeline just a bit. Right-click on your Unit Spawner's timeline in the middle and add a few points at different times.


Close the timeline window. In the Timeline properties on the right side, change the Timeline duration to 0.3. That's about a third of a second and is usually a good duration for a single-cast active skill. I don't know why Glaive Throw's is set to 5 seconds. Save your layout and open GUTS' game mode with the Wanderer. Try firing your modified skill and see what happens! If you put as many points as I did, you should see a quick succession of 4 glaives shoot now. It definitely would need some tweaking to make it look right, though.

To return the layout to normal, simply delete it from your mod folder.

Okay, moving on to more meat. Nom nom nom.

V. The Missile


The Properties of the missile are going to determine everything from the way it looks to the way it flies (or scurries across the ground).

DAMAGE

  • This whole chunk of 4 fields is largely useless. Make sure the values are all set to 0, like they are in Glaive, otherwise the missile will deal damage independent of anything called for in your skill text. Save the damage modification for your Skill and Affix files.

EDITOR_ONLY

  • Modifies the display of your missile while you watch it in the editor window.

PARTICLES

  • Here's the pretty. These files determine the look of your missile. At the very least, pick a particle for Active, Die and Hit. Active is the missile itself, Die plays when the missile reaches its maximum range and Hit plays when a missile collides with a unit or object.

POSITION

  • I'm not sure this affects the missile so much. Unclear as to what it does in-game.

AOE RAIDUS(sic)

  • Supposedly would define a hit radius that fires when the missile dies or hits. I've never used this.

APPLY FORCE AFTER X

  • Determines the delay before the missile begins accelerating.

COLLIDE WITH OBJECTS

  • If false, the missile won't collide with units, making it unable to apply affixes or damage to them. This can be useful in certain situations, especially if the missile is used purely for aesthetics or to deliver a layout in its MISSILE_DIE or MISSILE_HIT events that you don't want to be blocked by enemy units.

COLLIDE WITH WORLD

  • If false, the missile will pass through the ground and walls which is usually kinda weird.

DAMAGE SCALE/DAMAGE SOAK SCALE

  • Again, these aren't useful. Leave them at 1 and modify your skill's damage through the Skill and Affix files.

FOLLOW GROUND

  • This will make your missile act like the flames from Flame Hammer. It will roll/crawl across the ground. This means it can't be fired across gaps.

FORCE

  • Like it says in the description 'Force applied per second'. Every second, the missile will increase in speed by this amount until it reaches its maximum velocity.

FRICTION

  • Seems to work in almost the opposite fashion of FORCE, slowing the missile until it stops. Values seem to need to be between .02 and .1 for it to not immediately stop the missile. Note: when the missile stops completely it dies.

FULL VELOCITY

  • Starts the missile at its maximum velocity, which is good for most skills. Removes any need for acceleration time, but still allows for friction to slow the missile down.

GRAVITY

  • In-game, this works differently than in the editor. It will drive your missiles into the ground if they're meant to be somewhat linear. It's better if you're making a missile that falls from the sky or arches.

GROUND OFFSET

  • This is how far above the ground the missile will hover if it either tracks or follows the ground.

HOMING SPEED

  • Is how well a missile homes in on its target. Glaive Throw's .25 makes for a pleasing curse as it goes for enemies. Giving a missile a 0 will make it not home. Giving it a 1 will make it take right turns to get to its target like some cartoonish, heat-seeking missile.

MIN FORCE

  • This is important to set above 0, especially if FULL FORCE is set to false. If your missile ever hits a speed of 0 (from friction or whatever) it will die. If it starts at 0, it will never go anywhere and will be a useless puff of dust at your feet.

MAX DISTANCE

  • This is how far the missile will go before dying. This determines the range on most missile skills and is unaffected by the range set in the skill's globals.

MISSILE NAME

  • This is a key field. You must specify a name for your missile to be able to link it to a unit spawner. Give it a unique prefix, like OedipusTex suggests so that you never encounter compatibility issues.

NUM RICOCHETS

  • Glaive Throw has this set to 1, meaning that it will retarget after it hits its first target. Once it hits its second target, it dies.

PIERCING

  • This means the missile will strike targets without dying, allowing it to hit many enemies along its path. It will still collide with terrain and die.

RADIUS/RADIUS FOR UNITS

  • These are useful to differentiate sometimes. A large RADIUS can make your missile hit terrain more often. If you want it to have a wide hit radius for units but not get snagged on trees, then make these different values. -1 in RADIUS FOR UNITS will use the same value as in RADIUS.

RETARGET ANGLE/TARGETING ANGLE

  • These are important to set well. Directed missiles and ones that have a simple path can get away having a lower targeting angle, but if you create something that spawns a burst of missiles, they usually do better with a larget angle.

TARGET POSITION

  • Good for grenade-like effects, or missiles that you use to target a burst effect or other layout when they die.

TRACK GROUND

  • I assume this works similarly to FOLLOW GROUND but doesn't stick the missile to the ground, allowing it to float, but not cross gaps in terrain.

USE OWNER TARGET

  • This is mostly important for homing missiles. If this is True, the missile will do its best to reach the clicked target. If it's false it will home in on the nearest enemy within its target angle.

VERTICAL AIMING

  • Allows the missile to be sent up or down to different levels, and not just down stairs but off ramparts, cliffs and the like.

From OedipusTex

ARCH DISTANCE
This is used for missiles that travel in a vertical arch shape. Think of the spears thrown by enemies in the intro area or the grenades thrown by Fire Bomb type skills. If the Arch Distance is smaller than the Max Distance of the missile, depending on other settings relative to the ground, it is possible that it will arch, stabilize on the ground, and keep moving. If it is a negative number, the Arch Distance is based on the target location of the skill, ie you lob the grenade directly onto the targeted spot.
ARCH HEIGHT
The vertical height of the arch at its peak.
COLLIDE AFTER X
The number of seconds after which the missile becomes capable of collision. For example, if set to 1, the missile will not collide with enemies until 1 second after it is thrown. While not that practical for (most) player skills it can be an effective way to give players a fighting chance to run away during a missiles “conjuration” phase.
MAX TURN RATE
I think this is a maximum speed cap for all turns of the missile, whether random or planned.
MIN DISTANCE
The distance the missile must travel. Mainly I have seen this used with grenade-like missiles. For example if you set it to 3, the player can't lob a grenade directly at his or her feet. (I used this in the Shotgun version of the Theolentist skill Sky Prophecy to prevent the caster from shooting the exploding bullets directly overhead, for example).
RANDOMIZATION RATE
The amount of time, in seconds, between resets of the missile's path. If you use a high Randomization Rate with a high Turn Randomization, the missile will change directions frequently and generally act crazy.
RANDOM TURNS BEFORE HOMING
The missile will employ Turn Randomization until the homing timer kicks in, at which point it homes instead.
RANDOMIZE ON LAUNCH
If true, the first randomization tick happens the instant the missile is generated. If false, the first randomization tick happens after the first tick of the randomization rate. For example, if you set this to False and gave Randomization Rate a value of 2, you could make a up-to-that-point very predictable missile suddenly go insane.
TURN RANDOMIZATION
A random value to used for turning. The higher the value seemingly the faster the maximum possible rate of spinning based on a random roll. Setting this very high increases the chance that the missile will spin in a tight circle.
TURN ACCELERATION
This refers to the speed at which the missile turns in a predictable direction. If this is set to a high number, say 300, and no other values are set, the missile will spin rapidly in place. Putting a negative value here will cause the missile to spin in the opposite direction.

If a missile both has this property and Ricochet set, it will spin in place until it strikes something, then continue to spin again in a new location after the hit. If missile seeking behavior is set, it will spin in place until the [i]caster[/i] comes within range of a suitable target. For example, if a spinning missile is cast toward the edge of the screen but the caster isn't nearby the missile won't seek the target until the caster brings it into view (note however that there may be ways to change this at the skill level).

If you set both Turn Acceleration and a Force value, instead of spinning in a perfect circle, the missile will spiral outwards. The higher the Force, the further out it will spiral outward, until the missile hits its Max Velocity, at which point it will make circles again.

From what I can tell, if Turn Acceleration is employed at the same time as Turn Randomization, the value higher of the 2 wins out.

Note that missiles that seem to spin one direction and then reverse course are achieved by using 2 different Missiles, one with a positive Turn Acceleration and one with a negative. Orbit Glaive is an example.[/quote]

Lastly, test your missiles in-game. They can function very differently once they encounter all the objects and terrain you'll meet up with in TL2.

Alright, that's all there is to it! Go make me some missiles!


Continue the Walkthrough with Triggerables


missiles.txt · Last modified: 2016/02/07 01:34 by phanjam