About firetrucks.u

firetrucks.u is the super cool toolkit for use in Old Unreal's Unreal 227 mod/patch thing. It was written by ebd with the exception of the PawnEnslaver class, which was written by Enzyme. This document was authored by ebd. Any questions regarding the editor API should be sent to ebd via forum post, PM or IRC.

Huge thanks to the administrators at UnrealSP.Org for generously hosting this document. Also a big thanks for the OldUnreal crew for making an awsome unofficial patch to an awesome game

Download (Right-Click, Save As): http://ebd.unrealsp.org/firetrucks/firetrucks_1_2_0.zip

AmblerFootstepZone extends FiretrucksFootstepZone

A zone that forces the player to walk.

  • bool enabled Controls whether or not this zone is enabled. It can be triggered to be disabled.
AnimatingDecoration extends Decoration

An animating decoration that I thought mappers might find useful or fun.

  • name animationToLoop The animation to be looped. Make sure the mesh specified has the animation you desire.
Attachment extends Effects abstract

An effect class for attachments to the FiretrucksPlayer.

BaseEvent extends Triggers

For those times when you need to attach something on the fly, or when an attachment is misbehaving

  • bool forceTick Whether or not to enable tick() when triggered.
  • name childTag Optional tag of child Actor(s).
  • Actor child A direct reference to the child. Needed by tick(), but not trigger().
  • Actor parent A direct reference to the parent.
  • bool enableTick Whether or not tick() is enabled at the start.
  • editconst localized string warning "Tick() ignores childTag, must use child"
Bottle extends Decoration

A sweet decoration for the drunkard in you!

Bottle2 extends Decoration

Sometimes one bottle isn't enough;

Bottle2Inv extends FiretrucksPickup

An inventory item that resembles Bottle2

Bottle3 extends Decoration

In case hard liquor isn't your thing I modeled this one to look like wine.

Bottle3Inv extends FiretrucksPickup

An inventory item that appears like Bottle3

BottleInv extends FiretrucksPickup

An inventory item that looks like the Bottle

CameraEvent extends Triggers

When triggered, switches the player's view to a specified camera for a period of time.

  • FiretrucksCamera cameraToUse The camera to be used for the event.
  • float duration The duration of the event, in seconds. If set to 0, it will last until retriggered.
Collider extends Triggers

When triggered, can toggle collision of a specified actor.

  • name targetTag The tag of the target actor(s).
  • enum ColliderType collideType Controls whether collision is enabled, disabled, or toggled.
  • enum CollideTargetType targetType Controls how this actor acquires its targets. Using tags or prototypes is very slow and should be used sparingly. If there are ten things you want to toggle collision for, it is faster during runtime to use ten Collider actors set to TT_TARGET than it is to use one with a tag.
  • Actor collideTarget The exact target, if the targeting mode is set to use an exact target.
  • class<Actor> prototype The class of actors to toggle, if set to that mode.
CombatEvent extends Triggers

Toggles the combat UI for the FiretrucksHUD

  • enum TriggerAction onTrigger How this actor should behave when triggered
  • bool enabled Whether or not it is enabled
  • bool disableAfterUse should it disable itself after use?
Destroyer extends Triggers

When triggered, destroys the specified actor(s). It has the option to spawn an effect in its place, if you desire. Unleash your destructive side!

  • name targetTag The tag of the target actor(s).
  • enum DestroyerTargetType targetType Controls how this actor acquires its targets. Using tags or prototypes is very slow and should be used sparingly. If there are ten things you want to destroy, it is faster during runtime to use ten Destroyer actors set to TT_TARGET than it is to use one with a tag.
  • Actor destroyTarget The exact target, if the targeting mode is set to use an exact target.
  • class<Actor> prototype The class of actors to destroy, if set to that mode.
  • class<Effects> effectToSpawn If set, this effect will be spawned after destroying the target.
DialogueNode extends Triggers

The actor that started this pack. When triggered, the player enters a super dialogue mode.

  • FiretrucksCamera cameraToUse If set, switches the player's view to the specified camera for the duration of the dialgoue.
  • Actor speaker The actor who is speaking. Leave it as none if the player is speaking.
  • enum DialogueType responseType How the player will respond. RT_AUTO continues without a response. RT_CLICK waits until the player clicks to continue. RT_CHOICE allows for the player to choose a response from a list of up to five. RT_RITA_PLEASE_RESPOND is like RT_AUTO, but does not fire an event at the end, because there's no replies ;_;.
  • localized string speakerName The name of the speaker. ie: "Weedrow" or "Gretal the Ripped"
  • name speakerAnimation The name of the animation for the speaker to perform. Kind of buggy to pawns behaving badly but no good fix exists outside of reimplementing every pawn. I'm not doing that.
  • localized string prompt What is being said. example: "Takk-sempai no ecchi!"
  • localized Sound promptAudio Audio to go with the text.
  • localized float EventDelay For RT_AUTO and RT_RITA_PLEASE_RESPOND it is the time until the dialogue finishes. For RT_CLICK, is the the time until the "Click to continue!" prompt appears. For RT_CHOICE, it is the time until the choices appear.
  • name autoAndClickEvent The event triggered by this dialogue under RT_AUTO and RT_CLICK
  • localized responseChoiceStruct responses[5] The responses to the given dialogue. Each choice can have its own optionText, responseEvent, responseAudio, and responseDelay.
  • bool disableAfterUse If you can figure out what this one does you get twenty points.
  • bool enabled Whether or not this dialogue node is enabled
  • bool turnToFace Whether or not the speaker should turn to face the player.
DialogueNodeToggler extends Triggers

Enables, disables, or toggles DialogueNode actors.

  • enum actionType disablerType Whether to enable, disable, or toggle a node.
  • DialogueNode targetDialogueNode The DialogueNode to be toggled.
FSMInputDummy extends StateMachine nousercreate

For handling input to the state machine. These are created automatically during runtime and not to be placed in the map.

FSMState extends StateMachine

Actor class representing a single state within the finite state machine.

  • FSMState transitions[16] Transitions on an enumerated input. If an input is received with no listed transition it is ignored and discarded.
FiniteStateMachine extends StateMachine

If you are unfamiliar with state machines this actor will likely seem very foreign to you. Consider the chart below, which corresponds to the state machine in the example map. The machine starts in the state in the state indicated with the arrow, and the state with the inner ring is the accept state (the goal). Whenever one of four events is called, the state machine moves to a new state based on the listed transitions for its current state. In this example, if the machine is in the initial state and receives and event call of 'knife' it will transition to state 6. Note: this state machine actually pertains to the old example map and is also wrong. I'll fix it later.

A chart of the state machine in the example map

This implementation of a state machine consists of a single centralized actor (of this class), and a seperate actor of class FSMState to represent each state of the state machine. When transitioning to a new state, the event of a the new state is triggered, such that your desired final state can trigger any event that it needs to. This also allows for other states to trigger events if need be.

  • FSMState startState The starting state for this state machine.
  • name inputTags[16] When these tags are triggered, the machine will attempt to transition to another state along the corresponding number. For example, if tag 3 is triggered, it will transition to the state listed in slot 3 of the current state's transitions.
FiretruckFactory extends Keypoint

A cleaner ThingFactor/CreatureFactory that also has additional functionality. It fires its event when finishing.

  • class<Actor> prototype The class to be spawned.
  • int numToSpawn The number of things to spawn.
  • name spawnpointTag The tag of the spawnpoints.
  • float spawnInterval The time inbetween spawns.
  • bool enabled Whether or not this actor is enable.
  • bool disableAfterUse Whether or not it should disable itself after use.
  • Actor attachSpawnsTo I didn't test this feature.
FiretrucksCamera extends Pawn

Camera actor used by CameraEvent actors and DialogueNode actors. It is invisible in-game, but has a mesh in the editor you can tell which way it is pointing, even if it isn't selected.

  • float fov The camera's field of vision.
FiretrucksFootstepActor extends Keypoint

Overrides footstep sounds for players within the actor's collision radius. They are problematic if the player can touch two at once.

  • Sound Defaults[3] The default player footstep noises. If used inside a FiretrucksFootstepZone, you want these to match to zone's overriden values.
  • Sound Overrides[3] The new footstep noises to use.
  • Sound DefaultLand If used inside a FiretrucksFootstepZone, you want this to match to zone's overriden value.
  • Sound OverrideLand The new player landing noise. Leave as none to just use the default.
  • bool forceThroughTexture Forces the footsteps, even if otherwise specified by texture and/or footstep manager settings.
FiretrucksFootstepZone extends ZoneInfo

Overrides footstep sounds for players within the zone.

  • sound Defaults[3] The default player footstep noises. In most cases this should not be changed.
  • sound Overrides[3] The new footstep noises to use.
  • sound DefaultLand The default player landing noise. In most cases this should not be changed.
  • sound OverrideLand The new player landing noise. Leave as none to just use the default.
FiretrucksGame extends UnrealGameInfo

Custom firetrucks gametype. Forcing the player is very important. Extend if you want. WARNING: netplay probably doesn't work at all. I don't care about trying to get it working. If you'd like to care, have at it. I'm willing to answer questions you might have, I just don't want to spend a milluon years choking to death in Unreal Engine 1 netcode. I think it actually be cool ifit all did work, but that's how it is. I have put hundreds of hours intofiretrucks already, but you know the saying: "If you really love her you have to let her go."

FiretrucksHUD extends UnrealHUD

A new HUD class.

  • localized string clickMessage the message to be displayed when waiting for a click
  • localized string playerName The name of the player.
  • float invShowDelay Controls the behaviour of some UI elements.
  • Color accessoryColor Sets the color of some UI elements.
  • Color tertiaryColor Sets the color of some UI elements.
  • float vSizeCutoff cutoff between full size and reduced UI
  • Font smallUIFont font to use at unfairly small resolutions
  • Font fullUIFont font to use at reasonable resolutions
  • bool combatMode whether or not to EVER display combat information (health, weapons, ammo...)
  • Texture fCrosshair A special crosshair.
  • Texture cursor
  • Texture cursorFlash
  • Texture healthIndicator
  • Texture armorIndicator
  • Texture armorShieldIndicator
  • Texture ammoIndicator
  • float animationTime The time taken to complete most UI animations.
  • float charsPerSec How fast text scrolls;
FiretrucksJournalUI extends JournalUISystem

A UI for the Journal. Follows a sort of zealously OOP paradigm

FiretrucksPickup extends Pickup abstract

A class representing useable inventory items. When used outside of an ItemTrigger, they fire an event.

  • bool oneUse Whether or not the item should be consumed on use.
  • name eventOnUse The event fired when used outside of an ItemTrigger's radius.
  • class<Attachment> attachmentClass
FiretrucksPlayer extends FemaleOne

A custom player class necessary for handling a lot of input related tasks.

FlatSheet extends Decoration

A flat square deco mesh. Panel is too high poly and uh whatever.

ForcedPathNode extends PathNode

A special subclass of PathNode that can be configured to reject incoming and/or outgoing paths, as well as force pathing with NavagationPoints that match a given tag.

  • bool acceptIncomingPaths Whether or not this actor should accept incoming paths that are not forced.
  • bool acceptOutgoingPaths Whether or not this actor should accept outgoing paths that are not forced.
  • name forceTag If set, it will force binding with all NavagationPoint actors that match this tag.
HUDEvent extends Triggers

Allows mappers to change the hud at will.

  • class<HUD> hudToUse Which HUD class to use
  • bool targetEveryone whether or not this should affect everyone or not
Hider extends Triggers

Toggles the visibility of the specified actor(s).

  • name targetTag The tag of the target actor(s).
  • enum HiderType hideType Controls whether visibility is enabled, disabled, or toggled.
  • enum HideTargetType targetType Controls how this actor acquires its targets. Using tags or prototypes is very slow and should be used sparingly. If there are ten things you want to toggle visibility for, it is faster during runtime to use ten Hider actors set to TT_TARGET than it is to use one with a tag.
  • Actor hideTarget The exact target, if the targeting mode is set to use an exact target.
  • class<Actor> prototype The class of actors to toggle, if set to that mode.
  • class<Effects> effectToSpawn If set, this effect will be spawned after toggling the visibility of the target.
Identitron3000 extends Triggers

A handy class for changing the model, skin, sounds, etc of the player.

  • enum triggerNotification listenOn Controls when the changes take place.
  • bool resetAllToDefault Whether or not this Identitron3000 should reset the targets to their defaults.
  • bool targetEveryone Whether or not this Identitron3000 should affect everyone or not.
  • class<UnrealIPlayer> copyFrom class to copy from. If left blank it will use the manual settings below.
  • string playerName allows overriding the player's name in the HUD, makes a difference in dialogue I guess
  • bool copyFromPlayerConfig if true the above will be ignored and the player's preferences will be used instead.
IdentitronIdentifier extends Info nousercreate

Used by FiretrucksGame to bind PlayerPawns to actual player logins. It also stores other information and is used by Identitron3000 to access actual player configs in a hacky way.

  • string playerName The player's name
  • string options Their options string. I can't be bothered to use this now but it is smart of collect it.
  • PlayerPawn pp A reference to their player pawn.
  • class<PlayerPawn> desiredClass The player class that the poor player wanted but couldn't have.
  • Texture desiredSkin
InventoryChecker extends Triggers nousercreate

This class was deprecated in favor of the new and greater improvedInventoryChecker2. It continues to exist in its original state to allow forbackwards compatibility. Avoid using it in future endeavors!

  • class<Inventory> prototype The Inventory class to look for.
  • bool not If true, fire its event if it doesn't find the item, instead of when it does.
InventoryChecker2 extends Triggers

A full replacement of InventoryChecker. It can do more and is more intuitive to use. It checks a players inventory for a certain item and then may fire its event depending on whether or not it meets the conditions set in this actor's properties.

  • class<Inventory> prototype The class you'd liek to check for.
  • int quantity The quantity you'd like to check for. Only matters if checkType is something other than CT_YES or CT_NO.
  • enum CheckTypeEnum checkType CT_YES and CT_NO simply check if the player has (or does not have) an item. The others compare the quantity of said item to the quantity property.
InventoryModifier7 extends Triggers

A class for modifying the player's inventory. So good I didn't bother to write versions one through six.

  • editconst bool buyFromBloblet NEVER do this!
  • enum ActionType action How this inventory modifier should behave.
  • class<Inventory> prototype The class that should be spawned or destroyed.
  • int count The amount of the item to spawn or destroy.
ItemTrigger extends Triggers

Enables the use of FiretrucksPickup actors within its collision radius.

  • class<FiretrucksPickup> prototype The class of FiretrucksPickup to enable.
  • bool enabled Whther or not this actor is enabled.
  • bool onScreenNotification Whether or not an on-screen notification should be displayed indicating that the item can be used.
  • enum UsageType useType What to display if onScreenNotification==true.
  • localized string useTypeCustom If set, ignores the useType
  • localized string ItemName The human-readable name of the item. Not needed if onScreenNotification==false.
Jar extends Decoration

A decorative jar.

JarInv extends FiretrucksPickup

An inventory item that looks like a jar.

Journal extends FiretrucksPickup

Originally written for The Oll Stone. Cannabalized for Firetrucks. The Oll Stone wasn't even a dead project. It can't be helped I suppose.

  • class<JournalUISystem> UISystem What JournalUISystem to use.
  • Sound newMessageSound Specifies the sound to play on a new JournalEvent.
  • Sound oldMessageSound Specifies the sound to play on an old JournalEvent.
JournalData extends Object abstract

Internal parent class of classes used to represent journal data

JournalEvent extends Triggers

Events for the Journal. Like TranslatorEvents, but a million times better.

  • localized JournalEventEntry eventEntry The message to be displayed.
  • float reTriggerDelay A delay before this JournalEvent can be triggered again.
  • enum SuperEntryType entryType Controls how the entry is displayed by the UI.
  • JournalImageEventEntry images Allows you to set and image to be displayed with the message.
  • bool forceJournalOpen Whether or not to force the journal open when triggered.
JournalListEntry extends JournalData nousercreate

A class that represents entries into a journal. The variables are flagged aseditable for some reason even though the class is nousercreate

  • byte entryType
  • localized String entryName
  • bool indent
  • localized String entryText
  • texture image
  • byte drawStyle 1 = normal, 2 = masked, 3 = transparant, 4 = modulated
  • int height
  • int width
JournalListNode extends JournalData

Linked list for journal data. I guess theoretically if you collected likea thousand and one hundred or so list entries the game would crash.

JournalUI extends Object abstract

Parent class for Journal UI

JournalUISystem extends JournalUI abstract

lol OOP much?

  • bool useMouse
Key extends Decoration

A decorative key.

KeyInv extends FiretrucksPickup

