Last updated: 6/23/01
Home
Scriptlets

  • PlayerClone
  • Voting
  • Salvage scoring
  • Goadfest
  • Camera manipulation
  • Using the campaign maps in multiplayer (Dolf Kooz)
  • HudTimer
  • IP Banning instructions
  • AI Pilots
  • PlayerLog
  • Improved timeDifference
  • Magic Carpet
  • BindCommand
  • Branching multiplayer campaigns
  • Message of the Day cycling
  • Telnet instructions
  • ScanComponents



    PlayerClone

    PlayerClone.zip -- includes the master list of cloned vehicles, four sample vehicles, the PlayerClone function file, a sample map, and a dedicated server file

    Description
    A persistent player cloning script, using the storeObject() and loadObject() functions discovered by GotLag.

    1. When any player joins the server, the script analyzes his config, and writes a short text profile describing it, like this:

    %PCVehicleProfile[0] = "Shepherd: CybridHeavyAgility CEpsilonReactor GammaComp ZetaShield Ceramic DeltaSensorLongbow SMod AntiGrav EMP EMP Blaster Blaster";

    2. The script compares the profile to the list of profiles stored to file. If it doesn't match any of them, it adds the new one to the list, and then uses storeObject() to write a new .veh file for it.

    3. A function is included to spawn a new AI by randomly pulling a config out of the list and creating it with loadObject().

    4. A sample map is included in the .zip which uses this script to spawn one AI every time a player drops onto the map.

    The script might be handy for people who run maps that use the cloneVehicle() function to copy players' vehicles, since this does the same thing, except persistently over server restarts.



    Last modified: 6/23/01



    Voting

    SSVote.zip -- the main server file, a sample keymap file for the clients, a modified DMStdLib file that incorporates SSVote into all Deathmatch games

    Description
    An in-game voting script modeled after Tribes. Players can vote to end the current mission, kick a player off the server, turn team damage on or off, or turn respawn on and off. To use the function, players must download a keymap or modify their current ones to include the SSVote::VoteYes, SSVote::VoteNo, SSVote::PrevVote and SSVote::NextVote functions. PrevVote and NextVote ( < and > by default ) are used to toggle through the vote selections, and VoteYes (CTRL-Y) will confirm the selection. Other players use VoteYes and VoteNo (CTRL-Y, CTRL-N) to vote yes or no. A vote passes when half the players (rounded down) plus one vote yes, and fails either when the same number votes no or after the time limit expires (10 seconds by default).


    Last modified: 6/10/01



    Salvage scoring

    SalvageScores.zip

    Description
    A new scoring script, which sets a vehicle's point value to its combat value divided by 1000. Thus, if you kill a Seeker, it might only be worth seven points, while nailing a factory Platinum Guard Executioner would be worth fourteen points. Getting killed works the same way. The designers' ideas of combat values are out of whack with my own opinion, but I've let them stand.

    Last modified: 5/24/00



    Goadfest

    Goadfest.zip

    Description
    A short script I wrote for fun, that creates two clones of the player if he happens to be driving a Goad, and then assigns them to be his bodyguards. Also threw in a bunch of AI drones for targets.

    Last modified: 5/24/00



    Manipulating the Camera, by Dave Scott, posted by Dr. Awkward

    Camera.html

    Description
    A memo by Dave Scott, Senior Software Engineer, to the Starsiege scripters, posted by Dr. Awkward (original message)


    Last modified: 2/6/00



    Using the campaign maps in multiplayer, by Dolf Kooz

    howToUseCampaignMaps.html

    A ZIPped pack of 43 out of 47 of the campaign maps, converted over to a bare bones state for server use: CampaignMaps.zip

    Description
    Instructions for server operators to setting up the maps from the single player campaigns for use in multiplayer, without forcing players to move files on their side

    Notes:
  • Thanks to Dolf Kooz for allowing me to repost and modify his original instructions.

    Last modified: 1/11/00



    HudTimer

    HudTimer.txt

    Description
    A simple way to put a HUD on the players' screens, telling them how much time is left in the mission

    Notes:
  • vehicle::OnAdd() and OnMissionStart() are fairly important functions, so it's best to cut and paste these into the appropriate places carefully, and make sure you're not overriding anything you don't want to.

    Last modified: 12/14/99



    IP banning instructions

    Ban.txt

    Description
    A short example of how to set up a script to keep people out based on their IP address (or a portion thereof).

    Notes:

  • Make sure to change the number right after StrAlign( to match the appropriate number of characters, including IP:.

  • The best place to put this would probably be the dedicated server file, or the individual map.cs files themselves. MultiplayerStdlib.cs ought to be fine, as long as you're sure none of your maps use a player::OnAdd function.

  • There are certainly more elegant ways to make this a little more user friendly, but this illustrates the general idea nicely.

    Last modified: 12/14/99



    AI Pilots

    AIPilots.zip

    Description
    The contents of DatPilot_cy.cs and DatPilot_hu.cs from scripts.vol, modified slightly to make them usable as AI pilots in multiplayer servers.

    Last modified: 12/9/99



    PlayerLog

    PlayerLog.zip

    Description
    A pair of functions that log player adds and drops to an external file, including the total amount of time each player stayed on for.

    Notes:

  • fileWrite() can't create new files, although it can append or overwrite existing ones. This scriptlet won't work unless you have a file called serverlog.txt in your /Starsiege/multiplayer folder.

  • Player::OnAdd and Player::OnRemove are used relatively rarely. If they are used in a script, however, make sure to cut and paste the lines of PlayerLog.cs into the appropriate places, rather than slapping it in directly or calling exec("PlayerLog.cs");
  • The time between when a player joins the server and when the first player actually enters the game is a sort of dead zone, where the server isn't exactly running and onMissionStart doesn't trigger yet. Players who drop in this interim tend to be missed by the script. And obviously, those who are dropped when the server crashes aren't logged, either.

    Last modified: 12/8/99



    Improved timeDifference

    timeDifference.zip

    Description
    An improved version of the timeDifference() function in multiplayerStdLib.cs, modified to handle hours in addition to minutes and seconds.

    Last modified: 12/5/99



    Magic Carpet

    MagicCarpet.txt

    Description
    Untested idea on creating a flyable transport vehicle (er, object) in Starsiege.


    Last modified: 11/17/99



    BindCommand

    BindCommand.txt

    Description
    Instructions on how to bind key commands to game functions in a particularly useless fashion.

    Notes:
  • Without the ability to call a client ID of some kind, this is a singularly useless trick. However, this same ability opens up a can of worms when it comes to ugly, abusive hacks, so perhaps the omission is intentional

    Last modified: 9/9/99



    Message of the Day cycling

    motd.txt

    Description
    Instructions on setting up a dedicated server to play different messages of the day based on the map currently being run.


    Last modified: 9/3/99



    Branching multiplayer campaigns

    Branching.txt

    Description
    Untested idea on creating branching campaign trees in multiplayer.


    Last modified: 9/3/99



    Telnet instructions

    Telnet.txt

    Description
    Instructions on allowing telnet access into a dedicated server.


    Last modified: 9/3/99



    ScanComponents

    ScanComponents.zip

    Description
    A scriptlet that overrides the vehicle::OnScan function, so that now scanning a vehicle returns a list of the target's components and weapons.

    Notes:
  • vehicle::OnScan and structure::OnScan are two of the only key bindings that can be easily accessed by a function. This would make them handy for all sorts of uses, except that the scanning conditions (range, etc.) are pretty much hardwired into the game.

  • Note that the long if-elses have to be split up, or else the game engine returns a syntax error and fails to process them

    Last modified: 8/24/99






    Unless otherwise stated, people are free to take these scripts and do what they want with them, with or without permission.






    1