Hard Light Productions Forums

General FreeSpace => FreeSpace Discussion => Topic started by: ShadowWolf_IH on March 05, 2003, 06:44:01 pm

Title: Fred Guild
Post by: ShadowWolf_IH on March 05, 2003, 06:44:01 pm
OK Pyro contacted me about getting up a Fred guild.  So first off, let's do the poll thing and see if interest warrants it, if you answer that you are interested, please respond in this thread as to your ideas for it.  Pyro and I will probably compile all of the things into a workable format and then get it happening.
Title: Fred Guild
Post by: Black Wolf on March 05, 2003, 07:58:13 pm
Eh? Explain what you mean, exactly?

Like a FREDders support group or summat?
Title: Fred Guild
Post by: ShadowWolf_IH on March 05, 2003, 08:14:39 pm
Something like that, also a resource place to get info on which fredders are working on which projects, that way you can mayhaps aproach one who isn't doing a whole slew of campaigns.  A listing of all of the fredders, maybe a forum if we can swing it, a place where we can ask and answer.  Things like that.
Title: Fred Guild
Post by: Anaz on March 05, 2003, 08:17:12 pm
and you can put stuff up on the minimod database so that it isn't lost forever in the storm of time! :thepimp:


(ok...I suppose I should stop p1mping the minimod database now...)
Title: Fred Guild
Post by: Knight Templar on March 05, 2003, 08:38:37 pm
Forums are already existing. I don't there's anyway you could get a Fredding forum when there's already fredzone( which is dead though..) and The Modding Forum.