Is this a key that goes in your inventory or a thing that goes in yourinventory that happens to look like a key?

LookTrigger extends Triggers

A trigger that only fires its event when the player is standing within its radius and looking towards the specified actor.

  • bool enabled Whether or not this actor is enabled.
  • Actor lookTarget The target actor for the player to be looking at.
  • bool lookAway If true, the trigger fires when the player is looking away from the target, rather than towards the target.
  • bool triggerOnceOnly If true, the trigger disables itself after firing once.
  • float reTriggerDelay After triggering, this is the delay before it can trigger again.
  • float precision The maximum (or minimum) angle in radians for the player's viewRotation to deviate from a direct line to the target in order for this actor to trigger.
MouseEventAssociator extends MouseTriggers

Fires its event when target is clicked on. Pretty easy really.

MouseTriggers extends Triggers abstract

Parent class for mouse related triggers. In retrospect I probably should have just merged them all into one class.

  • Actor targetActor The target actor. Can target self.
  • bool disableAfterUse Whether or not to disable after use.
  • bool enabled Whether or not this actor is enabled
  • enum TriggerAction onTrigger What happens when THIS actor is triggered
  • bool ignoreHiddenTarget If true, it will prevent interraction with targets that are hidden.
  • bool highlightTarget If true, the target becomes unlit while the mouse is over it
  • vector useOffset Allows the end-user (that's you!) to specify an offset from the target's center
  • float maxFudge How large (in uu) the target should be to click on. This is actually implemented kind of crappily...
  • enum OverrideCursorType overrideCursor Whether or not to override the cursor while mousing over
MultiCam extends FiretrucksCamera

A camera that can be triggered in a number of ways to change where it is looking. Uses a dummy class to receive multiple events.

  • name positionTags[12] Tags for the literal postions. These go from top to bottom in a clockwise fashion.
  • name lookUpTag Looking up rotates the camera up about 30 degrees
  • name lookDownTag Same, but down
  • name lookLeftTag Rotates left 90 degrees
  • name lookRightTag Rotates right 90 degrees
  • localized editconst String notice "The internal Event field resets the camera."
MultiCamDummy extends Actor nousercreate

A dummy class for receiving events and passing them on to the MultiCam.

OfficeChair extends Decoration

It is an office chair. It is used by placing your butt on it.

OverlayField extends Keypoint

Displays an overlay on the HUD for players within its radius.

  • float sphereRadius The spherical radius of this actor.
  • bool gradualDistribution Whether or not the overlay opacity should adjust based on player distance.
  • Texture overlayTexture The texture to use for the overlay.
  • float alpha How opaque the overlay is, between 0.0 (invisible) and 1.0 (fully opaque).
  • localized editconst const string SRNote "Collision is auto-set from this value."
PCAArrow extends FlatSheet

A decorative arrow intended to server as a guide for a PointAndClickEvent

PCADumper extends Triggers

Foricibly ends any PointAndClick event that might be active and has the option of teleporting the player to this location and/or adjusting player rotation.

  • bool teleportPlayer Whether or not to teleport the player
  • bool adjustPlayerRotation Whether or not to adjust the player's rotation
PCAEToggler extends Triggers

A class to toggle a PointAndClickEvent actor on or off.

  • enum actionType disablerType Whether to enable, disable, or toggle
  • PointAndClickEvent targetPCAE The PCAE to be toggled.
PCALeftTurn extends FlatSheet

A decorative arrow intended to server as a guide for a PointAndClickEvent

PCARightTurn extends FlatSheet

A decorative arrow intended to server as a guide for a PointAndClickEvent

PCAText extends Keypoint

Displays Text on the HUD during a PointAndClickEvent. Make sure to set the tag!

  • localized string text The text you want to display
PCAUTurn extends FlatSheet

A decorative arrow intended to server as a guide for a PointAndClickEvent

PFP extends Decoration

"firetrucks" is itself a stupid reference joke.

PFPInv extends FiretrucksPickup

And this is the version that goes in your inventory. I'll probably get an angry C&D letter because of this.

PawnEnslaver extends Triggers

A port of Qtit's PawnTrigger from the previous Chronicles of Weedrow event, only renamed so it doesn't conflict with UPak.

  • ScriptedPawn Pawn The pawn to be manipulated.
  • name NewOrders The new orders for the pawn.
  • name NewOrderTag The new order tag for this pawn.
  • name NewAlarmTag The new alarm tag for this pawn.
  • name NewAnimation If set, the pawn attempts to play this animation. Most of the time, anyway.
  • bool NewAnimationbLoop If true, the pawn loops the specified animation instead of simply playing it once.
PointAndClickEvent extends Triggers

I dreaded documenting this class for so long. This class allows mappers to set up point and click adventure game style sequences, but it is a little complicated to use. You need one of these, a camera, a series of MouseTriggers whose tags match the mouseEventTag field of this actor. Trigger this actor to start the event, trigger again to end. You can also use a PCADumper to end an event.

  • name mouseEventTag IMPORTANT!: The tag of all MouseTriggers and PCAText actors associated with this event
  • FiretrucksCamera cameraToUse The canera to be used
  • bool enabled Whether or not this actor is enabled
PostBeginPlayTrigger extends Triggers

A trigger that fires its event on postBeginPlay(). Very useful for things like intro cutscenes!

ReferenceTrigger extends Triggers

Have you ever been like, "Regular UE1 events are too slow! I want todirectly call trigger() on an actor without the overhead!" No? Oh well... Extra fun points because this also needs to be triggered too.

  • Actor reference the Actor to call trigger()
  • bool fireEventToo also call this Actor's event
Repositioner extends Triggers

Kind of an awesome class. Lets you change the position or rotation of anactor in a variety of ways.

  • enum RRType rotateType How to interract with the target's rotation. RRT_FACE faces the targetOfTarget
  • enum RLType locationType How to interract the targetActor's location. RRT_MATCH copies the targetOfTarget
  • Actor targetActor The target actor to reposition
  • Actor targetOfTarget Used by some modes
  • Vector literalVector used for RLT_ADD or RLT_REPLACE
  • Rotator literalRotator used for RRT_ADD or RRT_REPLACE
StateMachine extends Triggers abstract

Abstract class to keep the tree organized. See children.

SwordBack extends Attachment

Attachs a badass sword to the player's back. Awesome right? jk it detaches from the player sometimes and looks like ass.

SwordInv extends FiretrucksPickup

Actually using a sword would make the main character a mary sue. You can carry one around though.

Tankard extends Decoration

A tankard. Some people drink from them but this one is just for decoration.

TankardInv extends FiretrucksPickup

The perfect beer container for goths. It is always empty, like their soul.

TextEvent extends Triggers

Displays text on screen. Useful for conveying the main character's thoughts.

  • localized string text The text to display.
  • localized float duration How long the message should be displayed.
  • localized Sound audio An optional sound effect to be played when triggered.
ToolTipAssociator extends MouseTriggers

Displays a tooltip when mousing over the target. If you want a tooltip and a click event use one of each with the same target.

  • localized string tooltipString The tooltip you want to display.
UseEventAssociator extends Triggers

This is a relatively elegant solution to being able to "use" things within the level. When the player is within range and presses their use/activate item key, an event is called instead. The design could have come to me in a dream, exacept I was busy staying up all night listening to Green Day while disliking peace and love. If you didn't understand the reference in the previous statement do an image search for "ecstasy aka darks."

  • localized string targetName The name of the target to display when in range.
  • Actor useTarget The target actor that gets "used."
  • bool disableAfterUse If true, this actor disables itself after being used.
  • bool enabled Whether or not this actor is enabled.
  • enum TriggerAction onTrigger How this actor should behave when it gets triggered by other events (not the player's use key).
  • enum UsageType useType The text to display on screen when in range to use the object. Select from one of many fun types!
  • bool precise If true, check the player's view rotation to ensure they are actually looking at the target.
  • float precision If precise is set to true, this is the maximum angle between a direct line to the actor's center and the player's view rotation for the player to be able to trigger the UseEventAssociator. The angle is measured in radians.
  • localized string useTypeCustom If set, ignores the useType and instead uses this text. This is discouraged, however.
  • bool ignoreHiddenTarget If true, it will prevent interraction with targets that are hidden.
  • vector useOffset Allows the end-user (that's you!) to specify an offset from the target's center
  • float useDistance Controls how close the player must be in order to use the object.
  • Texture useIconCustom Texture to replace the crosshair.