A gamemode where bad things happen.DescriptionThis is a survival-based mod centred around teamwork and free building.
The goal is to build yourself a base and hide in it from a selection of random disaster scripts that I wrote on the toilet.
You get points for surviving, and lose all of these points either upon dying or upon the server crashing due to a pure virtual function call. Build something sturdy - when a brick is blown up in this mode, it is permanently destroyed (if destruction is on).
Some GUILimited wrench GUI for people with the mod
Say /admin to open this.
Screenshots of people's terrible basesExtensibilityThere's a cool system for adding your own disasters.
function rocketDisaster() {
// spawn rocket in relation to a player 100 TUs above them with random offset
%clientCount = ClientGroup.getCount();
if(%clientCount > 0) {
%client = ClientGroup.getObject(getRandom(0, %clientCount-1));
%player = %client.player;
if(isObject(%player)) {
%playerPos = %player.getPosition();
%rocketBaseSpawnPos = vectorAdd(%playerPos, getRandom(-100, 100) SPC getRandom(-100, 100) SPC getRandom(50, 140));
%proj = new projectile() {
datablock = CannonBallProjectile;
initialposition = %rocketBaseSpawnPos;
initialvelocity = getRandom(-10, 10) SPC getRandom(-10, 10) SPC -40;
client = %client;
};
%scaleFac = getRandomF(0, 3.5);
%proj.setScale(%scaleFac SPC %scaleFac SPC %scaleFac);
missionCleanup.add(%proj);
}
}
$Disasters::CurrentDisasterLoop = schedule(1000, 0, rocketDisaster);
}
registerDisaster("A Barage Of Meteorites", 40, "rocketDisaster");
The function syntax is registerDisaster(%name, %startFunction, %stopFunction, %isMajorDisaster).
$Disasters::CurrentDisasterLoop is a utility variable and meant to hold the currently running disaster.
Please note that unlimiting the wrench in the admin gui is not supported and I'm not responsible for what happens.
DownloadModDisasters Pack