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.