As for guild.. you can Add me to the list as being able to Fred, but please add "Surly, Works for 7 Campaigns at the moment and will only take questions."
Title: Fred Guild
Post by: silverwolf on March 05, 2003, 10:00:31 pm
i'm for it kinda like a fredder yellowpages
Title: Fred Guild
Post by: Black Wolf on March 05, 2003, 10:27:51 pm
Oh, I get it. Seems kinda semi half pointless given that you'd be recruiting FREDders from HLP/VWatch anyway, and people looking from FREDders could recruit from the source as well, but as a sort of newbie help centre or whatever... sure, count me in. I've been FREDding for awhile (learned on FRED1), so I can help with most of the simpler problems, as well as a few of the more esoteric ones. Plus I'm fairly good at finding ways to make things work... - but I'd really only be able to help as a helper/educator as I'm fairly busy ATM.
Title: Fred Guild
Post by: LtNarol on March 05, 2003, 11:37:11 pm
Heh, I forsee FS2 Modding Unions around the corner.
Title: Fred Guild
Post by: karajorma on March 06, 2003, 03:28:19 am
The idea seems interesting if it's used as a way to help FREDders improve our skills. It's not just newbies who need help. The old trick of the week thread from the VBB showed us that all of us had new things we could learn.
 I can`t see it being used as a pool from which to recruit FREDders from though as most of the skilled FREDders in the community are busy on their own projects.
Title: Fred Guild
Post by: Petrarch of the VBB on March 06, 2003, 04:22:37 am
It will need a high powered name, like:

The Amalgamated Union of FREDers, Scripters, Campaigners and Other Professional Missions Editing Persons.
Title: Fred Guild
Post by: Goober5000 on March 06, 2003, 10:46:54 am
:lol:
Title: Fred Guild
Post by: diamondgeezer on March 06, 2003, 11:20:24 am
FREDders United in Campaigns, or FUC


But this is a good idea. Then, modelers and campaign designers could know they are recruiting a FREDder with some talent, if he's a guild member. Or is that only going to encourage elitism?
Title: Fred Guild
Post by: Petrarch of the VBB on March 06, 2003, 01:17:24 pm
Probably, as there's would most likely be some sort of entry exam, where you a given a real life problem, and have to solve it in FRED.

No doubt there would also be some sort of obscene initiation ritual, like the Freemasons.
Title: Fred Guild
Post by: GT-Keravnos on March 06, 2003, 02:47:02 pm
Quote
Originally posted by Petrarch of the VBB
Probably, as there's would most likely be some sort of entry exam, where you a given a real life problem, and have to solve it in FRED.

No doubt there would also be some sort of obscene initiation ritual, like the Freemasons.


Seems like I have a long way ahead of me!!!!!!

Oh, well, back to the old drawing board (NY accent!)
:nervous:
Title: Fred Guild
Post by: Lonestar on March 06, 2003, 02:58:41 pm
Quote
Originally posted by Knight Templar
Forums are already existing. I don't there's anyway you could get a Fredding forum when there's already fredzone( which is dead though..) and The Modding Forum.

As for guild.. you can Add me to the list as being able to Fred, but please add "Surly, Works for 7 Campaigns at the moment and will only take questions."


Fredzone Forums are still there, all resources are still there and website is still there. All the resources u need for fred are here:

http://ugcworld.com/fredzone

We've got it all.
Title: Fred Guild
Post by: Goober5000 on March 06, 2003, 03:31:04 pm
How did FredZone die - did people just abandon it?
Title: Fred Guild
Post by: ShadowWolf_IH on March 06, 2003, 09:48:52 pm
I am not thinking of elitist or entry exams or anything like that.  Maybe the exam things would be a good idea to ascertain fredding ability level.  That way we could see who is weaker in fred and more easily determine how best to help.  Thoughts?  I was also thinking that maybe we could come up with a way to take some of the new guys under our wings, kind of like a knight teaches a squire.  We could actually give them instruction, or at the very least we could create some tutorials, the thing i liked best about the original Fred tutorial was the fact that it didn't just explain the controls, it walked you through a sample mission, so by doing it you got a grasp of the logic used in fred.  Thew tutorial for fred2 is so much more inclusive of control elemnts though.  Perhaps finding a combination to the two would be a good thing, as would an appendice to the fred tutorial for source code stuff. Maybe even something so simple as placing practical aplication  examples in in each section of the Fred 2 tutorial would be enough.  

for a name The United Frederation of Planets
Title: Fred Guild
Post by: Black Wolf on March 06, 2003, 09:55:11 pm
Quote
Originally posted by ShadowWolf_IH
for a name The United Frederation of Planets


That's... ... ... So bad I want to laugh, but I just can't :p.
Title: Fred Guild
Post by: Cetanu on March 07, 2003, 12:28:46 am
Well, the Fredzone was ment for creating valid PXO missions, but Volition stopped validation...
Title: Fred Guild
Post by: LtNarol on March 07, 2003, 01:50:22 am
Quote
Originally posted by ShadowWolf_IH
Maybe the exam things would be a good idea to ascertain fredding ability level.
:lol:

I can see it already...

[glow=blue]
Newbie
Newbie First Class
Pitiful Apprentice
Slightly less pitiful Apprentice
Apprentice

[/glow]
Title: Fred Guild
Post by: Hippo on March 07, 2003, 02:51:49 pm
i'd be interested if it was for fs1 too... and who the hell voted "Who's Fred"
Title: Fred Guild
Post by: Knight Templar on March 07, 2003, 05:36:22 pm
:nervous:




*runs*
Title: Fred Guild
Post by: ShadowWolf_IH on March 07, 2003, 07:04:04 pm
OK we have 60% who are definately Interested, and two who may be interested, and KT isn't quite sure what this Fred thing is but he knows he likes it.  So, the next thing i guess would be to set forth some ideas and guidelines.  Maybe even figure out who would want to sit as an intiating council to get things set up for it.  Anyone  want to take control of this?
Title: Fred Guild
Post by: Knight Templar on March 07, 2003, 07:49:05 pm
I'm actually stil fuzzy on the idea..

Is this going to be a Help Circle, and Tips n Tricks circle, a "You want this mission done? Why sure!" cirlce, a "Hey, lets make an uber-fredded campaign cuz we kann!!!11" circle or a "We are Teh 1337 Fredderz of HLP. |0|-|34R US!" circle?
Title: Fred Guild
Post by: ShadowWolf_IH on March 07, 2003, 07:58:17 pm
OK here's what we, me and LT were thinking about.  The first mission oif the guild would be the training of new fredders.  While there is an abundance of fredders, there are only a handful of good fredders.  So we go ahead and set up a basic curriculum, we also include a series of tests, and levels that will tell the world what your basic Fredding Ability Level is.  We try to get an internal forum with different levels, so that we don't get someone new hearing our tricks for 9th level fredding, and attempting them when they have no idea what to do at level 3.  

We also use a tips and tricks thread to help us all learn.  basically it gives alot of people a better grasp of fred ( I still haven't figured out how to use a variable)  and the more people who have a better grasp of fred, the faster we can get missions done...which means....the faster we can get mods done.  

Fredding level increases will also increase forum level access.  and anyone who is cretified at a certain level will then be asked to teach someone level 1 stuff.  or to create a tutorial for it.

Before we can actually get all of this going though, we need a staff.  Basically we were thinking 3-5 people to get things organized.  and then a chairperson to act as overall admin of the project will be elected from within this advisory council.  

I nominate LTNarol to the council.
Title: Fred Guild
Post by: Knight Templar on March 07, 2003, 08:12:29 pm
Well I suppose I'd like to help if possible. I need to get a ton of work out of the way though before I can try to contribute to any tuts or serious helping, but this would have its merits and could seriously habilitate the FS community.


The Level thing sounds kinda funky, like your trying tp add too much insentive and comming off as corny... meh.

Get me on ICQ later tonight if you can.
Title: Fred Guild
Post by: Lonestar on March 07, 2003, 08:53:43 pm
Well since FZ was abandoned by Volition, id be willing to dedicate over 200MB of webspace, some MySQL and DSN stuff, domain and more if required.

email me: [email protected] if interested.
Title: Fred Guild
Post by: LtNarol on March 07, 2003, 09:31:09 pm
The idea wasn't rigid structure, but credibility of the "Guild".  We'll probably keep an updated list of people who have gone through all the proposed "levels", although I seriously doubt there'd be more than 3 or 4.  (Avatars would work as well, but that'd be a pain in the arse for the admins)

I say credibility of the "Guild" because without some form of testing and such, we have no way of ensuring that those on the "list" are actually capable of doing what they claim.  Anyone on our list of fredders would be more than capable of taking any reasonable fredding assignment and completing it in a timely manner, thus anyone looking for fredders for a campaign would know they're getting people who know what they're doing.  Having to learn the basics (or test out of the "lessons") is a way to encourage people to take the tests and or "lessons" seriously; its not meant to be an impediment for those aspiring to learn, only a way to ensure linear progress.

We also decided that we don't want one person teaching the same thing over and over again, that gets boring for the teacher and pretty soon dull for the learners.  We plan to rotate our instructors on different "lessons".  As far as structure for administration goes, we'd probably have a few people supervising overall and playing truck dispatcher for the instructors while the instructors themselves choose their own methods of teaching.

Obviously, this is all very rough and in development; keep in mind that what we want isn't a rigid heirarchy to feed our own ego but that we only want to ensure a steady supply of well trained people which others know they can count on.  We _are_ looking for instructors, preferably people who have dealt with large scale projects before and have the time to spare for the foreseeable future.
Title: Fred Guild
Post by: Goober5000 on March 07, 2003, 09:39:14 pm
Mm.  I'd rather not have an exclusive system.  I consider myself a good FREDder, but I wouldn't want to be denied access to the expert tricks if I'm not an expert; that smacks of elitism.  Any tips and tricks posted should be visible to everyone.
Title: Fred Guild
Post by: silverwolf on March 07, 2003, 09:50:27 pm
i nominate ....ME! j/k i'm no where near that level but i'm slowly learning courtousy of shadow. but if i could nominate some one it would be any of aldo's fredders
Title: Fred Guild
Post by: LtNarol on March 07, 2003, 10:01:34 pm
Quote
Originally posted by Goober5000
Mm.  I'd rather not have an exclusive system.  I consider myself a good FREDder, but I wouldn't want to be denied access to the expert tricks if I'm not an expert; that smacks of elitism.  Any tips and tricks posted should be visible to everyone.
Well, this is where our developing idea for the main test comes in, someone who thinks they're ready just takes the test (build a mission inside a given period of time and document enough of the design process to prove that you built the thing) and if they do well, let them have at it.  What we want to prevent is flamewars over some kid asking for help while trying to create a mission dependent on a complex chain of events without knowing how to do directive text.  What we want to provide in addition to more well experienced fredders is a list of fredders which project leaders can look through when they need missions done.
Title: Fred Guild
Post by: ShadowWolf_IH on March 07, 2003, 10:02:17 pm
i agree goober, the thing we want to avoid here is eltism.  None of us are elite, none of us have any power here to do anything.  This is a hobby, worse yet it revolves around a game.  The thing we don't want is to drive wedges further into HLP.

On the other hand we don't want someone who knows 2 + 2 to get confused because he is trying to do calculus.  We are more trying to pace a learning environment than to keep anyone out.  We will also be having the trick of the week.

The thing is, it'll be kinda like geometry, each lesson builds on the previous, if you try to skip too many, you will be lost.  That would be counterproductive.  I admit it isn't perfect, but right now it's the best we have come up with.
Title: Fred Guild
Post by: Sesquipedalian on March 08, 2003, 05:34:09 am
The resurrection of FredZone would be a magnificent development for the FS community!

May I suggest that different "tests" be given for different aspects of mission creation, if you are going to go ahead with this, gentlemen.  Sexp scripting (i.e. how complex a set of conditions can the fredder meet successfully), play balance (i.e. too easy/too hard/just right, and responsiveness to player's actions), spatial layout (i.e. whether the fredder fully exploits the 3D environment, waypoints are used effectively, etc.), timing of events (i.e. no boring pauses or overlapping bursts of action that shouldn't), plot development (surprises and twists are always good), background design, etc., should all be considered.
Title: Fred Guild
Post by: Sesquipedalian on March 08, 2003, 06:31:29 am
By way of example, here's one for testing higher level Sexp scripting, so as to offer an example of what I think tests could look like for this part:

Situation:  Alpha's objective is to disable four enemy bombers (out of a possible total of eight in two wings) so they can be captured.  Aries wing will hopefully jump in soon, at which time Alpha will begin the process of disabling them.  If any of Aries are destroyed, Taurus will also jump in.  Only one support ship, designation Kidnapper, is available to do the capturing once the bombers are disabled, so it will have to jump in and out several times in the course of the mission.  When four bombers have been disabled and then captured (i.e. when Kidnapper has docked with them and then jumped out while docked), Alpha is free to return to base.  If Kidnapper should be destroyed, the mission is a failure.

Requirements: Two directives are to be given to the player, one stating that he must disable four bombers and indicating how many remain to be disabled via a counter, and the other ordering him to oversee the capture of the four bombers once they have been disabled.  Once four bombers have been captured, no more are to be, whether disabled or not.  Furthermore, since Kidnapper is supposed to be one ship, at no time will it be acceptable to have two Kidnappers present at the same time in the mission, and if one copy of Kidnapper is destroyed no more are permitted to arrive.

Prerequisites:  This assignment assumes knowledge of how to simulate the departure and re-entry of the "same" ship, mastery of variables, chaining and repeat counts, and familiarity with the use of "counting token ships."

Notes and Hints:  Chains and variables are your friends; you'll be using them a lot, so get well acquainted.  Remember that neither variables nor is-disabled-delay sexps produce properly working counters in the HUD directive list, so alternative means will be necessary to make that happen nicely.  As a freebie hint, note that creating events to dynamically reprioritise docking goals is more work and wastes more sexp nodes than simply assigning a copy of Kidnapper to each bomber.  Turning the enemy fighters' IFF to friendly after they are disabled will prevent them from being blown up two minutes after disabling.  

Par: 39 events, 11 variables, 4 counting token ships.



Of course, testing for other aspects, like plot and background, would require a different sort of evaluation, being more like marking an essay than a math problem, but still, this gives an example of how I think some of the examinations could be carried out.

Anyway, that's enough procrastination for this evening.  Back to work for me!
Title: Fred Guild
Post by: karajorma on March 08, 2003, 10:09:46 am
Quote
Originally posted by Sesquipedalian
A long mission discription involving disabling ships


Not that great a choice of an example. This mission is actually much harder than you probably realised.
  Disabling is very hard to do as FS2 has a habit of self-destructing disabled fighters after somewhere between 30 seconds and 2 minutes :D
I'd guess that [V] decided on this option to solve problems with mission design. Quite often mission designers make certain events dependant on a wing being destroyed. If the player disables just one of the ships and tells everyone to ignore it he can prevent that event from occuring (which can be very useful if it prevents new enemy wings showing up etc).

Since you`re only allowed one Kidnapper ship at a time the player would fail the mission unless something was done to prevent the enemy ships blowing up. Even worse you couldn`t check if Alpha 1 did destroy them using num_kills or some such because when FS2 does blow up a disabled fighter it gives the kill to the player who disabled them.

There is a way around that problem but that makes the mission MUCH harder to implement :D

Reminds me I should post this to the SCP and see if I can get this problem fixed.
Title: Fred Guild
Post by: LtNarol on March 08, 2003, 10:17:37 am
Our system of tests will probably be set up so that there is one at the end of every level, for 1-3, people will be graded harder but graded only on the aspects which are taught in the level corresponding to the test.  The idea is to insure that one knows the things taught in that level before they move on.

For example, the end of level test for level 1 will probably be something to the effect of this:

Start Alpha wing 750 meters from hostile transport Omega, use Alpha 1 for distance reference.  Upon disabling Omega, jump in transport Lambda at 450 meters from transport Omega.  Dock Lambda to Omega.  Warp in Cancer wing (Myrmidons) as hostiles at no more than 1500 meters from transports (which should be stationary).  Respawn Cancer wing 4 times.  Both transports should be on the escort list.

A practice for the cumulative test at the end will probably be given in level 4 along with the level 4 test, and level 5 is mostly a review with a few last pointers on events before the real cumulative test at the end of 5.  The cumulative test is really the qualification test, it'd require the building of a more complex mission although it'd be graded harder.  The test must be completed within 7 days and the entire design process needs to be documented showing that the person taking the test actually did figure out how to build it.  This will also probably be the test used for people to test out of the lessons.
Title: Fred Guild
Post by: Hippo on March 08, 2003, 11:14:43 am
I'd be happy to work on FRED 1 teaching, because fs2 doesn't like my computer...

The only reason i bring up fs1 is that FRED tactics are slightly different, ex: capital ships take a pounding before they die, so you can't put in 5 destroyers and expect them to fight eachother quickly, because you have to watch little green blobs go from one thing to another, not a big long bright fast beam...
Title: Fred Guild
Post by: Black Wolf on March 08, 2003, 12:23:23 pm
Whoa, whoa.

You're overthinking the hell out of this idea.

Tests? Levels of ability? Do you honestly believe anyone will sit through all that? Do you truly think you will have the motivation to evaluate all these test submissions?

You're making this far more complex than what it needs to be.

This is what you need.

 - A well known and advertised Place (forum)

 - A Group of good FREDders who're willing to answer questions

 - An archive of tutorials, ideas, FREDding tips and strategys and sample missions created by the above group.

That's it. Any more of this initiation and level based rubbish will simply promote elitism and level based politics, which should be avoided at all costs.

If you want to maintain the mission test system, then change it into a set of scenarios for a FREDder to go through, entirely voluntarily, and working sort of like a set of chess problems.. The aims should be to broaden the FREDders ability range and demonstrate the power of the program, not to decide who can and can't join the club based on a set of mission guidelines.
Title: Fred Guild
Post by: LtNarol on March 08, 2003, 12:51:25 pm
Ah, and what happens when you get beam-free-all questions every week?  It'll turn into another vBB.
Title: Fred Guild
Post by: Sesquipedalian on March 08, 2003, 01:02:15 pm
Quote
Originally posted by karajorma


Not that great a choice of an example. This mission is actually much harder than you probably realised.
Oh no, I realise it.  I've done it.  I didn't pull those par numbers out of thin air. "Higher-level test" remember? :devil:
Quote
Disabling is very hard to do as FS2 has a habit of self-destructing disabled fighters after somewhere between 30 seconds and 2 minutes :D
...
There is a way around that problem but that makes the mission MUCH harder to implement :D
Not when they are Friendy.  Change-iff is all one needs to fix that.  I suppose I should add that to the list of hints.
Title: Fred Guild
Post by: Goober5000 on March 08, 2003, 02:29:40 pm
Agree with BlackWolf.  Especially with the voluntary mission tests.  Self-challenges, but not initiation rituals.

LtNarol: We should have a sticky thread telling how to beam-free-all, and if someone posts a thread it'll be deleted. :)
Title: Fred Guild
Post by: karajorma on March 08, 2003, 02:36:39 pm
For this mission Change-iff would be fine. I`ve posted the reasons against it in general on the SCP forum.
 But if you don`t know that disabled enemy fighters blow up it is a little nasty bug that would catch the unwary out. :D
Title: Fred Guild
Post by: ShadowWolf_IH on March 08, 2003, 10:11:14 pm
No one said anything about Elitist, and no one said anything about joining a club.  If I have my way, ALL Fredders will be welcome.  Not just the ones who can teach.  As far as it goes, the tests are really only for one thing........quality assurance.  It isn't an entry exam into anything.  It just lets the instructors know what areas an individual needs help with.  There will be no flaming of individuals, there can't be a political agenda, because there are no politics.  Flat out it is simply a place to learn fredding at basically whatever Pace you can manage.  The only reason for the testing at all is to make sure that a would be fredder knows what he is doing.  Less headache for the mod leader, alot less headache for the fredder.  I'll tell ya when fred starts giving me a headache i put him away.

And no one has to sit through everything, you can elect to test out, or not to be involved and learn fredding by watching the forum.  The thing is, no matter what happens, we will be there.  The staff will be ready to teach, and ready to learn.  Or simply ready to send out another tip/trick thread.  

Oh and as far as it goes, to ensure that we stay in a non elite mindset, if my student isn't learning, it's my fault.  I will be responsible and accountable, as will my instructor who teaches me if I am not progressing.

The first step in all of this is the creation of the Books.  We have split (generalized splitting) fred into topics which will build on each other.  These will also be divided into smaller more manageable lessons.  So as not to overwhelm the person learning.

Something else we are doing is setting up a demo mission text for fred2.  Hippo can tell you that while fred 2 is more comprehensive, Fred 1  walks you step by step through building a sample mission.  It helps to see the practical aplication of things that the tutorials talk about.
Title: Fred Guild
Post by: karajorma on March 09, 2003, 06:20:25 am
I meant to say this before but I forgot. If you get this thing set up you are welcome to use any parts of the FRED and VPView sections of my FAQ in any way you see fit.
Title: Fred Guild
Post by: Hippo on March 12, 2003, 02:27:50 pm
Quote
Originally posted by LtNarol
Ah, and what happens when you get beam-free-all questions every week?  It'll turn into another vBB.


noooooooooooooooooooooo.............
Title: Fred Guild
Post by: ShadowWolf_IH on March 19, 2003, 09:42:24 am
ok, i have returned from the painful episode known as "Vacation", with nothing but fun stories and a twisted knee, but it's time to get back to work.  So..........let's start correlating the list.  What do you want for the Guild.  Don't put what you don't want, and don't respond to what someone else wants.  The big question is, what do you want?

[edit]  also, when you do this, please list whether or not you would be willing to help in the creation of this, as well as what you role (if any) you would be willing to take in the creation/operation of it. [end edit]
Title: Fred Guild
Post by: Petrarch of the VBB on March 19, 2003, 12:58:06 pm
Well, what do you mean, "What do we want". We don't know what we want as we are not sure what the guild will be. We are not sure what the guild will be because we do not know what we want.

Quote
I know who I am and I know who you are. You obviously don't know who I am. Are you sure you know who you are?
Title: Fred Guild
Post by: Hippo on March 19, 2003, 03:03:21 pm
What I would like:
Seperate sections for FRED2 and FRED1 (or at least different challenges)

What I will do:
Teach/Help for FRED1 (mabey FRED2)
Test missions
Provide on the spot help
(If we need a new forum)Moderate
Title: Fred Guild
Post by: silverwolf on March 19, 2003, 06:02:59 pm
once I'm done learning fred2 i will be able to help and can test missions and moderate a forum but i'm not trying to step on hippo's toes so only if you need a replacement mod
Title: Fred Guild
Post by: ShadowWolf_IH on March 19, 2003, 10:23:42 pm
right now we are in the planning stage of the guild, we know it will be an educational place for fredders of all levels.  What i want to know is, with that being a given, what do you want to see in it, how you would set it up, etc etc.
Title: Fred Guild
Post by: silverwolf on March 20, 2003, 08:00:22 am
I'd like to see say a mission archive made from the members for reference for beginners maybe a fred Q&A that way we won't get beam-free all questions everyday. Maybe if we could muster enough space and resources a chatroom so people could be helped in realtime.

thats some of my ideas about it
Title: Fred Guild
Post by: Hippo on March 20, 2003, 02:04:21 pm
beam-free-all... now i remember why i like FRED1 better...:wink:
Title: Fred Guild
Post by: pyro-manic on March 20, 2003, 05:01:06 pm
Er, damn.

I must have completely missed this when it started - sorry!

Anyway, what I would like:

We wouldn't necessarily need a forum (though it'd be nice). You could just have a website with this sort of stuff:

Basic Q&A/FAQ page, with how to do all the "beam-free-all" type stuff.

Advanced Techniques: How to do the tricky stuff - ships leaving and re-entering, counters, variables, etc.

A section on briefings: a suggested structure for briefings and debriefs, so that they are always clear and easy to understand, and actually work properly.

A section on backgrounds: How to do good backgrounds. I've lost count of the number of missions I've played where the background consists of one white star and a lot of black...

A tutorial section, with walkthroughs and guides on how to do different types of mission (escort, attack, defence, escape, etc)

That's all for now!
:)
Title: Fred Guild
Post by: Hippo on March 20, 2003, 05:04:53 pm
but if its a webpage there is less availability for a one on one walkthrough on almost any topic. with a message board, they would have to post the problem and then wait a while for a tip that might not be what the needed. A forum sort of allows multiple people to be working someone through a situation step by step, within minutes of eachother.
Title: Fred Guild
Post by: ShadowWolf_IH on March 20, 2003, 10:21:13 pm
or maybe a realtime chat room would be useful here.  I can build one for us in a matter of 2 minutes.  Link it to the guild web site, and bingo, you have a classroom.  It may also help for teaching purposes.  If we get enough people interested in fredding we can actually start a lesson schedule.
Title: Fred Guild
Post by: diamondgeezer on March 20, 2003, 11:53:09 pm
REALTIME CHAT WOULD BE A1 SUPAR :nod::nod::nod:

Go for it my pedigree chum, I know I'd use it
Title: Fred Guild
Post by: silverwolf on March 21, 2003, 08:05:55 am
yah the thing about the chat classes sound good like at 5:00 p.m silverwolf  on and on to how many people are in the class
instructor:hippo
class: FRED1
Title: Fred Guild
Post by: silverwolf on March 23, 2003, 10:17:11 pm
just want to make sure it doesn't go into the void of old stuff                maybe we should get it stickied
Title: Fred Guild
Post by: Hippo on March 24, 2003, 01:59:45 pm
you talking about this thread being stikiyized?

To prevent repeats, you could make each subject into a thread, or page, clearly lbled as the subject...
Title: Fred Guild
Post by: silverwolf on March 24, 2003, 11:26:53 pm
errm wouldn't stikitizing it just work better either that or i don't get what your saying
Title: Fred Guild
Post by: ShadowWolf_IH on March 26, 2003, 12:44:49 am
I think that you are both asking admion to sticky this thread.
Title: Fred Guild
Post by: silverwolf on March 26, 2003, 09:17:57 am
i know i am i don't know if he is

but we have to figure out what to do or if we are even going to create it
Title: Fred Guild
Post by: ShadowWolf_IH on April 13, 2003, 09:49:25 am
ok, i would think that we are ready to start serious work on this now, basically i need someone with a good understanding of fred to write down each sexp in the editor, and what it is used for, so that we can have a reference section of sexp's.  This would be constantly updated as the Source Code changes.

Also, if anyone would care to build a small sample mission with a tutorial as to each and every step they took, basically, the fredding tutorial as it stands is a wealth of knowledge, but it doesn't show you how it all comes together, that's what i want.  I step by step mission tutorial.
Title: Fred Guild
Post by: Black Wolf on April 13, 2003, 10:24:10 am
Never Mind. (Edited Reply)
Title: Fred Guild
Post by: Galemp on April 13, 2003, 02:59:29 pm
Quote
Originally posted by ShadowWolf_IH
ok, i would think that we are ready to start serious work on this now, basically i need someone with a good understanding of fred to write down each sexp in the editor, and what it is used for, so that we can have a reference section of sexp's.  This would be constantly updated as the Source Code changes.

Pardon me if I'm wrong, but, isn't there a box at the bottom of the events editor that tells you exactly what the selected SEXP does, and what arguments it takes? What would be the point of writing them all down, when they're readily avaliable whilst making the events themselves? And don't the new FRED_Open sexps tell you how they work as well?

Quote
Also, if anyone would care to build a small sample mission with a tutorial as to each and every step they took, basically, the fredding tutorial as it stands is a wealth of knowledge, but it doesn't show you how it all comes together, that's what i want.  I step by step mission tutorial. [/B]

Again, that's what the FRED tutorial is. If you play through the mission you're building at each stage of development, you can see what effect each change has.

I don't get it. :confused: Everything you're asking for is already implemented, and to duplicate it would require massive amounts of time for something that would probably be inferior to V's own. Leave us free to concentrate on more important things.
Title: Fred Guild
Post by: ShadowWolf_IH on April 13, 2003, 10:42:09 pm
what you are talking about is the help window at the bottom of the editor.  I agree and i find this to be an invaluable tool.  I would like to point out however that it works only once something is put into the sexp.  what i am talking about is a reference guide which explains things so that you don't have to input in order to receive help.  

As far as being left alone to concentrate on more important things.......no one is twisting arms.
Title: Fred Guild
Post by: Sesquipedalian on April 14, 2003, 03:59:44 am
Quote
Originally posted by ShadowWolf_IH
a reference guide


Heh.  Here you go: [code]{ OP_PLUS, "Plus (Arithmetic operator)\r\n"
      "\tAdds numbers and returns results.\r\n\r\n"
      "Returns a number.  Takes 2 or more numeric arguments." },

   { OP_MINUS, "Minus (Arithmetic operator)\r\n"
      "\tSubtracts numbers and returns results.\r\n\r\n"
      "Returns a number.  Takes 2 or more numeric arguments." },

   { OP_MOD, "Mod (Arithmetic operator)\r\n"
      "\tDivides numbers and returns the remainer.\r\n\r\n"
      "Returns a number.  Takes 2 or more numeric arguments." },

   { OP_MUL, "Multiply (Arithmetic operator)\r\n"
      "\tMultiplies numbers and returns results.\r\n\r\n"
      "Returns a number.  Takes 2 or more numeric arguments." },

   { OP_DIV, "Divide (Arithmetic operator)\r\n"
      "\tDivides numbers and returns results.\r\n\r\n"
      "Returns a number.  Takes 2 or more numeric arguments." },

   { OP_RAND, "Random number (Arithmetic operator)\r\n"
      "\tGets a random number and returns result.\r\n\r\n"
      "Returns a number.  Takes 2 numeric arguments...\r\n"
      "\t1:\tLow range of random number.\r\n"
      "\t2:\tHigh range of random number." },

   // Goober5000
   { OP_GET_OBJECT_X, "get-object-x\r\n"
      "\tReturns the X position of a ship, wing, waypoint, or ship subsystem.  "
      "Takes 1 or 2 arguments...\r\n"
      "\t1: The name of a ship, wing, or waypoint.\r\n"
      "\t2: A ship subsystem (optional; ignored if the first argument is not a ship)." },

   // Goober5000
   { OP_GET_OBJECT_Y, "get-object-y\r\n"
      "\tReturns the Y position of a ship, wing, waypoint, or ship subsystem.  "
      "Takes 1 or 2 arguments...\r\n"
      "\t1: The name of a ship.\r\n"
      "\t2: A ship subsystem (optional; ignored if the first argument is not a ship)." },

   // Goober5000
   { OP_GET_OBJECT_Z, "get-object-z\r\n"
      "\tReturns the Z position of a ship, wing, waypoint, or ship subsystem.  "
      "Takes 1 or 2 arguments...\r\n"
      "\t1: The name of a ship.\r\n"
      "\t2: A ship subsystem (optional; ignored if the first argument is not a ship)." },

   // Goober5000
   { OP_GET_OBJECT_RELATIVE_X, "get-object-relative-x\r\n"
      "\tReturns the absolute X coordinate of a set of coordinates relative to a particular object.  "
      "In other words, the input coordinates are the coordinates relative to the object's position and orientation.  "
      "The coordinate returned is the absolute spatial coordinate.  Takes 4 or 5 arguments...\r\n"
      "\t1: The name of a ship, wing, or waypoint.\r\n"
      "\t2: The relative X coordinate.\r\n"
      "\t3: The relative Y coordinate.\r\n"
      "\t4: The relative Z coordinate.\r\n"
      "\t5: The name of a ship subsystem (optional)." },

   // Goober5000
   { OP_GET_OBJECT_RELATIVE_Y, "get-object-relative-y\r\n"
      "\tReturns the absolute Y coordinate of a set of coordinates relative to a particular object.  "
      "In other words, the input coordinates are the coordinates relative to the object's position and orientation.  "
      "The coordinate returned is the absolute spatial coordinate.  Takes 4 or 5 arguments...\r\n"
      "\t1: The name of a ship, wing, or waypoint.\r\n"
      "\t2: The relative X coordinate.\r\n"
      "\t3: The relative Y coordinate.\r\n"
      "\t4: The relative Z coordinate.\r\n"
      "\t5: The name of a ship subsystem (optional)." },

   // Goober5000
   { OP_GET_OBJECT_RELATIVE_Z, "get-object-relative-z\r\n"
      "\tReturns the absolute Z coordinate of a set of coordinates relative to a particular object.  "
      "In other words, the input coordinates are the coordinates relative to the object's position and orientation.  "
      "The coordinate returned is the absolute spatial coordinate.  Takes 4 or 5 arguments...\r\n"
      "\t1: The name of a ship, wing, or waypoint.\r\n"
      "\t2: The relative X coordinate.\r\n"
      "\t3: The relative Y coordinate.\r\n"
      "\t4: The relative Z coordinate.\r\n"
      "\t5: The name of a ship subsystem (optional)." },

   // Goober5000
   { OP_SET_SHIP_POSITION, "set-ship-position\r\n"
      "\tInstantaneously sets a ship's spatial coordinates."
      "Takes 4 arguments...\r\n"
      "\t1: The name of a ship.\r\n"
      "\t2: The desired new X coordinate.\r\n"
      "\t3: The desired new Y coordinate.\r\n"
      "\t4: The desired new Z coordinate." },

   { OP_TRUE, "True (Boolean operator)\r\n"
      "\tA true boolean state\r\n\r\n"
      "Returns a boolean value." },

   { OP_FALSE, "False (Boolean operator)\r\n"
      "\tA false boolean state\r\n\r\n"
      "Returns a boolean value." },

   { OP_AND, "And (Boolean operator)\r\n"
      "\tAnd is true if all of its arguments are true.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more boolean arguments." },

   { OP_OR, "Or (Boolean operator)\r\n"
      "\tOr is true if any of its arguments are true.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more boolean arguments." },

   { OP_EQUALS, "Equals (Boolean operator)\r\n"
      "\tIs true if all of its arguments are equal.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more numeric arguments." },

   { OP_GREATER_THAN, "Greater than (Boolean operator)\r\n"
      "\tTrue if first argument is greater than the second argument.\r\n\r\n"
      "Returns a boolean value.  Takes 2 numeric arguments." },

   { OP_LESS_THAN, "Less than (Boolean operator)\r\n"
      "\tTrue if first argument is less than the second argument.\r\n\r\n"
      "Returns a boolean value.  Takes 2 numeric arguments." },

   // Goober5000 - added wing capability
   { OP_IS_IFF, "Is IFF (Boolean operator)\r\n"
      "\tTrue if ship(s) or wing(s) are all of the specified team.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tTeam (\"friendly\", \"hostile\", \"neutral\", or \"unknown\").\r\n"
      "\tRest:\tName of ship or wing to check." },

   // Goober5000
   { OP_IS_AI_CLASS, "Is AI Class (Boolean operator)\r\n"
      "\tTrue if ship or ship subsystem(s) is/are all of the specified AI class.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tAI class (\"None\", \"Coward\", \"Lieutenant\", etc.)\r\n"
      "\t2:\tName of ship to check.\r\n"
      "\tRest:\tName of ship subsystem(s) to check (optional)" },

   { OP_HAS_TIME_ELAPSED, "Has time elapsed (Boolean operator)\r\n"
      "\tBecomes true when the specified amount of time has elapsed (Mission time "
      "becomes greater than the specified time).\r\n"
      "Returns a boolean value.  Takes 1 numeric argument...\r\n"
      "\t1:\tThe amount of time in seconds." },

   { OP_NOT, "Not (Boolean operator)\r\n"
      "\tReturns opposite boolean value of argument (True becomes false, and "
      "false becomes true).\r\n\r\n"
      "Returns a boolean value.  Takes 1 boolean argument." },

   { OP_PREVIOUS_GOAL_TRUE, "Previous Mission Goal True (Boolean operator)\r\n"
      "\tReturns true if the specified goal in the specified mission is true "
      "(or succeeded).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the mission.\r\n"
      "\t2:\tName of the goal in the mission.\r\n"
      "\t3:\t(Optional) True/False which signifies what this sexpession should return when "
      "this mission is played as a single mission." },

   { OP_PREVIOUS_GOAL_FALSE, "Previous Mission Goal False (Boolean operator)\r\n"
      "\tReturns true if the specified goal in the specified mission "
      "is false (or failed).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the mission.\r\n"
      "\t2:\tName of the goal in the mission.\r\n"
      "\t3:\t(Optional) True/False which signifies what this sexpession should return when "
      "this mission is played as a single mission." },

   { OP_PREVIOUS_GOAL_INCOMPLETE, "Previous Mission Goal Incomplete (Boolean operator)\r\n"
      "\tReturns true if the specified goal in the specified mission "
      "is incomplete (not true or false).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the mission.\r\n"
      "\t2:\tName of the goal in the mission.\r\n"
      "\t3:\t(Optional) True/False which signifies what this sexpession should return when "
      "this mission is played as a single mission." },

   { OP_PREVIOUS_EVENT_TRUE, "Previous Mission Event True (Boolean operator)\r\n"
      "\tReturns true if the specified event in the specified mission is true "
      "(or succeeded).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the mission.\r\n"
      "\t2:\tName of the event in the mission.\r\n"
      "\t3:\t(Optional) True/False which signifies what this sexpession should return when "
      "this mission is played as a single mission." },

   { OP_PREVIOUS_EVENT_FALSE, "Previous Mission Event False (Boolean operator)\r\n"
      "\tReturns true if the specified event in the specified mission "
      "is false (or failed).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the mission.\r\n"
      "\t2:\tName of the event in the mission.\r\n"
      "\t3:\t(Optional) True/False which signifies what this sexpession should return when "
      "this mission is played as a single mission." },

   { OP_PREVIOUS_EVENT_INCOMPLETE, "Previous Mission Event Incomplete (Boolean operator)\r\n"
      "\tReturns true if the specified event in the specified mission "
      "is incomplete (not true or false).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the mission.\r\n"
      "\t2:\tName of the event in the mission.\r\n"
      "\t3:\t(Optional) True/False which signifies what this sexpession should return when "
      "this mission is played as a single mission." },

   { OP_GOAL_TRUE_DELAY, "Mission Goal True (Boolean operator)\r\n"
      "\tReturns true N seconds after the specified goal in the this mission is true "
      "(or succeeded).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the event in the mission.\r\n"
      "\t2:\tNumber of seconds to delay before returning true."},

   { OP_GOAL_FALSE_DELAY, "Mission Goal False (Boolean operator)\r\n"
      "\tReturns true N seconds after the specified goal in the this mission is false "
      "(or failed).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 required arguments and 1 optional argument...\r\n"
      "\t1:\tName of the event in the mission.\r\n"
      "\t2:\tNumber of seconds to delay before returning true."},

   { OP_GOAL_INCOMPLETE, "Mission Goal Incomplete (Boolean operator)\r\n"
      "\tReturns true if the specified goal in the this mission is incomplete.  This "
      "sexpression will only be useful in conjunction with another sexpression like"
      "has-time-elapsed.  Used alone, it will return true upon misison startup."
      "Returns a boolean value.  Takes 1 argument...\r\n"
      "\t1:\tName of the event in the mission."},

   { OP_EVENT_TRUE_DELAY, "Mission Event True (Boolean operator)\r\n"
      "\tReturns true N seconds after the specified event in the this mission is true "
      "(or succeeded).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 arguments...\r\n"
      "\t1:\tName of the event in the mission.\r\n"
      "\t2:\tNumber of seconds to delay before returning true."},

   { OP_EVENT_FALSE_DELAY, "Mission Event False (Boolean operator)\r\n"
      "\tReturns true N seconds after the specified event in the this mission is false "
      "(or failed).  It returns false otherwise.\r\n\r\n"
      "Returns a boolean value.  Takes 2 arguments...\r\n"
      "\t1:\tName of the event in the mission.\r\n"
      "\t2:\tNumber of seconds to delay before returning true."},

   { OP_EVENT_INCOMPLETE, "Mission Event Incomplete (Boolean operator)\r\n"
      "\tReturns true if the specified event in the this mission is incomplete.  This "
      "sexpression will only be useful in conjunction with another sexpression like"
      "has-time-elapsed.  Used alone, it will return true upon misison startup."
      "Returns a boolean value.  Takes 1 argument...\r\n"
      "\t1:\tName of the event in the mission."},

   { OP_IS_DESTROYED_DELAY, "Is destroyed delay (Boolean operator)\r\n"
      "\tBecomes true seconds after all specified ships have been destroyed.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tTime delay in seconds (see above).\r\n"
      "\tRest:\tName of ship (or wing) to check status of." },

   { OP_IS_SUBSYSTEM_DESTROYED_DELAY, "Is subsystem destroyed delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified subsystem of the specified "
      "ship is destroyed.\r\n\r\n"
      "Returns a boolean value.  Takes 3 arguments...\r\n"
      "\t1:\tName of ship the subsystem we are checking is on.\r\n"
      "\t2:\tThe name of the subsystem we are checking status of.\r\n"
      "\t3:\tTime delay in seconds (see above)." },

   { OP_IS_DISABLED_DELAY, "Is disabled delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified ship(s) are disabled.  A "
      "ship is disabled when all of its engine subsystems are destroyed.  All "
      "ships must be diabled for this function to return true.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tTime delay is seconds (see above).\r\n"
      "\tRest:\tNames of ships to check disabled status of." },

   { OP_IS_DISARMED_DELAY, "Is disarmed delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified ship(s) are disarmed.  A "
      "ship is disarmed when all of its turret subsystems are destroyed.  All "
      "ships must be disarmed for this function to return true.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tTime delay is seconds (see above).\r\n"
      "\tRest:\tNames of ships to check disarmed status of." },

   { OP_HAS_DOCKED_DELAY, "Has docked delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified ships have docked the "
      "specified number of times.\r\n\r\n"
      "Returns a boolean value.  Takes 4 arguments...\r\n"
      "\t1:\tThe name of the docker ship\r\n"
      "\t2:\tThe name of the dockee ship\r\n"
      "\t3:\tThe number of times they have to have docked\r\n"
      "\t4:\tTime delay in seconds (see above)." },

   { OP_HAS_UNDOCKED_DELAY, "Has undocked delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified ships have undocked the "
      "specified number of times.\r\n\r\n"
      "Returns a boolean value.  Takes 4 arguments...\r\n"
      "\t1:\tThe name of the docker ship\r\n"
      "\t2:\tThe name of the dockee ship\r\n"
      "\t3:\tThe number of times they have to have undocked\r\n"
      "\t4:\tTime delay in seconds (see above)." },

   { OP_HAS_ARRIVED_DELAY, "Has arrived delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified ship(s) have arrived into the mission\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tTime delay in seconds (see above).\r\n"
      "\tRest:\tName of ship (or wing) we want to check has arrived." },

   { OP_HAS_DEPARTED_DELAY, "Has departed delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified ship(s) or wing(s) have departed "
      "from the mission by warping out.  If any ship was destroyed, this operator will "
      "never be true.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tTime delay in seconds (see above).\r\n"
      "\tRest:\tName of ship (or wing) we want to check has departed." },

   { OP_WAYPOINTS_DONE_DELAY, "Waypoints done delay (Boolean operator)\r\n"
      "\tBecomes true seconds after the specified ship has completed flying the "
      "specified waypoint path.\r\n\r\n"
      "Returns a boolean value.  Takes 3 arguments...\r\n"
      "\t1:\tName of ship we are checking.\r\n"
      "\t2:\tWaypoint path we want to check if ship has flown.\r\n"
      "\t3:\tTime delay in seconds (see above)." },

   { OP_SHIP_TYPE_DESTROYED, "Ship Type Destroyed (Boolean operator)\r\n"
      "\tBecomes true when the specified percentage of ship types in this mission "
      "have been destroyed.  The ship type is a generic type such as fighter/bomber, "
      "transport, etc.  Fighters and bombers count as the same type.\r\n\r\n"
      "Returns a boolean value.  Takes 2 arguments...\r\n"
      "\t1:\tPercentage of ships that must be destroyed.\r\n"
      "\t2:\tShip type to check for." },

   { OP_TIME_SHIP_DESTROYED, "Time ship destroyed (Time operator)\r\n"
      "\tReturns the time the specified ship was destroy.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of ship we want to check." },

   { OP_TIME_SHIP_ARRIVED, "Time ship arrived (Time operator)\r\n"
      "\tReturns the time the specified ship arrived into the mission.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of ship we want to check." },

   { OP_TIME_SHIP_DEPARTED, "Time ship departed (Time operator)\r\n"
      "\tReturns the time the specified ship departed the mission by warping out.  Being "
      "destroyed doesn't count departed.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of ship we want to check." },

   { OP_TIME_WING_DESTROYED, "Time wing destroyed (Time operator)\r\n"
      "\tReturns the time the specified wing was destroy.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of wing we want to check." },

   { OP_TIME_WING_ARRIVED, "Time wing arrived (Time operator)\r\n"
      "\tReturns the time the specified wing arrived into the mission.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of wing we want to check." },

   { OP_TIME_WING_DEPARTED, "Time wing departed (Time operator)\r\n"
      "\tReturns the time the specified wing departed the mission by warping out.  All "
      "ships in the wing have to have warped out.  If any are destroyed, the wing can "
      "never be considered departed.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of ship we want to check." },

   { OP_MISSION_TIME, "Mission time (Time operator)\r\n"
      "\tReturns the current time into the mission.\r\n\r\n"
      "Returns a numeric value." },

   { OP_TIME_DOCKED, "Time docked (Time operator)\r\n"
      "\tReturns the time the specified ships docked.\r\n\r\n"
      "Returns a numeric value.  Takes 3 arguments...\r\n"
      "\t1:\tThe name of the docker ship.\r\n"
      "\t2:\tThe name of the dockee ship.\r\n"
      "\t3:\tThe number of times they must have docked to be true." },

   { OP_TIME_UNDOCKED, "Time undocked (Time operator)\r\n"
      "\tReturns the time the specified ships undocked.\r\n\r\n"
      "Returns a numeric value.  Takes 3 arguments...\r\n"
      "\t1:\tThe name of the docker ship.\r\n"
      "\t2:\tThe name of the dockee ship.\r\n"
      "\t3:\tThe number of times they must have undocked to be true." },

   { OP_SHIELDS_LEFT, "Sheilds left (Status operator)\r\n"
      "\tReturns the current level of the specified ship's shields as a percentage.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of ship to check." },

   { OP_HITS_LEFT, "Hits left (Status operator)\r\n"
      "\tReturns the current level of the specified ship's hull as a percentage.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of ship to check." },

   { OP_HITS_LEFT_SUBSYSTEM, "Hits left subsystem (Status operator)\r\n"
      "\tReturns the current level of the specified ship's subsystem integrity as a percentage.\r\n\r\n"
      "Returns a numeric value.  Takes 1 argument...\r\n"
      "\t1:\tName of ship to check.\r\n"
      "\t2:\tName of subsystem on ship to check." },

   { OP_DISTANCE, "Distance (Status operator)\r\n"
      "\tReturns the distance between two objects.  These objects can be either a ship, "
      "a wing, or a waypoint.\r\n\r\n"
      "Returns a numeric value.  Takes 2 arguments...\r\n"
      "\t1:\tThe name of one of the objects.\r\n"
      "\t2:\tThe name of the other object." },

   { OP_DISTANCE_SUBSYSTEM, "Distance from ship subsystem (Status operator)\r\n"
      "\tReturns the distance between an object and a ship subsystem.  The object can be either a ship, "
      "a wing, or a waypoint.\r\n\r\n"
      "Returns a numeric value.  Takes 3 arguments...\r\n"
      "\t1:\tThe name of the object.\r\n"
      "\t2:\tThe name of the ship which houses the subsystem.\r\n"
      "\t3:\tThe name of the subsystem." },

   { OP_LAST_ORDER_TIME, "Last order time (Status operator)\r\n"
      "\tReturns true if seconds have elapsed since one or more ships have received "
      "a meaningful order from the player.  A meaningful order is currently any order that "
      "is not the warp out order.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more arguments...\r\n"
      "\t1:\tTime in seconds that must elapse.\r\n"
      "\tRest:\tName of ship or wing to check for having received orders." },

   { OP_WHEN, "When (Conditional operator)\r\n"
      "\tPerforms specified actions when a condition becomes true\r\n\r\n"
      "Takes 2 or more arguments...\r\n"
      "\t1:\tBoolean expression that must be true for actions to take place.\r\n"
      "\tRest:\tActions to take when boolean expression becomes true." },

   { OP_COND, "Blah" },

   // Goober5000 - added wing capability
   { OP_CHANGE_IFF, "Change IFF (Action operator)\r\n"
      "\tSets the specified ship(s) or wing(s) to the specified team.\r\n"
      "Takes 2 or more arguments...\r\n"
      "\t1:\tTeam to change to (\"friendly\", \"hostile\" or \"unknown\").\r\n"
      "\tRest:\tName of ship or wing to change team status of." },

   // Goober5000
   { OP_CHANGE_AI_CLASS, "Change AI Class (Action operator)\r\n"
      "\tSets the specified ship or ship subsystem(s) to the specified ai class.\r\n"
      "Takes 2 or more arguments...\r\n"
      "\t1:\tAI Class to change to (\"None\", \"Coward\", \"Lieutenant\", etc.)\r\n"
      "\t2:\tName of ship to change AI class of\r\n"
      "\tRest:\tName of subsystem to change AI class of (optional)" },

   { OP_MODIFY_VARIABLE, "Modify-variable (Misc. operator)\r\n"
      "\tModifies variable to specified value\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of Variable.\r\n"
      "\t2:\tValue to be set." },

   { OP_PROTECT_SHIP, "Protect ship (Action operator)\r\n"
      "\tProtects a ship from being attacked by any enemy ship.  Any ship"
      "that is protected will not come under enemy fire.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship(s) to protect." },

   { OP_UNPROTECT_SHIP, "Unprotect ship (Action operator)\r\n"
      "\tUnprotects a ship from being attacked by any enemy ship.  Any ship"
      "that is not protected can come under enemy fire.  This function is the opposite"
      "of protect-ship.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship(s) to protect." },

   { OP_BEAM_PROTECT_SHIP, "Beam Protect ship (Action operator)\r\n"
      "\tProtects a ship from being attacked with beam weapon.  Any ship"
      "that is beam protected will not come under enemy beam fire.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship(s) to protect." },

   { OP_BEAM_UNPROTECT_SHIP, "Beam Unprotect ship (Action operator)\r\n"
      "\tUnprotects a ship from being attacked with beam weapon.  Any ship"
      "that is not beam protected can come under enemy beam fire.  This function is the opposite"
      "of beam-protect-ship.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship(s) to protect." },

   { OP_SEND_MESSAGE, "Send message (Action operator)\r\n"
      "\tSends a message to the player.  Can be send by a ship, wing, or special "
      "source.  To send it from a special source, make the first character of the first "
      "argument a \"#\".\r\n\r\n"
      "Takes 3 arguments...\r\n"
      "\t1:\tName of who the message is from.\r\n"
      "\t2:\tPriority of message (\"Low\", \"Normal\" or \"High\").\r\n"
      "\t3:\tName of message (from message editor)." },

   { OP_SELF_DESTRUCT, "Self destruct (Action operator)\r\n"
      "\tCauses the specified ship(s) to self destruct.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship to self destruct." },

   { OP_NEXT_MISSION, "Next Mission (Action operator)\r\n"
      "\tThe next mission operator is used for campaign branching in the campaign editor.  "
      "It specifies which mission should played be next in the campaign.  This operator "
      "generally follows a 'when' or 'cond' statment in the campaign file.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tName of mission (filename) to proceed to." },

   { OP_CLEAR_GOALS, "Clear goals (Action operator)\r\n"
      "\tClears the goals for the specified ships and/or wings.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship or wing." },

   { OP_ADD_GOAL, "Add goal (Action operator)\r\n"
      "\tAdds a goal to a ship or wing.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship or wing to all goal to.\r\n"
      "\t2:\tGoal to add." },

   { OP_SABOTAGE_SUBSYSTEM, "Sabotage subystem (Action operator)\r\n"
      "\tReduces the specified subsystem integrity by the specified percentage."
      "If the percntage strength of the subsystem (after completion) is less than 0%,"
      "subsystem strength is set to 0%.\r\n\r\n"
      "Takes 3 arguments...\r\n"
      "\t1:\tName of ship subsystem is on.\r\n"
      "\t2:\tName of subsystem to sabotage.\r\n"
      "\t3:\tPercentage to reduce subsystem integrity by." },

   { OP_REPAIR_SUBSYSTEM, "Repair Subystem (Action operator)\r\n"
      "\tIncreases the specified subsystem integrity by the specified percentage."
      "If the percntage strength of the subsystem (after completion) is greater than 100%,"
      "subsystem strength is set to 100%.\r\n\r\n"
      "Takes 3 arguments...\r\n"
      "\t1:\tName of ship subsystem is on.\r\n"
      "\t2:\tName of subsystem to repair.\r\n"
      "\t3:\tPercentage to increase subsystem integrity by." },

   { OP_SET_SUBSYSTEM_STRNGTH, "Set Subsystem Strength (Action operator)\r\n"
      "\tSets the specified subsystem to the the specified percentage."
      "If the percentage specified is < 0, strength is set to 0.  If the percentage is "
      "> 100 % the subsystem strength is set to 100%.\r\n\r\n"
      "Takes 3 arguments...\r\n"
      "\t1:\tName of ship subsystem is on.\r\n"
      "\t2:\tName of subsystem to set strength.\r\n"
      "\t3:\tPercentage to set subsystem integrity to." },

   { OP_INVALIDATE_GOAL, "Invalidate goal (Action operator)\r\n"
      "\tMakes a mission goal invalid, which causes it to now show up on mission goals "
      "screen, or be evaluated.\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of mission goal to invalidate." },

   { OP_VALIDATE_GOAL, "Validate goal (Action operator)\r\n"
      "\tMakes a mission goal valid again, so it shows up on mission goals screen.\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of mission goal to validate." },

   { OP_SEND_RANDOM_MESSAGE, "Send random message (Action operator)\r\n"
      "\tSends a random message to the player from those supplied.  Can be send by a "
      "ship, wing, or special source.  To send it from a special source, make the first "
      "character of the first argument a \"#\".\r\n\r\n"
      "Takes 3 or more arguments...\r\n"
      "\t1:\tName of who the message is from.\r\n"
      "\t2:\tPriority of message (\"Low\", \"Normal\" or \"High\")."
      "\tRest:\tName of message (from message editor)." },

   { OP_TRANSFER_CARGO, "Transfer Cargo (Action operator)\r\n"
      "\tTransfers the cargo from one ship to another ship.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship that cargo is being transferred from.\r\n"
      "\t2:\tName of ship that cargo is being transferred to." },

   { OP_EXCHANGE_CARGO, "Exchange Cargo (Action operator)\r\n"
      "\tExchanges the cargos of two ships.  If one of the two ships contains no cargo, "
      "the cargo is transferred instead.\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of one of the ships.\r\n"
      "\t2:\tName of the other ship." },

   // Goober5000
   { OP_SET_CARGO, "Set Cargo (Action operator)\r\n"
      "\tSets the cargo on a ship or ship subsystem.  The cargo-no-deplete flag status is carried through to the new cargo.\r\n"
      "Takes 2 or 3 arguments...\r\n"
      "\t1:\tName of the cargo\r\n"
      "\t2:\tName of the ship\r\n"
      "\t3:\tName of the ship subsystem (optional)" },

   // Goober5000
   { OP_IS_CARGO, "Is Cargo (Status operator)\r\n"
      "\tChecks whether the specified ship or ship subsystem contains a particular cargo.\r\n"
      "Takes 2 or 3 arguments...\r\n"
      "\t1:\tName of the cargo\r\n"
      "\t2:\tName of the ship\r\n"
      "\t3:\tName of the ship subsystem (optional)" },

   // Goober5000
   { OP_CHANGE_SOUNDTRACK, "change-soundtrack\r\n"
      "\tChanges the mission music.  Takes 1 argument...\r\n"
      "\1: Name of the music selection (taken from music.tbl)" },

   // Goober5000
   { OP_PLAY_SOUND_FROM_TABLE, "play-sound-from-table\r\n"
      "\tPlays a sound listed in the Game Sounds section of sounds.tbl.  Takes 4 arguments...\r\n"
      "\t1: Origin X\r\n"
      "\t2: Origin Y\r\n"
      "\t3: Origin Z\r\n"
      "\t4: Sound (index into sounds.tbl)" },

   // Goober5000
   { OP_PLAY_SOUND_FROM_FILE, "play-sound-from-file\r\n"
      "\tPlays a sound, such as a music soundtrack, from a file.  Important: Only one sound at a time can be played with this sexp!\r\n"
      "Takes 1 argument...\r\n"
      "\t1: Sound (file name)" },

   // Goober5000
   { OP_CLOSE_SOUND_FROM_FILE, "close-sound-from-file\r\n"
      "\tCloses the currently playing sound started by play-sound-from-file, if there is any.  Takes 1 argument...\r\n"
      "\t1: Fade (default is true)" },

   // Goober5000
   { OP_EXPLOSION_EFFECT, "explosion-effect\r\n"
      "\tCauses an explosion at a given origin, with the given parameters.  "
      "Takes 11 or 13 arguments...\r\n"
      "\t1:  Origin X\r\n"
      "\t2:  Origin Y\r\n"
      "\t3:  Origin Z\r\n"
      "\t4:  Damage\r\n"
      "\t5:  Blast force\r\n"
      "\t6:  Size of explosion (if 0, explosion will not be visible)\r\n"
      "\t7:  Inner radius to apply damage (if 0, explosion will not be visible)\r\n"
      "\t8:  Outer radius to apply damage (if 0, explosion will not be visible)\r\n"
      "\t9:  Shockwave speed (if 0, there will be no shockwave)\r\n"
      "\t10: Type (0 = medium, 1 = large1, 2 = large2)\r\n"
      "\t11: Sound (index into sounds.tbl)\r\n"
      "\t12: EMP intensity (optional)\r\n"
      "\t13: EMP duration in seconds (optional)" },

   // Goober5000
   { OP_WARP_EFFECT, "warp-effect\r\n"
      "\tCauses a subspace warp effect at a given origin, facing toward a given location, with the given parameters.\r\n"
      "Takes 12 arguments...\r\n"
      "\t1:  Origin X\r\n"
      "\t2:  Origin Y\r\n"
      "\t3:  Origin Z\r\n"
      "\t4:  Location X\r\n"
      "\t5:  Location Y\r\n"
      "\t6:  Location Z\r\n"
      "\t7:  Radius\r\n"
      "\t8:  Duration in seconds\r\n"
      "\t9:  Warp opening sound (index into sounds.tbl)\r\n"
      "\t10: Warp closing sound (index into sounds.tbl)\r\n"
      "\t11: Type (0 for standard blue [default], 1 for Knossos green)\r\n"
      "\t12: Effect (0 for Bobboau's new effect [default], 1 for original FS2 effect)" },

   // Goober5000
   { OP_SET_SHIP_FACING, "set-ship-facing\r\n"
      "\tSets a ship's orientation to face the specified coordinates."
      "Takes 4 arguments...\r\n"
      "\t1: The name of a ship.\r\n"
      "\t2: The X coordinate to face.\r\n"
      "\t3: The Y coordinate to face.\r\n"
      "\t4: The Z coordinate to face." },

   // Goober5000
   { OP_SET_SHIP_FACING_OBJECT, "set-ship-facing-object\r\n"
      "\tSets a ship's orientation to face the specified object."
      "Takes 2 arguments...\r\n"
      "\t1: The name of a ship.\r\n"
      "\t2: The object to face." },

   { OP_INT3, "Error (Debug directive)\r\n"
      "Causes the game to halt with an error." },

   { OP_AI_CHASE, "Ai-chase (Ship goal)\r\n"
      "\tCauses the specified ship to chase and attack the specified target.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship to chase.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_DOCK, "Ai-dock (Ship goal)\r\n"
      "\tCauses one ship to dock with another ship.\r\n\r\n"
      "Takes 4 arguments...\r\n"
      "\t1:\tName of dockee ship (The ship that \"docker\" will dock with).\r\n"
      "\t2:\tDocker's docking point - Which dock point docker uses to dock.\r\n"
      "\t3:\tDockee's docking point - Which dock point on dockee docker will move to.\r\n"
      "\t4:\tGoal priority (number between 0 and 89)." },

   { OP_AI_UNDOCK, "Ai-undock (Ship goal)\r\n"
      "\tCauses the specified ship to undock from who it is currently docked with.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tGoal priority (number between 0 and 89)." },

   { OP_AI_WARP_OUT, "Ai-warp-out (Ship/Wing Goal)\r\n"
      "\tCauses the specified ship/wing to warp out of the mission.  Currently, the ship will "
      "warp out at its current location.  This behavior will change.  Currently, the first "
      "argument means nothing.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of waypoint path to follow to warp out (not used).\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_WAYPOINTS, "Ai-waypoints (Ship goal)\r\n"
      "\tCauses the specified ship to fly a waypoint path continuously.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of waypoint path to fly.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_WAYPOINTS_ONCE, "Ai-waypoints once (Ship goal)\r\n"
      "\tCauses the specified ship to fly a waypoint path.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of waypoint path to fly.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_DESTROY_SUBSYS, "Ai-destroy subsys (Ship goal)\r\n"
      "\tCauses the specified ship to attack and try and destroy the specified subsystem "
      "on the specified ship.\r\n\r\n"
      "Takes 3 arguments...\r\n"
      "\t1:\tName of ship subsystem is on.\r\n"
      "\t2:\tName of subsystem on the ship to attack and destroy.\r\n"
      "\t3:\tGoal priority (number between 0 and 89)." },

   { OP_AI_CHASE_WING, "Ai-chase wing (Ship goal)\r\n"
      "\tCauses the specified ship to chase and attack the specified target.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of wing to chase.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_DISABLE_SHIP, "Ai-disable-ship (Ship/wing goal)\r\n"
      "\tThis AI goal causes a ship/wing to destroy all of the engine subsystems on "
      "the specified ship.  This goal is different than ai-destroy-subsystem since a ship "
      "may have multiple engine subsystems requiring the use of > 1 ai-destroy-subsystem "
      "goals.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship whose engine subsystems should be destroyed\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_DISARM_SHIP, "Ai-disarm-ship (Ship/wing goal)\r\n"
      "\tThis AI goal causes a ship/wing to destroy all of the turret subsystems on "
      "the specified ship.  This goal is different than ai-destroy-subsystem since a ship "
      "may have multiple turret subsystems requiring the use of > 1 ai-destroy-subsystem "
      "goals.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship whose turret subsystems should be destroyed\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_GUARD, "Ai-guard (Ship goal)\r\n"
      "\tCauses the specified ship to guard a ship from other ships not on the same team.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship to guard.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_CHASE_ANY, "Ai-chase-any (Ship goal)\r\n"
      "\tCauses the specified ship to chase and attack any ship on the opposite team.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tGoal priority (number between 0 and 89)." },

   // Goober5000
   { OP_AI_CHASE_ANY_EXCEPT, "Ai-chase-any-except (Ship goal)\r\n"
      "\tCauses the specified ship to chase and attack any ship on the opposite team except those listed.\r\n\r\n"
      "Takes between 1 and 33 arguments...\r\n"
      "\t1:\tGoal priority (number between 0 and 89).\r\n"
      "\tRest:\tList (up to 32 entries) of ships or wings to exclude from consideration as attackable targets (optional).\r\n\r\n"
      "NOTE: If no ships or wings are specified, this will function just like the regular ai-chase-any sexp." },

   { OP_AI_GUARD_WING, "Ai-guard wing (Ship goal)\r\n"
      "\tCauses the specified ship to guard a wing of ships from other ships not on the "
      "same team.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of wing to guard.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_NOP, "Do-nothing (Action operator)\r\n"
      "\tDoes nothing.  This is used as the default for any required action arguments "
      "of an operator." },

   // Sesquipedalian
   { OP_IS_MISSILE_LOCKED, "Is-Missile-locked (Boolean operator)\r\n"
      "\tIs true as long as the player has had a missile lock for the specified amount of time.\r\n"
      "Optional arguments require lock to be maintained on a specified ship (or ship's subsystem).\r\n\r\n"
      "Returns a boolean value.  Takes 1 to 3 arguments (first required, rest optional):\r\n"
      "\t1:\tLength of time missile lock should have been kept for.\r\n"
      "\t2:\tName of ship to check if locked onto by player (optional).\r\n"
      "\t3:\tName of subsystem on ship to check if locked onto (optional)." },

   { OP_KEY_PRESSED, "Key-pressed (Boolean training operator)\r\n"
      "\tBecomes true when the specified default key has been pressed.  Default key "
      "refers to the what the key normally is when not remapped.  FreeSpace will "
      "automatically account for any keys that have been remapped.  If the optional "
      "delay is specified, becomes true that many seconds after the key has been pressed.\r\n\r\n"
      "Returns a boolean value.  Takes 1 or 2 arguments...\r\n"
      "\t1:\tDefault key to check for.\r\n"
      "\t2:\tDelay before operator registers as true (optional).\r\n" },

   { OP_KEY_RESET, "Key-reset (Training operator)\r\n"
      "\tMarks the specified default key as having not been pressed, so key-pressed will be false "
      "until the player presses it again.  See key-pressed help for more information about "
      "what a default key is.\r\n\r\n"
      "Returns a boolean value.  Takes 1 argument...\r\n"
      "\t1:\tDefault key to reset." },

   { OP_TARGETED, "Targeted (Boolean training operator)\r\n"
      "\tIs true as long as the player has the specified ship (or ship's subsystem) targeted, "
      "or has been targeted for the specified amount of time.\r\n\r\n"
      "Returns a boolean value.  Takes 1 to 3 arguments (first required, rest optional):\r\n"
      "\t1:\tName of ship to check if targeted by player.\r\n"
      "\t2:\tLength of time target should have been kept for (optional).\r\n"
      "\t3:\tName of subsystem on ship to check if targeted (optional)." },

   { OP_SPEED, "Speed (Boolean training operator)\r\n"
      "\tBecomes true when the player has been within the specified speed range set by "
      "set-training-context-speed for the specified amount of time.\r\n\r\n"
      "Returns a boolean value.  Takes 1 argument...\r\n"
      "\t1:\tTime in seconds." },

   { OP_FACING, "Facing (Boolean training operator)\r\n"
      "\tIs true as long as the specified ship is within the player's specified "
      "forward cone.  A forward cone is defined as any point that the angle between the "
      "vector of the point and the player, and the forward facing vector is within the "
      "given angle.\r\n\r\n"
      "Returns a boolean value.  Takes 2 argument...\r\n"
      "\t1:\tShip to check is withing forward cone.\r\n"
      "\t2:\tAngle in degrees of the forward cone." },

   { OP_FACING2, "Facing Waypoint(Boolean training operator)\r\n"
      "\tIs true as long as the specified first waypoint is within the player's specified "
      "forward cone.  A forward cone is defined as any point that the angle between the "
      "vector of the point and the player, and the forward facing vector is within the "
      "given angle.\r\n\r\n"
      "Returns a boolean value.  Takes 2 argument...\r\n"
      "\t1:\tName of waypoint path whose first point is withing forward cone.\r\n"
      "\t2:\tAngle in degrees of the forward cone." },

   // fixed by Goober5000
   { OP_ORDER, "Order (Boolean training operator)\r\n"
      "\tBecomes true when the player had given the specified ship or wing the specified order.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or 3 arguments...\r\n"
      "\t1:\tName of ship or wing to check if given order to.\r\n"
      "\t2:\tName of order to check if player has given.\r\n"
      "\t3:\tName of the target of the order (optional)." },

   { OP_WAYPOINT_MISSED, "Waypoint-missed (Boolean training operator)\r\n"
      "\tBecomes true when a waypoint is flown, but the waypoint is ahead of the one "
      "they are supposed to be flying.  The one they are supposed to be flying is the "
      "next one in sequence in the path after the last one they have hit.\r\n\r\n"
      "Returns a boolean value.  Takes no arguments." },

   { OP_PATH_FLOWN, "Path-flown (Boolean training operator)\r\n"
      "\tBecomes true when all the waypoints in the path have been flown, in sequence.\r\n\r\n"
      "Returns a boolean value.  Takes no arguments." },

   { OP_WAYPOINT_TWICE, "Waypoint-twice (Boolean training operator)\r\n"
      "\tBecomes true when a waypoint is hit that is before the last one hit, which "
      "indicates they have flown a waypoint twice.\r\n\r\n"
      "Returns a boolean value.  Takes no arguments." },

   { OP_TRAINING_MSG, "Training-msg (Action training operator)\r\n"
      "\tSends the player a training message.  Uses the same messages as normal messages, "
      "only they get displayed differently using this operator.  If a secondary message "
      "is specified, it is sent the last time, while the primary message is sent all other "
      "times (event should have a repeat count greater than 1).\r\n\r\n"
      "Takes 1-3 arguments...\r\n"
      "\t1:\tName of primary message to send.\r\n"
      "\t2:\tName of secondary message to send (optional).\r\n"
      "\t3:\tDelay (in seconds) to wait before sending message. (optional)\r\n"
      "\t4:\tAmount of Time (in seconds) to display message (optional)." },

   { OP_SET_TRAINING_CONTEXT_FLY_PATH, "Set-training-context-fly-path (Training context operator)\r\n"
      "\tTells FreeSpace that the player is expected to fly a waypoint path.  This must be "
      "executed before waypoint-missed, waypoint-twice and path-flown operators become valid.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of waypoint path player should fly.\r\n"
      "\t2:\tDistance away a player needs to be from a waypoint for it to be registered as flown." },

   { OP_SET_TRAINING_CONTEXT_SPEED, "Set-training-context-speed (Training context operator)\r\n"
      "\tTells FreeSpace that the player is expected to fly within a certain speed range.  Once "
      "this operator has been executed, you can measure how long they have been within this "
      "speed range with the speed operator.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tMinimum speed of range player is to fly between.\r\n"
      "\t2:\tMaximum speed of range player is to fly between." },

   { OP_GRANT_PROMOTION, "Grant promotion (Action operator)\r\n"
      "\tIn a single player game, this function grants a player an automatic promotion to the "
      "next rank which the player can obtain.  If he is already at the highest rank, this "
      "operator has no effect.  It takes no arguments." },

   { OP_GRANT_MEDAL, "Grant medal (Action operator)\r\n"
      "\tIn single player missions, this function grants the given medal to the player.  "
      "Currently, only 1 medal will be allowed to be given per mission.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tName of medal to grant to player." },

   { OP_GOOD_SECONDARY_TIME, "Set prefered secondary weapons\r\n"
      "\tThis sexpression is used to inform the AI about prefered secondary weapons to "
      "fire during combat.  When this expression is evaulated, any AI ships of the given "
      "team prefer to fire the given weapon at the given ship. (Prefered over other "
      "secondary weapons)\r\n\r\n"
      "Takes 4 argument...\r\n"
      "\t1:\tTeam name which will prefer firing given weapon\r\n"
      "\t2:\tMaximum number of this type of weapon above team can fire.\r\n"
      "\t3:\tWeapon name (list includes only the valid weapons for this expression\r\n"
      "\t4:\tShip name at which the above named team should fire the above named weapon." },

   { OP_AND_IN_SEQUENCE, "And in sequence (Boolean operator)\r\n"
      "\tReturns true if all of its arguments have become true in the order they are "
      "listed in.\r\n\r\n"
      "Returns a boolean value.  Takes 2 or more boolean arguments." },

   { OP_SKILL_LEVEL_AT_LEAST, "Skill level at least (Boolean operator)\r\n"
      "\tReturns true if the player has selected the given skill level or higher.\r\n\r\n"
      "Returns a boolean value.  Takes 1 argument...\r\n"
      "\t1:\tName of the skill level to check." },

   { OP_NUM_PLAYERS, "Num players (Status operator)\r\n"
      "\tReturns the current number of players (multiplayer) playing in the current mission.\r\n\r\n"
      "Returns a numeric value.  Takes no arguments." },

   { OP_IS_CARGO_KNOWN, "Is cargo known (Boolean operator)\r\n"
      "\tReturns true if all of the specified objects' cargo is known by the player (i.e. they "
      "have scanned each one.\r\n\r\n"
      "Returns a boolean value.  Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship to check if its cargo is known." },

   { OP_HAS_BEEN_TAGGED_DELAY, "Has ship been tagged (delay) (Boolean operator)\r\n"
      "\tReturns true if all of the specified ships have been tagged.\r\n\r\n"
      "Returns a boolean value after seconds when all ships have been tagged.  Takes 2 or more arguments...\r\n"
      "\t1:\tDelay in seconds after which sexpression will return true when all cargo scanned."
      "\tRest:\tNames of ships to check if tagged.." },

   { OP_CAP_SUBSYS_CARGO_KNOWN_DELAY, "Is capital ship subsystem cargo known (delay) (Boolean operator)\r\n"
      "\tReturns true if all of the specified subsystem cargo is known by the player.\r\n"
      "\tNote: Cargo must be explicitly named.\r\n\r\n"
      "Returns a boolean value after seconds when all cargo is known.  Takes 3 or more arguments...\r\n"
      "\t1:\tDelay in seconds after which sexpression will return true when all cargo scanned.\r\n"
      "\t2:\tName of capital ship\r\n"
      "\tRest:\tNames of subsystems to check for cargo known.." },

   { OP_CARGO_KNOWN_DELAY, "Is cargo known (delay) (Boolean operator)\r\n"
      "\tReturns true if all of the specified objects' cargo is known by the player (i.e. they "
      "have scanned each one.\r\n\r\n"
      "Returns a boolean value after seconds when all cargo is known.  Takes 2 or more arguments...\r\n"
      "\t1:\tDelay in seconds after which sexpression will return true when all cargo scanned."
      "\tRest:\tNames of ships/cargo to check for cargo known.." },

   { OP_WAS_PROMOTION_GRANTED, "Was promotion granted (Boolean operator)\r\n"
      "\tReturns true if a promotion was granted via the 'Grant promotion' operator in the mission.\r\n\r\n"
      "Returns a boolean value.  Takes no arguments." },

   { OP_WAS_MEDAL_GRANTED, "Was medal granted (Boolean operator)\r\n"
      "\tReturns true if a medal was granted via via the 'Grant medal' operator in the mission.  "
      "If you provide the optional argument to this operator, then true is only returned if the "
      "specified medal was granted.\r\n\r\n"
      "Returns a boolean value.  Takes 0 or 1 arguments...\r\n"
      "\t1:\tName of medal to specifically check for (optional)." },

   { OP_GOOD_REARM_TIME, "Good rearm time (Action operator)\r\n"
      "\tInforms the game logic that right now is a good time for a given team to attempt to "
      "rearm their ships.  The time parameter specified how long the \"good time\" will last.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tTeam Name\r\n"
      "\t2:\tTime in seconds rearm window should last" },

   { OP_ALLOW_SHIP, "Allow ship (Action operator)\r\n"
      "\tThis operator makes the given ship type available to the Terran team.  Players will be "
      "able to have ships of this type in their starting wings in all future missions of this "
      "campaign.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tName of ship type (or ship class) to allow." },

   { OP_ALLOW_WEAPON, "Allow weapon (Action operator)\r\n"
      "\tThis operator makes the given weapon available to the Terran team.  Players will be "
      "able to equip ships with in all future missions of this campaign.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tName of weapon (primary or secondary) to allow." },

   { OP_TECH_ADD_SHIP, "Tech add ship (Action operator)\r\n"
      "\tThis operator makes the given ship type available in the techroom database.  Players will "
      "then be able to view this ship's specs there.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ship type (or ship class) to add." },

   { OP_TECH_ADD_WEAPON, "Tech add weapon (Action operator)\r\n"
      "\tThis operator makes the given weapon available in the techroom database.  Players will "
      "then be able to view this weapon's specs there.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of weapon (primary or secondary) to add." },

   { OP_TECH_ADD_INTEL, "Tech add intel (Action operator)\r\n"
      "\tThis operator makes the given intel entry available in the techroom database.  Players will "
      "then be able to view this intel entry there.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of intel entry to add." },

   { OP_TECH_RESET_TO_DEFAULT, "Tech reset to default (Action operator)\r\n"
      "\tThis operator resets the tech room to the default represented in the tables.  This is "
      "useful for starting new campaigns, so that the player will not see tech entries carried over "
      "from previous campaigns.\r\n\r\n"
      "Takes no arguments." },

   { OP_AI_EVADE_SHIP, "Ai-evade ship (Ship goal)\r\n"
      "\tCauses the specified ship to go into evade mode and run away like the weak "
      "sally-boy it is.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship to evade from.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_STAY_NEAR_SHIP, "Ai-stay near ship (Ship goal)\r\n"
      "\tCauses the specified ship to keep itself near the given ship and not stray too far "
      "away from it.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship to stay near.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_KEEP_SAFE_DISTANCE, "Ai-keep safe distance (Ship goal)\r\n"
      "\tTells the specified ship to stay a safe distance away from any ship that isn't on the "
      "same team as it.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tGoal priority (number between 0 and 89)." },

   { OP_AI_IGNORE, "Ai-ignore (Ship goal)\r\n"
      "\tTells the specified ship to ignore the given ship and not consider it as a valid "
      "target to attack.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tName of ship to ignore.\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_STAY_STILL, "Ai-stay still (Ship goal)\r\n"
      "\tCauses the specified ship to stay still.  The ship will do nothing until attacked at "
      "which time the ship will come to life and defend itself.\r\n\r\n"
      "Takes 2 arguments...\r\n"
      "\t1:\tShip or waypoint the ship staying still will directly face (currently not implemented)\r\n"
      "\t2:\tGoal priority (number between 0 and 89)." },

   { OP_AI_PLAY_DEAD, "Ai-play dead (Ship goal)\r\n"
      "\tCauses the specified ship to pretend that it is dead and not do anything.  This "
      "expression should be used to indicate that a ship has no pilot and cannot respond "
      "to any enemy threats.  A ship playing dead will not respond to any attack.  This "
      "should really be named ai-is-dead\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tGoal priority (number between 0 and 89)." },

   { OP_FLASH_HUD_GAUGE, "Ai-flash hud gauge (Training goal)\r\n"
      "\tCauses the specified hud gauge to flash to draw the player's attention to it.\r\n\r\n"
      "Takes 1 argument...\r\n"
      "\t1:\tName of hud gauge to flash." },

   { OP_SHIP_VISIBLE, "ship-visible\r\n"
      "\tCauses the ships listed in this sexpression to be visible with player sensors.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to make visible to sensors." },

   { OP_SHIP_INVISIBLE, "ship-invisible\r\n"
      "\tCauses the ships listed in this sexpression to be invisible to player sensors.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to make invisible to sensors." },

   { OP_SHIP_VULNERABLE, "ship-vulnerable\r\n"
      "\tCauses the ship listed in this sexpression to be vulnerable to weapons.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to make vulnerable to weapons." },

   { OP_SHIP_INVULNERABLE, "ship-invulnerable\r\n"
      "\tCauses the ships listed in this sexpression to be invulnerable to weapons.  Use with caution!!!!\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to make invulnerable to weapons." },

   { OP_SHIELDS_ON, "shields-on\r\n" //-Sesquipedalian
      "\tCauses the ship listed in this sexpression to have their shields activated.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to activate shields on." },

   { OP_SHIELDS_OFF, "shields-off\r\n" //-Sesquipedalian
      "\tCauses the ships listed in this sexpression to have their shields deactivated.  \r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to deactivate shields on." },

   { OP_SHIP_GUARDIAN, "ship-guardian\r\n"
      "\tCauses the ships listed in this sexpression to not be killable by weapons.  Use with caution!!!!\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to make unkillable." },

   { OP_SHIP_NO_GUARDIAN, "ship-no-guardian\r\n"
      "\tCauses the ships listed in this sexpression to be killable by weapons, if not invulnerable.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\t1+:\tName of ships to make killable." },

   // Goober5000
   { OP_SHIP_STEALTHY, "ship-stealthy\r\n"
      "\tCauses the ships listed in this sexpression to become stealth ships (i.e. invisible to radar).\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ships to make stealthy." },

   // Goober5000
   { OP_SHIP_UNSTEALTHY, "ship-unstealthy\r\n"
      "\tCauses the ships listed in this sexpression to become non-stealth ships (i.e. visible to radar).\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ships to make non-stealthy." },

   // Goober5000
   { OP_FRIENDLY_STEALTH_INVISIBLE, "friendly-stealth-invisible\r\n"
      "\tCauses the friendly ships listed in this sexpression to be invisible to radar, just like hostile stealth ships."
      "It doesn't matter if the ship is friendly at the time this sexp executes: as long as it is a stealth ship, it will"
      "be invisible to radar both as hostile and as friendly.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ships" },

   // Goober5000
   { OP_FRIENDLY_STEALTH_VISIBLE, "friendly-stealth-visible\r\n"
      "\tCauses the friendly ships listed in this sexpression to resume their normal behavior of being visible to radar as"
      "stealth friendlies.  Does not affect their visibility as stealth hostiles.\r\n\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tName of ships" },

   { OP_PERCENT_SHIPS_DEPARTED, "percent-ships-departed\r\n"
      "\tBoolean function which returns true if the percentage of ships in the listed ships and wings "
      "which have departed is greater or equal to the given percentage.  For wings, all ships of all waves "
      "are used for calculation for the total possible ships to depart.\r\n\r\n"
      "Takes 2 or more arguments...\r\n"
      "\t1:\tPercentge of departed ships at which this function will return true.\r\n"
      "\t2+:\tList of ships/wing whose departure status should be determined." },

   { OP_PERCENT_SHIPS_DESTROYED, "percent-ships-destroyed\r\n"
      "\tBoolean function which returns true if the percentage of ships in the listed ships and wings "
      "which have been destroyed is greater or equal to the given percentage.  For wings, all ships of all waves "
      "are used for calculation for the total possible ships to be destroyed.\r\n\r\n"
      "Takes 2 or more arguments...\r\n"
      "\t1:\tPercentge of destroyed ships at which this function will return true.\r\n"
      "\t2+:\tList of ships/wing whose destroyed status should be determined." },

   { OP_RED_ALERT, "red-alert\r\n"
      "\tCauses Red Alert status in a mission.  This function ends the current mission, and moves to "
      "the next mission in the campaign under red alert status.  There should only be one branch from "
      "a mission that uses this expression\r\n\r\n"
      "Takes no arguments."},

   //-Sesquipedalian
   { OP_END_MISSION, "end-mission\r\n"
      "\tEnds the mission as if the player had engaged his subspace drive, but without him doing so.  Dumps the player back into a normal debriefing.  Does not invoke red-alert status.\r\n"
      "Takes no arguments." },

   // Goober5000
   { OP_SET_SCANNED, "set-scanned\r\n"
      "\tSets the cargo on the specified ship or ship subsystem as known or scanned.  Takes 1 or more arguments...\r\n"
      "\t1:\tName of a ship\r\n"
      "\tRest:\tName of a subsystem on that ship (optional)\r\n" },

   // Goober5000
   { OP_SET_UNSCANNED, "set-unscanned\r\n"
      "\tSets the cargo on the specified ship or ship subsystem as unknown or unscanned.  Takes 1 or more arguments...\r\n"
      "\t1:\tName of a ship\r\n"
      "\tRest:\tName of a subsystem on that ship (optional)\r\n" },

   { OP_DEPART_NODE_DELAY, "depart-node-delay\r\n"
      "\tReturns true N seconds after the listed ships depart, if those ships depart within the "
      "radius of the given jump node.  The delay value is given in seconds.\r\n\r\n"
      "Takes 3 or more arguments...r\n"
      "\t1:\tDelay in seconds after the last ship listed departe before this expression can return true.\r\n"
      "\t2:\tName of a jump node\r\n"
      "\t3+:\tList of ships to check for departure within radius of the jump node." },

   { OP_DESTROYED_DEPARTED_DELAY, "destroyed-or-departed-delay\r\n"
      "\tReturns true N seconds after all the listed ships or wings have been destroyed or have "
      "departed.\r\n\r\n"
      "Takes 2 or more arguments...\r\n"
      "\t1:\tDelay in seconda after the last ship/wing is destroyed or departerd this expression can return true.\r\n"
      "\t2+:\tName of a ship or wing" },

   { OP_SPECIAL_CHECK, "Special-check\r\n"
      "\tDo some special check in training.  Ask Mike K. about how it works.\r\n\r\n"
      "Returns a boolean value.  Takes 1 argument...\r\n"
      "\t1:\tExtra special number (tm)" },

   { OP_END_CAMPAIGN, "end-campaign\r\n"
      "\tEnds the builtin campaign.  Should only be used by the main FreeSpace campaign\r\n" },

   { OP_SHIP_VAPORIZE, "ship-vaporize\r\n"
      "\tSets the ship to vaporize when it is destroyed.  Does not actually destroy the ship - use self-destruct for that.\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tList of ships on which to set the vaporize flag" },

   { OP_SHIP_NO_VAPORIZE, "ship-no-vaporize\r\n"
      "\tSets the ship to not vaporize when it is destroyed.  Does not actually destroy the ship - use self-destruct for that.\r\n"
      "Takes 1 or more arguments...\r\n"
      "\tAll:\tList of ships on which to unset the vaporize flag" },

   { OP_DONT_COLLIDE_INVISIBLE, "don't-collide-invisible\r\n"
      "\tSets the \"dont collide invisible\" flag on a list of ships.  Takes 1 or more arguments..."
      "\tAll:\tList of ships on which to set the \"dont collide invisible\" flag" },

   { OP_COLLIDE_INVISIBLE, "collide-invisible\r\n"
      "\tUnsets the \"dont collide invisible\" flag on a list of ships.  Takes 1 or more arguments..."
      "\tAll:\tList of ships on which to unset the \"dont collide invisible\" flag" },

   { OP_WARP_BROKEN, "break-warp\r\n"
      "\tBreak the warp drive on the specified ship.  A broken warp drive can be repaired by "
      "a repair ship.  Takes 1 or more arguments...\r\n"
      "\tAll:\tList of ships to break the warp drive on" },

   { OP_WARP_NOT_BROKEN, "fix-warp\r\n"
      "\tFixes a broken warp drive instantaneously.  This option applies to warp drives broken with "
      "the break-warp sepxression.  Takes 1 or more arguments...\r\n"
      "\tAll:\tList of ships whose warp drive should be fixed"},

   { OP_WARP_NEVER, "never-warp\r\n"
      "\tNever allows a ship to warp out.  When this sexpression is used, the given ships will "
      "never be able to warp out.  The warp drive cannot be repaired.  Takes 1 or more arguments...\r\n"
      "\tAll:\tList of ships whose are not allowed to warp out under any condition"},

   { OP_WARP_ALLOWED, "allow-warp\r\n"
      "\tAllows a ship which was previously not allowed to warp out to do so.  When this sexpression is "
      "used, the given ships will be able to warp out again.  Takes 1 or more arguments...\r\n"
      "\tAll:\tList of ships whose are allowed to warp out"},

   { OP_JETTISON_CARGO, "jettison-cargo-delay\r\n"
      "\tCauses a cargo carrying ship to jettison its cargo without the undocking procedure. Takes 2 arguments"},

   { OP_BEAM_FIRE, "beam-fire\r\n"
      "\tFire a beam weapon from a specified subsystem\r\n"
      "\t1:\tShip which will be firing\r\n"
      "\t2:\tTurret which will fire the beam (note, this turret must have at least 1 beam weapon on it)\r\n"
      "\t3:\tShip which will be targeted\r\n"
      "Use add-data to add a specific subsystem to target on the specified target ship"},

   { OP_IS_TAGGED, "is-tagged\r\n"
      "\tReturns whether a given ship is tagged or not\r\n"},

   { OP_NUM_KILLS, "num-kills\r\n"
      "\tReturns the # of kills a player has. The ship specified in the first field should be the ship the player is in.\r\n"
      "\tSo, for single player, this would be alpha 1. For multiplayer, it can be any ship with a player in it. If, at any\r\n"
      "\ttime there is no player in a given ship, this sexpression will return 0"},

   { OP_NUM_TYPE_KILLS, "num-type-kills\r\n"
      "\tReturns the # of kills a player has on a given ship type (fighter, bomber, cruiser, etc).\r\n"
      "The ship specified in the first field should be the ship the player is in.\r\n"
      "\tSo, for single player, this would be alpha 1. For multiplayer, it can be any ship with a player in it. If, at any\r\n"
      "\ttime there is no player in a given ship, this sexpression will return 0"},

   { OP_NUM_CLASS_KILLS, "num-class-kills\r\n"
      "\tReturns the # of kills a player has on a specific ship class (Ulysses, Hercules, etc).\r\n"
      "The ship specified in the first field should be the ship the player is in.\r\n"
      "\tSo, for single player, this would be alpha 1. For multiplayer, it can be any ship with a player in it. If, at any\r\n"
      "\ttime there is no player in a given ship, this sexpression will return 0"},   

   { OP_BEAM_FREE, "beam-free\r\n"
      "\tSets one or more beam weapons to allow firing for a given ship\r\n"
      "\t1: Ship to be operated on\r\n"
      "\t2, 3, etc : List of turrets to activate\r\n"},

   { OP_BEAM_FREE_ALL, "beam-free-all\r\n"
      "\tSets all beam weapons on the specified ship to be active\r\n"},

   { OP_BEAM_LOCK, "beam-lock\r\n"
      "\tSets one or more beam weapons to NOT allow firing for a given ship\r\n"
      "\t1: Ship to be operated on\r\n"
      "\t2, 3, etc : List of turrets to deactivate\r\n"},

   { OP_BEAM_LOCK_ALL, "beam-lock-all\r\n"
      "\tSets all beam weapons on the specified ship to be deactivated\r\n"},

   { OP_TURRET_FREE, "turret-free\r\n"
      "\tSets one or more turret weapons to allow firing for a given ship\r\n"
      "\t1: Ship to be operated on\r\n"
      "\t2, 3, etc : List of turrets to activate\r\n"},

   { OP_TURRET_FREE_ALL, "turret-free-all\r\n"
      "\tSets all turret weapons on the specified ship to be active\r\n"},

   { OP_TURRET_LOCK, "turret-lock\r\n"
      "\tSets one or more turret weapons to NOT allow firing for a given ship\r\n"
      "\t1: Ship to be operated on\r\n"
      "\t2, 3, etc : List of turrets to deactivate\r\n"},

   { OP_TURRET_LOCK_ALL, "turret-lock-all\r\n"
      "\tSets all turret weapons on the specified ship to be deactivated\r\n"},

   { OP_ADD_REMOVE_ESCORT, "add-remove-escort\r\n"
      "\tAdds or removes a ship from an escort list.\r\n"
      "\t1: Ship to be added or removed\r\n"
      "\t2: 0 to remove from the list, any positive value to add to the list\r\n"
      "NOTE : it _IS_ safe to add a ship which may already be on the list or remove\r\n"
      "a ship which is not on the list\r\n"},

   { OP_AWACS_SET_RADIUS, "awacs-set-radius\r\n"
      "\tSets the awacs radius for a given ship subsystem. NOTE : does not work properly in multiplayer\r\n"
      "\t1: Ship which has the awacs subsystem\r\n"
      "\t2: Awacs subsystem\r\n"
      "\t3: New radius\r\n"},

   // Goober5000
   { OP_PRIMITIVE_SENSORS_SET_RANGE, "primitive-sensors-set-range\r\n"
      "\tSets the range of the primitive sensors on a ship.  Ships outside of this range will not appear on "
      "sensors.  Has no effect on ships that do not have the \"primitive-sensors\" flag2 set.  Takes 2 arguments...\r\n"
      "\t1: Ship on which to set range\r\n"
      "\t2: Range, in meters\r\n" },

   { OP_SEND_MESSAGE_LIST, "send-message-list\r\n"
      "\tSends a series of delayed messages. All ti
Title: Fred Guild
Post by: silverwolf on April 14, 2003, 07:32:33 am
:blah:
Title: Fred Guild
Post by: Galemp on April 14, 2003, 08:22:22 am
Well, there you go. Thanks, Sesq! ;)
Title: Fred Guild
Post by: Knight Templar on April 14, 2003, 11:20:35 am
Well as a tutorial, if one thing should be taught that I don't beleive the V tut teaches, is all the numerical string values.

And Ses: w00t :D
Title: Fred Guild
Post by: Sesquipedalian on April 14, 2003, 12:04:43 pm
Not exactly difficult.  That's just a copy and paste of the section of the code that tells Fred2 what to display in the little help window.

Personally, I think it is a great deal easier to merely flip through the sexp menus in Fred, with their nice, self-explanatory names, than it would be to read through all of that.  But hey, whatever floats your boat.
Title: Fred Guild
Post by: ShadowWolf_IH on April 14, 2003, 12:14:16 pm
accidental double post
Title: Fred Guild
Post by: ShadowWolf_IH on April 14, 2003, 12:15:25 pm
ya know guys..............if you don't want to be invovled, then don't be.  but do the rest of us a favor.........stay away so that we can get to together and teach and learn from each other.

On second thought to hell with that.  The one thing i've been taught here is that the longer things go on the lower the maturity level gets.  There is no sense teaching people to fred, there is no sense in learning more about fred, in a year, most of us won't even be coming here anymore.

I give up.
Title: Fred Guild
Post by: Sesquipedalian on April 14, 2003, 12:22:57 pm
Oh, you misunderstand me ShadowWolf.  I meant that I, personally, just me, find it easier to go the other way.  By the positive responses here, it would seem more people do like the idea of having an index.  I mean, hey, you asked for it, that's why I went and found it and posted it.  Hopefully it will be helpful for people.
Title: Fred Guild
Post by: ShadowWolf_IH on April 14, 2003, 12:41:11 pm
That isn't quite what i was going for.  My thought was a bit more indepth than that, and a bit easier to navigate through.
Title: Fred Guild
Post by: Goober5000 on April 14, 2003, 01:13:28 pm
FRED will always display help for a sexp as soon as you select it.  If the help isn't being displayed, try clicking on the sexp again - sometimes it's a bit weird that way.
Title: Fred Guild
Post by: karajorma on April 14, 2003, 01:37:09 pm
Quote
Originally posted by ShadowWolf_IH
That isn't quite what i was going for.  My thought was a bit more indepth than that, and a bit easier to navigate through.


Maybe but the list posted would be a lot easier to turn into a guide than going through FRED and writing down every single SEXP.
Title: Fred Guild
Post by: ShadowWolf_IH on April 14, 2003, 10:32:53 pm
you are right, it would be a place to start.  Ses, maybe I am seeing things wrong today.  Maybe, or maybe not.  I'm so used to looking at the posts here and reading the flaming behind alot of replies that i may be seeing it where it isn't.  

We all come here as a hobby, and most of us do what we can to "enrich our realm" through our own endeavors.  More often than not those endeavors are a personnal matter or creation, sometimes they are more in the limelight.  I try not to flame people or ideas because the bottom line to me is simple, this is a hobby, and i have no right to tell someone that what they have been dreaming up is unimportant, or stupid, or unworthy.  I think that anything an individual does to enrich this community has value, whether i like what they are doing or not.  I am tired of the sarcasm and the flaming, maybe to the point where i see it where it isn't, as i said.  

I just think that maybe we should all just think about how we would feel if someone started on stomping on the mod we created, or some such thing.

I'll climb off of my podium now.  Maybe it isn't my imagination, maybe it is.

anyway, if you want this to fly say so, and if you say so then be prepared to be asked to help.
Title: Fred Guild
Post by: TrashMan on April 15, 2003, 02:59:19 am
Excellent idea...
All we need now is a Modelers Forum, a Texturers Forum,a PCS Editor Forum......etc...
Title: Fred Guild
Post by: Gloriano on August 30, 2003, 01:10:52 pm
No more Necromancy pleaseeeeeeeeee
Title: Fred Guild
Post by: StratComm on August 30, 2003, 03:09:02 pm
ok, who's on the votebumping spree :doubt:
Title: Fred Guild
Post by: Knight Templar on August 30, 2003, 03:14:04 pm
More to the point - why was the only good one locked? :blah: